Approve payouts in one request
/api/v2/payouts/approveApproves up to 100 payouts and reserves their sum against the team balance in one decision. andThen runs send-claim-link or pay for every payout. All or nothing: one failing item fails the request with that item's code and error.index, and nothing is applied. Needs payouts:approve, plus payouts:write with andThen: "pay".
Header Parameters
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.
1 <= length <= 255Request 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/approve" \ -H "Content-Type: application/json" \ -d '{ "ids": [ "payout_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e" ] }'{ "object": "list", "data": [ { "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" } ]}Pay a counterparty directly POST
Sends the money to the counterparty's saved payment method. Settlement is asynchronous; `payout.completed` or `payout.failed` follows. A `failed` payout is paid again with the same call. Needs `payouts:write`, plus `payouts:approve` for a `failed` payout: it goes to the counterparty's current payment method, which the approval did not cover.
Send claim links in one request POST
Emails the claim link for up to 100 payouts. Every payout is checked before the first email goes out. All or nothing: one failing item fails the request with that item's code and `error.index`, and nothing is applied. Needs `payouts:write`.