Set up a payout account — Step 1
Global Payout
Set up a payout account — Step 1
Step 1 of the 2-step payout account setup. Creates a crypto withdrawal address linked to a recipient’s bank account.
POST
Set up a payout account — Step 1
This endpoint is step 1 of the 2-step payout account setup for off-ramp settlement. It links a recipient’s bank account to a crypto withdrawal address. When stablecoins land at this address, the off-ramp transfer to the recipient’s bank is triggered automatically.
Typical timeline: stablecoin deposit detected → confirmed on-chain → fiat transfer submitted → fiat received at recipient bank. End-to-end takes 1–2 business days via SPEI.
Step 1 — POST /v1/payout/accounts/setup/liquidation-address (this endpoint)
Creates or returns the withdrawal address for
(beneficiaryId, beneficiaryAccountId, chain, currency). Idempotent — calling twice returns the same address.Step 2 — POST /v1/payout/accounts/setup/virtual-account
Creates a fiat virtual account (e.g. a SPEI CLABE in Mexico) tied to the withdrawal address. Returns the account number your client deposits fiat into. Also idempotent.
Both setup endpoints are idempotent. You can call them on every order without worrying about duplicates. This is the recommended pattern: don’t cache setup IDs in your backend, just call setup before each payment.
Prerequisites
- Workspace KYB completed (one-time, via dashboard)
- Recipient created (
POST /v1/payout/recipients) - Recipient’s bank account added (
POST /v1/payout/recipients/{id}/accountsor via invite link)
Request body
Recipient ID (from
POST /v1/payout/recipients).The recipient’s bank account ID (from
POST /v1/payout/recipients/{id}/accounts).Stablecoin chain. Supported:
base, polygon, arbitrum, solana. More on request.Stablecoin symbol on the chosen chain. Supported:
usdc, usdt.Response
Internal withdrawal address ID. You generally don’t need to store this — call setup again to retrieve.
The crypto address. Send stablecoins here to trigger an off-ramp settlement to the recipient’s bank.
Echo of the chain you requested.
Echo of the stablecoin you requested.
What happens after a deposit?
When stablecoins arrive at the returnedaddress, the off-ramp partner detects the deposit, settles the on-chain leg, and initiates the fiat transfer to the recipient’s bank. Track the full lifecycle as an order:
Authentication
Authorization: ApiKey rk_client_key_v1_... — workspace key with payout module enabled and payout:write scope.
Common errors
| Status | Cause | Fix |
|---|---|---|
400 | Unsupported chain + currency combination | See /v1/action/tokens/{chain}/usdc for supported pairs |
403 | payout module not active for workspace | Activate Payout Kit in the dashboard |
404 | beneficiaryId or beneficiaryAccountId not found, or belongs to another workspace | Cross-tenant lookups always return 404 (no existence leak) |
422 | Recipient’s bank account is not yet usable (pending registration) | Wait for the rails partner to confirm the bank account, then retry |
Next steps
POST /v1/payout/accounts/setup/virtual-account— Step 2: create the fiat virtual account- Payout Kit Flow Guide — full end-to-end narrative with code samples
POST /v1/payout/accounts/quotethenPOST /v1/payout/accounts/execute— operate once setup is complete