---
title: "order.status_changed"
description: "The order's `status` changed after it was placed (the restaurant accepted,\nstarted, completed, declined or cancelled it, or an online payment\nmoved it on). `data.previousStatus` is the status before the change.\n"
---

> Documentation Index
> Fetch the complete documentation index at: https://developer.unipage.be/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Storefront API

`POST order.status_changed`

_Webhook._

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.

## Header parameters

- `X-Unipage-Event` (`order.status_changed.header.X-Unipage-Event`; string, required) — The event name, the same as `event` in the body.
- `X-Unipage-Timestamp` (`order.status_changed.header.X-Unipage-Timestamp`; string, required) — Unix seconds when this delivery was signed.
- `X-Unipage-Signature` (`order.status_changed.header.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](/storefront/webhooks/).

## Request body

_Required._

- `id` (`order.status_changed.id`; string, required) — The event id. A retry of the same event keeps it: use it to drop repeats.
  - format `uuid`
- `event` (`order.status_changed.event`; string, required)
  - one of `"order.created"`, `"order.paid"`, `"order.status_changed"`
- `created_at` (`order.status_changed.created_at`; string, required) — When the event was sent (ISO 8601).
  - format `date-time`
- `business_id` (`order.status_changed.business_id`; string, required) — The restaurant id, as `id` in `GET /store`.
- `data` (`order.status_changed.data`; object, required)
  - `previousStatus` (`order.status_changed.data.previousStatus`; string, optional) — The status before the change.

## Example request

```json
{
  "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"
  }
}
```

## Responses

### 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.


Source: https://developer.unipage.be/storefront/api/webhooks/order.status_changed/index.md
