API Docs
API referencePayouts

Approve a payout

POST/api/v2/payouts/{id}/approve

Moves created to approved and reserves the amount against the team balance. The body is optional. Needs payouts:approve, plus payouts:write with andThen: "pay".

Path Parameters

id*string

The payout id (payout_…) or your customId.

Header Parameters

idempotency-key?maxLength(255)

Client-chosen key, 1 to 255 characters (a UUID is recommended). The same key on the same endpoint within 24 hours replays the stored response with Idempotent-Replayed: true.

Length1 <= length <= 255

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

application/json

curl -X POST "https://example.com/api/v2/payouts/payout_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e/approve" \  -H "Content-Type: application/json" \  -d '{}'
{  "object": "payout",  "id": "payout_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e",  "customId": "campaign-42",  "description": "string",  "amount": "100.00",  "currency": "USD",  "recipient": {    "type": "email",    "email": "jane@example.com",    "phone": "string"  },  "status": "created",  "locked": true,  "availableOn": "2026-10-01",  "expiresAt": "2026-09-24T10:00:00.000Z",  "tags": [    "string"  ],  "paymentMethod": {    "type": "crypto",    "asset": "string",    "currency": "EUR"  },  "senderInvoiceUrl": "string",  "recipientInvoiceUrl": "string",  "recipientInvoiceSource": "self_billing",  "failureCode": "account_closed",  "failureReason": "string",  "approvedAt": "2026-09-24T10:00:00.000Z",  "claimLinkSentAt": "2026-09-24T10:00:00.000Z",  "requestedAt": "2026-09-24T10:00:00.000Z",  "completedAt": "2026-09-24T10:00:00.000Z",  "createdAt": "2026-09-24T10:00:00.000Z",  "updatedAt": "2026-09-24T10:00:00.000Z"}