Pay hundreds of wallets in one batch.
Upload a list of addresses and amounts and Payora reserves the funds instantly. You review and submit; the operator signs and broadcasts, and every tx hash is recorded against the batch.
Paste your list, see the reservation
One recipient per line: address, amount and an optional tag or memo, separated by spaces, commas or semicolons — the same format the dashboard accepts.
Checked in your browser only — nothing you paste leaves this page. Payora validates every address against the coin's network when you submit.
An estimate from the current network fee. The exact reservation is computed when you submit, and the operator signs and sends the approved batch.
Reserve, review, send offline.
A batch you submit is a request, not a transfer. Every state is visible, and a pending batch can always be cancelled.
- You
Batch upload
One line per recipient: address and amount, plus an optional tag/memo. Up to 500 recipients per batch.
- Reserved
Instant reservation
The total plus per-line fee is held against your balance the moment you submit — no double-spending.
- Operator
Signed off the server
Nothing is auto-sent. The operator signs and broadcasts an approved batch and records each tx hash against it.
- Sent
Full ledger trail
Every payout is an append-only ledger entry; cancel a pending batch to release the hold instantly.
Reserved on your balance, sent by hand
- Funds are reserved the instant a batch is created — balances can never be over-spent.
- The operator approves and sends — the server itself never broadcasts a payout on its own.
- A transparent, configurable fee per line; nothing hidden.
- Rejected or cancelled batches release the hold automatically.
On Pro and Business, POST /v1/payout takes up to 500 items with the same HMAC auth and Idempotency-Key as invoices. Any invalid line rejects the whole batch with its index, so a run never silently drops a recipient.
# signature = HMAC-SHA256(api_secret, timestamp + "." + raw_body)
BODY='{"currency":"USDT_TRON","items":[
{"address":"TR7…","amount":"250.00"},
{"address":"TX9…","amount":"99.50","tag":"batch-A"}]}'
TS=$(date +%s)
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -X POST https://api.payora.money/v1/payout \
-H "X-Payora-Key: $KEY" -H "X-Payora-Timestamp: $TS" \
-H "X-Payora-Signature: $SIG" -H 'Idempotency-Key: payroll-2026-09' \
-H 'Content-Type: application/json' -d "$BODY"<?php
$body = json_encode([
'currency' => 'USDT_TRON',
'items' => [
['address' => 'TR7…', 'amount' => '250.00'],
['address' => 'TX9…', 'amount' => '99.50', 'tag' => 'batch-A'],
],
]);
$ts = (string) time();
$sig = hash_hmac('sha256', $ts . '.' . $body, $apiSecret);
$ch = curl_init('https://api.payora.money/v1/payout');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Payora-Key: ' . $apiKey, 'X-Payora-Timestamp: ' . $ts,
'X-Payora-Signature: ' . $sig, 'Idempotency-Key: payroll-2026-09',
'Content-Type: application/json',
],
]);
$batch = json_decode(curl_exec($ch), true); // 201 → status "pending"# 201 Created — reserved, not sent
{
"batch_id": 812,
"status": "pending",
"currency": "USDT_TRON",
"item_count": 2,
"total": "349.50",
"fee": "…",
"items": [ … ]
}
# later: GET /v1/payout/812, or a signed payout.sent webhook
# cancel while pending: POST /v1/payout/812/cancelFrequently asked questions
Straight answers, including the uncomfortable ones: custody, fees and what happens when something goes wrong.
Help centreHow do crypto mass payouts work in Payora?
You upload a batch of up to 500 recipients — one address and amount per line, plus an optional tag or memo. Payora validates every line and instantly reserves the total plus per-line fee against your balance so it can never be over-spent. You review the batch, sign and broadcast the transactions from your offline wallet, and record each tx hash.
Does the server send payouts on its own?
No. Submitting a batch reserves the funds and queues it; nothing is broadcast automatically. The operator reviews an approved batch, signs it outside the web application and records each tx hash. So a batch you submit is a request, not a transfer — and a pending batch can be cancelled to release the hold.
How many recipients can one batch contain?
Up to 500 recipient lines per batch. You can run multiple batches, and mixed-currency batches are supported — each coin is grouped and processed as its own transaction set.
What happens if I cancel a pending payout?
Cancelling a pending batch before you approve it releases the reserved balance immediately and restores your available funds. Every reservation, release and fee is an idempotent, append-only ledger entry, so balances always reconcile and there is no stuck limbo state.
Which coins support batch payouts?
All currencies in your merchant balance: BTC, ETH and EVM chains, Tron (USDT/USDC-TRC20), TON, Solana (SOL, USDT, USDC), LTC, DOGE, BCH, XRP and XLM. For XRP destination tags and XLM memos, these are included per line and validated before reservation.
Run your first payout batch.
Manual batches from the dashboard work on every plan. The payout API comes with Pro and Business.
What this page answers
- crypto payment gateway for a website
- hosted crypto checkout page
- zero-commission crypto acceptance
- crypto payments for a website
- accept bitcoin and stablecoins
- crypto payment gateway with an API
- withdraw crypto to your own wallet
- crypto payment links
- mass crypto payouts
- crypto invoices for customers
- plugins for online-store platforms
- crypto checkout without a card processor
- how to accept crypto payments