Multi-currency prices
Presenting customers with prices in their local currencies and popular local payment methods can increase conversion and revenue.
To do this, activate Stripe’s Adaptive Pricing feature.
If your business isn’t eligible for Adaptive Pricing or you want more control, you can also manually define multi-currency prices in the API or the Dashboard. Manually defined multi-currency prices override Adaptive Pricing, even if it’s enabled.
Add multiple currencies to a price
- Navigate to a product in the Dashboard
- Click +Add another price to create a new price.
- Fill in the price and select a currency. This first currency is the price’s default currency. Make sure all of your prices have the same default currency.
- Click +Add more currencies to search and select from supported currencies, adding them to your price. Stripe suggests an exchange rate, but you can pick your own.
- Click Add price to save your new multi-currency price.
- Use the multi-currency price you created by passing its ID into line items when you create a Checkout Session.
Local payment methods
Checkout and Payment Links present customers with popular payment methods compatible with their local currencies.
For example, for customers located in the Netherlands, Checkout and Payment Links convert prices to Euros and also present popular Dutch payment methods like iDEAL.
You can configure which payment methods you accept in your payment methods settings.
Pricing tables
Multi-currency prices also work with pricing tables. To render local currencies to customers viewing your pricing table, all of the pricing table’s Prices must include the customer’s local currency in their currency_options
. They must also include a tax_behavior
for the given currency if you’re using Stripe Tax.
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_behavior
on the Checkout Session is specified for the relevant currency for all of the Checkout Session’s prices, shipping rates, and discounts. - You didn’t specify a currency during Checkout Session creation.
If Checkout can’t localize the currency because the relevant currency option or tax_behavior
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_intent_data.application_fee_amount
orpayment_intent_data.transfer_data.amount
.
Fees
Our 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 our pricing page for more details about these fees.
Specify a currency
When you use multi-currency Prices in a Session, Checkout automatically handles currency localization for your customers.
However, you can override this behavior by specifying a currency during Checkout Session creation.
In the example above, the Checkout Session’s currency is always EUR (eur
) regardless of a user’s location.
Testing
To test local currency presentment for Checkout, Payment Links, and the pricing table, 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 [email protected]
.
When you visit the URL for a Checkout Session, Payment Link, or pricing table created with a location-formatted email, you see the same currency as a customer does in the specified country.
Checkout
When you create a Checkout Session, pass the location-formatted email as customer_email.
You can also create a Customer and specify their email that contains the +location_XX
suffix.
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.
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.
Pricing table
For the pricing table, pass the location-formatted email as the customer-email attribute to test currency presentment for customers in different countries.