---
title: "Batch payout with exact amounts (Solana)"
method: POST
path: "/payouts"
---

# Batch payout with exact amounts (Solana)

`POST /payouts`

## Request

- Base URL: `https://swap.vurto.cc/v1`
- URL: `https://swap.vurto.cc/v1/payouts`
- Auth: none required

Pay up to 20 wallets their exact amounts in the payer's own token, in one or a few transactions. Every receiving wallet is screened first; one blocked wallet refuses the whole batch with 403 receiver_blocked and details.index, before anything is created. Each recipient becomes a regular invoice. Sign each transaction in order, then POST /payouts/payments.

## Request body

- object
  - `chainId` 'solana-mainnet', required
  - `token` string, required: Mint or symbol of a verified token.
  - `payer` string, required
  - `recipients` object[], required
    - `wallet` string, required
    - `amount` string, required: Human amount, e.g. "120.5".
    - `memo` string

## Response `201`

Invoices created and transactions to sign

- object
  - `invoices` object[]
  - `transactions` object[]
    - `transaction` string: Unsigned v0 transaction, base64.
    - `lastValidBlockHeight` integer, nullable
    - `invoiceIds` string[]

## Other responses

- `400`: batch_svm_only, empty_batch, too_many_recipients, batch_duplicate_recipient, batch_self_payment, invalid_amount, token_not_listed
- `403`: receiver_blocked, with details.index and details.wallet
- `503`: screening_unavailable

---

[API](https://skmtc.dev/vurto/apis/vurto-swap-public-api.md) · [All operations](https://skmtc.dev/vurto/apis/vurto-swap-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vurto/apis/vurto-swap-public-api/revisions/423be3a193b5?raw)
