Menu Cycles API Release Notes

Overview

This page holds any changes that have happened to our Menu Cycles API since its launch in 2020.

These Release Notes are up-to-date at the time of the release. Further improvements or corrections to our API documentation will normally occur in the guide and reference only.

If you have already integrated with Fourth would like to be kept abreast of API changes via email, please fill in this form.

Breaking change notification

20th August 2023

As part of its ongoing commitment to the security of its customer’s information, Fourth will be updating its platform to require all connections to use TLS 1.2 or higher from 9 January 2024. Older versions of TLS will be retired.

TLS is the encryption method used to secure communications over HTTPS. This will have no impact on SFTP connections.

14 January 2022 — new MenuCycles and MenuCycleItems endpoints

Two new endpoints are now available for use. 

GET /Locations/{LocationId}/MenuCycles

The MenuCycles resource provides summary details about each menu cycles published to a location. This includes the start and end dates for the cycles.

For more information about this endpoint, please see the API Reference.

Example response body

{
    "continuationToken": "23587",
    "value": [
        {
            "id": "22606",
            "parentId": "267",
            "name": "Bakery Essential",
            "description": "Bakery Essential",
            "startDate": "2021-11-08T00:00:00.000",
            "endDate": "2022-06-30T00:00:00.000",
            "releaseDate": "2021-11-01T00:00:00.000"
        },
        {
            "id": "22614",
            "parentId": "641",
            "name": "Core Hospitality",
            "description": "Core Hospitality",
            "startDate": "2021-11-01T00:00:00.000",
            "endDate": "2022-05-08T00:00:00.000",
            "releaseDate": "2021-10-28T00:00:00.000"
        }
    ]
}

GET /Locations/{LocationId}/MenuCycleItems

The MenuCycleItems resource provides a list of all the items available for purchase at the location, for the next two weeks.

The same item will be returned multiple times if it is for sale in multiple menu cycles.

For more information about this endpoint, please see the API Reference.

Example response body

{
    "continuationToken": "235873432",
    "value": [
        {
            "ItemId": "2258F785-6616-4A82-5C7D-A6A3B360F896",
            "ItemName": "Brown Bread",
            "ItemType": "RECIPE",
            "PLU": "123BDS43",
            "Prices": [
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-16",
                    "TariffName": "Tariff1",
                    "PriceModel": "MARGIN",
                    "TaxCode": "STD_20",
                    "TaxRate": 20,
                    "SellPrice": 1.65
                },
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-16",
                    "TariffName": "Tariff2",
                    "PriceModel": "MARGIN",
                    "TaxCode": "STD_20",
                    "TaxRate": 20,
                    "SellPrice": 2.35
                }
            ],
            "Schedules": [
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-15",
                    "Status": "AVAILABLE",
                    "MealPeriodName": "Lunch"
                },
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-15",
                    "Status": "AVAILABLE",
                    "MealPeriodName": "Dinner"
                }
            ]
        },
        {
            "ItemID": "FA57656F-FD8D-879C-44E0-CE66F69CC3CC",
            "ItemName": "Baked beans",
            "ItemType": "MENU",
            "PLU": "123BBS23",
            "Prices": [
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-12",
                    "TariffName": "Tariff1",
                    "PriceModel": "MARGIN",
                    "TaxCode": "STD_20",
                    "TaxRate": 20,
                    "SellPrice": 3.35
                },
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-12",
                    "TariffName": "Tariff2",
                    "PriceModel": "MARGIN",
                    "TaxCode": "STD_20",
                    "TaxRate": 20,
                    "SellPrice": 5.15
                }
            ],
            "Schedules": [
                {
                    "DateFrom": "2019-03-11",
                    "DateTo": "2019-03-12",
                    "Status": "AVAILABLE",
                    "MealPeriodName": "Lunch"
                }
            ]
        }
    ]
}

11 December 2020 — New Menus endpoint

A new resource and method is available for use: GET  /Locations/{LocationId}/Menus

The Menus resource provides a list of the menus that are available at a location, including their unique identifiers. For buffet menus, a PLU is also included in the response.

For more information about this endpoint, please see the API Reference.

Example response body

{
  "continuationToken": "175",
  "value": [
    {
      "id": "6CF08A13-EBA6-485D-8679-43D3D157BB53",
      "Name": "Green vegetables",
      "type": "Buffet",
      "plu": "1122334"
    },
    {
      "id": "78CC2A66-5C86-4713-AB93-F9DE888E127C",
      "name": "Soup - Pumpkin",
      "type": "A la carte"
    }
  ]
}

18 November 2020 — New Recipes and MealPeriods endpoints

Two new endpoints are now available for use. 

GET /Locations/{LocationId}/Recipes

The Recipes resource provides summary information about the recipes in the menu cycle, including a recipeId. You can use this ID with the Recipe & Menu Engineering Export API to request detailed information about a recipe.

For more information about this endpoint, please see the API Reference.

Example response body

{
  "continuationToken": "175",
  "value": [
    {
      "recipeName": "724American Style Pancakes",
      "recipeId": "955eff4c-56d1-47f7-a0f9-257b5761b008",
      "plu": "0007201",
      "costPrice": 2.25
    }
  ]
}

GET /Locations/{LocationId}/MealPeriods

The MealPeriods resource provides details about the meal periods for a location. Meal periods follow a weekly schedule, and each day can have different properties. This endpoint enables third-party systems to tailor when menu items are available for sale during the day.

For more information about this endpoint, please see the API Reference.

Example response body (shortened)

{
    "value": [
        {
            "name": "Breakfast",
            "id": 2,
            "startTime": "07:30:00",
            "endTime": "10:00:00",
            "dayId": 1,
            "day": "Monday",
            "isAllDay": false
        },
        {
            "name": "Brunch",
            "id": 20138,
            "startTime": "11:00:00",
            "endTime": "12:00:00",
            "dayId": 1,
            "day": "Monday",
            "isAllDay": false
        },
...

23 March 2020 — Addition of continuationToken to provide pagination

Fourth may potentially respond with hundreds of records to Menu Cycle GET requests. To ensure that we can successfully manage your requests, we now provide pagination of results using a continuationToken. For a full description of how this works, please see the Get additional Locations page results using continuationToken in the API Guide.

20 September 2019 — Launch of the Menu Cycles API for partner use

We're excited to announce the newest member of our API family — the Menu Cycles API!

This API supports customers using menu cycles that need to share the published data with other platforms, such as POS systems. The Menu Cycles API enables you to get the menu cycles in Fourth that have been published to individual locations, which solves the issue of how to provide menu cycles data efficiently and effectively with third-party systems.

You can find out more about the API in these locations: