To collect taxes on a subscription, either set tax rates on the subscription, or set the tax rates on invoices as the subscription cycles. Or, if you use Checkout, you can specify tax rates in Checkout Sessions to apply taxes to subscriptions.
Recommended: Setting tax rates on a subscription
You can apply taxes at the subscription level and the subscription item level and set up to five tax rates on each subscription item.
When invoices are generated for subscriptions, tax rates are copied from the subscription to the invoice. In the example below, the first subscription item has two tax rates: 3% and 5%, which overrides the 1% from the subscription level tax rate. The second item doesn’t have any tax rates set directly on it, so the 1% from the subscription level tax rate is automatically applied.
|Subscription item 1||3% and 5%||➡️||Invoice item 1||3% and 5%|
|Subscription item 2||(no tax set)||➡️||Invoice item 2||(no tax set)|
You can set tax rates when you create or update subscription items by passing the tax rate IDs. The example below updates an existing subscription item with two tax rates:
You can set subscription level tax rates when you create or update subscriptions. Set the tax rates you want to apply by passing the default tax rate IDs. The example below updates an existing subscription with two tax rates:
Dynamically configuring tax rates on each subscription cycle
If you add extra invoice items, or sell in enough jurisdictions that tax rates change frequently, dynamically calculate and assign tax rates to the subscription’s invoice as it’s created.
When a subscription renews and creates an invoice, Stripe sends the
invoice.created webhook event. Stripe waits approximately one hour before finalizing the invoice and attempting payment or sending an email. During that delay, the invoice is a
draft and is editable. Follow the process to assign tax rates to that invoice.
Adding tax rates to Checkout
You can specify tax rates (Sales, VAT, GST, and others) in Checkout Sessions to apply taxes to subscriptions.
- Use fixed tax rates when you know the exact tax rate to charge your customers before they start the checkout process (e.g., you only sell to customers in the UK and always charge 20% VAT).
- With the Prices API, you can use dynamic tax rates when you require more information from your customer (e.g., their billing or shipping address) before determining the tax rate to charge. With dynamic tax rates, you create tax rates for different regions (e.g., a 20% VAT tax rate for customers in the UK and a 7.25% sales tax rate for customers in California, US) and Stripe attempts to match your customer’s location to one of those tax rates.
You can use Stripe’s data exports to populate the periodic reports required for remittance. Visit Tax reporting and remittance for more information.