Order webhook events
Updated June 11, 20261 min read
Order webhooks cover the order and fulfillment-order lifecycle — from creation through allocation, fulfillment, shipping, and closure. The trigger HTTP header on every delivery tells you which event fired.
Triggers
| Trigger value | Fires when |
|---|---|
ORDER_CREATE | Order is created |
ORDER_UPDATE | Order is updated |
ORDER_CANCEL | Order is cancelled |
ORDER_CLOSED | Order reaches closed state |
ORDER_SHIPMENT_STATUS_UPDATE | Shipment status changes on an order |
FULFILLMENT_ORDER_FULFILL | Fulfillment order moves to fulfilled |
FULFILLMENT_ORDER_UNFULFILL | Fulfillment order reverts to unfulfilled |
FULFILLMENT_ORDER_ALLOCATE | Fulfillment order is allocated to a location |
FULFILLMENT_ORDER_MERGE | Fulfillment orders are merged |
FULFILLMENT_ORDER_SPLIT | Fulfillment order is split |
FULFILLMENT_ORDER_UPDATE_LOCATION | Fulfillment order's location changes |
FULFILLMENT_ORDER_UPDATE_ADDRESS | Fulfillment order's address is updated |
FULFILLMENT_ORDER_UPDATE_DELIVERY_METHOD | Fulfillment order's delivery method changes |
FULFILLMENT_ORDER_UPDATE_SCHEDULE | Fulfillment order's schedule is updated |
FULFILLMENT_ORDER_SHIP_LINE_ITEMS | Line items on a fulfillment order are shipped |
FULFILLMENT_ORDER_CANCEL_LINE_ITEMS | Line items on a fulfillment order are cancelled |
FULFILLMENT_ORDER_UPDATE_PARTNER_FULFILLMENT_REFERENCES | Partner fulfillment references are updated |
FULFILLMENT_ORDER_UPDATE_PARTNER_FULFILLMENT_ORDER_REFERENCE | Partner fulfillment order reference is updated |
Payload
The body is an envelope containing the order state before and after the change. Field names are camelCase.
{
"oldImage": {
"order_id": "ORD-00056789",
"status": "open",
"merchant": "ACME",
"fulfillment_orders": [{ "status": "unfulfilled" }]
// ... full order fields
},
"newImage": {
"order_id": "ORD-00056789",
"status": "open",
"merchant": "ACME",
"fulfillment_orders": [{ "status": "fulfilled" }]
// ... full order fields
},
"trigger": "FULFILLMENT_ORDER_FULFILL",
"operation": "UPDATE"
}
operationis one ofCREATE,UPDATE, orDELETE.oldImageisnullonCREATE.- Compare
oldImageandnewImageto determine what changed.
Note
The order envelope uses camelCase field names (oldImage, newImage).
This differs from the inventory envelope,
which uses snake_case (old_image, new_image). Handle both formats in
your webhook handler if you subscribe to multiple entity types.
Conditions
| Condition | What it filters |
|---|---|
| Creation source type | How the order was created (API, connector, Dashboard) |
No other conditions are available for order webhooks.