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:
- 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. - 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. - 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.
externalIdon 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.