Adding Items

Step 1: Create a new Order

Start by creating a new Order object

Note: This endpoint requires an authenticated accessToken.

// POST /ordering/v3/order
{
  "locationId": 1,
  "items": [
    {
      "uuid": "22db85f1-bf06-46d7-926d-4cd54a29a043",
      "modifiers": [
        {
          "uuid": "d7a87e95-03b6-4bb2-aae8-b31ce113dedd",
          "pickOptions": [
            {
              "uuid": "0e995d4a-8104-4eb2-8ba3-f2b1dccd0d0b",
              "modifiers": [
                {
                  "uuid": "fa558992-7d82-46b4-97e8-89bc36c3e5c0",
                  "pickOptions": [
                    {
                      "uuid": "ccd59108-56bc-4ede-984f-e840df3af3af"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

The locationId is the location that this order will be processed in, and can be obtained by using our Locations product. Also notice the items array, which represents the items from the Menu that this order contains.

// 201 CREATED Response
{
  "orderId": "b7b18434-53ff-4480-bf97-f791a0d4b85d"
}

And the response

// 200 OK

Frequent Questions

Ordering an item "as is" (with default modifiers and options). Do I have to specify the modifiers and options in the create order call anyway?

Yes. When you read the menu, the flag default: true will indicate which pick options are to be selected by default

Testing

You can test the send to POS paths by calling the create order resource (POST /ordering/v3/order) with the X-Pos-Test-Flow header to indicate whether sending to POS will succeed or fail.

Sending to POS will send you the success webhook:

X-Pos-Test-Flow: success

Sending to POS will send you the failure webhook:

X-Pos-Test-Flow: failure

When the order is sent to POS using POST /ordering/v3/order/{orderId}/send-to-pos-async, instead of it going to the configured POS for the location it will send you the succeed or fail webhooks.