Withdraw the payee's held balance as one consolidated payout

POST
/api/v1/payees/{id}/withdraw

Release every still-owed disbursement for this payee as a single consolidated payout — the money credited to their wallet and held until they choose to take it.

This is the API-key counterpart to the creator pressing Withdraw in the hosted portal: the same release spine, the same consolidation, the same gates. Use it when you keep your own wallet UI and want an in-app "Withdraw" button to trigger the payout rather than routing the creator to the portal.

Held-by-default (per rail). Grade holds credited money as owed in the wallet until an explicit withdraw (so a creator who earned across cycles takes it as ONE payout and ONE claim link). SideShift auto-releases owed into its managed wallet the moment the credit lands; the creator drains it (leg-2) later. Stripe/Tipalti auto-release only when payability flips false→true (KYC completes). Auto-release is a per-rail behavior, not a property of "custody-free rails" as a class.

No body: a wallet withdraws what is in it; the amount, rail and consolidation are resolved server-side. Refuses with 409 if the payee is not yet payable (KYC incomplete) or a per-source min/max/frequency policy blocks it — nothing is released in that case.

Required scope: disbursements:write.

Authorization

bearerAuth x8xTimestamp x8xSignature
AuthorizationBearer <token>

Your client API key. Authorization: Bearer <API key>. The gateway stores only sha256(key); keys are rotatable and revocable.

In: header

x-8x-timestamp<token>

Unix time (seconds) at which the request was signed. Must be within 300s of gateway time.

In: header

x-8x-signature<token>

Hex HMAC-SHA256(signingSecret, "{timestamp}.{rawBody}") over the exact raw request body (empty string for GET). Defeats tampering and replay.

In: header

Path Parameters

id*string

The gateway payee id.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

// The SDK has no helper for this endpoint yet. Use the cURL tab, or// call it with any HTTP client: the SDK's request signing scheme is// documented under Authorization on this page.
{  "released": 0,  "releasedCents": 0,  "awaitingFunding": 0,  "held": 0,  "failed": 0,  "payoutLink": "string"}