---
updatedAt: 2026-07-23T16:57:40.000Z
agentTools:
  projectIndex: https://docs.breeze.com/llms.txt
---

# 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.

<Callout icon="📘" theme="info">
  Multi-currency / FX payouts are enabled per account. Contact [support@breeze.com](mailto:support@breeze.com) to turn it on. Without it, payout pages behave as single-currency (the customer receives the same currency you fund).
</Callout>

> **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](https://docs.breeze.com/reference/createpayoutpage).

# How the FX rate is set

1. 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.
2. The customer sees the destination amount and rate **before** confirming.
3. 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](payout-page-webhooks):

* `destinationCurrency` — the fiat the customer receives
* `destinationAmount` — 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 `amount` and `fundingCurrency` (`USDC` or `EURC`). Optionally pass `enabledPayoutRails` to 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` / `exchangeRate` from the payout page response and webhooks, in addition to your funding amount.