TG Crypto PayTG Crypto PayHelp Center
#crypto-pay#fees#limits#transfers

Crypto Pay fees and limits

2 min readUpdated Aug 7, 2026

Invoices carry a platform fee taken from what you receive; transfers and checks are bounded by amount limits. None of the figures are fixed here — they’re live settings, and the reliable way to read them is off your own paid invoices.

The invoice fee

The payer always pays the face amount of the invoice. The fee comes out of the merchant side: your app balance is credited the amount net of fee.

Two rules matter more than the number:

  • The fee is resolved and stamped at payment time. A later change to the rate never touches an invoice that’s already been paid.
  • The rate can slide with your volume. Higher paid turnover over a trailing 30-day window can move you onto a lower tier automatically. You don’t apply for it and there’s nothing to configure.

To see exactly what was charged, read fee_asset and fee_amount off the paid invoice — from the invoice_paid webhook payload or from getInvoices. That’s the authoritative figure for your books.

Refunds don’t return the fee: refundInvoice sends the payer the full face amount out of your balance, and the fee stays charged.

Transfer limits

transfer is bounded by a minimum and maximum per transfer, applied as a US-dollar-equivalent estimate at current rates rather than a per-asset figure. An amount outside the band is refused with an explicit error, so handle amount_too_small and amount_too_big in your integration.

A transfer also fails when:

  • your app balance is short in that asset,
  • the recipient isn’t a user of the app — a payout to an unknown or mistyped Telegram ID errors instead of crediting a wallet nobody will open,
  • the recipient’s account is blocked.

Rate limits

The money-moving methods are rate-limited per app. A well-behaved integration never notices; a retry loop will. Back off on rejection rather than hammering.

Idempotency

transfer requires a spend_id you generate, and createCheck accepts one. Reusing the same value replays the original result instead of moving money a second time — so a timed-out request is safe to retry with the same spend_id, and only a genuinely new payout gets a new one.

What costs nothing

There’s no network fee anywhere in Crypto Pay — invoices, transfers and checks all settle inside the app, off-chain. The platform fee on invoices is the only charge.

⚠️ Never derive the fee yourself

Don’t hardcode a percentage or reconstruct the net from the face amount. Tiers and rates change, and a stale constant silently corrupts your accounting. Read the stamped fee off the invoice every time.