Skip to main content
Order events use the same 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 typeTrigger
order.createdAn order is created.
order.updatedAn order is updated.
order.cancelledAn order changes to cancelled.
order.confirmedAn order changes to confirmed.
order.completedAn order changes to completed.
order.dispatchedAn 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.