SETSimple Easy Transactions
SET DocsAPI reference and complianceUpdated 2026-11-10
Browse: SET Direct Deposit API

Batches of up to 5,000

SET Direct Deposit API · Live since 2026-11-10

The problem

POST /api/partner/payees/batch resolves up to 20 emails in one call. A contest with 3,000 winners, or a monthly payout run, needs one multisend list for all of them, not 150 separate batches.

The answer: add pages to one batch

  1. Create the batch with its first 20 emails: POST /api/partner/payees/batch {chain, items}.
  2. Add the rest, 20 a call: POST /api/partner/payees/batch/{id}/items {items}. New items are numbered after the batch's own and use the batch's chain.
  3. A batch holds up to 5,000 items.
  4. Each answer is the whole batch. payTo lists every payable item so far that has an amount: direct and claimable items, never those below_minimum, invited or setup_required.

Exporting for signing

CallGives
GET /api/partner/payees/batch/{id}?format=csvThe multisend list as CSV: address, amount_usdc, reference, destination
GET /api/partner/payees/batch/{id}?format=safeA Safe Transaction Builder file with one USDC transfer per payable item. Import it in the Safe app and sign once

CSV cells that start with =, +, - or @ are written as text.

Edge cases

AnswerMeansDo
409 batch_busyAnother page was being added to this batch at the same moment. Nothing from your call was addedSend the same page again
409 batch_fullThe batch already holds 5,000 items, or this page would take it overStart a new batch
400 reference_repeatedA reference is already used in this batchMake each reference unique within the batch
400 batch_too_largeMore than 20 items in one callSplit the page

Add pages one after another, not in parallel. Parallel pages are safe, since none is lost or numbered twice, but all but one will be batch_busy.

Why 20 a call

Each email is resolved while you wait, and SET stores no email (Payable Email's privacy rule), so it cannot keep a list to resolve later. Twenty a call is what one request can resolve within SET's hosting limits.