What happened
POST /v2/payouts named a rail that cannot settle the currency the payout moves, so the payout was refused. No transaction was created, no review started and no funds moved.
POST /v2/orders answers the same when its autoPayout names a rail that cannot settle the currency the conversion delivers. No order is created.
Each bank rail apart from swift settles exactly one currency, and a payout moves one currency and never converts, so a rail paired with any other currency is impossible rather than temporarily unavailable — a retry never clears it. swift carries any fiat currency the correspondent chain supports, so this error never applies to it.
Common causes
- A EUR virtual account sent over a US rail —
fedwire,rtp,fednoworachon a EUR balance - A USD virtual account sent over
sepa— the mirror of the same mistake - The rail is hard-coded — one rail is used for every payout, and the funding account’s currency varies
Recovery
1. Send it over a rail that settles the currency Usesepa or swift for EUR, and fedwire, rtp, fednow, ach or swift for USD. The recipient coordinates follow from the rail: a sepa recipient carries an IBAN and BIC, a US recipient carries an account and routing number.
POST /v2/orders, then pay out from the account the order credits.
Use a fresh Idempotency-Key for the new payout.
Prevention
- Pick the rail from the funding account’s currency — read the virtual account’s
asset.codeand map it to the rails that settle it, rather than hard-coding one rail - Ask the requirements endpoint —
GET /v2/payouts/requirementsreturns the recipient fields each rail needs, and is the same rail vocabulary create accepts
Related endpoints
- POST /v2/payouts — create a payout
- POST /v2/orders — convert between one customer’s virtual accounts
- GET /v2/virtual-accounts/:id — read the funding account’s currency