Skip to main content
POST
Execute payout quote

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-api-key
string | null

Body

application/json

Execute a persisted the banking provider fiat payout quote.

Authorized by the smart wallet's ERC-1271 signature over the quote's executionContract.typedData.

quoteId
string
required

The quoteId the quote was issued under — the same one submit was called with, since submit answers with no id of its own — or the SHA-256 of the quote amount, recipient and idempotency key that the signed typed data names. Both address the same quote. Every id we issue is a bare one of ours: no channel prefix and no provider marker, whichever rail priced it.

Required string length: 32 - 64
Pattern: ^([0-9a-f]{32}|[0-9a-f]{64}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
signature
ClientSignature · object
required

Base smart wallet signature over the payout typed data (scheme: eip1271). The backend rebuilds the digest from the stored quote and asks the wallet's isValidSignature about it.

Response

Successful Response

status
string
required
executionContract
ExecutionContract · object | null

Everything the client needs to execute one quote.

One format for every channel: crypto routes carry deposit / transaction / order instructions, the banking provider fiat payouts carry the typed data to sign and the arguments that reproduce the quote hash. canonical_payload pins what was quoted — the provider payload persisted with a crypto route (/submit relays from it, never from client input), or the canonical JSON a the banking provider quote id is hashed from.