Stripe Sales Tax Integration Guide (Beta)
- Last Updated
- 2020-10-08
- Platform
- Stripe Billing
We put together this integration guide for Stripe customers looking to better understand TaxJar’s integration for sales tax calculations, reporting, and filing.
You’ll learn how TaxJar provides tax calculations and syncs invoices for reporting / filing. For a primer on everything sales tax, read our Sales Tax 101 guides before getting started.
Contact us to opt-into Tax Calculations
Stripe Tax Calculations is currently in limited release. By default, after linking your Stripe account to TaxJar, you will not be asked if you'd like TaxJar to calculate taxes for your invoices.
If you'd like to join our limited release, please contact support. You will then need to edit your Stripe connection with TaxJar to enable Tax Calculations. Continue following the guide to enable tax calculations
Table of Contents
- Stripe Services
- Linking Your Account
- Sales Tax Reporting
- Sales Tax Calculations
- Understanding Invoice’s Sales Tax
- Product Exemptions
- Customer Exemptions
- Limitations
Stripe Services
Before we explore TaxJar’s integration, it’s good to understand Stripe’s many offerings, and how TaxJar’s integration may support those solutions.
Stripe Payments and Stripe Checkout
Stripe Checkout is a Stripe-hosted checkout solution, where the business would collect a list of items into a cart and send that cart and customer to Stripe where the payment is collected. If the business wants to customize or self-host this checkout process, then Stripe Payments is the solution which allows businesses to use Stripe’s simplified API. Stripe Payments and Stripe Checkout offers three modes, two of which are relevant for TaxJar.
In both modes, it’s important to require billing address collection.
If the checkout is using payment mode “One-time payments”, then tax calculations is not supported. TaxJar will be able to import these charges but does not receive the line items from the charges. Stripe is creating charges in this mode, which does not have enough information for accurate tax calculations.
If the checkout is using subscription mode “Recurring payments”, then tax calculations and imports are supported. Stripe is creating invoices which contains line items and enough information for tax calculations.
Stripe Billing
Stripe Billing offers businesses a way to bill customers by creating invoices and emailing invoices to customers. It’s the basic building blocks that Stripe Checkout and Stripe Payments use as well.
The rest of this guide is using Stripe Billing as the example solution.
Linking Your Account
Once you have a Stripe account and TaxJar account, log into your TaxJar account. Navigate to Account → Linked Accounts. You will see a button to initiate an integration between your TaxJar account and your Stripe account. Click the Stripe button.

After linking your Stripe account and receiving confirmation from our Support team that your account’s been enabled for calculations, TaxJar will prompt you if you want to activate sales tax calculations on your invoices.
Why does TaxJar need write-access to my Stripe account?
TaxJar can calculate taxes for your invoices on your behalf. For us to do that, we must be able to create new Tax Rates in your Stripe account, and update your invoices and invoice line items with those tax rates.
We do not alter your invoices in any other way, and you can always deactivate TaxJar's tax calculation integration. Read on for more details on how TaxJar manages taxes for you in Stripe's system.
Sales Tax Reporting
After you link your Stripe account to TaxJar, we will be able to import all paid invoices, credit notes, and charges for you automatically. Immediately after linking, we will trigger an import to fetch recent transactions from Stripe, and we schedule regular imports to capture new and updated invoices, charges, and credit notes in your Stripe account.
Invoices
Invoices have the most detail and include line items, tax rates, the customer, associated charges and credit notes.
Charges
A charge represents the movement of money, either collected from the buyer or refunded from the seller to the buyer. These charges can be associated with invoices to represent payments or refunds on that invoice. Charges may also stand alone, without being attached to an invoice.
Credit Notes issued before payment
Credit Notes that are created before the customer has paid the invoice are imported into TaxJar as discounts on orders. Since payment has not yet occurred, we interpret credit notes as discounts on the order.
Credit Notes issued after payment
Credit Notes that are created after the customer has paid the invoice are imported into TaxJar as refunds and associated with the order. Since payment has already occurred, we don’t update the original order and instead import the transaction as a refund since this refund may occur in different tax periods.
Sales Tax Calculations
Contact us to opt-into Tax Calculations
Stripe Tax Calculations is currently in limited release. By default, after linking your Stripe account to TaxJar, you will not be asked if you'd like TaxJar to calculate taxes for your invoices.
If you'd like to join our limited release, please contact support. You will then need to edit your Stripe connection with TaxJar to enable Tax Calculations.
After you link your Stripe account to TaxJar, you will be asked if you want TaxJar to automatically calculate taxes for invoices.

Once you check this box and click “Save & Continue”, TaxJar will start listening to Stripe webhooks for certain events. Stripe will send data to TaxJar after invoices are are created and updated. TaxJar will react to these events and update the invoice with taxes immediately.
If you want to deactivate TaxJar’s integration for sales tax calculation, then you may edit the connection and uncheck this box. Imports will continue to happen normally. If you wish to completely disconnect the TaxJar integration, then “unlink” the account; unlinking will stop tax calculations and imports for Stripe.

Understanding Invoice’s Sales Tax
Now that your Stripe account is linked and activated for sales tax calculations, Stripe and TaxJar will work together when you are creating and updating invoices. Let’s walk through an invoice together.
First we will create an invoice. We will use Stripe’s user interface (UI) to create the new invoice. You may also create invoices programmatically through their API. For this guide, we will focus on Stripe’s UI.

