Skip to main content

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. Check difference_amount.

invoice.failed

Sent on payment failure.

invoice.expired

Sent when invoice expires.

invoice.cancelled

Sent when a merchant cancels an open invoice via POST /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

Not a standard merchant integration event. Do not assume this event is subscribed or delivered by default.
When emitted: Platform status polling detects a refund on an open invoice. The invoice status becomes refunded 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.

Expected HTTP response

Return HTTP 200 with JSON body acknowledging receipt.