Webhook

Order status changed

Fires on every order status transition — shipped, delivered, completed, cancelled, disputed, or resolved. Delivered to both the seller and the buyer (recipientRole). data.status is the new status and data.previousStatus is where it moved from; switch on data.status.

Body
required
application/json
  • data
    Type: object
    required

    The order's new status and where it moved from.

  • eventId
    Type: string
    required

    Idempotency key. Stable across retries of the same delivery; safe to dedupe on.

  • recipientRole
    Type: string enum
    required

    Whether this delivery is for the seller or the buyer side of the order. The same transition produces two deliveries — one to each role.

    values
    • seller

      You received this because you're the seller.

    • buyer

      You received this because you're the buyer.

  • timestamp
    Type: string Format: date-time
    required

    When this webhook was emitted (ISO 8601, UTC).

  • type
    const:  
    order.status.changed
    required
Responses
  • 2XX

    Acknowledged. Return any 2XX status to ack receipt; non-2XX triggers Svix's retry schedule.

Request Example for postorder.status.changed
{
  "type": "order.status.changed",
  "eventId": "OR-ASNBC-1.3.seller",
  "timestamp": "2026-06-14T09:12:00.000Z",
  "recipientRole": "seller",
  "data": {
    "orderNumber": "OR-ASNBC-1",
    "status": "shipped",
    "previousStatus": "pending_shipment",
    "changedAt": "2026-06-14T09:12:00.000Z",
    "reason": null
  }
}
No Body