Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
    Overview
    Quickstarts
    Customise look and feel
    Collect additional information
    Collect taxes
    Dynamically update checkout
    Manage your product catalogue
    Subscriptions
    Manage payment methods
    Let customers pay in their local currency
      Define manual currency prices
    Add discounts, upsells, and optional items
    Set up future payments
    Save payment details during payment
    Manually approve payments on your server
    After the payment
    Elements with Checkout Sessions API beta changelog
    Migrate from legacy Checkout
    Migrate Checkout to use Prices
Build an advanced integration
Build an in-app integration
Payment Methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsBuild a checkout page

Adaptive Pricing

Let customers pay in their local currency with Adaptive Pricing to increase international revenue.

Copy page

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
A customer in France views a price localized from USD to EUR

Integration effort

No code

Fees

View information on fees and our FAQ.

Manage Adaptive Pricing
Dashboard

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 methods
Dashboard

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 reporting
Server-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_details hash on the Checkout Session object to determine what your customer paid in their local currency.

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_details hash that includes the presentment_amount, presentment_currency. The amount and currency reflect what your customer paid in the local currency.

{ "id":
'{{EVENT_ID}}'
, "object": "event", "type": "checkout.session.completed", "data": { "object": { "id":
'{{SESSION_ID}}'
, "object": "checkout.session", "currency": "usd", "amount_total": 1000, "amount_subtotal": 1000, "presentment_details": { "presentment_amount": 1370, "presentment_currency": "cad" } } } }

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_XX 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_FR@example.com.

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.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
: \ -d "line_items[0][price]"="{{PRICE_ID}}" \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d success_url="https://example.com/success" \ --data-urlencode customer_email="test+location_FR@example.com"

You can also create a Customer and specify their email that contains the +location_XX 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_method_types, and amount_total reflect the local currency and price.

Testing Payment Links

For Payment Links, pass the location-formatted email as the prefilled_email 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_behalf_of, and 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.

See also

  • Adaptive Pricing FAQ
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access programme.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc