Glossary
Stripe Customer Tax Exempt Status
Stripe customer tax exempt status is the tax_exempt field on a Customer, set to none, exempt or reverse, which tells Stripe Tax to calculate tax normally, to charge none because the customer is exempt, or to charge none because the customer accounts for it under the reverse charge.
Also called: tax_exempt, Stripe customer tax status, Stripe tax-exempt customer, Stripe reverse charge customer
14-day free trial · card required · cancel anytime
Definition
Every Stripe Customer has a tax_exempt field. Stripe’s API reference describes it as the customer’s tax exemption status, "which is none, exempt, or reverse." In the Dashboard it is labelled Tax Status and sits in the customer’s details beside the tax ID fields. A new customer starts at none.
exempt and reverse both leave a sale with no tax on it, but they make different statements. exempt says the customer does not pay the tax at all, because the jurisdiction exempts buyers like it. reverse says the sale is taxable, but the customer, not you, accounts for the tax under a reverse charge scheme. That difference matters to the customer’s own tax return, and it is why Stripe prints "Reverse charge" on invoice and receipt PDFs for a reverse customer.
Neither value is checked by Stripe. Stripe says Stripe Tax "doesn’t validate required documentation for supporting an exemption, such as customer exemption certificates." Setting the field is a decision you make about a customer, and the evidence behind it is yours to collect and keep.
Key points
- +Three values on a Customer: none, exempt or reverse. New customers start at none.
- +Stripe Tax reports an exempt customer’s untaxed line as customer_exempt and a reverse customer’s as reverse_charge.
- +reverse prints "Reverse charge" on invoice and receipt PDFs.
- +Stripe does not collect or validate exemption certificates. That is your responsibility.
- +A tax ID can trigger the reverse charge by itself. The status is how you apply it without one.
- +With Stripe Tax, an exempt customer pays the full tax-inclusive price. With a manual inclusive tax rate, Stripe backs the tax out and the customer pays less.
- +The itemized tax export records the status used on each transaction in its customer_taxability_override column.
none, exempt and reverse: what each tells Stripe Tax
none is the default. Stripe Tax calculates as usual from the customer’s location, the product tax code, your registrations and any tax ID on the customer. A none customer can still end up with no tax, for example when its tax ID triggers the reverse charge or you are not registered where it is.
exempt tells Stripe Tax to charge nothing and to give the reason customer_exempt. Stripe describes exempt customers as "those who, under a jurisdiction’s rules, can make tax-exempt purchases," and names non-profit organizations and government entities as common examples. Each taxing jurisdiction decides who qualifies, so an organization exempt in one place is not automatically exempt in another.
reverse tells Stripe Tax to charge nothing and to give the reason reverse_charge, and the invoice and receipt PDFs say "Reverse charge." In Stripe’s words, in a reverse charge transaction "the customer must calculate and remit the tax." It is most common on cross-border sales of business services.
The status belongs to the Customer, so it travels with that customer. Stripe’s instruction is to set the status and "provide the customer ID when creating a subscription, invoice, or Checkout Session." For a one-time Checkout payment, the status used is recorded in the Checkout Session’s customer_details. With the standalone Tax Calculations API, a saved customer’s exemption fills customer_details.taxability_override, and without a saved customer you pass taxability_override yourself as customer_exempt or reverse_charge.
Tax status or tax ID: two routes to the same zero
Stripe Tax "automatically applies the reverse charge based on the presence of a tax ID and the jurisdictions involved in the transaction." Stripe adds that you "can also set a customer’s tax status to reverse charge using the API or the Dashboard." Those are two different routes, and they fail in different ways.
The tax ID route works only for types marked Yes in the Impact in Tax Calculation column of Stripe’s tax ID table. Egypt’s eg_tin and South Africa’s za_vat are Yes. Kenya’s ke_pin is No: Stripe stores and prints it, and the calculation ignores it. A Kenyan business customer whose only number is a PIN is taxed like a consumer unless something else changes the result.
The status route is that something else. Stripe’s Tax API guide says that when "you might not have your customer’s tax IDs, or you’ve separately determined that the reverse charge scheme applies," you can use the override to "force Stripe Tax to apply the reverse charge scheme." The difference is who decides. With a Yes-type tax ID, Stripe Tax applies the reverse charge "according to applicable laws." With the status, you decide, and Stripe takes your word for it.
That makes the status the riskier of the two to leave unattended. A tax ID is judged sale by sale. A status stays until someone changes it, so review it when a customer’s circumstances change.
Inclusive prices: Stripe Tax and manual tax rates do opposite things
With Stripe Tax and a tax-inclusive price, the customer’s total does not move. Stripe: "For transactions with inclusive tax behavior, the customer exemption doesn’t affect the total amount paid by the customer." An exempt customer buying a 100.00 USD inclusive price pays 100.00 USD, and with no tax inside it, all 100.00 USD is revenue. A taxed customer pays the same 100.00 USD and some of it is tax.
Manual tax rates, the txr_ objects you attach to invoices yourself, work the other way. Stripe’s tax rates guide says that if the customer is exempt or reverse, then for invoices with inclusive tax rates "the customer pays the unit_amount price minus the tax that would’ve been paid had the user not been exempt or reverse." Its own example: a 100 price with a 10% inclusive rate costs an exempt customer 90.91 USD, because the 9.09 USD of tax inside it is subtracted. With a 10% exclusive rate, the same customer pays 100 USD.
So one customer and one price can produce two different totals, depending on whether Stripe Tax or a manual tax rate does the calculation. If you are moving from manual rates to Stripe Tax, expect exempt and reverse customers on inclusive prices to start paying more, and your revenue on those sales to rise by the same amount.
Finding exempt and reverse charge sales in Stripe’s reports
Stripe Tax’s itemized export has two columns that matter here. taxability_reason holds customer_exempt or reverse_charge on the untaxed lines. customer_taxability_override holds "the customer’s tax status used for taxability of the tax transaction," with values customer_exempt, reverse_charge or none.
The names change on the way. The Customer field says exempt and reverse, while the export and the Tax Calculations API say customer_exempt and reverse_charge. They mean the same two statuses. Stripe also notes that tax_type is not guaranteed to be set when the reason is reverse_charge, so filter those rows on the reason, not the tax type.
Refunds need care. Stripe warns that if you refund a tax amount so that the tax is no longer proportional to the subtotal, the export will not reflect the reason for the reversal, "such as product exempt, customer exempt, or reverse charge," and recommends fully reversing the transaction instead of refunding part of a line’s tax.
The export tells you which sales relied on a status. It does not hold the evidence for it. Keep exemption certificates, or the records that justify a reverse charge, alongside the customer, because Stripe will not ask for them and a tax authority might.
Frequently asked questions
What does tax_exempt mean on a Stripe customer?
It is the customer’s tax exemption status, one of none, exempt or reverse. none lets Stripe Tax calculate normally. exempt and reverse both stop Stripe Tax charging tax, with the reasons customer_exempt and reverse_charge. In the Dashboard the field is called Tax Status.
What is the difference between exempt and reverse in Stripe?
exempt means the customer does not pay the tax, such as a non-profit or government body where the jurisdiction grants an exemption. reverse means the sale is taxable but the customer accounts for the tax under a reverse charge scheme. Stripe prints "Reverse charge" on invoice and receipt PDFs for a reverse customer.
Does Stripe check tax exemption certificates?
No. Stripe says Stripe Tax does not validate the documentation that supports an exemption, such as exemption certificates. You are responsible for deciding whether a customer qualifies and for collecting and keeping the evidence.
Do I need a customer tax ID to apply the reverse charge in Stripe?
No. Stripe Tax applies the reverse charge automatically from a tax ID whose type is marked Yes for Impact in Tax Calculation, but you can also set the customer’s tax status to reverse in the Dashboard or the API. With the status, you are making the decision rather than Stripe Tax.
Why did a tax-exempt customer pay the full price on a tax-inclusive Stripe price?
Because Stripe Tax keeps the total fixed on inclusive prices. Stripe says the customer exemption does not affect the total amount paid, so the exempt customer pays the full price and all of it is revenue. Manual inclusive tax rates behave differently: there, Stripe subtracts the tax and the exempt customer pays less.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- Stripe Customer
- Stripe Customer Tax ID
- Stripe Tax Behavior
- Stripe Taxability Reason
- Reverse Charge
- Stripe Tax Itemized Export
- Stripe tax-exempt customers in QuickBooks
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Dispute Evidence
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
- Stripe Authorization Hold
- QuickBooks Refund Receipt
- QuickBooks Payment
- QuickBooks Expense
- QuickBooks Journal Entry
- Stripe Financial Account
- Holding Account
- Accounts Receivable
- Bank Feed
- Deferred Revenue
- Stripe PaymentIntent
- Stripe Checkout Session
- Stripe SetupIntent
- Stripe PaymentMethod
- Stripe Charge
- Stripe Refund
- QuickBooks Invoice
- QuickBooks Class Tracking
- QuickBooks Location Tracking
- QuickBooks Project
- QuickBooks Closing Date
- Stripe Invoice Line Item
- Stripe Proration
- Stripe Invoice Status
- Stripe Shipping Rate
- Stripe Transfer
- Stripe Mandate
- Stripe on_behalf_of
- Stripe Invoice Item
- QuickBooks Estimate
- Stripe Invoice Payment
- Stripe Invoice Payment Settings
- Stripe Billing Meter
- Stripe Invoice Template
- Stripe Price
- Stripe Subscription Schedule
- Stripe Subscription Item
- QuickBooks Recurring Transaction
- QuickBooks Sub-Customer
- QuickBooks Audit Log
- QuickBooks Bank Rule
- Stripe Subscription Status
- Stripe Mixed Interval Subscription
- Stripe Trial Settings
- QuickBooks Payment Terms
- Stripe Pending Update
- QuickBooks Tags
- QuickBooks Credit Card Credit
- QuickBooks Vendor Credit
- QuickBooks Bill
- QuickBooks Delayed Charge
- Stripe Billing Mode
- QuickBooks Billable Expense
- Stripe Customer Cash Balance
- QuickBooks Purchase Order
- QuickBooks Opening Balance
- QuickBooks Account Type
- QuickBooks Sales Tax Center
- Stripe Webhook
- Stripe Metadata
- Stripe Outbound Payment
- Stripe Received Credit
- Stripe Outbound Transfer
- Stripe Inbound Transfer
- Stripe Received Debit
- Stripe Payout Method
- Stripe Financial Account Transaction
- Stripe Financial Address
- Stripe Application Fee
- Stripe Connected Account
- Stripe Destination Charge
- Stripe Separate Charges and Transfers
- Stripe Direct Charge
- Stripe Payment Method Configuration
- Stripe Dynamic Payment Methods
- Stripe Payment Method Rules
- QuickBooks Bundle
- Stripe Account Capability
- Stripe Merchant of Record
- Stripe Data Pipeline
- Settlement Currency
- Hosted Invoice Page
- Stripe Customer
- Stripe Product
- QuickBooks Home Currency
- QuickBooks Exchange Gain or Loss
- QuickBooks Trial Balance
- QuickBooks General Ledger Report
- QuickBooks Retained Earnings
- QuickBooks Profit and Loss Report
- QuickBooks Balance Sheet Report
- QuickBooks Account Register
- QuickBooks Reclassify Transactions
- QuickBooks A/R Aging Report
- QuickBooks Sales Tax Liability Report
- QuickBooks Sales Tax Payable
- Stripe Tax Transaction
- Stripe Tax Location Report
- Stripe Tax Summarized Export
- Stripe Tax Itemized Export
- Stripe Product Tax Code
- QuickBooks Vendor
- Economic Nexus
- Reverse Charge
- Stripe Statement Descriptor
- Stripe Taxability Reason
- Stripe Tax Filing Currency
- Stripe Tax Cross-Border Goods Option
- Stripe Tax Threshold Monitoring
- QuickBooks Uncategorized Income
- QuickBooks Sales by Product/Service Report
- QuickBooks Sales by Customer Report
- QuickBooks Group Tax Rate
- Form 1099-NEC
- SEPA Direct Debit
- Bacs Direct Debit
- Canadian Pre-Authorized Debit (PAD)
- Australia BECS Direct Debit
- QuickBooks Customer Display Name
- Backup Withholding
- QuickBooks Multicurrency
- Form 1042-S
- Form W-8BEN
- Form W-9
- Form 8233
- Form 1042
- Form 1099-K
- Form W-8BEN-E
- Stripe Tax Behavior
- Stripe Customer Tax ID
- Form 945
- ITIN (Individual Taxpayer Identification Number)
- Form 1099-MISC
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.
14-day free trial · card required · cancel anytime