Multi-currency Payouts
Breeze payout pages support multi-currency payouts: you fund a payout in a single stablecoin, and your customer receives their local fiat currency, with Breeze handling the foreign-exchange (FX) conversion. This lets one integration pay out in USD, EUR, JPY, TWD, HKD, or KRW without you holding or managing any of those balances.
Multi-currency / FX payouts are enabled per account. Contact [email protected] to turn it on. Without it, payout pages behave as single-currency (the customer receives the same currency you fund).
Note: Multi-currency payouts only apply to the hosted payout page flow.
Two currencies, one payout
A payout now involves two distinct currencies:
| Concept | Field | What it is |
|---|---|---|
| Funding currency | fundingCurrency | The stablecoin you fund the payout with — USDC (≈ USD) or EURC (≈ EUR). |
| Destination currency | destinationCurrency | The fiat currency the customer receives, determined by the payout rail they choose. |
When the funding currency's fiat equivalent differs from the destination currency, Breeze performs an FX conversion. For example, a USDC-funded payout to a SEPA (EUR) bank account converts USD → EUR; an EURC-funded payout to a US bank account (ACH) converts EUR → USD.
Supported payout rails and currencies
The customer's chosen rail determines the currency they receive:
Rail (payoutDestinationRail) | Customer receives | Method | FX |
|---|---|---|---|
ach | USD | US bank transfer | ✅ |
sepa | EUR | EU / SEPA bank transfer | ✅ |
zengin | JPY | Japan (Zengin) bank transfer | ✅ |
twd_fisc | TWD | Taiwan (FISC) bank transfer | ✅ |
hkd_fps | HKD | Hong Kong (FPS) bank transfer | ✅ |
krw_kftc | KRW | Korea (KFTC) bank transfer | ✅ |
card_usd | USD | Push-to-card | ❌ (USD only) |
Note: Push-to-card payouts are USD-only and do not support FX. Crypto wallet payouts are same-currency only — the customer receives the same stablecoin you funded (no conversion). FX applies to the bank rails above.
By default, Breeze offers the rails available for your funding currency. To restrict which rails a customer can choose on a given page, pass enabledPayoutRails when you create the payout page.
How the FX rate is set
- When the customer selects a fiat rail on the hosted payout page, Breeze generates an FX quote — a locked exchange rate valid for a short window.
- The customer sees the destination amount and rate before confirming.
- On confirmation, Breeze locks the quote and guarantees the destination amount; Breeze absorbs any market movement (slippage) after the lock.
The locked values are denormalized onto the payout page and surfaced in the payout page response and webhooks:
destinationCurrency— the fiat the customer receivesdestinationAmount— the amount in the destination currency (minor units)exchangeRate— the customer-facing rate applied (major units, e.g.1 EUR ≈ 184 JPY)
What changes in your integration
- Create: keep sending
amountandfundingCurrency(USDCorEURC). Optionally passenabledPayoutRailsto limit the offered rails. - You do not choose the destination currency — the customer does, by selecting a rail on the hosted page.
- Reconcile against
destinationCurrency/destinationAmount/exchangeRatefrom the payout page response and webhooks, in addition to your funding amount.
Updated 2 days ago