Next we will attach a customer that is responsible for the new invoice. If you don’t already have the customer in your system, you may create one at the same screen. In this case, we already have a taxable customer.

Next we will add line items to the invoice.

In this moment, you won’t see the taxes update immediately, but rest assured that the tax calculations are happening behind the scenes. Before you finalize the invoice, refresh the page and you should see the taxes be filled in. Let’s refresh the page now to verify that all is working.

TaxJar has calculated all the taxes for your invoice, created 3 new Tax Rates in this scenario, and attached those new rates to the invoice item. At this point, you can submit your invoice for payment.
Do I need to refresh the page for every invoice?
Absolutely not. This is just an illustration to show you that the integration is doing its job. When invoices are updated with new invoice items, changed quantities, and a number of other factors, Stripe will send these events to TaxJar and will wait on TaxJar to acknowledge before you can send the invoice to your customer for payment.
Product Exemptions
Your products and charges may need to have product tax codes attached to them; these codes inform TaxJar how the item should be treated. For example, some products may be tax exempt or have reduced rates.
Charges
While TaxJar will not automatically do tax calulations on charges, we will calulate how much tax should have been collected when we import the charge for reporting and filing. To make sure this matches you’ll want to add metadata to your charge.
Add metadata to your charge with the key of product_tax_code and the value equaling a TaxJar product tax code.
Products
Let’s navigate to our products, and click on a product that should be classified.


To classify this product, we are going to add metadata to the product. TaxJar will read this metadata and use it to inform how we calculate taxes on the invoice line items that include this product.
The key should equal product_tax_code, and the value should equal the code provided by TaxJar. In this case, it is 1411803A0001. The good news is that once the product tax codes are attached to the product, they will be applied to all invoices going forward. Be sure to double-check you’re adding the correct product tax codes.
See a list of our current product tax codes.
Let’s see how it works. Back on our invoice, let’s add another line item. This time, we’ll add a gift card which should be tax exempt.

Now that we have two items, Stripe displays more information about how the taxes are affecting the invoice.
Since TaxJar knows about this product tax code, we know not to attach any tax rates to that line item. Stripe confirms this with the tool-tips which specify that the taxes are only applied to the taxable line items. You will also notice that no tax rate sits on tax-exempt line items.
Customer Exemptions
Products are not the only entities that can be tax exempt; customers may also be tax exempt. TaxJar can handle this too! The easiest way to express this is from Stripe’s system when editing the customer’s record. Let’s navigate to a customer and mark them as tax exempt.

Once at the customer details, you can edit the customer information to classify them as tax exempt.


Find their “Tax status”, switch it to “Exempt”, and save the customer. You can now create a new invoice, attach it to the exempt customer, and verify that no taxes are attached to any line items.
If you operate within a country that has VAT (such as the EU countries), then you may want to consider Stripe’s tax status of “Reverse charge”. Depending on your situation, you may want to shift VAT reporting to the EU customer. TaxJar will treat these customers as “exempt” in your reports.

Limitations
TaxJar provides the best experience possible for Stripe users, but there are some areas that are limited due to the available Stripe APIs.
Inclusive Tax Rates
TaxJar creates Tax Rates as tax exclusive, meaning that TaxJar will attach tax-exclusive rates to your invoice line items, which will increase the amount of money to be collected from the buyer to account for those taxes.
Read more about exclusive Tax Rates at Stripe
Standalone payments
Imports support standalone payments; the limitation is only with sales tax calculations.
For sales tax calculations, standalone payments are not attached to invoices, and therefore lack context required to accurately calculate taxes for that payment. Also, Stripe does not allow attaching tax rates to standalone payments.
Custom Line Items on Credit Notes.
Custom line items on credits notes have some limitations. Imports of credit notes and their line items are not affected; this limitation is only about sales tax calculations.
When an invoice is paid, you may issue credits back to the customer for a variety of reasons. Usually, credits are interpreted as partial or full refunds on the original invoice.
For example, if you sell 2 Breakable Pots and the customer receives 1 as broken during shipment, you may choose to refund the one Breakable Pot. This may be issued as a credit note in Stripe’s system where you specify that a quantity of 1 Breakable Pot as credited. Stripe will do the right thing automatically and also refund the tax collected for that 1 Breakable Pot. This is a supported scenario; you do not need to do anything to account for refunded taxes in this scenario.
Another example, if you sell 2 Breakable Pots but the customer is not satisfied with the product, you might decide to refund $5 of the total sale (which does not correlate to any item prices). You can create a custom line item in the credit note, specify the amount as $5, and issue the credit. In this scenario, you must manually attach the appropriate taxes to the new custom line item. Remember, TaxJar attaches taxes to each line item and since you’re creating a new line item, now you must associate the appropriate taxes to that new line item.
Let’s walk through this together.
First we will create a new credit note. Notice that the taxes are applied to the line items.

In this scenario, we have 3 taxes applied: A state tax, a county tax, and a special district tax. Let’s remember these.
Uncheck the existing line items since we’re not crediting those in their entirety. Now we will create a custom line item.

With the new custom line item, click “Set item tax” next to it, and attach the same tax rates attached to the other line items.

Verify that the tax rates are applied. You can see the total tax rate.

Now you’re ready to issue a credit for the custom line item, which represents a partial refund. This will credit the appropriate amount of tax that was originally collected.