Adaptive Pricing
Let customers pay in their local currency with Adaptive Pricing to increase international revenue.
Adaptive Pricing lets your customers pay in their local currency in more than 150 countries. With Adaptive Pricing, Stripe automatically calculates the localized price and handles all currency conversion. The presentment currency is inferred from the customer’s public IP address. Enabling Adaptive Pricing can increase conversion rates from global customers and increase international revenue.
Use Adaptive Pricing to:
- Display pricing in local currencies based on location
- Calculate prices in real-time using an exchange rate guaranteed for 24 hours
- Unlock payment methods that require local currency
- Facilitate your compliance when presenting supported currencies

Integration effort
Fees
View information on fees and our FAQ.
Manage Adaptive PricingDashboard
Adaptive Pricing is always enabled for Payment Links. Manage Adaptive Pricing for Checkout in your payment settings in the Dashboard. You can enable Adaptive Pricing in a sandbox and live mode. Disabling Adaptive Pricing doesn’t affect Checkout Sessions that have already been converted.
Configure local payment methodsDashboard
Adaptive Pricing can increase the usage of local payment methods by ensuring customers have the option to pay in their local currency and with payment methods most relevant to them. As an example, 70% of all e-commerce transactions in the Netherlands use iDEAL, but it only works with EUR. You can configure which payment methods you accept in your payment methods settings if you use dynamic payment methods. Adaptive Pricing unlocks access to the following payment methods that require presenting in local currency:
- Bancontact
- EPS
- iDEAL
- Link
- P24
Event destinations and reportingServer-side
Adaptive Pricing can affect some parts of your integration, such as event destinations and reporting. Review your integration to make sure any event destinations can handle PaymentIntent objects with local currencies.
- Use the Checkout Session object’s currency and total amount to determine what your customer paid in your integration currency, which is the currency you specified for your prices.
- Use the
presentment_
hash on the Checkout Session object to determine what your customer paid in their local currency.details
The Checkout Session and the underlying PaymentIntent
objects reflect your integration currency and amount.
If a customer pays in their local currency, the checkout.session.completed event contains a presentment_
hash that includes the presentment_
, presentment_
. The amount and currency reflect what your customer paid in the local currency.
{ "id":
, "object": "event", "type": "checkout.session.completed", "data": { "object": { "id":'{{EVENT_ID}}', "object": "checkout.session", "currency": "usd", "amount_total": 1000, "amount_subtotal": 1000, "presentment_details": { "presentment_amount": 1370, "presentment_currency": "cad" } } } }'{{SESSION_ID}}'
Testing
To test local currency presentment for Checkout and Payment Links, pass in a location-formatted customer email that includes a suffix in a +location_
format in the local part of the email. XX
must be a valid two-letter ISO country code.
For example, to test currency presentment for a customer in France, pass in an email like test+location_
.
When you visit the URL for a Checkout Session or Payment Link created with a location-formatted email, you see the same currency as a customer does in the specified country.
Testing Checkout
When you create a Checkout Session, pass the location-formatted email as customer_email to simulate Checkout from a particular country.
You can also create a Customer and specify their email that contains the +location_
suffix. Stripe test cards work as usual.
When it’s possible to present the customer’s local currency in Checkout, the Checkout Session object changes. Fields like currency
, payment_
, and amount_
reflect the local currency and price.
Testing Payment Links
For Payment Links, pass the location-formatted email as the prefilled_
URL parameter to test currency presentment for customers in different countries.
Restrictions
Adaptive Pricing is currently not available for businesses using Connect or Elements with the Payment Intents API.
Additionally, Adaptive Pricing requires the currency for your prices to be one of your settlement currencies. Prices automatically convert during checkout. This applies to prices you create and reference with a price ID and prices you create inline with price_data when you create a Checkout Session.
Adaptive Pricing doesn’t apply for Checkout Sessions that:
- Contain explicitly defined manual currency prices.
- Are in
subscription
mode. - Use Connect parameters like
application_
,fee_ amount on_
, andbehalf_ of transfer_
.data - Use capture_method as
manual
. - Set the currency value on creation.
- Use custom amounts.
Checkout Sessions that aren’t supported by Adaptive Pricing present prices in the original currency that you’ve set your prices in.
Supported currencies 
Businesses in supported regions can automatically convert prices to the local currencies of their customers in the following markets:
North America
South America
Europe
Asia
Oceania
Africa
Pricing 
- You pay 0%
- Your customers pay 2-4%
You don’t directly pay any additional Stripe fees for Adaptive Pricing, as all such fees are paid for by your customers. The Stripe-provided exchange rate you present to your customers includes a conversion fee of between 2-4%, increasing their purchase price by a corresponding amount. The fee applied is determined by Stripe and varies for the purposes of increasing customer conversion. Stripe typically charges a fee of 4% for orders under 500 USD, 3% for 500–1,500 USD, and 2% for orders over 1,500 USD if your customer chooses to pay in their local currency. Your customer doesn’t pay this fee if they choose to pay in the currency you issued your invoice in, but their bank’s exchange rate and fees may apply. For detailed information about current Stripe fees, see our pricing page.
Exchange rate 
Stripe uses the mid-market exchange rate and applies a fee to guarantee the rate for the duration of the Checkout Session (up to 24 hours) through settlement. If the exchange rate changes by more than 5% in that time, Stripe might use the updated exchange rate to calculate your payout.
Learn more about how Stripe handles currency conversions and Adaptive Pricing fees.