Fiest Developers

Apply a catalog import

Creates the planned catalog entities in a new inactive draft, or adds them to the exact existing inactive draft selected in the plan.

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

Creates the planned catalog entities in a new inactive draft, or adds them to the exact existing inactive draft selected in the plan. The plan hash, explicit confirmation, and idempotency key are required. This operation never publishes or selects a POS or online menu. Organization-boundary tokens also require fiest.organization.read; when a token covers several organizations, organization_id must identify an exact organization returned by listOrganizations.

Quick request

curl -X POST "https://example.com/v1/restaurants/11111111-1111-4111-8111-111111111111/catalog-import/apply?organization_id=33333333-3333-4333-8333-333333333333" \  -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",          "basePriceMinor": 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": {      "menuId": "43f64da8-4ec2-4900-b137-1c0927c975d2",      "name": "Lunch menu",      "isPosMenu": false,      "isOnlineMenu": 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

Query Parameters

organization_id?string

An organizationId returned by GET /v1/organizations. Required for restaurant-scoped calls when a Management portfolio authorization covers more than one organization; omitted for a single-restaurant authorization and optional for a one-organization grant.

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