Your setup decides the steps:
If Stripe Calculates Your Tax
- Open the customer's page in the Stripe Dashboard and set the tax status to Exempt. The customer page's side panel then reads "Tax status and IDs: Exempt." With the application programming interface (API), set
tax_exempt to exempt. - Make the change before the invoice is finalized. A new invoice is a draft, and you read each invoice's status on the Invoices page. Finalizing makes the invoice open and copies the customer's tax status to it. To change the tax status on a finalized invoice, void the invoice. Then duplicate it and update the duplicate. Consult local regulations on whether and how you can amend or void an invoice. You might need to issue a credit note or another invoice instead.
- For a new subscription, invoice, or Checkout Session, use this saved customer.
- Open the next invoice. With manual tax rates, the invoice carries no tax. With Stripe Tax, the API returns
customer_exempt in the taxability_reason field.
If CereTax Calculates Your Tax
Exempt the Whole Customer
- With the CereTax Stripe connector, set the customer's Tax Status to Exempt in Stripe before the invoice is created.
- When Stripe creates or finalizes an invoice, a webhook sends it to CereTax. Open the Webhooks tab in Workbench, select the endpoint whose URL you copied from the CereTax for Stripe configuration page, and open its Event deliveries tab.
- The connector needs five events:
customer.created, customer.updated, invoice.created, invoice.finalized, and invoice.updated. After Stripe creates the next invoice, its invoice.created event should read Delivered. After Stripe finalizes it, so should invoice.finalized. - For a Failed or Pending event, open it to see the status code and any scheduled retry time. In live mode, Stripe retries each event for up to three days. The Resend button on an event works for up to 15 days after the event was created.
- For errors, log in to the connector admin interface, select the connector logs tab, and filter by the Stripe invoice identifier. If events still fail, ask us.
- Open the next invoice. As in the knowledge base example, each tax line reads $0.00 and the total equals the subtotal. The connector sends product/service code 10010200 on every line to mark it exempt.
Exempt Line Items for a Taxable Customer
- Before you add the key, check which customers and invoices use the product. A product sold at one price needs only one price, so many invoices can share it.
- In Stripe, add the metadata key
IsTaxExempted with the value true in the Product Pricing section. - Open the next invoice. The connector sends code 10010200 on that line to mark it exempt, and tax details are added to the invoice.
Keep the Certificate
Stripe Tax does not validate exemption certificates. Stripe holds you responsible for any obligation to validate a customer's exempt status and collect any required documentation.
We suggest one owner for the exemption status and the certificate. That person sets Exempt only after the certificate is on file.
SmartExempt is our certificate management product.
We do not cover who qualifies for exemption, what a certificate must contain, mixing both methods, or running CereTax and Stripe Tax on one account.
Next Step
See SmartExempt, which connects to Stripe.
Sources
- Stripe, Zero tax amounts and reverse charges
- Stripe, Tax rates
- CereTax, CereTax for Stripe Billing integration announcement
- CereTax, Stripe - Install & Setup
- Stripe, The Customer object
- Stripe, Customers (Stripe Billing)
- Stripe, How invoicing works
- Stripe, Manage invoices
- Stripe, Status transitions and finalization
- CereTax, CereTax for Stripe Billing
- Stripe, Receive Stripe events in your webhook endpoint
- Stripe, Manage event destinations
- Stripe, Types of events
- Stripe, Manage webhook endpoints
- Stripe, How products and prices work
- CereTax, Exemption Certificate Management Software
- Stripe, Tax exemptions
Reviewed October 16, 2026. We review this page again within 30 days.