data shape.
Order event money fields are sent as decimal major currency units for most currencies. For example, Singapore dollars are sent as dollars, not cents.
Event types
| Event type | Trigger |
|---|---|
order.created | An order is created. |
order.updated | An order is updated. |
order.cancelled | An order changes to cancelled. |
order.confirmed | An order changes to confirmed. |
order.completed | An order changes to completed. |
order.dispatched | An order changes to dispatched. |
Payload
{
"order_id": 98765,
"id": 98765,
"identifier": "A123",
"state": "confirmed",
"serving_date": "2026-06-18",
"subtotal": 28.5,
"surcharge": 0,
"delivery_fee": 4,
"discount": 0,
"admin_discount": 0,
"total": 32.5,
"tax": 2.92,
"total_including_tax": 35.42,
"created_at": "2026-06-18T10:15:30+08:00",
"cancelled_at": null,
"completed_at": null,
"promotion_level": null,
"barcode_identifier": "ATLAS123456",
"donation": 0,
"contact_name": "Jane Tan",
"fulfilment_type": "delivery",
"timeslot_range": "12:00 PM - 12:30 PM",
"table": {
"id": 12,
"name": "T12"
},
"user": {
"id": 321,
"email": "jane@example.com",
"mobile_number": "+6591234567",
"external_id": "customer-123"
},
"outlet": {
"id": 45,
"label": "Atlas Cafe",
"description": "Main outlet",
"address": "1 Example Street",
"archived": false
},
"promotion": {
"id": 10,
"label": "Lunch promo",
"type": "Promotion",
"description": "Lunch discount",
"code": "LUNCH"
},
"order_source": {
"id": 7,
"source_label": "website",
"source_type": "Website"
},
"payment_type": {
"id": 3,
"label": "Credit Card"
},
"order_items": [
{
"id": 111,
"item_id": 222,
"item_sku": "SKU-001",
"order_item_id": null,
"modifier_id": null,
"name": "Chicken bowl",
"quantity": 1,
"currency": "SGD",
"unit_price": 12.5,
"unit_modifier_price": 2,
"unit_component_price": 0,
"type": "Product",
"order_id": 98765,
"barcode_identifier": "ATLAS123456",
"item_total": 14.5,
"item_discount": 0,
"tags": ["lunch"],
"product_tags": ["lunch"],
"kitchen_tags": ["hot"],
"report_category": "Mains",
"voided": false,
"brand": {
"id": 55,
"label": "Atlas Cafe",
"description": "All-day dining"
},
"sections": [
{
"id": 66,
"label": "Bowls",
"description": "Rice and salad bowls"
}
],
"sub_items": [
{
"id": 112,
"item_id": 223,
"item_sku": "SKU-001-MOD",
"order_item_id": 111,
"modifier_id": 333,
"name": "Add avocado",
"quantity": 1,
"currency": "SGD",
"unit_price": 2,
"unit_modifier_price": 0,
"unit_component_price": 0,
"type": "Product",
"order_id": 98765,
"barcode_identifier": "ATLAS123456",
"item_total": 2,
"item_discount": 0,
"tags": ["addon"],
"product_tags": ["addon"],
"kitchen_tags": [],
"report_category": "Modifiers",
"voided": false,
"brand": {
"id": 55,
"label": "Atlas Cafe",
"description": "All-day dining"
},
"sections": [],
"sub_items": []
}
]
}
]
}
order_items contains top-level items only.
sub_items contains modifiers and nested components attached to a parent item. A sub-item uses the same fields as a top-level order item. The order_item_id field points to the parent order item, and modifier_id is present when the sub-item came from a modifier.