# Monetizing currency conversion (FX) fees

### This article outlines FX monetization specifically for Connect platforms that pay currency conversion fees on behalf of their connected accounts.
---
### Deciding whether to monetize currency conversion fees
As a platform you have three options on how to monetize currency conversion fees:
**Absorb Stripe currency conversion fees**
You may not want to pass on currency conversion fees to your connected accounts if you’re charging an overall flat fee, regardless of whether a given transaction incurs currency conversion fee or not.
**Pass through Stripe currency conversion fee**
You may want to pass on currency conversion fees you incur from Stripe. To do this you need to know the Stripe currency conversion fees you will be charged. See [Stripe’s sticker currency conversion fee](http://stripe.com/pricing) in the **Payments** section of our pricing page. Negotiated currency conversion fees differ.
**Mark up Stripe currency conversion fee for your connected accounts**
Where it fits your business model you may want to charge a mark-up for currency conversion to your connected accounts.
### Where can I monetize currency conversion fees?
You can monetize currency conversions across the following money movements:
* [Destination charges](https://docs.stripe.com/connect/destination-charges)
* [Direct charges](https://docs.stripe.com/connect/direct-charges)
* [Transfers](https://docs.stripe.com/connect/separate-charges-and-transfers?platform=web&ui=stripe-hosted#create-transfer)
Platforms can monetize these money movements through API logic, account debits, and platform SaaS fees. Destination charges [with application fees](https://docs.stripe.com/api/payment_intents/object?api-version=2025-06-30.basil#payment_intent_object-application_fee_amount) and direct charges can also be monetized through the platform pricing tool. Destination charges [with transfer_data](https://docs.stripe.com/api/payment_intents/object?api-version=2025-06-30.basil#payment_intent_object-transfer_data) and transfers can’t be monetized with the pricing tool.
### Monetizing currency conversion fees with the platform pricing tool
The [platform pricing tool](https://docs.stripe.com/connect/platform-pricing-tools) is the simplest approach to monetizing currency conversion fees. You can set pricing specifically for direct charges and destination charges with application fees.
For any existing pricing scheme you can **add** **additional fees**, selecting “Currency conversion” as the **condition**. The fee defined here is applied on top of all other pricing specified in that pricing scheme, in all cases where currency conversion occurs.
Set the rate to match the Stripe currency conversion fee rate if you want to pass through the cost, or mark up the rate if you want to monetize on currency conversion.
Destination charges first settle in the platform account before being immediately transferred to the connected account. Pricing defined in the platform pricing tool for destination charges only applies to the settlement to the platform account, not the transfer to the connected account.
### Monetizing currency conversion fees in the API logic
Monetizing currency conversion fees in the API logic involves two steps:
1. Identify whether a money movement will involve currency conversion
1. Set the monetization details for money movements with currency conversion
**1. Identify whether a money movement will involve currency conversion**
Any money movement will involve currency conversion when the starting, or "source", currency is different from the "[settlement" currency](https://docs.stripe.com/currencies#currency-presentment-and-settlement), the currency that settles in the Stripe balance. This diagram outlines the logic to determine whether the source currency will differ from the settlement currency.
flow chart showing whether source currency will differ from settlement currency. where platforms are the MOR currency conversion occurs when source currency is neither the platform's local currency nor enabled for multicurrency settlement on the platform. where connected accounts are the MOR currency conversion occurs when the source currency is neither the connected account's local currency nor enabled for multicurrency settlement on the connected account. 
Start by determining the merchant of record, the legal entity responsible for facilitating the money movement. For destination charges without the [on_behalf_of](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-on_behalf_of) parameter (OBO), the merchant of record is the platform account. For all other applicable money movements (destination charges with OBO, direct charges, transfers), the merchant of record is the connected account.
Check whether you’ve enabled [multi-currency settlement](https://docs.stripe.com/payouts/multicurrency-settlement) (MCS) for a given currency in [the payout](https://dashboard.stripe.com/settings/payouts) settings for your platform account.
Check whether MCS for a given currency is enabled for a connected account by validating that they’ve successfully added an external bank account for the specific source currency. To do this you can query [external accounts](https://docs.stripe.com/api/external_accounts) with the V1 Accounts API.
When multi-currency settlement is enabled for a given source currency, the money movement settles in the source currency and no currency conversion occurs. If MCS isn’t enabled, then currency conversion occurs and the funds settle in the merchant of record’s default currency.
**2. Set the monetization details for currency conversion**
Once you can identify transactions on which currency conversion occurs you can update your billing logic. The table below describes an example case of charging your connected accounts a 2% fee every time a money movement incurs currency conversion.
- **Money movement**
- **How to charge your connected accounts 2% of the transaction amount**
---
- Destination charges w/ application fees
- Add 2% of the transaction amount to the application fee you charge in the [v1 Payment Intents API](https://docs.stripe.com/api/payment_intents)
---
- Destination charges w/ transfer_data
- Reduce the transfer_data[amount] in the v1 Payment Intents API by 2% of the transaction amount
---
- Direct charges
- Add 2% of transaction amount to the application fee you charge in the v1 Payment Intents API
---
- Transfers
- Reduce the transfer amount in the v1 Transfers API by 2%
[Cross-border payouts](https://docs.stripe.com/connect/cross-border-payouts#fund-flow-restrictions) can occur as part of a [destination charge](https://docs.stripe.com/connect/destination-charges), or a stand-alone transfer (for example as part of [separate charges and transfers](https://docs.stripe.com/connect/separate-charges-and-transfers), or as [top-ups and transfers](https://docs.stripe.com/connect/top-ups)).
When a cross-border payout happens as part of a destination charge, you can monetize the currency conversion fee by updating the application fee or transfer data amount with the v1 Payment Intents API.
### Monetizing currency conversion fees using Account Debits or SaaS fees
You can retroactively charge your connected accounts for currency conversion fees using [Account Debits](https://docs.stripe.com/connect/account-debits) or by adding a markup to your existing invoices.
Determine which transactions have incurred currency conversion fees with the [all fees report](https://docs.stripe.com/reports/all-fees) or by [querying fees data](https://docs.stripe.com/stripe-data/query-all-fees-data). To query fees data, use the below query and aggregate by the incurred_by field for a given connected account.
```
SELECT amount, currency, incurred_at, incurred_by  
FROM itemized_fees
WHERE product_feature_description = 'Stripe FX fee' 
```
### Additional information
Explicit currency conversion fees
