Create a payout quote
Step 1 of 3: prices a fiat payout. Next, initialize it with a beneficiary (POST /api/payouts//initialize), then finalize it (POST /api/payouts//finalize). Send exactly one of amount, amount_in_base_units or settlement_amount. The quote expires at expires_at.
Authorizations
Your workspace client id.
All calls must include four headers:
X-Auth-Client— your workspace client idX-Auth-Timestamp— Unix secondsX-Auth-Nonce— 16-byte random hexX-Auth-Signature— hex(HMAC-SHA256({client_id}:{timestamp}:{nonce}:{raw_body}, client_secret))
The playground computes the timestamp, nonce and signature for you.
Your sandbox client secret. The playground uses it to sign the request in your browser and removes it before the request is sent. Never send your client secret as a header in your own integration.
Body
Give exactly one of amount, amount_in_base_units or settlement_amount. amount_in_base_units wins over amount when both are sent.
ISO 3166-1 alpha-2 destination country
2Source asset, case-insensitive: BTC, USDT, USDC or NGN
10offchain debits the balance; onchain funds the payout from a generated deposit address. Case-insensitive. NGN is offchain only
offchain, onchain Settlement currency, case-insensitive; must be enabled for a corridor available to the organisation
10Source amount in major units of from_asset (BTC, tokens, naira), decimal string
Source amount in base units: satoshis for BTC, 10^-6 for USDT and USDC
Chain for an onchain source: BITCOIN, ETHEREUM, POLYGON, ARBITRUM, OPTIMISM, BASE, AVALANCHE, TRON, SOLANA, BSC, TON, STELLAR, PLASMA or LIGHTNING (CHAIN_TYPE_ prefix accepted)
A JSON object encoded as a string; ignored if it does not parse
Reason for the payment.
255Your reference; must be unique within the organisation
255Amount the beneficiary should receive, in major units of to_currency, decimal string
Response
OK
Successful responses are wrapped in this envelope, and so are errors a handler answers itself (request body and field validation, some not-found and conflict cases, ORG_NOT_ACTIVE): success is false and error carries a code and message. Errors raised by authentication and by the services behind a handler are a Problem instead.
true on success
When the response was written.
The payload; its shape is given per operation. Omitted when there is none.
Human-readable summary; omitted when empty.
List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.
Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.