01When does it fire?
- When any new order is created — from the storefront, the POS, the API or any other path. No producer bypasses the event.
- Once per order — with the stable identity mwh:order-created:<tenant_id>:<order_id>. If the delivery is delayed and retried, the same identity returns (your dedupe key).
02Full payload example
A first-generation event: the original flat fields + the envelope added at the same level (see the payload envelope page). Values are illustrative; the shape is exact.
{
"order_id": "3f0c8e6a-1d24-4b7f-9a3e-2c5b8d90f1aa",
"receipt_number": "RCP-20261020-1482",
"order_type": "DELIVERY",
"order_source": "WEBSITE",
"status": "PENDING",
"customer_name": "Ahmed Mahmoud",
"customer_phone": "+201001234567",
"delivery_address": "15 El-Tahrir St., Dokki, Giza",
"table_number": null,
"branch_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
"payment_method": "COD",
"coupon_code": "WELCOME10",
"total_amount": 624,
"tax_amount": 62,
"shipping_fee": 50,
"discount_amount": 50,
"items": [
{
"product_id": "7a2b9c4e-8f31-4d5a-b6c2-1e9f8a7b6c5d",
"variant_id": "2c4e6f8a-0b1d-4e2f-8a3b-5c6d7e8f9a0b",
"name": "Cotton T-shirt - Blue / L",
"price": 225,
"quantity": 2
},
{
"product_id": "9d8c7b6a-5f4e-4d3c-2b1a-0f9e8d7c6b5a",
"variant_id": null,
"name": "Summer cap",
"price": 112,
"quantity": 1
}
],
"items_truncated": false,
"created_at": "2026-10-20T12:34:56.789147+00:00",
"id": "mwh:order-created:9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b:3f0c8e6a-1d24-4b7f-9a3e-2c5b8d90f1aa",
"type": "order.created",
"api_version": "v2",
"tenant_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b"
}03Payload fields
| Field | Meaning |
|---|---|
| order_id | The order id (UUID). |
| receipt_number | The customer-facing receipt number. |
| order_type | The order type — e.g. DELIVERY. |
| order_source | The order source — e.g. WEBSITE — may be null. |
| status | The order status at creation time. |
| customer_name / customer_phone | The customer name and phone number. |
| delivery_address | The delivery address for delivery orders. |
| table_number | The table number for dine-in orders — null otherwise. |
| branch_id | The order branch id — when the store has more than one branch. |
| payment_method | The payment method — e.g. COD. |
| coupon_code | The redeemed coupon code — null when none. |
| total_amount / tax_amount / shipping_fee / discount_amount | Amounts in the store currency. |
| items | Order items: product_id and variant_id (null for products without variants), name, price, quantity. |
| items_truncated | true when items exceeded 100 and were capped. |
| created_at | Order creation time, ISO 8601. |
04Event identity
Pattern: mwh:order-created:<tenant_id>:<order_id> — constant across all retries and replays, delivered in the webhook-event-id header and the id payload key.
COMPLETE YOUR INTEGRATION
