Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Online payments
    Overview
    How cards work
    Quickstart
    Accept a payment
    Add funds to your balance
    Faster checkout with Link
    More payment scenarios
      Set up future payments
      Save payment details during payment
      Place a hold on a payment method
      Build a two-step confirmation experience
      Collect payment details before creating an Intent
      Finalize payments on the server
      3D Secure authentication
      Accept card payments in installments
      Card brand choice
      Supported card brands
      Currencies
      Currency conversions
      Settlement Fees
    US and Canadian cards
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Payments
·
HomePaymentsOnline paymentsMore payment scenarios

Currency conversions

Learn more about how Stripe handles currency conversions for you.

Countries with foreign exchange control: Remittance to or from countries with foreign exchange control (including, without limitation, Brazil) are carried out exclusively through authorized channels, pursuant to the legislation applicable in those countries.

Using Connect

Connect platforms have additional considerations with respect to currency conversions.

Stripe supports processing charges in 135+ currencies allowing you to present prices in a customer’s native currency. Doing so can improve sales and help customers avoid conversion costs.

You specify the presentment currency when creating a PaymentIntent or a charge. When a Stripe account receives payments in multiple currencies, Stripe accumulates separate balances for each currency. When those balances are paid out to an associated bank account (or debit card), Stripe automatically sends funds to the associated account for each currency, thereby avoiding exchange fees.

When the presentment currency differs from any of your enabled settlement currencies—the currencies accepted by any of your bank accounts or debit cards—or you have disabled the currency in the payout settings of your dashboard, Stripe automatically converts the payment to your default settlement currency before transferring the funds.

If you choose to create a manual payout in a currency without an associated bank account, a conversion occurs when currency is set to the currency of the source balance:

Command Line
curl https://api.stripe.com/v1/payouts \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d amount=1000 \ -d currency=xaf

As long as there are sufficient funds in the balance for the specified currency, Stripe automatically converts the funds to the default bank account’s currency.

Calculating foreign exchange rates

Exchange rates displayed online are typically mid-market rates: the average between the buy and sell price of the currency. The actual exchange rate you pay ordinarily includes markups from financial institutions. When converting currencies on a payment or transfer, Stripe applies the daily mid-market rate provided by our service providers and takes an additional fee. You can see more details about pricing for currency conversion on our pricing page.

You can estimate currency conversions using our estimation page and see the actual exchange rate used for a conversion through the API or in your Dashboard. Note that the estimation page excludes Stripe fees that may apply to certain types of conversions (as set out on our pricing page).

Avoiding currency conversions

Currency conversions occur at the time the charge is made.

  • If there are multiple bank accounts available for a given currency, Stripe uses the one set as default_for_currency.
  • If there is no bank account available for that currency, Stripe automatically converts those funds to your default settlement currency.
  • In some countries, additional currencies may be enabled for settlement. These can be enabled or disabled on the settlement currencies page.
  • When you add or remove a bank account for that currency, settlement in that currency is enabled or disabled accordingly. If the currency is enabled at the time the charge is made, no conversion occurs.

    If you enable a currency as a settlement currency by mistake, you can pay out funds in your default currency using a manual payout, then disable the accidental settlement currency so you don’t continue to accrue funds in that currency.

If you regularly charge in multiple currencies, you may be able to define multiple bank accounts to support multiple settlement currencies and avoid conversions. Otherwise, you can only avoid currency conversions by charging in your default currency, although that could have a negative impact on your sales.

Conversions on disputes and refunds

If a currency-converted payment is disputed or refunded, the amount you received is converted back to the presentment currency at the current rate. This fluctuates on a daily basis, so the rate used when a charge is converted often differs from the rate used when a dispute or refund occurs. The returned amount can be less—or more—than what the payment provided. Ultimately, a customer is always refunded the exact amount they paid and in the currency they paid in, regardless of the rate and cost to the Stripe user.

For example, if your settlement currency is EUR and you process a 60 USD payment at a rate of 0.88 EUR per 1 USD, the converted amount is 52.80 EUR (excluding the Stripe fee). If the rate is 0.86 EUR per 1 USD at the time of refund, the amount deducted from your account balance is only 51.60 EUR.

Conversions on Stripe fees

If you incur a Stripe fee in a currency for which you do not have a linked bank account, we will automatically convert that fee to your default settlement currency at the time the fee is incurred before charging you. For example, if you are a Stripe Billing user whose default settlement currency is USD, you might sometimes incur the 0.5% variable fee when you present in a non-USD currency. If you have a subscriber to whom you present in EUR for their monthly subscription of 100 EUR, we will convert that 0.50 EUR Stripe Billing fee to USD at the mid-market exchange rate at the time of the charge, at no additional FX cost to you.

See also

  • Payouts
Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Calculating foreign exchange rates
Avoiding currency conversions
Conversions on disputes and refunds
Conversions on Stripe fees
See also
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$