{"openapi":"3.1.0","info":{"title":"Commerce API","description":" Our Commerce API powers digital ordering via endpoints that provide store details, menu data, basket calculation and validation and provides a checkout flow to handle POS order injection.","version":"1.0.0"},"servers":[{"url":"https://api.staging.deliverect.com"}],"security":[{"oauth2ClientCredentials":[]}],"components":{"securitySchemes":{"oauth2ClientCredentials":{"type":"oauth2","description":"Obtain an access token using the partner client ID and client secret. Send the returned token with each API request in the Authorization header as a Bearer token.","flows":{"clientCredentials":{"tokenUrl":"/oauth/token","scopes":{}}}}}},"x-readme":{"headers":[],"explorer-enabled":true,"proxy-enabled":true,"oauth-options":{"useInsecureClientAuthentication":true}},"x-readme-fauxas":true,"tags":[{"name":"Endpoints","description":"Deliverect Endpoints. Use `https://api.staging.deliverect.com` for testing and `https://api.deliverect.com` in production."},{"name":"Webhooks","description":"Deliverect Webhooks. Requests can be signed with HMAC-SHA256 using a pre-shared secret configured on your integration, so you can verify they came from Deliverect and weren't altered in transit (see HMAC Authentication Guide <a href=\"https://developers.deliverect.com/reference/hmac-authentication\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>)."}],"paths":{"/commerce/{accountId}/menus":{"get":{"tags":["Endpoints"],"summary":"Get Root Menu(s)","operationId":"commerce-channel-api-menus-get-root-menus","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":[{"menu":"Main menu","menuId":"62********************91","menuType":1,"nestedModifiers":true,"description":"A seasonal selection of our products.","menuImageURL":"https://storage.googleapis.com/ikona-bucket-production/images/5be9fe94c6489f0001b2fe57/174466-666abfd750c486d4c3a2d5a9.jpg","currency":1,"menuTranslations":{"ar":"القائمة الرئيسية","es":"Menú principal","fr":"Menu principal","nl":"Hoofdmenu"},"productTags":[104,108,103],"descriptionTranslations":{"ar":"تشكيلة موسمية من منتجاتنا.","es":"Una selección de temporada de nuestros productos.","fr":"Une sélection de saison de nos produits.","nl":"Een seizoensgebonden selectie van onze producten."},"categories":[{"id":null,"name":"Steak & Burgers","description":"Something from the Grill","imageUrl":"https: //resizer.staging.deliverect.com/uia9zWj73e5qP3yQGd4sQrYWcjmQyo-XRJMg3LaMobg/rt:fill/g:ce/el:0/aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2lrb25hLWJ1Y2tldC1zdGFnaW5nL2ltYWdlcy81ZmY2ZWUwODkzMjhjOGFlZmVlYWJlMzMvZ3JpbGwtNjIyYTJjNDhjNzE1YjQwM2IwZWI3MmJlLmpwZWc=.jpg","menu":"62********************91","account":"62********************ea","nameTranslations":{"ar":"ستيك وبرغر","es":"Filetes y hamburguesas","fr":"Steaks et burgers","nl":"Steaks en burgers"},"descriptionTranslations":{"ar":"أطباق من الشواية","es":"Algo de la parrilla","fr":"Quelque chose du grill","nl":"Iets van de grill"},"subProducts":["62********************63","62********************4c","62********************4f","62********************4e","62********************50"]}],"products":{"62********************63":{"id":"62********************63","plu":"STK-01","name":"Delicious Steak Frites","productType":1,"description":"Basic Example Product with - Modifier groups - min/max variables - default selection - translations","defaultQuantity":null,"isVariant":null,"isUpsell":null,"account":"62********************ea","referenceId":"STK-01","calories":null,"caloriesRangeHigh":null,"caloriesFromFat":null,"preparationTime":null,"imageUrl":null,"nameTranslations":{"ar":"ستيك لذيذ مع بطاطس مقلية","es":"Delicioso bistec con patatas fritas","fr":"Délicieux steak-frites","nl":"Heerlijke biefstuk met friet"},"descriptionTranslations":{"ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات","es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - Groupes de modificateurs - variables min./max. - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"productTags":[],"subProducts":["62********************64"],"beverageInfo":null,"nutritionalInfo":{"fat":32.5,"sugar":2.1,"saturatedFat":12.8,"carbohydrates":48,"protein":41.2,"salt":2.4,"dietaryFiber":4.3,"servingSize":{"amount":450,"unitType":1,"countUnitDescription":"gram"},"netQuantity":{"amount":450,"unitType":1,"countUnitDescription":"gram"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Keep refrigerated. Consume within 24 hours."},"supplementalInfo":null,"displayLabels":["new"],"metadata":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"},{"key":"font-size","value":"16px"}]}},"modifiers":{"62********************53":{"id":"62********************53","plu":"DRNK-01","name":"Coca Cola","productType":2,"description":"Cola flavoured sugar and caffeine","defaultQuantity":null,"account":"62********************ea","referenceId":null,"calories":500,"caloriesRangeHigh":750,"caloriesFromFat":null,"imageUrl":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg","nameTranslations":{"ar":"كوكا كولا","es":"Coca-Cola","fr":"Coca-Cola","nl":"Coca-Cola"},"descriptionTranslations":{"ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين","es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Boisson au goût de cola, avec sucre et caféine","nl":"Drank met colasmaak, met suiker en cafeïne"},"productTags":[10,14],"subProducts":[],"beverageInfo":{"caffeine":10,"alcohol":0},"nutritionalInfo":{"fat":0,"sugar":10.6,"saturatedFat":0,"carbohydrates":10.6,"protein":0,"salt":0,"dietaryFiber":null,"servingSize":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"},"netQuantity":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Store in a cool, dry place."},"supplementalInfo":{"legalName":"Coca-Cola Original Taste","prepackaged":true,"deposit":0,"instructionsForUse":"Best served chilled.","ingredients":["Water","Sugar","Carbon dioxide","Caramel colour","Phosphoric acid","Natural flavourings","Caffeine"],"additives":["COLORANT_UNSPECIFIED","ACIDIFIERS","CAFFEINE_CAFFEINE","PHOSPHATE"],"fbo":{"name":"Coca-Cola Europacific Partners","address":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom","brand":"Coca-Cola","countryOfOrigin":"GB"}},"displayLabels":["featured"],"metadata":[{"key":"show-disclaimer","value":"true"}]}},"modifierGroups":{"62********************64":{"id":"62********************64","plu":"MOD-01","name":"Cooking instructions","productType":3,"max":1,"min":1,"multiply":1,"description":"","isVariantGroup":null,"account":"62********************ea","imageUrl":null,"nameTranslations":{"ar":"تعليمات الطهي","es":"Punto de cocción","fr":"Cuisson","nl":"Kookinstructies"},"descriptionTranslations":{},"subProducts":["62********************53"]},"62********************4d":{"id":"62********************4d","plu":"BNDL-BRG","name":"Burger Selection","productType":3,"max":1,"min":1,"multiply":1,"description":"","isVariantGroup":null,"account":"62********************ea","imageUrl":null,"nameTranslations":{"ar":"تشكيلة البرغر","es":"Selección de hamburguesas","fr":"Sélection de burgers","nl":"Burgerselectie"},"descriptionTranslations":{},"subProducts":["65********************e6","65********************e7","65********************e8"]}},"bundles":{}},{"menu":"Spring menu","menuId":"62********************92","menuType":2,"nestedModifiers":true,"description":"A seasonal selection of our products.","menuImageURL":"https://storage.googleapis.com/ikona-bucket-production/images/5be9fe94c6489f0001b2fe57/174466-666abfd750c486d4c3a2d5a9.jpg","currency":1,"menuTranslations":{"ar":"القائمة الرئيسية","es":"Menú principal","fr":"Menu principal","nl":"Hoofdmenu"},"productTags":[104,108,103],"descriptionTranslations":{"ar":"تشكيلة موسمية من منتجاتنا.","es":"Una selección de temporada de nuestros productos.","fr":"Une sélection de saison de nos produits.","nl":"Een seizoensgebonden selectie van onze producten."},"categories":[{"id":null,"name":"Steak & Burgers","description":"Something from the Grill","imageUrl":"https: //resizer.staging.deliverect.com/uia9zWj73e5qP3yQGd4sQrYWcjmQyo-XRJMg3LaMobg/rt:fill/g:ce/el:0/aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2lrb25hLWJ1Y2tldC1zdGFnaW5nL2ltYWdlcy81ZmY2ZWUwODkzMjhjOGFlZmVlYWJlMzMvZ3JpbGwtNjIyYTJjNDhjNzE1YjQwM2IwZWI3MmJlLmpwZWc=.jpg","menu":"62********************92","account":"62********************ea","nameTranslations":{"ar":"ستيك وبرغر","es":"Filetes y hamburguesas","fr":"Steaks et burgers","nl":"Steaks en burgers"},"descriptionTranslations":{"ar":"أطباق من الشواية","es":"Algo de la parrilla","fr":"Quelque chose du grill","nl":"Iets van de grill"},"subProducts":["62********************63","62********************4c","62********************4f","62********************4e","62********************50"]}],"products":{"62********************63":{"id":"62********************63","plu":"STK-01","name":"Delicious Steak Frites","productType":1,"description":"Basic Example Product with - Modifier groups - min/max variables - default selection - translations","defaultQuantity":null,"isVariant":null,"isUpsell":null,"account":"62********************ea","referenceId":"STK-01","calories":null,"caloriesRangeHigh":null,"caloriesFromFat":null,"preparationTime":null,"imageUrl":null,"nameTranslations":{"ar":"ستيك لذيذ مع بطاطس مقلية","es":"Delicioso bistec con patatas fritas","fr":"Délicieux steak-frites","nl":"Heerlijke biefstuk met friet"},"descriptionTranslations":{"ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات","es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - Groupes de modificateurs - variables min./max. - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"productTags":[],"subProducts":["62********************64"],"beverageInfo":null,"nutritionalInfo":{"fat":32.5,"sugar":2.1,"saturatedFat":12.8,"carbohydrates":48,"protein":41.2,"salt":2.4,"dietaryFiber":4.3,"servingSize":{"amount":450,"unitType":1,"countUnitDescription":"gram"},"netQuantity":{"amount":450,"unitType":1,"countUnitDescription":"gram"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Keep refrigerated. Consume within 24 hours."},"supplementalInfo":null,"displayLabels":["new"],"metadata":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"},{"key":"font-size","value":"16px"}]}},"modifiers":{"62********************53":{"id":"62********************53","plu":"DRNK-01","name":"Coca Cola","productType":2,"description":"Cola flavoured sugar and caffeine","defaultQuantity":null,"account":"62********************ea","referenceId":null,"calories":500,"caloriesRangeHigh":750,"caloriesFromFat":null,"imageUrl":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg","nameTranslations":{"ar":"كوكا كولا","es":"Coca-Cola","fr":"Coca-Cola","nl":"Coca-Cola"},"descriptionTranslations":{"ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين","es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Boisson au goût de cola, avec sucre et caféine","nl":"Drank met colasmaak, met suiker en cafeïne"},"productTags":[10,14],"subProducts":[],"beverageInfo":{"caffeine":10,"alcohol":0},"nutritionalInfo":{"fat":0,"sugar":10.6,"saturatedFat":0,"carbohydrates":10.6,"protein":0,"salt":0,"dietaryFiber":null,"servingSize":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"},"netQuantity":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Store in a cool, dry place."},"supplementalInfo":{"legalName":"Coca-Cola Original Taste","prepackaged":true,"deposit":0,"instructionsForUse":"Best served chilled.","ingredients":["Water","Sugar","Carbon dioxide","Caramel colour","Phosphoric acid","Natural flavourings","Caffeine"],"additives":["COLORANT_UNSPECIFIED","ACIDIFIERS","CAFFEINE_CAFFEINE","PHOSPHATE"],"fbo":{"name":"Coca-Cola Europacific Partners","address":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom","brand":"Coca-Cola","countryOfOrigin":"GB"}},"displayLabels":["featured"],"metadata":[{"key":"show-disclaimer","value":"true"}]}},"modifierGroups":{"62********************64":{"id":"62********************64","plu":"MOD-01","name":"Cooking instructions","productType":3,"max":1,"min":1,"multiply":1,"description":"","isVariantGroup":null,"account":"62********************ea","imageUrl":null,"nameTranslations":{"ar":"تعليمات الطهي","es":"Punto de cocción","fr":"Cuisson","nl":"Kookinstructies"},"descriptionTranslations":{},"subProducts":["62********************53"]},"62********************4d":{"id":"62********************4d","plu":"BNDL-BRG","name":"Burger Selection","productType":3,"max":1,"min":1,"multiply":1,"description":"","isVariantGroup":null,"account":"62********************ea","imageUrl":null,"nameTranslations":{"ar":"تشكيلة البرغر","es":"Selección de hamburguesas","fr":"Sélection de burgers","nl":"Burgerselectie"},"descriptionTranslations":{},"subProducts":["65********************e6","65********************e7","65********************e8"]}},"bundles":{}}]}},"schema":{"type":"array","description":"<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Menu Data</strong><br>\n    Please note that all the fields marked with\n    <i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\"></i>\n    will always be present in the order payload and contain data.\n  </p>\n</div>\n\n<div class=\"callout-banner callout-banner--important\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-triangle-exclamation\"></i></span>\n  <p><strong>Legacy Attributes</strong><br>\nCertain attributes appear in the order payload but should not be referenced as part of an integration and are marked as\n<span class=\"legacy-label\">Legacy</span>\n  </p>\n</div>","items":{"type":"object","properties":{"menu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> The name of the menu","example":"Burger Menu"},"menuTranslations":{"type":"object","description":"Translations of the **Menu Title**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Menu Title in Spanish (`es`)","example":"Menú principal"},"fr":{"type":"string","description":"Menu Title in French (`fr`)","example":"Exemple de Menu"},"nl":{"type":"string","description":"Menu Title in Dutch (`nl`)","example":"Hoofdmenu"},"ar":{"type":"string","description":"Menu Title in Arabic (`ar`)","example":"القائمة الرئيسية"}},"example":{"es":"Menú principal","fr":"Exemple de Menu","nl":"Hoofdmenu","ar":"القائمة الرئيسية"}},"description":{"type":"string","description":"description of the menu","example":"Description"},"descriptionTranslations":{"type":"object","description":"Translations of the **Menu Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Menu Description in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Menu Description in French (`fr`)","example":"Steak Frites Délicieux"},"nl":{"type":"string","description":"Menu Description in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Menu Description in Arabic (`ar`)","example":"شريحة لحم فريتس"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Délicieux","nl":"Heerlijke Biefstuk Frites","ar":"شريحة لحم فريتس"}},"menuImageURL":{"type":["string","null"],"description":"Header/Banner image url of the menu (more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))"},"menuId":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> internal Deliverect menu id","example":"64********************0c"},"menuType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Five different types of menus, with each representing the intended ordering type for which the menu is suitable:\n\n- DELIVERY_AND_PICKUP = `0`\n- DELIVERY = `1`\n- PICKUP = `2`\n- EAT_IN = `3`\n- CURBSIDE = `4`","enum":[0,1,2,3,4],"x-enum-varnames":["DELIVERY_AND_PICKUP","DELIVERY","PICKUP","EAT_IN","CURBSIDE"],"x-enumNames":["DELIVERY_AND_PICKUP","DELIVERY","PICKUP","EAT_IN","CURBSIDE"],"x-enum-descriptions":{"0":"DELIVERY_AND_PICKUP","1":"DELIVERY","2":"PICKUP","3":"EAT_IN","4":"CURBSIDE"},"example":0},"nestedModifiers":{"type":"boolean","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Indicates if nested modifiers are present in the menu (see section [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-modifer-groups#nested-modifiers) for further reference)","example":false},"currency":{"type":"integer","description":"[currency](https://developers.deliverect.com/page/list-of-currencies) of the menu","example":1},"productTags":{"type":"array","description":"Array of all tags that exist in the menu (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"integer"}},"categories":{"type":"array","description":"The categories within a menu","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"internal Deliverect id of the category","example":"64********************6e"},"name":{"type":"string","description":"category name","example":"Pizza"},"nameTranslations":{"type":"object","description":"Translations of the **Category Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Category Name in Spanish (`es`)","example":"Filetes y hamburguesas"},"fr":{"type":"string","description":"Category Name in French (`fr`)","example":"Steaks et burgers"},"nl":{"type":"string","description":"Category Name in Dutch (`nl`)","example":"Steaks en burgers"},"ar":{"type":"string","description":"Category Name in Arabic (`ar`)","example":"ستيك وبرغر"}},"example":{"es":"Filetes y hamburguesas","fr":"Steaks et burgers","nl":"Steaks en burgers","ar":"ستيك وبرغر"}},"description":{"type":"string","description":"description of the category","example":""},"descriptionTranslations":{"type":"object","description":"Translations of the **Category Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Category Description in Spanish (`es`)","example":"Algo de la parrilla"},"fr":{"type":"string","description":"Category Description in French (`fr`)","example":"Quelque chose du grill"},"nl":{"type":"string","description":"Category Description in Dutch (`nl`)","example":"Iets van de grill"},"ar":{"type":"string","description":"Category Description in Arabic (`ar`)","example":"أطباق من الشواية"}},"example":{"es":"Algo de la parrilla","fr":"Quelque chose du grill","nl":"Iets van de grill","ar":"أطباق من الشواية"}},"imageUrl":{"type":["string","null"],"description":"image url of the category (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))"},"subProducts":{"type":"array","description":"products that exist under each category, see [guide here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-sort-categories-items) for more context on correct sorting","items":{"type":"string"}},"menu":{"type":"string","description":"the unique ID of the menu this category belongs to","example":"64********************0c"},"account":{"type":"string","description":"the unique ID of the account this category belongs to","example":"64********************48"}}}},"products":{"type":"object","description":"Products in the menu.\n\nObject keyed by ID; `{productId}` represents each key.","properties":{"{productId}":{"type":"object","description":"Identifier of a particular product and its location in the menu structure, matching the product's `id`. This is not a universal identifier for the product and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular product and its location in the menu structure. This is not a universal identifier for the product and is not fixed.","example":"64********************c7"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the product, to be used when creating orders","example":"P-MA-sViS-2"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Product name","example":"Margherita"},"nameTranslations":{"type":"object","description":"Translations of the **Product Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Product Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Product Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Product Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Product Name in Arabic (`ar`)","example":"ستيك لذيذ مع بطاطس مقلية"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"ستيك لذيذ مع بطاطس مقلية"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Product","enum":[1],"default":1,"example":1},"description":{"type":"string","description":"Product description","example":"Margherita Pizza"},"imageUrl":{"type":["string","null"],"description":"image url of the product (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))","example":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg"},"descriptionTranslations":{"type":"object","description":"Translations of the **Product Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Product Description in Spanish (`es`)","example":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones"},"fr":{"type":"string","description":"Product Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Product Description in Dutch (`nl`)","example":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"ar":{"type":"string","description":"Product Description in Arabic (`ar`)","example":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"example":{"es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen","ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"defaultQuantity":{"type":["integer","null"],"description":"this controls the behaviour of 'pre-selected' items, where a quantity >0 should be automatically selected (typically '1'); higher default quantities can also be set"},"isVariant":{"type":["boolean","null"],"description":"Applicable to a **product** to indicate if it is a variant or not (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-variants))"},"productTags":{"type":"array","description":"All tags which apply to this product, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the product is stored","example":"64********************48"},"referenceId":{"type":"string","description":"the original PLU of the product, only for tracking sales e.g. for loyalty purposes. Not to be included in the payload for order creation.","example":"P-MA-sViS-2"},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}},"beverageInfo":{"type":["object","null"],"description":"information specific to beverages","properties":{"caffeine":{"type":["integer","null"],"description":"Caffeine content of the beverage, expressed in milligrams (mg).","example":95},"alcohol":{"type":["integer","null"],"description":"Alcohol percentage, sent as an integer in E2 format (the percentage multiplied by 100) so that decimal values can be represented. For example, `1250` represents 12.5% and `475` represents 4.75%.","example":1250}}},"calories":{"type":["integer","null"],"description":"expressed in kcal / Cals","example":2},"caloriesRangeHigh":{"type":["integer","null"],"description":"if a range is supported, the minimum would be `\"calories\"` and maximum `\"caloriesRangeHigh\"`"},"caloriesFromFat":{"type":["integer","null"],"description":"calories from fat, expressed in kcal / Cals"},"nutritionalInfo":{"type":["object","null"],"description":"Expressed in grams e.g. `fat`, `sugar`, `saturatedFat`, `carbohydrates`, `protein`, `salt` etc (see this section of product guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","properties":{"fat":{"type":["number","null"],"description":"fat in grams","example":32.5},"sugar":{"type":["number","null"],"description":"sugar in grams","example":2.1},"addedSugar":{"type":["number","null"],"description":"added sugar in grams"},"saturatedFat":{"type":["number","null"],"description":"saturated fat in grams","example":12.8},"monoUnsaturatedFat":{"type":["number","null"],"description":"monounsaturated fat in grams"},"polyUnsaturatedFat":{"type":["number","null"],"description":"polyunsaturated fat in grams"},"transFat":{"type":["number","null"],"description":"trans fat in grams"},"cholesterol":{"type":["number","null"],"description":"cholesterol"},"carbohydrates":{"type":["number","null"],"description":"carbohydrates in grams","example":48},"polyols":{"type":["number","null"],"description":"polyols in grams"},"starch":{"type":["number","null"],"description":"starch in grams"},"fiber":{"type":["number","null"],"description":"fibre in grams"},"dietaryFiber":{"type":["number","null"],"description":"dietary fibre in grams","example":4.3},"protein":{"type":["number","null"],"description":"protein in grams","example":41.2},"salt":{"type":["number","null"],"description":"salt in grams","example":2.4},"sodium":{"type":["number","null"],"description":"sodium"},"vitaminC":{"type":["number","null"],"description":"vitamin C"},"calcium":{"type":["number","null"],"description":"calcium"},"magnesium":{"type":["number","null"],"description":"magnesium"},"chloride":{"type":["number","null"],"description":"chloride"},"fluoride":{"type":["number","null"],"description":"fluoride"},"potassium":{"type":["number","null"],"description":"potassium"},"servingSize":{"type":["object","null"],"description":"size of a single serving","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}},"servingCount":{"type":["integer","null"],"description":"number of servings","example":1},"netQuantity":{"type":["object","null"],"description":"net quantity of the item","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}}}},"packaging":{"type":["object","null"],"description":"details on the packaging","properties":{"count":{"type":["integer","null"],"description":"number of packaging units","example":1},"reusable":{"type":["boolean","null"],"description":"indicates if the packaging is reusable","example":false},"storageInstructions":{"type":["string","null"],"description":"how the item should be stored","example":"Keep refrigerated. Consume within 24 hours."}}},"supplementalInfo":{"type":["object","null"],"description":"additional information about a product, for more information see [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","properties":{"legalName":{"type":["string","null"],"description":"legal name of the item","example":"Coca-Cola Original Taste"},"prepackaged":{"type":["boolean","null"],"description":"indicates if the item is prepackaged","example":true},"deposit":{"type":["integer","null"],"description":"deposit amount with 2 decimal digits, e.g. 1 euro is stored as 100","example":0},"instructionsForUse":{"type":["string","null"],"description":"instructions for using or consuming the item","example":"Best served chilled."},"ingredients":{"type":"array","description":"list of ingredients","items":{"type":"string"},"example":["Water","Sugar","Carbon dioxide"]},"additives":{"type":"array","description":"list of additive codes","items":{"type":"string"},"example":["ACIDIFIERS","CAFFEINE_CAFFEINE"]},"fbo":{"type":["object","null"],"description":"food business operator responsible for the item","properties":{"name":{"type":["string","null"],"description":"name of the food business operator","example":"Coca-Cola Europacific Partners"},"address":{"type":["string","null"],"description":"address of the food business operator","example":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom"},"brand":{"type":["string","null"],"description":"brand name","example":"Coca-Cola"},"countryOfOrigin":{"type":["string","null"],"description":"country of origin","example":"GB"}}}}},"displayLabels":{"type":"array","description":"An array of labels for uniquely identifying products in marketing-based terms, e.g. `new` or `featured`.","items":{"type":"string","enum":["new","popular","offer","exclusive","limited","hero","featured"]},"example":["new"]},"metadata":{"type":"array","description":"custom key/value pairs for the product, e.g. display styling (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"object","properties":{"key":{"type":"string","description":"metadata key","example":"text-color"},"value":{"type":"string","description":"metadata value","example":"#09CA79"}}},"example":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"}]},"preparationTime":{"type":["integer","null"],"description":"Item-specific preparation time in minutes, if configured."}}}}},"modifiers":{"type":"object","description":"Modifiers in the menu.\n\nObject keyed by ID; `{modifierId}` represents each key.","properties":{"{modifierId}":{"type":"object","description":"Identifier of a particular modifier and its location in the menu structure, matching the modifier's `id`. This is not a universal identifier for the modifier and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular modifier and its location in the menu structure. This is not a universal identifier for the modifier and is not fixed.","example":"64********************05"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the modifier, to be used when creating orders","example":"M-BA-nNU1-2"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Modifier name","example":"Bacon"},"nameTranslations":{"type":"object","description":"Translations of the **Modifier Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Modifier Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Modifier Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Modifier Name in Arabic (`ar`)","example":"كوكا كولا"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"كوكا كولا"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Modifier","enum":[2],"default":2,"example":2},"description":{"type":"string","description":"Modifier description","example":""},"imageUrl":{"type":["string","null"],"description":"image url of the modifier (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))","example":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg"},"descriptionTranslations":{"type":"object","description":"Translations of the **Modifier Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Description in Spanish (`es`)","example":"Bebida con sabor a cola, con azúcar y cafeína"},"fr":{"type":"string","description":"Modifier Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Modifier Description in Dutch (`nl`)","example":"Drank met colasmaak, met suiker en cafeïne"},"ar":{"type":"string","description":"Modifier Description in Arabic (`ar`)","example":"مشروب بنكهة الكولا يحتوي على السكر والكافيين"}},"example":{"es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Drank met colasmaak, met suiker en cafeïne","ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين"}},"defaultQuantity":{"type":["integer","null"],"description":"this controls the behaviour of 'pre-selected' items, where a quantity >0 should be automatically selected (typically '1'); higher default quantities can also be set"},"productTags":{"type":"array","description":"All tags which apply to this modifier, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the modifier is stored","example":"64********************48"},"referenceId":{"type":["string","null"],"description":"the original PLU of the modifier, only for tracking sales e.g. for loyalty purposes. Not to be included in the payload for order creation."},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}},"beverageInfo":{"type":["object","null"],"description":"information specific to beverages","properties":{"caffeine":{"type":["integer","null"],"description":"Caffeine content of the beverage, expressed in milligrams (mg).","example":95},"alcohol":{"type":["integer","null"],"description":"Alcohol percentage, sent as an integer in E2 format (the percentage multiplied by 100) so that decimal values can be represented. For example, `1250` represents 12.5% and `475` represents 4.75%.","example":1250}}},"calories":{"type":["integer","null"],"description":"expressed in kcal / Cals"},"caloriesRangeHigh":{"type":["integer","null"],"description":"if a range is supported, the minimum would be `\"calories\"` and maximum `\"caloriesRangeHigh\"`"},"caloriesFromFat":{"type":["integer","null"],"description":"calories from fat, expressed in kcal / Cals"},"nutritionalInfo":{"type":["object","null"],"description":"Expressed in grams e.g. `fat`, `sugar`, `saturatedFat`, `carbohydrates`, `protein`, `salt` etc (see this section of product guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","properties":{"fat":{"type":["number","null"],"description":"fat in grams","example":32.5},"sugar":{"type":["number","null"],"description":"sugar in grams","example":2.1},"addedSugar":{"type":["number","null"],"description":"added sugar in grams"},"saturatedFat":{"type":["number","null"],"description":"saturated fat in grams","example":12.8},"monoUnsaturatedFat":{"type":["number","null"],"description":"monounsaturated fat in grams"},"polyUnsaturatedFat":{"type":["number","null"],"description":"polyunsaturated fat in grams"},"transFat":{"type":["number","null"],"description":"trans fat in grams"},"cholesterol":{"type":["number","null"],"description":"cholesterol"},"carbohydrates":{"type":["number","null"],"description":"carbohydrates in grams","example":48},"polyols":{"type":["number","null"],"description":"polyols in grams"},"starch":{"type":["number","null"],"description":"starch in grams"},"fiber":{"type":["number","null"],"description":"fibre in grams"},"dietaryFiber":{"type":["number","null"],"description":"dietary fibre in grams","example":4.3},"protein":{"type":["number","null"],"description":"protein in grams","example":41.2},"salt":{"type":["number","null"],"description":"salt in grams","example":2.4},"sodium":{"type":["number","null"],"description":"sodium"},"vitaminC":{"type":["number","null"],"description":"vitamin C"},"calcium":{"type":["number","null"],"description":"calcium"},"magnesium":{"type":["number","null"],"description":"magnesium"},"chloride":{"type":["number","null"],"description":"chloride"},"fluoride":{"type":["number","null"],"description":"fluoride"},"potassium":{"type":["number","null"],"description":"potassium"},"servingSize":{"type":["object","null"],"description":"size of a single serving","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}},"servingCount":{"type":["integer","null"],"description":"number of servings","example":1},"netQuantity":{"type":["object","null"],"description":"net quantity of the item","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}}}},"packaging":{"type":["object","null"],"description":"details on the packaging","properties":{"count":{"type":["integer","null"],"description":"number of packaging units","example":1},"reusable":{"type":["boolean","null"],"description":"indicates if the packaging is reusable","example":false},"storageInstructions":{"type":["string","null"],"description":"how the item should be stored","example":"Keep refrigerated. Consume within 24 hours."}}},"supplementalInfo":{"type":["object","null"],"description":"additional information about a modifier, for more information see [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","properties":{"legalName":{"type":["string","null"],"description":"legal name of the item","example":"Coca-Cola Original Taste"},"prepackaged":{"type":["boolean","null"],"description":"indicates if the item is prepackaged","example":true},"deposit":{"type":["integer","null"],"description":"deposit amount with 2 decimal digits, e.g. 1 euro is stored as 100","example":0},"instructionsForUse":{"type":["string","null"],"description":"instructions for using or consuming the item","example":"Best served chilled."},"ingredients":{"type":"array","description":"list of ingredients","items":{"type":"string"},"example":["Water","Sugar","Carbon dioxide"]},"additives":{"type":"array","description":"list of additive codes","items":{"type":"string"},"example":["ACIDIFIERS","CAFFEINE_CAFFEINE"]},"fbo":{"type":["object","null"],"description":"food business operator responsible for the item","properties":{"name":{"type":["string","null"],"description":"name of the food business operator","example":"Coca-Cola Europacific Partners"},"address":{"type":["string","null"],"description":"address of the food business operator","example":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom"},"brand":{"type":["string","null"],"description":"brand name","example":"Coca-Cola"},"countryOfOrigin":{"type":["string","null"],"description":"country of origin","example":"GB"}}}}},"displayLabels":{"type":"array","description":"An array of labels for uniquely identifying modifiers in marketing-based terms, e.g. `new` or `featured`.","items":{"type":"string","enum":["new","popular","offer","exclusive","limited","hero","featured"]},"example":["new"]},"metadata":{"type":"array","description":"custom key/value pairs for the modifier, e.g. display styling (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"object","properties":{"key":{"type":"string","description":"metadata key","example":"text-color"},"value":{"type":"string","description":"metadata value","example":"#09CA79"}}},"example":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"}]}}}}},"modifierGroups":{"type":"object","description":"Modifier groups in the menu.\n\nObject keyed by ID; `{modifierGroupId}` represents each key.","properties":{"{modifierGroupId}":{"type":"object","description":"Identifier of a particular modifier group and its location in the menu structure, matching the modifier group's `id`. This is not a universal identifier for the modifier group and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular modifier group and its location in the menu structure. This is not a universal identifier for the modifier group and is not fixed.","example":"64********************37"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the modifier group, to be used when creating orders","example":"MG-TO-QeOs-2"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Modifier Group name","example":"Toppings"},"nameTranslations":{"type":"object","description":"Translations of the **Modifier Group Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Group Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Modifier Group Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Modifier Group Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Modifier Group Name in Arabic (`ar`)","example":"تعليمات الطهي"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"تعليمات الطهي"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Modifier Group","enum":[3],"default":3,"example":3},"description":{"type":"string","description":"Modifier Group description","example":""},"imageUrl":{"type":["string","null"],"description":"image url of the modifier group (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))"},"descriptionTranslations":{"type":"object","description":"Translations of the **Modifier Group Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Group Description in Spanish (`es`)","example":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones"},"fr":{"type":"string","description":"Modifier Group Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Modifier Group Description in Dutch (`nl`)","example":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"ar":{"type":"string","description":"Modifier Group Description in Arabic (`ar`)","example":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"example":{"es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen","ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"max":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> maximum number of items under a group to be purchased","example":5},"min":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> minimum number of items under a group to be purchased","example":0},"multiply":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> multiply is used in Modifier Group to show this product multiple times in the GUI, 1 means one entry (so no copies)","example":1},"isVariantGroup":{"type":["boolean","null"],"description":"Applicable to a **modifier group** to indicate if it contains variants of a product (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-variants))"},"isUpsell":{"type":["boolean","null"],"description":"indicates if the **modifier group** is an upsell group"},"productTags":{"type":"array","description":"All tags which apply to this product, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the modifier group is stored","example":"64********************48"},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}}}}}},"bundles":{"type":"object","deprecated":true,"description":"<span class=\"legacy-label\">Legacy</span>"}}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Master location not configured":{"summary":"Master location not configured","value":{"error":"Account does not have a master location configured"}}},"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}":{"get":{"tags":["Endpoints"],"summary":"Get Basket","operationId":"commerce-channel-api-baskets-get-basket","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":2,"note":"extra salt please","price":1500,"gross":3800,"taxes":[],"net":3800,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":400,"subItems":[]}],"discounts":[],"discountTotal":0},{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"chargesTotal":0,"taxTotal":0,"tipTotal":0,"total":5600},"customer":{"name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234"},"fulfillment":{"type":"pickup"},"charges":{"taxTotal":0,"netTotal":0,"grossTotal":0,"serviceCharge":{"type":"fixed","value":0,"taxRate":0,"gross":0},"bagFee":{"type":"fixed","value":0,"taxRate":0,"gross":0},"deliveryFee":{"type":"fixed","value":0,"taxRate":0,"gross":0}},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"channel":{"type":"integer","description":"Global identifier of the ordering channel/platform.","example":19066},"category":{"type":"object","description":"Business category of the store.","properties":{"type":{"type":"string","description":"Store category type.","example":"restaurant"}}},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the basket item, auto-generated when the item is added. Used to reference the item in subsequent requests (e.g. `itemIds` in discounts).","example":"6a********************5d"},"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of units of the item added to the basket."},"note":{"type":["string","null"],"example":"extra salt please","description":"Special instructions for the item."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":3800,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item.","items":{"type":"object","properties":{"rate":{"type":"integer","description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","example":10500},"name":{"type":"string","description":"Name of the tax.","example":"GST"},"amount":{"type":"integer","description":"Tax amount applied. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":187}}}},"net":{"type":"integer","example":3800,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","description":"A modifier selected for the parent item. Modifiers can be nested to any depth via `subItems`.","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`.","items":{"type":"object","description":"A modifier selected for the parent item. Modifiers can be nested to any depth via `subItems`.","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`.","items":{"type":"object","description":"A modifier selected for the parent item. Modifiers can be nested to any depth via `subItems`.","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`.","items":{"type":"object","description":"Further nested modifiers follow the same structure."}},"note":{"type":["string","null"],"description":"Special instructions for the modifier."},"upsellReference":{"type":["string","null"],"description":"Reference to the upsell recommendation this modifier was added from, if any."}}}},"note":{"type":["string","null"],"description":"Special instructions for the modifier."},"upsellReference":{"type":["string","null"],"description":"Reference to the upsell recommendation this modifier was added from, if any."}}}},"note":{"type":["string","null"],"description":"Special instructions for the modifier."},"upsellReference":{"type":["string","null"],"description":"Reference to the upsell recommendation this modifier was added from, if any."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`.","items":{"type":"object","properties":{"referenceId":{"type":"integer","description":"Reference to the basket-level discount.","example":1},"amount":{"type":"integer","description":"Discount amount applied to this item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":50}}}},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"preparationTime":{"type":["integer","null"],"description":"Item-specific preparation time in minutes, if configured."},"customerId":{"type":["string","null"],"description":"ID of the group basket customer who added the item. `null` for non-group baskets."},"upsellReference":{"type":["string","null"],"description":"Reference to the upsell recommendation this item was added from, if any."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","description":"Tips added to the basket.","items":{"type":"object","properties":{"amount":{"type":"integer","description":"Tip amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":200},"type":{"type":"string","enum":["restaurant","driver"],"description":"Recipient of the tip:\n\n- `restaurant` - Tip for the restaurant\n- `driver` - Tip for the delivery driver","example":"restaurant"}}}},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subTotal":{"type":"integer","description":"The sum of all order items (products + their modifiers/sub-items), before tax, delivery cost, service charge, tip, or discounts are added.","example":3032},"total":{"type":"integer","example":5600,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":["object","null"],"properties":{"name":{"type":"string","example":"John Doe","description":"Full name of the customer."},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"john.doe@acme.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"type":"string","description":"Unique identifier for the customer in the loyalty provider system.","example":"17dh89"},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer.","example":"123456789"},"crmProfileId":{"type":"string","description":"Unique identifier for the customer's profile in the Deliverect CRM system."},"sendNotifications":{"type":"boolean","description":"Flag to control whether order notifications should be sent to the customer.","example":true},"allowMarketing":{"type":["boolean","null"],"description":"Flag to indicate whether the customer has opted in to receive marketing communications."},"sendReceiptSMS":{"type":["boolean","null"],"description":"Flag to control whether the order receipt should be sent via SMS."},"sendReceiptEmail":{"type":["boolean","null"],"description":"Flag to control whether the order receipt should be sent via email."}},"description":"Information about the customer placing the order."},"group":{"type":["object","null"],"description":"Group order details. `null` for non-group baskets.","properties":{"customers":{"type":"array","description":"Customers participating in the group basket.","items":{"type":"object","properties":{"id":{"type":"string","description":"Internal customer ID, auto-generated when the customer is added to the basket.","example":"69********************01"},"role":{"type":"string","enum":["host","guest"],"description":"Role in the group:\n\n- `host` - Customer who owns the group basket\n- `guest` - Customer who joined the group basket","example":"host"},"name":{"type":"string","example":"John Doe","description":"Customer’s name, which may consist of their first name and surname initial (can also be empty string)"},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","format":"email","example":"john.doe@acme.com","description":"Customer's email address."},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"tin":{"type":"string","example":"123456789","description":"Tax identification or fiscal equivalent number for the customer."}}}},"policies":{"type":"array","description":"Deadlines applied to the group basket.","items":{"type":"object","properties":{"type":{"type":"string","enum":["newJoinersDeadline","groupItemsModificationDeadline","customerItemsModificationDeadline"],"description":"Policy type:\n\n- `newJoinersDeadline` - Last time new customers can join\n- `groupItemsModificationDeadline` - Last time any items can be changed\n- `customerItemsModificationDeadline` - Last time a specific customer can change their items","example":"newJoinersDeadline"},"deadline":{"type":"string","format":"date-time","description":"Deadline timestamp in UTC.","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},"customerId":{"type":"string","description":"Customer the policy applies to (only for `customerItemsModificationDeadline`).","example":"69********************02"}}}}}},"fulfillment":{"type":"object","properties":{"type":{"type":"string","enum":["pickup","delivery","eatIn"],"description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","example":"pickup"},"time":{"type":["string","null"],"format":"date-time","description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*"},"address":{"type":"object","description":"Delivery address information for the order. Required when `type` = \"delivery\".","properties":{"line":{"type":"string","description":"Full formatted delivery address line.\n\nExample: \"Foreestelaan 82, 9000 Gent, Belgium\"","example":"Foreestelaan 82, 9000 Gent, Belgium"},"subpremise":{"type":"string","description":"Apartment, suite, unit or floor number.","example":"Unit #1040"},"street":{"type":"string","description":"Street name.","example":"Park Avenue South"},"area":{"type":"string","description":"Neighbourhood or district.","example":""},"city":{"type":"string","description":"City.","example":"New York"},"postalCode":{"type":"string","description":"Postal / ZIP code.","example":"10003"},"stateOrProvince":{"type":"string","description":"State or province.","example":"NY"},"country":{"type":"string","description":"Country code (ISO 3166-1 alpha-2).","example":"US"},"coordinates":{"type":"array","items":{"type":"number"},"description":"Geographical coordinates of the delivery address in `[long, lat]` order, used for precise location mapping and routing.\n\nEg., `[51.03162341734958, 3.7337162550022622]`","example":[51.03162341734958,3.7337162550022622]},"note":{"type":"string","description":"Delivery instructions for the courier.","example":"watch out for the yappy dog"}}},"spot":{"type":"string","description":"Identifier of the dining spot (such as a table number).\n\nRequired when `type` = \"eatIn\".","example":"TABLE-1"},"pickupNotes":{"type":["string","null"],"description":"Pickup instructions from the customer (e.g. car description for curbside).","example":"Yellow Honda"}},"description":"Defines how the order will be fulfilled.","required":["type"]},"note":{"type":"string","description":"Optional free-text field that contains special instructions or comments from the customer about the order (e.g., cooking preferences, dietary requests, packaging notes)."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the tax.","example":"GST"},"amount":{"type":"integer","description":"Total amount for this tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":318}}}},"discounts":{"type":"array","description":"Discounts applied to the basket.","items":{"type":"object","properties":{"type":{"type":"string","enum":["order_flat_off","order_percent_off","item_free","item_bogof","item_flat_off","item_percent_off","wallet_cash","compensation_card"],"description":"Type of discount.","example":"order_flat_off"},"referenceId":{"type":"integer","description":"Basket-scoped reference used by item-level `discounts`.","example":1},"amount":{"type":"integer","description":"Calculated discount amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":50,"format":"int32"},"value":{"type":"integer","description":"Configured discount value (amount, or rate with 2 decimal digits for percentage discounts).","example":1000,"format":"int32"},"provider":{"type":"string","enum":["restaurant","coupon","loyalty"],"description":"Source of the discount:\n\n- `restaurant` - Restaurant-funded promotion\n- `coupon` - Coupon code\n- `loyalty` - Loyalty provider reward","example":"restaurant"},"externalId":{"type":["string","null"],"description":"External reference for the discount.","example":"discount-123"},"name":{"type":"string","description":"Display name of the discount.","example":"CONGRATS! HERE IS 1 EUR OFF"}}}},"charges":{"type":"object","properties":{"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","example":0,"format":"int32"},"taxRate":{"type":"integer","description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","example":0,"format":"int32"},"gross":{"type":"integer","description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"tax":{"type":"integer","description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"net":{"type":"integer","description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","example":"fixed"}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","example":0,"format":"int32"},"taxRate":{"type":"integer","description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","example":0,"format":"int32"},"gross":{"type":"integer","description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"tax":{"type":"integer","description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"net":{"type":"integer","description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","example":0,"format":"int32"},"taxRate":{"type":"integer","description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","example":0,"format":"int32"},"gross":{"type":"integer","description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"tax":{"type":"integer","description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0},"net":{"type":"integer","description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","example":0}},"description":"Delivery fee details."}},"description":"Charges applied to the basket."},"preparationTime":{"type":"integer","description":"Estimated preparation time for the basket in minutes.","example":15},"preparationDelayTime":{"type":"integer","description":"Additional delay in minutes added to the preparation time (e.g. when the store is busy).","example":0},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","example":"65********************59","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores)."},"channelLinkId":{"type":"string","description":"Alternative to `storeId`.","example":"65********************59"},"channelOrderId":{"type":["string","null"],"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"type":["string","null"],"description":"Human-readable order reference. `null` until checkout completes."}},"required":["storeId"]}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/customer":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Customer","operationId":"commerce-channel-api-baskets-update-basket-customer","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"companyName":{"type":"string"},"email":{"type":"string"},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nMust be in E.164 format: `+`, the country code, then the number without its leading `0`, with no spaces or other characters.\n\nEg., \"+12125550123\""},"externalId":{"type":"string"},"tin":{"type":"string"}}},"examples":{"Sample Customer":{"value":{"name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789","loyaltyProviderCustomerId":"17dh89"}}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":2,"price":1500,"gross":3800,"taxes":[],"net":3800,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":400,"subItems":[]}],"discounts":[],"discountTotal":0},{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":5600},"customer":{"name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789","loyaltyProviderCustomerId":"17dh89"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":3800,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":3800,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":5600,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"John Doe","description":"Full name of the customer."},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"john.doe@acme.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer."},"loyaltyProviderCustomerId":{"type":"string","description":"Unique identifier for the customer in the loyalty provider system."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Basket is a group order":{"summary":"Basket is a group order","value":{"code":"basket_is_group_order","message":"Cannot update individual customer on a group basket. Use the /customers endpoints instead.","context":{},"traceId":"76e1ce4bb8abfd3660832cd9b149899b"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/items":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Item(s)","operationId":"commerce-channel-api-baskets-update-basket-items","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"68********************3d","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"3F_COMBO","description":"Unique identifier of the item, to be used when creating orders."},"quantity":{"type":"integer","example":3,"description":"Number of units of the item added to the basket."},"note":{"type":"string","example":"No Salad","description":"Special instructions for the item."},"customerId":{"type":"string","example":"69********************01","description":"ID of the group basket customer who added the item. `null` for non-group baskets."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable).","items":{"type":"object","properties":{"plu":{"type":"string","example":"A_FRS","description":"Unique identifier of the item (modifier)."},"customizationPlu":{"type":"string","description":"PLU of the modifier group that the `subItem` belongs to."},"quantity":{"type":"integer","example":1,"description":"Number of times this modifier is applied to the item."},"note":{"type":"string","description":"Special instructions for the modifier."}},"required":["plu","customizationPlu","quantity"]}}},"required":["menuId","plu","quantity"]}},"examples":{"Patch Basket Items":{"summary":"Patch Basket Items","value":[{"plu":"3F_COMBO","quantity":3,"menuId":"68********************3d","note":"No Salad"}]},"Patch Group Basket Items":{"summary":"Patch Group Basket Items","value":[{"plu":"3F_COMBO","quantity":3,"menuId":"68********************3d","note":"No Salad","customerId":"69********************01"}]}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"66********************13","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"4f95244e98557fec08e449e767afb340842cf4f2","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"plu":"PLU-1","quantity":1,"note":"extra salt please","menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0},{"plu":"PLU-2","quantity":1,"menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0},{"plu":"PLU-3","quantity":1,"menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":4800},"customer":null,"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}},"Group Basket":{"summary":"Group Basket","value":{"id":"66********************13","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"4f95244e98557fec08e449e767afb340842cf4f2","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"plu":"PLU-1","quantity":1,"note":"extra salt please","menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0,"customerId":"69********************01"},{"plu":"PLU-2","quantity":1,"menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0,"customerId":"69********************01"},{"plu":"PLU-3","quantity":1,"menuId":"66********************87","price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0,"customerId":"69********************02"}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"group":{"customers":[{"id":"69********************01","role":"host","name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789"},{"id":"69********************02","role":"guest","name":"Patrick Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"patrick.doe@acme.com","externalId":"crm-id-1235","tin":"123456790"}]},"customer":null,"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":4800},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************13","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"4f95244e98557fec08e449e767afb340842cf4f2","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelOrderId":{"type":"string","description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"type":"string","description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"plu":{"type":"string","example":"PLU-1","description":"Unique identifier of the item, to be used when creating orders."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"note":{"type":"string","example":"extra salt please","description":"Special instructions for the item."},"menuId":{"type":"string","example":"66********************87","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":1500,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":4800,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"73a156c0d2a9dc4502be08cbe949ac40"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"cff0411a4a5ce137b5a353efd1c83b5b"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"7e4df4393c55c85a308cf7e01dda19b5"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"c2683d2d5304eb93bc65179bc533dc69"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}},"Customer not a member of basket":{"summary":"Customer not a member of basket","value":{"code":"customer_not_a_member_of_basket","message":"One or more items reference a customerId that does not exist in the basket.","context":{},"traceId":"d8be571307caebca396abf228683f434"}},"Customer ID required for group basket":{"summary":"Customer ID required for group basket","value":{"code":"customer_id_required_for_group_basket","message":"One or more items are missing a customerId. All items in a group basket must have a customerId.","context":{},"traceId":"6b71bf300eaf9ddd4d757517fc0e8b9e"}},"Basket modification deadline passed":{"summary":"Basket modification deadline passed","value":{"code":"basket_modification_deadline_passed","message":"The deadline for modifying the basket has passed. You can no longer modify the basket.","context":{"deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","customerId":"cust-002"},"traceId":"4f85937d58366a504fffab2a9cafc607"}},"Group spending limit exceeded":{"summary":"Group spending limit exceeded","value":{"code":"group_spending_limit_exceeded","message":"Basket total exceeds the maximum allowed spending limit of 10000.","context":{"limit":10000,"actualTotal":10850},"traceId":"c788566c2a592f39d3d4c115916528a1"}},"Customer spending limit exceeded":{"summary":"Customer spending limit exceeded","value":{"code":"customer_spending_limit_exceeded","message":"Customer total exceeds the maximum allowed spending limit of 2000.","context":{"customerId":"cust-002","limit":2000,"currentSpend":2450},"traceId":"4f023bb5f2dc092cb34001a769a7ab5d"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/discounts":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Discount(s)","operationId":"commerce-channel-api-baskets-update-basket-discounts","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","description":"discounts","items":{"type":"object","properties":{"type":{"type":"string","example":"order_flat_off"},"provider":{"type":"string","enum":["restaurant","coupon","loyalty"],"example":"coupon"},"amount":{"type":"integer","format":"int32","example":100},"value":{"type":"integer","format":"int32","example":1000},"name":{"type":"string","example":"CONGRATS! HERE IS 1 EUR OFF"},"plu":{"type":"string","example":"DLX-3"},"menuId":{"type":"string","example":"668f7ff64dc853**c96**877"},"externalId":{"type":"string","nullable":true,"example":"discount-123","description":"the PLU of the item"},"itemIds":{"type":"array","items":{"type":"string"},"example":["69********************8e"],"description":"as returned from the create basket request"}},"required":["type","provider"]}},"examples":{"order_flat_off":{"value":[{"type":"order_flat_off","provider":"coupon","amount":100,"name":"CONGRATS! HERE IS 1 EUR OFF"}]},"order_percent_off":{"value":[{"type":"order_percent_off","provider":"restaurant","value":1000,"name":"CONGRATS10% OFF"}]},"item_free":{"value":[{"provider":"restaurant","name":"Free coke","type":"item_free","plu":"DLX-3","menuId":"69********************4a","externalId":"discount-123"}]},"item_bogof":{"value":[{"provider":"restaurant","name":"","type":"item_bogof","plu":"DLX-3","menuId":"69********************4a","externalId":"discount-bogo"}]},"item_flat_off":{"summary":"item_flat_off","value":[{"type":"item_flat_off","provider":"restaurant","externalId":"discount-item-flat-123","name":"Item flat off: $5","menuId":"668f7ff64dc853**c96**877","value":5000,"itemIds":["69********************8e"]}]},"item_percent_off":{"summary":"item_percent_off","value":[{"type":"item_percent_off","provider":"restaurant","externalId":"discount-123","name":"Item percent off: 25%","menuId":"69********************4a","value":2500,"itemIds":["69********************8e"]}]},"wallet_cash":{"summary":"wallet_cash","value":[{"type":"wallet_cash","value":1000,"provider":"loyalty","externalId":null}]},"compensation_card":{"summary":"compensation_card","value":[{"type":"compensation_card","provider":"restaurant","externalId":"cardnumber-123","value":5000,"name":"Compensation card for $5"}]}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"c2046a6b9c21b9ebb38f8094c0a3ca02240742b3","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1450,"subItems":[],"discounts":[{"referenceId":1,"amount":50}],"discountTotal":50}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":50,"taxTotal":0,"tipTotal":0,"total":1750},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[{"type":"order_flat_off","referenceId":1,"amount":50,"provider":"restaurant","name":"CONGRATS! HERE'S 5 EUR OFF"}]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"c2046a6b9c21b9ebb38f8094c0a3ca02240742b3","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelLinkId":{"type":"string","example":"65********************59","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":1450,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{"referenceId":{"type":"integer","example":1,"default":0,"description":"Reference to the basket-level discount."},"amount":{"type":"integer","example":50,"default":0,"description":"Discount amount applied to this item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":50,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":50,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1750,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"order_flat_off","description":"Type of discount.","enum":["order_flat_off","order_percent_off","item_free","item_bogof","item_flat_off","item_percent_off","wallet_cash","compensation_card"]},"referenceId":{"type":"integer","example":1,"default":0,"description":"Basket-scoped reference used by item-level `discounts`."},"amount":{"type":"integer","example":50,"default":0,"description":"Calculated discount amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","format":"int32"},"provider":{"type":"string","example":"restaurant","description":"Source of the discount:\n\n- `restaurant` - Restaurant-funded promotion\n- `coupon` - Coupon code\n- `loyalty` - Loyalty provider reward","enum":["restaurant","coupon","loyalty"]},"name":{"type":"string","example":"CONGRATS! HERE'S 5 EUR OFF","description":"Display name of the discount."}}},"description":"Discounts applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Unsupported discount type (V1)":{"summary":"Unsupported discount type (V1)","value":{"code":"unsupported_discount_type","message":"Unsupported discount type: item_mystery_off","context":{"discountType":"item_mystery_off"},"traceId":"1b962fda5c97f893a554041a86e0f4a7"}},"Discounted product unavailable (V1)":{"summary":"Discounted product unavailable (V1)","value":{"code":"discounted_product_unavailable","message":"Discounted product is unavailable. Product is snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"d63f86457f3782ea05daa3da9e4d769f"}},"Discount eligible items missing":{"summary":"Discount eligible items missing","value":{"code":"discount_eligible_items_missing","message":"Discount-eligible items are missing","context":{"type":"item_percent_off","referenceId":1,"externalId":"promo-abc","itemIds":["1","2"]},"traceId":"7aef5672351c14549e69f092e1644d4e"}},"Discount eligible items missing (V1 BOGOF / free item)":{"summary":"Discount eligible items missing (V1 BOGOF / free item)","value":{"code":"discount_eligible_items_missing","message":"Discount-eligible items are missing","context":{"type":"item_bogof","referenceId":2,"externalId":"promo-bogof","menuId":"64********************d1","plu":"BURGER-01"},"traceId":"7fa2c1a3135e49b0e2e3462267ca2ff8"}},"Discount eligible items missing (V2 item scope)":{"summary":"Discount eligible items missing (V2 item scope)","value":{"code":"discount_eligible_items_missing","message":"Discount-eligible items are missing","context":{"itemIds":"['1', '2']"},"traceId":"8aed9c57079246e2106fa8856b54b425"}},"Basket fails eligibility check during calculation":{"summary":"Basket fails eligibility check during calculation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":1,"externalId":"promo-123"}],"reason":null},"traceId":"a3a89be338443fc680cda1da70d81d6f"}},"Loyalty customer not found":{"summary":"Loyalty customer not found","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":2,"externalId":"prog-456"}],"reason":"Loyalty customer not found"},"traceId":"7578d97993e3386540fc90a723c529d1"}},"Basket discount value mismatch":{"summary":"Basket discount value mismatch","value":{"code":"basket_discount_value_mismatch","message":"Basket discount value mismatch found","context":{"mismatches":[{"originalDiscount":{"type":"order_flat_off","referenceId":1,"amount":300,"value":300,"provider":"loyalty","externalId":"abc-123","name":"Order flat off discount: $5"},"currentValue":500}],"reason":null},"traceId":"fdc09d80d5b7307c4bf17ab497967271"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/charges":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Charges","operationId":"commerce-channel-api-baskets-update-basket-charges","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["RAW_BODY"],"properties":{"RAW_BODY":{"type":"array","description":"charges","items":{"properties":{"chargeType":{"type":"string","enum":["serviceCharge","bagFee","deliveryFee"]},"type":{"type":"string","enum":["fixed","percent"]},"value":{"type":"integer","format":"int32"},"taxRate":{"type":"integer","description":"Tax Rate - For 10%, input 10000","default":0,"format":"int32"}},"required":["type","value"],"type":"object"}}}},"examples":{"Request Example":{"value":[{"chargeType":"serviceCharge","type":"fixed","value":500,"taxRate":0}]}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"68********************33","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"38654a00ccfee91784411382ca379dd73fe05121","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channel":20000,"channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"chargesTotal":1000,"taxTotal":0,"tipTotal":0,"total":1300},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com","externalId":"ext_458d3f2432858ffdfs","loyaltyProviderCustomerId":null},"fulfillment":{"type":"pickup","time":null},"taxes":[],"discounts":[],"charges":{"serviceCharge":{"value":500,"taxRate":0,"gross":0,"tax":0,"net":0,"type":"fixed"},"bagFee":{"value":300,"taxRate":0,"gross":300,"tax":0,"net":300},"deliveryFee":{"value":700,"taxRate":0,"gross":700,"tax":0,"net":700},"taxTotal":0,"netTotal":1000,"grossTotal":1000}}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"68********************33","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"38654a00ccfee91784411382ca379dd73fe05121","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channel":{"type":"integer","example":20000,"default":0,"description":"Global identifier of the ordering channel/platform."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":1000,"default":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1300,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"ext_458d3f2432858ffdfs","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"description":"Unique identifier for the customer in the loyalty provider system."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"time":{"description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*","format":"date-time"}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."},"charges":{"type":"object","properties":{"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","example":500,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"fixed","description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","enum":["fixed","percent"]}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","example":300,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":300,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":300,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","example":700,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":700,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":700,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Delivery fee details."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":1000,"default":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":1000,"default":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Charges applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"deprecated":false}},"/commerce/{accountId}/v2/checkouts/{checkoutId}":{"get":{"tags":["Endpoints"],"summary":"Get Checkout","operationId":"get_commerce{accountId}checkouts{checkoutId}-1","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"checkoutId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"completed":{"value":{"id":"66********************78","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","status":"completed","basket":{"currency":"EUR","taxExclusive":false,"items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[{"amount":100,"type":"restaurant"}],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":100,"total":1900},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com","tin":"123456789"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]},"payment":{"id":"62********************91","status":"authorized","action":{"type":"redirect","url":"http://payment.acme.com/1234"}},"order":{"channelOrderId":"66********************79","channelOrderDisplayId":"01277571"}}},"pending payment":{"value":{"id":"66********************78","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","status":"open","basket":{"currency":"EUR","taxExclusive":false,"items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[{"amount":100,"type":"restaurant"}],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":100,"total":1900},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com","tin":"123456789"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]},"payment":{"id":"62********************91","status":"pending","action":{"type":"redirect","url":"http://payment.acme.com/1234"}},"order":null}},"refused payment":{"value":{"id":"66********************78","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","status":"open","basket":{"currency":"EUR","taxExclusive":false,"items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[{"amount":100,"type":"restaurant"}],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":100,"total":1900},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com","tin":"123456789"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]},"payment":{"id":"62********************91","status":"refused","action":{"type":"redirect","url":"http://payment.acme.com/1234"}},"order":null}},"failed payment":{"value":{"id":"66********************78","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","status":"failed","basket":{"currency":"EUR","taxExclusive":false,"items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[{"amount":100,"type":"restaurant"}],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":100,"total":1900},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com","tin":"123456789"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]},"payment":{"id":"62********************91","status":"failed","action":null},"order":null}}},"schema":{"oneOf":[{"title":"completed","type":"object","properties":{"id":{"type":"string","example":"66********************78","description":"Unique identifier of the checkout.\n\nUse this to retrieve the checkout via [GET Checkout](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-checkout)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the checkout is in a deleted state."},"etag":{"type":"string","example":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","description":"Entity tag identifying the current version of the checkout. It changes whenever the checkout is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"status":{"type":"string","example":"completed","description":"Status of the checkout. A successful checkout shows `status` as `open`. Once processed into the POS it updates to `completed`, or to `failed` if an unexpected error occurs.\n\nThe [Checkout Update](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-api-checkout-update) webhook delivers the final checkout status in real time as soon as it is updated."},"basket":{"type":"object","properties":{"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":1500,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","example":100,"default":0,"description":"Tip amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"restaurant","description":"Recipient of the tip:\n\n- `restaurant` - Tip for the restaurant\n- `driver` - Tip for the delivery driver","enum":["restaurant","driver"]}}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":100,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1900,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}},"payment":{"type":"object","properties":{"id":{"type":"string","example":"62********************91","description":"Identifier of the Deliverect Pay payment (`paymentId`)."},"status":{"type":"string","example":"authorized","description":"Current status of the Deliverect Pay payment, e.g. `pending`, `authorized` or `failed`."},"action":{"type":"object","properties":{"type":{"type":"string","example":"redirect","description":"Type of action required, e.g. `redirect`."},"url":{"type":"string","example":"http://payment.acme.com/1234","description":"URL to send the customer to in order to complete the action."}},"description":"Next action required to complete the payment, where applicable."}},"description":"Details of the Deliverect Pay payment linked to the checkout."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************08","description":"Unique identifier of this payment entry."},"type":{"type":"string","example":"third_party","description":"Payment types: `dpay` | `gift_card` | `third_party`","enum":["dpay","third_party","gift_card"]},"externalId":{"type":"string","example":"54********************************6b","description":"Reference for the payment: if Deliverect Pay it would be the `paymentId`, for `gift_card` it'd be the transaction ID."},"isPrepaid":{"type":"boolean","example":true,"description":"Whether the amount has already been collected. `false` means the amount is still due (e.g. cash on delivery)."},"instrumentType":{"type":"string","nullable":true,"example":null,"description":"For `third_party` payments only: the underlying instrument, e.g. `cash`, `card`, `online`.","enum":["cash","card","cash_on_delivery","card_on_delivery","online","invoice","other"]},"amount":{"type":"integer","example":299,"description":"The amount of this payment as an integer with 2 decimal digits, for example, 1 dollar is 100."},"status":{"type":"string","example":"unverified","description":"Verification status of this payment entry."},"metadata":{"type":"object","properties":{},"description":"Additional data for the payment as custom key/value pairs."}}},"description":"Payment entries applied to the checkout, as specified in the checkout request."},"order":{"type":"object","properties":{"channelOrderId":{"type":"string","example":"66********************79","description":"Your channel's unique ID for this order. Deliverect uses it to reference the order in webhooks and reporting, so it must not be reused. If not supplied, it will be auto-generated."},"channelOrderDisplayId":{"type":"string","example":"01277571","description":"The short reference displayed on the POS, kitchen tickets, and receipts. Keep it concise and human-readable. If not supplied, it will be auto-generated."}}}}},{"title":"pending payment","type":"object","properties":{"id":{"type":"string","example":"66********************78","description":"Unique identifier of the checkout.\n\nUse this to retrieve the checkout via [GET Checkout](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-checkout)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the checkout is in a deleted state."},"etag":{"type":"string","example":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","description":"Entity tag identifying the current version of the checkout. It changes whenever the checkout is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"status":{"type":"string","example":"open","description":"Status of the checkout. A successful checkout shows `status` as `open`. Once processed into the POS it updates to `completed`, or to `failed` if an unexpected error occurs.\n\nThe [Checkout Update](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-api-checkout-update) webhook delivers the final checkout status in real time as soon as it is updated."},"basket":{"type":"object","properties":{"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":1500,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","example":100,"default":0,"description":"Tip amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"restaurant","description":"Recipient of the tip:\n\n- `restaurant` - Tip for the restaurant\n- `driver` - Tip for the delivery driver","enum":["restaurant","driver"]}}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":100,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1900,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}},"payment":{"type":"object","properties":{"id":{"type":"string","example":"62********************91","description":"Identifier of the Deliverect Pay payment (`paymentId`)."},"status":{"type":"string","example":"pending","description":"Current status of the Deliverect Pay payment, e.g. `pending`, `authorized` or `failed`."},"action":{"type":"object","properties":{"type":{"type":"string","example":"redirect","description":"Type of action required, e.g. `redirect`."},"url":{"type":"string","example":"http://payment.acme.com/1234","description":"URL to send the customer to in order to complete the action."}},"description":"Next action required to complete the payment, where applicable."}},"description":"Details of the Deliverect Pay payment linked to the checkout."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************08","description":"Unique identifier of this payment entry."},"type":{"type":"string","example":"third_party","description":"Payment types: `dpay` | `gift_card` | `third_party`","enum":["dpay","third_party","gift_card"]},"externalId":{"type":"string","example":"54********************************6b","description":"Reference for the payment: if Deliverect Pay it would be the `paymentId`, for `gift_card` it'd be the transaction ID."},"isPrepaid":{"type":"boolean","example":true,"description":"Whether the amount has already been collected. `false` means the amount is still due (e.g. cash on delivery)."},"instrumentType":{"type":"string","nullable":true,"example":null,"description":"For `third_party` payments only: the underlying instrument, e.g. `cash`, `card`, `online`.","enum":["cash","card","cash_on_delivery","card_on_delivery","online","invoice","other"]},"amount":{"type":"integer","example":299,"description":"The amount of this payment as an integer with 2 decimal digits, for example, 1 dollar is 100."},"status":{"type":"string","example":"unverified","description":"Verification status of this payment entry."},"metadata":{"type":"object","properties":{},"description":"Additional data for the payment as custom key/value pairs."}}},"description":"Payment entries applied to the checkout, as specified in the checkout request."},"order":{}}},{"title":"failed payment","type":"object","properties":{"id":{"type":"string","example":"66********************78","description":"Unique identifier of the checkout.\n\nUse this to retrieve the checkout via [GET Checkout](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-checkout)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the checkout is in a deleted state."},"etag":{"type":"string","example":"f225b232489659ed4dc0f17580f4f0200f4ca3ba","description":"Entity tag identifying the current version of the checkout. It changes whenever the checkout is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"status":{"type":"string","example":"failed","description":"Status of the checkout. A successful checkout shows `status` as `open`. Once processed into the POS it updates to `completed`, or to `failed` if an unexpected error occurs.\n\nThe [Checkout Update](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-api-checkout-update) webhook delivers the final checkout status in real time as soon as it is updated."},"basket":{"type":"object","properties":{"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":1500,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","example":100,"default":0,"description":"Tip amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"restaurant","description":"Recipient of the tip:\n\n- `restaurant` - Tip for the restaurant\n- `driver` - Tip for the delivery driver","enum":["restaurant","driver"]}}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":100,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1900,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}},"payment":{"type":"object","properties":{"id":{"type":"string","example":"62********************91","description":"Identifier of the Deliverect Pay payment (`paymentId`)."},"status":{"type":"string","example":"failed","description":"Current status of the Deliverect Pay payment, e.g. `pending`, `authorized` or `failed`."},"action":{"description":"Next action required to complete the payment, where applicable."}},"description":"Details of the Deliverect Pay payment linked to the checkout."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************08","description":"Unique identifier of this payment entry."},"type":{"type":"string","example":"third_party","description":"Payment types: `dpay` | `gift_card` | `third_party`","enum":["dpay","third_party","gift_card"]},"externalId":{"type":"string","example":"54********************************6b","description":"Reference for the payment: if Deliverect Pay it would be the `paymentId`, for `gift_card` it'd be the transaction ID."},"isPrepaid":{"type":"boolean","example":true,"description":"Whether the amount has already been collected. `false` means the amount is still due (e.g. cash on delivery)."},"instrumentType":{"type":"string","nullable":true,"example":null,"description":"For `third_party` payments only: the underlying instrument, e.g. `cash`, `card`, `online`.","enum":["cash","card","cash_on_delivery","card_on_delivery","online","invoice","other"]},"amount":{"type":"integer","example":299,"description":"The amount of this payment as an integer with 2 decimal digits, for example, 1 dollar is 100."},"status":{"type":"string","example":"unverified","description":"Verification status of this payment entry."},"metadata":{"type":"object","properties":{},"description":"Additional data for the payment as custom key/value pairs."}}},"description":"Payment entries applied to the checkout, as specified in the checkout request."},"order":{}}}]}}}},"400":{"description":"400","content":{"application/json":{"examples":{"bad request":{"value":""}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Checkout not found":{"summary":"Checkout not found","value":{"error":"checkout not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/fulfillment":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Fulfillment Details","operationId":"commerce-channel-api-baskets-update-basket-fulfillment","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Delivery":{"summary":"Delivery","value":{"type":"delivery","time":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","address":{"line":"5030 W Lovers Ln, Dallas, TX 75209, US","coordinates":[32.850713,-96.828014],"note":"first floor, left door, happy dog"}}},"Pickup":{"summary":"Pickup","value":{"type":"pickup","time":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","pickupNotes":"Table number 7"}},"Curbside":{"summary":"Curbside","value":{"type":"curbside","pickupNotes":"Yellow Honda"}},"Eat-in":{"summary":"Eat-in","value":{"type":"eatIn","spot":"table 2"}}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"63********************a7","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"63********************g6","storeId":"63********************b3","channelLinkId":"63********************b3","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"63********************42","plu":"STK-01","name":"Delicious Steak Frites","quantity":2,"price":1500,"gross":3800,"taxes":[],"net":3800,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":400,"subItems":[]}],"discounts":[],"discountTotal":0},{"menuId":"63********************42","plu":"P-BURG-CHK","name":"Chicken Burger","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":5600},"customer":null,"fulfillment":{"type":"eatIn","spot":"TABLE-1"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":3800,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","description":"Taxes applied to the item."},"net":{"type":"integer","example":3800,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":5600,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"eatIn","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"spot":{"type":"string","example":"TABLE-1","description":"Identifier of the dining spot (such as a table number)."}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","description":"Discounts applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"73a156c0d2a9dc4502be08cbe949ac40"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"cff0411a4a5ce137b5a353efd1c83b5b"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"7e4df4393c55c85a308cf7e01dda19b5"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"c2683d2d5304eb93bc65179bc533dc69"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"03fb6339b765521df8df0d1236cb548a"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"fbf74d7665e14e03df25c82dcaa7a7a3"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"0473cfa25c57cde11c86a03355b0e3dd"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/validate":{"post":{"summary":"Validate Basket","parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","required":true,"schema":{"type":"string"}},{"in":"path","name":"basketId","required":true,"schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"9988776655443322110099887766554"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"1122334455667788990011223344556"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"5566778899001122334455667788990"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"4bf92f3577b34da6a3ce929d0e0e4736"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"0f1e2d3c4b5a69788796a5b4c3d2e1f0"}},"Cannot change fulfillment type with items":{"summary":"Cannot change fulfillment type with items","value":{"code":"cannot_change_fulfillment_type_with_items","message":"Basket's fulfillment type can't be changed when it has items.","context":{},"traceId":"e81abac93f7b5e6dabe80c619aadc26b"}},"Delivery address is required":{"summary":"Delivery address is required","value":{"code":"delivery_address_is_required","message":"Delivery address is required.","context":{},"traceId":"d24aae57859d322208f6dc614c8de568"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most {maxAllowed} allowed for the product {plu}","context":{"menuId":"63********************b5","plu":"123","maxAllowed":5,"actualQuantity":7},"traceId":"c2a86a5266a2ad19ba8b2ae905451e12"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product {plu} requires modifiers to be selected","context":{"menuId":"63********************b5","plu":"123"},"traceId":"89a9a660a3a032407d12f0251983e7a4"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least {minRequired} items must be selected for this customization group","context":{"menuId":"63********************b5","customizationPlu":"456","minRequired":1,"actualQuantity":0},"traceId":"3cc0781ec7593d452dd709d1378618ab"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most {maxAllowed} items can be selected for this customization group","context":{"menuId":"63********************b5","customizationPlu":"456","maxAllowed":3,"actualQuantity":4},"traceId":"7f317f937667cf960a0adb278c9da5a2"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most {multiMaxAllowed} of the same item allowed in customization","context":{"menuId":"63********************b5","customizationPlu":"456","multiMaxAllowed":2,"plu":"123"},"traceId":"d2768d1a9b816ecf804b22f8458c6140"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"0011223344556677889900112233445"}},"Basket discount value mismatch":{"summary":"Basket discount value mismatch","value":{"code":"basket_discount_value_mismatch","message":"Basket discount value mismatch found","context":{"mismatches":[{"originalDiscount":{"type":"order_flat_off","referenceId":1,"amount":300,"value":300,"provider":"loyalty","externalId":"abc-123","name":"Order flat off discount: $5"},"currentValue":500}],"reason":null},"traceId":"aa7efd4dcc7447648176e4dfbae290e7"}},"Basket fails eligibility check during calculation":{"summary":"Basket fails eligibility check during calculation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":1,"externalId":"promo-123"}],"reason":null},"traceId":"d23984c121c4229adf4ed3e625b89af6"}},"Loyalty customer not found (program validation)":{"summary":"Loyalty customer not found (program validation)","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":2,"externalId":"prog-456"}],"reason":"Loyalty customer not found"},"traceId":"0a10091a40e95cfd2fb4dc2f16e564ea"}},"Loyalty program validation error from provider":{"summary":"Loyalty program validation error from provider","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":3,"externalId":"prog-789"}],"reason":"Program is expired"},"traceId":"f3c507a6df945b48c497e9db5a80f89a"}},"Generic loyalty error during program validation":{"summary":"Generic loyalty error during program validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":4,"externalId":"prog-321"}],"reason":"Loyalty error during program discounts validation: timeout"},"traceId":"c52c8f8389638b02cc64fd7d5ce999ff"}},"Program discount returned validation errors from provider":{"summary":"Program discount returned validation errors from provider","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":5,"externalId":"prog-654"}],"reason":"Loyalty program discount validation failed."},"traceId":"627d2b5552e3cb932fbbc43d67255b33"}},"More than one wallet cash discount in the order":{"summary":"More than one wallet cash discount in the order","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":6,"externalId":null},{"referenceId":7,"externalId":null}],"reason":"Multiple wallet cash discounts found in order; only one is supported."},"traceId":"9d5b65e5ae813fefc5f12839c7f95d3b"}},"Loyalty customer not found (wallet cash validation)":{"summary":"Loyalty customer not found (wallet cash validation)","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":8,"externalId":null}],"reason":"Loyalty customer not found during loyalty program wallet validation"},"traceId":"13c29dd1eb8eedd654e0346037e9255d"}},"Generic loyalty error during wallet cash validation":{"summary":"Generic loyalty error during wallet cash validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":9,"externalId":null}],"reason":"Loyalty error during wallet cash discount validation: connection refused"},"traceId":"59efb383559d760a85f008ea9aef9f6b"}},"Wallet cash discount rejected by provider validation":{"summary":"Wallet cash discount rejected by provider validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":10,"externalId":null}],"reason":"Loyalty wallet cash discount validation failed."},"traceId":"7d29f7de7b7101d5f7c54c320200f854"}},"Duplicate compensation card externalId in order":{"summary":"Duplicate compensation card externalId in order","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":11,"externalId":"card-111"},{"referenceId":12,"externalId":"card-111"}],"reason":"Duplicate compensation card discounts found in order."},"traceId":"2740820f51c7bcea159b171550340a7c"}},"Loyalty customer not found (compensation card validation)":{"summary":"Loyalty customer not found (compensation card validation)","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":13,"externalId":"card-222"}],"reason":"Loyalty customer not found"},"traceId":"e01926b48a06f77c98a4edafff8ad366"}},"Generic loyalty error during compensation card validation":{"summary":"Generic loyalty error during compensation card validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":14,"externalId":"card-333"}],"reason":"Loyalty error during compensation card discounts validation: service unavailable"},"traceId":"5e91d0c99603cd9de6791b2edd99b1b0"}},"Compensation card rejected or unmatched by provider validation":{"summary":"Compensation card rejected or unmatched by provider validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":15,"externalId":"card-444"}],"reason":"Loyalty compensation card discount validation failed."},"traceId":"938284741d4c23da02c7601b6a9b4198"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"aabbccddeeff00112233445566778899"}},"Discount eligible items missing":{"summary":"Discount eligible items missing","value":{"code":"discount_eligible_items_missing","message":"Discount-eligible items are missing","context":{"itemIds":["1","2"],"type":"item_percent_off","referenceId":1,"externalId":"promo-abc"},"traceId":"6677889900112233445566778899001"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}}}}}}},"tags":["Endpoints"]}},"/commerce/{accountId}/baskets/recreate":{"post":{"responses":{"200":{"description":"","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"65********************e2","channel":20000,"category":{"type":"restaurant"},"currency":"USD","taxExclusive":true,"status":"open","items":[{"id":"65********************27","menuId":"64********************7b","plu":"QS-01","name":"Classic Quesadilla + Drink","note":"as much cheese as possible!","quantity":1,"price":529,"gross":698,"taxes":[{"rate":7000,"name":"GST","amount":49}],"net":747,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":169,"note":"Extra cold please","subItems":[]}],"discounts":[],"discountTotal":0},{"id":"69********************fb","menuId":"69********************69","plu":"645611577","name":"Chocolate Chip Cookie","quantity":2,"price":159,"gross":318,"taxes":[],"net":318,"subItems":[],"discounts":[],"discountTotal":0,"note":"In seperate bag please"}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"chargesTotal":0,"taxTotal":56,"tipTotal":0,"subTotal":1016,"total":1365},"customer":{"name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789"},"fulfillment":{"type":"pickup","time":null},"taxes":[{"name":"SALES_TAX","amount":49}],"discounts":[],"charges":{"serviceCharge":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0,"type":"fixed"},"bagFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"deliveryFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"taxTotal":0,"netTotal":0,"grossTotal":0},"created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"66********************d1","storeId":"67********************a8","channelLinkId":"67********************a8","channelOrderId":null,"channelOrderDisplayId":null}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"65********************e2","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"channel":{"type":"integer","example":20000,"default":0,"description":"Global identifier of the ordering channel/platform."},"category":{"type":"object","properties":{"type":{"type":"string","example":"restaurant","description":"Store category type."}},"description":"Business category of the store."},"currency":{"type":"string","example":"USD","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":true,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"65********************27","description":"Unique identifier of the basket item, auto-generated when the item is added. Used to reference the item in subsequent requests (e.g. `itemIds` in discounts)."},"menuId":{"type":"string","example":"64********************7b","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"QS-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Classic Quesadilla + Drink","description":"Display name of the item."},"note":{"type":"string","example":"as much cheese as possible!","description":"Special instructions for the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":529,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":698,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"integer","example":7000,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`."},"name":{"type":"string","example":"GST","description":"Name of the tax."},"amount":{"type":"integer","example":49,"default":0,"description":"Tax amount applied. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":747,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":169,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"note":{"type":"string","example":"Extra cold please","description":"Special instructions for the modifier."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":56,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subTotal":{"type":"integer","example":1016,"default":0,"description":"The sum of all order items (products + their modifiers/sub-items), before tax, delivery cost, service charge, tip, or discounts are added."},"total":{"type":"integer","example":1365,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"John Doe","description":"Full name of the customer."},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"john.doe@acme.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"tin":{"type":"string","example":"123456789","description":"Tax identification or fiscal equivalent number for the customer."}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"time":{"description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*","format":"date-time"}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"SALES_TAX","description":"Name of the tax."},"amount":{"type":"integer","example":49,"default":0,"description":"Total amount for this tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."},"charges":{"type":"object","properties":{"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"fixed","description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","enum":["fixed","percent"]}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Delivery fee details."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Charges applied to the basket."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"66********************d1"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"67********************a8"},"channelLinkId":{"type":"string","example":"67********************a8","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Store not found":{"summary":"Store not found","value":{"error":"store not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"422":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"product_snoozed"},"message":{"type":"string","example":"Product is currently snoozed"},"context":{"type":"object","properties":{"menuId":{"type":"string","example":"63********************b5"},"plu":{"type":"string","example":"123"}}}}},"examples":{"Unprocessable Entity":{"summary":"Unprocessable Entity","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"63********************b5","plu":"123"},"traceId":"033c72b9312cf5bb8d9816dc8e41cf5f"}},"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"73a156c0d2a9dc4502be08cbe949ac40"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"cff0411a4a5ce137b5a353efd1c83b5b"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"c2683d2d5304eb93bc65179bc533dc69"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"03fb6339b765521df8df0d1236cb548a"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"fbf74d7665e14e03df25c82dcaa7a7a3"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"0473cfa25c57cde11c86a03355b0e3dd"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}},"description":"Unprocessable Entity"}},"parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","schema":{"type":"string"},"required":true}],"operationId":"post_commerce-accountid-baskets-recreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores)."},"orderId":{"type":"string"}},"required":["storeId","orderId"]}}}},"summary":"Recreate Basket","tags":["Endpoints"]}},"/commerce/{accountId}/baskets/{basketId}/customers":{"patch":{"tags":["Endpoints"],"summary":"Update Basket - Group Customers","operationId":"commerce-channel-api-baskets-update-basket-customer-1","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"basketId","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["host","guest"]},"name":{"type":"string"},"companyName":{"type":"string"},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nMust be in E.164 format: `+`, the country code, then the number without its leading `0`, with no spaces or other characters.\n\nEg., \"+12125550123\""},"email":{"type":"string"},"externalId":{"type":"string"},"tin":{"type":"string"},"crmProfileId":{"type":"string"},"id":{"type":"string","description":"Internal customer ID, auto-generated when the customer is first added to the basket. Should be sent back on subsequent requests referencing the customer. "}},"required":["role"]}},"examples":{"Sample Customers":{"value":[{"id":"69********************01","role":"host","name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789"},{"role":"guest","name":"Patrick Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"patrick.doe@acme.com","externalId":"crm-id-1235","tin":"123456790"}],"summary":"Sample Customers"}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":2,"price":1500,"gross":3800,"taxes":[],"net":3800,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":400,"subItems":[]}],"discounts":[],"discountTotal":0,"customerId":"69********************01"},{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0,"customerId":"69********************02"}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":5600},"group":{"customers":[{"id":"69********************01","role":"host","name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789"},{"id":"69********************02","role":"guest","name":"Patrick Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"patrick.doe@acme.com","externalId":"crm-id-1235","tin":"123456790"}]},"customer":null,"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelLinkId":{"type":"string","example":"65********************59","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":3800,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":3800,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"customerId":{"type":"string","example":"69********************01","description":"ID of the group basket customer who added the item. `null` for non-group baskets."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":5600,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"group":{"type":"object","properties":{"customers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"69********************01","description":"Internal customer ID, auto-generated when the customer is added to the basket."},"role":{"type":"string","example":"host","description":"Role in the group:\n\n- `host` - Customer who owns the group basket\n- `guest` - Customer who joined the group basket","enum":["host","guest"]},"name":{"type":"string","example":"John Doe","description":"Customer’s name, which may consist of their first name and surname initial (can also be empty string)"},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"john.doe@acme.com","format":"email","description":"Customer's email address."},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"tin":{"type":"string","example":"123456789","description":"Tax identification or fiscal equivalent number for the customer."}}},"description":"Customers participating in the group basket."}},"description":"Group order details. `null` for non-group baskets."},"customer":{"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Host customer required":{"summary":"Host customer required","value":{"code":"host_customer_required","message":"A Host customer is required for a group basket.","context":{},"traceId":"dd99710e721ad0c4379b8176acf37b56"}},"Duplicate host customer":{"summary":"Duplicate host customer","value":{"code":"duplicate_host_customer","message":"A basket can only have one Host customer.","context":{},"traceId":"08c3d410dd9d1b7c498404f3d1a0e4de"}},"New joiners deadline passed":{"summary":"New joiners deadline passed","value":{"code":"new_joiners_deadline_passed","message":"The deadline for new joiners has passed. You can no longer add new customers to the basket.","context":{"deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},"traceId":"d270ec2adf8e01df4b09a6220903afba"}},"Participants limit exceeded":{"summary":"Participants limit exceeded","value":{"code":"participants_limit_exceeded","message":"Cannot add participant. Adding this participant would exceed the maximum of 10 participants.","context":{"max":10,"currentCount":10},"traceId":"5d581255e3f39a39be31406213e3c2c6"}}}}}}}}},"/commerce/{accountId}/baskets/{basketId}/group/policies":{"patch":{"responses":{"200":{"description":"","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":2,"price":1500,"gross":3800,"taxes":[],"net":3800,"subItems":[{"customizationPlu":"MOD-01","plu":"DRNK-01","name":"Coca Cola","quantity":1,"price":400,"subItems":[]}],"discounts":[],"discountTotal":0,"customerId":"69********************01"},{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0,"customerId":"69********************02"}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":0,"total":5600},"group":{"customers":[{"id":"69********************01","role":"host","name":"John Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"john.doe@acme.com","externalId":"crm-id-1234","tin":"123456789"},{"id":"69********************02","role":"guest","name":"Patrick Doe","companyName":"ACME","phoneNumber":"+12125550123","email":"patrick.doe@acme.com","externalId":"crm-id-1235","tin":"123456790"}],"policies":[{"type":"newJoinersDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},{"type":"groupItemsModificationDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},{"type":"customerItemsModificationDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","customerId":"69********************02"}]},"customer":null,"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelLinkId":{"type":"string","example":"65********************59","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":3800,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":3800,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"MOD-01","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"DRNK-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Coca Cola","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":400,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"customerId":{"type":"string","example":"69********************01","description":"ID of the group basket customer who added the item. `null` for non-group baskets."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":5600,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"group":{"type":"object","properties":{"customers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"69********************01","description":"Internal customer ID, auto-generated when the customer is added to the basket."},"role":{"type":"string","example":"host","description":"Role in the group:\n\n- `host` - Customer who owns the group basket\n- `guest` - Customer who joined the group basket","enum":["host","guest"]},"name":{"type":"string","example":"John Doe","description":"Customer’s name, which may consist of their first name and surname initial (can also be empty string)"},"companyName":{"type":"string","example":"ACME","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"john.doe@acme.com","format":"email","description":"Customer's email address."},"externalId":{"type":"string","example":"crm-id-1234","description":"External reference ID for the customer in a third-party system."},"tin":{"type":"string","example":"123456789","description":"Tax identification or fiscal equivalent number for the customer."}}},"description":"Customers participating in the group basket."},"policies":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"newJoinersDeadline","description":"Policy type:\n\n- `newJoinersDeadline` - Last time new customers can join\n- `groupItemsModificationDeadline` - Last time any items can be changed\n- `customerItemsModificationDeadline` - Last time a specific customer can change their items","enum":["newJoinersDeadline","groupItemsModificationDeadline","customerItemsModificationDeadline"]},"deadline":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Deadline timestamp in UTC.","format":"date-time"}}},"description":"Deadlines applied to the group basket."}},"description":"Group order details. `null` for non-group baskets."},"customer":{"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Duplicate policy type":{"summary":"Duplicate policy type","value":{"code":"duplicate_policy_type","message":"Duplicate policy types found","context":{"duplicate_policies":["groupSpendingLimit","customerSpendingLimit:cust-002"]},"traceId":"04e8c4fde9ad1dd765a1cb0c40ccc95a"}},"Policy deadline must be in the future":{"summary":"Policy deadline must be in the future","value":{"code":"policy_deadline_must_be_in_future","message":"Deadline for newJoinersDeadline must be in the future.","context":{"policyType":"newJoinersDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},"traceId":"47f3225f5a4a6638fa9c25e91c50a664"}},"Spending limit below current total":{"summary":"Spending limit below current total","value":{"code":"spending_limit_below_current_total","message":"Spending limit of 5000 is below the basket's current total of 6200.","context":{"limit":5000,"currentTotal":6200},"traceId":"3d3acf8161249bde23f9bc41e2052bac"}},"Customer limit below current spend":{"summary":"Customer limit below current spend","value":{"code":"customer_limit_below_current_spend","message":"Limit of 1000 for customer cust-002 is below their current spend of 1450.","context":{"customerId":"cust-002","limit":1000,"currentSpend":1450},"traceId":"0c6197d623cf6e5a2ca10b8085ee5de5"}},"Participants limit below current count":{"summary":"Participants limit below current count","value":{"code":"participants_limit_below_current_count","message":"Max participants limit of 5 is below the current participant count of 7.","context":{"max":5,"currentCount":7},"traceId":"e555558c21835357c653871f043568c1"}}}}}}},"parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","schema":{"type":"string"},"required":true},{"in":"path","name":"basketId","schema":{"type":"string"},"required":true}],"operationId":"patch_commerce-accountid-baskets-basketid-group-policies","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["newJoinersDeadline","groupItemsModificationDeadline","customerItemsModificationDeadline"]},"deadline":{"type":"string","format":"date-time"},"customerId":{"type":"string"}},"required":["type","deadline"]}},"examples":{"Policies":{"summary":"Policies","value":[{"type":"newJoinersDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},{"type":"groupItemsModificationDeadline","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},{"type":"customerItemsModificationDeadline","customerId":"69********************02","deadline":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}]}}}}},"summary":"Update Basket - Group Order Policies","tags":["Endpoints"]}},"/commerce/{accountId}/stores/{channelLinkId}":{"get":{"tags":["Endpoints"],"summary":"Get Store","operationId":"commerce-channel-api-stores-get-store","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"in":"path","name":"channelLinkId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"id":"65********************59","channelLinkId":"65********************59","channelLocationId":"","channel":10000,"name":"Store Name","currency":"USD","address":{"source":"350 5th Ave, New York, NY 10118","coordinates":[-73.985428,40.748817],"country":"US","city":"New York","stateOrProvince":"NY","postalCode":"10118"},"openingHours":{"timezone":"America/New_York","dayTimeRanges":[{"dayOfWeek":1,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":2,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":3,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":4,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":5,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":6,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":7,"startTime":"00:00:00","endTime":"23:59:00"}],"specialHours":[{"name":"4th July","start":"2026-07-04","end":"2026-07-04","days":[{"date":"2026-07-04","holiday":false,"openingHours":[{"begin":"09:00:00","end":"12:00:00"}]}]},{"name":"Xmas Eve","start":"2026-12-24","end":"2026-12-24","days":[{"date":"2026-12-24","holiday":false,"openingHours":[{"begin":"09:00:00","end":"22:00:00"}]}]}],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"taxExclusive":false,"status":"open","preparationTimeDelay":0,"contact":{"firstName":"John","lastName":"Doe","phoneNumber":"+12125550123","email":"john.doe@acme.com"},"settings":{"pickup":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"delivery":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":350,"taxRate":0,"type":"fixed"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30},"averageDeliveryTime":900,"averageDeliveryTimeMinutes":15,"deliveryFee":{"value":0,"taxRate":0}},"eatIn":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":50,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"curbside":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"driveThru":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}}},"fulfillmentTypes":["pickup","delivery","eatIn","curbside"]}}},"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the Deliverect store, referred to as `channelLinkId` in basket and checkout processing","example":"65********************59"},"channelLinkId":{"type":"string","description":"Identifier linking the store to a sales channel (same value as `id`)","example":"65********************59"},"channelLocationId":{"type":"string","description":"A location identifier known to the channel platform (set within channel settings)","example":"STORE0005"},"channel":{"type":"integer","description":"Global identifier of the ordering channel/platform","example":19066},"name":{"type":"string","description":"Assigned name for the specific store in Deliverect (not necessarily a customer facing store name)","example":"Store Name"},"currency":{"type":"string","description":"Default currency used at this store for transactions. See list of currencies <a href=\"https://developers.deliverect.com/page/list-of-currencies\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","example":"USD"},"address":{"type":"object","description":"Store's address details, including source, coordinates, and location info (country, city, state)","properties":{"source":{"type":"string","description":"Full address as a single string","example":"1 Main street D13 R2P6 Ghent VOV"},"coordinates":{"type":"array","description":"Longitude and Latitude of the store. Example: [25.276987, 55.296249]","items":{"type":"number","example":3.73398891371018}},"country":{"type":"string","description":"Country where the store is located","example":"BE"},"city":{"type":"string","description":"City of the store","example":"Ghent"},"stateOrProvince":{"type":"string","description":"State or province of the store","example":"VOV"},"postalCode":{"type":"string","description":"Postal / ZIP code","example":"9000"}}},"openingHours":{"type":"object","description":"Store's standard operating hours by day of week, including timezone. See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"specialHours":{"type":"array","description":"Exceptions to regular hours (holidays, special events)","items":{"type":"object","properties":{"name":{"type":"string","description":"Label for the special-hours period","example":"4th July"},"start":{"type":"string","description":"First date of the special-hours period (`YYYY-MM-DD`)","example":"2026-07-04"},"end":{"type":"string","description":"Last date of the special-hours period (`YYYY-MM-DD`)","example":"2026-07-04"},"days":{"type":"array","description":"Per-date detail within the special period","items":{"type":"object","properties":{"date":{"type":"string","description":"The specific date the exception applies to","example":"2026-07-04"},"holiday":{"type":"boolean","description":"Whether the store is fully closed (holiday) on this date","example":false},"openingHours":{"type":"array","description":"Time ranges the store is open on this date","items":{"type":"object","properties":{"begin":{"type":"string","description":"Local opening time on the special date","example":"09:00:00"},"end":{"type":"string","description":"Local closing time on the special date","example":"12:00:00"}}}}}}}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"taxExclusive":{"type":"boolean","description":"Indicates whether store prices are tax-exclusive (true) or tax-inclusive (false)","example":true},"status":{"type":"string","description":"Current operating status of the store. See more info on statuses <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-status\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","enum":["open","busy","paused","closed"],"example":"open"},"preparationTimeDelay":{"type":"integer","description":"Additional delay (in minutes) added to preparation time before an order is ready","example":0},"contact":{"type":"object","description":"Contact details of the person who is managing the store","properties":{"firstName":{"type":"string","description":"First name of contact person","example":"John"},"lastName":{"type":"string","description":"Last name of contact person","example":"Doe"},"phoneNumber":{"type":"string","description":"Contact phone number","example":"+12125550123"},"email":{"type":"string","description":"Contact email address","example":"john.doe@acme.com"}}},"settings":{"type":"object","description":"Configuration of each fulfillment type's fees, timing, and scheduling rules","properties":{"pickup":{"type":"object","description":"Settings for the `pickup` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"delivery":{"type":"object","description":"Settings for the `delivery` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}},"averageDeliveryTime":{"type":"integer","description":"Average delivery time in seconds","example":900},"averageDeliveryTimeMinutes":{"type":"integer","description":"Average delivery time in minutes (same value as above)","example":15},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Delivery fee details (value, taxRate)"}}},"eatIn":{"type":"object","description":"Settings for the `eatIn` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"curbside":{"type":"object","description":"Settings for the `curbside` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"driveThru":{"type":"object","description":"Settings for the `driveThru` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}}},"fulfillmentTypes":{"type":"array","description":"Fulfillment types enabled for this store","items":{"type":"string","enum":["pickup","delivery","eatIn","curbside","driveThru"],"example":"pickup"}}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Store not found":{"summary":"Store not found","value":{"error":"store not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}}},"deprecated":false}},"/commerce/{accountId}/stores/{channelLinkId}/menus":{"get":{"tags":["Endpoints"],"summary":"Get Store Menu(s)","operationId":"commerce-channel-api-stores-get-store-menus","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"in":"query","name":"fulfillmentType","schema":{"type":"string","enum":["delivery","pickup","curbside","eatIn"],"default":"pickup"},"description":"Fulfillment type to return the menu for."},{"in":"query","name":"availableAt","schema":{"type":"string","example":"7pm"},"description":"Time of day to return the menu availability for, in 12-hour clock format, e.g. `7pm`."},{"in":"path","name":"channelLinkId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"200","headers":{"Cache-Control":{"description":"Caching directives for the response. Menu responses are publicly cacheable for 60 seconds, after which a stale copy may be served while it is revalidated in the background.","schema":{"type":"string"},"example":"public, max-age=60, stale-while-revalidate=60"},"ETag":{"description":"Weak entity tag identifying the current version of the menu representation. Compare values between requests to detect menu changes.","schema":{"type":"string"},"example":"W/\"11d4092acb65cbdb1ab417509b7cf51ae\""}},"content":{"application/json":{"examples":{"Result":{"value":[{"menu":"Main menu","menuId":"62********************91","menuType":1,"nestedModifiers":true,"channelLinkId":"65********************59","description":"A seasonal selection of our products.","menuImageURL":"https://storage.googleapis.com/ikona-bucket-production/images/5be9fe94c6489f0001b2fe57/174466-666abfd750c486d4c3a2d5a9.jpg","currency":1,"menuTranslations":[{"languageCode":"ar","translatedValue":"القائمة الرئيسية"},{"languageCode":"es","translatedValue":"Menú principal"},{"languageCode":"fr","translatedValue":"Menu principal"},{"languageCode":"nl","translatedValue":"Hoofdmenu"}],"productTags":[104,108,103],"descriptionTranslations":[{"languageCode":"ar","translatedValue":"تشكيلة موسمية من منتجاتنا."},{"languageCode":"es","translatedValue":"Una selección de temporada de nuestros productos."},{"languageCode":"fr","translatedValue":"Une sélection de saison de nos produits."},{"languageCode":"nl","translatedValue":"Een seizoensgebonden selectie van onze producten."}],"availabilities":[{"dayOfWeek":1,"startTime":"13: 00","endTime":"22: 00"},{"dayOfWeek":2,"startTime":"06: 00","endTime":"22: 00"},{"dayOfWeek":3,"startTime":"06: 00","endTime":"22: 00"},{"dayOfWeek":4,"startTime":"06: 00","endTime":"22: 00"},{"dayOfWeek":5,"startTime":"15: 00","endTime":"18: 00"},{"dayOfWeek":6,"startTime":"06: 00","endTime":"22: 00"},{"dayOfWeek":7,"startTime":"06: 00","endTime":"22: 00"}],"plannedAvailabilities":[],"categories":[{"id":null,"name":"Steak & Burgers","description":"Something from the Grill","imageUrl":"https: //resizer.staging.deliverect.com/uia9zWj73e5qP3yQGd4sQrYWcjmQyo-XRJMg3LaMobg/rt:fill/g:ce/el:0/aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2lrb25hLWJ1Y2tldC1zdGFnaW5nL2ltYWdlcy81ZmY2ZWUwODkzMjhjOGFlZmVlYWJlMzMvZ3JpbGwtNjIyYTJjNDhjNzE1YjQwM2IwZWI3MmJlLmpwZWc=.jpg","menu":"62********************91","account":"62********************ea","nameTranslations":[{"languageCode":"ar","translatedValue":"ستيك وبرغر"},{"languageCode":"es","translatedValue":"Filetes y hamburguesas"},{"languageCode":"fr","translatedValue":"Steaks et burgers"},{"languageCode":"nl","translatedValue":"Steaks en burgers"}],"descriptionTranslations":[{"languageCode":"ar","translatedValue":"أطباق من الشواية"},{"languageCode":"es","translatedValue":"Algo de la parrilla"},{"languageCode":"fr","translatedValue":"Quelque chose du grill"},{"languageCode":"nl","translatedValue":"Iets van de grill"}],"availabilities":[{"dayOfWeek":5,"startTime":"17:00:00","endTime":"22:00:00"},{"dayOfWeek":6,"startTime":"17:00:00","endTime":"22:00:00"},{"dayOfWeek":7,"startTime":"17:00:00","endTime":"22:00:00"}],"subProducts":["62********************63","62********************4c","62********************4f","62********************4e","62********************50"]}],"products":{"62********************63":{"id":"62********************63","plu":"STK-01","name":"Delicious Steak Frites","price":1500,"productType":1,"snoozed":false,"deliveryTax":10000,"takeawayTax":7300,"eatInTax":0,"bottleDepositPrice":null,"description":"Basic Example Product with - Modifier groups - min/max variables - default selection - translations","multiMax":null,"defaultQuantity":null,"isVariant":null,"isUpsell":null,"account":"62********************ea","referenceId":"STK-01","location":"62********************74","calories":null,"caloriesRangeHigh":null,"caloriesFromFat":null,"posProductCategoryId":"","posProductId":"POS-ID-001","imageUrl":null,"nameTranslations":{"ar":"ستيك لذيذ مع بطاطس مقلية","es":"Delicioso bistec con patatas fritas","fr":"Délicieux steak-frites","nl":"Heerlijke biefstuk met friet"},"descriptionTranslations":{"ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات","es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - Groupes de modificateurs - variables min./max. - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"productTags":[],"subProducts":["62********************64"],"beverageInfo":null,"nutritionalInfo":{"fat":32.5,"sugar":2.1,"saturatedFat":12.8,"carbohydrates":48,"protein":41.2,"salt":2.4,"dietaryFiber":4.3,"servingSize":{"amount":450,"unitType":1,"countUnitDescription":"gram"},"netQuantity":{"amount":450,"unitType":1,"countUnitDescription":"gram"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Keep refrigerated. Consume within 24 hours."},"supplementalInfo":null,"posCategoryIds":["STK"],"displayLabels":["new"],"metadata":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"},{"key":"font-size","value":"16px"}],"preparationTime":null}},"modifiers":{"62********************53":{"id":"62********************53","plu":"DRNK-01","name":"Coca Cola","price":400,"productType":2,"snoozed":true,"deliveryTax":9000,"takeawayTax":9000,"eatInTax":9000,"bottleDepositPrice":20,"description":"Cola flavoured sugar and caffeine","defaultQuantity":null,"account":"62********************ea","referenceId":null,"location":"62********************74","calories":500,"caloriesRangeHigh":750,"caloriesFromFat":null,"posProductCategoryId":"","posProductId":"POS-ID-029","imageUrl":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg","nameTranslations":{"ar":"كوكا كولا","es":"Coca-Cola","fr":"Coca-Cola","nl":"Coca-Cola"},"descriptionTranslations":{"ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين","es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Boisson au goût de cola, avec sucre et caféine","nl":"Drank met colasmaak, met suiker en cafeïne"},"productTags":[10,14],"subProducts":[],"beverageInfo":{"caffeine":10,"alcohol":0},"nutritionalInfo":{"fat":0,"sugar":10.6,"saturatedFat":0,"carbohydrates":10.6,"protein":0,"salt":0,"dietaryFiber":null,"servingSize":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"},"netQuantity":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Store in a cool, dry place."},"supplementalInfo":{"legalName":"Coca-Cola Original Taste","prepackaged":true,"deposit":0,"instructionsForUse":"Best served chilled.","ingredients":["Water","Sugar","Carbon dioxide","Caramel colour","Phosphoric acid","Natural flavourings","Caffeine"],"additives":["COLORANT_UNSPECIFIED","ACIDIFIERS","CAFFEINE_CAFFEINE","PHOSPHATE"],"fbo":{"name":"Coca-Cola Europacific Partners","address":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom","brand":"Coca-Cola","countryOfOrigin":"GB"}},"posCategoryIds":["DRK"],"displayLabels":["featured"],"metadata":[{"key":"show-disclaimer","value":"true"}]}},"modifierGroups":{"62********************64":{"id":"62********************64","plu":"MOD-01","name":"Cooking instructions","productType":3,"max":1,"min":1,"multiply":1,"snoozed":false,"description":"","multiMax":null,"isVariantGroup":null,"account":"62********************ea","location":"62********************74","posProductCategoryId":"","posProductId":"POS-ID-002","imageUrl":null,"maxFree":null,"nameTranslations":{"ar":"تعليمات الطهي","es":"Punto de cocción","fr":"Cuisson","nl":"Kookinstructies"},"descriptionTranslations":{},"subProducts":["62********************53"],"posCategoryIds":[]},"62********************4d":{"id":"62********************4d","plu":"BNDL-BRG","name":"Burger Selection","productType":3,"max":1,"min":1,"multiply":1,"snoozed":false,"description":"","multiMax":null,"isVariantGroup":null,"account":"62********************ea","location":"62********************74","posProductCategoryId":"","posProductId":"POS-ID-020","imageUrl":null,"maxFree":null,"nameTranslations":{"ar":"تشكيلة البرغر","es":"Selección de hamburguesas","fr":"Sélection de burgers","nl":"Burgerselectie"},"descriptionTranslations":{},"subProducts":["65********************e6","65********************e7","65********************e8"],"posCategoryIds":[]}},"bundles":{},"snoozedProducts":{"62********************53":{"plu":"DRNK-01","snoozeEnd":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","snoozeStart":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}}},{"menu":"Main menu","menuId":"62********************92","menuType":2,"nestedModifiers":true,"channelLinkId":"65********************59","description":"A seasonal selection of our products.","menuImageURL":"https://storage.googleapis.com/ikona-bucket-production/images/5be9fe94c6489f0001b2fe57/174466-666abfd750c486d4c3a2d5a9.jpg","currency":1,"menuTranslations":[{"languageCode":"ar","translatedValue":"القائمة الرئيسية"},{"languageCode":"es","translatedValue":"Menú principal"},{"languageCode":"fr","translatedValue":"Menu principal"},{"languageCode":"nl","translatedValue":"Hoofdmenu"}],"productTags":[104,108,103],"descriptionTranslations":[{"languageCode":"ar","translatedValue":"تشكيلة موسمية من منتجاتنا."},{"languageCode":"es","translatedValue":"Una selección de temporada de nuestros productos."},{"languageCode":"fr","translatedValue":"Une sélection de saison de nos produits."},{"languageCode":"nl","translatedValue":"Een seizoensgebonden selectie van onze producten."}],"availabilities":[{"dayOfWeek":1,"startTime":"13: 00","endTime":"21: 00"},{"dayOfWeek":2,"startTime":"06: 00","endTime":"21: 00"},{"dayOfWeek":3,"startTime":"06: 00","endTime":"21: 00"},{"dayOfWeek":4,"startTime":"06: 00","endTime":"21: 00"},{"dayOfWeek":5,"startTime":"15: 00","endTime":"17: 00"},{"dayOfWeek":6,"startTime":"06: 00","endTime":"21: 00"},{"dayOfWeek":7,"startTime":"06: 00","endTime":"21: 00"}],"plannedAvailabilities":[],"categories":[{"id":null,"name":"Steak & Burgers","description":"Something from the Grill","imageUrl":"https: //resizer.staging.deliverect.com/uia9zWj73e5qP3yQGd4sQrYWcjmQyo-XRJMg3LaMobg/rt:fill/g:ce/el:0/aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2lrb25hLWJ1Y2tldC1zdGFnaW5nL2ltYWdlcy81ZmY2ZWUwODkzMjhjOGFlZmVlYWJlMzMvZ3JpbGwtNjIyYTJjNDhjNzE1YjQwM2IwZWI3MmJlLmpwZWc=.jpg","menu":"62********************92","account":"62********************ea","nameTranslations":[{"languageCode":"ar","translatedValue":"ستيك وبرغر"},{"languageCode":"es","translatedValue":"Filetes y hamburguesas"},{"languageCode":"fr","translatedValue":"Steaks et burgers"},{"languageCode":"nl","translatedValue":"Steaks en burgers"}],"descriptionTranslations":[{"languageCode":"ar","translatedValue":"أطباق من الشواية"},{"languageCode":"es","translatedValue":"Algo de la parrilla"},{"languageCode":"fr","translatedValue":"Quelque chose du grill"},{"languageCode":"nl","translatedValue":"Iets van de grill"}],"availabilities":[{"dayOfWeek":5,"startTime":"17:00:00","endTime":"21:00:00"},{"dayOfWeek":6,"startTime":"17:00:00","endTime":"21:00:00"},{"dayOfWeek":7,"startTime":"17:00:00","endTime":"21:00:00"}],"subProducts":["62********************63","62********************4c","62********************4f","62********************4e","62********************50"]}],"products":{"62********************63":{"id":"62********************63","plu":"STK-01","name":"Delicious Steak Frites","price":1500,"productType":1,"snoozed":false,"deliveryTax":10000,"takeawayTax":7300,"eatInTax":0,"bottleDepositPrice":null,"description":"Basic Example Product with - Modifier groups - min/max variables - default selection - translations","multiMax":null,"defaultQuantity":null,"isVariant":null,"isUpsell":null,"account":"62********************ea","referenceId":"STK-01","location":"62********************74","calories":null,"caloriesRangeHigh":null,"caloriesFromFat":null,"posProductCategoryId":"","posProductId":"POS-ID-001","imageUrl":null,"nameTranslations":{"ar":"ستيك لذيذ مع بطاطس مقلية","es":"Delicioso bistec con patatas fritas","fr":"Délicieux steak-frites","nl":"Heerlijke biefstuk met friet"},"descriptionTranslations":{"ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات","es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - Groupes de modificateurs - variables min./max. - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"productTags":[],"subProducts":["62********************64"],"beverageInfo":null,"nutritionalInfo":{"fat":32.5,"sugar":2.1,"saturatedFat":12.8,"carbohydrates":48,"protein":41.2,"salt":2.4,"dietaryFiber":4.3,"servingSize":{"amount":450,"unitType":1,"countUnitDescription":"gram"},"netQuantity":{"amount":450,"unitType":1,"countUnitDescription":"gram"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Keep refrigerated. Consume within 24 hours."},"supplementalInfo":null,"posCategoryIds":["STK"],"displayLabels":["new"],"metadata":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"},{"key":"font-size","value":"16px"}],"preparationTime":null}},"modifiers":{"62********************53":{"id":"62********************53","plu":"DRNK-01","name":"Coca Cola","price":400,"productType":2,"snoozed":true,"deliveryTax":9000,"takeawayTax":9000,"eatInTax":9000,"bottleDepositPrice":20,"description":"Cola flavoured sugar and caffeine","defaultQuantity":null,"account":"62********************ea","referenceId":null,"location":"62********************74","calories":500,"caloriesRangeHigh":750,"caloriesFromFat":null,"posProductCategoryId":"","posProductId":"POS-ID-029","imageUrl":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg","nameTranslations":{"ar":"كوكا كولا","es":"Coca-Cola","fr":"Coca-Cola","nl":"Coca-Cola"},"descriptionTranslations":{"ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين","es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Boisson au goût de cola, avec sucre et caféine","nl":"Drank met colasmaak, met suiker en cafeïne"},"productTags":[10,14],"subProducts":[],"beverageInfo":{"caffeine":10,"alcohol":0},"nutritionalInfo":{"fat":0,"sugar":10.6,"saturatedFat":0,"carbohydrates":10.6,"protein":0,"salt":0,"dietaryFiber":null,"servingSize":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"},"netQuantity":{"amount":330,"unitType":1,"countUnitDescription":"millilitre"}},"packaging":{"count":1,"reusable":false,"storageInstructions":"Store in a cool, dry place."},"supplementalInfo":{"legalName":"Coca-Cola Original Taste","prepackaged":true,"deposit":0,"instructionsForUse":"Best served chilled.","ingredients":["Water","Sugar","Carbon dioxide","Caramel colour","Phosphoric acid","Natural flavourings","Caffeine"],"additives":["COLORANT_UNSPECIFIED","ACIDIFIERS","CAFFEINE_CAFFEINE","PHOSPHATE"],"fbo":{"name":"Coca-Cola Europacific Partners","address":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom","brand":"Coca-Cola","countryOfOrigin":"GB"}},"posCategoryIds":["DRK"],"displayLabels":["featured"],"metadata":[{"key":"show-disclaimer","value":"true"}]}},"modifierGroups":{"62********************64":{"id":"62********************64","plu":"MOD-01","name":"Cooking instructions","productType":3,"max":1,"min":1,"multiply":1,"snoozed":false,"description":"","multiMax":null,"isVariantGroup":null,"account":"62********************ea","location":"62********************74","posProductCategoryId":"","posProductId":"POS-ID-002","imageUrl":null,"maxFree":null,"nameTranslations":{"ar":"تعليمات الطهي","es":"Punto de cocción","fr":"Cuisson","nl":"Kookinstructies"},"descriptionTranslations":{},"subProducts":["62********************53"],"posCategoryIds":[]},"62********************4d":{"id":"62********************4d","plu":"BNDL-BRG","name":"Burger Selection","productType":3,"max":1,"min":1,"multiply":1,"snoozed":false,"description":"","multiMax":null,"isVariantGroup":null,"account":"62********************ea","location":"62********************74","posProductCategoryId":"","posProductId":"POS-ID-020","imageUrl":null,"maxFree":null,"nameTranslations":{"ar":"تشكيلة البرغر","es":"Selección de hamburguesas","fr":"Sélection de burgers","nl":"Burgerselectie"},"descriptionTranslations":{},"subProducts":["65********************e6","65********************e7","65********************e8"],"posCategoryIds":[]}},"bundles":{},"snoozedProducts":{"62********************53":{"plu":"DRNK-01","snoozeEnd":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","snoozeStart":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}}}]}},"schema":{"type":"array","description":"<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Menu Data</strong><br>\n    Please note that all the fields marked with\n    <i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\"></i>\n    will always be present in the order payload and contain data.\n  </p>\n</div>\n\n<div class=\"callout-banner callout-banner--important\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-triangle-exclamation\"></i></span>\n  <p><strong>Legacy Attributes</strong><br>\nCertain attributes appear in the order payload but should not be referenced as part of an integration and are marked as\n<span class=\"legacy-label\">Legacy</span>\n  </p>\n</div>","items":{"type":"object","properties":{"menu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> The name of the menu","example":"Spring menu"},"menuTranslations":{"type":"object","description":"Translations of the **Menu Title**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Menu Title in Spanish (`es`)","example":"Menú principal"},"fr":{"type":"string","description":"Menu Title in French (`fr`)","example":"Exemple de Menu"},"nl":{"type":"string","description":"Menu Title in Dutch (`nl`)","example":"Hoofdmenu"},"ar":{"type":"string","description":"Menu Title in Arabic (`ar`)","example":"القائمة الرئيسية"}},"example":{"es":"Menú principal","fr":"Exemple de Menu","nl":"Hoofdmenu","ar":"القائمة الرئيسية"}},"description":{"type":"string","description":"description of the menu","example":"Our menu of various product for a beautiful spring, enjoy! "},"descriptionTranslations":{"type":"object","description":"Translations of the **Menu Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Menu Description in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Menu Description in French (`fr`)","example":"Steak Frites Délicieux"},"nl":{"type":"string","description":"Menu Description in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Menu Description in Arabic (`ar`)","example":"شريحة لحم فريتس"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Délicieux","nl":"Heerlijke Biefstuk Frites","ar":"شريحة لحم فريتس"}},"menuImageURL":{"type":["string","null"],"description":"Header/Banner image url of the menu (more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))"},"menuId":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> internal Deliverect menu id","example":"62********************91"},"menuType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Five different types of menus, with each representing the intended ordering type for which the menu is suitable:\n\n- DELIVERY_AND_PICKUP = `0`\n- DELIVERY = `1`\n- PICKUP = `2`\n- EAT_IN = `3`\n- CURBSIDE = `4`","enum":[0,1,2,3,4],"x-enum-varnames":["DELIVERY_AND_PICKUP","DELIVERY","PICKUP","EAT_IN","CURBSIDE"],"x-enumNames":["DELIVERY_AND_PICKUP","DELIVERY","PICKUP","EAT_IN","CURBSIDE"],"x-enum-descriptions":{"0":"DELIVERY_AND_PICKUP","1":"DELIVERY","2":"PICKUP","3":"EAT_IN","4":"CURBSIDE"},"example":0},"channelLinkId":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> the <Glossary>channelLinkId</Glossary> is the unique identifier of the store this menu is published to","example":"65********************59"},"nestedModifiers":{"type":"boolean","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Indicates if nested modifiers are present in the menu (see section [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-modifer-groups#nested-modifiers) for further reference)","example":true},"currency":{"type":"integer","description":"[currency](https://developers.deliverect.com/page/list-of-currencies) of the menu","example":1},"productTags":{"type":"array","description":"Array of all tags that exist in the menu (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"integer"}},"availabilities":{"type":"array","description":"The times during which the menu should be available. This will in most cases equate to the store's opening hours.","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"An integer value that indicates the day of the week for this availability (starting at `1` for Monday).","example":1},"startTime":{"type":"string","description":"A 24-hour `HH:MM` format notation of the start time of availability expressed in the local time of the location.","example":"13: 00"},"endTime":{"type":"string","description":"A 24-hour `HH:MM` format notation of the end time of availability expressed in the local time of the location.","example":"22: 00"}}}},"plannedAvailabilities":{"type":"array","description":"planned (future) availabilities of the menu","items":{"type":"object"}},"categories":{"type":"array","description":"The categories within a menu","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"internal Deliverect id of the category"},"name":{"type":"string","description":"category name","example":"Steak & Burgers"},"nameTranslations":{"type":"object","description":"Translations of the **Category Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Category Name in Spanish (`es`)","example":"Filetes y hamburguesas"},"fr":{"type":"string","description":"Category Name in French (`fr`)","example":"Steaks et burgers"},"nl":{"type":"string","description":"Category Name in Dutch (`nl`)","example":"Steaks en burgers"},"ar":{"type":"string","description":"Category Name in Arabic (`ar`)","example":"ستيك وبرغر"}},"example":{"es":"Filetes y hamburguesas","fr":"Steaks et burgers","nl":"Steaks en burgers","ar":"ستيك وبرغر"}},"description":{"type":"string","description":"description of the category","example":"Something from the Grill"},"descriptionTranslations":{"type":"object","description":"Translations of the **Category Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Category Description in Spanish (`es`)","example":"Algo de la parrilla"},"fr":{"type":"string","description":"Category Description in French (`fr`)","example":"Quelque chose du grill"},"nl":{"type":"string","description":"Category Description in Dutch (`nl`)","example":"Iets van de grill"},"ar":{"type":"string","description":"Category Description in Arabic (`ar`)","example":"أطباق من الشواية"}},"example":{"es":"Algo de la parrilla","fr":"Quelque chose du grill","nl":"Iets van de grill","ar":"أطباق من الشواية"}},"imageUrl":{"type":["string","null"],"description":"image url of the category (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))","example":"https: //resizer.staging.deliverect.com/uia9zWj73e5qP3yQGd4sQrYWcjmQyo-XRJMg3LaMobg/rt:fill/g:ce/el:0/aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2lrb25hLWJ1Y2tldC1zdGFnaW5nL2ltYWdlcy81ZmY2ZWUwODkzMjhjOGFlZmVlYWJlMzMvZ3JpbGwtNjIyYTJjNDhjNzE1YjQwM2IwZWI3MmJlLmpwZWc=.jpg"},"availabilities":{"type":"array","description":"category availabilities","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"An integer value that indicates the day of the week for this availability (starting at `1` for Monday).","example":5},"startTime":{"type":"string","description":"A 24-hour `HH:MM` format notation of the start time of availability expressed in the local time of the location.","example":"17:00:00"},"endTime":{"type":"string","description":"A 24-hour `HH:MM` format notation of the end time of availability expressed in the local time of the location.","example":"22:00:00"}}}},"subProducts":{"type":"array","description":"products that exist under each category, see [guide here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-sort-categories-items) for more context on correct sorting","items":{"type":"string"}},"menu":{"type":"string","description":"the unique ID of the menu this category belongs to","example":"62********************91"},"account":{"type":"string","description":"the unique ID of the account this category belongs to","example":"62********************ea"}}}},"products":{"type":"object","description":"Products in the menu.\n\nObject keyed by ID; `{productId}` represents each key.","properties":{"{productId}":{"type":"object","description":"Identifier of a particular product and its location in the menu structure, matching the product's `id`. This is not a universal identifier for the product and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular product and its location in the menu structure. This is not a universal identifier for the product and is not fixed.","example":"62********************63"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the product, to be used when creating orders","example":"STK-01"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Product name","example":"Delicious Steak Frites"},"price":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Price of the product with 2 decimal digits. e.g. 1 euro is stored as 100.","example":1500},"bottleDepositPrice":{"type":["integer","null"],"deprecated":true,"description":"<span class=\"legacy-label\">Legacy</span> See supplementalInfo.`deposit`"},"nameTranslations":{"type":"object","description":"Translations of the **Product Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Product Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Product Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Product Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Product Name in Arabic (`ar`)","example":"ستيك لذيذ مع بطاطس مقلية"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"ستيك لذيذ مع بطاطس مقلية"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Product","enum":[1],"default":1,"example":1},"description":{"type":"string","description":"Product description","example":"Basic Example Product with - Modifier groups - min/max variables - default selection - translations"},"imageUrl":{"type":["string","null"],"description":"image url of the product (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))","example":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg"},"descriptionTranslations":{"type":"object","description":"Translations of the **Product Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Product Description in Spanish (`es`)","example":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones"},"fr":{"type":"string","description":"Product Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Product Description in Dutch (`nl`)","example":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"ar":{"type":"string","description":"Product Description in Arabic (`ar`)","example":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"example":{"es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen","ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"deliveryTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Delivery' for the product. Tax rates are always stored as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":10000},"takeawayTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Takeaway' for the product. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":7300},"eatInTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Eat-in' for the product. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":0},"multiMax":{"type":["integer","null"],"description":"maximum quantity of any single item which can be purchased within a group (modifier group). Also applicable to Products where it should control how many items can be added to a basket e.g. Paracetamol"},"defaultQuantity":{"type":["integer","null"],"description":"this controls the behaviour of 'pre-selected' items, where a quantity >0 should be automatically selected (typically '1'); higher default quantities can also be set"},"isVariant":{"type":["boolean","null"],"description":"Applicable to a **product** to indicate if it is a variant or not (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-variants))"},"snoozed":{"type":"boolean","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Indicates whether a product is snoozed at the point of a menu being published","example":false},"productTags":{"type":"array","description":"All tags which apply to this product, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the product is stored","example":"62********************ea"},"referenceId":{"type":"string","description":"the original PLU of the product, only for tracking sales e.g. for loyalty purposes. Not to be included in the payload for order creation.","example":"STK-01"},"location":{"type":"string","description":"Unique customer location ID where the product is stored","example":"62********************74"},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}},"beverageInfo":{"type":["object","null"],"description":"information specific to beverages","properties":{"caffeine":{"type":["integer","null"],"description":"Caffeine content of the beverage, expressed in milligrams (mg).","example":95},"alcohol":{"type":["integer","null"],"description":"Alcohol percentage, sent as an integer in E2 format (the percentage multiplied by 100) so that decimal values can be represented. For example, `1250` represents 12.5% and `475` represents 4.75%.","example":1250}}},"calories":{"type":["integer","null"],"description":"expressed in kcal / Cals"},"caloriesRangeHigh":{"type":["integer","null"],"description":"if a range is supported, the minimum would be `\"calories\"` and maximum `\"caloriesRangeHigh\"`"},"caloriesFromFat":{"type":["integer","null"],"description":"calories from fat, expressed in kcal / Cals"},"nutritionalInfo":{"type":["object","null"],"description":"Expressed in grams e.g. `fat`, `sugar`, `saturatedFat`, `carbohydrates`, `protein`, `salt` etc (see this section of product guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","properties":{"fat":{"type":["number","null"],"description":"fat in grams","example":32.5},"sugar":{"type":["number","null"],"description":"sugar in grams","example":2.1},"addedSugar":{"type":["number","null"],"description":"added sugar in grams"},"saturatedFat":{"type":["number","null"],"description":"saturated fat in grams","example":12.8},"monoUnsaturatedFat":{"type":["number","null"],"description":"monounsaturated fat in grams"},"polyUnsaturatedFat":{"type":["number","null"],"description":"polyunsaturated fat in grams"},"transFat":{"type":["number","null"],"description":"trans fat in grams"},"cholesterol":{"type":["number","null"],"description":"cholesterol"},"carbohydrates":{"type":["number","null"],"description":"carbohydrates in grams","example":48},"polyols":{"type":["number","null"],"description":"polyols in grams"},"starch":{"type":["number","null"],"description":"starch in grams"},"fiber":{"type":["number","null"],"description":"fibre in grams"},"dietaryFiber":{"type":["number","null"],"description":"dietary fibre in grams","example":4.3},"protein":{"type":["number","null"],"description":"protein in grams","example":41.2},"salt":{"type":["number","null"],"description":"salt in grams","example":2.4},"sodium":{"type":["number","null"],"description":"sodium"},"vitaminC":{"type":["number","null"],"description":"vitamin C"},"calcium":{"type":["number","null"],"description":"calcium"},"magnesium":{"type":["number","null"],"description":"magnesium"},"chloride":{"type":["number","null"],"description":"chloride"},"fluoride":{"type":["number","null"],"description":"fluoride"},"potassium":{"type":["number","null"],"description":"potassium"},"servingSize":{"type":["object","null"],"description":"size of a single serving","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}},"servingCount":{"type":["integer","null"],"description":"number of servings","example":1},"netQuantity":{"type":["object","null"],"description":"net quantity of the item","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}}}},"packaging":{"type":["object","null"],"description":"details on the packaging","properties":{"count":{"type":["integer","null"],"description":"number of packaging units","example":1},"reusable":{"type":["boolean","null"],"description":"indicates if the packaging is reusable","example":false},"storageInstructions":{"type":["string","null"],"description":"how the item should be stored","example":"Keep refrigerated. Consume within 24 hours."}}},"supplementalInfo":{"type":["object","null"],"description":"additional information about a product, for more information see [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","properties":{"legalName":{"type":["string","null"],"description":"legal name of the item","example":"Coca-Cola Original Taste"},"prepackaged":{"type":["boolean","null"],"description":"indicates if the item is prepackaged","example":true},"deposit":{"type":["integer","null"],"description":"deposit amount with 2 decimal digits, e.g. 1 euro is stored as 100","example":0},"instructionsForUse":{"type":["string","null"],"description":"instructions for using or consuming the item","example":"Best served chilled."},"ingredients":{"type":"array","description":"list of ingredients","items":{"type":"string"},"example":["Water","Sugar","Carbon dioxide"]},"additives":{"type":"array","description":"list of additive codes","items":{"type":"string"},"example":["ACIDIFIERS","CAFFEINE_CAFFEINE"]},"fbo":{"type":["object","null"],"description":"food business operator responsible for the item","properties":{"name":{"type":["string","null"],"description":"name of the food business operator","example":"Coca-Cola Europacific Partners"},"address":{"type":["string","null"],"description":"address of the food business operator","example":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom"},"brand":{"type":["string","null"],"description":"brand name","example":"Coca-Cola"},"countryOfOrigin":{"type":["string","null"],"description":"country of origin","example":"GB"}}}}},"displayLabels":{"type":"array","description":"An array of labels for uniquely identifying products in marketing-based terms, e.g. `new` or `featured`.","items":{"type":"string","enum":["new","popular","offer","exclusive","limited","hero","featured"]},"example":["new"]},"metadata":{"type":"array","description":"custom key/value pairs for the product, e.g. display styling (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"object","properties":{"key":{"type":"string","description":"metadata key","example":"text-color"},"value":{"type":"string","description":"metadata value","example":"#09CA79"}}},"example":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"}]},"preparationTime":{"type":["integer","null"],"description":"Item-specific preparation time in minutes, if configured."},"posCategoryIds":{"type":"array","description":"the POS ID of the category this product belongs to in the POS","items":{"type":"string"}},"posProductCategoryId":{"type":"string","description":"the ID of this product in the POS, internal to POS, not to be used when creating orders","example":""},"posProductId":{"type":"string","description":"the ID of this product in the POS, internal to POS, not to be used when creating orders","example":"POS-ID-001"}}}}},"modifiers":{"type":"object","description":"Modifiers in the menu.\n\nObject keyed by ID; `{modifierId}` represents each key.","properties":{"{modifierId}":{"type":"object","description":"Identifier of a particular modifier and its location in the menu structure, matching the modifier's `id`. This is not a universal identifier for the modifier and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular modifier and its location in the menu structure. This is not a universal identifier for the modifier and is not fixed.","example":"62********************53"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the modifier, to be used when creating orders","example":"DRNK-01"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Modifier name","example":"Coca Cola"},"price":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Price of the modifier with 2 decimal digits. e.g. 1 euro is stored as 100.","example":400},"bottleDepositPrice":{"type":["integer","null"],"deprecated":true,"description":"<span class=\"legacy-label\">Legacy</span> See supplementalInfo.`deposit`"},"nameTranslations":{"type":"object","description":"Translations of the **Modifier Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Modifier Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Modifier Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Modifier Name in Arabic (`ar`)","example":"كوكا كولا"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"كوكا كولا"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Modifier","enum":[2],"default":2,"example":2},"description":{"type":"string","description":"Modifier description","example":"Cola flavoured sugar and caffeine"},"imageUrl":{"type":["string","null"],"description":"image url of the modifier (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))","example":"https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/cocacola-622854a78c506f015be6018a.jpeg"},"descriptionTranslations":{"type":"object","description":"Translations of the **Modifier Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Description in Spanish (`es`)","example":"Bebida con sabor a cola, con azúcar y cafeína"},"fr":{"type":"string","description":"Modifier Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Modifier Description in Dutch (`nl`)","example":"Drank met colasmaak, met suiker en cafeïne"},"ar":{"type":"string","description":"Modifier Description in Arabic (`ar`)","example":"مشروب بنكهة الكولا يحتوي على السكر والكافيين"}},"example":{"es":"Bebida con sabor a cola, con azúcar y cafeína","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Drank met colasmaak, met suiker en cafeïne","ar":"مشروب بنكهة الكولا يحتوي على السكر والكافيين"}},"deliveryTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Delivery' for the modifier. Tax rates are always stored as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":9000},"takeawayTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Takeaway' for the modifier. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":9000},"eatInTax":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> sales tax specific on order type of 'Eat-in' for the modifier. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as `5000`","example":9000},"defaultQuantity":{"type":["integer","null"],"description":"this controls the behaviour of 'pre-selected' items, where a quantity >0 should be automatically selected (typically '1'); higher default quantities can also be set"},"snoozed":{"type":"boolean","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Indicates whether a modifier is snoozed at the point of a menu being published","example":false},"productTags":{"type":"array","description":"All tags which apply to this modifier, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the modifier is stored","example":"62********************ea"},"referenceId":{"type":["string","null"],"description":"the original PLU of the modifier, only for tracking sales e.g. for loyalty purposes. Not to be included in the payload for order creation."},"location":{"type":"string","description":"Unique customer location ID where the modifier is stored","example":"62********************74"},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}},"beverageInfo":{"type":["object","null"],"description":"information specific to beverages","properties":{"caffeine":{"type":["integer","null"],"description":"Caffeine content of the beverage, expressed in milligrams (mg).","example":95},"alcohol":{"type":["integer","null"],"description":"Alcohol percentage, sent as an integer in E2 format (the percentage multiplied by 100) so that decimal values can be represented. For example, `1250` represents 12.5% and `475` represents 4.75%.","example":1250}}},"calories":{"type":["integer","null"],"description":"expressed in kcal / Cals"},"caloriesRangeHigh":{"type":["integer","null"],"description":"if a range is supported, the minimum would be `\"calories\"` and maximum `\"caloriesRangeHigh\"`"},"caloriesFromFat":{"type":["integer","null"],"description":"calories from fat, expressed in kcal / Cals"},"nutritionalInfo":{"type":["object","null"],"description":"Expressed in grams e.g. `fat`, `sugar`, `saturatedFat`, `carbohydrates`, `protein`, `salt` etc (see this section of product guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","properties":{"fat":{"type":["number","null"],"description":"fat in grams","example":32.5},"sugar":{"type":["number","null"],"description":"sugar in grams","example":2.1},"addedSugar":{"type":["number","null"],"description":"added sugar in grams"},"saturatedFat":{"type":["number","null"],"description":"saturated fat in grams","example":12.8},"monoUnsaturatedFat":{"type":["number","null"],"description":"monounsaturated fat in grams"},"polyUnsaturatedFat":{"type":["number","null"],"description":"polyunsaturated fat in grams"},"transFat":{"type":["number","null"],"description":"trans fat in grams"},"cholesterol":{"type":["number","null"],"description":"cholesterol"},"carbohydrates":{"type":["number","null"],"description":"carbohydrates in grams","example":48},"polyols":{"type":["number","null"],"description":"polyols in grams"},"starch":{"type":["number","null"],"description":"starch in grams"},"fiber":{"type":["number","null"],"description":"fibre in grams"},"dietaryFiber":{"type":["number","null"],"description":"dietary fibre in grams","example":4.3},"protein":{"type":["number","null"],"description":"protein in grams","example":41.2},"salt":{"type":["number","null"],"description":"salt in grams","example":2.4},"sodium":{"type":["number","null"],"description":"sodium"},"vitaminC":{"type":["number","null"],"description":"vitamin C"},"calcium":{"type":["number","null"],"description":"calcium"},"magnesium":{"type":["number","null"],"description":"magnesium"},"chloride":{"type":["number","null"],"description":"chloride"},"fluoride":{"type":["number","null"],"description":"fluoride"},"potassium":{"type":["number","null"],"description":"potassium"},"servingSize":{"type":["object","null"],"description":"size of a single serving","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}},"servingCount":{"type":["integer","null"],"description":"number of servings","example":1},"netQuantity":{"type":["object","null"],"description":"net quantity of the item","properties":{"amount":{"type":"number","description":"the quantity value","example":450},"unitType":{"type":"integer","description":"numeric code for the unit of measure; Weight (in grams) = `1`, Volume (in millilitres) = `2`, Count (e.g. piece, slice, capsule, cookie) = `3`","enum":[1,2,3],"example":1},"countUnitDescription":{"type":"string","description":"description of the unit of measure","example":"gram"}}}}},"packaging":{"type":["object","null"],"description":"details on the packaging","properties":{"count":{"type":["integer","null"],"description":"number of packaging units","example":1},"reusable":{"type":["boolean","null"],"description":"indicates if the packaging is reusable","example":false},"storageInstructions":{"type":["string","null"],"description":"how the item should be stored","example":"Keep refrigerated. Consume within 24 hours."}}},"supplementalInfo":{"type":["object","null"],"description":"additional information about a modifier, for more information see [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","properties":{"legalName":{"type":["string","null"],"description":"legal name of the item","example":"Coca-Cola Original Taste"},"prepackaged":{"type":["boolean","null"],"description":"indicates if the item is prepackaged","example":true},"deposit":{"type":["integer","null"],"description":"deposit amount with 2 decimal digits, e.g. 1 euro is stored as 100","example":0},"instructionsForUse":{"type":["string","null"],"description":"instructions for using or consuming the item","example":"Best served chilled."},"ingredients":{"type":"array","description":"list of ingredients","items":{"type":"string"},"example":["Water","Sugar","Carbon dioxide"]},"additives":{"type":"array","description":"list of additive codes","items":{"type":"string"},"example":["ACIDIFIERS","CAFFEINE_CAFFEINE"]},"fbo":{"type":["object","null"],"description":"food business operator responsible for the item","properties":{"name":{"type":["string","null"],"description":"name of the food business operator","example":"Coca-Cola Europacific Partners"},"address":{"type":["string","null"],"description":"address of the food business operator","example":"Pemberton House, Bakers Road, Uxbridge, UB8 1EZ, United Kingdom"},"brand":{"type":["string","null"],"description":"brand name","example":"Coca-Cola"},"countryOfOrigin":{"type":["string","null"],"description":"country of origin","example":"GB"}}}}},"displayLabels":{"type":"array","description":"An array of labels for uniquely identifying modifiers in marketing-based terms, e.g. `new` or `featured`.","items":{"type":"string","enum":["new","popular","offer","exclusive","limited","hero","featured"]},"example":["new"]},"metadata":{"type":"array","description":"custom key/value pairs for the modifier, e.g. display styling (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata))","items":{"type":"object","properties":{"key":{"type":"string","description":"metadata key","example":"text-color"},"value":{"type":"string","description":"metadata value","example":"#09CA79"}}},"example":[{"key":"text-color","value":"#09CA79"},{"key":"font-weight","value":"600"}]},"posCategoryIds":{"type":"array","description":"the POS ID of the category this modifier belongs to in the POS","items":{"type":"string"}},"posProductCategoryId":{"type":"string","description":"the ID of this modifier in the POS, internal to POS, not to be used when creating orders","example":""},"posProductId":{"type":"string","description":"the ID of this modifier in the POS, internal to POS, not to be used when creating orders","example":"POS-ID-029"}}}}},"modifierGroups":{"type":"object","description":"Modifier groups in the menu.\n\nObject keyed by ID; `{modifierGroupId}` represents each key.","properties":{"{modifierGroupId}":{"type":"object","description":"Identifier of a particular modifier group and its location in the menu structure, matching the modifier group's `id`. This is not a universal identifier for the modifier group and is not fixed.","properties":{"id":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Identifier of a particular modifier group and its location in the menu structure. This is not a universal identifier for the modifier group and is not fixed.","example":"62********************64"},"plu":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Unique identifier of the modifier group, to be used when creating orders","example":"MOD-01"},"name":{"type":"string","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Modifier Group name","example":"Cooking instructions"},"nameTranslations":{"type":"object","description":"Translations of the **Modifier Group Name**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Group Name in Spanish (`es`)","example":"Deliciosos Bistecs Fritos"},"fr":{"type":"string","description":"Modifier Group Name in French (`fr`)","example":"Steak Frites Delicieux"},"nl":{"type":"string","description":"Modifier Group Name in Dutch (`nl`)","example":"Heerlijke Biefstuk Frites"},"ar":{"type":"string","description":"Modifier Group Name in Arabic (`ar`)","example":"تعليمات الطهي"}},"example":{"es":"Deliciosos Bistecs Fritos","fr":"Steak Frites Delicieux","nl":"Heerlijke Biefstuk Frites","ar":"تعليمات الطهي"}},"productType":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> <Glossary>productType</Glossary> is Modifier Group","enum":[3],"default":3,"example":3},"description":{"type":"string","description":"Modifier Group description","example":""},"imageUrl":{"type":["string","null"],"description":"image url of the modifier group (see more info on images [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-images))"},"descriptionTranslations":{"type":"object","description":"Translations of the **Modifier Group Description**, with [language codes](https://developers.deliverect.com/page/language-codes) as keys (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-translations)).","properties":{"es":{"type":"string","description":"Modifier Group Description in Spanish (`es`)","example":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones"},"fr":{"type":"string","description":"Modifier Group Description in French (`fr`)","example":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions"},"nl":{"type":"string","description":"Modifier Group Description in Dutch (`nl`)","example":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen"},"ar":{"type":"string","description":"Modifier Group Description in Arabic (`ar`)","example":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"example":{"es":"Producto de ejemplo básico con - Grupos de modificadores - variables mín./máx. - selección predeterminada - traducciones","fr":"Exemple de produit de base avec - groupes de modificateurs - variables min/max - sélection par défaut - traductions","nl":"Eenvoudig voorbeeldproduct met - Modifiergroepen - min/max-variabelen - standaardselectie - vertalingen","ar":"مثال لمنتج أساسي يتضمن - مجموعات الإضافات - متغيرات الحد الأدنى/الأقصى - الاختيار الافتراضي - الترجمات"}},"max":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> maximum number of items under a group to be purchased","example":1},"min":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> minimum number of items under a group to be purchased","example":1},"multiMax":{"type":["integer","null"],"description":"maximum quantity of any single item which can be purchased within a group (modifier group). Also applicable to Products where it should control how many items can be added to a basket e.g. Paracetamol"},"maxFree":{"type":["integer","null"],"description":"maximum number of sub-items that can be selected free of charge"},"multiply":{"type":"integer","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> multiply is used in Modifier Group to show this product multiple times in the GUI, 1 means one entry (so no copies)","example":1},"isVariantGroup":{"type":["boolean","null"],"description":"Applicable to a **modifier group** to indicate if it contains variants of a product (see guide [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-variants))"},"isUpsell":{"type":["boolean","null"],"description":"indicates if the **modifier group** is an upsell group"},"snoozed":{"type":"boolean","description":"<i class=\"fa-solid fa-circle-check\" style=\"color: #09CC7A;\" title=\"Always present\"></i> Indicates whether a modifier group is snoozed at the point of a menu being published","example":false},"productTags":{"type":"array","description":"All tags which apply to this product, see complete list [here](https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-handle-product-metadata)","items":{"type":"integer"}},"account":{"type":"string","description":"Unique customer account ID where the modifier group is stored","example":"62********************ea"},"location":{"type":"string","description":"Unique customer location ID where the modifier group is stored","example":"62********************74"},"subProducts":{"type":"array","description":"list of items belonging to the group","items":{"type":"string"}},"posCategoryIds":{"type":"array","description":"the POS ID of the category this modifier group belongs to in the POS","items":{"type":"string"}},"posProductCategoryId":{"type":"string","description":"the ID of this modifier group in the POS, internal to POS, not to be used when creating orders","example":""},"posProductId":{"type":"string","description":"the ID of this modifier group in the POS, internal to POS, not to be used when creating orders","example":"POS-ID-002"}}}}},"bundles":{"type":"object","deprecated":true,"description":"<span class=\"legacy-label\">Legacy</span>"},"snoozedProducts":{"type":"object","description":"PLUs of products and modifiers that are currently snoozed and should be unavailable on the menu\n\nObject keyed by ID; `{snoozeId}` represents each key.","properties":{"{snoozeId}":{"type":"object","description":"a unique reference for the snooze object in format `\"65********************1d\"`","properties":{"plu":{"type":"string","description":"Item reference","example":"645609366"},"snoozeStart":{"type":"string","description":"Timestamp in UTC when snooze begins `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},"snoozeEnd":{"type":"string","description":"Timestamp in UTC when snooze ends `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}}}}}}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Store not found":{"summary":"Store not found","value":{"error":"store not found"}},"No menu found for this store":{"summary":"No menu found for this store","value":{"error":"No menu found for this store"}},"No menu found for this store with menuId":{"summary":"No menu found for this store with menuId","value":{"error":"No menu found for this store with menuId 64********************d1"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"error":{"summary":"error","value":"{}"}}}},"description":"Internal Server Error"}},"deprecated":false}},"/commerce/{accountId}/baskets/{basketId}/store":{"patch":{"responses":{"200":{"description":"","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":"{}"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Store not found":{"summary":"Store not found","value":{"error":"store not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"73a156c0d2a9dc4502be08cbe949ac40"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"cff0411a4a5ce137b5a353efd1c83b5b"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"7e4df4393c55c85a308cf7e01dda19b5"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"c2683d2d5304eb93bc65179bc533dc69"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"03fb6339b765521df8df0d1236cb548a"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"fbf74d7665e14e03df25c82dcaa7a7a3"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"0473cfa25c57cde11c86a03355b0e3dd"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","schema":{"type":"string"},"required":true},{"in":"path","name":"basketId","schema":{"type":"string"},"required":true}],"operationId":"patch_commerce-accountid-baskets-basketid-store","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores)."}},"required":["storeId"]},"examples":{"Update Store Example":{"summary":"Update Store Example","value":{"storeId":"67********************2c"}}}}}},"summary":"Update Basket - Store","tags":["Endpoints"]}},"/commerce/{accountId}/baskets/{basketId}/payment":{"patch":{"responses":{"200":{"description":"","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"66********************34","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"d8ac2d392f6a89d80376174d19cbe84b8b65d637","accountId":"65********************d8","storeId":"65********************59","channelLinkId":"65********************59","channelOrderId":null,"channelOrderDisplayId":null,"currency":"EUR","taxExclusive":false,"status":"open","items":[{"menuId":"62********************91","plu":"STK-01","name":"Delicious Steak Frites","quantity":1,"price":1500,"gross":1500,"taxes":[],"net":1500,"subItems":[],"discounts":[],"discountTotal":0}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[{"amount":100,"type":"restaurant"}],"donationTotal":300,"discountsTotal":0,"taxTotal":0,"tipTotal":100,"total":1900},"customer":{"name":"Test","companyName":"Company LTDA","phoneNumber":"+12125550123","email":"test@email.com"},"fulfillment":{"type":"pickup"},"taxes":[],"discounts":[]}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"66********************34","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"d8ac2d392f6a89d80376174d19cbe84b8b65d637","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"65********************d8"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"65********************59"},"channelLinkId":{"type":"string","example":"65********************59","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."},"currency":{"type":"string","example":"EUR","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":false,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"menuId":{"type":"string","example":"62********************91","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"STK-01","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Delicious Steak Frites","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":1500,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1500,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":1500,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","example":100,"default":0,"description":"Tip amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"restaurant","description":"Recipient of the tip:\n\n- `restaurant` - Tip for the restaurant\n- `driver` - Tip for the delivery driver","enum":["restaurant","driver"]}}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":100,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"total":{"type":"integer","example":1900,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Test","description":"Full name of the customer."},"companyName":{"type":"string","example":"Company LTDA","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@email.com","description":"Customer's email address.","format":"email"}},"description":"Information about the customer placing the order."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."}}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Bad Request":{"summary":"Bad Request","value":"{}"}}}},"description":"Bad Request"},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","schema":{"type":"string"},"required":true},{"in":"path","name":"basketId","schema":{"type":"string","default":""},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Tips - Restaurant":{"summary":"Tips - Restaurant","value":{"tips":[{"amount":100,"type":"restaurant"}]}},"Tips - Driver":{"summary":"Tips - Driver","value":{"tips":[{"amount":100,"type":"driver"}]}}}}}},"operationId":"patch_commerce-accountid-baskets-basketid-payment","summary":"Update Basket - Tip","tags":["Endpoints"]}},"/commerce/{accountId}/baskets/{basketId}/donations":{"patch":{"responses":{"200":{"description":"","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"6a********************c0","channel":10000,"category":{"type":"restaurant"},"currency":"USD","taxExclusive":true,"status":"open","items":[{"id":"6a********************bf","menuId":"4c********************b8","plu":"000000000","name":"Sample Item","quantity":1,"price":839,"gross":839,"taxes":[{"rate":6000,"name":"Sample Tax","amount":31}],"net":551,"subItems":[{"customizationPlu":"SAMPLE-CUST-PLU-001","plu":"SAMPLE-PLU-001","name":"Sample Modifier 1","quantity":1,"price":0,"subItems":[{"customizationPlu":"SAMPLE-CUST-PLU-002","plu":"SAMPLE-PLU-002","name":"Sample Sub Modifier","quantity":1,"price":0,"subItems":[],"note":null}],"note":null},{"customizationPlu":"SAMPLE-CUST-PLU-001","plu":"SAMPLE-PLU-003","name":"Sample Modifier 2","quantity":1,"price":0,"subItems":[{"customizationPlu":"SAMPLE-CUST-PLU-002","plu":"SAMPLE-PLU-002","name":"Sample Sub Modifier","quantity":1,"price":0,"subItems":[],"note":null}],"note":null}],"discounts":[{"referenceId":1,"amount":319}],"discountTotal":319,"note":null,"preparationTime":null,"customerId":null}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":319,"chargesTotal":0,"taxTotal":31,"tipTotal":0,"subTotal":839,"total":851},"customer":{"name":"Jane Doe","companyName":"Sample Company Ltd","phoneNumber":"+12125550123","email":"sample@example.com","externalId":"","loyaltyProviderCustomerId":"SAMPLE_LOYALTY_PROVIDER_ID","tin":"","crmProfileId":"00********************00","sendNotifications":true,"allowMarketing":null,"sendReceiptSMS":null,"sendReceiptEmail":null},"group":null,"fulfillment":{"type":"pickup","time":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","pickupNotes":null},"taxes":[{"name":"Sample Tax","amount":31}],"discounts":[{"type":"order_flat_off","referenceId":1,"amount":319,"value":319,"provider":"restaurant","externalId":"Vacay5","name":"Sample Discount"}],"charges":{"serviceCharge":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0,"type":"fixed"},"bagFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"deliveryFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"taxTotal":0,"netTotal":0,"grossTotal":0},"preparationTime":15,"preparationDelayTime":0,"created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"1e***********************************ce","accountId":"69********************b1","storeId":"6a********************37","channelLinkId":"6a********************37","channelOrderId":null,"channelOrderDisplayId":null}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"6a********************c0","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"channel":{"type":"integer","example":10000,"default":0,"description":"Global identifier of the ordering channel/platform."},"category":{"type":"object","properties":{"type":{"type":"string","example":"restaurant","description":"Store category type."}},"description":"Business category of the store."},"currency":{"type":"string","example":"USD","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":true,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************bf","description":"Unique identifier of the basket item, auto-generated when the item is added. Used to reference the item in subsequent requests (e.g. `itemIds` in discounts)."},"menuId":{"type":"string","example":"4c********************b8","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"000000000","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Sample Item","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":839,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":839,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"integer","example":6000,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`."},"name":{"type":"string","example":"Sample Tax","description":"Name of the tax."},"amount":{"type":"integer","example":31,"default":0,"description":"Tax amount applied. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":551,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"SAMPLE-CUST-PLU-001","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"SAMPLE-PLU-001","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Sample Modifier 1","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":0,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"SAMPLE-CUST-PLU-002","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"SAMPLE-PLU-002","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Sample Sub Modifier","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":0,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{"referenceId":{"type":"integer","example":1,"default":0,"description":"Reference to the basket-level discount."},"amount":{"type":"integer","example":319,"default":0,"description":"Discount amount applied to this item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":319,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"note":{"description":"Special instructions for the item."},"preparationTime":{"description":"Item-specific preparation time in minutes, if configured."},"customerId":{"description":"ID of the group basket customer who added the item. `null` for non-group baskets."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":319,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":31,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subTotal":{"type":"integer","example":839,"default":0,"description":"The sum of all order items (products + their modifiers/sub-items), before tax, delivery cost, service charge, tip, or discounts are added."},"total":{"type":"integer","example":851,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"Jane Doe","description":"Full name of the customer."},"companyName":{"type":"string","example":"Sample Company Ltd","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"sample@example.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"type":"string","example":"SAMPLE_LOYALTY_PROVIDER_ID","description":"Unique identifier for the customer in the loyalty provider system."},"tin":{"type":"string","example":"","description":"Tax identification or fiscal equivalent number for the customer."},"crmProfileId":{"type":"string","example":"00********************00","description":"Unique identifier for the customer's profile in the Deliverect CRM system."},"sendNotifications":{"type":"boolean","example":true,"default":true,"description":"Flag to control whether order notifications should be sent to the customer."},"allowMarketing":{"description":"Flag to indicate whether the customer has opted in to receive marketing communications."},"sendReceiptSMS":{"description":"Flag to control whether the order receipt should be sent via SMS."},"sendReceiptEmail":{"description":"Flag to control whether the order receipt should be sent via email."}},"description":"Information about the customer placing the order."},"group":{"description":"Group order details. `null` for non-group baskets."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"pickup","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"time":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*","format":"date-time"},"pickupNotes":{"description":"Pickup instructions from the customer (e.g. car description for curbside)."}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Sample Tax","description":"Name of the tax."},"amount":{"type":"integer","example":31,"default":0,"description":"Total amount for this tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"order_flat_off","description":"Type of discount.","enum":["order_flat_off","order_percent_off","item_free","item_bogof","item_flat_off","item_percent_off","wallet_cash","compensation_card"]},"referenceId":{"type":"integer","example":1,"default":0,"description":"Basket-scoped reference used by item-level `discounts`."},"amount":{"type":"integer","example":319,"default":0,"description":"Calculated discount amount. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00.","format":"int32"},"value":{"type":"integer","example":319,"default":0,"description":"Configured discount value (amount, or rate with 2 decimal digits for percentage discounts).","format":"int32"},"provider":{"type":"string","example":"restaurant","description":"Source of the discount:\n\n- `restaurant` - Restaurant-funded promotion\n- `coupon` - Coupon code\n- `loyalty` - Loyalty provider reward","enum":["restaurant","coupon","loyalty"]},"externalId":{"type":"string","example":"Vacay5","description":"External reference for the discount."},"name":{"type":"string","example":"Sample Discount","description":"Display name of the discount."}}},"description":"Discounts applied to the basket."},"charges":{"type":"object","properties":{"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"fixed","description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","enum":["fixed","percent"]}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Delivery fee details."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Charges applied to the basket."},"preparationTime":{"type":"integer","example":15,"default":0,"description":"Estimated preparation time for the basket in minutes."},"preparationDelayTime":{"type":"integer","example":0,"default":0,"description":"Additional delay in minutes added to the preparation time (e.g. when the store is busy)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"1e***********************************ce","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"69********************b1"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"6a********************37"},"channelLinkId":{"type":"string","example":"6a********************37","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."}}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Bad Request":{"summary":"Bad Request","value":"{}"}}}},"description":"Bad Request"},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","schema":{"type":"string"},"required":true},{"in":"path","name":"basketId","schema":{"type":"string","default":""},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Donations":{"summary":"Donations","value":"{\n  [\n    {\n      \"externalId\": \"1234\",\n      \"amount\": 200\n    }\n  ]\n}"}}}}},"summary":"Update Basket - Donations","operationId":"patch_commerce-accountid-baskets-basketid-donations","tags":["Endpoints"]}},"/commerce/{accountId}/v2/checkouts":{"post":{"parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["basket","payments"],"properties":{"basket":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The identifier of the basket being checked out, returned from [Create Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-create-basket)"}}},"note":{"type":"string","description":"A free-text, order-level note passed through at checkout (e.g. delivery or preparation instructions)."},"order":{"type":"object","properties":{"channelOrderId":{"type":"string","description":"Your channel's unique ID for this order. Deliverect uses it to reference the order in webhooks and reporting, so it must not be reused. If not supplied, it will be auto-generated."},"channelOrderDisplayId":{"type":"string","description":"The short reference displayed on the POS, kitchen tickets, and receipts. Keep it concise and human-readable. If not supplied, it will be auto-generated."},"by":{"type":"string","description":"The ordering surface or client that placed the order (e.g. `\"Mobile App\"`, `\"Web App\"`, `\"Kiosk\"`). Useful for reporting and support."},"validationId":{"type":"string","description":"UUID returned by the [Dispatch Availability](https://developers.deliverect.com/v3.0-ordering-experience/reference/post_fulfillment-validate) endpoint which helps to secure a courier and pre-validated delivery job quote"},"courier":{"type":"string","description":"Controls delivery handling. Set `\"restaurant\"` to initiate integrated Deliverect Dispatch flows; any other string (e.g. `\"thirdparty\"`) indicates a third-party courier not managed via Deliverect."},"includeCutlery":{"type":"boolean","description":"Confirm to store if cutlery is requested with the order"}}},"payments":{"type":"array","items":{"type":"object","required":["type","externalId","isPrepaid","amount"],"properties":{"type":{"type":"string","default":"dpay","enum":["dpay","third_party","gift_card"],"description":"Payment types: `dpay` | `gift_card` | `third_party`"},"externalId":{"type":"string","default":"","description":"Reference for the payment: if Deliverect Pay it would be the `paymentId`, for `gift_card` it'd be the transaction ID."},"isPrepaid":{"type":"boolean","default":true,"description":"Whether the amount has already been collected. `false` means the amount is still due (e.g. cash on delivery)."},"instrumentType":{"type":"string","description":"For `third_party` payments only: the underlying instrument, e.g. `cash`, `card`, `online`.","enum":["cash","card","cash_on_delivery","card_on_delivery","online","invoice","other"]},"amount":{"type":"integer","description":"The total amount paid should be sent as an integer with 2 decimal digits, for example, 1 dollar would be sent as 100."},"metadata":{"type":"object","description":"Additional data for the payment as custom key/value pairs. Any keys can be supplied for any payment type. Required for `gift_card` payments, which must include the gift card fields listed here.","properties":{"giftCardProviderProfileLinkId":{"type":"string","description":"For `gift_card` payments only: the identifier linking the gift card provider's profile/integration configuration used to process the payment."},"giftCardNumber":{"type":"string","description":"For `gift_card` payments only: the card number of the gift card being redeemed."},"giftCardVerificationCode":{"type":"string","description":"For `gift_card` payments only: the verification/security code of the gift card being redeemed."}}}}},"description":"Array of one or more payment entries. The sum of all `amount` values must equal the basket total."}}},"examples":{"Deliverect Pay":{"summary":"Deliverect Pay","value":{"basket":{"id":"62********************3x"},"order":{"channelOrderId":"TEST****629","channelOrderDisplayId":"T**629","by":"Mobile App","includeCutlery":false},"note":"ORDER LEVEL NOTE","payments":[{"type":"dpay","externalId":"68****************44","isPrepaid":true,"amount":900,"metadata":{}}]}},"Third Party":{"summary":"Third Party","value":{"basket":{"id":"62********************3x"},"order":{"channelOrderId":"TEST****629","channelOrderDisplayId":"T**629","by":"Web App","includeCutlery":false},"note":"ORDER LEVEL NOTE","payments":[{"type":"third_party","externalId":"62********************8e","instrumentType":"card","isPrepaid":true,"amount":900,"metadata":{}}]}},"Gift Card":{"summary":"Gift Card","value":{"basket":{"id":"62********************3x"},"order":{"channelOrderId":"TEST****629","channelOrderDisplayId":"T**629","by":"Web App","includeCutlery":false},"note":"ORDER LEVEL NOTE","payments":[{"type":"gift_card","externalId":"63********************f4","isPrepaid":true,"amount":900,"metadata":{"giftCardProviderProfileLinkId":"67********************t8","giftCardNumber":"62*************44","giftCardVerificationCode":"64**32"}}]}},"Multiple Payments":{"summary":"Multiple Payments","value":{"basket":{"id":"62********************3x"},"order":{"channelOrderId":"TEST****629","channelOrderDisplayId":"T**629","by":"Mobile App","courier":"restaurant","includeCutlery":true},"note":"ORDER LEVEL NOTE","payments":[{"type":"dpay","externalId":"68********************4e","isPrepaid":false,"amount":300,"metadata":{}},{"type":"gift_card","externalId":"63********************f4","isPrepaid":true,"amount":300,"metadata":{"giftCardProviderProfileLinkId":"67********************t8","giftCardNumber":"62*************44","giftCardVerificationCode":"64**32"}},{"type":"third_party","externalId":"66********************h3","isPrepaid":true,"instrumentType":"card","amount":300,"metadata":{}}]}}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"6a********************05","created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"42513429c5eff61b980d95b34d2a46de7a312a9d","accountId":"68********************df","storeId":"69********************81","channelLinkId":"69********************81","status":"open","failureReason":null,"expiresAt":null,"basket":{"id":"6a********************55","channel":10000,"category":{"type":"restaurant"},"currency":"USD","taxExclusive":true,"status":"open","items":[{"id":"6a********************54","menuId":"4a********************aa","plu":"P-WATER","name":"Bottled Water","quantity":1,"price":279,"gross":279,"taxes":[{"rate":7000,"name":"GST","amount":20}],"net":299,"subItems":[],"discounts":[],"discountTotal":0,"note":null,"preparationTime":null,"customerId":null,"upsellReference":null}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"chargesTotal":0,"taxTotal":20,"tipTotal":0,"subTotal":279,"total":599},"customer":{"name":"John Doe","companyName":"","phoneNumber":"+12125550123","email":"test@test.com","externalId":"","loyaltyProviderCustomerId":"PU********************CH","tin":"","crmProfileId":"69********************4c","sendNotifications":true,"allowMarketing":null,"sendReceiptSMS":null,"sendReceiptEmail":null},"group":null,"fulfillment":{"type":"delivery","address":{"line":"200 Park Avenue South, New York, NY, 10003, US","subpremise":"Unit #1040","street":"Park Avenue South","area":"","city":"New York","postalCode":"10003","stateOrProvince":"NY","country":"US","coordinates":[40.7369,-73.9887],"note":"watch out for the yappy dog"},"time":null,"dropoffType":null},"taxes":[{"name":"GST","amount":20}],"discounts":[],"charges":{"serviceCharge":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0,"type":"percent"},"bagFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"deliveryFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"taxTotal":0,"netTotal":0,"grossTotal":0},"preparationTime":15,"preparationDelayTime":0},"order":{"id":null,"channelOrderId":"ff********************************72","channelOrderDisplayId":"fd********************************db","validationId":"6a********************7f","status":0,"courier":"restaurant","by":"Web App","includeCutlery":false},"payments":[{"id":"6a********************08","type":"third_party","externalId":"54********************************6b","isPrepaid":true,"instrumentType":null,"amount":599,"status":"unverified","metadata":{}}],"paymentSummary":{"total":599,"verified":0,"pending":0,"confirmedAmountDue":599,"availableToAdd":599}}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"6a********************05","description":"Unique identifier of the checkout.\n\nUse this to retrieve the checkout via [GET Checkout](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-checkout)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the checkout was last updated."},"deleted":{"type":"boolean","example":false,"description":"Whether the checkout is in a deleted state."},"etag":{"type":"string","example":"42513429c5eff61b980d95b34d2a46de7a312a9d","description":"Entity tag identifying the current version of the checkout. It changes whenever the checkout is updated."},"accountId":{"type":"string","example":"68********************df","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect"},"storeId":{"type":"string","example":"69********************81","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores)."},"channelLinkId":{"type":"string","example":"69********************81","description":"Alternative to `storeId`."},"status":{"type":"string","example":"open","description":"Status of the checkout. A successful checkout shows `status` as `open`. Once processed into the POS it updates to `completed`, or to `failed` if an unexpected error occurs.\n\nThe [Checkout Update](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-api-checkout-update) webhook delivers the final checkout status in real time as soon as it is updated."},"failureReason":{"type":"string","nullable":true,"example":null},"expiresAt":{"type":"string","nullable":true,"example":null},"basket":{"type":"object","properties":{"id":{"type":"string","example":"6a********************55","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"channel":{"type":"integer","example":10000,"description":"Global identifier of the ordering channel/platform."},"category":{"type":"object","properties":{"type":{"type":"string","example":"restaurant","description":"Store category type."}},"description":"Business category of the store."},"currency":{"type":"string","example":"USD","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************54","description":"Unique identifier of the basket item, auto-generated when the item is added. Used to reference the item in subsequent requests (e.g. `itemIds` in discounts)."},"menuId":{"type":"string","example":"4a********************aa","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"P-WATER","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Bottled Water","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":279,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":279,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"integer","example":7000,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`."},"name":{"type":"string","example":"GST","description":"Name of the tax."},"amount":{"type":"integer","example":20,"description":"Tax amount applied. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":299,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"P-SATE-MG-RICE-#O0#-","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"RICE-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"White Rice","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":450,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"RICE-01-MG-SAUCES-#O0#-","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"SAUCE-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Sate Sauce","description":"Display name of the modifier."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":50,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"note":{"type":"string","nullable":true,"example":null,"description":"Special instructions for the item."},"preparationTime":{"type":"string","nullable":true,"example":null,"description":"Item-specific preparation time in minutes, if configured."},"customerId":{"type":"string","nullable":true,"example":null,"description":"ID of the group basket customer who added the item. `null` for non-group baskets."},"upsellReference":{"type":"string","nullable":true,"example":null}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":20,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subTotal":{"type":"integer","example":279,"description":"The sum of all order items (products + their modifiers/sub-items), before tax, delivery cost, service charge, tip, or discounts are added."},"total":{"type":"integer","example":599,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"John Doe","description":"Full name of the customer."},"companyName":{"type":"string","example":"","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@test.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"type":"string","example":"PU********************CH","description":"Unique identifier for the customer in the loyalty provider system."},"tin":{"type":"string","example":"","description":"Tax identification or fiscal equivalent number for the customer."},"crmProfileId":{"type":"string","example":"69********************4c","description":"Unique identifier for the customer's profile in the Deliverect CRM system."},"sendNotifications":{"type":"boolean","example":true,"description":"Flag to control whether order notifications should be sent to the customer."},"allowMarketing":{"type":"string","nullable":true,"example":null,"description":"Flag to indicate whether the customer has opted in to receive marketing communications."},"sendReceiptSMS":{"type":"string","nullable":true,"example":null,"description":"Flag to control whether the order receipt should be sent via SMS."},"sendReceiptEmail":{"type":"string","nullable":true,"example":null,"description":"Flag to control whether the order receipt should be sent via email."}},"description":"Information about the customer placing the order."},"group":{"description":"Group order details. `null` for non-group baskets.","nullable":true,"type":"object"},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"delivery","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"address":{"type":"object","properties":{"line":{"type":"string","example":"200 Park Avenue South, New York, NY, 10003, US","description":"Full formatted delivery address line.\n\nExample: \"Foreestelaan 82, 9000 Gent, Belgium\""},"subpremise":{"type":"string","example":"Unit #1040","description":"Apartment, suite, unit or floor number."},"street":{"type":"string","example":"Park Avenue South","description":"Street name."},"area":{"type":"string","example":"","description":"Neighbourhood or district."},"city":{"type":"string","example":"New York","description":"City."},"postalCode":{"type":"string","example":"10003","description":"Postal / ZIP code."},"stateOrProvince":{"type":"string","example":"NY","description":"State or province."},"country":{"type":"string","example":"US","description":"Country code (ISO 3166-1 alpha-2)."},"coordinates":{"type":"array","items":{"type":"number","example":40.7369},"description":"Geographical coordinates of the delivery address in `[long, lat]` order, used for precise location mapping and routing.\n\nEg., `[51.03162341734958, 3.7337162550022622]`"},"note":{"type":"string","example":"watch out for the yappy dog","description":"Delivery instructions for the courier."}},"description":"Delivery address information for the order."},"time":{"type":"string","nullable":true,"example":null,"description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*","format":"date-time"},"dropoffType":{"type":"string","nullable":true,"example":null}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"GST","description":"Name of the tax."},"amount":{"type":"integer","example":20,"description":"Total amount for this tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."},"charges":{"type":"object","properties":{"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","example":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"percent","description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","enum":["fixed","percent"]}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Delivery fee details."},"taxTotal":{"type":"integer","example":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Charges applied to the basket."},"preparationTime":{"type":"integer","example":15,"description":"Estimated preparation time for the basket in minutes."},"preparationDelayTime":{"type":"integer","example":0,"description":"Additional delay in minutes added to the preparation time (e.g. when the store is busy)."}}},"order":{"type":"object","properties":{"id":{"type":"string","nullable":true,"example":null,"description":"Unique identifier of the order in Deliverect."},"channelOrderId":{"type":"string","example":"ff********************************72","description":"Your channel's unique ID for this order. Deliverect uses it to reference the order in webhooks and reporting, so it must not be reused. If not supplied, it will be auto-generated."},"channelOrderDisplayId":{"type":"string","example":"fd********************************db","description":"The short reference displayed on the POS, kitchen tickets, and receipts. Keep it concise and human-readable. If not supplied, it will be auto-generated."},"validationId":{"type":"string","example":"6a********************7f","description":"UUID returned by the [Dispatch Availability](https://developers.deliverect.com/v3.0-ordering-experience/reference/post_fulfillment-validate) endpoint which helps to secure a courier and pre-validated delivery job quote"},"status":{"type":"integer","example":0,"description":"Current order status (see list [here](https://developers.deliverect.com/page/order-status#pos-order-statuses))."},"courier":{"type":"string","example":"restaurant","description":"Controls delivery handling. Set `\"restaurant\"` to initiate integrated Deliverect Dispatch flows; any other string (e.g. `\"thirdparty\"`) indicates a third-party courier not managed via Deliverect."},"by":{"type":"string","example":"Web App","description":"The ordering surface or client that placed the order (e.g. `\"Mobile App\"`, `\"Web App\"`, `\"Kiosk\"`). Useful for reporting and support."},"includeCutlery":{"type":"boolean","example":false,"description":"Confirm to store if cutlery is requested with the order"}}},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************08","description":"Unique identifier of this payment entry."},"type":{"type":"string","example":"third_party","description":"Payment types: `dpay` | `gift_card` | `third_party`","enum":["dpay","third_party","gift_card"]},"externalId":{"type":"string","example":"54********************************6b","description":"Reference for the payment: if Deliverect Pay it would be the `paymentId`, for `gift_card` it'd be the transaction ID."},"isPrepaid":{"type":"boolean","example":true,"description":"Whether the amount has already been collected. `false` means the amount is still due (e.g. cash on delivery)."},"instrumentType":{"type":"string","nullable":true,"example":null,"description":"For `third_party` payments only: the underlying instrument, e.g. `cash`, `card`, `online`.","enum":["cash","card","cash_on_delivery","card_on_delivery","online","invoice","other"]},"amount":{"type":"integer","example":599,"description":"The amount of this payment as an integer with 2 decimal digits, for example, 1 dollar is 100."},"status":{"type":"string","example":"unverified","description":"Verification status of this payment entry."},"metadata":{"type":"object","properties":{},"description":"Additional data for the payment as custom key/value pairs."}}},"description":"Payment entries applied to the checkout, as specified in the checkout request."},"paymentSummary":{"type":"object","properties":{"total":{"type":"integer","example":599,"description":"Total amount of the checkout."},"verified":{"type":"integer","example":0,"description":"Amount covered by verified payments."},"pending":{"type":"integer","example":0,"description":"Amount covered by payments still pending verification."},"confirmedAmountDue":{"type":"integer","example":599,"description":"Amount still due after confirmed payments are taken into account."},"availableToAdd":{"type":"integer","example":599,"description":"Amount that can still be added as further payments."}},"description":"Summary of the payment amounts on the checkout."}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the checkout was detected"},"422":{"description":"422","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Payment amount mismatch":{"summary":"Payment amount mismatch","value":{"code":"payment_amount_mismatch","message":"Total of payments does not match basket payment total","context":{"paymentsTotal":1800,"basketTotal":2150},"traceId":"92d5a5dec5a63f1b24a858ade377576a"}},"Unable to create order":{"summary":"Unable to create order","value":{"code":"unable_to_create_order","message":"Failed to create order for checkout: channel timeout","context":{"checkoutId":"66********************b0"},"traceId":"c79632002a245e11d8d95735af8e7e78"}},"Payment profile not found":{"summary":"Payment profile not found","value":{"code":"payment_profile_not_found","message":"Payment gateway profile not found","context":{"paymentProfileId":"66********************b1"},"traceId":"3a968afe88752125896502a70eda1be8"}},"Unable to initialize payment":{"summary":"Unable to initialize payment","value":{"code":"unable_to_initialize_payment","message":"Unable to initialize payment on gateway api. Gateway rejected the request","context":{"paymentProfileId":"66********************b1","checkoutId":"66********************b0"},"traceId":"0b20419effd30c4b7e0edd320d797379"}},"Channel link not found":{"summary":"Channel link not found","value":{"code":"channel_link_not_found","message":"Channel link not found","context":{"channelLinkId":"66********************b2"},"traceId":"6ab282668f4c66d67de580ba5cbb5e35"}},"Checkout session already exists":{"summary":"Checkout session already exists","value":{"code":"checkout_session_already_exists","message":"checkout session already exists for basket","context":{"basketId":"66********************b3","checkoutId":"66********************b0","channelOrderId":"ORDER-1001"},"traceId":"fe0de1f39bad229f97391404bd7de420"}},"Delivery address is required":{"summary":"Delivery address is required","value":{"code":"delivery_address_is_required","message":"Delivery address is required.","context":{},"traceId":"593812d92f2e0f6f319008d49de198cd"}},"Progressive checkouts not enabled":{"summary":"Progressive checkouts not enabled","value":{"code":"progressive_checkouts_not_enabled","message":"Progressive checkouts are not enabled for this channel/account","context":{"accountId":"66********************b4"},"traceId":"a05db69686c9a0eaccd4eb9a29aa8909"}},"Checkout blocked by risk":{"summary":"Checkout blocked by risk","value":{"code":"checkout_blocked_by_risk","message":"Your order could not be processed. Please contact support.","context":{"supportReference":"66********************b3"},"traceId":"9070604480d3de363eb4566d5bf655d0"}}}}}}},"summary":"Complete Checkout","operationId":"commerce-checkout","tags":["Endpoints"]}},"/commerce/{accountId}/baskets":{"post":{"summary":"Create Basket","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["storeId"],"properties":{"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores)."},"channelLinkId":{"type":"string","description":"<Glossary>channelLinkId</Glossary> alternative to `storeId`."},"fulfillment":{"type":"object","description":"Defines how the order will be fulfilled.","required":["type"],"properties":{"type":{"type":"string","enum":["delivery","pickup","curbside","eatIn"],"description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)"},"time":{"type":"string","format":"date-time","description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*"},"address":{"type":"object","description":"Delivery address information for the order. Required when `type` = \"delivery\".","properties":{"line":{"type":"string","description":"Full formatted delivery address line.\n\nExample: \"Foreestelaan 82, 9000 Gent, Belgium\""},"coordinates":{"type":"array","items":{"type":"number"},"description":"Geographical coordinates of the delivery address in `[long, lat]` order, used for precise location mapping and routing.\n\nEg., `[51.03162341734958, 3.7337162550022622]`"}}}}},"spot":{"type":"string","description":"Identifier of the dining spot (such as a table number).\n\nRequired when `type` = \"eatIn\"."},"note":{"type":"string","description":"Optional free-text field that contains special instructions or comments from the customer about the order (e.g., cooking preferences, dietary requests, packaging notes)."},"items":{"type":"array","description":"List of products the customer wants to order.","items":{"type":"object","properties":{"menuId":{"type":"string","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","description":"Unique identifier of the item, to be used when creating orders."},"quantity":{"type":"integer","description":"Number of units of the item added to the basket."},"note":{"type":"string","description":"Special instructions for the item."},"subItems":{"type":"array","description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable).","items":{"type":"object","properties":{"plu":{"type":"string","description":"Unique identifier of the item (modifier)."},"name":{"type":"string"},"quantity":{"type":"integer","description":"Number of times this modifier is applied to the item."},"customizationPlu":{"type":"string","description":"PLU of the modifier group that the `subItem` belongs to."},"menuId":{"type":"string","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."}},"required":["quantity","customizationPlu","plu","menuId"]}}},"required":["menuId","plu","quantity"]}},"customer":{"type":"object","description":"Information about the customer placing the order.","properties":{"name":{"type":"string","description":"Customer’s name, which may consist of their first name and surname initial (can also be empty string)"},"companyName":{"type":"string","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","description":"Customer's contact number for order confirmation or delivery communication.\n\nMust be in E.164 format: `+`, the country code, then the number without its leading `0`, with no spaces or other characters.\n\nEg., \"+12125550123\"","example":"+12125550123"},"email":{"type":"string","format":"email","description":"Customer's email address."},"externalId":{"type":"string","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"type":"string","description":"Unique identifier for the customer in the loyalty provider system."},"tin":{"type":"string","description":"Tax identification or fiscal equivalent number for the customer."},"crmProfileId":{"type":"string","description":"Unique identifier for the customer's profile in the Deliverect CRM system."},"sendNotifications":{"type":"boolean","description":"Flag to control whether order notifications should be sent to the customer."},"allowMarketing":{"type":"boolean","description":"Flag to indicate whether the customer has opted in to receive marketing communications."},"sendReceiptSMS":{"type":"boolean","description":"Flag to control whether the order receipt should be sent via SMS."},"sendReceiptEmail":{"type":"boolean","description":"Flag to control whether the order receipt should be sent via email."}},"required":["name"]}}},"examples":{"Basket Example":{"summary":"Basket Example","value":{"fulfillment":{"type":"delivery","time":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","address":{"line":"200 Park Avenue South, New York, NY, 10003, US","subpremise":"Unit #1040","street":"Park Avenue South","area":"","city":"New York","postalCode":"10003","stateOrProvince":"NY","country":"US","coordinates":[40.7369,-73.9887],"note":"watch out for the yappy dog"}},"storeId":"6a********************33","items":[{"menuId":"cb********************a6","plu":"P-SATE","quantity":1,"note":"Extra Spicy","subItems":[{"plu":"RICE-01","customizationPlu":"P-SATE-MG-RICE-#O0#-","quantity":1,"subItems":[{"plu":"SAUCE-01","customizationPlu":"RICE-01-MG-SAUCES-#O0#-","quantity":2}]},{"plu":"645609032-645609048-#O0#-","customizationPlu":"645609032-MG-#O0#-","quantity":1,"subItems":[{"plu":"654173574-645609056-#O1#-","customizationPlu":"MG-VE-AEKq-2","quantity":1}]}]}],"customer":{"name":"John","companyName":"Doe","phoneNumber":"+12125550123","email":"test@test.com","externalId":"cvqr542r2ef","tin":"1234"}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"examples":{"OK":{"summary":"OK","value":{"id":"6a********************32","channel":10000,"category":{"type":"restaurant"},"currency":"USD","taxExclusive":true,"status":"open","items":[{"id":"6a********************31","menuId":"cb********************a6","plu":"P-SATE","name":"Chicken Sate","quantity":1,"price":450,"gross":1029,"taxes":[{"rate":13500,"name":"GST","amount":139}],"net":1168,"subItems":[{"customizationPlu":"P-SATE-MG-RICE-#O0#-","plu":"RICE-01","name":"White Rice","quantity":1,"price":450,"subItems":[{"customizationPlu":"RICE-01-MG-SAUCES-#O0#-","plu":"SAUCE-01","name":"Sate Sauce","quantity":2,"price":50,"subItems":[],"note":null}],"note":null},{"customizationPlu":"645609032-MG-#O0#-","plu":"645609032-645609048-#O0#-","name":"No Spinach","quantity":1,"price":0,"subItems":[{"customizationPlu":"MG-VE-AEKq-2","plu":"654173574-645609056-#O1#-","name":"Avocado","quantity":1,"price":0,"subItems":[],"note":null}],"note":null}],"discounts":[],"discountTotal":0,"note":"Extra Spicy","preparationTime":null,"customerId":null}],"donations":[{"externalId":"655651434","amount":100,"quantity":1},{"externalId":"655651435","amount":200,"quantity":1}],"payment":{"tips":[],"donationTotal":300,"discountsTotal":0,"chargesTotal":0,"taxTotal":139,"tipTotal":0,"subTotal":1029,"total":1468},"customer":{"name":"John","companyName":"Doe","phoneNumber":"+12125550123","email":"test@test.com","externalId":"cvqr542r2ef","loyaltyProviderCustomerId":"","tin":"1234","crmProfileId":"6a********************55","sendNotifications":true,"allowMarketing":null,"sendReceiptSMS":null,"sendReceiptEmail":null},"group":null,"fulfillment":{"type":"delivery","address":{"line":"200 Park Avenue South, New York, NY, 10003, US","subpremise":"Unit #1040","street":"Park Avenue South","area":"","city":"New York","postalCode":"10003","stateOrProvince":"NY","country":"US","coordinates":[40.7369,-73.9887],"note":"watch out for the yappy dog"},"time":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"},"taxes":[{"name":"GST","amount":139}],"discounts":[],"charges":{"serviceCharge":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0,"type":"fixed"},"bagFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"deliveryFee":{"value":0,"taxRate":0,"gross":0,"tax":0,"net":0},"taxTotal":0,"netTotal":0,"grossTotal":0},"preparationTime":15,"preparationDelayTime":0,"created":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","updated":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","deleted":false,"etag":"5297ffb3c18852dd32e4c8fc5941d24547c11ce0","accountId":"69********************b1","storeId":"6a********************33","channelLinkId":"6a********************33","channelOrderId":null,"channelOrderDisplayId":null}}},"schema":{"type":"object","properties":{"id":{"type":"string","example":"6a********************32","description":"Unique identifier of the basket.\n\nUse this to retrieve the basket via [GET Basket](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-channel-api-baskets-get-basket).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Basket Ids Expiry</strong><br>\n    Basket IDs become invalid once they are used in a completed checkout. If they are not used, they will remain valid for up to 45 days.\n  </p>\n</div>"},"channel":{"type":"integer","example":10000,"default":0,"description":"Global identifier of the ordering channel/platform."},"category":{"type":"object","properties":{"type":{"type":"string","example":"restaurant","description":"Store category type."}},"description":"Business category of the store."},"currency":{"type":"string","example":"USD","description":"Currency of the basket, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) alpha-3 currency code (e.g. `USD`)."},"taxExclusive":{"type":"boolean","example":true,"default":true,"description":"Whether the store's prices exclude tax. `true` means tax is added on top of item prices; `false` means prices already include tax."},"status":{"type":"string","example":"open","description":"Current status of the basket."},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"6a********************31","description":"Unique identifier of the basket item, auto-generated when the item is added. Used to reference the item in subsequent requests (e.g. `itemIds` in discounts)."},"menuId":{"type":"string","example":"cb********************a6","description":"Internal Deliverect menu id. You can retrieve the `menuId` via [GET Store Menu](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-menus)."},"plu":{"type":"string","example":"P-SATE","description":"Unique identifier of the item, to be used when creating orders."},"name":{"type":"string","example":"Chicken Sate","description":"Display name of the item."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of units of the item added to the basket."},"price":{"type":"integer","example":450,"default":0,"description":"Unit price of the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"gross":{"type":"integer","example":1029,"default":0,"description":"Item total before tax, including modifiers and quantity. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxes":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"integer","example":13500,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`."},"name":{"type":"string","example":"GST","description":"Name of the tax."},"amount":{"type":"integer","example":139,"default":0,"description":"Tax amount applied. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Taxes applied to the item."},"net":{"type":"integer","example":1168,"default":0,"description":"Item total including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"P-SATE-MG-RICE-#O0#-","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"RICE-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"White Rice","description":"Display name of the modifier."},"quantity":{"type":"integer","example":1,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":450,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{"customizationPlu":{"type":"string","example":"RICE-01-MG-SAUCES-#O0#-","description":"PLU of the modifier group that the `subItem` belongs to."},"plu":{"type":"string","example":"SAUCE-01","description":"Unique identifier of the item (modifier)."},"name":{"type":"string","example":"Sate Sauce","description":"Display name of the modifier."},"quantity":{"type":"integer","example":2,"default":0,"description":"Number of times this modifier is applied to the item."},"price":{"type":"integer","example":50,"default":0,"description":"Unit price of the modifier. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subItems":{"type":"array","items":{"type":"object","properties":{}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Nested modifiers applied to this modifier. Each entry follows the same structure as its parent `subItem`."},"note":{"description":"Special instructions for the modifier."}}},"description":"Modifiers applied to the parent item. Each `subItem` corresponds to a chosen modifier (where applicable)."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the item, referencing basket-level `discounts` by `referenceId`."},"discountTotal":{"type":"integer","example":0,"default":0,"description":"Total discount applied to the item. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"note":{"type":"string","example":"Extra Spicy","description":"Special instructions for the item."},"preparationTime":{"description":"Item-specific preparation time in minutes, if configured."},"customerId":{"description":"ID of the group basket customer who added the item. `null` for non-group baskets."}}},"description":"List of products the customer wants to order."},"donations":{"type":"array","description":"Donations applied to the basket.","items":{"type":"object","properties":{"externalId":{"type":"string","description":"Unique reference to the donation applied.","example":"655651434"},"amount":{"type":"integer","description":"Amount donated, as an integer with 2 decimal digits (e.g. 100 = 1.00).","example":100},"quantity":{"type":"integer","description":"Number of donations of this type applied to the basket.","example":1}}}},"payment":{"type":"object","properties":{"tips":{"type":"array","items":{"type":"object","properties":{}},"description":"Tips added to the basket."},"donationTotal":{"type":"integer","example":300,"description":"The sum of all donations applied to the basket."},"discountsTotal":{"type":"integer","example":0,"default":0,"description":"Total of all discounts. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"chargesTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges (service charge, bag fee, delivery fee). Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"taxTotal":{"type":"integer","example":139,"default":0,"description":"Total tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tipTotal":{"type":"integer","example":0,"default":0,"description":"Total of all tips. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"subTotal":{"type":"integer","example":1029,"default":0,"description":"The sum of all order items (products + their modifiers/sub-items), before tax, delivery cost, service charge, tip, or discounts are added."},"total":{"type":"integer","example":1468,"default":0,"description":"Final amount payable. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Calculated payment totals for the basket."},"customer":{"type":"object","properties":{"name":{"type":"string","example":"John","description":"Full name of the customer."},"companyName":{"type":"string","example":"Doe","description":"Name of the company or organization associated with the order."},"phoneNumber":{"type":"string","example":"+12125550123","description":"Customer's contact number for order confirmation or delivery communication.\n\nEg., \"+12125550123\""},"email":{"type":"string","example":"test@test.com","description":"Customer's email address.","format":"email"},"externalId":{"type":"string","example":"cvqr542r2ef","description":"External reference ID for the customer in a third-party system."},"loyaltyProviderCustomerId":{"type":"string","example":"","description":"Unique identifier for the customer in the loyalty provider system."},"tin":{"type":"string","example":"1234","description":"Tax identification or fiscal equivalent number for the customer."},"crmProfileId":{"type":"string","example":"6a********************55","description":"Unique identifier for the customer's profile in the Deliverect CRM system."},"sendNotifications":{"type":"boolean","example":true,"default":true,"description":"Flag to control whether order notifications should be sent to the customer."},"allowMarketing":{"description":"Flag to indicate whether the customer has opted in to receive marketing communications."},"sendReceiptSMS":{"description":"Flag to control whether the order receipt should be sent via SMS."},"sendReceiptEmail":{"description":"Flag to control whether the order receipt should be sent via email."}},"description":"Information about the customer placing the order."},"group":{"description":"Group order details. `null` for non-group baskets."},"fulfillment":{"type":"object","properties":{"type":{"type":"string","example":"delivery","description":"Types of orders to be included inside the `fulfillment` object. These are the allowed values:\n\n- `pickup` - Takeaway orders\n- `delivery` - Delivery handled directly by the ordering platform\n- `eatIn` - Orders consumed on premises (dine-in)","enum":["pickup","delivery","eatIn"]},"address":{"type":"object","properties":{"line":{"type":"string","example":"200 Park Avenue South, New York, NY, 10003, US","description":"Full formatted delivery address line.\n\nExample: \"Foreestelaan 82, 9000 Gent, Belgium\""},"subpremise":{"type":"string","example":"Unit #1040","description":"Apartment, suite, unit or floor number."},"street":{"type":"string","example":"Park Avenue South","description":"Street name."},"area":{"type":"string","example":"","description":"Neighbourhood or district."},"city":{"type":"string","example":"New York","description":"City."},"postalCode":{"type":"string","example":"10003","description":"Postal / ZIP code."},"stateOrProvince":{"type":"string","example":"NY","description":"State or province."},"country":{"type":"string","example":"US","description":"Country code (ISO 3166-1 alpha-2)."},"coordinates":{"type":"array","items":{"type":"number","example":40.7369,"default":0},"description":"Geographical coordinates of the delivery address in `[long, lat]` order, used for precise location mapping and routing.\n\nEg., `[51.03162341734958, 3.7337162550022622]`"},"note":{"type":"string","example":"watch out for the yappy dog","description":"Delivery instructions for the courier."}},"description":"Delivery address information for the order."},"time":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp in UTC, `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`. All time values in our API are in UTC time as per [ISO8601](https://en.wikipedia.org/wiki/ISO_8601).\n\n*(For delivery, pickup, and any non-ASAP order.)*","format":"date-time"}},"description":"Defines how the order will be fulfilled."},"taxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"GST","description":"Name of the tax."},"amount":{"type":"integer","example":139,"default":0,"description":"Total amount for this tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}}},"description":"Basket-level tax summary, aggregated by tax name."},"discounts":{"type":"array","items":{"type":"object","properties":{}},"description":"Discounts applied to the basket."},"charges":{"type":"object","properties":{"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"type":{"type":"string","example":"fixed","description":"How the fee is calculated:\n\n- `fixed` - A fixed amount\n- `percent` - A percentage of the basket subtotal","enum":["fixed","percent"]}},"description":"Service charge details."},"bagFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Packaging/bag fee details."},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","example":0,"default":0,"description":"Configured fee value. For `fixed`, an amount expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00; for `percent`, a rate with 3 decimal digits.","format":"int32"},"taxRate":{"type":"integer","example":0,"default":0,"description":"Tax rate with 3 decimal digits, e.g. 10.5% = `10500`.","format":"int32"},"gross":{"type":"integer","example":0,"default":0,"description":"Fee amount before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"tax":{"type":"integer","example":0,"default":0,"description":"Tax applied to the fee. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"net":{"type":"integer","example":0,"default":0,"description":"Fee amount including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Delivery fee details."},"taxTotal":{"type":"integer","example":0,"default":0,"description":"Total tax across all charges. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"netTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges including tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."},"grossTotal":{"type":"integer","example":0,"default":0,"description":"Total of all charges before tax. Expressed as an integer in the smallest currency unit, e.g. 1000 = 10.00."}},"description":"Charges applied to the basket."},"preparationTime":{"type":"integer","example":15,"default":0,"description":"Estimated preparation time for the basket in minutes."},"preparationDelayTime":{"type":"integer","example":0,"default":0,"description":"Additional delay in minutes added to the preparation time (e.g. when the store is busy)."},"created":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was created."},"updated":{"type":"string","example":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","description":"Timestamp for when the basket was last updated."},"deleted":{"type":"boolean","example":false,"default":true,"description":"Whether the basket is in a deleted state."},"etag":{"type":"string","example":"5297ffb3c18852dd32e4c8fc5941d24547c11ce0","description":"Entity tag identifying the current version of the basket. It changes whenever the basket is updated."},"accountId":{"type":"string","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","example":"69********************b1"},"storeId":{"type":"string","description":"A <Glossary>storeId</Glossary> is the unique identifier for a store–channel (ordering platform) at a specific location, and may also be referenced as `channelLinkId`.\n\nTo retrieve the stores existing on a specific location, use [Get Stores](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-stores).","example":"6a********************33"},"channelLinkId":{"type":"string","example":"6a********************33","description":"Alternative to `storeId`."},"channelOrderId":{"description":"Order ID from the ordering channel. `null` until checkout completes."},"channelOrderDisplayId":{"description":"Human-readable order reference. `null` until checkout completes."}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Store not found":{"summary":"Store not found","value":{"error":"store not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object","properties":{"menuId":{"type":"string"},"plu":{"type":"string"}}}}},"examples":{"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"73a156c0d2a9dc4502be08cbe949ac40"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"cff0411a4a5ce137b5a353efd1c83b5b"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"7e4df4393c55c85a308cf7e01dda19b5"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"c2683d2d5304eb93bc65179bc533dc69"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"03fb6339b765521df8df0d1236cb548a"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"fbf74d7665e14e03df25c82dcaa7a7a3"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"0473cfa25c57cde11c86a03355b0e3dd"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"85a503f98203349c87269488edd29351"}}}}}}},"tags":["Endpoints"]}},"/commerce/{accountId}/baskets/{basketId}/reconcile":{"post":{"summary":"Reconcile Basket","parameters":[{"in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","name":"accountId","required":true,"schema":{"type":"string"}},{"in":"path","name":"basketId","required":true,"schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"Basket not found":{"summary":"Basket not found","value":{"error":"basket not found"}},"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}},"409":{"description":"Conflict — a concurrent update to the basket was detected"},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["code","message","context","traceId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"context":{"type":"object"},"traceId":{"type":"string"}}},"examples":{"Basket fails eligibility check during calculation":{"summary":"Basket fails eligibility check during calculation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":1,"externalId":"promo-123"}],"reason":null},"traceId":"40d003cd930e1c99c72ad3a7ca1b1722"}},"Loyalty customer not found":{"summary":"Loyalty customer not found","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":2,"externalId":"prog-456"}],"reason":"Loyalty customer not found"},"traceId":"4a92ccde28be7ee11830146dc645b729"}},"Loyalty program validation error from provider":{"summary":"Loyalty program validation error from provider","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":3,"externalId":"prog-789"}],"reason":"Program is expired"},"traceId":"8fae7db69f39f8e06c3335504d67c87a"}},"Generic loyalty error during program validation":{"summary":"Generic loyalty error during program validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":4,"externalId":"prog-321"}],"reason":"Loyalty error during program discounts validation: timeout"},"traceId":"8d8fa923518da54fabe98a6740177ce0"}},"Program discount returned validation errors from provider":{"summary":"Program discount returned validation errors from provider","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":5,"externalId":"prog-654"}],"reason":"Loyalty program discount validation failed."},"traceId":"d9d2e5e61e39cf9aecba9c27591f3956"}},"More than one wallet cash discount in the order":{"summary":"More than one wallet cash discount in the order","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":6,"externalId":null},{"referenceId":7,"externalId":null}],"reason":"Multiple wallet cash discounts found in order; only one is supported."},"traceId":"a3e587f273ca9e7c5b407d1bef1c6ec2"}},"Loyalty customer not found (wallet cash validation)":{"summary":"Loyalty customer not found (wallet cash validation)","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":8,"externalId":null}],"reason":"Loyalty customer not found during loyalty program wallet validation"},"traceId":"c6113854a4a5bc8230ea7178bad991df"}},"Generic loyalty error during wallet cash validation":{"summary":"Generic loyalty error during wallet cash validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":9,"externalId":null}],"reason":"Loyalty error during wallet cash discount validation: connection refused"},"traceId":"6e91e5edbee49421b4d429dfffabcebb"}},"Wallet cash discount rejected by provider validation":{"summary":"Wallet cash discount rejected by provider validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":10,"externalId":null}],"reason":"Loyalty wallet cash discount validation failed."},"traceId":"02ed528d3bf1c7bd00a16a3b585efe02"}},"Duplicate compensation card externalId in order":{"summary":"Duplicate compensation card externalId in order","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":11,"externalId":"card-111"},{"referenceId":12,"externalId":"card-111"}],"reason":"Duplicate compensation card discounts found in order."},"traceId":"d12cce4d67cf647158eac38a6d5c86db"}},"Loyalty customer not found (compensation card validation)":{"summary":"Loyalty customer not found (compensation card validation)","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":13,"externalId":"card-222"}],"reason":"Loyalty customer not found"},"traceId":"b9fabeced727dffc6dfd761c47a171c6"}},"Generic loyalty error during compensation card validation":{"summary":"Generic loyalty error during compensation card validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":14,"externalId":"card-333"}],"reason":"Loyalty error during compensation card discounts validation: service unavailable"},"traceId":"0f825f9f8dfd9dd002c6add3f5cebfd6"}},"Compensation card rejected/unmatched by provider validation":{"summary":"Compensation card rejected/unmatched by provider validation","value":{"code":"basket_no_longer_eligible_for_discounts","message":"Basket is no longer eligible for discount(s)","context":{"discounts":[{"referenceId":15,"externalId":"card-444"}],"reason":"Loyalty compensation card discount validation failed."},"traceId":"a8c2a412f19a5c328aadefae9eb3e349"}},"Fulfillment type not supported":{"summary":"Fulfillment type not supported","value":{"code":"fulfillment_type_not_supported","message":"Fulfillment type is not supported by the store","context":{"fulfillmentType":"delivery"},"traceId":"4bf92f3577b34da6a3ce929d0e0e4736"}},"Store paused (ASAP order)":{"summary":"Store paused (ASAP order)","value":{"code":"store_paused","message":"Store is currently paused and cannot accept ASAP orders.","context":{},"traceId":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"}},"Invalid fulfillment time":{"summary":"Invalid fulfillment time","value":{"code":"invalid_fulfillment_time","message":"Fulfillment time is invalid. Store is already closed at the requested time. Closes at 22:00 Europe/Amsterdam","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","localFulfillmentTime":"23:15:00","timezone":"Europe/Amsterdam","latestCloseTime":"22:00"},"traceId":"0f1e2d3c4b5a69788796a5b4c3d2e1f0"}},"Menu not found":{"summary":"Menu not found","value":{"code":"menu_not_found","message":"Menu was not found","context":{"menuId":"64********************d1"},"traceId":"9988776655443322110099887766554"}},"Product not found":{"summary":"Product not found","value":{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"1122334455667788990011223344556"}},"Product snoozed":{"summary":"Product snoozed","value":{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"FRIES-L"},"traceId":"aabbccddeeff00112233445566778899"}},"Product customization not found":{"summary":"Product customization not found","value":{"code":"product_customization_not_found","message":"Product customization was not found. It is not present in the menu","context":{"menuId":"64********************d1","plu":"SAUCE-BBQ"},"traceId":"5566778899001122334455667788990"}},"Discount eligible items missing":{"summary":"Discount eligible items missing","value":{"code":"discount_eligible_items_missing","message":"Discount-eligible items are missing","context":{"itemIds":["1","2"],"type":"item_percent_off","referenceId":1,"externalId":"promo-abc"},"traceId":"6677889900112233445566778899001"}},"Unable to calculate taxes":{"summary":"Unable to calculate taxes","value":{"code":"unable_to_calculate_taxes","message":"Unable to calculate taxes for the basket.","context":{},"traceId":"0011223344556677889900112233445"}},"Product fulfillment type not supported":{"summary":"Product fulfillment type not supported","value":{"code":"product_fulfillment_not_supported","message":"Product does not support the requested fulfillment type","context":{"menuId":"64********************d1","plu":"BURGER-01","fulfillmentType":"delivery"},"traceId":"224ec5a7122ddeed5d7ffbd9310b2f8b"}},"Product unavailable":{"summary":"Product unavailable","value":{"code":"product_unavailable","message":"Product unavailable. The product belongs to a category (or categories) that is (are) unavailable at the time.","context":{"fulfillmentTime":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ","plu":"BURGER-01","menuId":"64********************d1"},"traceId":"d469dfe6494f742606eb5f9eb3e32d4d"}},"Product maximum quantity exceeded":{"summary":"Product maximum quantity exceeded","value":{"code":"product_max_quantity_exceeded","message":"At most 5 allowed for the product BURGER-01","context":{"menuId":"64********************d1","plu":"BURGER-01","maxAllowed":5,"actualQuantity":7},"traceId":"ab475a8c97943665bb148e89c2da6a96"}},"Product requires modifiers":{"summary":"Product requires modifiers","value":{"code":"product_requires_modifiers","message":"Product BURGER-01 requires modifiers to be selected","context":{"menuId":"64********************d1","plu":"BURGER-01"},"traceId":"d88c12386a5b9aea80e875cac0c7e9e8"}},"Customization minimum selection not met":{"summary":"Customization minimum selection not met","value":{"code":"customization_min_selection_not_met","message":"At least 1 items must be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","minRequired":1,"actualQuantity":0},"traceId":"478c54a9368324e2fb0f1ef73e99a54d"}},"Customization maximum selection exceeded":{"summary":"Customization maximum selection exceeded","value":{"code":"customization_max_selection_exceeded","message":"At most 2 items can be selected for this customization group","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","maxAllowed":2,"actualQuantity":3},"traceId":"a9cab52d0d2199af25e70e9a9821a45c"}},"Customization multi-maximum selection exceeded":{"summary":"Customization multi-maximum selection exceeded","value":{"code":"customization_multi_max_selection_exceeded","message":"At most 1 of the same item allowed in customization","context":{"menuId":"64********************d1","customizationPlu":"MOD-SAUCES","multiMaxAllowed":1,"plu":"SAUCE-BBQ"},"traceId":"9e93036e1a24d44e0f6c7f130f81a368"}},"Grouped product errors":{"summary":"Grouped product errors","value":{"code":"grouped_errors","message":"2 product(s) could not be added to the basket","context":{"errors":[{"code":"product_not_found","message":"Product was not found","context":{"menuId":"64********************d1","plu":"missing-1","fulfillmentType":"pickup"}},{"code":"product_snoozed","message":"Product is currently snoozed","context":{"menuId":"64********************d1","plu":"snoozed-1"}}]},"traceId":"1530dc84458cf62320e53b6bdf5cb878"}}}}}}},"tags":["Endpoints"]}},"/commerce/{accountId}/stores":{"get":{"tags":["Endpoints"],"summary":"Get Stores","operationId":"commerce-channel-api-stores-get-stores","parameters":[{"name":"accountId","in":"path","description":"<Glossary>accountId</Glossary> is the unique identifier of the customer account in Deliverect","schema":{"type":"string"},"required":true},{"name":"page","in":"query","description":"Page to be returned","schema":{"type":"integer","format":"int32","default":1},"example":1},{"name":"size","in":"query","description":"Number of stores to be returned per page - Max: 100","schema":{"type":"integer","format":"int32","default":50},"example":20},{"name":"latitude","in":"query","description":"Reference latitude coordinate to calculate store distance. Querying by `latitude` & `longitude` returns stores with a `distance` attribute representing, in metres, how far the store is from the given coordinates. To sort results by distance, add `&sort=distance`.","schema":{"type":"number","format":"float"},"example":30.4515},{"name":"longitude","in":"query","description":"Reference longitude coordinate to calculate store distance. Querying by `latitude` & `longitude` returns stores with a `distance` attribute representing, in metres, how far the store is from the given coordinates. To sort results by distance, add `&sort=distance`.","schema":{"type":"number","format":"float"},"example":-91.1871},{"name":"sort","in":"query","schema":{"type":"string","default":"distance","enum":["distance"]},"description":"Attribute to sort results by (requires `latitude` & `longitude` to be supplied).\n\n<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    <strong>Maximum Search Radius</strong><br>\n    Only stores within 30 km of the provided coordinates are returned. If no stores are within this range, no results are returned.\n  </p>\n</div>","example":"distance"},{"name":"fulfillmentType","in":"query","description":"Refines the stores returned to those supporting the specified fulfillment type(s). Combine multiple types (comma-separated) to match stores supporting any of the specified types.","schema":{"type":"string","enum":["pickup","delivery","eatIn","curbside"]},"example":"delivery"}],"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":{"total":14,"page":1,"size":10,"items":[{"id":"65********************59","channelLinkId":"65********************59","name":"Store Name","currency":"USD","channel":20000,"address":{"source":"350 5th Ave, New York, NY 10118","coordinates":[-73.985428,40.748817],"street":"5th Ave","houseNumber":"350","country":"US","city":"New York","stateOrProvince":"NY","postalCode":"10118"},"openingHours":{"timezone":"America/New_York","dayTimeRanges":[{"dayOfWeek":1,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":2,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":3,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":4,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":5,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":6,"startTime":"00:00:00","endTime":"23:59:00"},{"dayOfWeek":7,"startTime":"00:00:00","endTime":"23:59:00"}],"specialHours":[{"name":"4th July","start":"2026-07-04","end":"2026-07-04","days":[{"date":"2026-07-04","holiday":false,"openingHours":[{"begin":"09:00:00","end":"12:00:00"}]}]},{"name":"Xmas Eve","start":"2026-12-24","end":"2026-12-24","days":[{"date":"2026-12-24","holiday":false,"openingHours":[{"begin":"09:00:00","end":"22:00:00"}]}]}]},"distance":1235,"taxExclusive":false,"status":"open","preparationTimeDelay":0,"channelLocationId":"STORE0005","contact":{"firstName":"John","lastName":"Doe","phoneNumber":"+12125550123","email":"john.doe@acme.com"},"settings":{"pickup":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"delivery":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":350,"taxRate":0,"type":"fixed"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30},"averageDeliveryTime":900,"averageDeliveryTimeMinutes":15,"deliveryFee":{"value":0,"taxRate":0}},"eatIn":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":50,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"curbside":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"driveThru":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}}},"fulfillmentTypes":["pickup","delivery","eatIn"]},{"id":"65********************60","channelLinkId":"65********************60","name":"Store Name 2","currency":"USD","channel":20000,"address":{"source":"20 W 34th St, New York, NY 10001","coordinates":[-73.9857,40.7505],"country":"US","city":"New York","stateOrProvince":"NY","postalCode":"10001"},"openingHours":{"timezone":"America/New_York","dayTimeRanges":[],"specialHours":[{"name":"4th July","start":"2026-07-04","end":"2026-07-04","days":[{"date":"2026-07-04","holiday":false,"openingHours":[{"begin":"09:00:00","end":"12:00:00"}]}]},{"name":"Xmas Eve","start":"2026-12-24","end":"2026-12-24","days":[{"date":"2026-12-24","holiday":false,"openingHours":[{"begin":"09:00:00","end":"22:00:00"}]}]}]},"distance":890,"taxExclusive":false,"status":"closed","preparationTimeDelay":0,"channelLocationId":"","settings":{"pickup":{"enabled":true,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"delivery":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":350,"taxRate":0,"type":"fixed"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30},"averageDeliveryTime":900,"averageDeliveryTimeMinutes":15,"deliveryFee":{"value":0,"taxRate":0}},"eatIn":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":50,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"curbside":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}},"driveThru":{"enabled":false,"averagePreparationTime":900,"averagePreparationTimeMinutes":15,"serviceCharge":{"value":3000,"taxRate":0,"type":"percent"},"bagFee":{"value":250,"taxRate":0},"openingHours":[],"scheduling":{"acceptsAsapOrders":false,"acceptsPreOrders":false,"acceptsSameDayPreOrders":false,"minimumLeadTimeInMinutes":30,"maximumDaysInAdvance":30,"slotLengthInMinutes":30}}},"fulfillmentTypes":["pickup"]}]}}},"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of stores returned by the query","example":14,"default":0},"page":{"type":"integer","description":"Current page number of the paginated response","example":1,"default":0},"size":{"type":"integer","description":"Number of store records returned per page","example":10,"default":0},"items":{"type":"array","description":"List of store objects. Each object contains details about one store location.","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the Deliverect store, referred to as `channelLinkId` in basket and checkout processing","example":"65********************59"},"channelLinkId":{"type":"string","description":"Identifier linking the store to a sales channel (same value as `id`)","example":"65********************59"},"channelLocationId":{"type":"string","description":"A location identifier known to the channel platform (set within channel settings)","example":"STORE0005"},"channel":{"type":"integer","description":"Global identifier of the ordering channel/platform","example":19066},"name":{"type":"string","description":"Assigned name for the specific store in Deliverect (not necessarily a customer facing store name)","example":"Store Name"},"currency":{"type":"string","description":"Default currency used at this store for transactions. See list of currencies <a href=\"https://developers.deliverect.com/page/list-of-currencies\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","example":"USD"},"address":{"type":"object","description":"Store's address details, including source, coordinates, and location info (country, city, state)","properties":{"source":{"type":"string","description":"Full address as a single string","example":"1 Main street D13 R2P6 Ghent VOV"},"coordinates":{"type":"array","description":"Longitude and Latitude of the store. Example: [25.276987, 55.296249]","items":{"type":"number","example":3.73398891371018}},"country":{"type":"string","description":"Country where the store is located","example":"BE"},"city":{"type":"string","description":"City of the store","example":"Ghent"},"stateOrProvince":{"type":"string","description":"State or province of the store","example":"VOV"},"postalCode":{"type":"string","description":"Postal / ZIP code","example":"9000"},"street":{"type":"string"},"houseNumber":{"type":"string"}}},"openingHours":{"type":"object","description":"Store's standard operating hours by day of week, including timezone. See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"specialHours":{"type":"array","description":"Exceptions to regular hours (holidays, special events)","items":{"type":"object","properties":{"name":{"type":"string","description":"Label for the special-hours period","example":"4th July"},"start":{"type":"string","description":"First date of the special-hours period (`YYYY-MM-DD`)","example":"2026-07-04"},"end":{"type":"string","description":"Last date of the special-hours period (`YYYY-MM-DD`)","example":"2026-07-04"},"days":{"type":"array","description":"Per-date detail within the special period","items":{"type":"object","properties":{"date":{"type":"string","description":"The specific date the exception applies to","example":"2026-07-04"},"holiday":{"type":"boolean","description":"Whether the store is fully closed (holiday) on this date","example":false},"openingHours":{"type":"array","description":"Time ranges the store is open on this date","items":{"type":"object","properties":{"begin":{"type":"string","description":"Local opening time on the special date","example":"09:00:00"},"end":{"type":"string","description":"Local closing time on the special date","example":"12:00:00"}}}}}}}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"taxExclusive":{"type":"boolean","description":"Indicates whether store prices are tax-exclusive (true) or tax-inclusive (false)","example":true},"status":{"type":"string","description":"Current operating status of the store. See more info on statuses <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-status\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","enum":["open","busy","paused","closed"],"example":"open"},"preparationTimeDelay":{"type":"integer","description":"Additional delay (in minutes) added to preparation time before an order is ready","example":0},"contact":{"type":"object","description":"Contact details of the person who is managing the store","properties":{"firstName":{"type":"string","description":"First name of contact person","example":"John"},"lastName":{"type":"string","description":"Last name of contact person","example":"Doe"},"phoneNumber":{"type":"string","description":"Contact phone number","example":"+12125550123"},"email":{"type":"string","description":"Contact email address","example":"john.doe@acme.com"}}},"settings":{"type":"object","description":"Configuration of each fulfillment type's fees, timing, and scheduling rules","properties":{"pickup":{"type":"object","description":"Settings for the `pickup` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"delivery":{"type":"object","description":"Settings for the `delivery` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}},"averageDeliveryTime":{"type":"integer","description":"Average delivery time in seconds","example":900},"averageDeliveryTimeMinutes":{"type":"integer","description":"Average delivery time in minutes (same value as above)","example":15},"deliveryFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Delivery fee details (value, taxRate)"}}},"eatIn":{"type":"object","description":"Settings for the `eatIn` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"curbside":{"type":"object","description":"Settings for the `curbside` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}},"driveThru":{"type":"object","description":"Settings for the `driveThru` fulfillment type","properties":{"enabled":{"type":"boolean","description":"Whether this fulfillment type is active","example":true},"averagePreparationTime":{"type":"integer","description":"Average preparation time in seconds","example":900},"averagePreparationTimeMinutes":{"type":"integer","description":"Average preparation time in minutes","example":15},"serviceCharge":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0},"type":{"type":"string","enum":["fixed","percent"],"description":"How the fee is calculated","example":"percent"}},"description":"Service charge details"},"bagFee":{"type":"object","properties":{"value":{"type":"integer","description":"Fee amount expressed as integer with 2 decimal digits, e.g. $1 = 100","example":250},"taxRate":{"type":"integer","description":"Tax rate applied to the fee (3 decimal digits, e.g. 5% = `5000`)","example":0}},"description":"Packaging/bag fee"},"openingHours":{"type":"array","description":"Channel-specific opening hours (empty = store hours apply). See more info on store opening hours <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/docs/how-to-retrieve-store-details#store-opening-hours\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.","items":{"type":"object","description":"Store's standard operating hours by day of week, including timezone","properties":{"timezone":{"type":"string","description":"Timezone identifier (IANA / TZ format)","example":"Europe/Brussels"},"dayTimeRanges":{"type":"array","description":"Opening/closing intervals for each weekday","items":{"type":"object","properties":{"dayOfWeek":{"type":"integer","description":"Day of the week (`1` = Monday, `7` = Sunday)","example":1},"startTime":{"type":"string","description":"Local opening time (`HH:mm:ss`)","example":"00:00:00"},"endTime":{"type":"string","description":"Local closing time (`HH:mm:ss`)","example":"23:59:00"}}}},"scheduling":{"type":"object","description":"Store-level order scheduling rules","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}},"scheduling":{"type":"object","description":"Channel-specific scheduling rules (same fields as `openingHours.scheduling`)","properties":{"acceptsAsapOrders":{"type":"boolean","description":"Whether \"as soon as possible\" orders are accepted","example":false},"acceptsPreOrders":{"type":"boolean","description":"Whether orders can be scheduled for a future date","example":false},"acceptsSameDayPreOrders":{"type":"boolean","description":"Whether pre-orders for later the same day are accepted","example":false},"minimumLeadTimeInMinutes":{"type":"integer","description":"Minimum notice required before an order's fulfilment time","example":30},"maximumDaysInAdvance":{"type":"integer","description":"How far in the future orders can be scheduled (days)","example":30},"slotLengthInMinutes":{"type":"integer","description":"Length of each bookable time slot (minutes)","example":30}}}}}}},"fulfillmentTypes":{"type":"array","description":"Fulfillment types enabled for this store","items":{"type":"string","enum":["pickup","delivery","eatIn","curbside","driveThru"],"example":"pickup"}},"distance":{"type":["integer","null"],"description":"Distance in meters from the reference coordinates, returned when `?latitude=` and `?longitude=` are supplied; `null` otherwise","example":1235}}}}}}}}},"400":{"description":"400","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}},"examples":{"Insufficient permissions":{"summary":"Insufficient permissions","value":{"code":"insufficient_permissions","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"examples":{"Account not found":{"summary":"Account not found","value":{"error":"account not found","http_code":404,"description":"account not found"}}}}}}},"deprecated":false}}},"webhooks":{"https://yourwebhook.com/checkout_update":{"post":{"tags":["Webhooks"],"summary":"Checkout Update","description":"","operationId":"commerce_checkout_update","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locationId":{"type":"string","description":"Unique customer <Glossary>locationId</Glossary> of the store the checkout was placed at."},"channelLinkId":{"type":"string","description":"The <Glossary>channelLinkId</Glossary> is the unique identifier of the store the checkout was placed at."},"checkoutId":{"type":"string","description":"Unique identifier of the checkout session, can also be retrieved via [Get Checkout](https://developers.deliverect.com/v3.0-ordering-experience/reference/commerce-get-checkout)."},"status":{"type":"string","description":"Final checkout processing status.","enum":["completed","failed"]},"reason":{"type":["string","null"],"description":"Where available, the reason a checkout failed, will be `null` when the checkout is completed successfully"},"updatedAt":{"type":"string","description":"Timestamp when the checkout status was last updated, in the format `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`.","format":"date-time"}}},"examples":{"Checkout Completed":{"summary":"Checkout Completed","description":"The webhook event will confirm orders as either completed (successfully created in POS) or failed (an unexpected error has occurred).","value":{"locationId":"61********************a1","channelLinkId":"62********************7c","checkoutId":"61********************c3","status":"completed","reason":null,"updatedAt":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}},"Checkout Failed":{"summary":"Checkout Failed","description":"The webhook event will confirm orders as either completed (successfully created in POS) or failed (an unexpected error has occurred).","value":{"locationId":"61********************a1","channelLinkId":"62********************7c","checkoutId":"61********************c3","status":"failed","reason":"order failed","updatedAt":"yyyy-MM-ddTHH:mm:ss.SSSSSSZ"}}}}}},"responses":{"200":{"description":"200","content":{"application/json":{"examples":{"Result":{"value":"{}"}},"schema":{"type":"object","properties":{}}}}}},"deprecated":false,"x-readme":{"explorer-enabled":false,"code-samples":[{"language":"json","name":"Checkout Completed","code":"{\n  \"locationId\": \"61********************a1\",\n  \"channelLinkId\": \"62********************7c\",\n  \"checkoutId\": \"61********************c3\",\n  \"status\": \"completed\",\n  \"reason\": null,\n  \"updatedAt\": \"yyyy-MM-ddTHH:mm:ss.SSSSSSZ\"\n}","correspondingExample":"Checkout Completed"},{"language":"json","name":"Checkout Failed","code":"{\n  \"locationId\": \"61********************a1\",\n  \"channelLinkId\": \"62********************7c\",\n  \"checkoutId\": \"61********************c3\",\n  \"status\": \"failed\",\n  \"reason\": \"order failed\",\n  \"updatedAt\": \"yyyy-MM-ddTHH:mm:ss.SSSSSSZ\"\n}","correspondingExample":"Checkout Failed"}]},"parameters":[{"name":"Content-Type","in":"header","description":"application/json","schema":{"type":"string","default":"application/json"}},{"name":"Accept","in":"header","description":"application/json","schema":{"type":"string","default":"application/json"}},{"name":"User-Agent","in":"header","required":true,"description":"Identifies Deliverect as the sender of the webhook, in the format `Deliverect/{version}`.","schema":{"type":"string","default":"Deliverect/{version}"}},{"name":"X-Server-Authorization-HMAC-SHA256","in":"header","required":true,"description":"HMAC-SHA256 signature of the raw request body, generated with your shared secret. Recompute the signature on receipt and compare it to this value to verify the request came from Deliverect (see the <a href=\"https://developers.deliverect.com/reference/hmac-authentication\" target=\"_blank\" rel=\"noopener noreferrer\">HMAC authentication guide</a>).","schema":{"type":"string","default":"{signature}"}}],"security":[]}}}}