Step 2 of the 2-step payout setup. Creates a fiat virtual account (CLABE) tied to the withdrawal address.
This endpoint closes the 2-step payout account setup. After you created a withdrawal address in step 1, this creates a permanent fiat virtual account (e.g. a CLABE in Mexico) that lets your client deposit fiat to trigger an off-ramp settlement.Documentation Index
Fetch the complete documentation index at: https://docs.relayer.fi/llms.txt
Use this file to discover all available pages before exploring further.
Step 1 — POST /v1/payout/accounts/setup/liquidation-address
(beneficiaryId, beneficiaryAccountId, chain, currency).Step 2 — POST /v1/payout/accounts/setup/virtual-account (this endpoint)
POST /v1/payout/recipients)POST /v1/payout/recipients/{id}/accounts)(beneficiaryId, beneficiaryAccountId) pair400.
POST /v1/payout/recipients).MXN (CLABE/SPEI). Other rails (ACH USD, SEPA EUR) will surface here as those go live.(beneficiaryId, beneficiaryAccountId) returns the same CLABE. Don’t cache; just call setup before each payment if you want to be sure the account is current./v1/orders with status transitioning: awaiting_funds → funds_received → payment_submitted → completedAuthorization: ApiKey rk_client_key_v1_... — workspace key with payout module enabled and write scope.
| Status | Cause | Fix |
|---|---|---|
400 | No withdrawal address exists for the (beneficiaryId, beneficiaryAccountId) pair | Run step 1 (/setup/liquidation-address) first |
403 | Workspace lacks payout module or write scope | Activate Payout Kit in dashboard; check API key scope |
404 | beneficiaryId or beneficiaryAccountId not found | Cross-tenant lookups return 404 (no existence leak) |
422 | Recipient’s bank account is not yet usable (pending rails partner approval) | Wait for the registration to confirm; retry |
POST /v1/payout/accounts/quote — get the exchange rate and fees for a paymentPOST /v1/payout/accounts/execute — trigger settlementGET /v1/orders/{orderId} — track the full timeline