Atlas Open API
  1. Outgoing
Atlas Open API
  • Introduction
  • Authentication
  • Date and Time
  • Errors
  • Webhooks
    • Incoming
      • Reservations (BETA)
    • Outgoing
      • Menus, Stocks, Orders, Outlets, Users
  • Menus
    • Menu List
      GET
    • Menu Details
      GET
    • Menu Create or Update
      POST
  • Orders
    • Create Order
      POST
    • Order Details
      GET
    • Update Order
      PATCH
  • Stocks
    • Outlet Stocks
      GET
  • Users
    • User Sync
      POST
  • Tables
    • Tables
      GET
  • Carts
    • Untitled Endpoint
      POST
  1. Outgoing

Menus, Stocks, Orders, Outlets, Users

🚧
This feature is still under active development. Expect changes from the specifications.
Webhooks can be used to subscribe to events as they happen within Atlas. Contact us for assistance in setting up the events for your application.

Receiving events#

Atlas Open API delivers the webhooks by sending a POST request to the endpoint of your choosing. Your application must read event details from the request body as JSON.
The endpoint must acknowledge the receipt of the webhook by responding with 2xx HTTP status.

Retries and duplicate handling#

Atlas Open API expects a 2xx status response from the webhook endpoint. If this response is not received, Atlas Open API will retry the request.
It is expected for your application to receive a webhook multiple times. We recommend detecting deplicates so prevent double processing.

Events#

Menu#

menu.updated#

{
    "event_type": "menu.updated",
    "event_at": 1727423000,
    "payload": {
        "event": "menu.updated"
        "menu_id": 1
    }
}

Stock#

stock.updated#

{
    "event_type": "stock.updated",
    "event_at": 1727423000,
    "payload": {
        "item_id": 15,
        "outlet_id": 1,
        "is_available": true
    }
}

Order#

order.created#

OrderCreatedPayload

{
"event_type": "order.created",
"event_at": 1727423000,
"payload": {
    "id": 85,
    "identifier": null,
    "user_id": 17,
    "channel_id": 1,
    "outlet_id": 3,
    "brand_id": null,
    "fulfilment_type": "delivery",
    "state": "unpaid",
    "notes": null,
    "serving_date": "2024-10-01",
    "timeslot_start": 54000,
    "timeslot_end": 55800,
    "timeslot_range": "3:00PM–3:30PM",
    "contact_name": "John",
    "contact_email": "john@example.com",
    "contact_number": "80000001",
    "address_line1": "8 Temasek Boulevard",
    "address_line2": "Suntec Tower 3",
    "address_latitude": null,
    "address_longitude": null,
    "postal_code": "038988",
    "is_gift": false,
    "recipient_name": null,
    "recipient_contact_number": null,
    "gift_message": null,
    "is_paid": false,
    "promo_code": null,
    "delivery_fee": 0,
    "surcharge": 0,
    "admin_discount": 0,
    "discount": 0,
    "tax": 0,
    "tax_rate": "0.0",
    "tax_inclusive_prices": false,
    "subtotal": 0,
    "total": 0,
    "total_including_tax": 0,
    "is_cutlery_required": false,
    "is_contactless": false,
    "created_at": 1727423000,
    "updated_at": 1727423000,
    "cancelled_at": 1727423000,
    "completed_at": 1727423000,
    "order_items": [
        {
            "id": 214,
            "item_id": 380,
            "name": "Coffee",
            "quantity": 1,
            "currency": "SGD",
            "calculated_subtotal": 400,
            "per_unit_quantity": 1,
            "unit_label": null,
            "notes": null,
            "discount": 0,
            "price_cents": 400,
            "sub_items": [
                {
                    "id": 215,
                    "item_id": 496,
                    "name": "Iced",
                    "quantity": 1,
                    "currency": "SGD",
                    "calculated_subtotal": 0,
                    "per_unit_quantity": 1,
                    "unit_label": null,
                    "notes": null,
                    "discount": 0,
                    "price_cents": 0
                }
            ]
        },
        {
            "id": 216,
            "item_id": 480,
            "name": "Eggs Benedict",
            "quantity": 2,
            "currency": "SGD",
            "calculated_subtotal": 1600,
            "per_unit_quantity": 1,
            "unit_label": null,
            "notes": null,
            "discount": 0,
            "price_cents": 1600,
            "sub_items": []
        }
    ]
}
}

order.updated#

OrderCreatedPayload

