Create a withdrawal
Initiates a withdrawal to a verified withdrawal account. Pass a withdrawalAccountId from List withdrawal accounts.
Authorizations
ES256-signed JWT bearer token, single-use, 60-second TTL. See Authentication for how to mint one.
ES256 signature over the request, bound to the bearer JWT. Required on every v3 request. See Authentication → Request signing.
Headers
Client-generated unique key to make a write operation safely retryable. UUID v4 recommended. See Idempotency.
1 - 255^[a-zA-Z0-9_-]{1,255}$"550e8400-e29b-41d4-a716-446655440000"
Optional, client-supplied correlation ID for this request. Echoed verbatim on the response when supplied; the response omits it when the request did not supply one. Distinct from X-Trace-Id (server-generated, always present). See Metadata & tracing.
"my-req-abc-123"
Body
Initiates a withdrawal to a verified withdrawal account. Rail (fiat vs stablecoin) and network are resolved server-side from withdrawalAccountId. Unknown fields are rejected with 400 VALIDATION_BODY_FAILED.
Currency to withdraw. The server dispatches crypto vs fiat based on the value — a single union, not separate endpoints.
^[A-Z0-9]{2,15}$"USDC"
The amount to withdraw, denominated in currency.
^[0-9]+(\.[0-9]{1,8})?$"1000.00"
Verified withdrawal account from GET /v3/fx/withdrawal-accounts.
^([a-z]{3,5}_[1-9A-HJ-NP-Za-km-z]{1,22}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"wac_NDqQ9LmcUASpnHR6CTvdkk"
Optional client-owned bookkeeping bag, persisted with the resource. Accepted only in the request body of POST /v3/fx/withdrawals; Keys are client-defined strings, (e.g. customerId); values must be strings. The server treats the object as opaque pass-through and does not interpret it. On a successful response it is returned nested inside the resource at data.metadata. It is never returned on error responses — metadata is persisted only for valid, accepted requests. Not filterable on any list endpoint. Set at creation and immutable thereafter (v3 has no PATCH endpoints). Limits: at most 50 keys, each key ≤ 40 characters, each value ≤ 500 characters, and the serialized object under 8 KB; requests that exceed these limits are rejected with 400 VALIDATION_BODY_FAILED. For per-call client correlation (as opposed to per-resource bookkeeping), use the X-Request-Id header instead.
Response
Withdrawal created.
A withdrawal from your trade account.