Manual currency prices
Learn how to manually present local currencies to customers.
You can manually define prices in different currencies when you create products. Use manual currency prices when:
- You’re supporting a region where you can accept fluctuations in the currency’s exchange rate.
- Adaptive Pricing isn’t supported for your business or checkout configuration.
Multi-currency prices that you manually define override Adaptive Pricing for those currencies, even if it’s enabled.
Although Stripe supports manual currency prices, we recommend using Adaptive Pricing to reduce the risk of currency exchange rate fluctuations and to automatically enable support for over 100 local currencies. Contact adaptive-pricing-beta@stripe.com to request to join the preview.
Create a Checkout SessionServer-side
Create a Checkout Session using the multi-currency price:
Test local currency presentmentServer-sideClient-side
To test local currency presentment, pass a customer email address that includes a suffix formatted as +location_
. Make sure the XX
value is a valid two-letter ISO country code.
For example, to test currency presentment for a customer in France, pass an email formatted as test+location_
. When you visit the Checkout Session URL created with a location-formatted email, you see the same currency that a customer sees 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. The currency
, payment_
, and amount_
fields reflect the local currency and price.
OptionalSpecify a currencyServer-side
When you use multi-currency prices, the Checkout Session automatically handles currency localization for your customers. If you want to override this behavior, you can specify a currency when you create the Checkout Session.
In the following example, the currency for the Checkout Session is always EUR, regardless of the customer’s location.
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 
The Checkout Session automatically presents the local currency to customers when the following are true:
- The prices, shipping rates, and discounts for the Checkout Session have the relevant currency in the
currency_
.options - For a Checkout Session using Stripe Tax, the
tax_
is specified for the relevant currency for all prices, shipping rates, and discounts for the Checkout Session.behavior - You didn’t specify a currency when creating the Checkout Session.
If the relevant currency option or tax_
is missing, the Checkout Session presents the default currency to the customer. 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.