Natively cross-currency. Pass a quoteId and the FX runs as an LP_EXECUTION leg inside this one PAY_OUT, alongside the FIAT_RAIL leg.
The balance to debit is inferred from the customer and the quote's pair. You never pass it. The linked account has to be VERIFIED, and its currency has to equal the quote's toCurrency.
How the rail is resolved. In order: the quote's rail if you passed a quote, then the body's rail, then the destination's rail if it only supports one. Whatever resolves has to be in the destination's supportedRails[], or you get rail_mismatch. A SPEI quote can't fund a PIX account. If the destination supports several rails and neither the quote nor the body names one, the request fails with validation_error on rail. The resolved combination of country, currency and rail has to be a LIVE route, or it's route_unsupported.
When you need a quote. Only for a genuine FX pair, which means the funding balance and the destination are different fiat currencies, or the funding balance is a stablecoin and the destination isn't USD.
A same-currency payout is a plain transfer with no FX leg and no quote. USD Corporate Account out to USD over ACH or wire is one. So is an MXNa local balance out to MXN over SPEI.
USDC or USDT going to USD is a par redemption priced from the fee table. A quote is optional there, to lock fees, and never required. No artificial conversion is ever introduced.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||

