openapi: 3.1.0
info:
version: 1.0.0
title: Burger King's Partners API
description: "## Overview\n\nThe Channel Partners API are provided for third party food ordering marketplaces\nintegrating into the Restaurant Brand International (RBI) fulfillment platform.\n\n## Authentication\n### Webhooks\n\nWebhook requests are signed using `hex` encoded HMAC signatures.\n\nAn HMAC signature is derived for validation using three components:\n\n- the secret shared between the service and the consumer\n- the body of the request\n- the hash function or algorithm (SHA-256)\n\nUsing these three pieces of information, compute an HMAC signature using the secret as the key and\nthe body of the request as the message and encode the signature to a hexadecimal string for comparison.\n\nCompare the signature generated using the above information to the signature received in the `x-signature` header,\nif the two signatures match, the request is valid.\n"
x-logo:
altText: RBI logo
url:
data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzkiIGhlaWdodD0iODEiIHZpZXdCb3g9IjAgMCA3OSA4MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzcwOV8yMzczNykiPgo8cGF0aCBkPSJNNzMuMzgzMiA3NS4xMzQ4QzczLjM4MzIgNzMuNjA2MyA3NC41NjgzIDcyLjMyNjQgNzYuMTkxNiA3Mi4zMjY0Qzc3LjgxNDkgNzIuMzI2NCA3OSA3My42MDYzIDc5IDc1LjEzNDhDNzkgNzYuNzc4MSA3Ny44MTYyIDc3Ljk2MTkgNzYuMTkxNiA3Ny45NjE5Qzc0LjU2NjkgNzcuOTYxOSA3My4zODMyIDc2Ljc1ODEgNzMuMzgzMiA3NS4xMzQ4Wk03OC4zODgxIDc1LjEzNDhDNzguMzg4MSA3My43MjEyIDc3LjI4MDUgNzIuODk5NiA3Ni4xOTE2IDcyLjg5OTZDNzUuMTAyNyA3Mi44OTk2IDczLjk5NTEgNzMuNzIxMiA3My45OTUxIDc1LjEzNDhDNzMuOTk1MSA3Ni41NDgzIDc1LjEwMjcgNzcuMzg4NyA3Ni4xOTE2IDc3LjM4ODdDNzcuMjgwNSA3Ny4zODg3IDc4LjM4ODEgNzYuNjA1OCA3OC4zODgxIDc1LjEzNDhaTTc1LjIxNjMgNzYuMzM4NlY3My45NTFDNzUuMjE2MyA3My43OTg3IDc1LjM0OTkgNzMuNjQ1MSA3NS41MDM1IDczLjY0NTFINzYuMzA1MUM3Ni45MzU4IDczLjY0NTEgNzcuMzc1MyA3NC4wMjcyIDc3LjM3NTMgNzQuNTQyOUM3Ny4zNzUzIDc0Ljk4MjUgNzcuMTI2OCA3NS4zNjQ2IDc2LjU1MzcgNzUuNDU5NEw3Ny4xODQzIDc2LjE2NjJDNzcuMjQxNyA3Ni4yMjM3IDc3LjI4MDUgNzYuMjk5OCA3Ny4yODA1IDc2LjM1NzNDNzcuMjgwNSA3Ni41Mjk2IDc3LjE2NTYgNzYuNjQ0NSA3Ni45OTQ2IDc2LjY0NDVDNzYuODc5NyA3Ni42NDQ1IDc2LjgwMzUgNzYuNTg3MSA3Ni43NDYgNzYuNTEwOUw3NS45MDU3IDc1LjUxNjlINzUuODA5NVY3Ni4zMzg2Qzc1LjgwOTUgNzYuNDkwOSA3NS42NzU5IDc2LjYyNDUgNzUuNTAzNSA3Ni42MjQ1Qzc1LjM1MTIgNzYuNjI0NSA3NS4yMTYzIDc2LjQ5MDkgNzUuMjE2MyA3Ni4zMzg2Wk03Ni4yMjkgNzQuOTgyNUM3Ni41NzI0IDc0Ljk4MjUgNzYuNzYzNCA3NC44MTAxIDc2Ljc2MzQgNzQuNTgxN0M3Ni43NjM0IDc0LjMzMzEgNzYuNTkxMSA3NC4xOTk1IDc2LjI4NjQgNzQuMTk5NUg3NS44MDk1Vjc0Ljk4MjVINzYuMjMwM0g3Ni4yMjlaIiBmaWxsPSIjRDYyMzAwIi8+CjxwYXRoIGQ9Ik03MC43MDU3IDY3LjExNDRDNzIuMDU3OCA2Ny4xMTQ0IDcyLjY2NDQgNjcuNzY3NyA3Mi42NjQ0IDY4LjkxMDFDNzIuNjY0NCA3MC45MTU1IDcwLjgyMiA3My43MTQ2IDY3LjE4MzkgNzUuNzY2OEM2MS4xMjA4IDc5LjE5NTEgNTAuNzE5NiA4MC4xNzQ0IDM2LjMzMTUgODAuMTc0NEMyMS45NDM1IDgwLjE3NDQgMTEuNTQyMiA3OS4xOTUxIDUuNDc5MTggNzUuNzY2OEMxLjg0MTA5IDczLjcxNDYgLTAuMDAxMzQyNzcgNzAuOTE2OCAtMC4wMDEzNDI3NyA2OC45MTAxQy0wLjAwMTM0Mjc3IDY3Ljc2NzcgMC42MDUyMjkgNjcuMTE0NCAxLjk1NzMyIDY3LjExNDRINzAuNzA1N1oiIGZpbGw9IiNGRjg3MzIiLz4KPHBhdGggZD0iTTcuNjQ4OTUgNjAuNjMxOFY1Ni45MjQzQzcuNjQ4OTUgNTYuNTk4MyA3Ljc4OTIzIDU2LjM2NDQgOC4xMTUyMyA1Ni4zNjQ0QzguNTM0NzUgNTYuMzY0NCA4LjY1MDk5IDU2LjgwOCA4Ljc2ODU3IDU3LjAxNzhDOS40OTEzNyA1OC40NjM0IDEwLjcwNDUgNjEuNDI1NCAxMi4xNTAxIDYzLjAxMTRDMTMuMTI5NSA2NC4wODQyIDE0LjM0MjYgNjQuNzYwMyAxNS42MjUyIDY0Ljc2MDNDMTcuNzkzNyA2NC43NjAzIDE5LjYxMzQgNjIuODcxMSAxOS42MTM0IDYwLjg0MjlDMTkuNjEzNCA1OS41ODMgMTkuMDc3NiA1OC42NTA0IDE4LjA1MTUgNTcuNTMyMkMxNi43NDYyIDU2LjEwOTMgMTUuMjA3IDU0LjI0NDEgMTQuNjQ3MiA1My4zODFDMTQuNDM3NSA1My4wNTUgMTQuNDEzNCA1Mi44NDUzIDE0LjQxMzQgNTIuNzUxN0MxNC40MTM0IDUyLjQ5NTIgMTQuNTUzNyA1Mi4zMDgyIDE0LjgzMyA1Mi4wNTE2QzE1LjQ4NjMgNTEuNDQ1MSAxNy4wOTQ5IDQ5LjkzIDE3Ljk4MDcgNDguNTUzOEMxOC42NTY4IDQ3LjUwNSAxOC45MzczIDQ2LjU0ODQgMTguOTM3MyA0NS43NTQ4QzE4LjkzNzMgNDMuNzI1MyAxNy4wOTQ5IDQyLjE0MDcgMTUuMDg5NSA0Mi4xNDA3QzEzLjgwNjkgNDIuMTQwNyAxMi41OTM3IDQyLjg2MzUgMTEuNzc4NyA0NC4xOTI5QzEwLjY4MzEgNDUuOTY1OSA5LjU2MzUyIDQ4LjQ2MDMgOC42MzA5NSA0OS4zOTI5QzguMzk3MTQgNDkuNjI2NyA4LjI4MDkgNDkuNjcyMSA4LjA5NTE5IDQ5LjY3MjFDNy43OTE5IDQ5LjY3MjEgNy42NTE2MiA0OS40NjIzIDcuNjUxNjIgNDkuMTM2M1Y0Ni4yNjc4QzcuNjUxNjIgNDMuOTgxOCA2LjI5OTUyIDQyLjE0MDcgMy44NTA1MiA0Mi4xNDA3QzEuNDAxNTIgNDIuMTQwNyAwLjA0Njc1MjkgNDMuOTgxOCAwLjA0Njc1MjkgNDYuMjY2NVY2MC42MzE4QzAuMDQ2NzUyOSA2Mi45MTc4IDEuMzc2MTMgNjQuNzU4OSAzLjg0Nzg1IDY0Ljc1ODlDNi4zMTk1NiA2NC43NTg5IDcuNjQ4OTUgNjIuOTE2NSA3LjY0ODk1IDYwLjYzMThaIiBmaWxsPSIjRDYyMzAwIi8+CjxwYXRoIGQ9Ik03MC40OTYgNDMuOTU3OEM2OS4wNzMxIDQyLjkwOSA2Ni45Mjg3IDQyLjEzOTQgNjMuODk1OCA0Mi4xMzk0QzU4LjQ2MjEgNDIuMTM5NCA1My4xNjg2IDQ1LjU2NzcgNTMuMTY4NiA1My41NDI3QzUzLjE2ODYgNjEuNTE3NiA1OC40NjIxIDY0LjczNjIgNjMuNjg2MSA2NC43MzYyQzY5LjE2NjYgNjQuNzM2MiA3Mi42NDAzIDYxLjM1NDYgNzIuNjQwMyA1Ni40MTEyQzcyLjY0MDMgNTMuMjg2MiA3MC42ODE3IDUxLjExNzcgNjYuNzQwMyA1MS4xMTc3SDY1LjU5OEM2My41NDU4IDUxLjExNzcgNjEuOTU5OSA1Mi4wNzQzIDYxLjk1OTkgNTQuMTczM0M2MS45NTk5IDU2LjA4NTIgNjMuNjg2MSA1Ni45OTUxIDY0Ljk2ODcgNTYuOTk1MUM2Ni4wNjQyIDU2Ljk5NTEgNjYuNTA3OCA1Ny4xODIxIDY2LjUwNzggNTcuNjcxMUM2Ni41MDc4IDU4LjI3NzcgNjUuOTI1MyA1OC42NzQ1IDY0LjUwMjQgNTguNjc0NUM2MS44Njc3IDU4LjY3NDUgNjAuMDcyIDU2Ljg3ODggNjAuMDcyIDUzLjU0NEM2MC4wNzIgNDkuODM2NCA2Mi41MjEgNDguNDgzIDY0LjQwODkgNDguNDgzQzY2LjcxNzYgNDguNDgzIDY3LjA5MDMgNDkuNjQ5NCA2OC43MDAzIDQ5LjY0OTRDNzAuNTY1NCA0OS42NDk0IDcxLjgyNTMgNDguMTMzIDcxLjgyNTMgNDYuNTkzOEM3MS44MjUzIDQ1LjQ1MTUgNzEuMzEyMyA0NC41NjQzIDcwLjQ5NiA0My45NTkxVjQzLjk1NzhaIiBmaWxsPSIjRDYyMzAwIi8+CjxwYXRoIGQ9Ik01MS4zNTAyIDQ2LjA4MDhWNjAuNjA5MUM1MS4zNTAyIDYyLjkxNzggNDkuOTk4MSA2NC43NjAzIDQ3LjU0OTEgNjQuNzYwM0M0Ni4xMjYyIDY0Ljc2MDMgNDQuNzk2OCA2NC4yMDA0IDQzLjU2MSA2MS43OTgyTDQwLjMxOTcgNTUuNTI1NEM0MC4wODU5IDU1LjA4MTggMzkuOTIyOSA1NC45NjU2IDM5LjY5MDQgNTQuOTY1NkMzOS4zNjQ0IDU0Ljk2NTYgMzkuMjAwMSA1NS4xOTk0IDM5LjIwMDEgNTUuNzM1MkwzOS4yMjI4IDYwLjgxODlDMzkuMjIyOCA2My4wMTEzIDM3Ljk2MjkgNjQuNzYwMyAzNS42MDg3IDY0Ljc2MDNDMzMuMjU0NiA2NC43NjAzIDMyLjAxNzQgNjMuMDExMyAzMi4wMTc0IDYwLjgxODlWNDYuMjkwNUMzMi4wMTc0IDQzLjk4MTggMzMuMzY5NSA0Mi4xMzk0IDM1LjgxODUgNDIuMTM5NEMzNy4yODgyIDQyLjEzOTQgMzguNTcwOCA0Mi42OTkyIDM5LjgwNjYgNDUuMTAxNEw0My4wNDc5IDUxLjM3NDJDNDMuMjgxNyA1MS44MTc4IDQzLjQ0NDcgNTEuOTM0MSA0My42NzcyIDUxLjkzNDFDNDQuMDAzMiA1MS45MzQxIDQ0LjE2NzUgNTEuNzAwMyA0NC4xNjc1IDUxLjE2NDVMNDQuMTQ0OCA0Ni4wODA4QzQ0LjE0NDggNDMuODg4MyA0NS40MDQ3IDQyLjEzOTQgNDcuNzU4OSA0Mi4xMzk0QzUwLjExMyA0Mi4xMzk0IDUxLjM1MDIgNDMuODg4MyA1MS4zNTAyIDQ2LjA4MDhaIiBmaWxsPSIjRDYyMzAwIi8+CjxwYXRoIGQ9Ik0yOS4zMTMyIDQ2LjU0NzFDMjkuMzEzMiA0NC4wOTgxIDI3Ljg5MDMgNDIuMTM5NCAyNS4yNzgzIDQyLjEzOTRDMjIuNjY2MyA0Mi4xMzk0IDIxLjI0MzQgNDQuMDk4MSAyMS4yNDM0IDQ2LjU0NzFWNjAuMzUyNkMyMS4yNDM0IDYyLjgwMTYgMjIuNjY2MyA2NC43NjAzIDI1LjI3ODMgNjQuNzYwM0MyNy44OTAzIDY0Ljc2MDMgMjkuMzEzMiA2Mi44MDE2IDI5LjMxMzIgNjAuMzUyNlY0Ni41NDcxWiIgZmlsbD0iI0Q2MjMwMCIvPgo8cGF0aCBkPSJNMzUuNzQ5IDM2LjcyODNDMzUuMzUyMiAzNi4yMzggMzQuMzcyOSAzNC45Nzk0IDM0LjE4NzIgMzQuMzI2MUMzNC4xMTc3IDM0LjA5MjMgMzQuMTQwNCAzMy45MjkzIDM0LjM1MDIgMzMuNzQzNkMzNS4wNzMgMzMuMDY3NSAzNS45MTIgMzIuMDE3NCAzNS45MTIgMzAuMTUyMkMzNS45MTIgMjYuOTU3NyAzMy40NjMgMjUuMzQ3OCAzMC41MDIzIDI1LjM0NzhIMjcuODY3NkMyNi4wMjUyIDI1LjM0NzggMjUuMTM5MyAyNi40MjA2IDI1LjEzOTMgMjcuODY2MlYzOC4yNjc1QzI1LjEzOTMgMzkuNjY2MyAyNS45NTU3IDQwLjc4NiAyNy40NDgxIDQwLjc4NkMyOC45NDA0IDQwLjc4NiAyOS43NTY4IDM5LjY2NjMgMjkuNzU2OCAzOC4yNjc1VjM1Ljk1ODhDMjkuNzU2OCAzNS42MDg3IDI5Ljg5NzEgMzUuMzUyMiAzMC4yNjk4IDM1LjM1MjJDMzAuNTk1OCAzNS4zNTIyIDMwLjczNjEgMzUuNjMxNCAzMC44MDU2IDM1Ljk1ODhDMzEuMDE1MyAzNi45ODQ5IDMxLjMxODYgMzguNTkzNSAzMS45NDc5IDM5LjQwOThDMzIuNzQwMiA0MC40NTg2IDMzLjQ4NzEgNDAuNzg2IDM0LjIzMzkgNDAuNzg2QzM1LjQ0NzEgNDAuNzg2IDM2LjQ5NTkgMzkuODI5MyAzNi40OTU5IDM4LjY0MDJDMzYuNDk1OSAzNy44NDggMzYuMTY5OSAzNy4yNjQxIDM1Ljc0OSAzNi43MjgzWk00LjY4NjkxIDM0LjIzMjZINS4zNDAyNEM2LjM4OTA1IDM0LjIzMjYgNi42OTIzMyAzNS4wMDIyIDYuNjkyMzMgMzUuNzAyMkM2LjY5MjMzIDM2LjQwMjMgNi4zODkwNSAzNy4xNzE5IDUuMzQwMjQgMzcuMTcxOUg0LjY4NjkxQzQuMjkwMSAzNy4xNzE5IDQuMTA0MzggMzYuOTM4MSA0LjEwNDM4IDM2LjYzNjJWMzQuNzcxQzQuMTA0MzggMzQuNDY3NyA0LjI5MTQzIDM0LjIzNTMgNC42ODY5MSAzNC4yMzUzVjM0LjIzMjZaTTQuNjg2OTEgMzEuNDgwM0M0LjI5MDEgMzEuNDgwMyA0LjEwNDM4IDMxLjI0NjUgNC4xMDQzOCAzMC45NDQ1VjI5LjM1ODZDNC4xMDQzOCAyOS4wNTUzIDQuMjkxNDMgMjguODIyOSA0LjY4NjkxIDI4LjgyMjlINS4yMjI2N0M2LjE1NTI0IDI4LjgyMjkgNi40MzU4MSAyOS40OTg5IDYuNDM1ODEgMzAuMTUyMkM2LjQzNTgxIDMwLjgwNTYgNi4xNTY1NyAzMS40ODE2IDUuMjIyNjcgMzEuNDgxNkg0LjY4NjkxVjMxLjQ4MDNaTTIuNzI4MjQgNDAuNjY4NEg2LjAxNjI5QzkuMTE3MjkgNDAuNjY4NCAxMS4wMDY1IDM4LjU5MzUgMTEuMDA2NSAzNi4wMDQyQzExLjAwNjUgMzMuOTk4OCA5Ljc3MDYyIDMzLjA4ODkgOS40OTAwNSAzMi44NTY0QzkuMzczODEgMzIuNzYyOSA5LjI1NjI0IDMyLjY2OTQgOS4yNTYyNCAzMi41NzcyQzkuMjU2MjQgMzIuNDYxIDkuMzAzIDMyLjQxNDIgOS40NDMyOSAzMi4yNzM5QzkuOTU2MzMgMzEuNzYwOSAxMC40NDY3IDMwLjg3NTEgMTAuNDQ2NyAyOS42MzkyQzEwLjQ0NjcgMjYuODQwMSA4LjQ0MTI0IDI1LjM0NzggNS41MDMyNCAyNS4zNDc4SDIuNzI4MjRDMC44ODU4MDkgMjUuMzQ3OCAwIDI2LjQyMDYgMCAyNy44NjYyVjM4LjE0OTlDMCAzOS41OTU1IDAuODg1ODA5IDQwLjY2ODQgMi43MjgyNCA0MC42Njg0Wk0zMC40MDg4IDMyLjI0OTlIMjkuODQ5QzI5LjQ1MjIgMzIuMjQ5OSAyOS4yNjY0IDMyLjAxNjEgMjkuMjY2NCAzMS43MTQxVjI5LjcwODdDMjkuMjY2NCAyOS40MDU0IDI5LjQ1MzUgMjkuMjE4MyAyOS44NDkgMjkuMjE4M0gzMC40MDg4QzMxLjU1MTEgMjkuMjE4MyAzMS45MDEyIDI5Ljk4NzkgMzEuOTAxMiAzMC43MTA3QzMxLjkwMTIgMzEuMzg2OCAzMS41NTExIDMyLjI0OTkgMzAuNDA4OCAzMi4yNDk5Wk01NS4yNDQ4IDM2LjEyMDRDNTUuMjQ0OCAzNi40MjM3IDU1LjQzMTkgMzYuNjU2MiA1NS44Mjc0IDM2LjY1NjJINTguMDg5M0M1OS4zMDI0IDM2LjY1NjIgNjAuMjU3NyAzNy4zNzkgNjAuMjU3NyAzOC42NjE2QzYwLjI1NzcgMzkuOTQ0MiA1OS4zMDExIDQwLjY2NzEgNTguMDg5MyA0MC42NjcxSDUzLjYzNDlDNTEuNzkyNCA0MC42NjcxIDUwLjkwNjYgMzkuNTk0MiA1MC45MDY2IDM4LjE0ODZWMjcuODY0OUM1MC45MDY2IDI2LjQxOTMgNTEuNzkyNCAyNS4zNDY0IDUzLjYzNDkgMjUuMzQ2NEg1OC4wODkzQzU5LjMwMjQgMjUuMzQ2NCA2MC4yNTc3IDI2LjA2OTIgNjAuMjU3NyAyNy4zNTE5QzYwLjI1NzcgMjguNjM0NSA1OS4zMDExIDI5LjM1NzMgNTguMDg5MyAyOS4zNTczSDU1LjgyNzRDNTUuNDMwNSAyOS4zNTczIDU1LjI0NDggMjkuNTkxMSA1NS4yNDQ4IDI5Ljg5MzFWMzAuNTY5MUM1NS4yNDQ4IDMwLjg3MjQgNTUuNDMxOSAzMS4xMDQ5IDU1LjgyNzQgMzEuMTA0OUg1Ny40MzZDNTguNTU1NiAzMS4xMDQ5IDU5LjQ0MTQgMzEuNzgwOSA1OS40NDE0IDMyLjk3QzU5LjQ0MTQgMzQuMTU5MSA1OC41NTU2IDM0LjgzNTEgNTcuNDM2IDM0LjgzNTFINTUuODI3NEM1NS40MzA1IDM0LjgzNTEgNTUuMjQ0OCAzNS4wNjkgNTUuMjQ0OCAzNS4zNzA5VjM2LjExNzhWMzYuMTIwNFpNNjYuNTc4NiAzMi4yNDk5SDY2LjAxODhDNjUuNjIyIDMyLjI0OTkgNjUuNDM2MyAzMi4wMTYxIDY1LjQzNjMgMzEuNzE0MVYyOS43MDg3QzY1LjQzNjMgMjkuNDA1NCA2NS42MjM0IDI5LjIxODMgNjYuMDE4OCAyOS4yMTgzSDY2LjU3ODZDNjcuNzIxIDI5LjIxODMgNjguMDcxIDI5Ljk4NzkgNjguMDcxIDMwLjcxMDdDNjguMDcxIDMxLjM4NjggNjcuNzIxIDMyLjI0OTkgNjYuNTc4NiAzMi4yNDk5Wk00OC4yNzE5IDI2LjM0OThDNDcuNzEyMSAyNS45MDYyIDQ2LjE3MyAyNS4yMDc1IDQzLjg2NDMgMjUuMjA3NUM0MC4yNTAyIDI1LjIwNzUgMzYuNzI4MyAyNy41ODU3IDM2LjcyODMgMzMuMDkwMkMzNi43MjgzIDM4LjU5NDggNDAuMjUwMiA0MC44MDg3IDQzLjcyNCA0MC44MDg3QzQ3LjM4NDggNDAuODA4NyA0OS42OTM1IDM4LjQ3NzIgNDkuNjkzNSAzNC45NzgxQzQ5LjY5MzUgMzIuODA5NyA0OC4zODgyIDMxLjMxNzMgNDUuNzc2MiAzMS4zMTczSDQ1LjAyOTNDNDMuNjUzMiAzMS4zMTczIDQyLjU4MDMgMzEuOTcwNiA0Mi41ODAzIDMzLjQzOUM0Mi41ODAzIDM0Ljc0NDMgNDMuNzIyNiAzNS4zNzQ5IDQ0LjY3OTIgMzUuMzc0OUM0NS4yODU4IDM1LjM3NDkgNDUuNjM1OSAzNS42NTQyIDQ1LjYzNTkgMzYuMDc1QzQ1LjYzNTkgMzYuNjM0OCA0NS4xNDU1IDM3LjAwNzYgNDQuMjU5NyAzNy4wMDc2QzQyLjQ0MTMgMzcuMDA3NiA0MS4zMjE3IDM1LjYwODcgNDEuMzIxNyAzMy4wOTAyQzQxLjMyMTcgMzAuNTcxOCA0Mi45NTQ0IDI5LjU5MjQgNDQuMjEzIDI5LjU5MjRDNDUuNzUyMSAyOS41OTI0IDQ2LjAwODYgMzAuMTc1IDQ3LjA4MTUgMzAuMTc1QzQ4LjMxNzMgMzAuMTc1IDQ5LjE1NjQgMjkuMTQ4OSA0OS4xNTY0IDI4LjA3NkM0OS4xNTY0IDI3LjI4MzcgNDguODA2MyAyNi43NzA3IDQ4LjI3MDYgMjYuMzQ5OEg0OC4yNzE5Wk02MS4zMDc5IDM4LjI2NjJDNjEuMzA3OSAzOS42NjUgNjIuMTI0MiA0MC43ODQ2IDYzLjYxNjYgNDAuNzg0NkM2NS4xMDkgNDAuNzg0NiA2NS45MjUzIDM5LjY2NSA2NS45MjUzIDM4LjI2NjJWMzUuOTU3NEM2NS45MjUzIDM1LjYwNzQgNjYuMDY1NiAzNS4zNTA5IDY2LjQzODQgMzUuMzUwOUM2Ni43NjQ0IDM1LjM1MDkgNjYuOTA0NiAzNS42MzAxIDY2Ljk3NDEgMzUuOTU3NEM2Ny4xNjEyIDM2Ljk4MzUgNjcuNDg3MiAzOC41OTIxIDY4LjExNjQgMzkuNDA4NUM2OC45MDg3IDQwLjQ1NzMgNjkuNjU1NiA0MC43ODQ2IDcwLjQwMjUgNDAuNzg0NkM3MS42MTU2IDQwLjc4NDYgNzIuNjY0NCAzOS44MjggNzIuNjY0NCAzOC42Mzg5QzcyLjY2NDQgMzcuODQ2NiA3Mi4zMzg0IDM3LjI2MjggNzEuOTE3NSAzNi43MjdDNzEuNTIwNyAzNi4yMzY3IDcwLjU0MTQgMzQuOTc4MSA3MC4zNTU3IDM0LjMyNDhDNzAuMjg2MiAzNC4wOTEgNzAuMzA4OSAzMy45MjggNzAuNTE4NyAzMy43NDIyQzcxLjI0MTUgMzMuMDY2MiA3Mi4wODA1IDMyLjAxNjEgNzIuMDgwNSAzMC4xNTA5QzcyLjA4MDUgMjYuOTU2NCA2OS42MzE1IDI1LjM0NjQgNjYuNjcwOCAyNS4zNDY0SDY0LjAzNjFDNjIuMTkzNyAyNS4zNDY0IDYxLjMwNzkgMjYuNDE5MyA2MS4zMDc5IDI3Ljg2NDlWMzguMjY2MlpNMTcuODYzMSA0MC43ODQ2QzE0LjA4NDggNDAuNzg0NiAxMi4xMDM0IDM4LjUyMjcgMTIuMTAzNCAzNS42NzgyVjI3LjgxOTVDMTIuMTAzNCAyNi40MjA2IDEyLjkxOTcgMjUuMzAxIDE0LjQxMjEgMjUuMzAxQzE1LjkwNDUgMjUuMzAxIDE2Ljc0MzUgMjYuNDIwNiAxNi43NDM1IDI3LjgxOTVWMzUuNDIxN0MxNi43NDM1IDM1Ljk4MTUgMTcuMDIyOCAzNi42MzQ4IDE3Ljg2MzEgMzYuNjM0OEMxOC43MDM1IDM2LjYzNDggMTkuMDI5NSAzNS45ODE1IDE5LjAyOTUgMzUuNDIxN1YyNy44MTk1QzE5LjAyOTUgMjYuNDIwNiAxOS44NDU5IDI1LjMwMSAyMS4zMzgyIDI1LjMwMUMyMi44MzA2IDI1LjMwMSAyMy42NDcgMjYuNDIwNiAyMy42NDcgMjcuODE5NVYzNS42NzgyQzIzLjY0NyAzOC41MjI3IDIxLjY0MTUgNDAuNzg0NiAxNy44NjMxIDQwLjc4NDZaIiBmaWxsPSIjRDYyMzAwIi8+CjxwYXRoIGQ9Ik03MC43MDU3IDIyLjU5NjhIMS45NTg2N0MwLjYwNjU3MiAyMi41OTY4IDAgMjEuODk2NyAwIDIwLjYzODFDMCAxMy4xNzYyIDExLjIxNjIgMCAzNi4zMzI5IDBDNjEuNDQ5NSAwIDcyLjY2NTcgMTMuMTc2MiA3Mi42NjU3IDIwLjYzODFDNzIuNjY1NyAyMS44OTgxIDcyLjA1OTEgMjIuNTk2OCA3MC43MDcxIDIyLjU5NjhINzAuNzA1N1oiIGZpbGw9IiNGRjg3MzIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF83MDlfMjM3MzciPgo8cmVjdCB3aWR0aD0iNzkiIGhlaWdodD0iODAuMTc0NCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K
servers:
- url: https://sandbox-bk-partners.rbictg.com/api/v1
description: Sandbox server (uses test data)
- url: https://bk-partners.rbictg.com/api/v1
description: Production server
components:
securitySchemes:
bearer:
scheme: bearer
bearerFormat: JWT
type: http
schemas:
Identifier:
title: Identifier
description: An OTP code (6 digit code) or a static Offer code (4 digit code)
example: '1234'
pattern: ^(\d{6}|\d{4})$
type: string
IdentifierType:
title: Identifier Type
description: Determines the type of identifier being sent
type: string
example: OTP
enum:
- OTP
- OFFER_CODE
StoreId:
title: StoreId
description: Unique Store ID
example: '42'
pattern: ^\d+$
type: string
ServiceMode:
title: Service Mode
description: "How a customer would like their order served.\n\nNote that not all service modes will be available at all restaurants.\n"
type: string
example: TAKEOUT
enum:
- CURBSIDE
- DELIVERY
- DRIVE_THRU
- EAT_IN
- TABLE_SERVICE
- TAKEOUT
Operator:
title: Operator
description: The cashier id submitting the transaction.
example: ninja123
type: string
Terminal:
title: Terminal
description: The terminal name.
example: window-2
type: string
TransactionId:
title: Transaction Id
description: The Partner specific order lookup id.
example: ORD-000002
type: string
IdentifyRequestDetails:
title: Identify Request Details
type: object
properties:
operator:
$ref: '#/components/schemas/Operator'
terminal:
$ref: '#/components/schemas/Terminal'
transactionId:
$ref: '#/components/schemas/TransactionId'
IdentifyRequest:
title: Identify Request
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
identifierType:
$ref: '#/components/schemas/IdentifierType'
storeId:
$ref: '#/components/schemas/StoreId'
serviceMode:
$ref: '#/components/schemas/ServiceMode'
details:
$ref: '#/components/schemas/IdentifyRequestDetails'
required:
- identifier
- identifierType
- storeId
- serviceMode
ExternalReferenceId:
title: External Reference Id
description: External reference ID. An example might be the external menu selection ID, customer ID or order ID.
type: string
Currency:
title: Currency Code
description: Currency code in [ISO-4217 alpha](https://en.wikipedia.org/wiki/ISO_4217) format
format: ISO-4217 alpha
type: string
example: USD
Money:
title: Money
description: "Representation of money. Money amounts are always provided in the smallest currency unit (e.g,. 100 where `currency=USD` represents 100 \"cents\" or 1 USD).\n"
type: object
properties:
currency:
$ref: '#/components/schemas/Currency'
amount:
title: Amount
description: Amount in the specified currency
type: number
example: 100
format: integer
required:
- currency
- amount
MenuSelection:
title: Menu Selection
description: Menu selection in the cart
type: object
properties:
id:
type: string
description: Menu item identifier
example: item_42
referenceId:
type: string
description: "Secondary menu item identifier.\n\n⚠️ This `referenceId` must be included along with the `id` when the value is present in the menu\n"
example: item_603
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
quantity:
type: number
format: integer
minimum: 0
example: 1
price:
$ref: '#/components/schemas/Money'
menuSelections:
type: array
minItems: 1
items:
$ref: '#/components/schemas/MenuSelection'
required:
- id
- quantity
Cart:
title: Cart
description: Cart representing a customer's selections from the menu
type: object
properties:
menuSelections:
type: array
minItems: 1
items:
$ref: '#/components/schemas/MenuSelection'
required:
- menuSelections
Phone:
title: Phone
description: "Phone number. Should always begin with the international country code (e.g., \"+1\")\n"
type: string
example: '+12223334444'
Customer:
title: Customer
description: Customer personal details
type: object
properties:
id:
type: string
description: Internal user ID
example: '500123'
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
name:
type: string
description: "Customers's name. Format will depend on the context (full name, first name and initials, etc)\n"
example: Whopper
username:
type: string
description: Customer's username in the given context
example: example
phone:
$ref: '#/components/schemas/Phone'
email:
type: string
description: Customer's email
format: email
example: guest@example.com
required:
- name
- email
Balance:
title: Balance
description: The amount of a given currency the user has
type: object
properties:
amount:
type: number
example: 599
currency:
type: string
example: USD
LoyaltyId:
title: Loyalty Id
description: The loyalty user id
example: a73ea594-202c-52b4-00a0-1f6b518ef54d
type: string
LoyaltyTransactionId:
title: Loyalty Transaction Id
description: The loyalty transaction id created for the identify request
example: a73ea594-202c-52b4-80af-1f6b518ef54d
type: string
IdentifyLoyalty:
title: Loyalty Information
description: User information on the Loyalty user identified
type: object
properties:
balances:
description: "The loyalty user's balances\n"
type: array
items:
$ref: '#/components/schemas/Balance'
loyaltyId:
$ref: '#/components/schemas/LoyaltyId'
transactionId:
$ref: '#/components/schemas/LoyaltyTransactionId'
required:
- balances
- loyaltyId
- transactionId
IdentifyResponse:
title: Identify Response
type: object
properties:
cart:
$ref: '#/components/schemas/Cart'
customer:
$ref: '#/components/schemas/Customer'
loyalty:
$ref: '#/components/schemas/IdentifyLoyalty'
storeId:
$ref: '#/components/schemas/StoreId'
serviceMode:
$ref: '#/components/schemas/ServiceMode'
required:
- cart
- storeId
- serviceMode
Error:
title: Error
type: object
description: Standard error format for all errors returned by the API
properties:
status:
description: HTTP status code
type: number
example: 400
code:
description: Unique error code. Same as errors[0].code
type: string
example: ValidationError
message:
description: Human readable error mesage. Same as errors[0].message
type: string
example: isAvailable must be a boolean value
errors:
description: All errors
type: array
items:
type: object
properties:
code:
description: Unique error code
type: string
example: ValidationError
details:
description: Detailed error information
type: string
message:
description: Human readable error mesage
type: string
domain:
type: string
location:
type: string
description: Location the error occurred. Interpreation depends on `locationType`
example: isAvailable
locationType:
type: string
description: How to interpret the location property
example: requestBody
sendReport:
description: URL to report this error
type: string
extendedHelp:
description: URL with additional information about the error type
type: string
required:
- code
- message
required:
- code
- message
- errors
Brand:
type: string
enum:
- BK
example: BK
Locale:
title: Locale
description: Locale details to help render localized text. Locales are composed of the [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code and the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, separated by an underscore ("_").
format: ISO-639-1_ISO 3166-1 alpha-2
example: en_us
type: string
DayPartId:
title: DayPartId
description: Unique identifier for a day part
type: string
example: breakfast
DayPart:
title: Menu availability
type: object
description: "Day parts define a window of time during which any associated menu items should be available for orders.\n"
properties:
id:
$ref: '#/components/schemas/DayPartId'
daysOfWeek:
description: "Days of week for which daypart is applicable\n"
type: array
example:
- saturday
- sunday
items:
type: string
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
startTime:
description: "Restaurant local start time formatted as ISO 8601 time.\n"
type: string
format: hh:mm:ss
example: 07:00:00
endTime:
description: "Restaurant local end time formatted as ISO 8601 time.\n"
type: string
format: hh:mm:ss
example: 22:00:00
EntryId:
title: EntryId
description: Unique identifier for a menu entity
type: string
example: entry-id
LocalizedText:
title: Localized Text
description: Text that has been translated to the correct locale for the current context
type: string
Image:
type: object
properties:
url:
type: string
example: https://bk-partners.rbictg.com
altText:
$ref: '#/components/schemas/LocalizedText'
PriceRange:
title: PriceRange
description: "Default, minimum, and maximum prices.\n"
type: object
properties:
default:
title: Default
description: Default price in cents
type: number
format: integer
example: 1.0
max:
title: Max
description: Max price in cents
type: number
format: integer
minimum: 0
example: 1.0
min:
title: Min
description: Min price in cents
type: number
format: integer
minimum: 0
example: 1.0
QuantityConstraints:
title: QuantityConstraints
type: object
description: "Quantity constraints on selection. Can apply either to items or selections\nwith an options group.\n\nNote\\: We use a `minAmount` of 1 with a `maxAmount` of 1 to indicate\nselection is required\n"
properties:
defaultAmount:
description: (Optional) Default amount that can be select
type: number
format: integer
minimum: 0
example: 599
minAmount:
description: (Optional) Minimum amount that must be select
type: number
format: integer
minimum: 0
example: 599
maxAmount:
description: (Optional) Maximum amount that can be select
type: number
format: integer
minimum: 0
example: 599
EntryRef:
title: Entry Reference
description: Reference to entry and optional the price of this entry
type: object
properties:
amount:
title: Amount
description: Amount in the specified currency
type: number
format: integer
minimum: 0
example: 599
entryId:
$ref: '#/components/schemas/EntryId'
Calories:
title: Calories
description: Calories range
type: object
properties:
default:
type: number
format: integer
minimum: 0
example: 1.0
displayType:
type: string
enum:
- Range
- Lower
- Upper
example: Range
lowerRange:
type: number
format: integer
minimum: 0
example: 1.0
upperRange:
type: number
format: integer
minimum: 0
example: 1.0
Nutrient:
title: Nutrient
description: Details for an individual nutrient
type: object
properties:
name:
type: string
enum:
- SODIUM
example: SODIUM
value:
type: number
format: integer
minimum: 0
example: 1.0
unit:
type: string
enum:
- G
- KJ
example: G
Allergen:
title: Allergen
description: Allergen (such as "Peanuts")
type: object
properties:
allergen:
type: string
enum:
- PEANUTS
example: PEANUTS
contains:
type: number
description: 3 = Contains; 2 = May Contain; 1 = Cooked in same equipment; 0 = Free From
format: integer
example: 1.0
Nutrition:
title: NutritionalInfo
description: Nutrition Details
type: object
properties:
calories:
$ref: '#/components/schemas/Calories'
nutrients:
type: array
items:
$ref: '#/components/schemas/Nutrient'
allergens:
type: array
items:
$ref: '#/components/schemas/Allergen'
Entry:
title: Entry
type: object
description: "Any entry available for selection on the store menu.\n"
properties:
id:
$ref: '#/components/schemas/EntryId'
referenceId:
$ref: '#/components/schemas/EntryId'
type:
type: string
enum:
- COMBO
- ITEM
- GROUP
- MODIFIER
example: COMBO
groupType:
type: string
enum:
- ASPECT_OPTION
- COMBO_SLOT
- MENU
- MODIFIER_GROUP
- PICKER
- PICKER_ASPECT
- SECTION
- SLOT_OPTION
example: ASPECT_OPTION
name:
$ref: '#/components/schemas/LocalizedText'
example: Whopper
description:
$ref: '#/components/schemas/LocalizedText'
example: A delicious burger
available:
description: "Whether or not the entry is available.\nIf this property is undefined, then the entry will be marked as available.\n"
type: boolean
example: true
image:
$ref: '#/components/schemas/Image'
price:
$ref: '#/components/schemas/PriceRange'
options:
type: object
properties:
quantityConstraints:
$ref: '#/components/schemas/QuantityConstraints'
defaultSelections:
type: array
description: "Options which should be selected by default\n"
items:
$ref: '#/components/schemas/EntryId'
displayType:
description: "Recommendations for display of options\n\n* `LIST`: Display options in any \"list\" format, to make all options visible (\"Lettuce\", \"Tomato\")\n* `STEPPER`: Display options in a \"stepper\" format, to mask options behind an increment/decrement interface (\"No Lettuce\", \"Lettuce\", \"Extra Lettuce\")\n* `BOOLEAN`: Display options in a \"boolean\" format, allowing guests to toggle between options (\"No Bacon\", \"Bacon\")\n* `SINGLE_ENTRY`: One option that maps to options to select from\n* `SELECT`: Group with Single Selection Option\n* `MULTI-SELECT`: Group with Multiple Selection Options\n* `COLLAPSED`: Group that should be collapsed\n"
type: string
enum:
- LIST
- STEPPER
- BOOLEAN
- SINGLE_ENTRY
- SELECT
- MULTI_SELECT
- COLLAPSED
entries:
description: "Collection of references to the item's options. Options may\nthemselves be items or a grouping of items collected in an\n\"Options Group\". The item's options define a parent-child\nrelationship.\n"
type: array
items:
$ref: '#/components/schemas/EntryRef'
example: {}
dayParts:
description: "Collection of references to the item's day parts. The item should only\nbe available during the associated day parts.\n"
type: array
items:
$ref: '#/components/schemas/DayPartId'
nutrition:
$ref: '#/components/schemas/Nutrition'
translations:
description: "Translation details per language.\n"
type: array
items:
type: object
properties:
lang:
description: "The entry 2 character language code.\n"
type: string
example: fr
name:
description: "The translated name.\n"
type: string
example: Le Whopper.
description:
description: "The translated decription.\n"
type: string
example: "Notre sandwich WHOPPER® est fait d'un quart de livre de savoureux bœuf grillé sur le feu, garni de tomates juteuses, de laitue fraîche, de mayonnaise onctueuse, de cornichons croquants et d'oignons blancs émincés.\nLe tout est servi sur un pain aux graines de sésame grillé à point.\n"
required:
- id
- type
LoyaltyBaseEntry:
title: LoyaltyBaseEntry
type: object
properties:
id:
$ref: '#/components/schemas/EntryId'
example: foo-discount-id
type:
type: string
enum:
- DISCOUNT
example: DISCOUNT
name:
$ref: '#/components/schemas/LocalizedText'
example: 40% OFF
description:
$ref: '#/components/schemas/LocalizedText'
example: 40% OFF of your cart
availability:
description: "Whether or not the entry is available.\nIf this property is undefined, then the entry will be marked as available.\n"
type: boolean
example: true
discountType:
type: string
enum:
- AMOUNT
- PERCENTAGE
example: PERCENTAGE
description: "Provides if the discount should be calculated as a percentage or an amount.\n\n*Note: this is only available for `\"DISCOUNT\"` type.*\n\n| Discount Type | Calculation |\n|---|---|\n| `\"AMOUNT\"` | `Price - discountValue` |\n| `\"PERCENTAGE\"` | `Price - (discountValue% of Price)` |\n"
discountValue:
type: number
format: integer
example: 40
description: "Amount that should be discounted.\n\n*Note: this is only available for `\"DISCOUNT\"` type.*\n\n| Discount Type | Discount Value unit |\n|---|---|\n| `\"AMOUNT\"` | Dollar amount |\n| `\"PERCENTAGE\"` | Percentage discount |\n"
loyaltyPoints:
type: number
format: integer
example: 100
description: "Amount of Loyalty Points required to redeem this offer\n"
price:
$ref: '#/components/schemas/PriceRange'
quantityConstraints:
$ref: '#/components/schemas/QuantityConstraints'
options:
type: object
description: "Collection of typed references to other entities in the menu.\n"
properties:
entries:
description: "Depending of the type, the entity referenced will be located\nin different places of the menu:\n\n| Type | Entity Location |\n|---|---|\n| `\"ENTRY\"` | `entries` |\n| `\"SYSTEM_WIDE_OFFER\"` | `systemWideOfferEntries` |\n| `\"REWARD\"` | `rewardEntries` |\n| `\"CONFIG_OFFER\"` | `configOfferEntries` |\n"
type: array
items:
type: object
properties:
entryId:
$ref: '#/components/schemas/EntryId'
type:
type: string
enum:
- ENTRY
- SYSTEM_WIDE_OFFER
- REWARD
- CONFIG_OFFER
required:
- entryId
- type
required:
- id
- type
example: {}
SystemWideOfferEntry:
title: SystemWideOfferEntry
type: object
description: "These represent System-wide Offers available for this menu.\n"
allOf:
- $ref: '#/components/schemas/LoyaltyBaseEntry'
- properties:
id:
example: foo-offer-entity-id
type:
enum:
- SYSTEM_WIDE_OFFER
example: SYSTEM_WIDE_OFFER
name:
example: $5 Double Whopper and Small Fries
description:
example: 1 Double Whopper and 1 Small Fries
RewardEntry:
title: RewardEntry
type: object
description: "These represent Reward Offers available for this menu.\n"
allOf:
- $ref: '#/components/schemas/LoyaltyBaseEntry'
- properties:
id:
example: foo-reward-entity-id
type:
enum:
- REWARD
example: REWARD
name:
example: 4pc Nuggets
description:
example: 4pc Nuggets
loyaltyPoints:
example: '250'
ConfigOfferEntry:
title: ConfigOfferEntry
type: object
description:
allOf:
- $ref: '#/components/schemas/LoyaltyBaseEntry'
- properties:
type:
enum:
- CONFIG_OFFER
example: CONFIG_OFFER
loyaltyPoints:
example: '250'
Menu:
title: Menu
description: "Store menu\n"
type: object
properties:
meta:
description: Metadata about the menu document
properties:
brand:
$ref: '#/components/schemas/Brand'
currency:
$ref: '#/components/schemas/Currency'
locale:
$ref: '#/components/schemas/Locale'
serviceMode:
type: string
enum:
- delivery
- pickup
version:
type: string
example: xyz1
example: example
dayParts:
description: "Categories of menu availability by day and time\n"
type: array
items:
$ref: '#/components/schemas/DayPart'
rootMenuEntryId:
$ref: '#/components/schemas/EntryId'
description: Reference to root menu entry
entries:
description: "All valid menu entries\n"
type: array
items:
$ref: '#/components/schemas/Entry'
systemWideOfferEntries:
description: "All System-Wide Offer Entries\n"
type: array
items:
$ref: '#/components/schemas/SystemWideOfferEntry'
rewardEntries:
description: "All Reward Entries\n"
type: array
items:
$ref: '#/components/schemas/RewardEntry'
configOfferEntries:
description: "All Config Offer Entries\n"
type: array
items:
$ref: '#/components/schemas/ConfigOfferEntry'
required:
- meta
- dayParts
- rootMenuEntryId
- entries
OrderId:
title: OrderId
description: Unique identifier for an order
type: string
example: example-unique-id
MenuSelectionPriced:
title: Priced Menu Selection
description: Priced menu selection in the cart
type: object
allOf:
- $ref: '#/components/schemas/MenuSelection'
required:
- id
- price
- quantity
Feedback:
title: Menu Entry Feedback
description: "Line item feedback for a cart entry.\n"
type: object
required:
- entryId
properties:
entryId:
$ref: '#/components/schemas/EntryId'
isAvailable:
type: boolean
description: "Up to date availability for the entry.\n\nIf omitted, entry will be assumed to be available.\n"
example: true
price:
$ref: '#/components/schemas/Money'
description: "Up to date price for the entry.\n\nIf omitted, entry will be assumed to have correct price.\n"
Feedbacks:
title: Feedback
description: "Feedback on cart prices and availability for cart menu selections. Cart\nfeedback will only be provided for adjusted entries.\n"
type: array
items:
$ref: '#/components/schemas/Feedback'
CartPriced:
title: Priced Cart
description: Cart containing a customer's selections from the menu with prices
type: object
properties:
menuSelections:
type: array
items:
$ref: '#/components/schemas/MenuSelectionPriced'
feedback:
$ref: '#/components/schemas/Feedbacks'
required:
- menuSelections
MFTaxes:
title: Market Place Facilitator Taxes
description: "Representation of taxes calculated by the partner.\n"
type: object
properties:
taxRemittedByMpf:
title: Tax Amount Remitted By Marketplace Facilitator
description: The subtotal taxes from the market place facilitator
$ref: '#/components/schemas/Money'
isTaxRemittedByMpf:
title: The taxes calculation is handled by the Marketplace Facilitator
description: Boolean which represents if the taxes are calculated from the Partner
type: boolean
example: true
required:
- taxRemittedByMpf
- isTaxRemittedByMpf
Fee:
title: Fee
type: object
properties:
type:
type: string
description: "Type of fee.\n\n|Fee Type|Description |\n|--------|-----------------------------|\n|BAG_FEE |A fee for bags, as present in some municipalities for single use plastic bags |\n|CUP_FEE |A fee for cups, as present in some municipalities for single use cups |\n|DELIVERY_FEE|A fee for delivery, as often charged by delivery fulfillment providers |\n|SERVICE_FEE|A generic service fee. An example might be California's \"driver benefits\" fee (Proposition 22) |\n"
enum:
- BAG_FEE
- CUP_FEE
- DELIVERY_FEE
- SERVICE_FEE
example: BAG_FEE
total:
$ref: '#/components/schemas/Money'
description: Total amount to charge for the fee
Fees:
title: Fees
description: All applicable fees for an order
type: array
items:
$ref: '#/components/schemas/Fee'
Charges:
title: Charges
description: Order pricing details
type: object
properties:
tax:
$ref: '#/components/schemas/Money'
description: Taxes the customer must pay
mpfTax:
$ref: '#/components/schemas/MFTaxes'
description: Taxes calculated from the partners side
subTotal:
$ref: '#/components/schemas/Money'
description: The subtotal the customer must pay
total:
$ref: '#/components/schemas/Money'
description: The total amount the customer must pay
fees:
$ref: '#/components/schemas/Fees'
Discount:
title: Discount
description: A discount which ought to be applied to an order
type: object
properties:
type:
type: string
description: "Type of discount.\n\n|Discount Type|Description |\n|--------|-----------------------------|\n|DISCOUNT | Generic type for any discount |\n"
enum:
- DISCOUNT
example: DISCOUNT
total:
$ref: '#/components/schemas/Money'
description: Amount to be discounted
Discounts:
title: Discounts
description: Any discounts which ought to be applied to the order
type: array
items:
$ref: '#/components/schemas/Discount'
PaymentMethod:
title: Payment Method
description: How the customer has paid or will pay
type: string
enum:
- APPLE_PAY
- CASH
- CREDIT_CARD
- GIFTCARD
- GOOGLE_PAY
- PAYPAL
- UNPAID
- VENMO
Payment:
title: Payment
type: object
properties:
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
PosVendor:
title: posVendor
description: The posVendor that is processing the order
type: string
enum:
- BRINK
- CARROLS
- NCR
- QDI
- SICOM
OrderStatus:
title: Order Status
description: "Order status, representing current state of order in its lifecycle.\n\nWhen transitioning the order status, the status must always advance further in the lifecycle. All other transitions are invalid.\n\n|Status |Description |\n|---------|----------------------------------------------------------------------------|\n|CREATED |Order has been created. |\n|PRICED |Order has been priced. The POS has provided price information for the order.|\n|COMMITTED|Order has been committed. The POS has accepted the order. |\n|PREPARING|Order is being prepared in the restaurant |\n|PREPARED |Order has been prepared and is ready for pickup or delivery. |\n|DONE |Order is done. This is the final state for a successful order. |\n|CANCELED |Order has been cancelled. |\n|ERROR |Error with the order. Customer should be notified and refunded. |\n"
type: string
enum:
- CREATED
- PRICED
- COMMITTED
- PREPARING
- PREPARED
- DONE
- CANCELED
- ERROR
GeoPoint:
title: GeoPoint
description: The coordinates (latitude and longitude) for a given address.
type: object
required:
- latitude
- longitude
properties:
latitude:
description: Latitude
type: number
example: 25.782379
longitude:
description: Latitude
type: number
example: -80.289207
Address:
title: Address
description: Standardized representation of a physical address
type: object
properties:
administrativeArea:
description: "The highest administrative subdivision of a country or region. This can\nbe a state, a province, an oblast, or a prefecture. For places that do\nnot have an administrative area, this field must be omitted.\n"
type: string
example: FL
coordinates:
$ref: '#/components/schemas/GeoPoint'
formattedAddress:
description: "A locale-formatted version of the address appropriate for display.\n"
type: string
example: 5707 Blue Lagoon Drive
instructions:
description: Free-form instructions for accessing the location
type: string
example: example
locality:
type: string
description: "Generally refers to the city or town portion of the address.\n\nExamples include a city in the United States, a comune in Italy, and a\npost town in the United Kingdom.\n"
example: Miami-Dade County
postalCode:
description: "The postal code of the address. This field is optional because not all\ncountries use or require postal codes.\n"
type: string
example: '33126'
regionCode:
description: "The Unicode\n[Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)\nregion code of the country or region of the address. For example, the\ncode for the United States of America is `US`.\n\nFor the full list of codes, refer to the\n[CLDR Chart](http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html).\n"
type: string
example: US
route:
description: "Indicates the named route. This is often the name of the street, like\n`Blue Lagoon Drive`.\n"
type: string
example: Blue Lagoon Drive
streetNumber:
description: "Indicates the precise street number. An example is `5707`.\n"
type: string
example: '5707'
sublocality:
description: "A smaller area within the locality. Examples include neighborhoods,\nboroughs, and districts.\n"
type: string
example: example
subpremise:
description: "Finer-grained information about the location like unit or suite number.\n"
type: string
example: Suite 101
required:
- formattedAddress
- regionCode
- route
- streetNumber
POSOrderError:
title: Order Error
description: Generic error object for order processing
type: object
properties:
message:
type: string
description: Human readable error message
example: TERMINAL UPDATE IN PROGRESS
code:
type: string
description: Error code
example: STORE
enum:
- MENU
- STORE
- TIMEOUT
- UNKNOWN
required:
- message
- code
DateTime:
type: string
format: ISO 8601 Date Time
example: '1991-02-11T20:30:19Z'
FireOrderInSeconds:
title: Fire order in seconds
description: "Lead time in seconds before an injected order should be fired to the\nkitchen for preparation.\n- `fireOrderInSeconds=0` fire the order immediately to the kitchen.\n- `fireOrderInSeconds=null` hold the order in the POS without firing,\n requiring an explicit [Fire Order](#operation/fireOrder) call.\n"
example: 600
type:
- integer
- 'null'
minimum: 0
maximum: 100000
ReadyInSeconds:
title: Ready in seconds
description: "Time in seconds when the order will be ready.\n\nThis value incorporates the order `preparationTimeInSeconds` plus the \nvalue of `fireOrderInSeconds`. When `fireOrderInSeconds=0`, then `readyInSeconds`\nwill match the value of `preparationTimeInSeconds`, and when \n`fireOrderInSeconds=null`, then `readyInSeconds=null` as well.\n"
example: 600
type:
- integer
- 'null'
minimum: 0
Order:
title: Order
description: Representation of an order placed by a customer
type: object
properties:
id:
$ref: '#/components/schemas/OrderId'
description: Internal order ID
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
storeId:
$ref: '#/components/schemas/StoreId'
description: Internal store ID
cart:
$ref: '#/components/schemas/CartPriced'
serviceMode:
$ref: '#/components/schemas/ServiceMode'
customer:
$ref: '#/components/schemas/Customer'
charges:
$ref: '#/components/schemas/Charges'
discounts:
$ref: '#/components/schemas/Discounts'
payment:
$ref: '#/components/schemas/Payment'
posVendor:
$ref: '#/components/schemas/PosVendor'
status:
$ref: '#/components/schemas/OrderStatus'
deliveryAddress:
$ref: '#/components/schemas/Address'
description: Where the order will be delivered (only delivery orders)
loyaltyPointsEarned:
type: integer
description: Amount of Loyalty Points earned on this order
minimum: 0
example: 15
errors:
description: Any errors which occurred during order processing
type: array
items:
$ref: '#/components/schemas/POSOrderError'
createdAt:
$ref: '#/components/schemas/DateTime'
description: When the order was first created
updatedAt:
$ref: '#/components/schemas/DateTime'
description: When the order was last updated
fireOrderInSeconds:
$ref: '#/components/schemas/FireOrderInSeconds'
preparationTimeInSeconds:
type: integer
description: Estimated time it takes to prepare an order
minimum: 0
example: 300
readyInSeconds:
$ref: '#/components/schemas/ReadyInSeconds'
required:
- id
- cart
- customer
- storeId
- charges
- status
- channel
- serviceMode
- createdAt
- updatedAt
- posVendor
- fireOrderInSeconds
- preparationTimeInSeconds
- readyInSeconds
OrderError:
title: OrderError
type: object
description: Standard order error format
properties:
status:
description: HTTP status code
type: number
example: 400
code:
description: Unique error code. Same as errors[0].code
type: string
example: ValidationError
message:
description: Human readable error mesage. Same as errors[0].message
type: string
example: isAvailable must be a boolean value
errors:
description: All errors
type: array
items:
type: object
properties:
code:
description: Unique error code
type: string
example: ValidationError
message:
description: Human readable error mesage
type: string
details:
description: Detailed error information
type: string
domain:
type: string
location:
type: string
description: Location the error occurred. Interpreation depends on `locationType`
example: isAvailable
locationType:
type: string
description: How to interpret the location property
example: requestBody
sendReport:
description: URL to report this error
type: string
extendedHelp:
description: URL with additional information about the error type
type: string
required:
- code
- message
order:
$ref: '#/components/schemas/Order'
required:
- code
- message
- errors
MpfOrderId:
title: mpfOrderId
description: "External References for the order.\n\nYou can use this field to provide additional identifiers or any other string data to the order to be injected. \nA common use for this is to hold additional external order numbers, like receipt number or third party short order ID.\n"
example: '123456789'
type: string
Loyalty:
title: Loyalty information
description: User and transaction information regarding loyalty
type: object
properties:
loyaltyId:
$ref: '#/components/schemas/LoyaltyId'
transactionId:
$ref: '#/components/schemas/LoyaltyTransactionId'
required:
- loyaltyId
- transactionId
PriceOrder:
title: PriceOrder
type: object
properties:
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
storeId:
$ref: '#/components/schemas/StoreId'
serviceMode:
$ref: '#/components/schemas/ServiceMode'
cart:
$ref: '#/components/schemas/Cart'
customer:
$ref: '#/components/schemas/Customer'
charges:
$ref: '#/components/schemas/Charges'
mpfOrderId:
$ref: '#/components/schemas/MpfOrderId'
deliveryAddress:
$ref: '#/components/schemas/Address'
loyalty:
$ref: '#/components/schemas/Loyalty'
required:
- storeId
- serviceMode
- cart
- customer
CommitOrder:
title: CommitOrder
type: object
properties:
charges:
$ref: '#/components/schemas/Charges'
mpfOrderId:
$ref: '#/components/schemas/MpfOrderId'
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
fireOrderInSeconds:
$ref: '#/components/schemas/FireOrderInSeconds'
readyInSeconds:
$ref: '#/components/schemas/ReadyInSeconds'
required:
- paymentMethod
- fireOrderInSeconds
PlaceOrder:
title: PlaceOrder
type: object
properties:
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
storeId:
$ref: '#/components/schemas/StoreId'
serviceMode:
$ref: '#/components/schemas/ServiceMode'
cart:
$ref: '#/components/schemas/Cart'
customer:
$ref: '#/components/schemas/Customer'
charges:
$ref: '#/components/schemas/Charges'
deliveryAddress:
$ref: '#/components/schemas/Address'
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
fireOrderInSeconds:
$ref: '#/components/schemas/FireOrderInSeconds'
readyInSeconds:
$ref: '#/components/schemas/ReadyInSeconds'
mpfOrderId:
$ref: '#/components/schemas/MpfOrderId'
required:
- storeId
- serviceMode
- cart
- customer
- paymentMethod
- fireOrderInSeconds
OrderPlaced:
title: Order Placed
description: Representation of an order placed by a customer
type: object
properties:
id:
$ref: '#/components/schemas/OrderId'
description: Internal order ID
externalReferenceId:
$ref: '#/components/schemas/ExternalReferenceId'
description: Partner's order ID
callbackUrl:
type: string
description: URL to order details.
example: https://bk-partners.rbictg.com
required:
- id
- callbackUrl
Available:
title: Available
description: Information about store availability
type: object
properties:
isEnabled:
description: Detailed availability per service mode.
type: array
items:
type: object
properties:
id:
$ref: '#/components/schemas/ServiceMode'
value:
type: boolean
description: "Returns true if the store is Operating Available.\n\n\"Operating Available\" considers the current date and time to calculate the current availability for the \nservice mode.\n"
isOpen:
description: True if the store is available for ordering.
type: boolean
example: true
required:
- isOpen
Location:
title: Location
description: Information about a store location.
type: object
properties:
administrativeArea:
description: Location administrative area.
type: string
example: FL
coordinates:
$ref: '#/components/schemas/GeoPoint'
formattedAddress:
description: Store address.
type: string
example: 5701 BLUE LAGOON DR, MIAMI, FL 33126
locality:
description: Store locality.
type: string
example: MIAMI
phoneNumber:
description: Store phone number.
type: string
example: 555-555-5555
postalCode:
description: Store postalCode.
type: string
example: '33126'
regionCode:
description: "The Unicode [Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)\nregion code of the country or region of the address.\nFor example, the code for the United States is `US`.\n\nFor the full list of codes, refer to the [CLDR Chart](http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html).\n"
type: string
example: US
route:
description: Store route.
type: string
example: 5701 BLUE LAGOON DR
TimeSlot:
title: TimeSlot
description: "Contains information about the store service hours for a range of 15 consecutive days,\nstarting from the day before the request is made.\n"
type: object
properties:
closes:
description: Store close time.
example: '1991-02-11 23:59:00'
format: ISO 8601 Date Time (YYYY-MM-DD hh:mm:ss)
type: string
date:
description: Calendar day that this time slot reflects
example: '1991-02-11'
format: ISO 8601 Date (YYYY-MM-DD)
type: string
isClosed:
description: "Flag that determines if the store is closed.\n\nIf the store is open, this property won't be returned.\n"
type: boolean
example: true
opens:
description: Store open time.
example: '1991-02-11 00:00:00'
format: ISO 8601 Date Time (YYYY-MM-DD hh:mm:ss)
type: string
required:
- opens
- date
- closes
WeekdayHours:
title: WeekDayHours
description: "Human-readable view of a store's weekly operating hours.\n\n**Note**: This information is intended for display purposes only.\nIf you need to perform calculations based on the service hours, use the `timeSlots` property instead.\n"
type: object
properties:
text:
description: "Human-readable days of operation.\n\nThe \"Time range\" looks like:\n- For days that the store is open: \n `Weekday: hh:mm A - hh:mm A` (`Sunday: 12:00 AM - 11:59 PM`)\n- For days that the store is closed: \n `Weekday: closed` (`Sunday: closed`)\n"
type: string
format: 'Weekday: Time range'
example: 'Sunday: 12:00 AM - 11:59 PM'
ServiceHour:
title: ServiceHour
description: Store operating hours by serviceMode
type: object
properties:
serviceMode:
$ref: '#/components/schemas/ServiceMode'
timeSlots:
description: "Contains information about the store service hours for a range of 15 consecutive days,\nstarting from the day before the request is made.\n"
type: array
items:
$ref: '#/components/schemas/TimeSlot'
weekdayHours:
description: "Human-readable view of a store's weekly operating hours.\n\n**Note**: This information is intended for display purposes only.\nIf you need to perform calculations based on the service hours, use the `timeSlots` property instead.\n"
type: array
items:
$ref: '#/components/schemas/WeekdayHours'
required:
- serviceMode
- timeSlots
Timezone:
title: Timezone
description: "Timezone from the IANA\n[tz database](https://en.wikipedia.org/wiki/Tz_database)\n"
example: America/New_York
type: string
Store:
title: Store
description: Information about a store
type: object
properties:
availability:
$ref: '#/components/schemas/Available'
description: True if the store is available for ordering.
franchiseGroupName:
description: Store franchise group name.
type: string
example: Acme Group
location:
$ref: '#/components/schemas/Location'
name:
description: Store name
type: string
example: Example test lab
posVendor:
$ref: '#/components/schemas/PosVendor'
serviceHour:
description: Store operating hours by serviceMode
type: array
items:
$ref: '#/components/schemas/ServiceHour'
storeId:
$ref: '#/components/schemas/StoreId'
timezone:
$ref: '#/components/schemas/Timezone'
required:
- availability
- name
- storeId
- timezone
- posVendor
- location
- serviceHour
Reason:
title: reason
description: Reason for the change in store status
example: store was deactivated due to high error rate
type: string
Region:
title: Region
description: "Region\nThe Unicode [Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)\nregion code of the country or region of the address.\nFor example, the code for the United States is `US`.\n\nFor the full list of codes, refer to the [CLDR Chart](http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html).\n"
example: US
type: string
StoreStatus:
title: storeStatus
description: The current marketplace status of the store
type: string
enum:
- ACTIVE
- INACTIVE
StoreStatusChanged:
title: StoreStatusChanged
type: object
properties:
reason:
$ref: '#/components/schemas/Reason'
region:
$ref: '#/components/schemas/Region'
storeStatus:
$ref: '#/components/schemas/StoreStatus'
updatedAt:
$ref: '#/components/schemas/DateTime'
required:
- storeStatus
- region
- updatedAt
limit:
title: Limit
description: Amount of results to fetch
example: 10
type: integer
minimum: 1
default: 20
maximum: 100
cursor:
title: Cursor
description: Pagination cursor
example: cursor-id
type: string
parameters:
region:
description: "The Unicode [Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)\nregion code of the country or region of the address.\n\nFor the full list of country codes, refer to the [CLDR Chart](http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html).\n"
name: x-ui-region
in: header
example: US
schema:
type: string
store-id:
description: Unique Store ID
name: storeId
in: path
required: true
schema:
$ref: '#/components/schemas/StoreId'
example: '500123'
order-id:
description: Unique Order ID
name: orderId
in: path
required: true
schema:
type: string
example: '500123'
limit:
description: Number of results to fetch
name: limit
in: query
required: false
schema:
$ref: '#/components/schemas/limit'
example: example
cursor:
description: Pagination cursor
name: cursor
in: query
required: false
schema:
$ref: '#/components/schemas/cursor'
example: example
paths:
/loyalty/identify:
post:
summary: Identify
tags:
- Loyalty
operationId: identify
parameters: []
security:
- bearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IdentifyRequest'
examples:
IdentifyRequestExample:
summary: Default identify request
x-microcks-default: true
value:
identifier: '1234'
identifierType: OTP
storeId: '42'
serviceMode: TAKEOUT
details:
operator: {}
terminal: {}
transactionId: {}
responses:
'200':
description: Loyalty identified
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/IdentifyResponse'
required:
- data
examples:
Identify200Example:
summary: Default identify 200 response
x-microcks-default: true
value:
data:
cart:
menuSelections: {}
customer:
id: {}
externalReferenceId: {}
name: {}
username: {}
phone: {}
email: {}
loyalty:
balances: {}
loyaltyId: {}
transactionId: {}
storeId: '42'
serviceMode: TAKEOUT
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Identify400Example:
summary: Default identify 400 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'403':
description: Authentication failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Identify403Example:
summary: Default identify 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Identifier Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Identify404Example:
summary: Default identify 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Identify500Example:
summary: Default identify 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/stores/{storeId}/menus/{serviceMode}:
get:
tags:
- Menus
summary: Menu
description: "Get full menu for an individual store\n\nThe menu response is a \"flat\" JSON (it doesn't have nested structures). All fields are root level properties, so you can refer to them simply by ID. The below example is a walk-through from menu to modifier.\n\n| Tenders example | Type | ID | Name |\n|-----------------|------|----|------|\n| Menu | Group | menu_1 | Menu |\n| Section | Group | 4763b543-2d04-40a6-8b95-d55750ec554a | Tenders |\n| Picker | Group | xdgrygmaqSf78Pjdh6UrTF | 3Pc Tenders Meal |\n| picker_pickerAspect | Group | xdgrygmaqSf78Pjdh6UrTF-76b9c2d3-536e-46bb-a060-f805a63b0063 | Choose a Size |\n| picker_pickerAspectOption | Group | xdgrygmaqSf78Pjdh6UrTF-medium | Large Combo |\n| picker_pickerAspect_pickerAspectOption_pickerAspect | Group | xdgrygmaqSf78Pjdh6UrTF-76b9c2d3-536e-46bb-a060-f805a63b0063-medium-b376ee07-5ba9-464d-a3b0-e79ad3643e2a | Choice of Tenders Preparation |\n| picker_pickerAspectOption_pickerAspectOption2 | Group | xdgrygmaqSf78Pjdh6UrTF-medium-spicy | Spicy |\n| combo | Combo | 00cc6fc6-5ce7-4361-aa95-9d6d726b5bbd | 3Pc Tenders Medium Combo - Spicy |\n| comboSlot | Group | group_item_40961 | Main Item |\n| comboSlotOption | Group | option_group_item_40961 | N/A |\n| item | Item | item_40961 | 3Pc Tenders - Spicy |\n| modifierGroup | Group | ModifierGroup_60 | Sauces - 1 Included |\n| modifier | Modifier | modifierMultiplier_1-00-163758 | Tartar Sauce |\n\nDefault entry: For each Picker & Modifier Group, each group will have a property, “defaultSelection”.\nDefaultSelection will have an ID for an entry that is default for that group\n\n\nGROUPS:\nThe menu has four types: Combo, Item, Group and Modifier.\nThe group type exists to wrap relevant references to walk through the menu. Only Combo, Item and\nModifier will be passed to and committed to POS in Cart.\n\n| Types of Groups | Description | Display type |\n|-----------------|-------------|--------------|\n| Menu | Group of Sections | List |\n| Section | Section is a broad container. It can contain pickers, items , combos as well as other sections | List |\n| Picker | Pickers allows an step by step selection process that ultimate resolve in Combos or Item. Pickers have only one immediate child, a reference to the first aspect. | Single entry |\n| Picker Aspect | Group of Picker Aspect Options | Select |\n| Picker Aspect Option | Group of picker Options - References the next aspect for the picker. The picker options of the last aspect reference the final selection result (combo/item) | Single entry |\n| Combo Slot | Group of Combo Slot Options | Select |\n| Combo Slot Option | References Combo Slot Option | Single entry |\n| Modifier Group | Group of Modifiers | Multi-select |\n\n| Group display type | Description |\n|--------------------|-------------|\n| List | Group of Sections & Pickers(subsections) |\n| Single-Entry | \tOne option that maps to options to select from (Size, Choice of Prep) |\n| Select | \tGroup with Single Selection Option |\n| Multi-Select | Group with Multiple Selection Options |\n"
operationId: getStoreMenu
parameters:
- $ref: '#/components/parameters/region'
- $ref: '#/components/parameters/store-id'
- name: serviceMode
description: Service mode
in: path
required: true
schema:
$ref: '#/components/schemas/ServiceMode'
example: DELIVERY
- name: version
description: Menu version ID
example: '1'
in: query
required: false
schema:
type: string
security:
- bearer: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Menu'
examples:
GetStoreMenu200Example:
summary: Default getStoreMenu 200 response
x-microcks-default: true
value:
data:
meta: example
dayParts:
- {}
rootMenuEntryId: entry-id
entries:
- {}
systemWideOfferEntries:
- {}
rewardEntries:
- {}
configOfferEntries:
- {}
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStoreMenu403Example:
summary: Default getStoreMenu 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Store not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStoreMenu404Example:
summary: Default getStoreMenu 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/channel/{orderId}:
get:
tags:
- Orders
summary: Order
description: "Retrieve an order by ID\n"
operationId: getOrder
parameters:
- $ref: '#/components/parameters/order-id'
- $ref: '#/components/parameters/region'
security:
- bearer: []
responses:
'200':
description: Order retrieve success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Order'
required:
- data
examples:
GetOrder200Example:
summary: Default getOrder 200 response
x-microcks-default: true
value:
data:
id: example-unique-id
externalReferenceId: example
storeId: '42'
cart:
menuSelections: {}
feedback: {}
serviceMode: TAKEOUT
customer:
id: {}
externalReferenceId: {}
name: {}
username: {}
phone: {}
email: {}
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
discounts:
- {}
payment:
paymentMethod: {}
posVendor: BRINK
status: CREATED
deliveryAddress:
administrativeArea: {}
coordinates: {}
formattedAddress: {}
instructions: {}
locality: {}
postalCode: {}
regionCode: {}
route: {}
streetNumber: {}
sublocality: {}
subpremise: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: '1991-02-11T20:30:19Z'
updatedAt: '1991-02-11T20:30:19Z'
fireOrderInSeconds: 600
preparationTimeInSeconds: 300
readyInSeconds: 600
'403':
description: Authentication failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetOrder403Example:
summary: Default getOrder 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Order not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetOrder404Example:
summary: Default getOrder 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/OrderError'
examples:
GetOrder500Example:
summary: Default getOrder 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
message: example
details: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
order:
id: {}
externalReferenceId: {}
storeId: {}
cart: {}
serviceMode: {}
customer: {}
charges: {}
discounts: {}
payment: {}
posVendor: {}
status: {}
deliveryAddress: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: {}
updatedAt: {}
fireOrderInSeconds: {}
preparationTimeInSeconds: 300
readyInSeconds: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/price:
post:
tags:
- Orders
summary: Price Order
description: "Price a new order.\n\nThe price order API must be called to create a new order and to validate the\ncart prices and item availability with the POS. When the Price Order\nrequest returns a success reponse, a subsequent [Commit Order](#operation/\ncommitOrder) request should (but is not guarenteed to) succeed.\n\nPrice requests can fail for a variety of reasons. For example\\:\n- Restaurant - The restaurant is unavailable.\n- Menu - An item in the cart is unavailable or violates permitted constraints.\n- Loyalty - Invalid user details were provided or a discount redemption failed.\n- POS - The order failed to price or inject.\n\nLoyalty\n- Rewards:\n the cart must contain a menu selection with the id of the reward and children menu selections with one of possible options.\n If a reward points to a combo, then the combo must also contain menu selections for its options.\n A reward can be reedemed muliple times by modifying the quantity of the root menuSelection. The quantity of the children menuSelection must always be 1.\n- Offers:\n Offers are presented in the menu in a nested structure. The first level offer will always point to a second level offer by its options.\n The second level offer defines the entries required in the cart by its options. If the options is of type ENTRY then the item is present in the menu as a regular item.\n If an option has type 'SYSTEM_WIDE_OFFER' then an entity in the offer section will be present with that id and that entity should point to regular menu items by its options. In this scenario the client is given the capability to chose which option to include in the cart.\n - Constraints\n - An order can only contain one offer. This means it isn't possible to provide two menu selections with an offer or specifiying quantity different than 1."
operationId: priceOrder
parameters:
- $ref: '#/components/parameters/region'
security:
- bearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PriceOrder'
examples:
PriceOrderRequestExample:
summary: Default priceOrder request
x-microcks-default: true
value:
externalReferenceId: example
storeId: '42'
serviceMode: TAKEOUT
cart:
menuSelections:
- {}
customer:
id: '500123'
externalReferenceId: {}
name: Whopper
username: example
phone: {}
email: guest@example.com
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
mpfOrderId: '123456789'
deliveryAddress:
administrativeArea: FL
coordinates: {}
formattedAddress: 5707 Blue Lagoon Drive
instructions: example
locality: Miami-Dade County
postalCode: '33126'
regionCode: US
route: Blue Lagoon Drive
streetNumber: '5707'
sublocality: example
subpremise: Suite 101
loyalty:
loyaltyId: {}
transactionId: {}
responses:
'200':
description: Order price request success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Order'
required:
- data
examples:
PriceOrder200Example:
summary: Default priceOrder 200 response
x-microcks-default: true
value:
data:
id: example-unique-id
externalReferenceId: example
storeId: '42'
cart:
menuSelections: {}
feedback: {}
serviceMode: TAKEOUT
customer:
id: {}
externalReferenceId: {}
name: {}
username: {}
phone: {}
email: {}
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
discounts:
- {}
payment:
paymentMethod: {}
posVendor: BRINK
status: CREATED
deliveryAddress:
administrativeArea: {}
coordinates: {}
formattedAddress: {}
instructions: {}
locality: {}
postalCode: {}
regionCode: {}
route: {}
streetNumber: {}
sublocality: {}
subpremise: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: '1991-02-11T20:30:19Z'
updatedAt: '1991-02-11T20:30:19Z'
fireOrderInSeconds: 600
preparationTimeInSeconds: 300
readyInSeconds: 600
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
PriceOrder400Example:
summary: Default priceOrder 400 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'403':
description: Authentication failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
PriceOrder403Example:
summary: Default priceOrder 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/OrderError'
examples:
PriceOrder500Example:
summary: Default priceOrder 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
message: example
details: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
order:
id: {}
externalReferenceId: {}
storeId: {}
cart: {}
serviceMode: {}
customer: {}
charges: {}
discounts: {}
payment: {}
posVendor: {}
status: {}
deliveryAddress: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: {}
updatedAt: {}
fireOrderInSeconds: {}
preparationTimeInSeconds: 300
readyInSeconds: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/{orderId}/commit:
post:
tags:
- Orders
summary: Commit Order
description: "Commit an order.\n"
operationId: commitOrder
parameters:
- $ref: '#/components/parameters/order-id'
- $ref: '#/components/parameters/region'
security:
- bearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CommitOrder'
examples:
CommitOrderRequestExample:
summary: Default commitOrder request
x-microcks-default: true
value:
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
mpfOrderId: '123456789'
paymentMethod: APPLE_PAY
fireOrderInSeconds: 600
readyInSeconds: 600
responses:
'200':
description: Order commit success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Order'
required:
- data
examples:
CommitOrder200Example:
summary: Default commitOrder 200 response
x-microcks-default: true
value:
data:
id: example-unique-id
externalReferenceId: example
storeId: '42'
cart:
menuSelections: {}
feedback: {}
serviceMode: TAKEOUT
customer:
id: {}
externalReferenceId: {}
name: {}
username: {}
phone: {}
email: {}
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
discounts:
- {}
payment:
paymentMethod: {}
posVendor: BRINK
status: CREATED
deliveryAddress:
administrativeArea: {}
coordinates: {}
formattedAddress: {}
instructions: {}
locality: {}
postalCode: {}
regionCode: {}
route: {}
streetNumber: {}
sublocality: {}
subpremise: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: '1991-02-11T20:30:19Z'
updatedAt: '1991-02-11T20:30:19Z'
fireOrderInSeconds: 600
preparationTimeInSeconds: 300
readyInSeconds: 600
'400':
description: Order commit failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CommitOrder400Example:
summary: Default commitOrder 400 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'403':
description: Authentication failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CommitOrder403Example:
summary: Default commitOrder 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Order not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CommitOrder404Example:
summary: Default commitOrder 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/OrderError'
examples:
CommitOrder500Example:
summary: Default commitOrder 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
message: example
details: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
order:
id: {}
externalReferenceId: {}
storeId: {}
cart: {}
serviceMode: {}
customer: {}
charges: {}
discounts: {}
payment: {}
posVendor: {}
status: {}
deliveryAddress: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: {}
updatedAt: {}
fireOrderInSeconds: {}
preparationTimeInSeconds: 300
readyInSeconds: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/{orderId}/fire:
post:
tags:
- Orders
summary: Fire Order
description: "Fire a committed order to the kitchen for preparation.\n\nIn cases when an order is committed with some pre-determined lead time\n(e.g., 30 minutes from now), it may be necessary to \"fire\" or \"release\" the\norder to the kitchen immediately before the original lead time has elapsed.\n"
operationId: fireOrder
parameters:
- $ref: '#/components/parameters/order-id'
- $ref: '#/components/parameters/region'
security:
- bearer: []
responses:
'200':
description: Order fire success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Order'
required:
- data
examples:
FireOrder200Example:
summary: Default fireOrder 200 response
x-microcks-default: true
value:
data:
id: example-unique-id
externalReferenceId: example
storeId: '42'
cart:
menuSelections: {}
feedback: {}
serviceMode: TAKEOUT
customer:
id: {}
externalReferenceId: {}
name: {}
username: {}
phone: {}
email: {}
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
discounts:
- {}
payment:
paymentMethod: {}
posVendor: BRINK
status: CREATED
deliveryAddress:
administrativeArea: {}
coordinates: {}
formattedAddress: {}
instructions: {}
locality: {}
postalCode: {}
regionCode: {}
route: {}
streetNumber: {}
sublocality: {}
subpremise: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: '1991-02-11T20:30:19Z'
updatedAt: '1991-02-11T20:30:19Z'
fireOrderInSeconds: 600
preparationTimeInSeconds: 300
readyInSeconds: 600
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FireOrder403Example:
summary: Default fireOrder 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Order not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FireOrder404Example:
summary: Default fireOrder 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/OrderError'
examples:
FireOrder500Example:
summary: Default fireOrder 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
message: example
details: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
order:
id: {}
externalReferenceId: {}
storeId: {}
cart: {}
serviceMode: {}
customer: {}
charges: {}
discounts: {}
payment: {}
posVendor: {}
status: {}
deliveryAddress: {}
loyaltyPointsEarned: 15
errors:
- {}
createdAt: {}
updatedAt: {}
fireOrderInSeconds: {}
preparationTimeInSeconds: 300
readyInSeconds: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/place:
post:
tags:
- Orders
summary: Place Order
description: "Price and commit a new order.\n\nThe place order API [prices](#operation/priceOrder) and [commits](#operation/commitOrder) an order\nasynchronously. Partners receive order changes via the [Order Updated webhook](#operation/orderUpdateEvent).\n\nPlace order can fail for the same reasons a Price and Commit calls can fail, but also:\n- Price mismatches between partner and POS."
operationId: placeOrder
parameters:
- $ref: '#/components/parameters/region'
security:
- bearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlaceOrder'
examples:
PlaceOrderRequestExample:
summary: Default placeOrder request
x-microcks-default: true
value:
externalReferenceId: example
storeId: '42'
serviceMode: TAKEOUT
cart:
menuSelections:
- {}
customer:
id: '500123'
externalReferenceId: {}
name: Whopper
username: example
phone: {}
email: guest@example.com
charges:
tax: {}
mpfTax: {}
subTotal: {}
total: {}
fees: {}
deliveryAddress:
administrativeArea: FL
coordinates: {}
formattedAddress: 5707 Blue Lagoon Drive
instructions: example
locality: Miami-Dade County
postalCode: '33126'
regionCode: US
route: Blue Lagoon Drive
streetNumber: '5707'
sublocality: example
subpremise: Suite 101
paymentMethod: APPLE_PAY
fireOrderInSeconds: 600
readyInSeconds: 600
mpfOrderId: '123456789'
responses:
'200':
description: Order place request success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/OrderPlaced'
required:
- data
examples:
PlaceOrder200Example:
summary: Default placeOrder 200 response
x-microcks-default: true
value:
data:
id: example-unique-id
externalReferenceId: example
callbackUrl: https://bk-partners.rbictg.com
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
PlaceOrder400Example:
summary: Default placeOrder 400 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'403':
description: Authentication failure
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
PlaceOrder403Example:
summary: Default placeOrder 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
PlaceOrder500Example:
summary: Default placeOrder 500 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/stores/{storeId}:
get:
tags:
- Stores
summary: Store
description: "Store (restaurant) details.\n\nUse this endpoint get the full details of a specific store, including the Detailed Availability by service mode\n"
operationId: getStore
parameters:
- $ref: '#/components/parameters/region'
- name: storeId
in: path
description: Unique ID representing a store
required: true
schema:
type: string
example: '500123'
security:
- bearer: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Store'
examples:
GetStore200Example:
summary: Default getStore 200 response
x-microcks-default: true
value:
data:
availability:
isEnabled: {}
isOpen: {}
franchiseGroupName: Acme Group
location:
administrativeArea: {}
coordinates: {}
formattedAddress: {}
locality: {}
phoneNumber: {}
postalCode: {}
regionCode: {}
route: {}
name: Example test lab
posVendor: BRINK
serviceHour:
- {}
storeId: '42'
timezone: America/New_York
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStore403Example:
summary: Default getStore 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Store not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStore404Example:
summary: Default getStore 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/stores/{storeId}/store-status-changed:
post:
tags:
- Stores
summary: Store Status Changed
description: "This endpoint is used to update the status of a store.\n"
operationId: storeStatusChanged
parameters:
- name: storeId
in: path
description: Unique ID representing a store
required: true
schema:
type: string
example: '500123'
security:
- bearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StoreStatusChanged'
examples:
StoreStatusChangedRequestExample:
summary: Default storeStatusChanged request
x-microcks-default: true
value:
reason: store was deactivated due to high error rate
region: US
storeStatus: ACTIVE
updatedAt: '1991-02-11T20:30:19Z'
responses:
'200':
description: Successfully updated the store status.
'400':
description: Bad request due to missing field or content
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
StoreStatusChanged400Example:
summary: Default storeStatusChanged 400 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
StoreStatusChanged403Example:
summary: Default storeStatusChanged 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Store not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
StoreStatusChanged404Example:
summary: Default storeStatusChanged 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/stores:
get:
tags:
- Stores
summary: List Stores
description: "Store List.\n\nUse this endpoint get a list of stores and their info.\n\n**Pagination**\n\nPagination is provided in a cursor-basis. For each set of results, a `cursor` will be returned as part of the\nresponse's `meta`. Providing this `cursor` to the next call will fetch the next page of the result set.\n\nThe max amount of restaurants to be returned is controlled by `limit`\n"
operationId: getStores
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/region'
security:
- bearer: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- data
properties:
meta:
type: object
properties:
cursor:
description: Cursor to fetch the next set of results
$ref: '#/components/schemas/cursor'
data:
type: array
items:
$ref: '#/components/schemas/Store'
examples:
GetStores200Example:
summary: Default getStores 200 response
x-microcks-default: true
value:
meta:
cursor: cursor-id
data:
- availability: {}
franchiseGroupName: Acme Group
location: {}
name: Example test lab
posVendor: {}
serviceHour:
- {}
storeId: {}
timezone: {}
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStores403Example:
summary: Default getStores 403 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
'404':
description: Store not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetStores404Example:
summary: Default getStores 404 response
x-microcks-default: false
value:
status: 400
code: ValidationError
message: isAvailable must be a boolean value
errors:
- code: ValidationError
details: example
message: example
domain: example
location: isAvailable
locationType: requestBody
sendReport: example
extendedHelp: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
webhooks:
menuUpdate:
post:
summary: Menu Updated Event
description: "Menu updated events are dispatched when a store's menu changes.\n\nMenus can change for a variety of reasons. Some stores may update the\navailability of an item to make it unavailable for orders (\"stock out\").\nOperators also make frequent changes to menu prices throughout the day,\nand at the brand-level menu entries are being added and removed\ncontinuously.\n\nWhen these `\"MENU_UPDATED\"` events are delivered, a request *must* be\nmade to the provided `callbackUrl` to fetch the latest store menu details.\n"
tags:
- Menus
parameters:
- in: header
name: x-signature
description: A hex encoded HMAC signature
schema:
type: string
operationId: storeMenuUpdateEvent
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
brand:
$ref: '#/components/schemas/Brand'
callbackUrl:
description: "URL from which the updated menu contents may be retrieved\n"
type: string
format: url
example: https://rbictg.com/api/v1/menus/41?servicemode=DELIVERY&version=1
eventTime:
description: "When the menu update occurred\n"
$ref: '#/components/schemas/DateTime'
eventType:
description: Webhook event type
type: string
enum:
- MENU_UPDATED
region:
$ref: '#/components/schemas/Region'
serviceMode:
description: Menu service mode
$ref: '#/components/schemas/ServiceMode'
storeId:
$ref: '#/components/schemas/StoreId'
version:
description: "Unique ID for the menu iteration that triggered the update.\n\nEach store menu update for a store and service mode will include\na unique version ID.\n"
type: string
required:
- brand
- callbackUrl
- eventTime
- eventType
- serviceMode
- storeId
- version
responses:
2XX:
description: Event acknowledged
4XX:
description: Failed to acknowledge
5XX:
description: Failed to acknowledge
storeUpdate:
post:
summary: Store Updated Event
description: "Store updated events are dispatched when a store's availability or metadata\nhas changed.\n\nThe availability of individual stores can change regularly for a variety of\nreasons. In some cases a store may be experiencing a temporary outage, or a\nmore widespread outage may be affecting the Point of Sale (POS) vendor. In\naddition, store operators can update operating hours and service modes, and\nexpect these changes to be reflected across all supported platforms.\n\nWhen these `\"STORE_UPDATED\"` events are delivered, a request *must* be\nmade to the provided `callbackUrl` to fetch the latest store details.\n"
tags:
- Stores
parameters:
- in: header
name: x-signature
description: A hex encoded HMAC signature
schema:
type: string
operationId: storeUpdateEvent
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
brand:
$ref: '#/components/schemas/Brand'
callbackUrl:
description: "URL from which the updated store details may be retrieved.\n"
type: string
format: url
example: https://partners-bk.rbictg.com/api/v1/stores/42
eventTime:
description: Store update event time.
$ref: '#/components/schemas/DateTime'
eventType:
description: Webhook event type.
type: string
enum:
- STORE_UPDATED
region:
$ref: '#/components/schemas/Region'
storeId:
$ref: '#/components/schemas/StoreId'
required:
- brand
- callbackUrl
- eventTime
- eventType
- region
- storeId
responses:
2XX:
description: Event acknowledged
4XX:
description: Failed to acknowledge
5XX:
description: Failed to acknowledge
orderUpdate:
post:
summary: Order Updated Event
description: "Order updated events are dispatched as an order state transitions.\n\nWhen these `\"ORDER_UPDATED\"` events are delivered, a request *must* be\nmade to the provided `callbackUrl` to fetch the latest order details.\n"
tags:
- Orders
parameters:
- in: header
name: x-signature
description: A hex encoded HMAC signature
schema:
type: string
operationId: orderUpdateEvent
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
brand:
$ref: '#/components/schemas/Brand'
callbackUrl:
description: "URL from which the updated order contents may be retrieved\n"
type: string
format: url
example: https://rbictg.com/api/v1/orders/41
eventTime:
description: "When the order update occurred\n"
$ref: '#/components/schemas/DateTime'
eventType:
description: Webhook event type
type: string
enum:
- ORDER_UPDATED
region:
$ref: '#/components/schemas/Region'
id:
$ref: '#/components/schemas/OrderId'
required:
- brand
- callbackUrl
- eventTime
- eventType
- region
- id
responses:
2XX:
description: Event acknowledged
4XX:
description: Failed to acknowledge
5XX:
description: Failed to acknowledge
tags:
- name: LoyaltyAPI
x-displayName: Loyalty
description: "Loyalty\n\n#### Identify\n\nThis step allows for the identification of loyalty users or offers\n"
- name: OrdersAPI
x-displayName: Orders
description: "Order fulfillment is implemented as 2-step workflow: **Price** and **Commit**.\n\n#### Price Order\n\nThe mandatory [Price Order](#operation/priceOrder) API validates the order request and returns the\nsubtotal, total, and tax amounts for the order from the restaurant POS. The request also returns a\nunique order `id`, which must be provided to the subsequent Commit (and/or Fire) API calls.\n\n#### Commit Order\n\nAny successfully priced order may be injected by passing its `orderId` to the [Commit\nOrder](#operation/commitOrder) API.\n\n#### (Optional) Fire Order\n\nFires (dispatches) any committed order to the kitchen for preparation.\n\nOrders may be committed to the restaurant POS, but held indefinitely rather than being \"fired\" to\nthe kitchen for preparation. This preparation time is managed with the `fireOrderInSeconds` attribute\nprovided with the [Commit Order](#operation/commitOrder) API call.\n"
- name: MenusAPI
x-displayName: Menus
description: ''
- name: StoresAPI
x-displayName: Stores
description: ''
- name: OrderModel
x-displayName: Order
description: "\n"
- name: MenuModel
x-displayName: Menu
description: "\n"
- name: StoreModel
x-displayName: Store
description: "\n"
- name: ErrorModel
x-displayName: Error
description: "\n"
x-tagGroups:
- name: API
tags:
- Loyalty
- Orders
- Menus
- Stores
- name: Models
tags:
- OrderModel
- MenuModel
- StoreModel
- ErrorModel