# The order was cancelled, by the restaurant or by you EVENT `order.cancelled` `reason.code` is `RESTAURANT_CANCELLED` or, after your own cancel, `PARTNER_REQUESTED`. ## Headers - `X-Partner-Signature` (string, required) `t=,v1=.")>`, one `v1=` per active secret (two during a rotation; the key is the whole `whsec_…` string). Recomputed at every attempt. Verify against the raw body, reject `t` more than 300 s off, compare in constant time. - `X-Partner-Event-Id` (string, required, pattern: `^evt_`) The event's `id`; deduplicate by it. - `X-Partner-Event-Type` (string, required, `order.accepted` | `order.ready` | `order.completed` | `order.rejected` | `order.cancelled` | `menu.updated` | `store.status_changed` | `connection.revoked`) ## Payload `application/json` - `id` (string, required, pattern: `^evt_`) - `type` (string, required, Value: `order.cancelled`) - `createdAt` (string, required, format: date-time) - `connectionId` (string, required, pattern: `^pc_[0-9a-f]{20}$`) - `data` (object, required) - `orderId` (string, required, pattern: `^oo_[0-9a-f]{64}$`) Our order id - `externalId` (string, required, pattern: `^[A-Za-z0-9._~-]{1,64}$`) Your order id, unique per connection - `version` (integer, required, ≥ 2) - `occurredAt` (string, required, format: date-time) - `status` (string, required, Value: `cancelled`) - `reason` (object, required) - `code` (string, required, `RESTAURANT_REJECTED` | `RESTAURANT_CANCELLED` | `PARTNER_REQUESTED`) - `message` (string, required) The restaurant's text or a default ## Expected response ### 200 — Stored. Answer `2xx` within 3 s, as soon as the event is stored. Timeouts, network errors, `429` and `5xx` are retried (`Retry-After` first; else after about 1, 2, 10 min, then every 30 min, for 24 h). Other `4xx` and every `3xx` are final. ## Payload — Example ```json { "id": "evt_", "type": "order.cancelled", "createdAt": "2026-01-15T10:00:00Z", "connectionId": "pc_00000000000000000000", "data": { "orderId": "oo_0000000000000000000000000000000000000000000000000000000000000000", "externalId": "A", "version": 2, "occurredAt": "2026-01-15T10:00:00Z", "status": "cancelled", "reason": { "code": "RESTAURANT_REJECTED", "message": "string" } } } ```