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 valueFires when
ORDER_CREATEOrder is created
ORDER_UPDATEOrder is updated
ORDER_CANCELOrder is cancelled
ORDER_CLOSEDOrder reaches closed state
ORDER_SHIPMENT_STATUS_UPDATEShipment status changes on an order
FULFILLMENT_ORDER_FULFILLFulfillment order moves to fulfilled
FULFILLMENT_ORDER_UNFULFILLFulfillment order reverts to unfulfilled
FULFILLMENT_ORDER_ALLOCATEFulfillment order is allocated to a location
FULFILLMENT_ORDER_MERGEFulfillment orders are merged
FULFILLMENT_ORDER_SPLITFulfillment order is split
FULFILLMENT_ORDER_UPDATE_LOCATIONFulfillment order's location changes
FULFILLMENT_ORDER_UPDATE_ADDRESSFulfillment order's address is updated
FULFILLMENT_ORDER_UPDATE_DELIVERY_METHODFulfillment order's delivery method changes
FULFILLMENT_ORDER_UPDATE_SCHEDULEFulfillment order's schedule is updated
FULFILLMENT_ORDER_SHIP_LINE_ITEMSLine items on a fulfillment order are shipped
FULFILLMENT_ORDER_CANCEL_LINE_ITEMSLine items on a fulfillment order are cancelled
FULFILLMENT_ORDER_UPDATE_PARTNER_FULFILLMENT_REFERENCESPartner fulfillment references are updated
FULFILLMENT_ORDER_UPDATE_PARTNER_FULFILLMENT_ORDER_REFERENCEPartner 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"
}
  • operation is one of CREATE, UPDATE, or DELETE.
  • oldImage is null on CREATE.
  • Compare oldImage and newImage to 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

ConditionWhat it filters
Creation source typeHow the order was created (API, connector, Dashboard)

No other conditions are available for order webhooks.