BETA: Please note that the current endpoints are considered beta. It is possible there may be changes before these endpoints are finalised.

Menu

A list of Menus that are available for an organization.

See currencies for more information on providing and using currency values. All values are in lowest denomination.

Get a location Menu

This endpoint allows developers to get menus for a specific store

get /organizations/{organizationId}/locations/{locationId}/menu

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID

Responses

200: OK response.MenuConfig
{
  "categories": [
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    }
  ],
  "currency": "NZD",
  "menus": [
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    }
  ],
  "products": [
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "modifiers": [
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    },
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "modifiers": [
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    }
  ],
  "timeZone": "Australia/Melbourne"
}
404: not_found: Not Found response.

Update a location Menu

This endpoint allows developers to set the entire menu for a specific store

put /organizations/{organizationId}/locations/{locationId}/menu

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID

Request Body

MenuConfig
{
  "categories": [
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    }
  ],
  "currency": "SGD",
  "menus": [
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "title": "Breakfast"
    }
  ],
  "products": [
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "modifiers": [
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    },
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "modifiers": [
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        },
        {
          "id": "M001",
          "maxSelect": 3,
          "minSelect": 1,
          "optionIds": [
            "OP001",
            "OP002"
          ],
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    }
  ],
  "timeZone": "Australia/Melbourne"
}

Responses

204: No Content response.
404: not_found: Not Found response.

Get a Menu Product

This endpoint allows you to get a product by ID

get /organizations/{organizationId}/locations/{locationId}/menu/products/{productId}

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
productIdstringpath

Responses

200: OK response.Product
{
  "available": true,
  "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
  "id": "P001",
  "imageUrl": "https://example.com/title.png",
  "modifiers": [
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    }
  ],
  "plu": "HOTFOOD-001",
  "price": {
    "amount": 2300,
    "taxIncluded": 250
  },
  "priceOverrides": [
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      }
    }
  ],
  "tags": [
    "gluten free",
    "vegan"
  ],
  "title": "LOKE's Burger",
  "visibility": [
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    }
  ]
}
404: not_found: Not Found response.

Update a Menu Product

This endpoint allows developers to set the entire menu for a specific store. If you need to patch a product, you need to GET and apply manually before calling PUT

put /organizations/{organizationId}/locations/{locationId}/menu/products/{productId}

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
productIdstringpath

Request Body

ProductPayload
{
  "available": true,
  "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
  "imageUrl": "https://example.com/title.png",
  "modifiers": [
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    },
    {
      "id": "M001",
      "maxSelect": 3,
      "minSelect": 1,
      "optionIds": [
        "OP001",
        "OP002"
      ],
      "title": "Extras"
    }
  ],
  "plu": "HOTFOOD-001",
  "price": {
    "amount": 2300,
    "taxIncluded": 250
  },
  "priceOverrides": [
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250
      }
    }
  ],
  "tags": [
    "gluten free",
    "vegan"
  ],
  "title": "LOKE's Burger",
  "visibility": [
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    }
  ]
}

Responses

204: No Content response.
404: not_found: Not Found response.

Models

MenuConfig

A stores root level menu configuration.

NameTypeDescription
currencystring(enum) The currency used for purchases for this store
"AUD", "SGD", "GBP", "NZD"
timeZonestring The time zone of the store in Location/Area format.
categoriesCategory[] List of the store's categories.
menusMenu[] List of the store's menus
productsProduct[] List of the store's products.

Category

A grouping of products that are related.

NameTypeDescription
idstring A unique ID for the category
titlestring The displayed name for the category
productIdsstring[] All of the IDs of products that will be available in this category

Menu

A collection of products that are available for a specific store.

NameTypeDescription
idstring A unique ID for the menu.
titlestring The name of the menu to be displayed
categoryIdsstring[] All of the IDs for the menu categories that will be available while this menu is active
fulfillmentTypestring[] The delivery type. Must be of 'DELIVERY', 'PICK_UP' or 'SERVICE'
serviceAvailabilityPeriod[] The days and times of the day at which this menu should be made available

Period

Time span for an individual day (finishes at 23:59

NameTypeDescription
dayOfTheWeekstring(enum) The day of the week which these hours will be applied.
"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"
endstring The time which the item ceases to be available, in 24-hour HH:MM format, e.g '09:30', '21:59'
startstring The time which the item becomes available, in 24-hour HH:MM format, e.g '09:30', '21:59'

Product

An individual product that can be ordered at a store.

NameTypeDescription
idstring A unique ID for the product
titlestring The name of the product
availableboolean Indicates whether the product can be sold.
descriptionstring(optional) Supplementary information of the product that will be shown to the customer
imageUrlstring(optional) URL to an image of the product. Image requirements: - Hosted on a secure connection (HTTPS). - Image must be in JPEG or PNG
plustring(optional) A PLU/SKU/etc for the product, used for discounting and loyalty. This may be the same as the product ID in some systems, and is not required to be unique. For example a chips may exist on the menu as a main item, and as a side with different IDs but the same PLU.
pricePrice
modifiersModifier[](optional) Specifies the modifier to be associated with the product, allowing the user to make choices or bundle extras with their product.
priceOverridesPriceOverride[](optional) Overrides the price of a product
tagsstring[](optional) Related tags of a product
visibilityPeriod[](optional) Defines when a product is visible to the customer

Modifier

Allowing the user to customize the product by making choices or bundling extras with their order.

NameTypeDescription
idstring A unique ID of this modifer
titlestring The name of the modifier
maxSelectinteger(optional) Maximum number of selectable modifiers
minSelectinteger Minimum number of selectable modifiers
optionIdsstring[] List of Ids of options in this modifier

Price

Specifies the price to charge for ordering a product.

NameTypeDescription
amountinteger Specifies the price to charge for ordering the product including tax. Price is in cents. Price should always be integer value (never decimals). Price should always be set even if price is 0.
taxIncludedinteger(optional) Specifies the tax, in cents, that was added to the product. This can be null if tax is unknown. All price.taxIncluded fields on all products can either all be of type int or all be undefined/null.

PriceOverride

Overrides the product price.

NameTypeDescription
contextTypestring(enum) Type of context in which to override.
"MENU", "PRODUCT"
contextValuestring Context Value
pricePrice

ProductPayload

An updated product, note that omitting a field is the same as setting it to null

NameTypeDescription
titlestring The name of the product
availableboolean Indicates whether the product can be sold.
descriptionstring(optional) Supplementary information of the product that will be shown to the customer
imageUrlstring(optional) URL to an image of the product. Image requirements: - Hosted on a secure connection (HTTPS). - Image must be in JPEG or PNG
plustring(optional) A PLU/SKU/etc for the product, used for discounting and loyalty. This may be the same as the product ID in some systems, and is not required to be unique. For example a chips may exist on the menu as a main item, and as a side with different IDs but the same PLU.
pricePrice
modifiersModifier[](optional) Specifies the modifier to be associated with the product, allowing the user to make choices or bundle extras with their product.
priceOverridesPriceOverride[](optional) Overrides the price of a product
tagsstring[](optional) Related tags of a product
visibilityPeriod[](optional) Defines when a product is visible to the customer

In this article