Atlas Open API
  1. Orders
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
  • Orders
    • Create Order
      POST
    • Order Details
      GET
    • Update Order
      PATCH
  • Stocks
    • Outlet Stocks
      GET
  • Users
    • User Sync
      GET
  1. Orders

Create Order

POST
/outlets/{outlet_id}/channels/{channel_id}/orders
Creates an order under the specified outlet and channel.

Request

Authorization
Add parameter in header
X-Api-Key
Example:
X-Api-Key: ********************
Path Params
outlet_id
string 
required
Outlet for which the order will be created for
channel_id
string 
required
Channel for which the order will be created for
Header Params
X-Merchant-Id
string 
required
Your merchant ID
Body Params application/json
brand_id
integer 
optional
Brand associated with the order
fulfilment_type
enum<string> 
required
Specifies how the order will be fulfilled
Allowed values:
dine_inpickupdelivery
serving_date
string <date>
required
Date the order will be served, format YYYY-MM-DD
timeslot_start
integer 
required
Corresponds to the start of serving timeslot, number of seconds from the start of serving_date.
timeslot_end
integer 
required
Corresponds to the end of serving timeslot, number of seconds from the start of serving_date.
timeslot_type
enum<string>  | enum<null> 
optional
Corresponds to the type of serving timeslot. Defaults to available_timeslot if no value supplied.
Allowed values:
asapavailable_timeslots
order_items
array[object (OrderItemRequest) {5}] 
required
item_id
integer 
required
Item the order item refers to
quantity
integer 
required
Quantity of the item
>= 1
price_cents
integer 
required
notes
string 
optional
Additional notes about the item
sub_items
array [object {4}] 
required
contact_name
string 
optional
Name of the contact person, required for deliveries
contact_email
string 
optional
Email of the contact person, required for deliveries
contact_number
string 
optional
Mobile number of the contact person, required for deliveries
external_order_id
string 
optional
External custom order ID
external_order_short_code
string 
optional
External custom order ID for easy reference
address_line1
string 
optional
Component of the delivery address, required for deliveries
address_line2
string 
optional
Component of the delivery address. required for deliveries
postal_code
string 
optional
Postal code of the delivery address, required for delivery
address_latitude
number 
optional
Component of delivery address coordinates, used to check if address is within the outlet's service zone.
address_longitude
number 
optional
Component of delivery address coordinates, used to check if address is within the outlet's service zone.
is_cutlery_required
boolean 
optional
Determines whether cutlery will be provided for delivery orders
Default:
false
is_contactless
boolean 
optional
Default:
false
notes
string 
optional
Additional notes about the order.
is_gift
boolean 
optional
Specifies if the order is for gifting, in which case, ther order price won't be visible to the recipient.
Default:
false
recipient_name
string 
optional
Name of the gift recipient, required for gift orders
recipient_contact_number
string 
optional
Contact number of the gift recipient, required for gift orders
gift_message
string 
optional
Message to the gift recipient
is_paid
boolean 
optional
Whether the order is paid or not. If not provided, value will be derived on the presence of order_payments.
Default:
false
promo_code
string 
optional
subtotal
integer 
optional
delivery_fee
integer 
optional
surcharge
integer 
optional
discount
integer 
optional
total
integer 
optional
tax
integer 
optional
tax_rate
string 
optional
total_including_tax
integer 
optional
admin_discount
integer 
optional
order_payments
array[object (OrderPayment) {4}] 
optional
Order payment details, required for paid orders
amount
integer 
required
capture_id
string 
required
capture_type
string 
required
payment_type_id
integer 
optional
Example
{
  "fulfilment_type": "delivery",
  "serving_date": "2025-04-03",
  "timeslot_start": 54000,
  "timeslot_end": 55800,
  "timeslot_type": "asap",
  "contact_name": "{{$person.firstName}}",
  "contact_email": "{{$internet.email}}",
  "contact_number": "80000001",
  "postal_code": "038988",
  "address_line1": "8 Temasek Boulevard",
  "address_line2": "Suntec Tower 3",
  "external_order_id": "{{$string.alphanumeric(length=16,casing='upper')}}",
  "external_order_short_code": "OR{{$string.numeric(length=3)}}",
  "address_latitude": 1.3201834070900638,
  "address_longitude": 103.85793397422587,
  "order_items": [
    {
      "item_id": 380,
      "quantity": 1,
      "price_cents": 1500,
      "sub_items": [
        {
          "item_id": 496,
          "quantity": 1,
          "price_cents": 0
        }
      ]
    },
    {
      "item_id": 480,
      "quantity": 2,
      "price_cents": 1000
    }
  ]
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.atlas.kitchen/outlets//channels//orders' \
--header 'X-Merchant-Id;' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key;' \
--data-raw '{
    "fulfilment_type": "delivery",
    "serving_date": "2025-04-03",
    "timeslot_start": 54000,
    "timeslot_end": 55800,
    "timeslot_type": "asap",
    "contact_name": "{{$person.firstName}}",
    "contact_email": "{{$internet.email}}",
    "contact_number": "80000001",
    "postal_code": "038988",
    "address_line1": "8 Temasek Boulevard",
    "address_line2": "Suntec Tower 3",
    "external_order_id": "{{$string.alphanumeric(length=16,casing='\''upper'\'')}}",
    "external_order_short_code": "OR{{$string.numeric(length=3)}}",
    "address_latitude": 1.3201834070900638,
    "address_longitude": 103.85793397422587,
    "order_items": [
        {
            "item_id": 380,
            "quantity": 1,
            "price_cents": 1500,
            "sub_items": [{
                "item_id": 496,
                "quantity": 1,
                "price_cents": 0
            }]
        },
        { "item_id": 480, "quantity": 2, "price_cents": 1000 }
    ]
}'

Responses

🟢200Success
application/json
Body
id
integer 
required
ID that uniquely identifies the order
user_id
integer 
required
User associated with the order
channel_id
integer 
required
Channel associated with the order
outlet_id
integer 
required
Outlet associated with the order
brand_id
integer  | null 
required
Brand associated with the order
identifier
string  | null 
required
state
string 
required
Current state of the order
fulfilment_type
enum<string> 
required
Specifies how the order will be fulfilled
Allowed values:
dine_inpickupdelivery
serving_date
string <date>
required
Date the order will be served, format YYYY-MM-DD
timeslot_start
integer 
required
Corresponds to the start of serving timeslot, number of seconds from the start of serving_date.
timeslot_end
integer 
required
Corresponds to the end of serving timeslot, number of seconds from the start of serving_date.
timeslot_type
enum<string> 
required
Type of timeslot the value corresponds to
Allowed value:
asap
timeslot_range
string 
read-onlyrequired
Human-readable presentation of the timeslot range
order_items
array[object (OrderItemResponse) {12}] 
required
id
integer 
required
ID that uniquely identifies the order item
item_id
integer 
required
Item the order item refers to
name
string 
required
Name of the item
quantity
integer 
required
Quantity of the item
>= 1
price_cents
integer 
required
currency
string 
required
Currency of price
discount
integer 
required
Default:
0
notes
string  | null 
required
Additional notes about the item
calculated_subtotal
integer  | null 
required
per_unit_quantity
integer  | null 
required
unit_label
string  | null 
required
sub_items
array [object {11}] 
required
contact_name
string  | null 
required
Name of the contact person, required for deliveriy
contact_email
string  | null 
required
Email of the contact person, required for delivery
contact_number
string  | null 
required
Mobile number of the contact person, required for delivery
address_line1
string  | null 
required
Component of the delivery address, required for delivery
address_line2
string  | null 
required
Component of the delivery address, required for delivery
external_order_id
string  | null 
required
External custom order ID
external_order_short_code
string  | null 
required
External custom order ID for easy reference
call_number
string 
required
postal_code
string  | null 
required
Postal code of the delivery address, required for delivery
address_latitude
number  | null 
required
Component of delivery address coordinates, used to check if address is within the outlet's service zone.
address_longitude
number  | null 
required
Component of delivery address coordinates, used to check if address is within the outlet's service zone.
is_cutlery_required
boolean 
required
Determines whether cutlery will be provided for delivery orders
Default:
false
is_contactless
boolean 
required
Default:
false
notes
string  | null 
required
Additional notes about the order
is_gift
boolean 
required
Specifies if the order is for gifting, in which case, ther order price won't be visible to the recipient.
Default:
false
recipient_name
string  | null 
required
Name of the gift recipient, required for gift orders
recipient_contact_number
string  | null 
required
Contact number of the gift recipient, required for gift orders
gift_message
string  | null 
required
Message to the gift recipient
is_paid
boolean 
required
Default:
false
promo_code
string  | null 
required
created_at
integer 
required
Timestamp on order creation. Format: unix time
updated_at
integer 
required
Timestamp on last order update. Format: unix time
cancelled_at
integer  | null 
required
Timestamp on order cancellation. Format: unix time
completed_at
integer  | null 
required
Timestamp on order completion. Format: unix time
donation_amount
integer 
required
>= 0
Default:
0
confirmation_custom_message
string  | null 
required
Example
{
  "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": []
    }
  ]
}
🔴500Server Error
🟠401Unauthorized
🟠422Invalid Parameter
🟠422Configuration Required
Previous
Menu Details
Next
Order Details
Built with