Skip to main content
Every payout starts from a ready, funded issued wallet. The destination model depends on who owns the endpoint.

Before you start

Refetch the source wallet. Confirm its current status permits the payout and its available balance covers the intended source amount. Store its response-derived ID as SOURCE_WALLET_ID. You also need a ready payout capability for the current customer and selected destination.

1. Prepare the destination

Use a customer-owned external bank account when the customer owns the endpoint. Create it with POST /v3/customers/{customerId}/accounts and these headers:
Read it with GET /v3/customers/{customerId}/accounts/{accountId}. Continue only when its current status permits the payout. Store its acc_ ID as PAYOUT_DESTINATION_ID.

2. Create the payout quote

Use POST /v3/quotes with these headers:
Store data.id as QUOTE_ID and present the returned price and fees.

3. Execute the payout

Create the transfer with POST /v3/transfers. Use one new key for this intended execution:
Store transfer data.id as TRANSFER_ID. A successful create starts the payout; it does not prove delivery.

4. Track delivery

Read GET /v3/transfers/{transferId} after creation and after each event. Use the latest data.state, data.stateDetail, and data.openTaskIds to decide whether to wait, act, or show a terminal outcome. Next, review Quotes and transfers for exact amounts, safe execution recovery, and transfer tasks.