Skip to main content
Every webhook delivery is an HTTP POST request with a JSON body. This page documents the complete payload structure for each event type.

Request Headers

All webhook requests include these headers:
The Signature header is only included when signing is enabled for the webhook. See Signature Verification for details.

order.created Payload

order.status.changed Payload

The payload structure is identical to order.created — the same relations are loaded (transaction, items.item, items.codes, customer, status, statuses). The status field reflects the new (current) status, and the statuses array contains the full status history.
The order.status.changed event is only fired when the order has more than one status (i.e., the initial status creation does not trigger this event — only subsequent status changes do).

Field Reference

Top Level

data (Order)

data.transaction

The transaction is loaded with a specific column selection. Only the following fields are included:

data.customer

The full customer model is loaded (minus $hidden fields: remember_token, last_login_ip, last_login_at).

data.items[]

data.items[].item (Product)

The full product model is included via toArray(). Key fields include:

data.items[].codes[]

The full code model is included. Key fields:

data.status / data.statuses[]

The statuses array is ordered chronologically. Use it to build a timeline of the order’s lifecycle. The status object always reflects the latest/current status.