Skip to main content

Webhook Status Reference

Use this page as the compact decision table for webhook handling.

If you need payload examples or signature-verification code, see Webhooks Overview.


Main statuses

typeadditionalStatusWhat it meansTypical backend action
NewNoneInvoice createdUsually no action
ProcessingNonePayment detected. Always precedes Settled, including for LightningMark order as processing/on-hold, do not fulfill yet
SettledNonePayment confirmedMark as paid and fulfill
ExpiredNoneInvoice expired without paymentMark as expired/cancelled if your business flow requires it

Invalid is an invoice status, not a webhook event. No Invalid webhook is sent. Read it from GET /api/v1/stores/{storeId}/invoices/{invoiceId} if you need it, and use Expired as the terminal webhook signal.


Additional status values

typeadditionalStatusWhat it meansTypical backend action
SettledNonePaid in full, or short by less than the store's underpayment toleranceMark as paid and fulfill
SettledOverpaidCustomer paid more than the invoice amountMark as paid, then review refund or credit policy
SettledPaidAfterExpirationPayment arrived after the invoice had already expiredMark for manual review before fulfillment
ExpiredUnderpaidInvoice expired short by more than the toleranceMark as underpaid/on-hold and contact customer

Values the platform does not produce

Older Coinsnap PHP and WordPress libraries define these constants. Nothing in the platform emits them, and no webhook or invoice will ever carry one. Do not branch on them.

Legacy constantUse instead
PaidPartialUnderpaid
PaidOverOverpaid
PaidLatePaidAfterExpiration
Markednothing, there is no equivalent

Minimal production rule set

If you want the shortest safe policy:

  1. Ignore New.
  2. Treat Processing as informational.
  3. Fulfill only on Settled with additionalStatus: None.
  4. Review Overpaid, Underpaid, and PaidAfterExpiration manually.
  5. Never use the browser redirect as your paid signal.

Step 3 fulfills a payment short by less than your store's underpayment tolerance, because such a payment settles as Settled plus None. Compare amount against totalPaid on the invoice if you need the shortfall.


Coinsnap eventExample local order state
Newpending_payment
Processingprocessing or on_hold
Settledpaid
Expiredexpired or cancelled