Monetization
Tax on plans
Turn on Collect with Stripe Tax on a paid plan, choose how tax applies to each price, and keep your rates and registrations in Stripe Tax in your own Stripe account. Stripe calculates the tax at checkout from the buyer's location.
Each paid plan can collect tax through Stripe Tax, in your own Stripe account. Collection is off until you turn on Collect with Stripe Tax on the plan. Then you choose, per price, whether tax is added on top or included. Rates and registrations stay in Stripe, which calculates the tax at checkout.
Who is responsible for charging tax?
You are. Checkouts and charges run on your own connected Stripe account, so you are the seller for every subscription your developers buy. Your tax registrations and filings belong to your business.
This is why the rates are not in Apiable. They live in Stripe Tax, next to the registrations they depend on.
How do you set up Stripe Tax?
Do this once, in your own Stripe dashboard under Settings, Tax, before you turn on tax collection for a plan. The Collect tax on this plan? dialog in Apiable lists the same four things.
- Activate Stripe Tax.
- Set the address of your head office.
- Set a preset product tax code. Apiable does not send a tax code per plan, so Stripe applies this preset to every plan. Confirm the right code with your accountant.
- Set a default tax behavior under Include tax in prices. The Use Stripe account default option on a price follows this setting.
- Add a tax registration for each country or state where you collect tax.
Step 5 is the one that puts tax on an invoice. Stripe charges tax only where your account has a registration.
See Stripe's own how tax works and set up Stripe Tax for the detail behind each step.
How do you turn on tax collection for a plan?
Open the plan's Monetization tab. Under the first price, in the Tax block, choose Collect with Stripe Tax, confirm with Collect tax, choose how tax applies to each price, and save the plan.
- Open the plan and go to its Monetization tab.
- Under the first price, find the Tax block. It starts on Don't collect tax, which reads "Checkout charges no tax."
- Choose Collect with Stripe Tax.
- Read the Collect tax on this plan? dialog, then choose Collect tax.
- For each price, choose Use Stripe account default, Included in price or Added on top.
- Save the plan.
The switch applies to the whole plan, so it sits with the first price only. The per-price options stay greyed out until the plan collects tax. While a plan has active or pending subscriptions, its prices are locked, so the per-price options keep their current value.
What do the three tax options do?
Each price's option tells Stripe how to read the amount you typed. It does not set a rate. A price you never set keeps the behaviour it had before tax collection existed: Included in price if its old "Includes tax in price" box was ticked, otherwise Added on top.
| Option | What the buyer pays | When it fits |
|---|---|---|
| Use Stripe account default | Follows the Include tax in prices setting of your Stripe account. | You want one rule for every plan, set in one place. |
| Included in price | The price shown. Tax is part of it. | Prices quoted to consumers, common outside the US. |
| Added on top | The price shown plus tax, added at checkout. | Prices quoted to businesses, common in the US and Canada. |
On a price of 100 EUR sold to a buyer in a country where you are registered at 20 percent: Included in price means the buyer pays 100 EUR, of which 16.67 EUR is tax. Added on top means the buyer pays 120 EUR.
What does the Stripe Tax status line say?
Under the switch, and on the Stripe card under Integrations, Payment Providers, Apiable shows one line about your Stripe Tax setup. It tells you whether plans that collect tax will actually charge it.
| Status line | What it means |
|---|---|
| "Stripe Tax is active in your Stripe account. Tax registrations:" and a list of countries | Plans that collect tax charge it to buyers in those countries. |
| "Stripe Tax is active in your Stripe account, but it has no tax registrations, so no tax is charged." | Add a registration in Stripe Tax. |
| "Stripe Tax is not active in your Stripe account, so checkouts continue without tax." | Activate Stripe Tax. If the line ends with "Missing:", finish those settings first. |
| "The Stripe Tax status of your Stripe account could not be read." | Apiable could not reach your Stripe Tax settings. Reload the page later. |
What happens at checkout?
When a developer subscribes to a plan that collects tax, and Stripe Tax is active in your account, Stripe calculates the tax from the buyer's location and your registrations and shows it before payment. Otherwise checkout charges no tax.
Checkout always lets the buyer enter a business tax ID. What that changes, such as a reverse charge, is decided by Stripe Tax.
Apiable reads your Stripe Tax settings when checkout starts and keeps them for up to five minutes. Opening the plan's Monetization tab reads them again. If Apiable cannot read them at all, checkout on a plan that collects tax stops with an error rather than continuing untaxed, and the developer can try again later.
What happens to existing plans and subscribers?
Existing plans keep charging no tax until you turn on collection. Existing subscribers keep their current billing, and Stripe calculates no tax for them. A subscriber who changes to a plan that collects tax may need to check out again so Stripe can collect their location.
When a subscriber changes from a paid plan to a plan that collects tax:
- If Stripe Tax is not active, or the subscription is already taxed, or Stripe already knows the subscriber's location, the plan changes straight away.
- Otherwise the change waits. The subscription stays on its current plan and billing.
- In the API Portal, the subscriber chooses Continue to checkout and gives their billing address in a Stripe checkout that charges nothing.
- Back on the subscription page, the subscriber chooses Complete plan change.
While the change waits, the subscription's page in the dashboard shows the pending change, with an action to withdraw it. Moving a subscriber off a plan that collects tax turns tax off for them.
Do you need to enter a VAT rate in Apiable?
No. There is no rate field and no field for the tax portion of a price. Stripe derives both from the buyer's location and your registrations at checkout.
You never split a price into net and tax yourself. You type one amount, say whether tax is inside it or on top, and Stripe does the split per buyer.
How do you charge tax in one country only?
Add a registration for that country in Stripe Tax and none anywhere else. Stripe charges that country's rate to buyers there and no tax to everyone else, because it charges tax only where you are registered.
A UK business that must charge 20 percent to UK buyers and nothing elsewhere adds one GB registration. Nothing per country is configured in Apiable.
What do developers see?
The plan table in your API Portal adds a short note under the price of a plan that collects tax: "Any applicable tax is added at checkout." for Added on top, or "Prices include any applicable tax." for Included in price. There is no note for Use Stripe account default.
The exact tax appears at checkout, once Stripe knows where the buyer is.
Troubleshooting
| What you see | What it means | What to do |
|---|---|---|
| Checkout shows no tax | The plan is on Don't collect tax, or Stripe Tax is not active in your account. | Choose Collect with Stripe Tax and save the plan, and check the Stripe Tax status line. |
| A developer is told "This plan cannot be purchased yet because its tax setup is incomplete." | A price uses Use Stripe account default, and your Stripe account has no default tax behavior. | Set Include tax in prices in Stripe Tax, or choose Included in price or Added on top for the price. |
| Checkout shows no tax for one buyer | You hold no registration for that buyer's country, or the buyer's tax ID changes what is due. | Expected. Add a registration if you must collect there. |
| The status line says there are no tax registrations | Stripe Tax is active but charges nothing without a registration. | Add a registration in Stripe Tax. |
| You changed Stripe Tax settings but checkout has not changed | Apiable keeps your Stripe Tax settings for up to five minutes. | Open the plan's Monetization tab to read them again, or wait a few minutes. |
| The per-price tax options are greyed out | The plan does not collect tax, or its prices are locked by active or pending subscriptions. | Choose Collect with Stripe Tax first. For a locked plan, create a new version to change a price. |
| Existing subscribers are not charged tax | They keep their billing when you turn on collection. | Expected. Tax applies to new checkouts and to subscribers who change plans. |
Related
- Connect Stripe covers connecting the Stripe account this page depends on.
- Monetization covers how pricing models and billing fit together.
- Platform covers where Apiable sits relative to your gateway and your payment provider.