Fiest Developers

Apply a catalog import

Creates the planned catalog entities and one inactive draft menu.

POST/v1/restaurants/{restaurantId}/catalog-import/apply

Creates the planned catalog entities and one inactive draft menu. The plan hash, explicit confirmation, and idempotency key are required; this operation never publishes the new menu. Organization-boundary tokens also require fiest.organization.read.

Quick request

curl -X POST "https://example.com/v1/restaurants/11111111-1111-4111-8111-111111111111/catalog-import/apply" \  -H "Authorization: Bearer $FIEST_ACCESS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "target": {      "mode": "new_draft"    },    "document": {      "menu": {        "ref": "lunch-menu",        "name": "Lunch menu"      },      "existingMenuCategories": [],      "menuCategories": [        {          "ref": "pizzas",          "name": "Pizzas",          "visible": true,          "regulatedProductClass": "standard",          "discountPolicy": "allowed"        }      ],      "menuItems": [        {          "ref": "margherita",          "categoryRef": "pizzas",          "name": "Margherita",          "priceMinor": 1290,          "description": null,          "visible": true,          "dietaryInfo": {            "vegan": false,            "vegetarian": true,            "gluten-free": false,            "dairy-free": false,            "lactose-free": false,            "low-lactose": false,            "egg-free": false,            "nut-free": false,            "soy-free": false          },          "tag": null,          "productType": "food",          "showInKitchen": true,          "trackVolume": false,          "openPrice": false,          "isAlcohol": false,          "volume": null,          "unit": null,          "alcoholType": null,          "alcoholPercentage": null,          "regulatedProductClassOverride": null,          "discountPolicyOverride": null,          "optionGroupAssignments": []        }      ],      "optionGroups": [],      "productCategories": [],      "products": [],      "combos": []    },    "expectedPlanHash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",    "idempotencyKey": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",    "confirmed": true  }'
{  "data": {    "actionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",    "restaurantId": "11111111-1111-4111-8111-111111111111",    "menu": {      "menuPublicId": "43f64da8-4ec2-4900-b137-1c0927c975d2",      "name": "Lunch menu",      "activeForPos": false,      "onlineOrdering": false,      "categoryCount": 1,      "itemCount": 1    },    "created": {      "menus": 1,      "newMenus": 1,      "menuCategories": 1,      "menuItems": 1,      "optionGroups": 0,      "options": 0,      "productCategories": 0,      "products": 0,      "combos": 0,      "comboComponents": 0    },    "ids": {      "menu": {        "lunch-menu": "33333333-3333-4333-8333-333333333333"      },      "menuCategories": {        "pizzas": "44444444-4444-4444-8444-444444444444"      },      "existingMenuCategories": {},      "menuItems": {        "margherita": "55555555-5555-4555-8555-555555555555"      },      "optionGroups": {},      "options": {},      "productCategories": {},      "products": {}    },    "replayed": false  }}

Authorization

fiestOAuth fiest.restaurant.read, fiest.menu.read, fiest.catalog.import.write
AuthorizationBearer <token>

OAuth 2.1 authorization code with PKCE. Partner clients and redirect URIs must be approved by Fiest before use.

In: header

Scope: fiest.restaurant.read, fiest.menu.read, fiest.catalog.import.write

Path Parameters

restaurantId*string

A restaurant identifier returned by the authorized restaurant list.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json