SETSimple Easy Transactions
SET DocsAPI reference and complianceUpdated 2026-11-10
Browse: SET API (Platforms)

Marketplace splits

SET API (Platforms) · Guide, 2026-11-10

The problem

A marketplace's buyer pays once. That payment must be split among the seller, the platform and, say, a tax reserve, each paid to its own destination. There is no single "split" call.

The answer: settle to a wallet, then pay a batch

No new call is needed:

  1. Collect into the merchant's own wallet. Create the merchant's custodial wallet (POST /v1/wallets), then a virtual account that settles to it: `` POST /v1/virtual_accounts { "customer": "cus_…", "settleTo": { "wallet": "…" } } `` Each deposit arrives in the wallet as USDC, and SET's fee is taken once, as collection.
  2. Pay each share in one call. Once the deposit is in the wallet, send one payout batch with an item per share: `` POST /v1/payout_batches { "wallet": "…", "externalId": "order-8812", "items": [ { "recipient": "rcp_seller", "amount": "850.00", "externalId": "order-8812-seller" }, { "recipient": "rcp_tax_reserve", "amount": "80.00", "externalId": "order-8812-tax" } ] } `` Every item is checked before anything is sent. A bad item refuses the whole batch, and nothing is created.
  3. The platform's own share can stay in the wallet, or be paid to the platform as one more item.

Rules

  • A batch holds up to 100 items, and the wallet must hold the batch total.
  • externalId on the batch and on each item makes a retry return the same payouts, not new ones.
  • Each recipient is a recipient of that customer, with its own Travel Rule data.
  • Treasury sweeps (POST /v1/wallets/{id}/sweeps) are for a business's own bank accounts only. Use payouts for anyone else.