Pay counterparties in one request
/api/v2/payouts/payRequests the transfer for up to 100 counterparty payouts. Every payout moves to requested in one transaction; settlement follows per payout as payout.completed or payout.failed. All or nothing: one failing item fails the request with that item's code and error.index, and nothing is applied. Needs payouts:write, plus payouts:approve when any payout is failed.
idempotency-key?stringClient-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 <= 255application/json- body
ids*array<>Payout ids or your customIds, 1 to 100, each once. The response lists the payouts in this order.
1 <= items <= 100Success
application/json- response
object*"list"Type of the object. Always list.
"list"data*array<>Every item. This list is never paged.
curl -X POST 'https://www.talentir.com/api/v2/payouts/pay' \ -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", "availableInDays": -9007199254740991, "servicePeriod": { "start": "2026-10-01", "end": "2026-10-01" }, "expiresAt": "2026-09-24T10:00:00.000Z", "tags": [ "string" ], "paymentMethod": { "type": "crypto", "asset": "string", "currency": "EUR" }, "withInvoice": true, "senderInvoiceUrl": "string", "recipientInvoiceUrl": "string", "recipientInvoiceSource": "self_billing", "failureCode": "account_closed", "failureReason": "string", "approvedAt": "2026-09-24T10:00:00.000Z", "recipientNotifications": "enabled", "claimLinkSentAt": "2026-09-24T10:00:00.000Z", "requestedAt": "2026-09-24T10:00:00.000Z", "retry": { "url": "string", "code": "account_closed", "reason": "string" }, "completedAt": "2026-09-24T10:00:00.000Z", "createdAt": "2026-09-24T10:00:00.000Z", "updatedAt": "2026-09-24T10:00:00.000Z" } ]}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`.
Estimate a payout POST
Calculates what the recipient would receive for a payout, before you create it. Nothing is stored and no exchange rate is locked: the payout settles at the rate and the fees of the moment it is paid, so show the result as an estimate. Send `counterpartyId` to estimate for the counterparty's saved payment method, `paymentMethod` for a recipient who has not chosen one, or both to compare methods for one counterparty. A counterparty without a saved payment method needs `paymentMethod`, or the request fails with `COUNTERPARTY_NOT_PAYABLE`. The estimate is for a payout that is paid alone. The API pays each payout as its own transfer, also in a batch request, so each payout pays its own transfer fee. Only when the recipient claims several payouts at one time on the claim page do they go out as one transfer with one transfer fee. An amount that the transfer fee uses up, or that is below the minimum of the rail, is 400 `VALIDATION_FAILED` on `amount`. Needs `payouts:write`.