/api/v1/merchant/disbursement/*. All routes require signed requests.
Supported settlement tokens are USDC on Base (8453), USDC on Ethereum (1), plus ETH on those chains. TEST uses Base Sepolia (84532).
See Disbursement tokens.
Account summary
GET /api/v1/merchant/disbursement/account
Returns treasury balance, reserved funds, and environment.
Quote a batch
POST /api/v1/merchant/disbursement/batches/quote
Get fees and validate chainId + token before creating a batch.
Request body
Create a batch
POST /api/v1/merchant/disbursement/batches
Request body
Each recipient:
List batches
GET /api/v1/merchant/disbursement/batches
Get batch
GET /api/v1/merchant/disbursement/batches/:id
Returns batch status, recipients, and per-recipient payout status.
Cancel batch
DELETE /api/v1/merchant/disbursement/batches/:id
Cancels a SCHEDULED batch before processingAt.
Ledger
GET /api/v1/merchant/disbursement/ledger
Paginated ledger entries for the disbursement account.
Account transfers
idempotencyKey must be 8–200 characters. Replaying the same key returns the original result.
Constraints
Platform minimums (USD equivalent):
After dispatch starts, recipients typically receive funds within ~2 minutes per on-chain chunk (capped at 120 minutes). See Payout timing.
Related
- Payouts & MoMo concept
- Payout rails API
- Webhooks.
disbursement_batch.created,payout.status_updated

