Skip to main content
A payout sends crypto from your Tender merchant balance to an external destination — either a raw wallet address or a saved payout account. Payouts are processed asynchronously and do not require an OTP or password. Every payout request needs an Idempotency-Key header so that a retry never sends funds twice. To pay out fiat to a bank account or through MoneyGram, see Fiat payouts.

How it works

1

Check the fee

Call GET /payout/fee/{chain}/{coin}/{amount} to see the fee and net amount before committing.
2

Submit the payout

Call POST /payout/crypto with an Idempotency-Key header, the coin, chain, amount, and either a wallet address or a saved payoutAccountId.
3

Poll for completion

Call GET /payout/{id} until status is completed or failed. There are no payout webhooks, so polling is the only way to track progress.

Prerequisites

Authentication guide

These endpoints use Signed (HMAC) authentication — an HMAC-SHA256 signature is required on every request. See the authentication guide for code examples.

Step 1 — Check the fee


Step 2 — Submit a payout to a wallet address

Generate a new Idempotency-Key for each payout, and store it with your own record before you send the request. If the request times out, retry with the same key and body: you get the original response back instead of a second payout. See Idempotency. The amount must be worth at least $20 USD. The fee is taken out of amount, so the recipient receives amount − fee.

Step 2 (alt) — Payout to a saved payout account

The saved account must be one of your active crypto payout accounts, on the same chain and coin as the payout. If you send both address and payoutAccountId, the saved account’s address is used.

Step 3 — Poll for completion

Tender doesn’t send webhooks for payouts. Poll GET /payout/{id} (or list recent payouts with GET /payout) to track status.

Payout status values


Error handling