{
"event_type": "order.updated",
"event_at": 1727423000,
"payload": {
    "id": 85,
    "identifier": null,
    "user_id": 17,
    "channel_id": 1,
    "outlet_id": 3,
    "brand_id": null,
    "fulfilment_type": "delivery",
    "state": "unpaid",
    "notes": null,
    "serving_date": "2024-10-01",
    "timeslot_start": 54000,
    "timeslot_end": 55800,
    "timeslot_range": "3:00PM–3:30PM",
    "contact_name": "John",
    "contact_email": "john@example.com",
    "contact_number": "80000001",
    "address_line1": "8 Temasek Boulevard",
    "address_line2": "Suntec Tower 3",
    "address_latitude": null,
    "address_longitude": null,
    "postal_code": "038988",
    "is_gift": false,
    "recipient_name": null,
    "recipient_contact_number": null,
    "gift_message": null,
    "is_paid": false,
    "promo_code": null,
    "delivery_fee": 0,
    "surcharge": 0,
    "admin_discount": 0,
    "discount": 0,
    "tax": 0,
    "tax_rate": "0.0",
    "tax_inclusive_prices": false,
    "subtotal": 0,
    "total": 0,
    "total_including_tax": 0,
    "is_cutlery_required": false,
    "is_contactless": false,
    "created_at": 1727423000,
    "updated_at": 1727423000,
    "cancelled_at": 1727423000,
    "completed_at": 1727423000,
    "order_items": [
        {
            "id": 214,
            "item_id": 380,
            "name": "Coffee",
            "quantity": 1,
            "currency": "SGD",
            "calculated_subtotal": 400,
            "per_unit_quantity": 1,
            "unit_label": null,
            "notes": null,
            "discount": 0,
            "price_cents": 400,
            "sub_items": [
                {
                    "id": 215,
                    "item_id": 496,
                    "name": "Iced",
                    "quantity": 1,
                    "currency": "SGD",
                    "calculated_subtotal": 0,
                    "per_unit_quantity": 1,
                    "unit_label": null,
                    "notes": null,
                    "discount": 0,
                    "price_cents": 0
                }
            ]
        },
        {
            "id": 216,
            "item_id": 480,
            "name": "Eggs Benedict",
            "quantity": 2,
            "currency": "SGD",
            "calculated_subtotal": 1600,
            "per_unit_quantity": 1,
            "unit_label": null,
            "notes": null,
            "discount": 0,
            "price_cents": 1600,
            "sub_items": []
        }
    ]
}
}

Outlet#

outlet.created#

   {
      "event_type": "outlet.created",
      "payload": {
        "id": 2,
        "identifier": "valley-hungry",
        "label": "Hungry Valley",
        "address": "Hungry Valley, Singapore",
        "description": "Valley of hungry people",
        "contact_number": "+6598890011",
        "created_at": "2022-11-23T12:39:41.039+08:00",
        "updated_at": "2025-01-23T12:37:43.456+08:00",
        "email": "outlet@atlas.kitchen",
        "archived": null
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }

outlet.updated#

   {
      "event_type": "outlet.updated",
      "payload": {
        "id": 2,
        "identifier": "valley-hungry",
        "label": "Hungry Valley",
        "address": "Hungry Valley, Singapore",
        "description": "Valley of hungry people",
        "contact_number": "+6598890011",
        "created_at": "2022-11-23T12:39:41.039+08:00",
        "updated_at": "2025-01-23T12:37:43.456+08:00",
        "email": "outlet@atlas.kitchen",
        "archived": null
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }

outlet.closed#

   {
      "event_type": "outlet.closed",
      "payload": {
        "id": 2,
        "identifier": "valley-hungry",
        "label": "Hungry Valley",
        "address": "Hungry Valley, Singapore",
        "description": "Valley of hungry people",
        "contact_number": "+6598890011",
        "created_at": "2022-11-23T12:39:41.039+08:00",
        "updated_at": "2025-01-23T12:37:43.456+08:00",
        "email": "outlet@atlas.kitchen",
        "archived": null
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }

outlet.opened#

   {
      "event_type": "outlet.opened",
      "payload": {
        "id": 2,
        "identifier": "valley-hungry",
        "label": "Hungry Valley",
        "address": "Hungry Valley, Singapore",
        "description": "Valley of hungry people",
        "contact_number": "+6598890011",
        "created_at": "2022-11-23T12:39:41.039+08:00",
        "updated_at": "2025-01-23T12:37:43.456+08:00",
        "email": "outlet@atlas.kitchen",
        "archived": null
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }

User#

user.created#

   {
      "event_type": "user.created",
      "data": {
        "id": 123,
        "email": "john.doe@example.com",
        "mobile_number": "+1234567890", 
        "name": "John Doe",
        "date_of_birth": "1990-01-01",
        "marketing_consent": true,
        "title": "Mr.",
        "external_user_links": [
          {
            "external_user_id": "ext_123",
            "external_user_type": "ext_app"
          }
        ]
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }

user.updated#

   {
      "event_type": "user.updated",
      "data": {
        "id": 123,
        "email": "john.doe@example.com",
        "mobile_number": "+1234567890",
        "name": "John Doe", 
        "date_of_birth": "1990-01-01",
        "marketing_consent": true,
        "title": "Mr.",
        "external_user_links": [
          {
            "external_user_id": "ext_123",
            "external_user_type": "ext_app"
          }
        ]
      },
      "created_at": "2025-01-23T14:11:12.008+08:00",
      "updated_at": "2025-01-23T14:11:12.008+08:00"
   }
Modified at 2025-03-17 13:02:54
Previous
Reservations (BETA)
Next
Menu List
Built with