Calculate tax
Learn how to calculate tax with Stripe Tax.
The most common forms of indirect taxes for your business are sales tax, VAT, and GST. These taxes apply on the sale of physical goods, digital goods, and services.
Stripe calculates tax on a transaction taking into account some or all of the following factors:
- The location of the seller
- The location of the customer
- The type of the product sold
- Whether the transaction involves a reverse charge
- The status of the customer (for example, whether they’re a VAT-registered business, private person or an exempt organization)
How Stripe uses addresses
Stripe uses a single address as the customer’s location, or transaction destination, when calculating taxes. For more information, see which customer address we use.
In certain scenarios, it’s important to identify the origin of a transaction. Stripe generally uses the address where your business is located as the origin of a transaction. This address is defined as your origin address in the Dashboard or as head_
if using the tax settings object.
How to use ship-from addresses
You can add ship-from addresses that differ from your business address for tax calculation. To add them, use the ship_
transaction object. You can add ship-from locations only using the Stripe Tax API. They aren’t available in integrations of Stripe Tax with Payment Links, Checkout, or Billing and Invoicing. If you enter an unrecognized ship-from address, Stripe returns a shipping_
error.
Stripe Tax can designate only one address as the origin of a transaction even though in some countries the determination of origin can vary by product type. If you provide the ship-from address, Stripe Tax uses it to calculate tax for both services and physical goods. If you don’t provide a ship-from address, Stripe Tax assumes that the origin of the transaction is the address where your business is located. When selling a combination of products that require different origin locations, consider splitting the transaction accordingly.
Discounts and tax calculations
Stripe Tax calculates tax after applying discounts to the subtotal. This ensures tax calculation on the actual amount paid by the customer.
For example, with a product priced at 150 USD and a 20 USD discount:
- The subtotal after discount is 130 USD.
- Tax is calculated on the 130 USD amount.
- The final total is the discounted subtotal plus the calculated tax.
Discounts don’t affect the tax rates themselves, only the amount on which tax is calculated. When using the Tax API, calculate the discount before sending the request.
Tax breakdowns
Stripe Tax provides detailed tax breakdowns for each transaction. These breakdowns aren’t sorted in any specific order. All applicable taxes are calculated and applied simultaneously. The order of items in the breakdown doesn’t indicate priority or application sequence.