Skip to content
Navigation

order.status_changed

The order's status changed after it was placed (the restaurant accepted, started, completed, declined or cancelled it, or an online payment moved it on). data.previousStatus is the status before the change.

POST
order.status_changed
Webhook

Header parameters

  • X-Unipage-Event
    string
    required

    The event name, the same as event in the body.

  • X-Unipage-Timestamp
    string
    required

    Unix seconds when this delivery was signed.

  • X-Unipage-Signature
    string
    required

    sha256= plus the hex HMAC-SHA256 of <X-Unipage-Timestamp>.<raw body> with your webhook's signing secret. See Order webhooks.

Request body JSON required

  • id
    string
    required

    The event id. A retry of the same event keeps it: use it to drop repeats.

    format: uuid
  • event
    order.created
    or
    order.paid
    or
    order.status_changed
    required
  • created_at
    string
    required

    When the event was sent (ISO 8601).

    format: date-time
  • business_id
    string
    required

    The restaurant id, as id in GET /store.

  • data
    object
    required
    • previousStatus
      optional
      string

      The status before the change.

Example request

{
  "id": "3f6c2a1e-9b7d-4c1a-8e2f-0a5b6c7d8e9f",
  "event": "order.created",
  "created_at": "2026-10-28T11:30:00+00:00",
  "business_id": "k3x9p",
  "data": {
    "order": {
      "id": "q4m8z",
      "status": "PLACED",
      "label": "Order received",
      "orderType": "TAKEOUT",
      "slotAt": 1792750500,
      "paymentType": "online",
      "isPaid": true,
      "customerNotifications": true,
      "lines": [
        {
          "productId": "p7d2x",
          "name": "Medium fries",
          "quantity": 1,
          "optionsLabel": "",
          "total": 4
        }
      ],
      "subtotal": 4,
      "deliveryCost": 0,
      "serviceCost": 0.5,
      "couponDiscount": 0,
      "total": 4.5,
      "currency": "EUR",
      "locale": "nl",
      "customer": {
        "firstName": "Ann",
        "lastName": "Example",
        "email": "ann@example.com"
      },
      "delivery": {
        "street": "string",
        "number": "string",
        "postcode": "string",
        "city": "string",
        "zone": "string"
      },
      "createdAt": 1792749000
    },
    "previousStatus": "PLACED"
  }
}

Returns

200

Any 2xx acknowledges the event. Anything else (a 3xx included, redirects are not followed) or no answer within 5 seconds is a failed delivery.

Type to search…

↑↓ navigate↵ selectEsc close