Skip to main content
POST
Create payout withdrawal

Authorizations

api-key
string
header
required

Your raw API key. Generate, rotate, and revoke keys from the merchant dashboard. Keys can optionally be bound to one or more allowed source IPs — requests from any other IP are rejected with API_KEY_IP_DENIED.

Body

application/json
chain
enum<string>
required
Available options:
ethereum,
base,
arbitrum,
optimism,
bsc
token
enum<string>
required

Stables only at MVP.

Available options:
USDT,
USDC
destination
string
required

EVM address that will receive the funds on-chain.

Pattern: ^0x[a-fA-F0-9]{40}$
amountCents
string
required

USD cents to send to the destination. Fee is added on top and debited together.

Pattern: ^\d+$
externalId
string
required

Partner-supplied reference. Echoed in the approval callback and all lifecycle events so you can match against your own records. Must be unique per merchant; duplicate ⇒ 1824.

Required string length: 1 - 128
forSubUser
string

Optional label — sub-user id (UUID) or your externalId for that sub-user, scoped to the calling merchant. Pure label, not auth scope: funding always comes from the merchant's payout custody; the sub-user reference is recorded for audit and echoed in the approval callback / lifecycle events.

Required string length: 1 - 128
maxFeeUsdCents
string

Optional fee cap. If the live fee at submission exceeds this cap, the request is rejected with 1821 and no state is mutated. Useful for declining high-gas moments.

Pattern: ^\d+$

Response

OK.

requestId
string
required
success
boolean
required
data
object

Present when success: true. Shape varies per endpoint.

error
object