Sales Tax & VAT
Sales tax & VAT support in Web Billing is currently an invite-only beta feature. If you'd like to get early access, please open a support request.
If you're selling subscriptions and purchases through Web Billing, you may need to collect sales tax and VAT in transactions, depending on your business setup and local tax laws.
Unlike the mobile app stores, selling directly to customers on the web means complying with any tax obligations that apply, based on:
- The location of your business
- The tax jurisdiction of your customers (including country, state/province and county)
- The category of product you're selling (e.g. software services, digital content etc.)
- The amount of revenue you have in a given region
While RevenueCat and Stripe provide tools to monitor and charge sales tax and VAT for your business, you should seek tax advice from a qualified tax accountant if you're uncertain about your tax obligations, or how specific regional tax laws apply to you.
Overview: Stripe Tax support in Web Billingβ
RevenueCat integrates with Stripe Tax, which helps you:
- Understand when you need to register for tax collection in a specific location (threshold monitoring)
- Manage and report on registered tax rates and collected taxes
- Calculate and collect any relevant taxes directly in the Web Billing checkout
Customers will see a tax breakdown in the checkout when a tax rate is applied to their purchase:
Stripe Tax feesβ
If you enable Stripe Tax in your RevenueCat integration, Stripe will charge you a per-transaction fee, for transactions where taxes are collected. This is in addition to the base Stripe transaction fee.
Supported countriesβ
A full list of countries where Stripe Tax allows you to calculate and collect taxes are available in Stripe's documentation.
Current limitationsβ
We've designed the RevenueCat Stripe Tax integration to meet the needs of the majority of our customers. The following limitations currently apply:
- B2C product support only βΒ the invoicing and tax needs for business customers differ from consumer products. RevenueCat doesn't collect customers' tax IDs, issue reverse charge VAT invoices, or invoices that meet the requirements of business-to-business transactions.
- Pre-defined tax behavior βΒ transactions for customers in the US and Canada will use tax-exclusive pricing (applicable taxes are added to the product price), and the rest of world uses tax-inclusive pricing (all taxes are included in the product price).
- Existing subscriptions not affected β enabling tax collection will only apply tax rates to new subscriptions purchased after the feature was enabled. Renewals for existing subscriptions that were active before tax collection was enabled will not have taxes calculated or applied.
- Tax reporting in Stripe dashboard only β The RevenueCat dashboard doesn't provide tax reports or analytics. You should use the reporting tools available in your Stripe dashboard.
How to configure Stripe Tax with Web Billingβ
1: Enable up Stripe Tax in your Stripe dashboardβ
If you have not already configured Stripe Tax, you should follow the instructions in your dashboard to enable automatic tax calculation (these steps may vary depending on your business location).
Since Web Billing uses its own product and price configuration, you don't need to add or configure tax settings on any products in Stripe.
2: Enable tax collection in the RevenueCat dashboardβ
- Navigate to the Web Billing payment provider in your RevenueCat account.
- In the payment provider tab, enable "automatically collect taxes using Stripe Tax" and save the changes.
- Still in the payment provider tab, Set the product tax code for your product. The default tax code is General - Electronically Supplied Services (
txcd_10000000
) which should be applicable for a lot of app-based businesses. For more guidance on product tax codes, see Stripe's documentation.
While you can configure default and product-specific tax codes in Stripe's dashboard, these are not used in Web Billing; only the product tax code configured in the RevenueCat dashboard is applied.
3: Add tax registrations for locations where you'll collect taxβ
Taxes are only applied to a purchase when there's a relevant tax registration added to the Registrations page in your Stripe dashboard.
You can use Stripe's built-in threshold monitoring to understand when you need to register for sales tax in a given location. The process for registering varies depending on the authority you're registering with, and Stripe provides automated registration in certain regions.
As soon as you've added a registration in the Stripe dashboard, Web Billing will start applying taxes for new purchases in that location.
When you add a tax rate for a given location, any relevant taxes will apply for future purchases in that location, but NOT renewals of existing subscriptions. This limitation applies while the feature is in beta.
Testing tax collectionβ
To test that tax rates are correctly applied to Web Billing purchases:
- Add tax registrations in Stripe's test mode β you need to configure separate tax registrations in test mode, which are separate from any registrations in live mode.
- Make sure tax collection is enabled in the RevenueCat Web Billing config (note: if you have any tax registrations enabled in live mode, they will be applied at this point. we recommend only adding registrations in test mode during testing).
- Load a sandbox Web Paywall Link, or initiate a purchase with the Web SDK in sandbox mode.
- In the checkout, select a billing address for a location where a tax rate is active in Stripe's test mode.
- If the tax registration is applicable for your product in the selected location, you should see that taxes are shown on the checkout page and in the purchase receipt.
Note that not all jurisdictions apply sales tax collection to software products; you might not see a tax rate applied even though you've added a registration.
As a test case, with the product tax category set to General - Electronically Supplied Services (txcd_10000000
), you can check out with a Texas billing address, you should see a tax rate applied.
FAQβ
How is a customer's tax location determined?β
When a customer begins a purchase through a Web Paywall Link or Web SDK purchase flow, their tax location will be determined based on the billing address they enter, using country, state and postcode/zipcode information. The country
field is pre-filled based on the customer's IP address location.
How does Sales Tax and VAT affect the price of my products?β
For customers with a billing address in the USA & Canada, tax-exclusive mode is used (tax is added to the product price). For all other locations, tax-inclusive mode is used (tax is already included in the product price).
Where can customers see tax information?β
Any applicable taxes are broken down in the checkout, in email receipts and PDF invoices and receipts available in the customer portal.
How can I report on collected taxes?β
You can use Stripe Tax reports in the Stripe dashboard to report on transactions and collected taxes for accounting purposes.
How does tax collection work with wallet payment methods?β
If you have enabled Apple Pay or Google Pay, the billing address in the wallet payment method is used to determine the customer's tax location.