Manual currency prices
Present local currencies to customers with manual currency prices.
Stripe supports manually defining prices in different currencies when creating products. However, Stripe recommends using Adaptive Pricing instead of manual currency prices to reduce currency exchange rate fluctuation risk and to automatically enable support for over 100 local currencies.
Use manual currency prices instead of Adaptive Pricing when:
- Adaptive Pricing isn’t supported for your business or Checkout configuration. Reach out to adaptive-pricing-beta@stripe.com to ask about joining the preview.
- You’re supporting a region where you’re comfortable taking on fluctuations in the currency’s exchange rate.
Manually defined multi-currency prices override Adaptive Pricing for those currencies, even if it’s enabled.
Create a Checkout SessionServer-side
Create a Checkout Session using the multi-currency price:
TestingServer-sideClient-side
To test local currency presentment, 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 created with a location-formatted email, you see the same currency as a customer does in the specified country.
When you create a Checkout Session, pass the location-formatted email as customer_email to simulate 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, the Checkout Session object changes. Fields like currency
, payment_
, and amount_
reflect the local currency and price.
Local payment methods 
The Checkout Session presents customers with popular payment methods compatible with their local currencies. For example, for customers located in the Netherlands, the Checkout Session converts prices to EUR and also present popular Dutch payment methods like iDEAL.
You can configure which payment methods you accept in your payment methods settings.
Supported integrations 
Checkout automatically presents the local currency to customers if all of the following are true:
- The Checkout Session’s prices, shipping rates, and discounts have the relevant currency in their
currency_
.options - If a price on the Checkout Session has an upsell, the upsell’s price has the relevant currency in its
currency_
.options - For a Checkout Session using Stripe Tax, the
tax_
on the Checkout Session is specified for the relevant currency for all of the Checkout Session’s prices, shipping rates, and discounts.behavior - You didn’t specify a currency during Checkout Session creation.
If Checkout can’t localize the currency because the relevant currency option or tax_
is missing, the Session presents to the customer in the default currency. The default currency must be the same across all prices, shipping rates, and discounts.
Restrictions 
Price localization isn’t available for Checkout Sessions that:
- Use manual tax rates.
- Use
payment_
orintent_ data. application_ fee_ amount payment_
.intent_ data. transfer_ data. amount
Fees 
Stripe’s standard transaction fees apply to automatically converted transactions:
- Cards or payment methods fee
- International cards or payment methods fee (if applicable)
- Currency conversion fee
See the pricing page for more details about these fees.