# Adaptive Pricing and Stripe Tax Learn how tax is calculated and reported when using Adaptive Pricing. When you use Adaptive Pricing, all tax calculation, tax reporting, and invoicing remain in your *integration currency* (The currency you use to price your goods and services. It can differ from the customer's presentment currency and from your settlement currency) before any currency conversion. Your customer can pay in their local currency, but this doesn’t change your reporting. > This guide explains how Stripe Tax handles indirect taxes (such as VAT and sales tax) with Adaptive Pricing. It doesn’t explain 1099-K reporting. ## How tax is calculated with Adaptive Pricing Adaptive Pricing converts your product prices into your customer’s local currency at checkout. Stripe Tax calculates tax on the original price you set, not the converted amount. Here’s the flow: 1. You create a product with a price in a specific *integration currency* (The currency you use to price your goods and services. It can differ from the customer's presentment currency and from your settlement currency) (for example, 100 USD). 1. Stripe Tax calculates tax on the original price you set (100 USD). 1. The price and tax amount are converted to the customer’s local currency for display purposes. 1. The customer can pay in their local currency, or in your original *integration currency* (The currency you use to price your goods and services. It can differ from the customer's presentment currency and from your settlement currency). For indirect tax purposes, Stripe Tax treats the conversion fee as a non-taxable currency conversion cost, so it isn’t included in the taxable amount. ## Examples The following examples show how tax is calculated for a product priced at 100 USD by a business based in New York, purchased by a customer in Germany who sees the price in EUR through Adaptive Pricing. All examples use a conversion rate of 1 USD to 0.9476 EUR for amounts presented to the customer (Stripe’s conversion fee is included in this rate) and an exchange rate of 1 USD to 0.92 EUR for tax filing calculations. ### Taxed at the customer’s destination When the sale is taxable at the customer’s destination (Germany in this example), the filing currency in the tax reports is determined by the destination jurisdiction. In this example, German VAT at 19% applies and the filing currency in the tax reports is EUR. #### Tax-exclusive In this example, the USD `Price` has tax-exclusive behavior. German VAT at 19% is added on top of the product price. | | Value | | -------------------------------------------- | --------------------------------- | | **Product price** | 100 USD | | **Presentment price (via Adaptive Pricing)** | 94.76 EUR (100 x 0.9476) | | **Taxable amount** | 100 USD | | **VAT rate (Germany)** | 19% | | **Tax amount** | 19 USD | | **Tax in presentment currency** | 17.90 EUR (19 x 0.9476) | | **Total customer pays** | 112.66 EUR (product + tax in EUR) | | **Tax report, currency** | USD | | **Tax report, tax amount** | 19 USD | | **Tax report, filing currency** | EUR | | **Filing tax amount** | 17.48 EUR (19 x 0.92) | #### Tax-inclusive In this example, the USD `Price` has tax-inclusive behavior. German VAT at 19% is included in the product price. | | Value | | -------------------------------------------- | -------------------------------- | | **Product price (tax-inclusive)** | 100 USD | | **Pre-tax amount** | 84.03 USD (100 / 1.19) | | **Tax amount** | 15.97 USD (100 - 84.03) | | **Presentment price (via Adaptive Pricing)** | 94.76 EUR (100 x 0.9476) | | **Total customer pays** | 94.76 EUR (tax already included) | | **Tax report, currency** | USD | | **Tax report, tax amount** | 15.97 USD | | **Tax report, filing currency** | EUR | | **Filing tax amount** | 14.69 EUR (15.97 x 0.92) | In both cases, the tax report records the tax amount in USD (the `currency` on the `Price`) with a filing currency in the tax reports of EUR (the destination jurisdiction’s currency). The filing tax amount in EUR differs from the tax amount expressed in the presentment currency, even though both are in EUR. For VAT reporting, the USD tax amount must be converted to the destination currency using exchange rates from the local tax authority or the European Central Bank (not the rate used for customer presentment). ### Taxed at the business’s location When the sale is taxable at the business’s location (New York in this example), the filing currency in the tax reports matches the business’s jurisdiction. In this example, New York sales tax at 4% applies and the filing currency in the tax reports is USD, the same as the `currency` on the `Price`. The customer still sees the price in EUR through Adaptive Pricing, but the filing currency and filing amount don’t involve a currency conversion. #### Tax-exclusive In this example, the USD `Price` has tax-exclusive behavior. New York sales tax at 4% is added on top of the product price. | | Value | | --------------------------------------------- | -------------------------------- | | **Product price** | 100 USD | | **Presentment price (with Adaptive Pricing)** | 94.76 EUR (100 x 0.9476) | | **Taxable amount** | 100 USD | | **Sales tax rate (New York)** | 4% | | **Tax amount** | 4 USD | | **Tax in presentment currency** | 3.79 EUR (4 x 0.9476) | | **Total customer pays** | 98.55 EUR (product + tax in EUR) | | **Tax report, currency** | USD | | **Tax report, tax amount** | 4 USD | | **Tax report, filing currency** | USD | | **Filing tax amount** | 4 USD | #### Tax-inclusive In this example, the USD `Price` has tax-inclusive behavior. New York sales tax at 4% is included in the product price. | | Value | | --------------------------------------------- | -------------------------------- | | **Product price (tax-inclusive)** | 100 USD | | **Pre-tax amount** | 96.15 USD (100 / 1.04) | | **Tax amount** | 3.85 USD (100 - 96.15) | | **Presentment price (with Adaptive Pricing)** | 94.76 EUR (100 x 0.9476) | | **Total customer pays** | 94.76 EUR (tax already included) | | **Tax report, currency** | USD | | **Tax report, tax amount** | 3.85 USD | | **Tax report, filing currency** | USD | | **Filing tax amount** | 3.85 USD | In both cases, the filing currency in the tax reports is USD (the same as the `currency` on the `Price`) because the tax is filed in the business’s jurisdiction. No currency conversion is needed for filing, even though the customer paid in EUR. ## Tax assessment on the price Tax is assessed on the price you set for your product because: - Your product’s price represents the actual sale price of the goods or services. - Tax liability is determined when the transaction is created, not when payment is received. - For indirect tax purposes, Stripe Tax treats the conversion fee as a non-taxable currency conversion cost. It compensates for exchange rate fluctuations and isn’t part of the value of the goods or services sold. ## Refunds When you issue a refund for a transaction that used Adaptive Pricing, Stripe Tax calculates the tax reversal based on the `Price` currency and amount, not the presentment amount the customer paid. ## Reconciliation considerations Because tax is calculated and reported in the `currency` on the `Price`, keep the following in mind when reconciling your books: - Tax reports show amounts in the `currency` on the `Price`. If your product is priced in USD, tax amounts appear in USD. - If you need to reconcile against cash received in the presentment currency, account for the currency conversion between the reported tax amount and the amount collected. - At scale, small rounding differences can accumulate between the converted tax amount and the amount collected in the presentment currency. These rounding differences are a normal result of currency conversion. ## Tax-inclusive and tax-exclusive behavior If you set the default tax behavior setting to `Automatic` ([inferred_by_currency](https://docs.stripe.com/api/tax/settings/update.md#update_settings-defaults-tax_behavior) in the API), tax calculation is tax-exclusive or tax-inclusive based on your *integration currency* (The currency you use to price your goods and services. It can differ from the customer's presentment currency and from your settlement currency) (the currency of your original `Price`). This ensures that your revenue margins don’t change based on the currency your customer pays in. The table below demonstrates this behavior, assuming a 10% tax rate: | Price | Tax behavior inferred | Price after tax | Adaptive Pricing currency | Customer pays | | ----------- | --------------------- | --------------- | ------------------------- | ----------------------- | | 10 USD | Tax-exclusive | 11 USD | USD | 11 USD | | 10 USD | Tax-exclusive | 11 USD | EUR | 11 USD converted to EUR | | 10 EUR | Tax-inclusive | 10 EUR | EUR | 10 EUR | | 10 EUR | Tax-inclusive | 10 EUR | USD | 10 EUR converted to USD | If you set `defaults.tax_behavior` as `inferred_by_currency`, it applies based on the currency on the `Price`, not the presentment currency. For example, if your price is in USD and you use the inferred setting, the behavior is determined by your USD configuration, even if the customer pays in EUR. ## See also - [Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md) - [How Stripe Tax calculates tax](https://docs.stripe.com/tax/calculating.md)