Chowly Third Party Online Ordering Service API (2.0.0)

Download OpenAPI specification:Download

Chowly Engineering Team: [email protected]

The Chowly TOOS API (v2) has been built around the principles of efficiency and ease of use. Methods include the vast majority of actions directly related to the Chowly platform’s core functionalities, such as creating and viewing orders, accessing menu items and modifiers, and more.

Orders

Inbound Orders

Create Order

Creates a new order. Required fields will differ based on service_type. These will be specifically called out.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "info": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "customer": {
    },
  • "info": {
    },
  • "items": [
    ],
  • "id": "078eb998-3b05-4ae3-8b5c-9063124338cd"
}

Fetch an Order

Retrieve details about a specific order. The unique identifier associated with the Order must be passed in as a parameter: id: '6D5E8CA3-33C9-4C2B-9481-10CF8B360A61'

Authorizations:
ApiKeyAuth
path Parameters
id
required
string^[A-Z0-9\-]+$

Unique identifier associated with the Order that was provided in the previous /orders response.

Responses

Response samples

Content type
application/json
{
  • "order": {
    }
}

Menus

Third Party Menu Feed

Get Menu

Pull a feed of the standard 3rd party menu

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "sections": [
    ]
}

Webhooks

A single universal/static webhook for all locations is required. The webhook needs to contain all required authentication within the URL; we do not have a way to account for additional validation steps.

The webhook must be set up to receive post requests from the Chowly system. This webhook must handle both order and menu events.

Ensure that the webhook is responding to the order confirmation events with a 200. If this is not received, the order will not be processed.

Order Confirmation Webhook

Authorizations:
XSignature
Request Body schema: application/json

This webhook is triggered when an order is integrated into the POS.

order_id
string

The Order ID sent by the API user, returned in the info level of the create order API call.

chowly_order_id
string

The Order ID assigned to this order by Chowly, returned in the top level of the create order API call.

estimate
number

The estimated prep time for the order.

Responses

Request samples

Content type
application/json
{
  • "order_id": "TEST-ORDER-ABD12",
  • "chowly_order_id": "B8888021-D5A6-4F9D-8966-D7C0836FC3A3",
  • "estimate": 15
}

Order Error Webhook

Authorizations:
XSignature
Request Body schema: application/json

This webhook is triggered when there is an error integrating an order to the POS.

event
string
Value: "order_issue"
object
object

Responses

Request samples

Content type
application/json
{
  • "event": "order_issue",
  • "payload": {
    },
  • "meta": {
    }
}

Menu Updated Webhook

Authorizations:
XSignature
Request Body schema: application/json

This webhook is triggered when the menu has been updated on Chowly. You must re-ingest the menu from the Get Menu endpoint when you get this to prevent order errors.

event
string
Value: "menu_updated"
object
object

Responses

Request samples

Content type
application/json
{
  • "event": "menu_updated",
  • "payload": {
    },
  • "meta": {
    }
}

Location Status Updated Webhook

Authorizations:
XSignature
Request Body schema: application/json

This webhook is triggered when a location is paused or unpaused. Use the is_open field to determine the current status of the location and update your system accordingly.

event
string
Value: "location_status_updated"
object
object

Responses

Request samples

Content type
application/json
{
  • "event": "location_status_updated",
  • "payload": {
    },
  • "meta": {
    }
}