Skip to content
Sign in
An image of the Stripe logo
/
Create account
Sign in
Home
Payments
Finance automation
Banking as a service
Developer tools
No-code
All products
Home
Payments
Finance automation
Home
Payments
Finance automation
Banking as a service
Developer tools
Overview
Get started
About Stripe payments
Start an integration
Payment Links
Checkout
Web Elements
Mobile Elements
Payment scenarios
During the payment
After the payment
Add payment methods
More payment scenarios
Faster checkout with Link
Other Stripe products
Connect
    Overview
    Get started
    Collect payments then pay out
    Enable other businesses to accept payments directly
    Pay out money
    Explore Connect
    Onboard your accounts
    Choose your account type
    Standard
    Express
    Custom
    Update accounts
    Service agreement types
    Payment methods
    Account capabilities
    Handle verification with the API
    Additional Verifications
    Update verified info
    Connect embedded components
    Quickstart
    Quickstart (beta)
    Get started with Connect embedded components
    Customize Connect embedded components
    Accept payments
    Create a charge
    Create a payments page
    Create payment links with Connect
    Connect integration guide
    Dynamic payment methods
    Set statement descriptors
    Connect platforms using the Payment Methods API
    Create subscriptions
    Create invoices
    Debit Express and Custom connected accounts
    Pay out
    Set bank and debit card payouts
    Bank accounts and debit cards
    Manage payout schedule
    Manual payouts
    Payout reversals
    Instant Payouts
    Cross-border payouts
    Crypto payouts
    Manage funds
    Add money to your platform balance
    Account balance
    Handle multiple currencies
    Manage accounts
    Best practices
    Listen for updates
    Dashboard account management
    Understanding risk offerings
    Platform controls for Standard accounts
    Make API calls for connected accounts
    Set MCCs
    Testing
    Payment Method Configurations API
    Migrate to Payment Method Configurations API
    Multiple payment method configurations
    Manage tax forms
    Overview
    Get started with tax reporting
    1099 Tax Support and Communication Guide
    Tax form settings
    Calculation methods
    Identity information on tax forms
    File tax forms
    File tax forms with states
    Identify forms with missing information
    Update tax forms
    Deliver tax forms
    Deliver tax forms with Stripe Express
    Correct tax forms
    Split tax forms
    Tax year changeover
    What's new for tax year 2023
Terminal
Radar
Financial Connections
Crypto
Identity
Climate
Resources
About the APIs
Implementation guides
Regulation support
Testing
Connect
·
HomePaymentsConnect

Working with multiple currencies

Support processing charges in multiple currencies with Connect.

Stripe supports processing charges in 135+ currencies. This allows you to present prices in a customer’s native currency and avoid conversion costs for customers.

The currencies you can use are determined by the country of the Stripe account where the charge is made.

Charge typeCurrency determined by
Direct chargesCountry of the connected account
Destination chargesCountry of the platform account
Destination charges using on_behalf_ofCountry of the connected account
Separate charges and transfersCountry of the platform account
Separate charges and transfers using on_behalf_of at charge timeCountry of the connected account

Currency conversions

Using on_behalf_of

Another way to avoid currency conversions when performing separate charges and transfers is to use the on_behalf_of parameter.

A currency conversion occurs if the presentment currency differs from the settlement currency.

The presentment currency is the currency that’s used for charges. The settlement currency is the currency that you can receive payouts in, depending on the charge type and applicable currency conversion. See the supported presentment currencies and the supported settlement currencies.

Depending on bank account or debit card availability, the following occurs when paying out a balance:

Bank account or debit card availabilityConversion action
Available for the currencyNo conversion
Multiple bank accounts or debit cards available for the currencyNo conversion–Stripe uses the bank account or debit card set as default_for_currency
Not available for the currencyStripe converts the payout balance based on the Stripe account’s default currency

If you regularly charge in multiple currencies, you may be able to establish multiple bank accounts to have multiple settlement currencies.

Currency conversions use the current exchange rates provided by our service providers, with an additional conversion fee applied by Stripe. There are online resources for conversion calculation that can help you estimate current market rates. However, these numbers can fluctuate and may not reflect Stripe’s rates at the time a payment is processed.

Application fees for direct charges

Although direct charges are in the connected account’s default currency, your platform receives the application fees for direct charges in your platform’s default currency.

Bank account or debit card availabilityConversion action
Available for the settlement currencyNo conversion
Not available for the settlement currencyStripe converts the application fee based on the platform account’s default currency

If your platform doesn’t use application fees and retains a portion of the charges instead, those funds are paid out (and converted or not) the same way as other charges on the platform account.

Application fees for destination charges and converting balances

Application fees collected using the application_fee_amount parameter aren’t converted again for destination charges; your platform always receives application fees in the connected account’s settlement currency. However, we recommend that you use the transfer_data[amount] parameter to transfer less of the charge amount to the connected account.

If you create charges on the platform using the destination or on_behalf_of parameters, you might accumulate balances in multiple currencies. If you don’t have bank accounts for these other currencies, Stripe provides a way to pay out balances in non-default currencies to your platform’s default bank account.

These currency conversions are created as manual payouts with currency set as 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.

Example scenarios

The following examples illustrate how to work with multiple currencies in Connect:

Direct charges

Direct charges are always converted to the connected account’s default currency from the presentment currency. The application fee is converted to the platform’s default currency.

For example, you accept a charge for a connected account in USD. The connected account settles in EUR. The funds sent to the connected account are converted to EUR and the application fee is converted back to your platform in USD from EUR.

Destination charges without on_behalf_of

Destination charges are converted to the platform’s default currency from the presentment currency and the funds sent to the connected account are converted again to the connected account’s default currency. If application_fee_amount is used, the application fee remains in the connected account’s currency. If transfer_data[amount] is used, the application fee amount remains in the platform’s default currency.

Note

This charge flow is subject to Stripe’s regional and cross-border policies.

For example, you accept a charge for a connected account in USD. The connected account settles in GBP. The funds sent to the connected account are converted to GBP. If application_fee_amount is used, the application fee is converted from USD to GBP. If transfer_data[amount] is used, the application fee is retained in USD from the initial presentment amount, without any intervening conversions.

Destination charges with on_behalf_of

Destination charges are converted to the connected account’s default currency from the presentment currency. The application fee remains in the connected account’s currency, whether application_fee_amount or transfer_data[amount] is used.

For example, the connected account accepts a charge in USD but settles in EUR. The charge is converted to EUR and sent to the connected account in EUR. The application fee is collected in EUR.

Separate charges and transfers without on_behalf_of

Separate charges are converted to the platform’s default currency from the presentment currency and the platform later transfers the funds to the connected account. The application_fee_amount and transfer_data[amount] parameters are not used to collect fees, since the platform can choose the appropriate amount to send at transfer time.

Note

This charge flow is subject to Stripe’s regional and cross-border policies.

Separate charges and transfers with on_behalf_of

Separate charges are converted to the connected account’s default currency from the presentment currency and the platform later transfers the funds to the connected account. The application_fee_amount and transfer_data[amount] parameters are not used to collect fees, since the platform can choose the appropriate amount to send at transfer time.

Note

This charge flow is subject to Stripe’s regional and cross-border policies.

See also

  • Creating charges
  • Creating direct charges
  • Using subscriptions
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Currency conversions
Application fees for direct charges
Application fees for destination charges and converting balances
Example scenarios
See also
Products Used
Connect
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in 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.
$