# Crypto payment confirmations, explained for merchants

> "The customer sent it" and "I can ship the order" are different moments. Confirmations are what close the gap — and the status your backend acts on is worth getting exactly right.

Updated 2026-09-30 · Payaries · https://www.payaries.com/guides/crypto-payment-confirmations

## What a confirmation is

When a transaction is included in a block it has one confirmation; each block built on top of it adds another. The more confirmations, the less likely the transaction is ever reversed by the network. Each chain needs a different number for a payment to be treated as final, so a gateway reports both `required` and `current` on the invoice rather than a single flag.

**On an invoice**

```
"confirmations": { "required": 19, "current": 4 }
```

## The statuses your backend sees

| Status | Meaning | Act on it? |
|---|---|---|
| `pending` | Invoice created; nothing received yet. | Keep the order open. |
| `detected` | A transaction to the deposit address has been seen. | No — not confirmed. |
| `confirming` | Waiting for the required confirmations. | No. |
| `confirmed` | Required confirmations reached; the ledger is credited. | Yes — release the order. |
| `forwarding` | The deposit is being swept to the merchant's wallet. | Informational. |
| `settled` | The sweep has confirmed; the credit is withdrawable. | Informational. |
| `underpaid` | Less than the amount due was received. | Decide: refund or ask for the balance. |
| `expired` | The payment window closed. Treat as final unless a later transition arrives. | Handle late payments. |
| `failed` | The invoice could not be completed. | Investigate. |

Release goods or access on `confirmed`, not on `detected`. A detected transaction has not reached its required confirmations.

## Credited is not the same as withdrawable

Payaries credits your ledger the moment an invoice reaches `confirmed`, but that amount is shown as pending sweep until the deposit has been swept to your wallet and the sweep itself confirms on-chain. Only then does it move to available. A withdrawal request against the not-yet-swept portion is rejected rather than queued, and the gap is usually short.

## Let webhooks drive it

Don't poll. Every transition fires a signed `invoice.status_changed` webhook; make your handler idempotent on the invoice and status, because retries can deliver the same event more than once. See [verifying webhook signatures](https://www.payaries.com/guides/verify-crypto-webhook-signatures).

## Questions

**How many confirmations does a crypto payment need?**
It depends on the network. The invoice reports the number required and the number so far in its confirmations field, so your integration never has to hard-code a figure per chain.

**When should I release the order?**
When the invoice status is confirmed. A detected or confirming invoice has not yet reached its required confirmations.

**Why can't I withdraw the moment an invoice is confirmed?**
The ledger is credited at confirmed, but the funds become withdrawable once the sweep from the one-time deposit address to your wallet settles on-chain. Until then the amount is pending sweep.

## Try it

Watch an invoice move through every status: [Payaries — www.payaries.com](https://www.payaries.com/signup). Payaries is a multi-chain crypto payment gateway — https://www.payaries.com

## Keep reading

- https://www.payaries.com/guides/how-a-crypto-payment-gateway-works — How a crypto payment gateway works, from invoice to settlement
- https://www.payaries.com/blog/how-blockchain-works — How blockchain works, step by step
- https://www.payaries.com/guides/handle-underpaid-and-late-crypto-payments — Handling underpaid, late and unmatched crypto payments
- https://www.payaries.com/crypto-payment-api — A crypto payment API that behaves like the rest of your stack
- https://www.payaries.com/usdt-payment-gateway — Accept USDT payments on Ethereum, BNB Smart Chain, Polygon, Arbitrum, Tron and more
- https://www.payaries.com/guides/verify-crypto-webhook-signatures — How to verify crypto payment webhook signatures
- https://www.payaries.com/blog/tesla-roadster-2026-reveal — The new Tesla Roadster: what Tesla claimed, what is verified, and how a $50,000 reservation is paid
