Menu - Payload format
10 min
Payloads from Partner API and Oracle for each menu structure.
Partner API structure examples: Orders API - Cart Structure Examples
Contents
Oracle Symphony API Guide & Agreements
https://docs.oracle.com/en/industries/food-beverage/simphony/19.4/stsgg/F56815_08.pdf
https://rbictg.atlassian.net/wiki/spaces/ORACLE/pages/5188354087
Items
Single item
"cart": {
"menuSelections": [
{
"externalReferenceId": "801500",
"id": "item_67165",
"menuSelections": [],
"price": {
"amount": 649,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
}
]
}
{
"menuItems": [
{
"menuItemId": 1001001, // PLU of the single Whopper no cheese. This is the unique identifier per organization (e.g. BK UK, BK DE).
"name": {
"en-US": "Whopper", // This name comes from the menu item master
"es-MX": "Whopper s/Q"
},
"familyGroupRef": 10001, // Used for reporting purposes
"definitions": [
{
"definitionSequence": 2, //This determines the channel (delivery) and the price
"name": {
"en-US": "Whopper", // Names used in the POS specific to the definition sequence
"es-MX": "Whopper s/Q"
},
"name2": {}, // Alternative name to display in KDS
"slus": [
{
"sluNumber": 1, // Screen where item is displayed in the POS (e.g. display in scree named 'A LA CARTA')
"sluId": 101,
"name": {
"en-US": "A LA CARTA DEV"
}
}
],
"prices": [
{
"priceSequence": 1, // Delivery
"price": 119,
"name": "Integrador"
},
{
"priceSequence": 2, // Non-integrated delivery
"price": 119 // Same price for both
}
],
"defaultCondiments": [
{ // Condiuments that come by defaul with the product (i.e. recipe). E.g. tomato, lettuce, bun...
"condimentRef": 9102001,
"quantity": 1
},
{
"condimentRef": 9012002,
"quantity": 1
},
{
"condimentRef": 9012006,
"quantity": 1
},
{
"condimentRef": 9072006,
"quantity": 1
},
{
"condimentRef": 9012009,
"quantity": 2
},
{
"condimentRef": 9012007,
"quantity": 1
},
{
"condimentRef": 9012003,
"quantity": 1
},
{
"condimentRef": 9012008,
"quantity": 4
},
{
"condimentRef": 9055023,
"quantity": 1
}
],
"condimentGroupRules": [
{ // Each of these condiment groups refer to multiple modifiers.
"condimentGroupRef": 121,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 122, // Condiment group 'Lg Burger Extras'. The condimentGroup has condimentGroupIds which represent each of the modifier PLUs that can be added to this Whopper.
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 123,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 256,
"minimumCount": 0,
"maximumCount": 0
}
],
"consumerName": { // Name not used by the POS but used to display to customer. Used for 3P consuming the menu.
"en-US": null,
"es-MX": "Whopper sin Queso"
},
"consumerDescription": { // Description not used by the POS but used to display to customer. Used for 3P consuming the menu.
"en-US": null,
"es-MX": "Consumer Item Desc"
},
"images": [
{ //Images configured in the POS, used for the POS screen.
"index": "1",
"url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
},
{
"index": "3",
"url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
},
{
"index": "6",
"url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/oraclegbuprod/b/IC_FBGBU_SS_54416_bt-sim-230712013344-BUK-6e3d4c47-94fb-42e8-a7bb-9c87ae600a37/o/BUK230731151512503.png",
"description": "@POS",
"isCloudImage": true,
"size": "Size: 171 kb, png: 400 x 400 px"
}
],
"consumerAdvisoryText": {}, // E.g. contains gluten.
"nutritionalData": [ //Nutritional info. Markets generally don't maintain it.
{
"nutritionalItemId": "calories",
"value": 670,
"unitOfMeasure": "Calories",
"name": {
"en-US": "Calories"
}
}
],
"extensions": { // Additional info that can be used by third parties.
"PLU - Item": "20100",
"PLU - Combo Sm": "3020100",
"PLU - Combo Md": "3020101",
"PLU - Combo Lg": "3020102"
},
"taxClassRef": 20 // Defines how to tax the item. The taxClass 20 will define what the VAT is, etc.
},
{
"definitionSequence": 1, // This is the same as above but for in-store (sequence 1)
"name": {
"en-US": "Whopper",
"es-MX": "Whopper s/Q"
},
"name2": {},
"slus": [
{
"sluNumber": 1,
"sluId": 100,
"name": {
"en-US": "Whoppers"
}
}
],
"prices": [
{
"priceSequence": 1,
"price": 109
}
],
"defaultCondiments": [
{
"condimentRef": 9102001,
"quantity": 1
},
{
"condimentRef": 9012002,
"quantity": 1
},
{
"condimentRef": 9012006,
"quantity": 1
},
{
"condimentRef": 9072006,
"quantity": 1
},
{
"condimentRef": 9012009,
"quantity": 2
},
{
"condimentRef": 9012007,
"quantity": 1
},
{
"condimentRef": 9012003,
"quantity": 1
},
{
"condimentRef": 9012008,
"quantity": 4
},
{
"condimentRef": 9055023,
"quantity": 1
}
],
"condimentGroupRules": [
{
"condimentGroupRef": 91,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 92,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 93,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 121,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 122,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 123,
"minimumCount": 0,
"maximumCount": 0
},
{
"condimentGroupRef": 256,
"minimumCount": 0,
"maximumCount": 0
}
],
"consumerName": {
"en-US": null,
"es-MX": "Whopper sin Queso"
},
"consumerDescription": {
"en-US": null,
"es-MX": "Consumer Item Desc"
},
"images": [
{
"index": "1",
"url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
},
{
"index": "3",
"url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
},
{
"index": "6",
"url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/oraclegbuprod/b/IC_FBGBU_SS_54416_bt-sim-230712013344-BUK-6e3d4c47-94fb-42e8-a7bb-9c87ae600a37/o/BUK230731151512503.png",
"description": "@POS",
"isCloudImage": true,
"size": "Size: 171 kb, png: 400 x 400 px"
}
],
"consumerAdvisoryText": {},
"nutritionalData": [
{
"nutritionalItemId": "calories",
"value": 670,
"unitOfMeasure": "Calories",
"name": {
"en-US": "Calories"
}
}
],
"extensions": {
"PLU - Item": "20100",
"PLU - Combo Sm": "3020100",
"PLU - Combo Md": "3020101",
"PLU - Combo Lg": "3020102"
},
"taxClassRef": 20
}
]
}
{
"header": {
"orgShortName": "{{OrgShortName}}", // org name
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}}, // revenue center
"idempotencyId": "{{$guid}}", // single ID
"orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
"checkEmployeeRef": {{check_employee_ref}},
"informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
}
,
"menuItems": [
{ "menuItemId":1001001, // Whopper PLU
"definitionSequence": 1, // In-store (def 1)
"quantity": 1 // Number of Whoppers
}
],
"tenders": [
{
"tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method.
}
]
}
Item with modifiers
"cart": {
"menuSelections": [
{
"externalReferenceId": "801500",
"id": "item_67165",
"menuSelections": [
{
"externalReferenceId": "940289",
"id": "34933841d0e7",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "ItemOptionModifier"
},
{
"externalReferenceId": "940294",
"id": "2fb34e217cf2",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "ItemOptionModifier"
}
],
"price": {
"amount": 649,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
}
]
},
The following payloads are from BK MX and are not up to date/standard. We won’t use definitionSequence 1, 2 for different service modes.
Condiment Group
"condimentGroups": [
{
"condimentGroupId": 125, // Condiment groups are referenced in single menu items
"name": {
"en-US": "Sm Burger Extras"
},
"condimentItemRefs": [ // These are modifier PLUs
9005004,
9011005,
9011010,
9011012,
9021004,
9055001,
9055004,
9055021,
9055022,
9011018,
9011013,
9055025
],
"consumerDescription": {
"en-US": null
}
},
Condiment Item. This applies also to defaultCondiments
"condimentItems": [
{
"name": { // Name of the condiment (modifier)
"en-US": "Ham",
"es-MX": "Jamon"
},
"condimentId": 9005004, // PLU of the condiment
"familyGroupRef": 60002, // Reporting ID
"definitions": [
{
"number": 2, // It can sold for delivery, definition 2
"name": {
"en-US": "Ham",
"es-MX": "Jamon"
},
"name2": {}, // Secondary name
"prices": [
{
"priceSequence": 1,
"price": 0,
"name": "Default" // Oracle uses prefixes for different quantities of the modifier. But this can also be individual PLUs
},
{
"priceSequence": 2,
"price": 0,
"name": "Add"
},
{
"priceSequence": 5,
"price": 0,
"name": "Sub"
},
{
"priceSequence": 8,
"price": 0,
"name": "Extra"
},
{
"priceSequence": 3,
"price": 0,
"name": "No"
},
{
"priceSequence": 4,
"price": 0, // price you charge for heavy ham
"name": "Hvy"
}
]
},
{
"number": 1, // Same for definition 1, in-restaurant
"name": {
"en-US": "Ham",
"es-MX": "Jamon"
},
"name2": {},
"prices": [
{
"priceSequence": 2,
"price": 19,
"name": "Add"
},
{
"priceSequence": 3,
"price": 0,
"name": "No"
},
{
"priceSequence": 4,
"price": 0,
"name": "Hvy"
},
{
"priceSequence": 5,
"price": 0,
"name": "Sub"
},
{
"priceSequence": 6,
"price": 0,
"name": "Add"
},
{
"priceSequence": 7,
"price": 0,
"name": "No"
},
{
"priceSequence": 8,
"price": 0,
"name": "Extra"
},
{
"priceSequence": 1,
"price": 0,
"name": "Default"
}
]
}
]
}
{
"header": {
"orgShortName": "{{OrgShortName}}", // org name
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}}, // revenue center
"idempotencyId": "{{$guid}}", // single ID
"orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
"checkEmployeeRef": {{check_employee_ref}},
"informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
}
,
"menuItems": [
{ "menuItemId":1001001, // Whopper PLU
"definitionSequence": 1, // In-store (def 1)
"quantity": 1, // Number of Whoppers
"condiments": [ // No patty modifier.
{
"condimentId": 9072006, // PLU of the modifier/condiment. Whopper patty.
"priceSequence": 3, // Prefix of the modifier. This is the "No" modifier. If you want an additional patty, this would be 2.
"quantity": 1 // This determines the quantity of the modifier. E.g. add 2 whopper patties would be quantity 2.
}
]
}
],
"tenders": [
{
"tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method.
}
]
}
Combos
Oracle can only handle up to 10,000 combos.
Single combo
"cart": {
"menuSelections": [
{
"externalReferenceId": "940269",
"id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
"menuSelections": [
{
"externalReferenceId": "801500",
"id": "item_67165",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "942214",
"id": "item_50929",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "942215",
"id": "item_66018",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "940325",
"id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
}
],
"price": {
"amount": 849,
"currency": "EUR"
},
"quantity": 1,
"type": "Combo"
}
]
},
"comboMeals": [
{
"comboMealId": 1001002, // Combo Meal definition, internal for Oracle
"name": "Whopper Cmb",
"menuItemRef": 1001002, // Combo PLU
"comboGroups": [
{
"comboGroupId": 1001,
"name": "Whopper",
"count": 1, // Quantity. How many items need to be selected.
"isMainGroup": true, // This is the main item
"menuItems": [
{
"menuItemRef": 1001001, // This is the main item PLU. Same PLU as the Whopper ALC. You use it to validate availability.
"count": 1, // Quantity, tells you the quantity of this item inside of the group
"prices": [] // Price is not set inside of the combo.
}
],
"prices": []
},
{
"comboGroupId": 202,
"name": "Drnk (S)",
"count": 1, // Select 1 drink.
"isMainGroup": false, // This is the drinks side.
"menuItems": [ // List of all option drinks.
{
"menuItemRef": 2102003, // Drink PLU
"count": 1,
"prices": [] // No additional price as it is included in the combo build.
},
{
"menuItemRef": 2103003,
"count": 1,
"prices": [
{
"priceSequence": 1,
"price": 10 // Aditional price as this is a larger drink vs what's included in the combo. E.g. medium drink for a small combo.
}
]
},
{
"menuItemRef": 2104003,
"count": 1,
"prices": [
{
"priceSequence": 1,
"price": 12.5 // Aditional price as this is a larger drink vs what's included in the combo. E.g. large drink for a small combo.
}
]
},
],
"prices": []
},
{
"comboGroupId": 102,
"name": "Sides",
"count": 1,
"isMainGroup": false,
"menuItems": [
{
"menuItemRef": 1013301, // This could be the Medium fries PLU. This PLU might have modifiers defined in the menu item defintiion (e.g. add salt).
"count": 1,
"prices": [
{
"priceSequence": 1,
"price": 10 // Premium price as this could be medium fries for a small combo.
}
]
},
{
"menuItemRef": 1013401,
"count": 1,
"prices": [
{
"priceSequence": 1,
"price": 12.5
}
]
},
{
"menuItemRef": 1013202,
"count": 1,
"prices": []
}
],
"prices": []
}
]
}
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}},
"language": "es-ES",
"Accept-Language": "es-ES"
},
"menuItems": [], // this is just for single items
"comboMeals": [ // this is for combos
{
"comboMealId": 1001002, // whopper combo meal ID
"comboItem": {
"menuItemId": 1001002, // whopper combo PLU
"definitionSequence": 1, //in-store sequence
"quantity": 1 // number of combos
},
"mainItem": {
"menuItemId": 1001421, // PLU of the whopper ALC
"definitionSequence": 1,
"quantity": 1,
"condiments": [
{
"condimentId": 9011017, // condiment/modifier PLU for lettuce
"priceSequence": 3, // this determines the prefix of the condiment. in this case, "no"
"quantity": 1
}
]
},
"sideItems": [
{
"menuItemId": 1013201, // small fries PLU
"definitionSequence": 1,
"quantity": 1
},
{
"menuItemId": 2102002, // small pepsi PLU
"definitionSequence": 1,
"quantity": 1
}
]
}
],
"tenders": [
{
"tenderId": 901 // pay at counter PLU
}
]
}
Combo with modifiers on items
"cart": {
"menuSelections": [
{
"externalReferenceId": "940269",
"id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
"menuSelections": [
{
"externalReferenceId": "801500",
"id": "item_67165",
"menuSelections": [
{
"externalReferenceId": "940275",
"id": "9cbf858b2190",
"menuSelections": [],
"price": {
"amount": 1000,
"currency": "EUR"
},
"quantity": 1,
"type": "ItemOptionModifier"
},
{
"externalReferenceId": "940294",
"id": "2fb34e217cf2",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "ItemOptionModifier"
}
],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "942214",
"id": "item_50929",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "940209",
"id": "item_66033",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "940325",
"id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
}
],
"price": {
"amount": 849,
"currency": "EUR"
},
"quantity": 1,
"type": "Combo"
}
]
}
{
"header": {
"orgShortName": "{{OrgShortName}}", // org name
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}}, // revenue center
"idempotencyId": "{{$guid}}", // single ID
"orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
"checkEmployeeRef": {{check_employee_ref}},
"informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
}
,
"menuItems": [
{ "menuItemId":1001001, // Whopper PLU
"definitionSequence": 1, // In-store (def 1)
"quantity": 1, // Number of Whoppers
"condiments": [ // No patty modifier.
{
"condimentId": 9072006, // PLU of the modifier/condiment. Whopper patty.
"priceSequence": 3, // Prefix of the modifier. This is the "No" modifier. If you want an additional patty, this would be 2.
"quantity": 1 // This determines the quantity of the modifier. E.g. add 2 whopper patties would be quantity 2.
}
]
}
],
"tenders": [
{
"tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method.
}
]
}
Combo with premium comboslot
"cart": {
"menuSelections": [
{
"externalReferenceId": "940269",
"id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
"menuSelections": [
{
"externalReferenceId": "801500",
"id": "item_67165",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "942214",
"id": "item_50929",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "942215",
"id": "item_66018",
"menuSelections": [],
"price": {
"amount": 100, //premium comboslot
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "940325",
"id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "EUR"
},
"quantity": 1,
"type": "Item"
}
],
"price": {
"amount": 849,
"currency": "EUR"
},
"quantity": 1,
"type": "Combo"
}
]
},
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}},
"language": "es-ES",
"Accept-Language": "es-ES"
},
"menuItems": [], // this is just for single items
"comboMeals": [ // this is for combos
{
"comboMealId": 1001002, // whopper combo meal ID
"comboItem": {
"menuItemId": 1001002, // small whopper combo PLU
"definitionSequence": 1, //in-store sequence
"quantity": 1 // number of combos
},
"mainItem": {
"menuItemId": 1001421, // PLU of the whopper ALC
"definitionSequence": 1,
"quantity": 1,
"condiments": [
{
"condimentId": 9011017, // condiment/modifier PLU for lettuce
"priceSequence": 3, // this determines the prefix of the condiment. in this case, "no"
"quantity": 1
}
]
},
"sideItems": [
{
"menuItemId": 1013201, // small fries PLU
"definitionSequence": 1,
"quantity": 1
},
{
"menuItemId": 2104002, // large pepsi PLU
"definitionSequence": 1,
"quantity": 1
}
]
}
],
"tenders": [
{
"tenderId": 901 // pay at counter PLU
}
]
}
Offers
See https://rbictg.atlassian.net/wiki/spaces/ORACLE/pages/5123571783 .
Rewards
, multiple selections available,
Related content
Offers & Rewards - Payload Format
Offers & Rewards - Payload Format
Read with this
Menu - Order Injection
Menu - Order Injection
Read with this
Menu - Oracle Configuration
Menu - Oracle Configuration
More like this
Menu - Pricing & Availability
Menu - Pricing & Availability
Read with this
Orders API - Cart Structure Examples
Orders API - Cart Structure Examples
Read with this
Oracle API - Combos
Oracle API - Combos
More like this