Skip to main content
POST
Submit signatures for a pending self-custody withdrawal

Integration guide

Authorizations

x-app-id
string
header
required

Your application ID. Required on app-tier and user-tier routes. Omitted on routes that authenticate with x-app-api-key only.

Authorization
string
header
required

JWT access token from POST /auth/verify. Required with x-app-id on user routes. On the smart-route quote it is optional and turns a preview into an executable quote.

Path Parameters

withdrawalId
string
required

Body

application/json
signatures
object[]
required
Required array length: 1 - 32 elements

Response

200

withdrawalId
string
required

Withdrawal id. Poll it on the status endpoint.

status
enum<string>
required

Withdrawal status. pending: accepted, not started (the submit response always returns this). bridging: moving funds across chains. transferring: same-chain transfer in progress. Terminal: completed, partial (some sources delivered; see completedAmountRaw), failed.

Available options:
pending,
bridging,
transferring,
completed,
partial,
failed
requested
object
required

What is being withdrawn.

completedAmountRaw
string | null
required

Estimated total delivered by the completed parts. null until the withdrawal is terminal. Integer string in the destination token's atomic units (6 decimals, so 1000000 = 1 USDC; 18 decimals on BNB Chain).

destination
object
required

Where the funds are delivered.

legs
object[]
required

Transfers that make up the withdrawal.

expected
object
required

Quote for the withdrawal. null fields unless pricingStatus is quoted.

pricingStatus
enum<string>
required

Fee quote state. quoted: expected holds a current quote. unquoted / quoting: no quote yet. unviable: at least one source is too small to cover its fees.

Available options:
unquoted,
quoting,
quoted,
unviable
errorMessage
string | null
required

Why the withdrawal failed or only partly completed. null otherwise, and always null on the submit response (errors there are returned as HTTP errors).

sources
object[]
required

Balances the withdrawal is funded from.

pendingSignatures
object[]

Self-custody only: requests the signing wallet must answer before the withdrawal continues. Absent for managed custody. Answer them on POST /execution/withdrawals/{withdrawalId}/signatures.