Crypto payment statuses

Use this page when your checkout, webhook worker, support desk, or finance workflow needs to decide what to do after an invoice changes state. Webhooks are notifications; reload the invoice status before fulfillment-sensitive actions.

Status table

StatusPublic nameMerchant actionPrimary doc
awaiting_depositAwaiting paymentwait · Wait/docs/invoices
seenPayment seenwait · Wait/docs/invoices
confirmingConfirmingwait · Wait/docs/invoices
confirmedConfirmedwait · Wait/docs/invoices
paidPaidsafe_to_fulfill · Safe to fulfill/docs/invoices
expiredExpiredclosed · Closed/docs/invoices
cancelledCancelledclosed · Closed/docs/invoices
underpaidUnderpaidsupport_review · Support review/docs/refunds
overpaidOverpaidsupport_review · Support review/docs/refunds
lateLate paymentsupport_review · Support review/docs/refunds
reviewReview requiredsupport_review · Support review/docs/refunds
refundedRefundedclosed · Closed/docs/refunds

Fulfillment rule

Treat paid as the normal fulfillment state. Treat awaiting_deposit, seen, confirming, and confirmed as wait states. Treat underpaid, overpaid, late, and review as support review states before shipping goods or crediting access.

Webhook and polling flow

  1. Receive the webhook and verify its raw-body signature.
  2. Dedupe by event ID and invoice ID before side effects.
  3. Reload the invoice from the API before fulfillment-sensitive action.
  4. Store the status transition and the last checked timestamp.
  5. Use polling as a fallback when webhook delivery is delayed.

Related docs: invoices, webhooks, webhook verification, refunds, and idempotency.