Payload envelope
All events share this structure:Payloads use opaque public IDs (
inv_, evt_, int_). Do not rely on undocumented fields if present in a response.Standard merchant events
invoice.created
Sent immediately after invoice creation.data.status is typically awaiting_payment.
invoice.paid
Sent when full payment is validated.data.paid_at and data.tx_hash are populated.
invoice.underpaid
Sent when partial payment detected. Checkdifference_amount.
invoice.failed
Sent on payment failure.invoice.expired
Sent when invoice expires.invoice.cancelled
Sent when a merchant cancels an open invoice viaPOST /v1/invoices/{id}/cancel. Only invoices in open states (awaiting_payment, quoted, pending) can be cancelled. Terminal states (paid, refunded, etc.) cannot be cancelled.
Previously this event was subscribed on WooCommerce endpoints but not emitted. Public cancel API now dispatches
invoice.cancelled.webhook.test
Platform-emitted events (not in default subscriptions)
invoice.refunded
When emitted: Platform status polling detects a refund on an open invoice. The invoice status becomesrefunded and invoice.refunded is dispatched.
Not available: Merchant-initiated refund API. Default WooCommerce managed webhook subscriptions do not include this event.
WooCommerce behavior if received: Adds an order note only; does not change order status.