{"openapi":"3.0.0","servers":[{"description":"Production URL for the UK API","url":"https://uk.api.just-eat.io"},{"description":"Production URL for the DK, ES, IE, IT and NO API","url":"https://i18n.api.just-eat.io"},{"description":"Production URL for the AU and NZ API","url":"https://aus.api.just-eat.io"}],"info":{"contact":{"x-twitter":"JustEatUK"},"description":"# Just Eat API\nJust Eat offers services for our various business partners and our consumer applications.\nHow you interact with the API depends on the services you wish to interact with.\n## Security\n### HTTPS\nAll api calls and callbacks require HTTPS. Your service will need a valid SSL certificate and be accessible via the standard SSL port (port 443).\n## Making an API request\nSome API calls require an API key, to authenticate the partner calling the API.\n```\nPUT https://uk-partnerapi.just-eat.io/orders/abcd1234 HTTP/1.1\nAuthorization: JE-API-KEY abcd123456789\n```\nOther calls require a user token in the form of a JWT.\n```\nGET https://uk.api.just-eat.io/consumer/me/orders/uk HTTP/1.1\nAuthorization: Bearer abcd123456789\n```\n\n## Date Formats\n### Date and time formats\nAll dates and times should use the [ISO 8601 standard for representation of dates and times](https://en.wikipedia.org/wiki/ISO_8601).\n\n#### For instance:\n* DueDateWithUtcOffset: `\"2015-05-26T14:52:35.5444292+01:00\"`\n  - Local time: `14:52`\n  - UTC time: `13:52`\n  - UTC offset: `+1hr` (due to daylight time saving)\n* DueDateWithUtcOffset: `\"2015-02-03T11:10:00.0000000+00:00\"`\n  - Local time: `11:10`\n  - UTC time: `11:10`\n  - UTC offset: `0` (no daylight time saving, local time is equivalent to UTC)\n\nNote that the offset may be for a timezone different to your own, so you should alway convert to your own local time for display purposes (e.g. on receipts and terminals).\n\n### Callback timestamps\nTimestamps sent to Just Eat should be recorded as the current local time (including any changes needed to account for daylight saving) with an accompanying offset that shows the difference between the recorded local time and the current UTC time.\n\nIf it is not possible to record timestamps in local time, timestamps may be recorded in UTC time with a 00:00 offset.\n## Async Webhooks\nSome of the webhooks on the platform are configured as being 'async' webhooks. These are for long-running operations, and work as follows:\n  1. Your webhook is invoked with a `?callback={returnUrl}` query string parameter. The `returnUrl` is a unique URL that you will need to send the async response to.\n  2. Return an immediate `202 Accepted` response from the webhook endpoint, to indicate that you have received the request.\n  3. Perform the long-running operation. This can be deemed either a _success_; or a _failure_.\n  4. If the result is a _**success**_, return the following:\n  ```\n  POST {returnUrl} HTTP/1.1\n\n  {\n        \"status\": \"Success\",\n        \"message\": \"{successMessage}\",\n        \"data\": {}   // webhook-specific response object\n  }\n  ```\n  5. Otherwise, if the result is a _**failure**_, return the following:\n  ```\n  POST {returnUrl} HTTP/1.1\n\n  {\n        \"status\": \"Failure\",\n        \"message\": \"{failureMessage}\",\n        \"data\": {}   // webhook-specific response object\n  }\n  ```","title":"Just Eat UK","version":"1.0.0","x-apisguru-categories":["ecommerce"],"x-logo":{"url":"https://twitter.com/JustEatUK/profile_image?size=original"},"x-origin":[{"format":"openapi","url":"https://uk.api.just-eat.io/docs/openapi.json","version":"3.0"}],"x-providerName":"just-eat.co.uk"},"paths":{"/acceptance-requested":{"post":{"description":"This webhook will be invoked whenever acceptance has been requested for the order.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/acceptance-requested"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Acceptance requested","tags":["Order Acceptance Webhooks","publicly-accessible"]}},"/attempted-delivery-query-resolved":{"put":{"description":"This webhook will be invoked whenever an attempted delivery query has been resolved.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/attempted-delivery-resolved"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Attempted delivery query resolved","tags":["Attempted Delivery Webhooks","publicly-accessible"],"x-status":"Stable"}},"/checkout/{tenant}/{checkoutId}":{"get":{"description":"Get the details required to fulfil an order, which includes:\n  - The restaurant selling the items to be purchased\n  - The customer making the purchase\n  - How, where and when the items will be received by the customer\n  - Instructions about the order\n","parameters":[{"description":"A two-character country code. \n\nThe following countries are supported:\n  - United Kingdom (UK)\n  - Australia (AU)\n  - New Zealand (NZ)\n","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"A unique identifier for a checkout. This is currently a Basket Id.","in":"path","name":"checkoutId","required":true,"schema":{"type":"string"}},{"description":"Allows the server to identify the application making the request.","in":"header","name":"User-Agent","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"customer":{"firstName":"Joe","lastName":"Bloggs","phoneNumber":"+447111111111"},"fulfilment":{"location":{"address":{"administrativeArea":"Somerset","lines":["1 Bristol Road"],"locality":"Bristol","postalCode":"BS1 1AA"},"geolocation":{"latitude":1,"longitude":-1}},"time":{"asap":false,"scheduled":{"from":"2025-04-15T13:52:07.549Z","to":"2025-04-15T13:52:07.549Z"}}},"isFulfillable":true,"issues":[{"code":"RESTAURANT_NOT_TAKING_ORDERS"},{"additionalSpendRequired":100,"code":"MINIMUM_ORDER_VALUE_NOT_MET","currency":"GBP","minimumOrderValue":1000}],"restaurant":{"availabilityId":"5678","id":"1234"},"serviceType":"delivery"},"schema":{"$ref":"#/components/schemas/CheckoutGetResponse"}}},"description":"OK : Request has succeeded.","headers":{"cache-control":{"description":"Response caching must not be applied.","schema":{"enum":["no-store"],"type":"string"}}}},"400":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is invalid","errorCode":"TENANT_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutGet400Error"}}},"description":"BAD REQUEST : Cannot process the request due to error by client."},"401":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Authentication required to access this resource"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"UNAUTHORIZED : Missing authentication credentials to access target resource."},"403":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Access to the resource is forbidden"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"FORBIDDEN : Not authorised to access target resource."},"404":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is not supported","errorCode":"TENANT_NOT_SUPPORTED"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/Checkout404Error"}}},"description":"NOT FOUND : Target resource could not be found."},"409":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The checkout is in an invalid state","errorCode":"CHECKOUT_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/Checkout409Error"}}},"description":"CONFLICT : Request not completed as it conflicts with target resource."},"429":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"TOO MANY REQUESTS : Request not completed as server has received too many requests in a given amount of time."},"500":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Internal Server Error"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"INTERNAL SERVER ERROR : Error on server preventing request from being fulfilled."},"503":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"SERVICE UNAVAILABLE : Server currently unable to fulfil the request. The request can be retried."}},"security":[{"Bearer":[]}],"summary":"Get Checkout","tags":["Checkout","publicly-accessible"],"x-status":"Stable"},"patch":{"description":"Update the details required to fulfil an order, which includes:\n  - The customer making the purchase\n  - Where and when the items will be received by the customer\n  - Instructions about the order\n","parameters":[{"description":"A two-character country code. \n\nThe following countries are supported:\n  - United Kingdom (UK)\n  - Australia (AU)\n  - New Zealand (NZ)\n","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"A unique identifier for a checkout. This is currently a Basket Id.","in":"path","name":"checkoutId","required":true,"schema":{"type":"string"}},{"description":"Allows the server to identify the application making the request.","in":"header","name":"User-Agent","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json-patch+json":{"example":[{"op":"add","path":"/customer","value":{"dateOfBirth":"2025-04-15T13:52:07.549Z","phoneNumber":"+447111111111"}}],"schema":{"$ref":"#/components/schemas/CheckoutUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"isFulfillable":true,"issues":[{"code":"RESTAURANT_NOT_TAKING_ORDERS"},{"additionalSpendRequired":100,"code":"MINIMUM_ORDER_VALUE_NOT_MET","currency":"GBP","minimumOrderValue":1000}]},"schema":{"$ref":"#/components/schemas/CheckoutUpdateResponse"}}},"description":"OK : Request has succeeded.","headers":{"cache-control":{"description":"Response caching must not be applied.","schema":{"enum":["no-store"],"type":"string"}}}},"400":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is invalid","errorCode":"TENANT_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutUpdate400Error"}}},"description":"BAD REQUEST : Cannot process the request due to error by client."},"401":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Authentication required to access this resource"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"UNAUTHORIZED : Missing authentication credentials to access target resource."},"403":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Access to the resource is forbidden"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"FORBIDDEN : Not authorised to access target resource."},"404":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is not supported","errorCode":"TENANT_NOT_SUPPORTED"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/Checkout404Error"}}},"description":"NOT FOUND : Target resource could not be found."},"409":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The checkout is in an invalid state","errorCode":"CHECKOUT_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/Checkout409Error"}}},"description":"CONFLICT : Request not completed as it conflicts with target resource."},"429":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"TOO MANY REQUESTS : Request not completed as server has received too many requests in a given amount of time."},"500":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Internal Server Error"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"INTERNAL SERVER ERROR : Error on server preventing request from being fulfilled."},"503":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"SERVICE UNAVAILABLE : Server currently unable to fulfil the request. The request can be retried."}},"security":[{"Bearer":[]}],"summary":"Update Checkout","tags":["Checkout","publicly-accessible"],"x-status":"Stable"}},"/checkout/{tenant}/{checkoutId}/fulfilment/availabletimes":{"get":{"description":"Gets a collection of times for when an order can be fulfilled.","parameters":[{"description":"A two-character country code. \n\nThe following countries are supported:\n  - United Kingdom (UK)\n  - Australia (AU)\n  - New Zealand (NZ)\n","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"A unique identifier for a checkout. This is currently a Basket Id.","in":"path","name":"checkoutId","required":true,"schema":{"type":"string"}},{"description":"Allows the server to identify the application making the request.","in":"header","name":"User-Agent","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"asapAvailable":true,"times":[{"from":"2025-04-15T13:52:07.549Z","to":"2025-04-15T13:52:07.549Z"},{"from":"2025-04-15T13:52:07.549Z","to":"2025-04-15T13:52:07.549Z"}]},"schema":{"$ref":"#/components/schemas/GetAvailableFulfilmentTimesResponse"}}},"description":"OK : Request has succeeded.","headers":{"cache-control":{"description":"Response caching must not be applied.","schema":{"enum":["no-store"],"type":"string"}}}},"400":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is invalid","errorCode":"TENANT_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutGet400Error"}}},"description":"BAD REQUEST : Cannot process the request due to error by client."},"404":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The tenant is not supported","errorCode":"TENANT_NOT_SUPPORTED"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/Checkout404Error"}}},"description":"NOT FOUND : Target resource could not be found."},"409":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"The fulfilment time bands are in an invalid state","errorCode":"FULFILMENT_TIME_BANDS_INVALID"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/AvailableFulfilmentTimes409Error"}}},"description":"CONFLICT : Request not completed as it conflicts with target resource."},"429":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"TOO MANY REQUESTS : Request not completed as server has received too many requests in a given amount of time."},"500":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Internal Server Error"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"INTERNAL SERVER ERROR : Error on server preventing request from being fulfilled."},"503":{"content":{"application/json":{"example":{"fault":{"errors":[{"description":"Couldn't complete request"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"}},"schema":{"$ref":"#/components/schemas/CheckoutDefaultError"}}},"description":"SERVICE UNAVAILABLE : Server currently unable to fulfil the request. The request can be retried."}},"summary":"Get Available Fulfilment Times","tags":["Checkout","publicly-accessible"],"x-status":"Stable"}},"/consumers/{tenant}":{"get":{"description":"Currently this operation only supports retrieving a count of consumer accounts given an email address.","parameters":[{"description":"The identifier for the tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Email address of the consumer.","in":"query","name":"emailAddress","required":true,"schema":{"type":"string"}},{"description":"The account type of the consumer - currently only 'registered' accounts are supported.","in":"query","name":"accountType","required":true,"schema":{"default":"registered","enum":["registered"],"type":"string"}},{"description":"Returns the number of consumers that matches the `emailAddress` and `accountType`. The query value should be empty, e.g. `/consumers/uk/?emailAddress=someone@email.com&accountType=registered&count`.","in":"query","name":"count","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"example":1,"schema":{"type":"integer"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"The Email is missing or invalid.","errorCode":"InvalidEmail"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant not found","errorCode":"TenantNotFound"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"The specified tenant does not exist."},"500":{"$ref":"#/components/responses/500ErrorResponse"},"501":{"content":{"application/json":{"example":{"errors":[{"description":"Non-Count queries have not been implemented","errorCode":"NotImplemented"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/5XXErrorSchema"}}},"description":"The operation has not been implemented"}},"summary":"Get consumers details","tags":["Consumers","publicly-accessible"]},"post":{"description":"Creates a consumer for the given tenant.","parameters":[{"description":"The identifier for the tenant. The only supported tenants are `uk`, `au` and `nz`","in":"path","name":"tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerCreateResponse"}}},"description":"Consumer created."},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Email is required.","errorCode":"BadRequest"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"403":{"content":{"application/json":{"example":{"errors":[{"description":"Not authorized to do this.","errorCode":"Forbidden"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant not found","errorCode":"TenantNotFound"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"The specified tenant does not exist."},"409":{"content":{"application/json":{"example":{"errors":[{"description":"The specified email already exists","errorCode":"Conflict"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"The specified email already exists."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Create consumer","tags":["Consumers","publicly-accessible"]}},"/consumers/{tenant}/me/communication-preferences":{"get":{"description":"Get all communication preferences for a given consumer.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"marketing":{"isDefault":false,"subscribedChannels":["email","sms"]}},"schema":{"$ref":"#/components/schemas/CommunicationPreferences"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"401":{"content":{"application/json":{"example":{"errors":[{"description":"You are unauthorized to perform this request.","errorCode":"Unauthorized"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"You are forbidden from performing this request.","errorCode":"Forbidden"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant could not be found.","errorCode":"NotFound"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"summary":"Get communication preferences","tags":["Consumers","publicly-accessible"]}},"/consumers/{tenant}/me/communication-preferences/{type}":{"get":{"description":"Get channel subscriptions for a given consumer's communication preference type","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The type of communication preferences.","in":"path","name":"type","required":true,"schema":{"$ref":"#/components/schemas/CommunicationTypes"}}],"responses":{"200":{"content":{"application/json":{"example":{"isDefault":false,"subscribedChannels":["email","sms"]},"schema":{"$ref":"#/components/schemas/ChannelSubscriptionsWithDerivedField"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"401":{"content":{"application/json":{"example":{"errors":[{"description":"You are unauthorized to perform this request.","errorCode":"Unauthorized"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"You are forbidden from performing this request.","errorCode":"Forbidden"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant could not be found.","errorCode":"NotFound"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"summary":"Get channel subscriptions for a given consumer's communication preference type","tags":["Consumers","publicly-accessible"]},"put":{"description":"Set only the channel subscriptions for a given consumer's communication preference type. E.g., An empty list of subscribed Channels implies unsubscribe from all channels.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The type of communication preferences.","in":"path","name":"type","required":true,"schema":{"$ref":"#/components/schemas/CommunicationTypes"}}],"requestBody":{"content":{"application/json":{"example":{"subscribedChannels":["email","sms"]},"schema":{"$ref":"#/components/schemas/ChannelSubscriptions"}}},"description":"The list of channels that the consumer should be subscribed to.","required":true},"responses":{"204":{"content":{},"description":"Success"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"You are unauthorized to perform this request.","errorCode":"Unauthorized"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant could not be found.","errorCode":"NotFound"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"summary":"Set only the channel subscriptions for a given consumer's communication preference type","tags":["Consumers","publicly-accessible"]}},"/consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel}":{"delete":{"description":"Remove subscription of a specific communication preference channel.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The type of communication preference.","in":"path","name":"type","required":true,"schema":{"$ref":"#/components/schemas/CommunicationTypes"}},{"description":"The channel.","in":"path","name":"channel","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{},"required":false},"responses":{"204":{"content":{},"description":"Success"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"You are unauthorized to perform this request.","errorCode":"Unauthorized"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant could not be found.","errorCode":"NotFound"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"summary":"Remove subscription of a specific communication preference channel","tags":["Consumers","publicly-accessible"]},"post":{"description":"Subscribe to a specific communication preference channel.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The type of communication preferences.","in":"path","name":"type","required":true,"schema":{"$ref":"#/components/schemas/CommunicationTypes"}},{"description":"The channel.","in":"path","name":"channel","required":true,"schema":{"$ref":"#/components/schemas/CommunicationChannels"}}],"requestBody":{"content":{},"required":false},"responses":{"204":{"content":{},"description":"Success"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"You are unauthorized to perform this request.","errorCode":"Unauthorized"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"You are forbidden from performing this request.","errorCode":"Forbidden"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Tenant could not be found.","errorCode":"NotFound"}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"summary":"Subscribe to a specific communication preference channel","tags":["Consumers","publicly-accessible"]}},"/delivery-failed":{"put":{"description":"This webhook will be invoked whenever an attempted delivery event is created from the device.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/attempted-delivery-created"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Delivery Attempt Failed","tags":["Attempted Delivery Webhooks","publicly-accessible"]}},"/delivery-fees/{tenant}":{"get":{"description":"Retrieve delivery fees for many restaurants. Returns fees and minimum order values required for delivery orders.","parameters":[{"description":"Tenant containing the restaurants.","example":"uk","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Restaurant IDs which fees are requested for. e.g. `?restaurantIds=1,2,3,4`","example":["1","2","3","4"],"explode":false,"in":"query","name":"restaurantIds","required":true,"schema":{"items":{"type":"string"},"maxItems":200,"type":"array"},"style":"form"},{"description":"Delivery date/time when fees are required (ISO8601 format).","example":"2025-04-15T13:52:07.549Z","in":"query","name":"deliveryTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Postcode or other location name identifying the location to which delivery is required. For use when precise location is not available. This will be removed in future in favour of location.","example":"BS1","in":"query","name":"zone","required":false,"schema":{"type":"string"}},{"description":"Point to which delivery is required (latitude, longitude). Supply this where possible as support for zone-only based lookups will be removed in future.","example":[51.3851513,-2.0841275],"explode":false,"in":"query","name":"latlong","required":false,"schema":{"items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"examples":{"flatRate":{"summary":"Single fee, with and without minimum order value","value":{"restaurants":[{"bands":[{"fee":250,"minimumAmount":1000}],"minimumOrderValue":1000,"restaurantId":"1234"},{"bands":[{"fee":100,"minimumAmount":0}],"minimumOrderValue":0,"restaurantId":"5678"}]}},"flatRateWithFreeTier":{"summary":"Single fee with minimum order value, and free delivery threshold","value":{"restaurants":[{"bands":[{"fee":250,"minimumAmount":1000},{"fee":0,"minimumAmount":2000}],"minimumOrderValue":1000,"restaurantId":"1234"}]}},"threeTier":{"summary":"No minimum order value, three pricing tiers","value":{"restaurants":[{"bands":[{"fee":250,"minimumAmount":0},{"fee":100,"minimumAmount":10},{"fee":0,"minimumAmount":2000}],"minimumOrderValue":0,"restaurantId":"1234"}]}}},"schema":{"nullable":true,"properties":{"restaurants":{"description":"Collection of restaurants for which delivery fees were found.","items":{"$ref":"#/components/schemas/RestaurantDeliveryFees"},"type":"array"}},"type":"object"}}},"description":"Success"},"400":{"description":"Bad request"},"404":{"description":"Not found"}},"summary":"Get restaurant delivery fees","tags":["DeliveryFee","publicly-accessible"]}},"/delivery/estimate":{"get":{"deprecated":true,"description":"Get delivery estimate","parameters":[{"description":"The reference of the restaurant to estimate the delivery time from.","in":"query","name":"restaurantReference","required":true,"schema":{"type":"string"}},{"description":"The latitude of the position to estimate the delivery time to.","in":"query","name":"toLat","required":false,"schema":{"type":"string"}},{"description":"The longitude of the position to estimate the delivery time to.","in":"query","name":"toLon","required":false,"schema":{"type":"string"}},{"description":"The postcode to estimate the delivery time to.","in":"query","name":"toPostcode","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/estimated-delivery-time"}}},"description":"OK"}},"summary":"Get delivery estimate","tags":["Order Delivery API","publicly-accessible"]}},"/delivery/pools":{"get":{"description":"A delivery pool is a named group of drivers which deliver food for a set of restaurants.","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"b9c6673b8e5948b98cfbd14a982de2c2":{"name":"Toronto - East","restaurants":[789]},"d5f72466a6dd49a08166d5a044c5b9e4":{"name":"Toronto - West","restaurants":[123,456]}}}},"schema":{"properties":{"delivery-pool-id":{"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"}},"type":"object"}}},"description":"OK"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Get your delivery pools","tags":["Delivery Pools API","publicly-accessible"]},"post":{"description":"A delivery pool is a named group of drivers which deliver food for a set of restaurants.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create-delivery-pool"}}},"required":true},"responses":{"201":{"description":"Pool has been created."},"400":{"content":{"application/json":{"examples":{"response":{"value":{"name":["'Name' should not be empty"]}}}}},"description":"There was something invalid in your request - check response body for details"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Create a new delivery pool","tags":["Delivery Pools API","publicly-accessible"]}},"/delivery/pools/{deliveryPoolId}":{"delete":{"description":"The restaurants will no longer be associated with the pool.","responses":{"200":{"description":"Pool deleted"},"404":{"description":"The pool could not be found"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Delete a delivery pool","tags":["Delivery Pools API","publicly-accessible"]},"get":{"description":"A delivery pool is a named group of drivers which deliver food for a set of restaurants.","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"name":"Toronto - West","restaurants":[123,456]}}},"schema":{"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"}}},"description":"OK"},"404":{"description":"The pool could not be found"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Get an individual delivery pool","tags":["Delivery Pools API","publicly-accessible"]},"parameters":[{"description":"Identifier for the pool","in":"path","name":"deliveryPoolId","required":true,"schema":{"type":"string"}}],"patch":{"description":"Modify a delivery pool, changing its name, restaurants or both","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch-delivery-pool"}}},"description":"Request body should contain an object with either or both of the properties. If a property is not specified then the existing values are retained.","required":true},"responses":{"202":{"content":{"application/json":{"examples":{"response":{"value":{"name":"Toronto - North","restaurants":[123,456]}}},"schema":{"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"}}},"description":"Pool has been updated"},"400":{"content":{"application/json":{"examples":{"response":{"value":{"name":["'Name' should not be empty"]}}}}},"description":"There was something invalid in your request - check response body for details"},"404":{"description":"The pool could not be found"},"409":{"content":{"text/plain":{"examples":{"response":{"value":"Restaurant(s) are already assigned to pools : `{RestaurantId:55474, PoolId:cccebb96452349b799b71a7adc51df66}`"}}}},"description":"A restaurant in your request already belongs to another pool"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Modify a delivery pool","tags":["Delivery Pools API","publicly-accessible"]},"put":{"description":"Replace an existing delivery pool changing all of its properties","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create-delivery-pool"}}},"required":true},"responses":{"202":{"content":{"application/json":{"examples":{"response":{"value":{"name":"Toronto - West","restaurants":[123,456]}}},"schema":{"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"}}},"description":"Pool has been replaced"},"400":{"content":{"application/json":{"examples":{"response":{"value":{"name":["'Name' should not be empty"]}}}}},"description":"There was something invalid in your request - check response body for details"},"404":{"description":"The pool could not be found"},"409":{"content":{"text/plain":{"examples":{"response":{"value":"Restaurant(s) are already assigned to pools : `{RestaurantId:55474, PoolId:cccebb96452349b799b71a7adc51df66}`"}}}},"description":"A restaurant in your request already belongs to another pool"},"500":{"content":{"text/plain":{"examples":{"response":{"value":"Internal Server Error"}}}},"description":"Internal Server Error"}},"summary":"Replace an existing delivery pool","tags":["Delivery Pools API","publicly-accessible"]}},"/delivery/pools/{deliveryPoolId}/availability/relative":{"get":{"description":"Get the current amount of time it will take a driver to collect a new order from a restaurant in the pool.","responses":{"200":{"content":{"application/json":{"examples":{"request":{"value":{"bestGuess":"00:35:00"}}},"schema":{"properties":{"bestGuess":{"description":"Your best estimation (hh:mm:ss)","type":"string"}},"type":"object"}}},"description":"OK"},"404":{"description":"The pool could not be found"}},"summary":"Get availability for pickup","tags":["Delivery Pools API","publicly-accessible"]},"parameters":[{"description":"Identifier for the pool","in":"path","name":"deliveryPoolId","required":true,"schema":{"type":"string"}}],"put":{"description":"Set the average amount of time it will take a driver to collect a new order from a restaurant in the pool.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/estimated-time"}}},"required":true},"responses":{"202":{"description":"Update will take effect shortly"},"404":{"description":"The pool could not be found"}},"summary":"Set availability for pickup","tags":["Delivery Pools API","publicly-accessible"]}},"/delivery/pools/{deliveryPoolId}/hours":{"parameters":[{"description":"Identifier for the pool","in":"path","name":"deliveryPoolId","required":true,"schema":{"type":"string"}}],"put":{"description":"Set the daily start and end times for a pool or set closed flag if the pool does not operate on that day. Start and end times for all days must be provided. Though the API accepts array of start and end times for each day, multiple start and end time for a day are not accepted. If the end time for a day is equal to or before start time, end time will be considered as time for the next day.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-pool-hours"}}},"required":true},"responses":{"200":{"description":"Pool hours have been updated"},"404":{"description":"The pool could not be found"}},"summary":"Set the delivery pools daily start and end times","tags":["Delivery Pools API","publicly-accessible"]}},"/delivery/pools/{deliveryPoolId}/restaurants":{"delete":{"description":"Remove restaurants from a delivery pool","requestBody":{"content":{"application/json":{"schema":{"example":{"restaurants":[123,456]},"properties":{"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"Pool has been updated"},"400":{"description":"There was something invalid in your request - check response body for details"},"404":{"description":"The pool could not be found"}},"summary":"Remove restaurants from a delivery pool","tags":["Delivery Pools API","publicly-accessible"]},"parameters":[{"description":"Identifier for the pool","in":"path","name":"deliveryPoolId","required":true,"schema":{"type":"string"}}],"put":{"description":"Add additional restaurants to a delivery pool","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"restaurants":[123,456]}}},"schema":{"$ref":"#/components/schemas/delivery-restaurantslist"}}},"description":"OK"},"400":{"description":"There was something invalid in your request - check response body for details"},"404":{"description":"The pool could not be found"},"409":{"description":"The restaurants could not be added to the pool. Typically this is because they are already assigned to another pool"}},"summary":"Add restaurants to an existing delivery pool","tags":["Delivery Pools API","publicly-accessible"]}},"/driver-assigned-to-delivery":{"put":{"description":"Driver Assigned to Delivery","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-status"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver Assigned to Delivery","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/driver-at-delivery-address":{"put":{"description":"Driver at delivery address","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-status"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver at delivery address","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/driver-at-restaurant":{"put":{"description":"Driver at restaurant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-status"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver at restaurant","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/driver-has-delivered-order":{"put":{"description":"Driver has delivered order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-status"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver has delivered order","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/driver-location":{"put":{"description":"Driver Location","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-location"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver Location","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/driver-on-their-way-to-delivery-address":{"put":{"description":"Driver on their way to delivery address","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/driver-status"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Driver on their way to delivery address","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/late-order-compensation-query":{"post":{"description":"This webhook will be invoked when a late order compensation query has been raised and a restaurant response is required.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/late-order-compensation-query"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification"}},"summary":"late order compensation query, restaurant response required","tags":["Consumer Queries Webhooks","publicly-accessible"]}},"/late-order-query":{"post":{"description":"This webhook will be invoked when a late order query has been raised and a restaurant response is required.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/late-order-query"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"late order query, restaurant response required","tags":["Consumer Queries Webhooks","publicly-accessible"]}},"/menu-ingestion-complete":{"post":{"description":"Callback to confirm that an attempt to ingest a menu has completed either successfully or unsuccessfully","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/menu-ingestion-complete"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Menu ingestion complete","tags":["Restaurant Webhooks","publicly-accessible"]}},"/order-accepted":{"post":{"description":"This webhook will be invoked whenever the order was accepted.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-accepted"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Order accepted","tags":["Order Acceptance Webhooks","publicly-accessible"]}},"/order-cancelled":{"post":{"description":"This webhook will be invoked whenever the order was cancelled.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-cancelled"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Order cancelled","tags":["Order Acceptance Webhooks","publicly-accessible"]}},"/order-eligible-for-restaurant-compensation":{"post":{"description":"This webhook will be invoked for every cancelled order and it will inform if the order is eligible for compensation.\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderEligibleForRestaurantCompensation"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Order Eligible For Restaurant Compensation","tags":["RestaurantQueries Webhooks","publicly-accessible"]}},"/order-is-ready-for-pickup":{"put":{"description":"<p>The \"Ready for pickup\" event lets the delivery partner know that the food has been cooked and is now ready for collection up from the restaurant.</p><p>When this event is received, it is important that you let your driver know that the order should now be collected from inside the restaurant. For example, this driver notification could take the form of an in-app notification or an SMS message.</p><p>This communication is needed to support restaurants who are unable to accommodate drivers inside their premises, as it allows restaurants to notify drivers waiting outside that they should come inside to collect their order.</p><p>NB&semi; This event can be sent by the restaurant at any point after the order is accepted by the restaurant (for instance, this event may be sent before the driver has arrived at the restaurant).</p>","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ready-for-pickup"}}},"required":true},"responses":{"200":{"description":"Upon successful receipt of the event, delivery partners should return a 200 HTTP status code indicating acknowledgement of transmission."},"default":{"content":{"application/json":{"schema":{"properties":{"Details":{"type":"string"},"Message":{"type":"string"},"OrderId":{"type":"string"},"Timestamp":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"In the unlikely case of unknown errors, JUST EAT will log a raw response. If possible, the response should have the following format"}},"summary":"Order ready for pickup","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/order-ready-for-preparation-async":{"post":{"description":"This webhook will be invoked when we have determined that an order is ready for preparation. Upon receiving the request, you should perform any preparation-related activities, such as sending the order to the POS system / kitchen screen.\n**NOTE:** This version of the webhook is asynchronous, and we expect a response in two parts:\n  1. We expect an immediate `202` response from this webhook to denote that you have received the request;\n  2. Following that, we expect an [async callback](#section/Async-Webhooks) - indicating either success or failure of the operation. The body for the async callbacks are as below:\n  \n  **Success callback**\n  ```\n  {\n        \"status\": \"Success\",\n        \"message\": \"Order successfully sent to POS\",\n        \"data\": {}\n  }\n  ```\n  **Failure callback**\n  ```\n  {\n        \"status\": \"Failure\",\n        \"message\": \"{errorMessage}\",   // e.g. \"The POS is currently in use\"\n        \"data\": {}\n  }\n  ```\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-ready-for-preparation"}}},"required":true},"responses":{"202":{"description":"Upon successful receipt of this event, a `202` status code should be returned, indicating the request has been accepted. You should then later respond with the result of processing this request, via the [callback URL](#section/Async-Webhooks) endpoint."},"400":{"description":"Should the initial validation of the order fail, return a `400` status code. NOTE: In this instance we do not also expect a failure callback via the async callback URL."}},"summary":"Order ready for preparation (async)","tags":["Order Webhooks","publicly-accessible"]}},"/order-ready-for-preparation-sync":{"post":{"description":"This webhook will be invoked when we have determined that an order is ready for preparation. Upon receiving the request, you should perform any preparation-related activities, such as sending the order to the POS system / kitchen screen.\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-ready-for-preparation"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Order ready for preparation (sync)","tags":["Order Webhooks","publicly-accessible"]}},"/order-rejected":{"post":{"description":"This webhook will be invoked whenever the order was rejected.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-rejected"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Order rejected","tags":["Order Acceptance Webhooks","publicly-accessible"]}},"/order-requires-delivery-acceptance":{"put":{"description":"This webhook will be invoked when we have determined that an order is required acceptance for delivery. Upon receiving the request, the order should be scheduled for pickup by a courier/driver. We expect an immediate `201` response from this webhook to denote that you have received the request.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/connectorder-list"}}},"required":true},"responses":{"201":{"description":"In the event of successful handling of the request, a 201 status code should be returned, indicating acknowledgement of transmission success."},"default":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"description":"<p>Each code should be selected from the following list of valid reasons.</p><table><tr><th>code</th><th>explanation</th></tr><tr><td>`outside_hours`</td><td>Delivery partner is closed and not accepting requests.</td></tr><tr><td>`too_busy`</td><td>Delivery partner does not have enough capacity to accept this request.</td></tr><tr><td>`too_far`</td><td>The customer is too far away from the restaurant, either by time or distance.</td></tr><tr><td>`not_supported`</td><td>Delivery partner is currently unable to deliver to the customer's location.</td></tr><tr><td>`bad_address`</td><td>The order contains an address that could not be processed or understood.</td></tr><tr><td>`bad_request`</td><td>The order format is invalid or the order contains required data or information that cannot be processed.</td></tr><tr><td>`restaurant_not_configured`</td><td>Delivery partner is not configured to accept requests for given restaurant.</td></tr><tr><td>`duplicate`</td><td>The request has already been processed before.</td></tr><tr><td>`other`</td><td>Any validation failure or unexpected error not covered by the above codes.</td></tr></table>","enum":["outside_hours","too_busy","too_far","not_supported","bad_address","bad_request","restaurant_not_configured","duplicate","other"],"type":"string"},"message":{"description":"<p>The accompanying message should, in each case, provide an explanation of the specific problem that was experienced.</p><br/><p>Please note that the accompanying explanatory text are part of the code is only intended as an explanation of each reason code - and should not be returned to us as the message.</p>","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"In the case that the order cannot be accepted, an appropriate HTTP status code, such as 400 (Bad request) or 500 (Internal server error) should be returned.  In addition to the HTTP status code, a specific reason code and explanatory message should be provided within the response body"}},"summary":"Order requires delivery acceptance","tags":["Order Delivery Webhooks","publicly-accessible"]}},"/order-time-updated":{"post":{"description":"Callback to notify recipients that there has been a change to the restaurant order times for a given day and service type","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-time-updated"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Order time updated","tags":["Restaurant Webhooks","publicly-accessible"]}},"/orders":{"post":{"description":"Create order","parameters":[{"description":"The api version to use. Version 2.0 is the only available version.","example":2,"in":"header","name":"x-je-api-version","required":false,"schema":{"default":1,"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-request-v2"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"OrderId":{"type":"string"}},"type":"object"}}},"description":"Created"},"400":{"description":"Bad Request - Request is for deprecated API version or has failed validation in some way - see response body for details"},"409":{"content":{"application/json":{"schema":{"properties":{"OrderId":{"type":"string"}},"type":"object"}}},"description":"Conflict - you've already told us about an order with this `OrderReference`"}},"summary":"Create order","tags":["Order API","publicly-accessible"]}},"/orders/deliverystate/driverlocation":{"put":{"description":"Current driver location (bulk upload)","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bulk-delivery-details-list"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update current driver locations (bulk upload)","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/accept":{"put":{"description":"Call when an order has been accepted. An order can only be accepted if it hasn't previously been accepted, rejected, cancelled or ignored","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-accept-request"}}},"required":true},"responses":{"200":{"description":"OK"},"404":{"description":"Order could not be found"},"409":{"description":"Conflict. This order has either already been accepted, rejected or ignored by restaurant or cancelled by ops"}},"summary":"Accept order","tags":["Order Acceptance API","publicly-accessible"]}},"/orders/{orderId}/cancel":{"put":{"description":"Call when an order has been cancelled by Ops. Cancelling an order overrides any previous accept/reject calls. This should not be used for restaurant rejection but only from Ops involvement","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-cancel-request"}}},"required":true},"responses":{"200":{"description":"OK"},"404":{"description":"Order could not be found"},"409":{"description":"Conflict. This order has already been cancelled"}},"summary":"Cancel order","tags":["Order Acceptance API","publicly-accessible"]}},"/orders/{orderId}/complete":{"post":{"description":"Call when an order is complete. An order can only be marked as complete if it hasn't already been marked as cancelled or complete.","parameters":[{"description":"The ID of the order to mark as complete","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content - status updated successfully"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Order could not be found"}],"faultId":"b6a1d658-dda4-41b6-a9a5-dbfb7ba7b2aa"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not found - order could not be found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"Order cannot be marked as complete because it is already marked as cancelled"}],"faultId":"9c63827b-6fad-46bf-9e9a-9aafec941824"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict - this order has already been marked as cancelled or complete"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Complete order","tags":["Order Acceptance API","publicly-accessible"]},"x-status":"Draft"},"/orders/{orderId}/deliverystate/atdeliveryaddress":{"put":{"description":"<p>The _at delivery address_ callback should be sent when the driver thinks that they have arrived at the specified delivery address.</p><p>NB&semi; This callback should be distinct from the delivered callback, as Just Eat use this callback to understand how much time is spent locating the customer's address.</p>","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-details"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update order with driver at delivery address details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/atrestaurant":{"put":{"description":"The _at restaurant_ callback should be sent when the driver arrives at the restaurant and is ready to collect the order.","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-driver-details-with-eta"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update order with driver at restaurant details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/atrestauranteta":{"put":{"description":"<p>In the UK, this endpoint updates the estimated arrival time at the restaurant. This value can be overridden from other endpoints like <a href=\"https://uk.api.just-eat.io/docs#tag/Order-Delivery-API/paths/~1orders~1{orderId}~1deliverystate~1driverlocation/put\">Driver Locations</a> </p> <p> This endpoint should be used to set initial at restaurant ETAs prior to driver assignment where available. The earlier a delivery partner is able to provide an estimate of when the driver will arrive at the restaurant the more likely it is that driver arrival and order preparation will be aligned. </p> <p> In other tenants (Not UK):Note that if set for a given order, this Eta will NOT be overridden by any other at restaurant ETAs provided in `DriverAssigned` or `DriverLocation` requests</p> <p>This value is significant since it informs when a restaurant is instructed to start preparing food. When the time remaining between current time and the estimated time of arrival becomes less than the restaurant's configured preparation time, food preparation is initiated</p>","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/eta-estimate"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update the driver's estimated time to arrive at the Restaurant","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/delivered":{"put":{"description":"The _delivered_ callback should be sent when the driver has handed the food to the customer and completed the order.","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-details"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update order with delivered details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/driverassigned":{"put":{"description":"The _driver assigned_ callback should be sent when a driver is assigned to the order. It should communicate important details about the driver - and also an estimated time for the driver to arrive at the restaurant and delivery address.","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-driver-assigned-details"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update order with driver assigned details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/driverlocation":{"put":{"description":"<p>Just Eat requires all delivery partners to send regular driver location callbacks, that record the GPS location of the drivers assigned to each order</p><p>Partners should aim to supply this callback approximately every 10 seconds.</p><p>Please provide an up-to-date ETA for when the driver will reach the restaurant in this request - this value is significant since it informs when a restaurant is instructed to start preparing food - when the time remaining between current time and the estimated time of arrival becomes less than the restaurant's configured preparation time, food preparation is initiated</p><p>Note that at restaurant Eta provided in this request will NOT override any ETA set in the Driver At Restaurant Eta request</p>","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-driver-location"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update the driver's current location","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/driverunassigned":{"put":{"description":"The _driver unassigned_ callback should be sent when a driver is unassigned from the order. It may details about the reason for cancelling the assignment, the driver details, and any newer at restaurant and customer estimations.","parameters":[{"description":"Just Eat order identifier","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/delivery-driver-unassigned-details"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/json":{"example":{"partnerId":["Partner id was not found or could not be parsed"]},"schema":{"$ref":"#/components/schemas/extensibleObject"}}},"description":"Bad Request."}},"summary":"Update order with driver unassigned details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/deliverystate/onitsway":{"put":{"description":"The _on its way_ callback should be sent when the driver departs the restaurant with the customer's order. It should contain an ETA that records when the driver expects to arrive at the customer's address.","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/on-its-way-details"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Update order with driver on its way details","tags":["Order Delivery API","publicly-accessible"]}},"/orders/{orderId}/duedate":{"put":{"description":"Use this to update the estimated time of arrival for an order (i.e. when you expect the customer to receive the food). NOTE: An initial estimate is given [upon acceptance](#/paths/~1orders~1{orderId}~1accept/put). This endpoint can be used to update that estimate.\n","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-due-date-request"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"The due date is missing, or out of range (either in the past, or > 7 days in the future)."},"404":{"description":"The order could not be found."}},"summary":"Update order ETA","tags":["Order Acceptance API","publicly-accessible"]}},"/orders/{orderId}/ignore":{"put":{"description":"Call when an order has been ignored by restaurant. An order can only be ignored if it hasn't previously been accepted, rejected, cancelled or ignored","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Order could not be found"},"409":{"description":"Conflict. This order has either already been accepted, rejected or ignored by restaurant or cancelled by ops"}},"summary":"Ignore order","tags":["Order Acceptance API","publicly-accessible"]}},"/orders/{orderId}/readyforcollection":{"post":{"description":"Call when a collection order is ready to be collected by the customer. An order can only be marked as ready for collection if it is a collection order in the accepted state.","parameters":[{"description":"The ID of the order to mark as ready for collection","in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content - status updated successfully"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Order cannot be marked as ready for collection because it is not a collection order"}],"faultId":"aa5d282c-498e-47dd-acca-d4bb811a8f9d"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request - order cannot be marked as ready for collection because it is not a collection order"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Order could not be found"}],"faultId":"15c27f5b-5121-4c1f-bea3-34378dff2a79"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not found - order could not be found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"Order cannot be marked as ready for collection because it is already marked as complete"}],"faultId":"9c63827b-6fad-46bf-9e9a-9aafec941824"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict - this order is not in the accepted state"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Mark order as ready for collection","tags":["Order Acceptance API","publicly-accessible"]},"x-status":"Draft"},"/orders/{orderId}/reject":{"put":{"description":"Call when an order has been rejected. An order can only be rejected if it hasn't previously been accepted, rejected, cancelled or ignored","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/order-reject-request"}}},"required":true},"responses":{"200":{"description":"OK"},"404":{"description":"Order could not be found"},"409":{"description":"Conflict. This order has either already been accepted, rejected or ignored by restaurant or cancelled by ops"}},"summary":"Reject order","tags":["Order Acceptance API","publicly-accessible"]}},"/orders/{tenant}/{orderId}/consumerqueries/lateorder/restaurantresponse":{"post":{"description":"If a customer has requested an update on the status of a late order, a response can be given by calling this endpoint.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Id for the order.","in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"additionalDeliveryTimeToAddMinutes":5,"lateOrderStatus":"OnItsWay"},"schema":{"$ref":"#/components/schemas/LateOrderRestaurantResponse"}}},"description":"An object for updating the status of a late order query with the amount of time to add to the delivery estimate in minutes (optional)","required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Justification notes are required for this query. Query Type:type Tenant:tenant QueryId:queryId OrderId:orderId","errorCode":"BadRequest"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request. Returned if the request is invalid i.e. missing a required parameters"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"Unauthorized.","errorCode":"Unauthorized"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized. Consumer is not authorized to modify the resource"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Order 1234 was not found","errorCode":"NotFound"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found. Order query or Order not found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"Query 1234 cannot be responded to at this time","errorCode":"Conflict"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict. Query not in state to accept response"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Response to Late Order Update Request","tags":["ConsumerQueries","publicly-accessible"]}},"/orders/{tenant}/{orderId}/consumerqueries/lateordercompensation/restaurantresponse":{"post":{"description":"If a customer has requested compensation for a late order, a restaurant response is given by calling this endpoint.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Id for the order.","in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LateOrderCompensationRestaurantResolution"}}},"description":"The restaurant response to a late order compensation request. Indicates either a monetary amount (when the compensation is accepted); or a rejection reason (when compensation is rejected).","required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"A reason is required when compensation is rejected.","errorCode":"BadRequest"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request. Returned if the request is invalid - e.g. contains missing or invalid parameters."},"401":{"content":{"application/json":{"example":{"errors":[{"description":"Unauthorized.","errorCode":"Unauthorized"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized. Consumer is not authorized to modify the resource"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Order 1234 was not found","errorCode":"NotFound"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found. Order query or Order not found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"Query 1234 cannot be responded to at this time","errorCode":"Conflict"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict. Query not in state to accept response"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Update late order compensation request with Restaurant response","tags":["ConsumerQueries","publicly-accessible"],"x-status":"Unstable"}},"/orders/{tenant}/{orderId}/restaurantqueries/compensation":{"post":{"description":"When an order is cancelled the restaurant might be eligible for compensation, this endpoint allows a request for compensation to be created.","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Id for the order.","in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestaurantCompensationQuery"}}},"description":"An object for providing the reason that the compensation is being created","required":true},"responses":{"201":{"description":"Created"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"The value provided in the field ReasonCode is invalid","errorCode":"InvalidReasonCode"},{"description":"Comments field is too long, max 1000","errorCode":"CommentsTooLong"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request - returned if providing invalid data such as an unacceptable reason code"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid credentials","errorCode":"Unauthorized"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized - consumer has not provided the necessary credentials"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"The credentials provided doesn't have permissions to perform the request","errorCode":"Forbidden"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden - credentials provided by consumer do not allow access to this resource"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource not found","errorCode":"NotFound"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Resource not found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"This order is not eligible for compensation","errorCode":"OrderNotEligible"},{"description":"A compensation request has already been requested for this order","errorCode":"CompensationAlreadyExists"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict - returned if tried to claim compensation for an order that is not eligible"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Create Compensation requests","tags":["RestaurantQueries","publicly-accessible"]}},"/redelivery-requested":{"put":{"description":"This webhook will be invoked whenever the customer responds to the attempted delivery notification.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/attempted-delivery-response-received"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Customer Requested Redelivery","tags":["Order Acceptance Webhooks","publicly-accessible"]}},"/restaurant-offline-status":{"put":{"description":"Callback to notify that a restaurant has been taken offline through an active Restaurant Event or there's been a change in whether the restaurant can override a previous offline status.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantOfflineStatus"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Restaurant Offline Status","tags":["Restaurant Events Webhooks","publicly-accessible"]}},"/restaurant-online-status":{"put":{"description":"Callback to notify that a restaurant is now able to come back online as there are no longer any active offline Restaurant Events","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantOfflineStatus"}}},"required":true},"responses":{"200":{"description":"OK"}},"summary":"Restaurant Online Status","tags":["Restaurant Events Webhooks","publicly-accessible"]}},"/restaurants/bylatlong":{"get":{"description":"Provides details of all restaurants that deliver to the specified location","operationId":"SearchByLocation","parameters":[{"description":"OAuth2 token issued for logged in consumer or API key issued to partner","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}},{"description":"A valid country code, e.g. \"uk\". Filter search results to only include restaurants for the specified country. Required when using OAuth for authentication.","in":"header","name":"Accept-Tenant","required":false,"schema":{"type":"string"}},{"description":"Filter search results to only include restaurants that deliver to the specified location","in":"query","name":"latitude","required":true,"schema":{"type":"number"},"x-position":1},{"description":"Filter search results to only include restaurants that deliver to the specified location","in":"query","name":"longitude","required":true,"schema":{"type":"number"},"x-position":2},{"description":"Filter search results to only include restaurants that offer the specified cuisine","in":"query","name":"cuisine","required":false,"schema":{"type":"string"},"x-position":3},{"description":"Filter search results to only include restaurants that have a name that matches the specified value","in":"query","name":"restaurantName","required":false,"schema":{"type":"string"},"x-position":4},{"description":"Filter search results to only include restaurants of the specified brand","in":"query","name":"brandName","required":false,"schema":{"type":"string"},"x-position":5}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SearchResponse"},{"$ref":"#/components/schemas/ExternalSearchResponse"},{"$ref":"#/components/schemas/SearchWebResponse"}]}}},"description":"OK","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"Message":"The request is invalid.","ModelState":{"Longitude":["The value 'nan' is not valid for Longitude."]}},"schema":{"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"message":"No API key found in request"},"schema":{"type":"object"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"example":{"ExceptionMessage":"Object reference not set to an instance of an object.","ExceptionType":"System.NullReferenceException","Message":"An error has occurred.","StackTrace":"   at JE.SearchOrchestrator.Controllers.Filters.CacheControlFilter.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) in \\\\Mac\\Home\\Documents\\GitHub\\SearchOrchestrator\\src\\JE.SearchOrchestrator\\Controllers\\Filters\\CacheControlFilter.cs:line 18\r\n   at System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken)\r\n--- End of stack"},"schema":{"type":"object"}}},"description":"Server Error"}},"summary":"Get restaurants by location","tags":["Restaurants","publicly-accessible"],"x-status":"Deprecated"}},"/restaurants/bypostcode/{postcode}":{"get":{"description":"Provides details of restaurants that deliver to the specified postcode","operationId":"SearchByPostcode","parameters":[{"description":"OAuth2 token issued for logged in consumer or API key issued to partner","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"A valid country code, e.g. \"uk\". Filter search results to only include restaurants for the specified country. Required when using OAuth for authentication.","in":"header","name":"Accept-Tenant","required":false,"schema":{"type":"string"}},{"description":"Filter search results to only include restaurants that deliver to the specified postcode","in":"path","name":"postcode","required":true,"schema":{"type":"string"}},{"description":"Filter search results to only include restaurants that offer the specified cuisine","in":"query","name":"cuisine","required":false,"schema":{"type":"string"},"x-position":1},{"description":"Filter search results to only include restaurants that have a name that matches the specified value","in":"query","name":"restaurantName","required":false,"schema":{"type":"string"},"x-position":2},{"description":"Filter search results to only include restaurants of the specified brand","in":"query","name":"brandName","required":false,"schema":{"type":"string"},"x-position":3}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SearchResponse"},{"$ref":"#/components/schemas/ExternalSearchResponse"},{"$ref":"#/components/schemas/SearchWebResponse"}]}}},"description":"OK","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"Message":"The request is invalid.","ModelState":{"Postcode":["Invalid Postcode."]}},"schema":{"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"message":"No API key found in request"},"schema":{"type":"object"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"example":{"ExceptionMessage":"Object reference not set to an instance of an object.","ExceptionType":"System.NullReferenceException","Message":"An error has occurred.","StackTrace":"   at JE.SearchOrchestrator.Controllers.Filters.CacheControlFilter.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) in \\\\Mac\\Home\\Documents\\GitHub\\SearchOrchestrator\\src\\JE.SearchOrchestrator\\Controllers\\Filters\\CacheControlFilter.cs:line 18\r\n   at System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken)\r\n--- End of stack"},"schema":{"type":"object"}}},"description":"Server Error"}},"summary":"Get restaurants by postcode","tags":["Restaurants","publicly-accessible"],"x-status":"Deprecated"}},"/restaurants/driver/eta":{"put":{"description":"Set the average amount of time it will take a driver to collect a new order from a restaurant.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantETAs"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IgnoredRestaurantIds"}}},"description":"Update will take effect shortly"},"400":{"description":"There was something invalid in your request - check response body for details"}},"summary":"Set ETA for pickup","tags":["Restaurants","publicly-accessible"]}},"/restaurants/{tenant}/{restaurantId}/catalogue":{"get":{"description":"Get details of the restaurant's product catalogue","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MenuBase"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No product catalogue found for given tenant and restaurantId."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get product catalogue","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/availabilities":{"get":{"description":"Get all availabilities on the restaurant's menu","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of availabilities to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedAvailabilitiesResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No availabilities found for given tenant and restaurantId."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all availabilities","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/categories":{"get":{"description":"Get all categories on the restaurant's menu","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of categories to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedCategoriesResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No availabilities found for given tenant and restaurantId."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all categories","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/categories/{categoryId}/items":{"get":{"description":"Get all item IDs which are assigned to the specified category","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant ID.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The category ID.","in":"path","name":"categoryId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of item IDs to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedCategoryItemsResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No availabilities found for given tenant and restaurantId."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all category item IDs","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/items":{"get":{"description":"Get all menu items on the restaurant's menu","parameters":[{"description":"Request tenant.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of menu items to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedMenuItemsResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No menu items found for given tenant and restaurantId."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all menu items","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/dealgroups":{"get":{"description":"Get all deal groups for the menu item with the provided ID","parameters":[{"description":"Request tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant ID","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The menu item ID","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of menu items to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedMenuDealGroupsResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk and itemId:534685 not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No deal groups found for given `tenant`, `restaurantId` and `itemId`."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all menu item deal groups","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/dealgroups/{dealGroupId}/dealitemvariations":{"get":{"description":"Get all deal item variations for the deal group with the specified ID, in the menu item with the specified ID","parameters":[{"description":"Request tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant ID","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The menu item ID","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The menu item ID","in":"path","name":"dealGroupId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of menu items to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedDealItemVariationResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk for itemId:534685 and dealGroupId:463847 not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No deal item variations found for given `tenant`, `restaurantId`, `itemId` and `dealGroupId`."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all deal item variations for a deal group","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/modifiergroups":{"get":{"description":"Get all modifier groups for the menu item with the provided ID","parameters":[{"description":"Request tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant ID","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The menu item ID","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of menu items to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedMenuModifierGroupsResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk and itemId:534685 not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No modifier groups found for given `tenant`, `restaurantId` and `itemId`."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all menu item modifier groups","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/variations":{"get":{"description":"Get all variations for the menu item with the provided ID","parameters":[{"description":"Request tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant ID","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"The menu item ID","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The maximum number of menu items to fetch.","in":"query","name":"limit","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Value representing a cursor - position to use when retrieving the next page of data. If provided, the value of this parameter must be URL encoded.","in":"query","name":"after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedVariationsResponse"}}},"description":"Request succeeded.","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Invalid value 0 for parameter limit."}],"faultId":"e21a9947-4352-449f-a4dc-5e69d57b0c5f"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request."},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Resource with identifier restaurantId:95224345321 for tenant:uk and itemId:534685 not found."}],"faultId":"b39ae4c1-142f-4308-838d-1f01815e1cf1"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"No variations found for given `tenant`, `restaurantId` and `itemId`."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get all menu item variations","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/customerclaims":{"get":{"description":"Provides claims for a given restaurant with optional filtering","parameters":[{"description":"Two letter code indicating the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Just Eat restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Start date limiter","in":"query","name":"fromDate","required":false,"schema":{"format":"date-time","nullable":true,"type":"string"}},{"description":"End date limiter","in":"query","name":"toDate","required":false,"schema":{"format":"date-time","nullable":true,"type":"string"}},{"description":"Pagination limit","in":"query","name":"limit","required":false,"schema":{"default":20,"format":"int32","maximum":100,"minimum":1,"nullable":true,"type":"integer"}},{"description":"Pagination offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","minimum":0,"nullable":true,"type":"integer"}},{"description":"Indicates what type of response client understands and is also used for content type negotiation (if version is specified), otherwise tells the server to return the latest version","example":"application/json;v=1","in":"header","name":"Accept","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimsResponse"}}},"description":"Request succeeded","headers":{"Content-Type":{"description":"Content type of document including version","example":"application/json;v=1","schema":{"type":"string"}},"cache-control":{"description":"Information about how the response can be cached","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Bad Request. End date limiter should have date-time format."}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request. Returned if the request is invalid e.g. has incorrect date limiter format"},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"$ref":"#/components/responses/403ForbiddenResponse"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"security":[{"Bearer":[]}],"summary":"Get claims","tags":["Restaurant Claims","publicly-accessible"],"x-status":"Draft"}},"/restaurants/{tenant}/{restaurantId}/customerclaims/{id}":{"get":{"description":"Get information about a order claim","parameters":[{"description":"Two letter code indicating the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Just Eat restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Claim identifier","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Indicates what type of response client understands and is also used for content type negotiation (if version is specified), otherwise tells the server to return the latest version","example":"application/json;v=1","in":"header","name":"Accept","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderClaim"}}},"description":"Request succeeded","headers":{"Content-Type":{"description":"Content type of document including version","example":"application/json;v=1","schema":{"type":"string"}},"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"$ref":"#/components/responses/403ForbiddenResponse"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found. Claim could not be found"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"security":[{"Bearer":[]}],"summary":"Get order claim","tags":["Restaurant Claims","publicly-accessible"],"x-status":"Draft"}},"/restaurants/{tenant}/{restaurantId}/customerclaims/{id}/restaurantresponse":{"post":{"description":"Submit a restaurant response for the claim, where the restaurant can tell us if they accept or reject the claim","parameters":[{"description":"Two letter code indicating the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Just Eat restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Claim identifier","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Indicates the representation of the request body the client is sending (including version)","example":"application/json;v=1","in":"header","name":"Content-Type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderClaimRestaurantResponse"}}},"description":"Payload containing the response of the restaurant on the order claim"},"responses":{"201":{"description":"Request succeeded. Your response to the claim has been submitted"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Bad Request. Incorrect decision","errorCode":"IncorrectDecision"},{"description":"Bad Request. Missing decision","errorCode":"MissingDecision"},{"description":"Bad Request. The request you are sending is missing some items for the claim you are trying to resolve","errorCode":"MissingItems"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request. Returned if the request is invalid e.g. decision value is incorrect"},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"$ref":"#/components/responses/403ForbiddenResponse"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found. Claim could not be found"},"409":{"content":{"application/json":{"example":{"errors":[{"description":"The claim you are attempting to resolve is has been resolved","errorCode":"AlreadyResolved"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict. The claim you are attempting to resolve is has been resolved"},"422":{"content":{"application/json":{"example":{"errors":[{"description":"The claim you are attempting to update does not contain the items from the request","errorCode":"WrongItems"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unprocessable. The claim you are attempting to update does not contain the items from the request"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"security":[{"Bearer":[]}],"summary":"Submit a restaurant response for the claim","tags":["Restaurant Claims","publicly-accessible"],"x-status":"Draft"}},"/restaurants/{tenant}/{restaurantId}/customerclaims/{id}/restaurantresponse/justification":{"put":{"description":"Add reason and optional comments in case of rejection of order claim","parameters":[{"description":"Two letter code indicating the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Just Eat restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Claim identifier","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Indicates the representation of the request body the client is sending (including version)","example":"application/json;v=1","in":"header","name":"Content-Type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Justification"}}},"description":"Payload containing the reason of rejection and optional comments"},"responses":{"204":{"description":"Request succeeded. Justification was successfully submitted"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Bad Request. Reason doesn't match any of the predefined values"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request. Returned if the request is invalid e.g. reason doesn't match any of the predefined values"},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"$ref":"#/components/responses/403ForbiddenResponse"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found. Claim could not be found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Conflict. The claim you are attempting to update is older than the current claim. Fetch the last copy of the entity and try the request again."},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"security":[{"Bearer":[]}],"summary":"Add reason and comments to the response","tags":["Restaurant Claims","publicly-accessible"],"x-status":"Draft"}},"/restaurants/{tenant}/{restaurantId}/fees":{"get":{"description":"Get the fees currently applied to a restaurant in a particular tenant","parameters":[{"description":"A two-character country code for which country the restaurant resides in.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"A unique identifier for a restaurant","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Request header string that allows the server to identify the application making the request.","in":"header","name":"User-Agent","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"bagFee":{"description":"A charge for bags in delivery","serviceTypes":{"collection":{"amount":5},"default":{"amount":0},"delivery":{"amount":10}}}},"schema":{"$ref":"#/components/schemas/RestaurantFees"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached. (No caching will be applied)","schema":{"enum":["no-store"],"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"The supplied tenant is not supported","errorCode":"UnsupportedTenant"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"Authorization required","errorCode":"Unauthorized"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"You do not have permission to access this resource","errorCode":"Forbidden"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"The requested resource does not exist on this server","errorCode":"NotFound"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"security":[{"Bearer":[]}],"summary":"Get Restaurant Fees","tags":["Restaurants","publicly-accessible"],"x-status":"Draft"},"put":{"description":"Creates or Updates the fees for a restaurant in a particular tenant","parameters":[{"description":"A two-character country code for which country the restaurant resides in.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"A unique identifier for a restaurant","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Request header string that allows the server to identify the application making the request.","in":"header","name":"User-Agent","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"bagFee":{"description":"A charge for bags in delivery","serviceTypes":{"collection":{"amount":5},"default":{"amount":0},"delivery":{"amount":10}}}},"schema":{"$ref":"#/components/schemas/RestaurantFees"}}},"description":"Update Restaurant Fees","required":true},"responses":{"200":{"content":{"application/json":{"example":{"bagFee":{"description":"A charge for bags in delivery","serviceTypes":{"collection":{"amount":5},"default":{"amount":0},"delivery":{"amount":10}}}},"schema":{"$ref":"#/components/schemas/RestaurantFees"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached. (No caching will be applied)","schema":{"enum":["no-store"],"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"The supplied tenant is not supported","errorCode":"UnsupportedTenant"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"errors":[{"description":"Authorization required","errorCode":"Unauthorized"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"You do not have permission to access this resource","errorCode":"Forbidden"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"The requested resource does not exist on this server","errorCode":"NotFound"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/500ErrorResponse","description":"Internal Server Error"}},"security":[{"Bearer":[]}],"summary":"Create or Update Restaurant Fees","tags":["Restaurants","publicly-accessible"],"x-status":"Draft"}},"/restaurants/{tenant}/{restaurantId}/menu":{"get":{"description":"The endpoint will return a 301 redirect containing a URL that will grant access to the Menu file. The URL will only be available for a short period of time. The Menu file will be a single document containing the information that Just Eat has and uses to display the Menu on our customer clients. This will include a collection of items, a collection of Categories and a collection of Availabilities for when the items are available. Partners will be able to retrieve the Menu for any Restaurants that they currently manage.","parameters":[{"description":"The tenant of the restaurant in which to put a menu","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant identifier to associated with the menu","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. Bearer ABCDE123456789","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"responses":{"301":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Menu"}}},"description":"Temporary Redirect. The redirect will contain the signed URL that the client needs to access the resource"},"400":{"description":"Bad Request. We were unable to process the request due to data you sent us"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerErrorResponse"}}},"description":"Server Error"}},"summary":"Get the latest version of the restaurant's full menu","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"},"put":{"description":"This will begin an asynchronous process that will lead to that menu becoming live on the Just Eat platform","operationId":"putMenuForIngestion","parameters":[{"description":"The tenant of the restaurant in which to put a menu","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant identifier to associated with the menu","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}},{"description":"Used to denote the version of the menu payload within the body, will default to latest if not supplied e.g. application/=1.0","in":"header","name":"Content-Type","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Menu"}}},"description":"Specification of the menu. This must be valid according to the rules described here: https://developers.just-eat.com/docs/pos-how-the-integration-works#validation-rules"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MenuIngestionResponse"}}},"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerErrorResponse"}}},"description":"Server Error"}},"summary":"Create or update a menu","tags":["Restaurants","publicly-accessible"],"x-status":"Stable"}},"/restaurants/{tenant}/{restaurantId}/ordertimes":{"get":{"description":"Get list of the delivery and collection lead times supplied by the restaurant","operationId":"GetOrderTimes","parameters":[{"description":"A valid country code, e.g. \"uk\".","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"OAuth2 token issued for logged in restaurant","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":[{"dayOfWeek":"Sunday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Monday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Tuesday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Wednesday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Thursday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Friday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Saturday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},{"dayOfWeek":"Sunday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Monday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Tuesday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Wednesday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Thursday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Friday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50},{"dayOfWeek":"Saturday","lowerBoundMinutes":35,"serviceType":"Collection","upperBoundMinutes":50}],"schema":{"items":{"$ref":"#/components/schemas/orderTime"},"maxItems":14,"type":"array","uniqueItems":true}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"content":{"application/json":{"example":{"errors":[{"description":"The restaurant still uses deprecated approach of Lunch and Night menus","errorCode":"Forbidden"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden - the restaurant still uses deprecated approach of Lunch and Night menus"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/500ErrorSchema"}}},"description":"Internal Server Error"}},"summary":"Get the restaurant's delivery and collection lead times","tags":["publicly-accessible","Restaurant OrderTimes"]}},"/restaurants/{tenant}/{restaurantId}/ordertimes/{dayOfWeek}/{serviceType}":{"put":{"description":"Update the restaurant's delivery and collection lead times","operationId":"UpdateOrderTime","parameters":[{"description":"A valid country code, e.g. \"uk\".","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant Id.","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}},{"description":"Day of week for order time","in":"path","name":"dayOfWeek","required":true,"schema":{"enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"type":"string"}},{"description":"Service type of the order time","in":"path","name":"serviceType","required":true,"schema":{"enum":["Delivery","Collection"],"type":"string"}},{"description":"OAuth2 token issued for logged in restaurant OR API token for third party, in the format `Bearer {api_key}`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/updateOrderTimeRequest"}}},"required":true},"responses":{"204":{"description":"Success"},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Bad Request","errorCode":"ERR400"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/401UnauthorizedResponse"},"403":{"$ref":"#/components/responses/403ForbiddenResponse"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/500ErrorSchema"}}},"description":"Internal Server Error"}},"summary":"Update the restaurant's delivery and collection lead times","tags":["publicly-accessible","Restaurant OrderTimes"]}},"/restaurants/{tenant}/{restaurantId}/servicetimes":{"get":{"description":"Gets the service times (the weekly times at which a restaurant is in service for delivery or collection) for a restaurant","operationId":"getRestaurantServiceTimes","parameters":[{"description":"Two letter code of restaurant's tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceTimes"}}},"description":"The restaurant's service times","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"403":{"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"errors":[{"description":"Order not found","errorCode":"ERR1234"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Not found"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Get service times","tags":["Restaurants","publicly-accessible"],"x-status":"Draft"},"put":{"description":"Creates or updates the service times (the weekly times at which a restaurant is in service for delivery or collection) for a restaurant","operationId":"putRestaurantServiceTimes","parameters":[{"description":"Two letter code of restaurant's tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"The restaurant identifier","in":"path","name":"restaurantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceTimes"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceTimes"}}},"description":"The new service times","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"The value of \"end\" must be greater than \"start\", or \"00:00:00\"","errorCode":"ERR1234"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad request"},"403":{"description":"Forbidden"},"500":{"$ref":"#/components/responses/500ErrorResponse"}},"summary":"Create or update service times","tags":["Restaurants","publicly-accessible"],"x-status":"Draft"}},"/search/autocomplete/{tenant}":{"get":{"description":"Provides auto-completed search terms for restaurants, cuisines and products available in a given location.","parameters":[{"description":"A valid country code, e.g. \"uk\".","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"User's search term - at least one character required","in":"query","name":"searchTerm","required":true,"schema":{"type":"string"}},{"description":"The latitude and longitude coordinates of the location in which to search.\r\nSpecify the coordinates as latitude,longitude.","example":[51.501285,-0.1424422],"explode":false,"in":"query","name":"latlong","required":true,"schema":{"items":{"format":"decimal","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"style":"form"},{"description":"Limit the number of auto-completed terms returned by the API. Defaults to 7. Valid values 1 - 10","in":"query","name":"limit","required":false,"schema":{"format":"integer","type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoCompleteSearchResponse"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Validation failed on one or more fields","errorCode":400,"fields":["latlong"]}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"description":"A HTTP 4xx error response","properties":{"fault":{"properties":{"errors":{"items":{"properties":{"description":{"description":"Specific details about the error that may assist the you in resolving the issue","type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error","type":"string"},"fields":{"description":"An array of invalid query fields","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"errors":[{"errorCode":"401"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"500":{"$ref":"#/components/responses/500ErrorResponse"},"503":{"content":{"application/json":{"example":{"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"description":"Service Unavailable","properties":{"fault":{"properties":{"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"}}},"description":"Service Unavailable"}},"summary":"Get auto-completed search terms","tags":["Search","publicly-accessible"],"x-status":"Stable"}},"/search/restaurants/{tenant}":{"get":{"description":"Get restaurants available in a given lat-long which match a search term.\r\nMatches can be found against the name, a cuisine or a product.","parameters":[{"description":"A valid country code, e.g. \"uk\".","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"User's search term.","in":"query","name":"searchTerm","required":true,"schema":{"type":"string"}},{"description":"The latitude and longitude coordinates of the location in which to search.\r\nSpecify the coordinates as latitude,longitude.","example":[51.501285,-0.1424422],"explode":false,"in":"query","name":"latlong","required":true,"schema":{"items":{"format":"decimal","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"style":"form"},{"description":"Limit the number of restaurants returned by the API.\r\nValid values are numbers between 1 and 500.\r\nIf not provided, the limit defaults to 300.","in":"query","name":"limit","required":false,"schema":{"format":"integer","type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantSearchResponse"}}},"description":"Success","headers":{"cache-control":{"description":"Information about how the response can be cached.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"example":{"errors":[{"description":"Validation failed on one or more fields","errorCode":400,"fields":["latlong"]}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"errors":[{"errorCode":"401"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"example":{"errors":[{"errorCode":"422"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unprocessable Entity - search term rejected"},"500":{"$ref":"#/components/responses/500ErrorResponse"},"503":{"content":{"application/json":{"example":{"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","traceId":"0HLOCKDKQPKIU"},"schema":{"description":"Service Unavailable","properties":{"fault":{"properties":{"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"}}},"description":"Service Unavailable"}},"summary":"Search restaurants","tags":["Search","publicly-accessible"],"x-status":"Stable"}},"/send-to-pos-failed":{"post":{"description":"This webhook will be invoked if we experience an error or timeout in sending an order to the underlying POS / kitchen screen. When notified via this webhook, typically you will perform some form of alerting or backup flow (e.g. ask the operator to enter the order manually into the POS). NOTE: This message contains the `OrderId`, but not the full order. It is assumed that you have stored/cached the full order details earlier in the flow - e.g. via the [/order-ready-for-preparation](#/paths/~1order-ready-for-preparation-sync/post) webhook.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/send-to-pos-failed"}}},"required":true},"responses":{"200":{"description":"Respond with a 200 status code to indicate that you have received the notification."}},"summary":"Send to POS failed","tags":["Order Webhooks","publicly-accessible"]}},"/v1/{tenant}/restaurants/event/offline":{"post":{"description":"Creates an event for the specified restaurants that indicates a reason for those restaurants to be offline.","parameters":[{"description":"The identifier for the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"},"x-position":1},{"description":"Name of the user or system creating the event. Used for auditing purposes","in":"header","name":"X-JE-Requester","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-JE-User-Role","required":true,"schema":{"$ref":"#/components/schemas/UserRole"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfflineRestaurantsRequestModel"}}},"required":true,"x-name":"model"},"responses":{"201":{"content":{"application/json":{"schema":{"example":{"restaurantEventId":"03bff206-d136-405f-b789-95190e9711a4","restaurantIds":"12345"},"properties":{"restaurantEventId":{"description":"The ID of the offline event created","type":"string"},"restaurantIds":{"description":"A CSV of the restaurant IDs added to the offline event","type":"string"}},"type":"object"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array"}}},"description":"Bad Request"},"500":{"description":"Server Error"}},"summary":"Create Offline Event","tags":["Restaurant Events","publicly-accessible"],"x-status":"Stable"}},"/v1/{tenant}/restaurants/{id}/event/offline":{"delete":{"description":"Removes specified restaurant from offline events. If role header is `System` or `Operations` only events created by the specified role will be affected. If role header is `Restaurant` then all events that have `allowRestaurantOverride=true` will be affected.","parameters":[{"description":"The identifier for the tenant","in":"path","name":"tenant","required":true,"schema":{"type":"string"},"x-position":1},{"description":"The identifier for the restaurant","in":"path","name":"id","required":true,"schema":{"type":"string"},"x-position":2},{"description":"Name of the user or system creating the event. Used for auditing purposes","in":"header","name":"X-JE-Requester","required":true,"schema":{"type":"string"}},{"description":"The role the user or system creating the event has assumed.","in":"header","name":"X-JE-User-Role","required":true,"schema":{"$ref":"#/components/schemas/UserRole"}}],"responses":{"200":{"description":"No Events to Delete"},"202":{"description":"Request Succeeded"},"400":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array"}}},"description":"Bad Request"},"500":{"description":"Server Error"}},"summary":"Delete Offline Event","tags":["Restaurant Events","publicly-accessible"],"x-status":"Stable"}},"/{tenant}/orders/{orderId}/queries/attempteddelivery":{"post":{"description":"If the customer hasn't answered the door to collect the order, then an attempted delivery event can be created using this endpoint.","parameters":[{"description":"Request tenant e.g. uk.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Id for the order.","in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create-attempted-delivery"}}},"description":"An object for providing the reason that the attempted delivery event is being created","required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request - returned if providing invalid data such as an unacceptable reason code"},"401":{"description":"Unauthorized - consumer has not provided the necessary credentials"},"404":{"description":"Resource not found"},"500":{"description":"Internal server error"}},"summary":"Delivery Attempt Failed","tags":["Attempted Delivery API","publicly-accessible"],"x-status":"Stable"}},"/{tenant}/orders/{orderId}/queries/attempteddelivery/resolution/redeliverorder":{"post":{"description":"If the customer responds, then you can trigger the redelivery of an order through this endpoint","parameters":[{"description":"Request tenant e.g. uk.","in":"path","name":"tenant","required":true,"schema":{"type":"string"}},{"description":"Id for the order.","in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"description":"Containing a partner issued API key e.g. `JE-API-KEY ABCDE123456789`","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/resolve-attempted-delivery-redeliver"}}},"description":"An object for providing the new status of the order and the updated due date","required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request - returned if providing invalid data such as an unacceptable reason code"},"401":{"description":"Unauthorized - consumer has not provided the necessary credentials"},"404":{"description":"Resource not found"},"500":{"description":"Internal server error"}},"summary":"Request Redelivery of the Order","tags":["Attempted Delivery API","publicly-accessible"],"x-status":"Stable"}}},"components":{"headers":{"ExpiresAfter":{"description":"date in UTC when token expires","schema":{"format":"date-time","type":"string"}},"Retry-After":{"description":"The Retry-After HTTP response header indicates how long the User Agent should wait before making a follow-up request","required":false,"schema":{"type":"string"}}},"responses":{"401UnauthorizedResponse":{"content":{"application/json":{"example":{"errors":[{"description":"Unauthorized. The client did not provide an authentication token or the token was invalid.","errorCode":"ERR401"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Unauthorized. The client did not provide an authentication token or the token was invalid"},"403ForbiddenResponse":{"content":{"application/json":{"example":{"errors":[{"description":"Forbidden"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/4XXErrorSchema"}}},"description":"Forbidden. The client is not allowed to perform this action"},"500ErrorResponse":{"content":{"application/json":{"example":{"errors":[{"description":"Internal Server Error"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/500ErrorSchema"}}},"description":"Internal Server Error"},"503ServiceUnavailableResponse":{"content":{"application/json":{"example":{"errors":[{"description":"Service Unavailable"}],"faultId":"25bbe062-c53d-4fbc-9d6c-3df6127b94fd","traceId":"H3TKh4QSJUSwVBCBqEtkKw=="},"schema":{"$ref":"#/components/schemas/5XXErrorSchema"}}},"description":"Service Unavailable","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}}},"schemas":{"400ConnectTokenResponse":{"properties":{"error":{"description":"A description of the error that occurred.","type":"string"}},"type":"object"},"400CourierSyncErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Invalid Request","type":"string"},"message":{"description":"Error Message Text","example":"Invalid Request","type":"string"}},"type":"object"},"400LiveMetricsErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Invalid Request","type":"string"},"message":{"description":"Error Message Text","example":"Invalid Request","type":"string"}},"type":"object"},"400MarketplaceRankingErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Invalid Request","type":"string"},"message":{"description":"Error Message Text","example":"Invalid Request","type":"string"}},"type":"object"},"400ZoneProfileErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Invalid Request","type":"string"},"message":{"description":"Error Message Text","example":"Invalid Request","type":"string"}},"type":"object"},"401CourierSyncErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Unauthorized Request","type":"string"},"message":{"description":"Error Message Text","example":"Unauthorized Request","type":"string"}},"type":"object"},"401LiveMetricsErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Unauthorized Request","type":"string"},"message":{"description":"Error Message Text","example":"Unauthorized Request","type":"string"}},"type":"object"},"401MarketplaceRankingErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Unauthorized Request","type":"string"},"message":{"description":"Error Message Text","example":"Unauthorized Request","type":"string"}},"type":"object"},"401ZoneProfileErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Unauthorized Request","type":"string"},"message":{"description":"Error Message Text","example":"Unauthorized Request","type":"string"}},"type":"object"},"404CourierSyncErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Courier Sync not found","type":"string"},"message":{"description":"Error Message Text","example":"Courier Sync not found","type":"string"}},"type":"object"},"404LiveMetricsErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Live Metrics not found for delivery zone","type":"string"},"message":{"description":"Error Message Text","example":"Live Metrics not found for delivery zone","type":"string"}},"type":"object"},"404MarketplaceRankingErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Marketplace Ranking Settings not found","type":"string"},"message":{"description":"Error Message Text","example":"Marketplace Ranking Settings not found","type":"string"}},"type":"object"},"404ZoneProfileErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Zone Profile Settings not found","type":"string"},"message":{"description":"Error Message Text","example":"Zone Profile Settings not found","type":"string"}},"type":"object"},"4XXErrorSchema":{"description":"A HTTP 4xx error response","properties":{"fault":{"properties":{"errors":{"items":{"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue","type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error","type":"string"}},"type":"object"},"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"},"500CourierSyncErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Internal Server Error","type":"string"},"message":{"description":"Error Message Text","example":"Internal Server Error","type":"string"}},"type":"object"},"500ErrorSchema":{"description":"A HTTP 500 error response","properties":{"fault":{"properties":{"errors":{"items":{"properties":{"description":{"description":"If returned, the only value returned will be Internal Server Error\"","enum":["Internal Server Error"],"type":"string"}},"type":"object"},"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"},"500LiveMetricsErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Internal Server Error","type":"string"},"message":{"description":"Error Message Text","example":"Internal Server Error","type":"string"}},"type":"object"},"500MarketplaceRankingErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Internal Server Error","type":"string"},"message":{"description":"Error Message Text","example":"Internal Server Error","type":"string"}},"type":"object"},"500ZoneProfileErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","example":"Internal Server Error","type":"string"},"message":{"description":"Error Message Text","example":"Internal Server Error","type":"string"}},"type":"object"},"5XXErrorSchema":{"description":"A HTTP 5xx error response","properties":{"fault":{"description":"An object representing the nature of the failure.","properties":{"errors":{"description":"The list of errors.","items":{"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue","type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error","type":"string"}},"type":"object"},"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"}},"required":["faultId"],"type":"object"}},"type":"object"},"AccountBalanceResponse":{"properties":{"value":{"format":"int32","type":"integer"}},"type":"object"},"ActiveConsumerOffer":{"additionalProperties":false,"properties":{"Type":{"description":"Contains the offer data type name","type":"string"},"offerId":{"description":"Unique Identifier for Offer","nullable":false,"type":"string"}},"required":["Type","offerId"],"type":"object"},"ActiveConsumerOffersByRestaurant":{"additionalProperties":false,"example":{"offers":[{"Type":"Percent","amount":20,"maxQualifyingValue":45000,"offerId":"12345sd","qualifyingValue":15000},{"Type":"Percent","amount":15,"maxQualifyingValue":70000,"offerId":"45sd345","qualifyingValue":35000}],"restaurantId":"1234sd"},"properties":{"offers":{"description":"A Collection of Active Offers for `RestaurantId`","items":{"discriminator":{"mapping":{"Percent":"#/components/schemas/Percent"},"propertyName":"Type"},"oneOf":[{"$ref":"#/components/schemas/ActiveConsumerOffer"},{"$ref":"#/components/schemas/Percent"}]},"nullable":true,"type":"array"},"restaurantId":{"description":"The `RestaurantId` applicable to the Offer","example":"1234567ds","nullable":true,"type":"string"}},"type":"object"},"ActiveConsumerOffersRequest":{"additionalProperties":false,"example":{"applicableDateTimeUtc":"2025-04-15T13:52:07.553Z","consumerId":"1050450174","restaurantIds":["12879","450174"]},"properties":{"applicableDateTimeUtc":{"description":"This is to support the basket use case, where\nan Offer may be active and displayed in Search or Menu\nbut could become inactive by the time the consumer\ncompletes the order.","format":"date-time","nullable":true,"type":"string"},"consumerId":{"description":"Global Consumer Id","nullable":true,"type":"string"},"restaurantIds":{"description":"The identifiers of the restaurants. Allows offers to be returned for many restaurants.","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["restaurantIds"],"type":"object"},"ActiveConsumerOffersResponse":{"additionalProperties":false,"properties":{"activeConsumerOffersByRestaurants":{"description":"A Collection of Active Offers by Restaurant","items":{"$ref":"#/components/schemas/ActiveConsumerOffersByRestaurant"},"nullable":true,"type":"array"}},"type":"object"},"AddCommentToTicketModel":{"description":"Used when Scoober sends a reply about a support incident, to add to a Just Eat Zendesk ticket","properties":{"description":{"description":"Comment to add to the ticket.","example":"Happy to help!","type":"string"},"externalId":{"description":"Scoober job reference, or similar ID used by Scoober to identify this ticket.","example":"slack:1","type":"string"},"requesterEmail":{"description":"E-Mail address of the ticket requester.","example":"requester@scoober.com","nullable":true,"type":"string"},"responseUrl":{"description":"Where should we respond to with progress on this request?","example":"https://zenbox-api.bob.external.tkwy-staging.io/ticket/reply/response","type":"string"},"status":{"description":"What status should we set the ticket to: Open, pending or solved.","example":"pending","nullable":true,"type":"string"},"ticketId":{"description":"The ticket ID to add the comment to.","example":1234,"format":"int64","type":"integer"}},"required":["description","externalId","responseUrl","ticketId"],"type":"object"},"AddMenuView":{"properties":{"anonymousUserId":{"type":"string"},"app":{"type":"string"},"gaUserId":{"type":"string"},"globalUserId":{"type":"string"},"isSponsored":{"type":"boolean"},"latitude":{"format":"double","nullable":true,"type":"number"},"longitude":{"format":"double","nullable":true,"type":"number"},"menuDisplayedTimestampUtc":{"format":"date-time","nullable":true,"type":"string"},"outcode":{"type":"string"},"searchDisplayedTimestampUtc":{"format":"date-time","nullable":true,"type":"string"}},"type":"object"},"AddReplyMessageModel":{"description":"Information sent when a Just Eat agent sends a follow up message about a Scoober support ticket to Scoober","properties":{"city":{"deprecated":true,"description":"City this order is located in.","example":"london","nullable":true,"type":"string"},"countryCode":{"description":"2 letter ISO code this ticket is about.","example":"gb","nullable":true,"type":"string"},"description":{"description":"Description, i.e.: main body, of the message.","example":"Happy to help!","type":"string"},"externalId":{"description":"External ID for this ticket, e.g. Scoober job ID (assigned by them).","example":"slack:1","type":"string"},"reason":{"description":"Scoober contact reason for this ticket.","example":"front_line_reason_food_quality_cold_crushed_spilled","type":"string"},"restaurantId":{"description":"Restaurant Id of the order.","example":"1234567","nullable":true,"type":"string"},"scooberJobId":{"description":"Scoober job ID for this order.","example":"1234","nullable":true,"type":"string"},"status":{"description":"Status of the ticket. Can be: New, pending, solved.","example":"pending","type":"string"},"subject":{"description":"Subject of the message.","example":"Scoober Test","type":"string"},"ticketId":{"description":"Zendesk ticket ID this message is about.","example":1234,"format":"int64","type":"integer"}},"required":["description","externalId","reason","status","subject","ticketId"],"type":"object"},"Additive":{"additionalProperties":false,"description":"List of Additives","example":{"code":"10.2"},"properties":{"code":{"description":"Additive code of Takeaway Standard from TMS","nullable":false,"type":"string"}},"type":"object"},"Address":{"description":"Address information.","properties":{"address1":{"description":"Site's complete street address","example":"121 17 Ave SW #405","type":"string"},"city":{"description":"City's name","example":"Calgary","type":"string"},"latitude":{"description":"The address latitude coordinate.","example":51.048615,"format":"double","type":"number"},"longitude":{"description":"The address longitude coordinate.","example":-114.070847,"format":"double","type":"number"},"name":{"description":"Site's institution name or commercial name.","example":"Clinic Hospital","type":"string"},"phone":{"description":"Customer's phone number","example":"+1 (222) 2222-2222","type":"string"},"postalCode":{"description":"Postal code.","example":"T0R 0X1","type":"string"},"province":{"description":"Province's name","example":"Alberta","type":"string"},"specialInstructions":{"description":"Special instructions for delivery","example":"Contactless Delivery Please","type":"string"},"useLatLongAddress":{"description":"When enabled use latitude and longitude address.","type":"boolean"}},"type":"object"},"AddressGeocodingRequest":{"example":{"addressLines":["2 Fleet Place","Fleet Place","London","EC4M 7RF"]},"properties":{"addressLines":{"description":"Lines of the consumers address, a minimum of 3 is preferred but only 1 is required.","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["addressLines"],"type":"object"},"Allergen":{"additionalProperties":false,"description":"List of  Allergens","example":{"code":"A"},"properties":{"code":{"description":"Allergen code of Takeaway Standard from TMS","nullable":false,"type":"string"}},"type":"object"},"AppType":{"description":"Application type","enum":["Orderpad","OrdertrackerDroid","OrdertrackerTouch","Orderbox","OrderDeliveryService","OrderpadDroid","OrderpadTouch","None"],"type":"string"},"ApproveCancellationQuery":{"additionalProperties":false,"properties":{"fee":{"description":"Approved fee","format":"decimal","nullable":true,"type":"number"},"notes":{"description":"Notes about this cancellation","nullable":true,"type":"string"}},"type":"object"},"AttemptedDeliveryQuery":{"additionalProperties":false,"properties":{"requestType":{"description":"Type of attempted delivery request","enum":["problem_with_address","no_answer"],"nullable":true,"type":"string"},"resolution":{"$ref":"#/components/schemas/AttemptedDeliveryResolution","description":"The restaurants resolution to the query","nullable":true},"response":{"$ref":"#/components/schemas/AttemptedDeliveryResponse","description":"The customers reponse to the query","nullable":true},"timeStamp":{"description":"DateTime that the query was created in ISO 8601 format","format":"date-time","type":"string"}},"type":"object"},"AttemptedDeliveryRequest":{"additionalProperties":false,"properties":{"reasonCode":{"description":"Reason for requesting attempted delivery","enum":["problem_with_address","no_answer"],"type":"string"}},"type":"object"},"AttemptedDeliveryResolution":{"additionalProperties":false,"properties":{"cancellationReason":{"description":"Reason for cancelling order","enum":["new_address_not_within_area","unable_to_reprepare","driver_not_available","area_unsafe","customer_doesnt_want_anymore"],"nullable":true,"type":"string"},"hasBeenMarkedAsOnItsWay":{"description":"Flag to indicate whether redelivery is on it's way","type":"boolean"},"redeliveryStatus":{"description":"Status of the redelivery request","enum":["driver_at_address","repreparing"],"nullable":true,"type":"string"},"redeliveryTime":{"description":"Estimated redelivery time in ISO 8601 format","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"AttemptedDeliveryResolutionCancellationRequest":{"additionalProperties":false,"properties":{"reasonCode":{"description":"The reason the order has been cancelled","enum":["new_address_not_within_area","unable_to_reprepare","driver_not_available","area_unsafe","customer_doesnt_want_anymore"],"type":"string"}},"type":"object"},"AttemptedDeliveryResolutionRedeliveryRequest":{"additionalProperties":false,"properties":{"newDueDate":{"description":"New date and time in ISO 8601 format the order is due to be delivered","format":"date-time","nullable":true,"type":"string"},"status":{"description":"New status of attempted delivery","enum":["driver_at_address","repreparing"],"nullable":true,"type":"string"}},"type":"object"},"AttemptedDeliveryResponse":{"additionalProperties":false,"properties":{"isViewed":{"description":"Has the response been viewed","type":"boolean"},"message":{"description":"Response message from customer","nullable":true,"type":"string"},"responseType":{"description":"Response code from the customer for attempted delivery","enum":["response","already_delivered"],"nullable":true,"type":"string"}},"type":"object"},"AuthorizeResponse":{"description":"The response object for the `authorize` endpoint.","type":"object"},"AutoCompleteSearchResponse":{"example":{"terms":[{"classification":"Restaurant","term":"Pizza Palace"},{"classification":"Cuisine","term":"Pizza"},{"classification":"Dish","term":"Large Hawaiian"}]},"properties":{"terms":{"description":"Ordered list of suggested term completions","items":{"$ref":"#/components/schemas/AutoCompleteSearchResponseItem"},"maxItems":10,"type":"array","uniqueItems":false}},"type":"object"},"AutoCompleteSearchResponseItem":{"example":{"classification":"Restaurant","term":"Pizza Palace"},"properties":{"classification":{"description":"Grouping to which term belongs","enum":["Restaurant","Cuisine","Dish"],"type":"string"},"term":{"description":"Auto-completed search term","type":"string"}},"type":"object"},"Availability":{"example":{"description":"Menu items available for delivery during weekdays for lunch.","id":"1-lunch-delivery","name":"Delivery Lunch","serviceTypes":["delivery"],"times":[{"daysOfTheWeek":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"fromDateTime":41400,"toDateTime":52200}]},"properties":{"description":{"description":"The description of the availability.","type":"string"},"id":{"description":"A unique identifier at menu level for a given availability.","type":"string"},"name":{"description":"The name for the availability.","type":"string"},"serviceTypes":{"description":"Values can be \"collection\" or \"delivery\" and are used to denote what types of service apply to the availability.","items":{"enum":["collection","delivery"],"type":"string"},"type":"array"},"times":{"description":"An array of times when the availability is active.","items":{"$ref":"#/components/schemas/Time"},"type":"array"}},"type":"object"},"AvailableFulfilmentTimes409Error":{"description":"An HTTP 409 error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults.","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"description":"Details about the error that may assist you in resolving the issue.","nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error.","enum":["FULFILMENT_TIME_BANDS_INVALID","FULFILMENT_TIME_BANDS_NOT_FOUND"],"nullable":false,"type":"string"}},"required":["description","errorCode"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"AvailableTimeSlotsResponse":{"additionalProperties":false,"example":{"available":[{"from":43200,"to":45000},{"from":45000,"to":46800}],"overlappingOfferIds":["1","2"]},"properties":{"available":{"description":"The collection of available time slots in restaurant local time","items":{"description":"Pair of start and end time of available period to create offer","properties":{"from":{"description":"The available offer start time","format":"time","nullable":false,"type":"string"},"to":{"description":"The available offer end time","format":"time","nullable":false,"type":"string"}},"type":"object"},"nullable":false,"type":"array"},"overlappingOfferIds":{"description":"The collection of overlapped offer ids for same date","items":{"type":"string"},"nullable":false,"type":"array"}},"type":"object"},"BadItem":{"additionalProperties":false,"properties":{"name":{"description":"Name of the item","nullable":true,"type":"string"},"quantity":{"description":"Quantity of bad items","format":"int32","type":"integer"},"totalCost":{"description":"Total cost of all bad items","format":"decimal","type":"number"},"unitPrice":{"description":"Price of a single item in local currency","format":"decimal","type":"number"}},"type":"object"},"BadItemClaim":{"additionalProperties":false,"properties":{"id":{"description":"Id of the claim","nullable":true,"type":"string"},"issues":{"description":"Bad item issues","items":{"$ref":"#/components/schemas/BadItemsGroupedByIssue"},"nullable":true,"type":"array"},"refundRefusedReasonCode":{"description":"If claim is refused, the reason for refusal","nullable":true,"type":"string"},"status":{"$ref":"#/components/schemas/BadItemClaimStatus","description":"Current status of the claim"},"totalCost":{"description":"Total cost of the claim in local currency","format":"decimal","type":"number"}},"type":"object"},"BadItemClaimStatus":{"description":"Current status of a bad item claim","enum":["Pending","Viewed","RefundAccepted","RefundRefused"],"type":"string"},"BadItemClaimUpdate":{"additionalProperties":false,"properties":{"comment":{"description":"Additional comment","nullable":true,"type":"string"},"newStatus":{"$ref":"#/components/schemas/BadItemClaimStatus","description":"New status of claim"},"refundRejectedReasonCode":{"description":"If claim is refused, the reason for refusal","enum":["AlreadyRefunded","ItemReplaced","PartialRefundRequired","WasNotMissing","WillRedeliver","OrderWasHot","OrderWasOnTime","OrderWasPacked","FoodWasIntact","AddExtraItem","Other"],"type":"string"}},"type":"object"},"BadItemIssueSelectionStep":{"allOf":[{"$ref":"#/components/schemas/FlowStepBase"},{"properties":{"actions":{"description":"Array of actions (i.e. buttons)","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"body":{"description":"Array of paragraphs for body text","items":{"type":"string"},"type":"array"},"foodSafetyAction":{"$ref":"#/components/schemas/HelpAction","description":"Action that opens Food Safety info"},"header":{"description":"Display header","type":"string"},"issueOptionActions":{"description":"Array of actions that select the issue","items":{"$ref":"#/components/schemas/HelpAction","description":"Array of items to choose"},"type":"array"},"leaveReviewAction":{"$ref":"#/components/schemas/HelpAction","description":"Action to leave a review"}},"type":"object"}],"description":"Flow step used for selecting the issue (e.g. missing / cold) when complaining about order items","type":"object"},"BadItemsGroupedByIssue":{"additionalProperties":false,"properties":{"issue":{"description":"Bad item issue type","enum":["Missing","Cold","Damaged"],"nullable":true,"type":"string"},"items":{"description":"Group of items which have the same issue type","items":{"$ref":"#/components/schemas/BadItem"},"nullable":true,"type":"array"}},"type":"object"},"BadRequestMarketingResponse":{"description":"400 Bad Request Returned","example":{"errors":[{"description":"Bad Request","errorCode":"400"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","message":"Unable to process the request."}},"BasketErrorResponse":{"description":"The error object returned when an operation fails","properties":{"ErrorType":{"$ref":"#/components/schemas/BasketErrorType"},"InnerErrors":{"items":{"properties":{"ErrorType":{"$ref":"#/components/schemas/BasketErrorType"},"Message":{"type":"string"}},"type":"object"},"type":"array"},"Message":{"type":"string"}},"type":"object"},"BasketErrorType":{"enum":["Unknown","MenuNotFound","BasketNotRetrieved","BasketNotMapped","BasketNotDeserialised","BasketErrorsNotDeserialised","InvalidBasketItems","BasketNotCreated","InvalidBasketUpdateRequest","ProductNotFound","ProductNotUpdated","ZipcodeNotUpdated","ServiceTypeNotUpdated","ProductNotAdded","ProductsNotAdded","MaximumBasketSizeReached","MinimumBasketSizeReached","OrderItemNotRemoved","NoAvailableMenu","RestaurantDoesNotDeliverToLocation","InvalidLocation","OrderItemNotFound","PartialProductsUpdate","AllProductsUpdateFailed","ProductsNotRemoved","InvalidCreateBasketRequest","BasketNotFound"],"type":"string"},"BasketGeoLocation":{"properties":{"Latitude":{"format":"decimal","type":"number"},"Longitude":{"format":"decimal","type":"number"}},"type":"object"},"BasketLocation":{"properties":{"GeoLocation":{"allOf":[{"$ref":"#/components/schemas/BasketGeoLocation"}],"description":"Not available across platform yet, but applied for future proofing.","nullable":true},"ZipCode":{"type":"string"}},"type":"object"},"BasketProductsRequest":{"description":"Describes a request for product recommendations based on products in a user's basket.","properties":{"productIds":{"description":"An array of product ids that are in the user's basket.","items":{"type":"string"},"type":"array"},"restaurantId":{"description":"The id of the restaurant that the recommendations are for.","type":"string"},"userExperimentValues":{"description":"An array of experiment name/variant values that the user is part of.\r\nIf none of these match the experiment names that the Cross Sell API\r\nknows about, an error will be thrown.","items":{"$ref":"#/components/schemas/ExperimentValue"},"type":"array"}},"required":["productIds","restaurantId","userExperimentValues"],"type":"object"},"BasketResponse":{"description":"The response object for all basket endpoints.","properties":{"BasketId":{"type":"string"},"BasketSummary":{"allOf":[{"$ref":"#/components/schemas/BasketSummary"}],"description":"Information for displaying the basket to the user."},"CreateDate":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","nullable":true,"type":"string"},"IsOrderable":{"type":"boolean"},"MenuGroupId":{"type":"string"},"RestaurantSeoName":{"description":"A unique per tenant identifier for a restaurant used for external operations.","nullable":true,"type":"string"},"ServiceType":{"type":"string"}},"type":"object"},"BasketSummary":{"properties":{"BasketTotals":{"items":{"$ref":"#/components/schemas/BasketTotals"},"type":"object"},"CategoryOffers":{"items":{"$ref":"#/components/schemas/CategoryOffer"},"type":"array"},"Deals":{"items":{"$ref":"#/components/schemas/Deal"},"type":"array"},"DeliveryCharge":{"format":"decimal","type":"number"},"MaximumAdditionalOrderItems":{"format":"integer","type":"number"},"PaymentDirectives":{"$ref":"#/components/schemas/PaymentDirectives","description":"The directives to payment component","example":{"DisableCashPayment":true}},"Products":{"items":{"$ref":"#/components/schemas/Product"},"type":"array"},"Prompts":{"$ref":"#/components/schemas/Prompts","nullable":true,"type":"object"},"RestaurantOffers":{"description":"The list of restaurant offers","example":[{"ConsumerSegment":"NewToRestaurant","DiscountApplied":8.37,"DiscountValue":20,"OfferId":"ftcOfferId75","OfferType":"Percent"},{"ConsumerSegment":"All","DiscountApplied":28.37,"DiscountCode":"mgt36rtp8VoucherCode","DiscountValue":0,"OfferId":"stampCardLoyaltyCampaignOfferId287","OfferType":"StampCard"}],"items":{"$ref":"#/components/schemas/RestaurantOffer"},"type":"array"}},"required":["MaximumAdditionalOrderItems"],"type":"object"},"BasketTotals":{"properties":{"SubTotal":{"format":"decimal","type":"number"},"Total":{"format":"decimal","type":"number"}},"type":"object"},"BenderErrorResponse":{"description":"The error object returned when an operation fails","properties":{"error":{"description":"Error Title","type":"string"},"message":{"description":"Error Message Text","type":"string"}},"type":"object"},"BenderFlexStateType":{"description":"<p>The flex state type changes according to the exponential moving average and is used as a reference to bring more couriers to suffice the demand in a given delivery zone.</p> <p>If the flex state type is \"Off\", it means no shifts will be offered for the delivery zone.</p> <p>If the state is \"CLOSED\", only scheduled shifts will be allowed for the delivery zone.</p> <p>If the state is \"SEEKING\", the shift offers are going to be made across the courier network in order to suffice the current demand.</p> <p>If the state is \"OPEN\", it means demand is high and couriers from all over the courier network are allowed to create shifts for themselves to suffice the current demand.</p> <p>If the state is \"CODE_RED\", it means not only can everyone create shifts for themselves for the delivery zone but also couriers from other delivery zones might reallocate to help suffice the demand of that particular delivery zone.</p>","enum":["CODE_RED","OPEN","SEEKING","CLOSED","Off"],"type":"string"},"BenderSettings":{"description":"The bender settings object for all endpoints.","properties":{"benderStatus":{"description":"Bender On/Off Status","type":"boolean"},"deliveryZoneId":{"description":"Bender Settings Delivery Zone Id","type":"string"},"protectionThreshold":{"description":"Number of hours of Threshold protection","format":"integer","type":"number"},"settingsFlexStates":{"allOf":[{"$ref":"#/components/schemas/SettingsFlexStates"}],"description":"Flex states information for given Delivery Zone Id"},"targetUsage":{"description":"Minimum target Usage Percentage","format":"double","nullable":true,"type":"number"}},"type":"object"},"BenderSettingsList":{"description":"Bender Settings List","properties":{"benderSettingsList":{"description":"List of Bender Settings","items":{"$ref":"#/components/schemas/BenderSettings"},"type":"array"}},"type":"object"},"BonusSummary":{"description":"The zone profile object for a given delivery zone.","properties":{"type":{"$ref":"#/components/schemas/BonusType","description":"Types of bonuses that may be granted to the courier."},"value":{"description":"Bonus value","format":"integer","type":"number"}},"type":"object"},"BonusType":{"description":"Types of bonuses that may be granted to the courier. <p>TOP_UP_PROMOTION - In order to calculate top up promotion skip has a database table containing required acceptance rate and top up value for each existing delivery zone, when the courier's order acceptance rate is greater than the required acceptance rate and the total value is lower than top up value for that given delivery zone, the courier will be granted the difference between the top up value and total order value, know as top up promotion.</p>","enum":["TOP_UP_PROMOTION"],"type":"string"},"BringOnlineRequest":{"additionalProperties":false,"properties":{"comment":{"description":"Any additional information","nullable":true,"type":"string"}},"type":"object"},"CallReceivedOrUpdatedModel":{"properties":{"callSid":{"description":"UID used by Twilio, identifying a phone call","type":"string"},"callStep":{"description":"CallStep","type":"string"},"callerId":{"description":"Caller's phone number","type":"string"},"orderId":{"description":"Legacy/friendly Order ID","type":"string"},"queryType":{"description":"QueryType","type":"string"},"resolution":{"description":"Resolution","type":"string"},"status":{"description":"Contains the status of the order, if known","type":"string"},"tags":{"description":"Open-ended tag collection, for on-the-fly adjustment of data slicing; comma separated.","type":"string"}},"type":"object"},"CallerInformationCallRequest":{"properties":{"accountSid":{"description":"The SID of the Twilio Account that created the Call resource","type":"string"},"apiVersion":{"description":"The Twilio API version used to start a new TwiML session","type":"string"},"callSid":{"description":"A unique identifier for the call, generated by Twilio","type":"string"},"callStatus":{"description":"A descriptive status for the call","type":"string"},"called":{"description":"The caller identifier","type":"string"},"calledCountry":{"description":"The country of the called sender","type":"string"},"calledState":{"description":"The state of the called sender","type":"string"},"caller":{"description":"The name or phone number of the caller","type":"string"},"callerCountry":{"description":"The country of the called sender","type":"string"},"digits":{"description":"The digits that caller entered on their keypad","type":"string"},"direction":{"description":"A string describing the direction of the call","type":"string"},"finishedOnKey":{"description":"Gets or sets a value that caller pressed to submit their digits input","type":"string"},"from":{"description":"The phone number or client identifier to use as the caller id","type":"string"},"fromCountry":{"description":"The country of the called sender","type":"string"},"to":{"description":"The phone number, SIP address, or client identifier to call","type":"string"},"toCountry":{"description":"The country of the recipient","type":"string"}},"type":"object"},"CancelOrderResolution":{"properties":{"ReasonCode":{"description":"The reason the order has been cancelled","enum":["NewAddressNotWithinDeliveryArea","UnableToReprepare","DriverNoLongerAvailable","AreaIsUnsafe","CustomerDoesnotWantOrderAnymore"],"type":"string"}},"type":"object"},"CancellationInfo":{"additionalProperties":false,"properties":{"canRequestCompensation":{"description":"Can the restaurant claim compensation for this cancellation","type":"boolean"},"hasRequestedCompensation":{"description":"Has the restaurant claimed compensation for this cancellation","type":"boolean"},"initiatedBy":{"$ref":"#/components/schemas/CancellationInitiatedBy","description":"Whether cancellation has been initiated by restaurant or consumer"},"reason":{"$ref":"#/components/schemas/CancellationReason","description":"Reason for cancellation","nullable":true},"restaurantAware":{"description":"Is restaurant already aware of the cancellation","type":"boolean"},"restaurantTransaction":{"$ref":"#/components/schemas/CancellationRestaurantTransaction","description":"Potential compensation or fee applied to the restaurant for the cancellation","nullable":true}},"type":"object"},"CancellationInitiatedBy":{"description":"Who initiated the cancellation","enum":["Unknown","Restaurant","Customer","System"],"type":"string"},"CancellationQueryResponse":{"additionalProperties":false,"properties":{"comments":{"description":"Additional comments","nullable":true,"type":"string"},"createdAt":{"description":"Cancellation query creation date and time in ISO 8601 format","format":"date-time","type":"string"},"orderId":{"description":"The id of the order","nullable":true,"type":"string"},"policyResult":{"$ref":"#/components/schemas/PolicyResult","description":"Result of the policy run"},"reasonCode":{"description":"Reason for order cancellation","enum":["rest_cancelled_customer_requested","rest_cancelled_customer_absent","rest_cancelled_out_of_stock","rest_cancelled_drivers_unavailable","rest_cancelled_fake_order","rest_cancelled_too_busy","rest_cancelled_other"],"nullable":true,"type":"string"},"resolution":{"$ref":"#/components/schemas/CancellationResolution","description":"Resolution of this cancellation querry"},"state":{"description":"Cancellation query outcome","enum":["New","Offered","Declined","Approved"],"nullable":true,"type":"string"}},"type":"object"},"CancellationReason":{"additionalProperties":false,"properties":{"code":{"description":"Reason for order cancellation","enum":["rest_cancelled_out_of_stock","rest_cancelled_drivers_unavailable","rest_cancelled_customer_requested","rest_cancelled_customer_absent","rest_cancelled_fake_order","rest_cancelled_other","cust_cancelled_delivery_too_long","cust_cancelled_made_mistake","cust_cancelled_other","cust_cancelled_changed_mind","deleted_system_error","deleted_test_order","deleted_rejected_by_restaurant"],"nullable":true,"type":"string"},"description":{"description":"Any additional comments","nullable":true,"type":"string"}},"type":"object"},"CancellationResolution":{"additionalProperties":false,"properties":{"at":{"description":"Creation date and time of the cancellation in ISO 8601 format","format":"date-time","type":"string"},"by":{"description":"Role of cancellation requester","enum":["Agent","Restaurant","System"],"nullable":true,"type":"string"},"feeApplied":{"description":"Approved amount","format":"decimal","type":"number"},"notes":{"description":"Additional notes","nullable":true,"type":"string"},"state":{"description":"State of the cancellation resolution","enum":["Approved"],"nullable":true,"type":"string"},"userName":{"description":"User name who created this cancellation","nullable":true,"type":"string"}},"type":"object"},"CancellationRestaurantTransaction":{"additionalProperties":false,"properties":{"amount":{"description":"The total amount of the transaction","format":"decimal","type":"number"},"percentage":{"description":"The percentage of the order value of the transaction","format":"decimal","type":"number"},"type":{"$ref":"#/components/schemas/CancellationRestaurantTransactionType","description":"The type of cancellation transaction"}},"type":"object"},"CancellationRestaurantTransactionType":{"description":"The transaction type","enum":["Unknown","Compensation","Fee"],"type":"string"},"CategoriesResponse":{"description":"Categories of products for given restaurant.","items":{"properties":{"Description":{"description":"Category description.","type":"string"},"Id":{"description":"Category identifier.","type":"string"},"Name":{"description":"Category name.","type":"string"}},"type":"object"},"type":"array"},"Category":{"allOf":[{"$ref":"#/components/schemas/CategoryBase"},{"properties":{"itemIds":{"description":"The ids of the menu items that are within the category. Each id must be unique within the category.","items":{"type":"string"},"type":"array"}},"type":"object"}],"example":{"description":"","id":"3","itemIds":["65143901","65143902","65143903","65143904","65143905"],"name":"Starters"}},"CategoryBase":{"example":{"description":"","id":"3","name":"Starters"},"properties":{"description":{"description":"The description of the category.","type":"string"},"id":{"description":"A unique identifier at menu level for a given category.","type":"string"},"name":{"description":"The name of the category.","type":"string"}},"type":"object"},"CategoryOffer":{"properties":{"CategoryId":{"type":"string"},"DiscountType":{"description":"The type of discount","type":"string"},"DiscountValue":{"format":"decimal","type":"number"},"OfferId":{"description":"The unique identifier of underlying consumer offers, if applicable","nullable":true,"type":"string"},"ProductId":{"description":"The unique identifier of product qualified for discount","type":"string"}},"type":"object"},"CategoryRequest":{"example":{"Id":"21","Name":"Pizzas"},"properties":{"Id":{"description":"Id of the Category","type":"string"},"Name":{"description":"Name of the Category","type":"string"}},"type":"object"},"CategoryResponse":{"example":{"Id":"21","Name":"Pizzas"},"properties":{"Id":{"description":"Id of the Category","type":"string"},"Name":{"description":"Name of the Category","type":"string"}},"type":"object"},"ChangeRestaurantContactsRequest":{"description":"Request containing new restaurant and owner contact details","example":{"ownerMobileNumber":"+14151231234","restaurantEmailAddress":"super-kebab@gmail.com","restaurantPhoneNumber":"+14151231234"},"properties":{"ownerMobileNumber":{"description":"Restaurant owner mobile phone number in E.164 format.","type":"string"},"restaurantEmailAddress":{"description":"Restaurant email address","type":"string"},"restaurantPhoneNumber":{"description":"Restaurant phone number in E.164 format.","type":"string"}},"type":"object"},"ChangeRestaurantLogoRequest":{"description":"Request containing path to new logo file that was  uploaded to AWS S3 bucket","example":{"fileKey":"ASIASJNB7IVSWQWRLQEQ_logo.jpeg"},"properties":{"fileKey":{"description":"Path to the file that was uploaded to the AWS S3 bucket","type":"string"}},"type":"object"},"ChangeRestaurantMenuItemsRequest":{"description":"Request containing information about what to change in the restaurant menu (item/section/category)","example":{"containsAllergensInfomation":true,"message":"Change name from \"Meat burger\" to \"Vegan burger\""},"properties":{"containsAllergensInfomation":{"description":"The value indicating whether request has changes of allergen information","type":"boolean"},"message":{"description":"The message with the details of what needs to be changed in the menu (item/section/category)","type":"string"}},"type":"object"},"ChangeRestaurantMenuPricesRequest":{"description":"Request containing information about restaurant menu price changes","example":{"fileKeys":["3c81dq0k9bhj1bn_menu_1.pdf","1rhj7qhr6fhjgbm_menu_2.pdf"],"message":"Change the price of \"Meat burger\" from 5$ to 7$"},"properties":{"fileKeys":{"description":"Array of paths to the updated menu files that Were uploaded to the AWS S3 bucket","items":{"description":"Path to the file that was uploaded to the certain AWS S3 bucket","type":"string"},"maxLength":10,"type":"array"},"message":{"description":"The message with the details of what prices need to be changed","type":"string"}},"type":"object"},"ChannelSubscriptions":{"properties":{"subscribedChannels":{"description":"The list of channels that the consumer should only be subscribed to.","items":{"$ref":"#/components/schemas/CommunicationChannels"},"type":"array"}},"type":"object"},"ChannelSubscriptionsWithDerivedField":{"properties":{"isDefault":{"description":"Are these channel subscriptions the default or have they been set elsewhere. This is a read-only derived field.","type":"boolean"},"subscribedChannels":{"description":"The list of channels that are subscribed","items":{"$ref":"#/components/schemas/CommunicationChannels"},"type":"array"}},"type":"object"},"CheckedInState":{"description":"The state of a courier on a shift. A courier might be checked in or not.","enum":["CHECKED_IN","NOT_CHECKED_IN"],"type":"string"},"Checkout404Error":{"description":"An HTTP 404 error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults.","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"description":"Details about the error that may assist you in resolving the issue.","nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error.","enum":["TENANT_NOT_SUPPORTED","CHECKOUT_NOT_FOUND"],"nullable":false,"type":"string"}},"required":["description","errorCode"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"Checkout409Error":{"description":"An HTTP 409 error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults .","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"description":"Details about the error that may assist you in resolving the issue.","nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error.","enum":["CHECKOUT_INVALID"],"nullable":false,"type":"string"}},"required":["description","errorCode"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"CheckoutAction":{"description":"Action data needed to make payment for payment method in use. This data is dependant on the Payment Service Provider and payment method. When used for checkout where fraud-check is required, device-id, payer email and payer identifier should be provided.","properties":{"data":{"additionalProperties":{"type":"string"},"description":"Action data dictionary. Key value pairs required to make payment.","example":{"braintreeDeviceData":"someescapedjson","deviceId":"somedeviceid","nonce":"acbd2334","payerEmail":"someemail@paypal.com","payerId":"somepaypalpayerid12345"},"type":"object"},"type":{"description":"Identifier for the type of action data for the payment method dependant on paymentOptionType.","type":"string"}},"required":["type","data"],"type":"object"},"CheckoutDefaultError":{"description":"A default HTTP error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults.","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"}},"required":["description"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"CheckoutGet400Error":{"description":"An HTTP 400 error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults.","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"description":"Details about the error that may assist you in resolving the issue.","nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error.","enum":["TENANT_INVALID","CHECKOUT_ID_INVALID"],"nullable":false,"type":"string"}},"required":["description","errorCode"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"CheckoutGetResponse":{"description":"Properties apply to all supported country codes, except where specified.","properties":{"customer":{"description":"Details of the customer making the purchase.\n\nDetails of the customer will need to be submitted to the service. No default values will be set.\n","nullable":false,"properties":{"firstName":{"description":"Customer's first name. \n\nAlso known as Given Name(s).\n","maxLength":100,"minLength":1,"nullable":true,"type":"string"},"lastName":{"description":"Customer's last name (Optional).\n\nAlso known as Family Name.\n","maxLength":100,"minLength":0,"nullable":true,"type":"string"},"phoneNumber":{"description":"Customer's phone number.\n\nA phone number can be represented in:\n  - E.164 format e.g. +447777111111 or;\n  - Local format of submitted tenant e.g. 07777111111.\n\nE.164 formatted phone numbers are preferred.\n","maxLength":16,"minLength":3,"nullable":true,"type":"string"}},"type":"object"},"fulfilment":{"description":"How and when the items will be received by the customer.","nullable":false,"properties":{"location":{"description":"The destination the customer wants to receive the order.\n\nThis only applies to purchases with a delivery service type.\n","nullable":true,"properties":{"address":{"description":"The postal address where the customer wants to receive the order.","nullable":true,"properties":{"administrativeArea":{"description":"Geographical region of this address. \n\nAlso known as County or State.\n\nRequired in Australia (AU) only for an order to be fulfilled.\n","maxLength":50,"minLength":1,"nullable":true,"type":"string"},"lines":{"description":"One or more lines representing the street address.","items":{"description":"Represents part of a street address.","maxLength":100,"minLength":1,"nullable":false,"type":"string"},"maxItems":4,"minItems":0,"nullable":false,"type":"array"},"locality":{"description":"The locality of this address.\n\nAlso known as Town or City.\n","maxLength":50,"minLength":1,"nullable":true,"type":"string"},"postalCode":{"description":"Postal code of this address.","maxLength":50,"minLength":1,"nullable":true,"type":"string"}},"type":"object"},"geolocation":{"description":"The coordinates of a geographical location where the customer wants to receive the order.\n\nRequired in Australia (AU) and New Zealand (NZ) only for an order to be fulfilled.\n","nullable":true,"properties":{"latitude":{"description":"The latitude of the geographical location.","format":"decimal","nullable":false,"type":"number"},"longitude":{"description":"The longitude of the geographical location.","format":"decimal","nullable":false,"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"time":{"description":"Time the customer wants to receive the order i.e. when order is fulfilled.","nullable":true,"properties":{"asap":{"description":"If the order should be fulfilled as soon as possible (ASAP).\n\nASAP may not be fulfillable.\n\nDefault is false.\n","nullable":false,"type":"boolean"},"scheduled":{"description":"Scheduled time the customer wants the order to be fulfilled.\n\nIf ASAP is selected and fulfillable, this will be set to the next available fulfilment time.\n","nullable":true,"properties":{"from":{"description":"Earliest time the customer wants the order to be fulfilled represented in ISO 8601 UTC (Zulu Time).","nullable":false,"type":"string"},"to":{"description":"Latest time the customer wants the order to be fulfilled represented in ISO 8601 UTC (Zulu Time). \n\nThis time must be greater than or equal to the from time.\n","nullable":false,"type":"string"}},"required":["from","to"],"type":"object"}},"required":["asap"],"type":"object"}},"type":"object"},"isFulfillable":{"description":"Whether the proposed order can be placed.","nullable":false,"type":"boolean"},"issues":{"description":"One or more issues associated the proposed order, that may impact whether it can be placed.","items":{"$ref":"#/components/schemas/CheckoutIssue","description":"Represents a single issue associated with the proposed order.","nullable":false},"maxItems":18,"minItems":0,"nullable":false,"type":"array"},"restaurant":{"description":"The restaurant selling the items to be purchased.","nullable":false,"properties":{"availabilityId":{"deprecated":true,"description":"Unique identifier to identify when item(s) are available for ordering.\n","nullable":false,"type":"string"},"id":{"description":"Unique identifier for the restaurant.","nullable":false,"type":"string"}},"required":["id","availabilityId"],"type":"object"},"serviceType":{"description":"How the order will be dispatched.","enum":["delivery","collection"],"nullable":false,"type":"string"}},"required":["restaurant","serviceType","customer","fulfilment","isFulfillable","issues"],"type":"object"},"CheckoutIssue":{"discriminator":{"mapping":{"ADDITIONAL_ITEMS_REQUIRED":"#/components/schemas/CheckoutIssue_AdditionalItemsRequired","ADDRESS_LINES_REQUIRED":"#/components/schemas/CheckoutIssue_AddressLinesRequired","ADMINISTRATIVE_AREA_REQUIRED":"#/components/schemas/CheckoutIssue_AdministrativeAreaRequired","AGE_VERIFICATION_FAILED":"#/components/schemas/CheckoutIssue_AgeVerificationFailed","DATE_OF_BIRTH_REQUIRED":"#/components/schemas/CheckoutIssue_DateOfBirthRequired","FIRST_NAME_REQUIRED":"#/components/schemas/CheckoutIssue_FirstNameRequired","FULFILMENT_TIME_REQUIRED":"#/components/schemas/CheckoutIssue_FulfilmentTimeRequired","FULFILMENT_TIME_UNAVAILABLE":"#/components/schemas/CheckoutIssue_FulfilmentTimeUnavailable","GEOLOCATION_REQUIRED":"#/components/schemas/CheckoutIssue_GeolocationRequired","ITEMS_UNORDERABLE":"#/components/schemas/CheckoutIssue_ItemsUnorderable","LOCALITY_REQUIRED":"#/components/schemas/CheckoutIssue_LocalityRequired","LOCATION_UNDELIVERABLE":"#/components/schemas/CheckoutIssue_LocationUndeliverable","MINIMUM_ORDER_VALUE_NOT_MET":"#/components/schemas/CheckoutIssue_MinimumOrderValueNotMet","PHONE_NUMBER_REQUIRED":"#/components/schemas/CheckoutIssue_PhoneNumberRequired","POSTAL_CODE_REQUIRED":"#/components/schemas/CheckoutIssue_PostalCodeRequired","RESTAURANT_NOT_TAKING_ORDERS":"#/components/schemas/CheckoutIssue_RestaurantNotTakingOrders","SERVICE_TYPE_UNAVAILABLE":"#/components/schemas/CheckoutIssue_ServiceTypeUnavailable"},"propertyName":"code"},"properties":{"code":{"description":"The issue code","enum":["RESTAURANT_NOT_TAKING_ORDERS","SERVICE_TYPE_UNAVAILABLE","ITEMS_UNORDERABLE","ADDITIONAL_ITEMS_REQUIRED","MINIMUM_ORDER_VALUE_NOT_MET","FULFILMENT_TIME_UNAVAILABLE","LOCATION_UNDELIVERABLE","AGE_VERIFICATION_FAILED","FIRST_NAME_REQUIRED","PHONE_NUMBER_REQUIRED","DATE_OF_BIRTH_REQUIRED","FULFILMENT_TIME_REQUIRED","ADDRESS_LINES_REQUIRED","LOCALITY_REQUIRED","ADMINISTRATIVE_AREA_REQUIRED","POSTAL_CODE_REQUIRED","GEOLOCATION_REQUIRED"],"nullable":false,"type":"string"}},"required":["code"],"type":"object"},"CheckoutIssue_AdditionalItemsRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The collection of items are not orderable in their current state. Items need to be added."}}},"CheckoutIssue_AddressLinesRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the fulfilment address lines is required to fulfil an order."}}},"CheckoutIssue_AdministrativeAreaRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the fulfilment address administrative area is required to fulfil an order.\n\nOccurs in Australia (AU) only.\n"}}},"CheckoutIssue_AgeVerificationFailed":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The order cannot proceed because the customer has failed the required age verification check.\n\nOccurs in Australia (AU) and New Zealand (NZ) only.\n"}}},"CheckoutIssue_DateOfBirthRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the customer's date of birth is required to fulfil an order.\n\nOccurs in Australia (AU) and New Zealand (NZ) only.\n"}}},"CheckoutIssue_FirstNameRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the customer's first name is required to fulfil an order."}}},"CheckoutIssue_FulfilmentTimeRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that a fulfilment time is required to fulfil an order."}}},"CheckoutIssue_FulfilmentTimeUnavailable":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The selected fulfilment time is no longer available. A new fulfilment time may be available for selection."}}},"CheckoutIssue_GeolocationRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the fulfilment geolocation is required to fulfil an order.\n\nOccurs in Australia (AU) and New Zealand (NZ) only.\n"}}},"CheckoutIssue_ItemsUnorderable":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The collection of items are not orderable."}}},"CheckoutIssue_LocalityRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the fulfilment address locality is required to fulfil an order."}}},"CheckoutIssue_LocationUndeliverable":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The restaurant is unable to deliver to this location."}}},"CheckoutIssue_MinimumOrderValueNotMet":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"properties":{"additionalSpendRequired":{"description":"The amount the customer needs to spend to meet minimum order value. This is in the smallest unit of local currency e.g. pence.","format":"integer","nullable":false,"type":"number"},"currency":{"description":"The currency in which the value amounts are returned represented in ISO 4217 format.","nullable":false,"type":"string"},"minimumOrderValue":{"description":"The minimum order value required to complete an order. This is in the smallest unit of local currency e.g. pence.","format":"integer","nullable":false,"type":"number"}},"required":["currency","minimumOrderValue","additionalSpendRequired"],"type":"object"}],"properties":{"code":{"description":"The checkout does not meet the minimum order value."}}},"CheckoutIssue_PhoneNumberRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the customer's phone number is required to fulfil an order."}}},"CheckoutIssue_PostalCodeRequired":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"Indicates that the fulfilment postal code is required to fulfil an order."}}},"CheckoutIssue_RestaurantNotTakingOrders":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The restaurant being ordered from is no longer taking orders. Either the restaurant is not offline or is no longer available on the platform."}}},"CheckoutIssue_ServiceTypeUnavailable":{"allOf":[{"$ref":"#/components/schemas/CheckoutIssue"},{"additionalProperties":false,"type":"object"}],"properties":{"code":{"description":"The selected service type is not available. The restaurant may still be available to order from with a different service type."}}},"CheckoutRequest":{"description":"Details needed to make a payment.","properties":{"action":{"$ref":"#/components/schemas/CheckoutAction","description":"Action data needed to make payment for payment method in use. This data is dependant on the Payment Service Provider and payment method. When used for checkout where fraud-check is required, device-id, payer email and payer identifier should be provided.","type":"object"},"paymentOptionId":{"description":"Token to use for saved card payment. Tokens retrieved from order payment options or basket payment options calls on Public API.","type":"string"},"paymentOptionType":{"description":"Identifier used to determine method of payment.","enum":["AccountCredit","AndroidPay","ApplePay","Card","Cash","GooglePay","PayPal","SavedCard","VCO"],"type":"string"},"voucherCode":{"description":"Voucher code to apply to order.","type":"string"}},"required":["paymentOptionType"],"type":"object"},"CheckoutResponse":{"description":"The result of a payment attempt.","properties":{"orderId":{"description":"The Id of the order.","type":"string"},"result":{"description":"The result of payment attempt. 2xxxx = successful payment. 4xxxxx = validation error, 5xxxx = server error","enum":["20000","40000","50000"],"type":"string"},"tenant":{"description":"The tenant associated with the consumer.","type":"string"},"timestamp":{"description":"The UTC timestamp of the date and time that the response was generated at.","format":"date-time","type":"string","x-api-version-from":"2019-04"}},"type":"object"},"CheckoutUpdate400Error":{"description":"An HTTP 400 error response","properties":{"fault":{"additionalProperties":false,"description":"A list of values that helps identify this response back to logs, so we can easily find faults.","nullable":true,"properties":{"errors":{"description":"List of errors that may assist you in resolving the issues.","items":{"additionalProperties":false,"description":"Details about the error that may assist you in resolving the issue.","nullable":false,"properties":{"description":{"description":"Specific details about the error that may assist you in resolving the issue.","nullable":false,"type":"string"},"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error.","enum":["TENANT_INVALID","CHECKOUT_ID_INVALID","INVALID_REQUEST","FIRST_NAME_INVALID","LAST_NAME_INVALID","PHONE_NUMBER_INVALID","DATE_OF_BIRTH_INVALID","FULFILMENT_TIME_INVALID","ADDRESS_LINES_INVALID","LOCALITY_INVALID","ADMINISTRATIVE_AREA_INVALID","POSTAL_CODE_INVALID","GEOLOCATION_INVALID","DELIVERY_NOTE_INVALID"],"nullable":false,"type":"string"}},"required":["description","errorCode"],"type":"object"},"nullable":false,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","nullable":false,"type":"string"},"traceId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated.","nullable":false,"type":"string"}},"required":["faultId","traceId","errors"],"type":"object"}},"type":"object"},"CheckoutUpdateRequest":{"description":"Properties apply to all supported country codes, except where specified.\n\nWe do not support a PATCH request on the root path and a 400 status code will be returned.\n","properties":{"customer":{"description":"Details of the customer making the purchase.","nullable":true,"properties":{"dateOfBirth":{"description":"Customer's date of birth represented in ISO 8601 format. If a time is submitted, it will be ignored.\n\nRequired in Australia (AU) and New Zealand (NZ) only for fulfilling an order that contain items being purchased that require age verification.\n","nullable":true,"type":"string"},"firstName":{"description":"Customer's first name. \n\nAlso known as Given Name(s).\n","maxLength":100,"minLength":1,"nullable":true,"type":"string"},"lastName":{"description":"Customer's last name (Optional). \n\nAlso known as Family Name.\n","maxLength":100,"minLength":0,"nullable":true,"type":"string"},"phoneNumber":{"description":"Customer's phone number.\n\nA phone number can be represented in:\n  - E.164 format e.g. +447777111111 or;\n  - Local format of submitted tenant e.g. 07777111111.\n\nE.164 formatted phone numbers are preferred.\n","maxLength":16,"minLength":3,"nullable":true,"type":"string"}},"type":"object"},"fulfilment":{"description":"How and when the items will be received by the customer.","nullable":true,"properties":{"location":{"description":"The destination the customer wants to receive the order.\n\nThis only applies to purchases with a delivery service type.\n","nullable":true,"properties":{"address":{"description":"The postal address where the customer wants to receive the order.","nullable":true,"properties":{"administrativeArea":{"description":"Geographical region of this address. \n\nAlso known as County or State.\n\nRequired in Australia (AU) only for an order to be fulfilled.\n","maxLength":50,"minLength":1,"nullable":true,"type":"string"},"lines":{"description":"One or more lines representing the street address.","items":{"description":"Represents part of a street address.","maxLength":100,"minLength":1,"nullable":false,"type":"string"},"maxItems":4,"minItems":1,"nullable":true,"type":"array"},"locality":{"description":"The locality of this address.\n\nAlso known as Town or City.\n","maxLength":50,"minLength":1,"nullable":true,"type":"string"},"postalCode":{"description":"Postal code of this address.","maxLength":50,"minLength":1,"nullable":true,"type":"string"}},"type":"object"},"geolocation":{"description":"The coordinates of a geographical location where the customer wants to receive the order.\n\nRequired in Australia (AU) and New Zealand (NZ) only for an order to be fulfilled.\n","nullable":true,"properties":{"latitude":{"description":"The latitude of the geographical location.","format":"decimal","nullable":false,"type":"number"},"longitude":{"description":"The longitude of the geographical location.","format":"decimal","nullable":false,"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"time":{"description":"Time the customer wants to receive the order i.e. when order is fulfilled.","nullable":true,"properties":{"asap":{"description":"If the order should be fulfilled as soon as possible (ASAP).\n\nASAP may not be fulfillable.\n\nDefault is false.\n","nullable":false,"type":"boolean"},"scheduled":{"description":"Scheduled time the customer wants the order to be fulfilled.\n\nThe scheduled time will be ignored if ASAP is selected.\n","nullable":true,"properties":{"from":{"description":"Earliest time the customer wants the order to be fulfilled represented in ISO 8601 UTC (Zulu Time).","nullable":false,"type":"string"},"to":{"description":"Latest time the customer wants the order to be fulfilled represented in ISO 8601 UTC (Zulu Time). \n\nThis time must be greater than or equal to the from time.\n","nullable":false,"type":"string"}},"required":["from","to"],"type":"object"}},"type":"object"}},"type":"object"},"notes":{"description":"Instructions about the order that the customer wants to submit.","items":{"description":"Instructions about the order that the customer wants to submit.","nullable":false,"properties":{"note":{"description":"The contents of the note.","maxLength":250,"minLength":0,"nullable":false,"type":"string"},"type":{"description":"The type of note.","enum":["delivery"],"nullable":false,"type":"string"}},"required":["type","note"],"type":"object"},"maxItems":1,"minItems":0,"nullable":true,"type":"array"}},"type":"object"},"CheckoutUpdateResponse":{"properties":{"isFulfillable":{"description":"Whether the proposed order can be placed.","nullable":false,"type":"boolean"},"issues":{"description":"One or more issues associated the proposed order, that may impact whether it can be placed.","items":{"$ref":"#/components/schemas/CheckoutIssue","description":"Represents a single issue associated with the proposed order.","nullable":false},"maxItems":18,"minItems":0,"nullable":false,"type":"array"}},"required":["isFulfillable","issues"],"type":"object"},"ClaimResolution":{"description":"Representation of the decision made about a claim","example":{"decision":"Accepted","resolvedChannel":"PartnerCentre","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":1900},"nullable":true,"properties":{"decision":{"description":"Indicates whether the claim is accepted, partially accepted or rejected - claim is partially accepted if at least one of the claimed items is accepted","enum":["Accepted","PartiallyAccepted","Rejected"],"type":"string"},"resolvedChannel":{"description":"Channel which was used to resolved the claim","type":"string"},"resolvedDate":{"description":"Date when decision on the claim was submitted","format":"date-time","type":"string"},"totalClaimedAccepted":{"description":"Total claimed money accepted by the restaurant in smallest unit of relevant currency","type":"number"}},"type":"object"},"ClaimResponse":{"$ref":"#/components/schemas/OrderClaim","description":"Response containing a single claim","example":{"affectedItems":[{"additionalContext":"Potato skin was damaged","decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000},{"additionalContext":"Pizza was damaged too","decision":"Accepted","id":"123iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Pizza","quantity":1,"reference":"productid%t5y6574596","totalClaimed":1900,"unitPrice":2000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"451226580","id":"2f749442-a62a-abcd-8623-04202878e034","issueType":"Damaged","orderId":"r23tqoxdoeupdx9w8evorw","resolution":{"decision":"PartiallyAccepted","resolvedChannel":"PartnerCentre","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":1900},"restaurantResponse":{"items":[{"decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"},{"decision":"Accepted","id":"123iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"}],"justification":{"comments":"Not our fault at all","reason":"Other"}},"state":"Closed","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":3800},"type":"object"},"ClaimsResponse":{"description":"Response containing claims for a restaurant which match the given filter","example":{"claims":[{"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"954226580","id":"z2749442-a62a-abcd-8623-04202878e034","issueType":"LateOrder","orderId":"z27tqoxdoeupdx9w8evorw","resolution":{"decision":"Accepted","resolvedChannel":"OrderPad","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":4000},"restaurantResponse":{"decision":"Accepted","justification":null},"state":"Closed","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":4000},{"affectedItems":[{"additionalContext":null,"decision":"NotDecided","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000},{"additionalContext":null,"decision":"NotDecided","id":"123iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Pizza","quantity":1,"reference":"productid%t5y6574596","totalClaimed":1900,"unitPrice":2000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"451226580","id":"2f749442-a62a-abcd-8623-04202878e034","issueType":"Damaged","orderId":"r23tqoxdoeupdx9w8evorw","resolution":null,"restaurantResponse":null,"state":"Open","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":3800},{"affectedItems":[{"additionalContext":"Potato skin was cold","decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"151226580","id":"1f749442-a62a-abcd-8623-04202878e034","issueType":"Cold","orderId":"a23tqoxdoeupdx9w8evorw","resolution":{"decision":"Rejected","resolvedChannel":"PartnerCentre","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":0},"restaurantResponse":{"items":[{"decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"}],"justification":{"comments":null,"reason":"OrderWasHot"}},"state":"Closed","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":1900},{"affectedItems":[{"additionalContext":"Potato skin was cold","decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"951226580","id":"zf749442-a62a-abcd-8623-04202878e034","issueType":"Cold","orderId":"z23tqoxdoeupdx9w8evorw","resolution":{"decision":"Accepted","resolvedChannel":"OrderPad","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":1900},"restaurantResponse":{"items":[{"decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"}],"justification":null},"state":"Closed","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":1900},{"affectedItems":[{"additionalContext":"Potato skin was cold","decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000},{"additionalContext":"Meat was terribly cold","decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc3","name":"Meat","quantity":1,"reference":"productid%4t56574593","totalClaimed":2900,"unitPrice":3000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.554Z","friendlyOrderReference":"951226588","id":"zf749442-a62a-abcd-8623-04202878e038","issueType":"Cold","orderId":"z23tqoxdoeupdx9w8evorz","resolution":{"decision":"PartiallyAccepted","resolvedChannel":"OrderPad","resolvedDate":"2025-04-15T13:52:07.554Z","totalClaimedAccepted":1900},"restaurantResponse":{"items":[{"decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"},{"decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc3"}],"justification":null},"state":"Closed","submittedDate":"2025-04-15T13:52:07.554Z","totalClaimed":1900}]},"properties":{"claims":{"description":"Array with claims","items":{"$ref":"#/components/schemas/OrderClaim"},"type":"array"}},"type":"object"},"ClientOrderState":{"description":"The state of the client order","enum":["AtCounter","InKitchen","Ready","Collected","WithDriver","Delivered","RejectedTooBusy","RejectedTooFar","Cancelled","Received","RejectedNoDriverAvailable","RejectedMenuItemsOutOfStock","RejectedOther","TestOrderDelete","CancelledAcknowledged","CancelledUnacknowledged","CancelledDismissed","Complete"],"type":"string"},"CodeType":{"description":"","enum":[0,1,2],"type":"integer","x-enumNames":["Unknown","DynamicSingleUse","StaticMultipleUse"]},"CollectionActionType":{"enum":["REPLACE","APPEND","PREPEND","REMOVE"],"type":"string"},"CommunicationChannels":{"enum":["email","sms","push"],"type":"string"},"CommunicationPreferences":{"properties":{"marketing":{"$ref":"#/components/schemas/ChannelSubscriptionsWithDerivedField","description":"The marketing communication preferences.","type":"object"}},"type":"object"},"CommunicationTypes":{"enum":["marketing"],"type":"string"},"CompensationReason":{"additionalProperties":false,"properties":{"code":{"$ref":"#/components/schemas/CompensationReasonCode","description":"Compensation reason code"},"comments":{"description":"Additional comments","nullable":true,"type":"string"},"description":{"description":"Additional description","nullable":true,"type":"string"}},"type":"object"},"CompensationReasonCode":{"description":"Compensation reason code","enum":["Unknown","NotSet","BeingPrepared","OnItsWay","Delivered"],"type":"string"},"ConflictMarketingResponse":{"$ref":"#/components/schemas/MarketingErrorResponse","additionalProperties":false,"description":"409 Conflict Returned","example":{"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","message":"A marketing campaign already exists with this configuration"}},"ConnectTokenRequest":{"properties":{"acr_values":{"description":"Allows passing in additional authentication related information for the `password` grant type - the following  are special proprietary `acr_values`:\n- `idp:name_of_idp` bypasses the login/home realm screen and forwards the user directly to the selected identity provider (if allowed per client configuration)\n- `tenant:name_of_tenant` can be used to pass a tenant name to the token endpoint","type":"string"},"client_id":{"description":"client identifier","type":"string"},"client_secret":{"description":"The client secret - either in the post body, or as a basic authentication header.","type":"string"},"code":{"description":"The authorization code (required for `authorization_code` grant type)","type":"string"},"code_verifier":{"description":"PKCE proof key","type":"string"},"device_code":{"description":"The device code (required for `urn:ietf:params:oauth:grant-type:device_code` grant type)","type":"string"},"grant_type":{"description":"The grant type which determines the type of flow. A custom value is also allowed.","enum":["authorization_code","client_credentials","password","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"type":"string"},"password":{"description":"Resource owner password (required for `password` grant type)","type":"string"},"redirect_uri":{"description":"Required for the `authorization_code` grant type","type":"string"},"refresh_token":{"description":"The refresh token (required for `refresh_token` grant type)","type":"string"},"scope":{"description":"One or more registered scopes. If not specified, a token for all explicitly  allowed scopes will be issued.","type":"string"},"username":{"description":"Resource owner username (required for `password` grant type)","type":"string"}},"required":["client_id","grant_type"]},"ConnectTokenResponse":{"properties":{"access_token":{"description":"The access token. This is a JSON web token (JWT) encoded as Base64 URL-encoding. This is returned if the `response_type` included `token`.","type":"string"},"expires_in":{"description":"The number of seconds until the access token expires.","type":"integer"},"id_token":{"description":"An ID token. This is a JSON web token (JWT) encoded as Base64 URL-encoding. \nThis is returned if the `response_type` included `id_token`.","type":"string"},"scope":{"description":"The original scopes you provided.","type":"string"},"token_type":{"description":"This is always `bearer`, and is returned only  when `token` is specified as a `response_type`.","type":"string"}},"type":"object"},"ConsumerCreate":{"example":{"emailAddress":"consumer@just-eat.com","firstName":"Bob","lastName":"Smith","password":"Pa55word","registrationSource":"Native"},"properties":{"emailAddress":{"description":"The consumer's email address","format":"email","maxLength":160,"type":"string"},"firstName":{"description":"The consumer's first name","maxLength":160,"type":"string"},"lastName":{"description":"The consumer's last name","maxLength":160,"type":"string"},"marketingPreferences":{"$ref":"#/components/schemas/consumerMarketingPreference","description":"The selected marketing preferences for the consumer"},"password":{"description":"The consumer's password","maxLength":160,"minLength":4,"type":"string"},"registrationSource":{"default":"Native","description":"The registration source of the consumer. Australia and New Zealand only support Guest","enum":["Native","Guest"],"type":"string"}},"required":["emailAddress","firstName","lastName"],"type":"object"},"ConsumerCreateResponse":{"example":{"token":"SKgaDl0wZxnwjNgLxBnU646PDTquWLHOyPuyzidIZIg=","type":"otac"},"properties":{"token":{"description":"The One Time Access Code (OTAC)","type":"string"},"type":{"description":"The type of token. At the moment, this will only ever be a One Time Access Code (OTAC)\n","enum":["otac"],"type":"string"}},"required":["type","token"],"type":"object"},"ConsumerErrorResponse":{"properties":{"code":{"format":"int32","type":"integer"},"codeText":{"type":"string"}},"type":"object"},"ConsumerOffer":{"additionalProperties":false,"properties":{"campaignId":{"description":"The unique identifier of the offer campaign.","nullable":true,"type":"string"},"consumerSegment":{"$ref":"#/components/schemas/ConsumerSegment","description":"Consumer Segment to which offer applies","nullable":false},"offerId":{"description":"The unique identifier of the offer.","nullable":false,"type":"string"},"offerType":{"$ref":"#/components/schemas/ConsumerOfferType","description":"The type of the offer.","nullable":false},"priority":{"$ref":"#/components/schemas/ConsumerOffersPriority","description":"The offers priority dictates the order and combination approach when multiple offers are executed together.","nullable":false},"qualifyingConditions":{"$ref":"#/components/schemas/ConsumerOfferQualifyingConditions","description":"Conditions that must be met in order to get the offer.","nullable":true},"restaurantId":{"description":"The unique identifier of the restaurant providing the offers.","nullable":false,"type":"string"}},"required":["offerId","restaurantId","offerType","consumerSegment","priority"],"title":"ConsumerOffer","type":"object"},"ConsumerOfferNotification":{"example":{"campaignId":"CheekyTuesday","consumerSegment":"All","description":"Get one free","offerId":"12345c","offerType":"Percent","restaurantId":"1234567ds"},"properties":{"campaignId":{"description":"The unique identifier of the offer campaign.","nullable":true,"type":"string"},"consumerSegment":{"$ref":"#/components/schemas/ConsumerSegment","description":"Consumer Segment to which offer applies","nullable":false},"description":{"description":"The description of the offer.","nullable":true,"type":"string"},"offerId":{"description":"The unique identifier of the offer.","nullable":false,"type":"string"},"offerType":{"$ref":"#/components/schemas/ConsumerOfferType","description":"The type of the offer.","nullable":false},"restaurantId":{"description":"The unique identifier of the restaurant providing the offers.","nullable":false,"type":"string"}},"required":["offerId","restaurantId","offerType","consumerSegment"],"title":"ConsumerOfferNotification","type":"object"},"ConsumerOfferPrompt":{"allOf":[{"additionalProperties":false,"properties":{"description":{"description":"The description of offer to show in prompt for customer","type":"string"},"header":{"description":"The header to show in prompt for customer","nullable":true,"type":"string"},"title":{"description":"The title to show in prompt for customer","type":"string"}},"type":"object"}],"example":{"description":"We�ll apply the discount at checkout","header":"Free item","title":"Nice! You get this free with your order"}},"ConsumerOfferQualifyingConditions":{"additionalProperties":false,"example":{"minimumOrderValue":1000,"qualifyingProductCategories":[{"categoryId":"Sides111"}],"qualifyingProducts":[{"id":"FrenchFriesBig1"}]},"properties":{"minimumOrderValue":{"description":"The minimum order value required to be eligible for the Offer in smallest unit of relevant currency.","format":"integer","nullable":true,"type":"number"},"qualifyingProductCategories":{"description":"One of the products from category needed to be included in the basket to make offer applicable","items":{"$ref":"#/components/schemas/ConsumerOffersProductCategory"},"minItems":1,"nullable":true,"type":"array"},"qualifyingProducts":{"description":"One of those products needed to be included in the basket to make offer applicable","items":{"$ref":"#/components/schemas/ConsumerOffersProduct"},"minItems":1,"nullable":true,"type":"array"}},"title":"ConsumerOfferQualifyingConditions","type":"object"},"ConsumerOfferStampCardDiscount":{"additionalProperties":false,"properties":{"discountCode":{"description":"The unique code of the discount, acts as a lock object at payment stage","nullable":false,"type":"string"},"discountValue":{"description":"The discount value in smallest unit of relevant currency.","format":"integer","nullable":false,"type":"number"}},"required":["discountValue","discountCode"],"type":"object"},"ConsumerOfferType":{"enum":["Percent","FreeItem","Bogof","StampCard"],"type":"string"},"ConsumerOffer_Bogof":{"allOf":[{"$ref":"#/components/schemas/ConsumerOffer"},{"additionalProperties":false,"properties":{"productCategories":{"description":"One of the products from category needed to be included in the basket to make offer applicable.\nThe second occurrence of such product gets 100% discount","items":{"$ref":"#/components/schemas/ConsumerOffersProductCategory"},"minItems":1,"nullable":true,"type":"array"},"products":{"description":"One of those products needed to be included in the basket to make offer applicable.\nThe second occurrence of such product gets 100% discount","items":{"$ref":"#/components/schemas/ConsumerOffersProduct"},"minItems":1,"nullable":false,"type":"array"},"prompt":{"$ref":"#/components/schemas/ConsumerOfferPrompt","description":"A prompt displayed to consumer","nullable":false}},"required":["products","prompt"],"type":"object"}],"example":{"campaignId":"freeIceCream","consumerSegment":"All","offerId":"12345sd","offerType":"Bogof","products":[{"id":"iceCreamA"},{"id":"iceCreamB"},{"id":"iceCreamC"}],"prompt":{"description":"Ice Cream for free when you order Ice Cream","title":"Nice! You get this free with your order"},"restaurantId":"1234sd"}},"ConsumerOffer_FreeItem":{"allOf":[{"$ref":"#/components/schemas/ConsumerOffer"},{"additionalProperties":false,"properties":{"freeProduct":{"$ref":"#/components/schemas/ConsumerOffersProduct","deprecated":true,"description":"The product that gets 100% discount applied [Deprecated - use freeProducts instead]","nullable":false},"freeProducts":{"description":"One or more of those products gets 100% discount applied","items":{"$ref":"#/components/schemas/ConsumerOffersProduct"},"minItems":1,"nullable":false,"type":"array"},"maximumRedemptions":{"description":"The maximum number of discounted items for this offer","format":"integer","minimum":1,"nullable":false,"type":"number"},"prompt":{"$ref":"#/components/schemas/ConsumerOfferPrompt","description":"A prompt displayed to consumer","nullable":false},"qualifyingProducts":{"deprecated":true,"description":"One of those products needed to be included in the collection of products to make offer applicable [Deprecated - use `qualifyingConditions` instead]","items":{"$ref":"#/components/schemas/ConsumerOffersProduct"},"minItems":1,"nullable":false,"type":"array"}},"required":["qualifyingProducts","freeProduct","prompt"],"type":"object"}],"example":{"campaignId":"freePotato","consumerSegment":"All","freeProducts":[{"id":"PotatoId","preferableModifierIds":["ketchupModifierId"]}],"maximumRedemptions":1,"offerId":"12345sd","offerType":"FreeItem","prompt":{"description":"Potato for free when you order Ice Cream","title":"Nice! You get this free with your order"},"qualifyingConditions":{"qualifyingProducts":[{"id":"BigMacId"},{"id":"DoubleBigMacId"},{"id":"BigMacMenuId"}]},"restaurantId":"1234sd"}},"ConsumerOffer_Percent":{"allOf":[{"$ref":"#/components/schemas/ConsumerOffer"},{"additionalProperties":false,"properties":{"amount":{"description":"The percentage value discount","format":"decimal","nullable":false,"type":"number"},"qualifyingValue":{"deprecated":true,"description":"The minimum order value required to be eligible for the Offer in smallest unit of relevant currency. [Deprecated - use `qualifyingConditions` instead]","format":"integer","nullable":true,"type":"number"}},"required":["amount"],"type":"object"}],"example":{"amount":10,"qualifyingConditions":{"minimumOrderValue":1500}}},"ConsumerOffer_StampCard":{"allOf":[{"$ref":"#/components/schemas/ConsumerOffer"},{"additionalProperties":false,"properties":{"discounts":{"description":"The list of completed stamp card discounts","items":{"$ref":"#/components/schemas/ConsumerOfferStampCardDiscount"},"type":"array"}},"required":["discounts"],"type":"object"}]},"ConsumerOffersBasket":{"additionalProperties":false,"properties":{"basketItems":{"description":"The collection of the basket items.","items":{"$ref":"#/components/schemas/ConsumerOffersBasketItem"},"nullable":true,"type":"array"}},"title":"ConsumerOffersBasket","type":"object"},"ConsumerOffersBasketItem":{"additionalProperties":false,"example":{"productId":"BRGR123","quantity":1},"properties":{"productId":{"description":"The `ProductId` of basket item.","nullable":true,"type":"string"},"quantity":{"description":"The quantity of basket item.","format":"int32","nullable":true,"type":"integer"}},"title":"ConsumerOffersBasketItem","type":"object"},"ConsumerOffersNotificationsRequest":{"additionalProperties":false,"example":{"applicableDateTimeUtc":"2025-04-15T13:52:07.555Z","restaurantIds":["123456cc","123456aa","12335bb","12335dd","12335ee","12335ff","12335gg","12335hh","12335ii","12335jj","12335kk"]},"properties":{"applicableDateTimeUtc":{"description":"Overrides the current time for determining whether offers are active.\nEnables offers to be returned that have become\ninactive after the order was added to a consumer's basket.","example":"2025-04-15T13:52:07.555Z","format":"date-time","nullable":true,"type":"string"},"restaurantIds":{"description":"The identifiers of the restaurants. Allows offers to be returned for many restaurants.","items":{"type":"string"},"maxItems":150,"minItems":11,"type":"array"}},"required":["restaurantIds"],"title":"ConsumerOffersNotificationsRequest","type":"object"},"ConsumerOffersNotificationsResponse":{"description":"Holder of Consumer Offer Notifications","properties":{"offerNotifications":{"description":"Provide consumer offer notifications for given restaurants, containing offer description but not exact details like discount etc.","items":{"$ref":"#/components/schemas/ConsumerOfferNotification"},"type":"array"}},"title":"ConsumerOffersNotificationsResponse","type":"object"},"ConsumerOffersPriority":{"additionalProperties":false,"example":{"type":"Stackable","value":1},"properties":{"type":{"description":"All offers are evaluated based on type and priority value in descending order.\nUniversal offers are always executed. Exclusive offers are evaluated after Universal offers, the first Exclusive offer triggered will return effects\nIf an Exclusive offer is triggered, the Stackable offers will be skipped.","enum":["Exclusive","Stackable","Universal"],"type":"string"},"value":{"description":"The offers are evaluated based on priority in descending order. The first triggered will return effects","format":"integer","type":"number"}},"required":["value","type"],"title":"ConsumerOffersPriority","type":"object"},"ConsumerOffersProduct":{"additionalProperties":false,"example":{"id":"6 Chicken Nuggets","preferableModifierIds":["ketchupModifierId"]},"properties":{"id":{"description":"The unique identifier of the product.","type":"string"},"preferableModifierIds":{"description":"The collection of preselected modifiers for the item.","items":{"type":"string"},"nullable":true,"type":"array"},"showModifiersSelectionDialog":{"description":"Determinate if modifiers selection dialogue will be shown to customer.","type":"boolean"}},"required":["id"],"title":"ConsumerOffersProduct","type":"object"},"ConsumerOffersProductCategory":{"additionalProperties":false,"example":{"categoryId":"Pizza1234","categoryName":"Pizza"},"properties":{"categoryId":{"description":"The unique identifier of the product category.","type":"string"},"categoryName":{"description":"The name of the product category.","type":"string"},"preferableModifierIds":{"description":"The collection of preselected modifiers for the items in category.","items":{"type":"string"},"nullable":true,"type":"array"}},"required":["categoryId"],"title":"ConsumerOffersProductCategory","type":"object"},"ConsumerOffersRequest":{"additionalProperties":false,"example":{"applicableDateTimeUtc":"2025-04-15T13:52:07.555Z","consumerOffersBasket":{"basketItems":[{"productId":"BRGR123","quantity":1}]},"restaurantId":"asd12345"},"properties":{"applicableDateTimeUtc":{"description":"Overrides the current time for determining whether offers are active.\nEnables offers to be returned that for the time in future (e.g. Pre-order)","example":"2025-04-15T13:52:07.555Z","format":"date-time","type":"string"},"consumerId":{"description":"Global Consumer Id","nullable":true,"type":"string"},"consumerOffersBasket":{"$ref":"#/components/schemas/ConsumerOffersBasket","description":"The consumer basket content"},"restaurantId":{"description":"The identifier of the restaurant.","minLength":1,"type":"string"}},"required":["restaurantId","consumerOffersBasket"],"title":"ConsumerOffersRequest","type":"object"},"ConsumerOffersResponse":{"description":"Holder of consumer offers","example":{"offers":[{"campaignId":"CheekyTuesday","consumerSegment":"All","offerId":"12345sd","offerType":"Percent","priority":{"type":"Stackable","value":1},"qualifyingConditions":{"minimumOrderValue":15000},"restaurantId":"1234sd"},{"consumerSegment":"All","freeProducts":[{"id":"6 Chicken Nuggets","preferableModifierIds":["ketchupModifierId"]}],"offerId":"345sd","offerType":"FreeItem","priority":{"type":"Stackable","value":1},"prompt":{"description":"6 Nuggets for free when you order Big Mac","title":"Nice! You get this free with your order"},"qualifyingConditions":{"qualifyingProducts":[{"id":"BigMacId"},{"id":"DoubleBigMacId"},{"id":"BigMacMenuId"}]},"restaurantId":"1234sd"},{"campaignId":"freeIceCream","consumerSegment":"All","offerId":"345345sd","offerType":"Bogof","priority":{"type":"Stackable","value":1},"products":[{"id":"CookieDoughId"},{"id":"FishFoodId"},{"id":"ChocFudgeBrownieId"}],"prompt":{"description":"Get 2 for 1 on Any Ice Cream Company's 465ml","title":"Nice! You get this free with your order"},"restaurantId":"1234sd"}]},"properties":{"offers":{"description":"Provide applicable consumer offers based on provided `restaurantId` and basket content.","items":{"discriminator":{"mapping":{"Bogof":"#/components/schemas/ConsumerOffer_Bogof","FreeItem":"#/components/schemas/ConsumerOffer_FreeItem","Percent":"#/components/schemas/ConsumerOffer_Percent","StampCard":"#/components/schemas/ConsumerOffer_StampCard"},"propertyName":"offerType"},"oneOf":[{"$ref":"#/components/schemas/ConsumerOffer_FreeItem"},{"$ref":"#/components/schemas/ConsumerOffer_Percent"},{"$ref":"#/components/schemas/ConsumerOffer_StampCard"},{"$ref":"#/components/schemas/ConsumerOffer_Bogof"}]},"type":"array"}},"title":"ConsumerOffersResponse","type":"object"},"ConsumerOrderAddress":{"description":"A postal address.","properties":{"addressLines":{"description":"The lines of the address.","items":{"type":"string"},"type":"array"},"city":{"description":"The city or town.","type":"string"},"countryCode":{"description":"The ISO 3166-1 alpha-2 country code.","type":"string"},"locality":{"description":"The locality, such as a district or suburb, if any.","type":"string"},"location":{"$ref":"#/components/schemas/ConsumerOrderGeoposition"},"postalCode":{"description":"The postal code.","type":"string"},"region":{"description":"The region, such as a county, province or state.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderApplicationInfo":{"description":"Information about an application used to place an order.","properties":{"clientIdentifier":{"description":"The client identifier associated with the order, if any, such as a device Id or IP address.","type":"string"},"feature":{"description":"The name of the Just Eat feature that placed the order.","type":"string"},"name":{"description":"The name of the application that placed the order.","type":"string"},"userAgent":{"description":"The User Agent of the client that placed the order.","type":"string"},"version":{"description":"The version of the application that placed the order.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderBasketInfo":{"description":"Information about the items in the basket for an order.","properties":{"currencyCode":{"description":"The ISO-4217 currency code associated with the basket.","type":"string"},"discounts":{"additionalProperties":{"format":"double","type":"number"},"description":"The discounts applied to the basket, if any.","type":"object"},"fees":{"additionalProperties":{"format":"double","type":"number"},"description":"The fees applied to the basket, if any.","type":"object"},"items":{"description":"The items in the basket.","items":{"$ref":"#/components/schemas/ConsumerOrderBasketItem"},"type":"array"},"metadata":{"additionalProperties":{"type":"string"},"description":"Arbitrary metadata about the basket.","type":"object"},"offers":{"description":"The offer discounts applied to the basket.","items":{"$ref":"#/components/schemas/ConsumerOrderOffer"},"type":"array"},"subtotal":{"description":"The subtotal for the basket before any discounts or fees.","format":"double","type":"number"},"summary":{"$ref":"#/components/schemas/ConsumerOrderBasketSummary"},"tips":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderTipItem"},"description":"The tips associated with the basket.","type":"object"},"total":{"description":"The total value of the basket.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderBasketItem":{"description":"An item in a basket.","properties":{"bulkDiscounts":{"description":"The bulk discounts, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderBulkDiscount"},"type":"array"},"combinedPrice":{"description":"The combined price for the item, including any accessories and/or discounts.","format":"double","type":"number"},"description":{"description":"The description for the item.","type":"string"},"discounts":{"description":"The discounts, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderDiscount"},"type":"array"},"name":{"description":"The name of the item.","type":"string"},"optionalAccessories":{"description":"The optional meal part accessories, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderMealAccessory"},"type":"array"},"parts":{"description":"The parts of the meal, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderMealPart"},"type":"array"},"productId":{"description":"The product Id.","type":"string"},"requiredAccessories":{"description":"The required meal part accessories, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderMealAccessory"},"type":"array"},"synonym":{"description":"The synonym of the item.","type":"string"},"unitPrice":{"description":"The unit price for the item.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderBasketSummary":{"description":"A summary of the items in the basket for an order.","properties":{"items":{"description":"The items in the basket summary.","items":{"$ref":"#/components/schemas/ConsumerOrderBasketSummaryItem"},"type":"array"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderBasketSummaryItem":{"description":"A summarised item in a basket.","properties":{"accessories":{"description":"The accessories in the basket summary item.","items":{"$ref":"#/components/schemas/ConsumerOrderMealAccessory"},"type":"array"},"id":{"description":"The Id of the item, such as a product Id or meal part Id.","type":"string"},"items":{"description":"The items in the basket summary item.","items":{"$ref":"#/components/schemas/ConsumerOrderBasketSummaryItem"},"type":"array"},"name":{"description":"The name of the item.","type":"string"},"price":{"description":"The price of the item for the associated quantity.","format":"double","type":"number"},"quantity":{"description":"The quantity of the item.","format":"int32","type":"integer"},"synonym":{"description":"The synonym of the item.","type":"string"},"unitPrice":{"description":"The unit price of the item.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderBulkDiscount":{"description":"A bulk discount.","properties":{"amount":{"description":"The amount of the bulk discount.","format":"double","type":"number"},"name":{"description":"The name of the bulk discount.","type":"string"},"productTypeId":{"description":"The Id of the product type the discount applies to.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderConsumerInfo":{"description":"Information about a consumer.","properties":{"contactNumber":{"description":"The consumer's contact number.","type":"string"},"deliveryAddress":{"$ref":"#/components/schemas/ConsumerOrderAddress"},"email":{"description":"The consumer's email address.","type":"string"},"id":{"description":"The consumer Id.","type":"string"},"name":{"description":"The consumer's name.","type":"string"},"timeZone":{"description":"The IANA time zone Id the consumer is located in.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderConsumerReview":{"description":"A consumer's review of an order.","properties":{"comments":{"description":"Any comments left by the consumer in the review.","type":"string"},"scores":{"additionalProperties":{"format":"double","type":"number"},"description":"The scores given for the scored attributes of the review by the consumer.","type":"object"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderCuisineInfo":{"description":"Information about a restaurant cuisine.","properties":{"id":{"description":"The Id of the cuisine.","type":"string"},"name":{"description":"The name of the cuisine.","type":"string"},"rank":{"description":"The ranking for the cuisine.","format":"int32","type":"integer"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderDateTimeRange":{"description":"A range of date and time values.","properties":{"end":{"description":"The end of the range.","format":"date-time","type":"string"},"start":{"description":"The start of the range.","format":"date-time","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderDiscount":{"description":"A discount.","properties":{"amount":{"description":"The amount of the discount.","format":"double","type":"number"},"name":{"description":"The name of the discount.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderErrorResponse":{"description":"An error response.","properties":{"_links":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderLink"},"description":"The links information, if any.","type":"object"},"detail":{"description":"The optional error detail.","type":"object"},"errorCode":{"description":"The API error code, if any.","type":"string"},"errorId":{"description":"The error Id.","type":"string"},"fingerprint":{"description":"The error fingerprint, if available.","type":"string"},"message":{"description":"The error message.","type":"string"},"requestId":{"description":"The request Id, if available.","type":"string"},"statusCode":{"description":"The HTTP status code.","format":"int32","type":"integer"},"timestamp":{"description":"The timestamp of the error.","format":"date-time","type":"string"},"version":{"description":"The version of the API that generated the error.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderGeoposition":{"description":"A geoposition.","properties":{"latitude":{"description":"The latitude.","format":"double","type":"number"},"longitude":{"description":"The longitude.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderImage":{"description":"An image.","properties":{"height":{"description":"The optional height of the image, in pixels.","format":"int32","nullable":true,"type":"integer"},"imageType":{"description":"The type of the image, such as a logo.","type":"string"},"uri":{"description":"The URI of the image.","type":"string"},"width":{"description":"The optional width of the image, in pixels.","format":"int32","nullable":true,"type":"integer"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderLink":{"description":"A link to an API resource.","properties":{"href":{"description":"The URL of the link.","type":"string"},"templated":{"description":"A value indicating whether the URL is templated.","type":"boolean"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderMealAccessory":{"description":"An accessory for a meal.","properties":{"accessoryId":{"description":"The accessory Id.","type":"string"},"name":{"description":"The name of the accessory.","type":"string"},"quantity":{"description":"The quantity of the accessory.","format":"int32","type":"integer"},"unitPrice":{"description":"The unit price of the accessory.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderMealPart":{"description":"A part of a meal.","properties":{"groupId":{"description":"The group Id.","type":"string"},"mealPartId":{"description":"The meal part Id.","type":"string"},"name":{"description":"The name of the meal part.","type":"string"},"optionalAccessories":{"description":"The optional meal part accessories, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderMealAccessory"},"type":"array"},"requiredAccessories":{"description":"The required meal part accessories, if any.","items":{"$ref":"#/components/schemas/ConsumerOrderMealAccessory"},"type":"array"},"synonym":{"description":"The synonym of the meal part.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderOffer":{"description":"An offer applied to a basket.","properties":{"id":{"description":"The offer Id.","type":"string"},"offerAmount":{"description":"The value of the offer.","format":"double","type":"number"},"offerType":{"description":"The type of the offer.","type":"string"},"qualifyingValue":{"description":"The qualifying value for the offer.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderOrder":{"description":"An order.","properties":{"_links":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderLink"},"description":"The links information, if any.","type":"object"},"application":{"$ref":"#/components/schemas/ConsumerOrderApplicationInfo"},"basket":{"$ref":"#/components/schemas/ConsumerOrderBasketInfo"},"consumer":{"$ref":"#/components/schemas/ConsumerOrderConsumerInfo"},"friendlyId":{"description":"The friendly order Id.","type":"string"},"id":{"description":"The Id of the order.","type":"string"},"information":{"$ref":"#/components/schemas/ConsumerOrderOrderInfo"},"metadata":{"additionalProperties":{"type":"string"},"description":"Arbitrary metadata about the order.","type":"object"},"payment":{"$ref":"#/components/schemas/ConsumerOrderPaymentInfo"},"restaurant":{"$ref":"#/components/schemas/ConsumerOrderRestaurantInfo"},"review":{"$ref":"#/components/schemas/ConsumerOrderReviewInfo"},"status":{"$ref":"#/components/schemas/ConsumerOrderStatusInfo"},"tenant":{"description":"The tenant associated with the order.","type":"string"},"timestamp":{"description":"The UTC timestamp of the date and time that the response was generated at.","format":"date-time","type":"string","x-api-version-from":"2019-04"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderOrderHistory":{"description":"The order history of a consumer.","properties":{"_links":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderLink"},"description":"The links information, if any.","type":"object"},"_pagination":{"$ref":"#/components/schemas/ConsumerOrderPaginationInfo"},"consumerId":{"description":"The Id of the consumer.","type":"string"},"orders":{"description":"The consumer's orders.","items":{"$ref":"#/components/schemas/ConsumerOrderOrder"},"type":"array"},"tenant":{"description":"The tenant associated with the consumer.","type":"string"},"timestamp":{"description":"The UTC timestamp of the date and time that the response was generated at.","format":"date-time","type":"string","x-api-version-from":"2019-04"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderOrderInfo":{"description":"Additional information about an order.","properties":{"canReorder":{"description":"A value indicating whether the order can be re-ordered.","type":"boolean"},"createdAt":{"description":"The date and time the order was created.","format":"date-time","type":"string"},"isAsap":{"description":"A value indicating whether the order should be fulfilled as soon as possible.","type":"boolean"},"isForDelivery":{"description":"A value indicating whether the order is for delivery.","type":"boolean"},"notes":{"additionalProperties":{"type":"string"},"description":"Any notes associated with the order given by the consumer.","type":"object"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderOrderStatus":{"description":"The status of an order.","properties":{"consumerId":{"description":"The Id of consumer associated with the order.","type":"string"},"id":{"description":"The Id of the order.","type":"string"},"isForDelivery":{"description":"A value indicating whether the order is for delivery.","type":"boolean"},"restaurantName":{"description":"The name of the restaurant associated with the order.","type":"string"},"status":{"$ref":"#/components/schemas/ConsumerOrderStatusInfo"},"tenant":{"description":"The tenant associated with the order.","type":"string"},"timestamp":{"description":"The UTC timestamp of the date and time that the response was generated at.","format":"date-time","type":"string","x-api-version-from":"2019-04"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderPaginationInfo":{"description":"Pagination information for a request.","properties":{"count":{"description":"The current number of results.","format":"int64","type":"integer"},"links":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderLink"},"description":"The pagination links.","type":"object"},"token":{"description":"The pagination token for the next page of results, if any.","type":"string"},"total":{"description":"The total number of results, if known.","format":"int64","nullable":true,"type":"integer"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderPaymentInfo":{"description":"Information about a payment.","properties":{"currencyCode":{"description":"The ISO-4217 currency code associated with the payment.","type":"string"},"fees":{"additionalProperties":{"format":"double","type":"number"},"description":"The amount of fees applied to the order.","type":"object"},"paidAt":{"description":"The date and time the order was paid for, if known.","format":"date-time","nullable":true,"type":"string"},"payments":{"description":"The individual payment(s).","items":{"$ref":"#/components/schemas/ConsumerOrderPaymentItem"},"type":"array"},"taxes":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderTaxItem"},"description":"The taxes applied to the order.","type":"object"},"totals":{"$ref":"#/components/schemas/ConsumerOrderTotals"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderPaymentItem":{"description":"An individual payment.","properties":{"cardType":{"description":"The card type, such as VISA, if used.","type":"string"},"deferredFee":{"description":"The deferred fee value, if any.","format":"double","type":"number","x-api-version-from":"2019-05"},"fee":{"description":"The payment fee, if any.","format":"double","type":"number"},"lastCardDigits":{"description":"The last digits of a payment card, if used.","type":"string"},"paymentMethod":{"description":"The payment method, such as cash or card.","enum":["None","Cash","Card","AccountCredit","Voucher","PayPal","Interac","ApplePay"],"type":"string","x-api-version-from":"2017-10"},"pspName":{"description":"The name of the Payment Service Provider, if any.","type":"string"},"transactionReference":{"description":"The transaction reference, if any.","type":"string"},"value":{"description":"The payment value.","format":"double","type":"number"},"voucherCode":{"description":"The voucher code used, if any.","type":"string","x-api-version-from":"2019-05"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderReorderResponse":{"additionalProperties":false,"description":"A reorder response.","properties":{"basketId":{"description":"The basket Id.","type":"string"},"menuId":{"description":"The menu Id.","type":"string"},"restaurantId":{"description":"The restaurant Id.","type":"string"},"restaurantSeoName":{"description":"The restaurant SEO name.","type":"string"},"serviceType":{"description":"The service type, such as collection or delivery.","type":"string"},"tenant":{"description":"The tenant.","type":"string"},"unavailableProductIds":{"description":"The unavailable product Ids.","items":{"type":"string"},"type":"array"}},"type":"object","x-api-version-from":"2020-06"},"ConsumerOrderRestaurantCapability":{"description":"A capability of a restaurant.","properties":{"isCapable":{"description":"A value indicating whether the restaurant is capable of fulfilling the capability.","type":"boolean"},"metadata":{"additionalProperties":{"type":"string"},"description":"Arbitrary metadata about the capability.","type":"object"},"name":{"description":"The name of the capability.","type":"string"}},"type":"object","x-api-version-from":"2018-09"},"ConsumerOrderRestaurantInfo":{"description":"Information about a restaurant.","properties":{"capabilities":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderRestaurantCapability"},"description":"The capabilities of the restaurant.","type":"object","x-api-version-from":"2018-09"},"contactNumber":{"description":"The contact telephone number for the restaurant.","type":"string"},"cuisines":{"description":"The cuisines associated with the restaurant.","items":{"$ref":"#/components/schemas/ConsumerOrderCuisineInfo"},"type":"array"},"displayName":{"description":"The display name of the restaurant.","type":"string"},"id":{"description":"The Id of the restaurant.","type":"string"},"images":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrderImage"},"description":"The images associated with the restaurant.","type":"object"},"isClosed":{"description":"A value indicating whether the restaurant is currently closed.","type":"boolean"},"isOffline":{"description":"A value indicating whether the restaurant is currently offline.","type":"boolean"},"metadata":{"additionalProperties":{"type":"string"},"description":"Arbitrary metadata about the restaurant.","type":"object"},"nextClosesAt":{"description":"The date and time the restaurant next closes, if open.","format":"date-time","nullable":true,"type":"string"},"nextOpensAt":{"description":"The date and time the restaurant next opens, if closed.","format":"date-time","nullable":true,"type":"string"},"postalAddress":{"$ref":"#/components/schemas/ConsumerOrderAddress"},"seoName":{"description":"The SEO name of the restaurant.","type":"string"},"timeZone":{"description":"IANA time zone Id the restaurant is located in.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderReviewInfo":{"description":"Information about the review for an order.","properties":{"averageScore":{"description":"The average score for the attributes of the review.","format":"double","nullable":true,"type":"number"},"canReview":{"description":"A value indicating whether the order can be reviewed.","type":"boolean"},"comments":{"description":"Any comments left by the consumer in the review.","type":"string"},"isReviewed":{"description":"A value indicating whether the order has been reviewed.","type":"boolean"},"maximumScore":{"description":"The maximum score that can be given to an attribute of the review.","format":"double","type":"number"},"ratingCode":{"description":"The rating code for the review.","type":"string"},"scores":{"additionalProperties":{"format":"double","type":"number"},"description":"The scores given for the scored attributes of the review.","type":"object"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderStatusHistoryItem":{"description":"Information about the status of an order at a specific point in time.","properties":{"confidence":{"description":"The confidence level of the status.","type":"string"},"dueDate":{"description":"The due date at the date and time associated with the timestamp, if any.","format":"date-time","nullable":true,"type":"string"},"reason":{"description":"The reason for the order's status, if known.\nIf your client does not understand this reason, assume that it has no value.","type":"string","x-api-version-from":"2019-05"},"timestamp":{"description":"The timestamp associated with this order status.","format":"date-time","type":"string"},"value":{"description":"The order status at the date and time associated with the timestamp.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderStatusInfo":{"description":"Information about the status of an order.","properties":{"confidence":{"description":"The confidence level of the order's status.","type":"string"},"currentDueDate":{"description":"The current due date of the order, if any.","format":"date-time","nullable":true,"type":"string"},"delay":{"description":"How delayed the order is.","type":"string"},"estimatedCompletion":{"$ref":"#/components/schemas/ConsumerOrderDateTimeRange"},"expectPreorderNotificationAt":{"description":"The date and time the restaurant is expected to accept a preorder, if any.","format":"date-time","nullable":true,"type":"string"},"finishedAt":{"description":"The date and time the order was finished, if completed successfully.","format":"date-time","nullable":true,"type":"string"},"history":{"description":"The history of the order's statuses, if available.","items":{"$ref":"#/components/schemas/ConsumerOrderStatusHistoryItem"},"type":"array"},"initialDueDate":{"description":"The initial due date of the order, if any.","format":"date-time","nullable":true,"type":"string"},"isActive":{"description":"A value indicating whether the status of the order may change further.","type":"boolean"},"isDelayed":{"description":"A value indicating whether the order is delayed.","type":"boolean"},"isDueDateDynamic":{"description":"A value indicating whether the current due date was determined\ndynamically, for example from the current location of a delivery driver.","type":"boolean","x-api-version-from":"2019-04"},"isRecent":{"description":"A value indicating whether the order is a recent order.","type":"boolean"},"notifications":{"$ref":"#/components/schemas/ConsumerOrderStatusNotificationsInfo"},"statusReason":{"description":"The reason for the status of the order, if known.\nIf your client does not understand this status reason, assume that it has no value.","type":"string","x-api-version-from":"2019-05"},"timeZone":{"description":"IANA time zone Id associated with the order.","type":"string"},"tracking":{"$ref":"#/components/schemas/ConsumerOrderTrackingInfo"},"upcoming":{"description":"The expected upcoming order statuses for the order, if known.","items":{"$ref":"#/components/schemas/ConsumerOrderUpcomingStatusItem"},"type":"array"},"value":{"description":"The current status of the order.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderStatusNotificationsInfo":{"description":"Status updates notification information for an order.","properties":{"channelKey":{"description":"The key for the status updates notification channel, if any.","type":"string"},"channelName":{"description":"The name of the status updates notification channel.","type":"string"},"providerName":{"description":"The name of the status updates notification provider, such as PubNub.","type":"string"}},"type":"object","x-api-version-from":"2018-09"},"ConsumerOrderTaxItem":{"description":"A tax item.","properties":{"name":{"description":"The name of the tax.","type":"string"},"rate":{"description":"The tax rate.","format":"double","type":"number"},"value":{"description":"The value of the tax due.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderTipItem":{"description":"A tip.","properties":{"amount":{"description":"The cash value of the tip.","format":"double","type":"number"},"name":{"description":"The name of the type of the tip.","type":"string"},"value":{"description":"The value of the tip relative to its type, such as the percentage.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderTotals":{"description":"A class containing payment totals.","properties":{"accountCredits":{"description":"The total amount of account credit(s) applied to the order.","format":"double","type":"number"},"complimentary":{"description":"The total amount of promotional credit(s) applied to the order.","format":"double","type":"number"},"discounts":{"description":"The total amount of discount(s) applied to the order.","format":"double","type":"number"},"fees":{"description":"The total amount of fees applied to the order.","format":"double","type":"number"},"subtotal":{"description":"The subtotal for the order.","format":"double","type":"number"},"taxes":{"description":"The total amount of taxes applied to the order.","format":"double","type":"number"},"tips":{"description":"The total amount of tips applied to the order.","format":"double","type":"number"},"totalPaid":{"description":"The total paid for the order, after taking into account credit, vouchers etc.","format":"double","type":"number"},"totalToPay":{"description":"The total to pay for the order.","format":"double","type":"number"},"vouchers":{"description":"The total amount of any voucher(s) applied to the order.","format":"double","type":"number"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderTrackingInfo":{"description":"Tracking information for an order.","properties":{"channelKey":{"description":"The key for the tracking channel, if any.","type":"string"},"channelName":{"description":"The name of the tracking channel.","type":"string"},"providerName":{"description":"The name of the tracking provider, such as PubNub.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrderUpcomingStatusItem":{"description":"Information about an upcoming status an order is expected to reach.","properties":{"sortOrder":{"description":"The sort order of the upcoming status.","format":"int32","type":"integer"},"value":{"description":"The upcoming status for the order.","type":"string"}},"type":"object","x-api-version-from":"2017-10"},"ConsumerOrdersPlacementErrorResponse":{"additionalProperties":false,"description":"An error response.","example":{"_links":{},"errorCode":"ErrorCode","errorId":"c9e62582-4dbe-4eac-a982-b3fa2cb04fa0","message":"An error occurred.","requestId":"8000024c-0002-fe00-b63f-84710c7967bb","statusCode":500,"timestamp":"2025-04-15T13:52:07.555Z","version":"1.0.1012 (377c04c)"},"properties":{"_links":{"additionalProperties":{"$ref":"#/components/schemas/ConsumerOrdersPlacementLink"},"description":"The links information, if any.","nullable":false,"type":"object"},"detail":{"additionalProperties":true,"description":"The optional error detail.","nullable":true,"type":"object"},"errorCode":{"description":"The API error code.","nullable":false,"type":"string"},"errorId":{"description":"The API error Id.","nullable":false,"type":"string"},"fingerprint":{"description":"The error fingerprint, if available.","nullable":true,"type":"string"},"message":{"description":"The error message.","nullable":true,"type":"string"},"requestId":{"description":"The request Id, if available.","nullable":true,"type":"string"},"statusCode":{"description":"The HTTP status code.","format":"int32","type":"integer"},"timestamp":{"description":"The timestamp of the error.","format":"date-time","type":"string"},"version":{"description":"The version of the API that generated the error.","nullable":true,"type":"string"}},"type":"object","x-api-version-from":1},"ConsumerOrdersPlacementLink":{"additionalProperties":false,"description":"A link to an API resource.","properties":{"href":{"description":"The URL of the link.","nullable":false,"type":"string"},"templated":{"description":"A value indicating whether the URL is templated.","type":"boolean"}},"type":"object","x-api-version-from":1},"ConsumerOrdersPlacementReferralState":{"description":"Order referral source","enum":["None","ReferredByWeb"],"type":"string","x-api-version-from":1},"ConsumerOrdersPlacementRequestV1":{"additionalProperties":false,"description":"An object representing the request to place an order for a given basket Id.","example":{"applicationId":4,"applicationVersion":"android-test-version","basketId":"basket_gh23i_PS4_","customerNotes":{"NoteForDriver":"Call me when you get here","NoteForRestaurant":"No mayonnaise"},"deviceId":"Swagger-DeviceId","deviceName":"Swagger-DeviceName","referralState":"ReferredByWeb","removedIngredientsEnabled":false},"properties":{"applicationId":{"description":"The Id of application that is placing the order.","format":"int32","type":"integer"},"applicationName":{"description":"The name of application that is placing the order.","nullable":true,"type":"string"},"applicationVersion":{"description":"The version of application that is placing the order.","nullable":false,"type":"string"},"basketId":{"description":"The basket Id.","type":"string"},"customerNotes":{"additionalProperties":{"type":"string"},"description":"Dictionary of the customer notes to add to the order. The keys of the dictionary are the notes capabilities that the restaurant has.","nullable":true,"type":"object"},"deviceId":{"description":"The identifier/ip of the device that is placing the order.","type":"string"},"deviceName":{"description":"The name of the device that is placing the order.","type":"string"},"referralState":{"allOf":[{"$ref":"#/components/schemas/ConsumerOrdersPlacementReferralState"}],"description":"Order referral source"},"removedIngredientsEnabled":{"description":"A value indicating whether the basket contains removed ingredients.","type":"boolean"}},"required":["basketId","applicationId","applicationVersion","deviceId","deviceName"],"type":"object","x-api-version-from":1,"x-api-version-to":1},"ConsumerOrdersPlacementRequestV2":{"additionalProperties":false,"description":"An object representing the request to place an order for a given basket Id.","example":{"basketId":"basket_gh23i_PS4_","customerNotes":{"NoteForDriver":"Call me when you get here","NoteForRestaurant":"No mayonnaise"},"referralState":"ReferredByWeb"},"properties":{"basketId":{"description":"The basket Id.","type":"string"},"customerNotes":{"additionalProperties":{"type":"string"},"description":"Dictionary of the customer notes to add to the order. The keys of the dictionary are the notes capabilities that the restaurant has.","nullable":true,"type":"object"},"referralState":{"allOf":[{"$ref":"#/components/schemas/ConsumerOrdersPlacementReferralState"}],"description":"Order referral source"}},"required":["basketId"],"type":"object","x-api-version-from":2},"ConsumerOrdersPlacementResponse":{"additionalProperties":false,"description":"An order placement response.","properties":{"friendlyOrderId":{"description":"The friendly order Id.","nullable":false,"type":"string"},"orderId":{"description":"The id of the order.","nullable":false,"type":"string"}},"type":"object","x-api-version-from":1},"ConsumerSegment":{"enum":["All","NewToRestaurant"],"type":"string"},"ConsumerStatus":{"description":"","enum":[0,1,2],"type":"integer","x-enumNames":["Undefined","NewConsumer","ReturnConsumer"]},"CourierFeedbackRequest":{"example":{"additionalComment":"Went above and beyond","isPositiveFeedback":true,"reasons":["had thermal bag","friendly"]},"properties":{"additionalComment":{"description":"An additional free form comment accompanying the feedback","maxLength":210,"nullable":true,"type":"string"},"isPositiveFeedback":{"description":"A flag to determine if the feedback is overall positive","type":"boolean"},"reasons":{"description":"A list of reasons describing the feedback","items":{"type":"string"},"nullable":false,"type":"array"}},"required":["isPositiveFeedback"],"type":"object"},"CourierStatus":{"description":"The courier application status. A courier could have one of these status associated with their application, here is a brief example of each status. <p>`ON-BOARDING` - Courier is actively trying to be on-boarded and will progress through the courier on-boarding program</p><p>`STALLED` - Courier has not proceeded with a step inside the courier on-boarding program for 14 days and will not to proceed further</p><p>`SURPLUS` - Zone has been closed for On-boarding; courier cannot proceed until zone on-boarding re-opens</p><p>`ACTIVE` - Courier has interacted with the app within the last two weeks and will be automatically scheduled based on their availability, receive notifications and may complete orders</p><p>`INACTIVE` - Courier has not interacted with the app for at least two weeks, and will not be scheduled for shifts. May interact with the app to convert their status to active, and be eligible for shifts and deliveries</p><p>`RELIABILITY_ISSUES` - No longer in use, historically account was suspended due to frequent flakes or rejected orders</p><p>`VEHICLE_ISSUES` - Account suspended due to reported vehicle problems, but may reactivate by contacting courier support</p><p>`INCIDENT_ISSUES` - Account suspended indefinitely due to significant concern (used exclusively by Incidents team)</p><p>`OTHER_ACCOUNT_ISSUES` - General account suspension, usually in connection with problems not categorised under regular courier status</p><p>`EXPIRED_DOCUMENTS` - General account suspension, typically for expired right to work documentation</p><p>`REJECTED` - Applicant did not meet minimum requirements for access to the network</p><p>`WITHDRAWN` - Applicant decided not to proceed with onboarding</p><p>`BANNED` - Courier’s access to the network was revoked following escalation</p><p>`LEFT_NETWORK` - Courier voluntarily left the network</p>","enum":["ONBOARDING","STALLED","SURPLUS","ACTIVE","INACTIVE","RELIABILITY_ISSUES","VEHICLE_ISSUES","INCIDENT_ISSUES","OTHER_ACCOUNT_ISSUES","EXPIRED_DOCUMENTS","REJECTED","WITHDRAWN","BANNED","LEFT_NETWORK"],"type":"string"},"CourierSync":{"description":"The courier sync payload holds the updated values for deliveries, personal information, location and shifts associated with a particular courier.","properties":{"cancelledOrderSummaries":{"description":"List with a summary of all the cancelled orders associated with the courier.","items":{"$ref":"#/components/schemas/OrderCancelled"},"maxItems":1,"minItems":1,"type":"array"},"checkedInState":{"$ref":"#/components/schemas/CheckedInState","description":"The state of a courier on a shift. A courier might be checked in or not."},"doNotUseStatus":{"$ref":"#/components/schemas/DoNotUseStatus","description":"The courier usability status."},"earlyCheckoutAvailable":{"description":"The possibility of an early checkout of the shift is available when true.","type":"boolean"},"firstName":{"description":"First name of the courier in which the updated sync payload was requested for.","example":"John","type":"string"},"flexStateForAssignedZones":{"description":"List of flex state types for each delivery zone the courier is currently on a delivery process or have already delivered orders.","items":{"$ref":"#/components/schemas/CourierZoneFlexState"},"maxItems":2,"minItems":2,"type":"array"},"isLiveFlexStatesAvailable":{"description":"The live flex states are enabled when true.","type":"boolean"},"jobs":{"description":"The list of jobs assigned to the courier.","items":{"$ref":"#/components/schemas/JobDetails"},"maxItems":2,"minItems":2,"type":"array"},"lastName":{"description":"Last name of the courier in which the updated sync payload was requested for.","example":"Doe","type":"string"},"localSaveSeconds":{"description":"Static value with the amount of seconds the application is supposed to save a fresh courier location. The logic implemented expects the application to save a new location when the elapsed seconds is greater equal than local send seconds.","example":5,"format":"integer","type":"number"},"name":{"description":"Name of the courier in which the updated sync payload was requested for.","example":"John Doe","type":"string"},"orderAcceptanceTimes":{"$ref":"#/components/schemas/OrderAcceptanceTimes","description":"The acceptance times used to present the offer to the courier."},"remainingJobs":{"description":"Amount of remaining jobs assignable to the courier.","example":2,"format":"integer","type":"number"},"serverGateMeters":{"description":"Static value with the distance in meters the application is supposed to send a fresh location to the server. The logic implemented expects the application to send a new location to the server when the distance to the previous location is greater equal than server gate meters.","example":0,"format":"integer","type":"number"},"serverSendSeconds":{"description":"Static value with the amount of seconds the application is supposed to send a fresh location to the server. The logic implemented expects the application to send a new location to the server when the elapsed seconds is greater equal than server send seconds.","example":60,"format":"integer","type":"number"},"shift":{"$ref":"#/components/schemas/Shift","description":"The shift details in which the courier is signed up for."},"status":{"$ref":"#/components/schemas/CourierStatus","description":"The courier application status."},"timestamp":{"description":"Current timestamp for the courier sync updated payload.","example":1593444834,"format":"long","type":"number"},"timezone":{"description":"Time zone in which the courier shift was started.","example":"GMT-6","type":"string"},"topUpPromotion":{"$ref":"#/components/schemas/TopUpPromotion","description":"Calculated top up promotion settings for the courier."},"totalDeliveries":{"description":"Number of deliveries completed by the courier.","example":11,"format":"integer","type":"number"}},"type":"object"},"CourierZoneFlexState":{"description":"The courier zone flex state object, contains the flex state type and the flex availability status for a given delivery zone.","properties":{"deliveryZoneId":{"description":"Delivery zone identifier for flex state.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"},"deliveryZoneName":{"description":"Delivery zone name for flex state.","example":"Winnipeg SW","type":"string"},"flexAvailable":{"description":"Flex states are enabled when true","type":"boolean"},"flexStateType":{"$ref":"#/components/schemas/SyncFlexStateType","description":"<p>The flex state type changes according to the exponential moving average and is used as a reference to bring more couriers to suffice the demand in a given delivery zone.</p> <p>If the flex state type is \"Off\", it means no shifts will be offered for the delivery zone.</p> <p>If the state is \"CLOSED\", only scheduled shifts will be allowed for the delivery zone.</p> <p>If the state is \"SEEKING\", the shift offers are going to be made across the courier network in order to suffice the current demand.</p> <p>If the state is \"OPEN\", it means demand is high and couriers from all over the courier network are allowed to create shifts for themselves to suffice the current demand.</p> <p>If the state is \"CODE_RED\", it means not only can everyone create shifts for themselves for the delivery zone but also couriers from other delivery zones might reallocate to help suffice the demand of that particular delivery zone.</p>"}},"type":"object"},"CreateAttemptedDeliveryQuery":{"example":{"ReasonCode":"ProblemWithAddress"},"properties":{"ReasonCode":{"description":"The reason the attempted delivery event was created","enum":["ProblemWithAddress","NoAnswer"],"type":"string"}},"type":"object"},"CreateCancellationQuery":{"additionalProperties":false,"properties":{"comments":{"description":"Additional comments","nullable":true,"type":"string"},"reasonCode":{"description":"Reason for order cancellation","enum":["rest_cancelled_customer_requested","rest_cancelled_customer_absent","rest_cancelled_out_of_stock","rest_cancelled_drivers_unavailable","rest_cancelled_fake_order","rest_cancelled_too_busy","rest_cancelled_other"],"nullable":true,"type":"string"}},"type":"object"},"CreateDeal":{"properties":{"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"DealGroups":{"items":{"$ref":"#/components/schemas/CreateDealGroup"},"type":"array"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"}},"type":"object"},"CreateDealGroup":{"properties":{"DealGroupId":{"type":"string"},"Products":{"items":{"$ref":"#/components/schemas/CreateProduct"},"type":"array"}},"type":"object"},"CreateGeoLocation":{"properties":{"Latitude":{"format":"decimal","type":"number"},"Longitude":{"format":"decimal","type":"number"}},"type":"object"},"CreateLocation":{"properties":{"GeoLocation":{"allOf":[{"$ref":"#/components/schemas/CreateGeoLocation"}],"description":"Not available across platform yet, but applied for future proofing.","nullable":true},"ZipCode":{"type":"string"}},"type":"object"},"CreateMenuItemRequest":{"example":{"Category":{"Id":"12","Name":"Pizzas"},"Description":"A cheesy pizza, covered in cheese, with extra cheesy bits","HasAllergens":false,"Labels":["Vegetarian"],"Name":"Cheese Pizza","OptionGroups":[{"Id":"1","Modifiers":[{"AdditionPrice":0.51,"Id":"123","Name":"Garlic","Variations":[{"AdditionalPrice":0.12,"ModifierGroupId":"123","Selected":true,"VariationId":"1","VariationName":"Small"},{"AdditionalPrice":0.23,"ModifierGroupId":"123","Selected":true,"VariationId":"2","VariationName":"Large"}]}],"Name":"Crusts"}],"PreferenceGroups":[{"Id":"1","Modifiers":[{"AdditionPrice":0.51,"Id":"123","Name":"More cheese","Variations":[{"AdditionalPrice":0.12,"ModifierGroupId":"123","Selected":true,"VariationId":"1","VariationName":"Small"},{"AdditionalPrice":0.23,"ModifierGroupId":"123","Selected":true,"VariationId":"2","VariationName":"Large"}]}],"Name":"Toppings"}],"ReceiptNumber":"123a","Variations":[{"Id":"1","Name":"Small","Price":1},{"Id":"2","Name":"Large","Price":2.5}]},"properties":{"Category":{"$ref":"#/components/schemas/CategoryRequest","description":"Category of the Menu Item"},"Description":{"description":"Description of the Menu Item","type":"string"},"HasAllergens":{"description":"Whether the menu item has any allergens","type":"boolean"},"Labels":{"description":"Labels of the Menu Item","items":{"type":"string"},"type":"array","uniqueItems":false},"Name":{"description":"Name of the Menu Item","type":"string"},"OptionGroups":{"description":"A list of options groups of the Menu Item","items":{"$ref":"#/components/schemas/UpdateModifierGroupRequest"},"maxLength":100,"type":"array","uniqueItems":false},"PreferenceGroups":{"description":"A list of preference groups of the Menu Item","items":{"$ref":"#/components/schemas/UpdateModifierGroupRequest"},"maxLength":100,"type":"array","uniqueItems":false},"ReceiptNumber":{"description":"The Receipt number or kitchen number of the Menu Item","type":"string"},"Variations":{"description":"Any variations of the Menu Item","items":{"$ref":"#/components/schemas/UpdateMenuItemVariationRequest"},"maxLength":75,"type":"array","uniqueItems":false}},"required":["Name"],"type":"object"},"CreateMessageModel":{"description":"Information needed to create a message for the Scoober ops team","properties":{"city":{"deprecated":true,"description":"City this order is located in.","example":"london","nullable":true,"type":"string"},"countryCode":{"description":"2 letter ISO code for the country this ticket is about.","example":"gb","nullable":true,"type":"string"},"description":{"description":"Description, main body, of the message to send.","example":"Scoober Test","type":"string"},"reason":{"description":"Scoober contact reason for this ticket.","example":"front_line_reason_food_quality_cold_crushed_spilled","type":"string"},"restaurantId":{"description":"Restaurant Id of the order.","example":"1234567","nullable":true,"type":"string"},"scooberJobId":{"description":"Scoober job ID, if known.","example":"en","nullable":true,"type":"string"},"status":{"description":"Status of the Zendesk ticket.","example":"new","type":"string"},"subject":{"description":"Subject of the message to send.","example":"Scoober Test","type":"string"},"ticketId":{"description":"Zendesk ticket ID this message is about.","example":1234,"format":"int64","type":"integer"}},"required":["description","reason","status","subject","ticketId"],"type":"object"},"CreateModifier":{"properties":{"ModifierId":{"type":"string"},"Quantity":{"format":"integer","type":"number"}},"type":"object"},"CreateModifierGroup":{"properties":{"ModifierGroupId":{"type":"string"},"Modifiers":{"items":{"$ref":"#/components/schemas/CreateModifier"},"type":"array"}},"type":"object"},"CreateOffersRequest":{"description":"The request object for creating of new offer group.","example":{"daysOfWeek":["Monday","Friday"],"endDate":"2025-04-15T13:52:07.556Z","endTime":46800,"offerDescription":"This is offer description","offerTemplateId":333,"qualifyingValue":{"currency":"GBP","value":1000},"startDate":"2025-04-15T13:52:07.556Z","startTime":43200},"properties":{"daysOfWeek":{"description":"Days of week to run the offer","items":{"enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"type":"string"},"type":"array","uniqueItems":true},"endDate":{"description":"The date when offer ends","format":"date","nullable":true,"type":"string"},"endTime":{"description":"Timestamp when offer ends during the day","format":"time","nullable":true,"type":"string"},"freeProducts":{"description":"The product that gets 100% discount applied","items":{"properties":{"id":{"description":"The unique identifier of the product.","nullable":false,"type":"string"},"modifiers":{"description":"The collection of preselected modifiers for the item.","items":{"properties":{"modifierId":{"description":"The unique identifier of the modifier.","nullable":false,"type":"string"},"quantity":{"description":"The required quantity of the modifier.","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"nullable":true,"type":"array"}},"type":"object"},"nullable":true,"type":"array"},"offerDescription":{"description":"The description of the offer.","nullable":true,"type":"string"},"offerTemplateId":{"description":"Internal id of offer template","format":"int32","nullable":false,"type":"integer"},"qualifyingProductIds":{"description":"One of those products needed to be included in the collection of products to make offer applicable","items":{"type":"string"},"nullable":true,"type":"array"},"qualifyingValue":{"description":"Minimum qualifying value for offer to be applied","nullable":true,"properties":{"currency":{"description":"Currency code in ISO 4217 format","nullable":false,"type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"startDate":{"description":"The date when offer starts","format":"date","nullable":true,"type":"string"},"startTime":{"description":"Timestamp when offer starts during the day","format":"time","nullable":true,"type":"string"}},"type":"object"},"CreateOrderDetails":{"properties":{"Location":{"$ref":"#/components/schemas/CreateLocation"}},"type":"object"},"CreateProduct":{"properties":{"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"ModifierGroups":{"items":{"$ref":"#/components/schemas/CreateModifierGroup"},"nullable":true,"type":"array"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"RemovedIngredients":{"items":{"$ref":"#/components/schemas/CreateRemovedIngredient"},"nullable":true,"type":"array"}},"type":"object"},"CreateRemovedIngredient":{"properties":{"Details":{"type":"string"}},"type":"object"},"CreateRequest":{"description":"The request object for creating a basket.","properties":{"Deals":{"description":"All deals to added to new basket.","items":{"allOf":[{"$ref":"#/components/schemas/CreateDeal"}],"description":"Individual deal to added to new basket."},"nullable":true,"type":"array"},"MenuGroupId":{"type":"string"},"OrderDetails":{"allOf":[{"$ref":"#/components/schemas/CreateOrderDetails"}],"description":"Information needed to allow an order to be placed on a basket."},"Products":{"description":"All products to added to new basket.","items":{"allOf":[{"$ref":"#/components/schemas/CreateProduct"}],"description":"Individual product to added to new basket."},"nullable":true,"type":"array"},"RestaurantSeoName":{"description":"A unique per tenant identifier for a restaurant used for external operations.","nullable":true,"type":"string"}},"type":"object"},"CreateRestaurantCompensationQuery":{"example":{"Comments":"Driver had just left the restaurant","ReasonCode":"OnItsWay"},"properties":{"Comments":{"description":"Any other comments to add to the request","type":"string"},"ReasonCode":{"description":"The reason why compensation is due","enum":["NotSet","BeingPrepared","OnItsWay","Delivered","Unknown"],"type":"string"}},"type":"object"},"CreateSupportTicketRequest":{"description":"Request containing support ticket information","example":{"message":"Change weekly budget","subject":"Top Placement - Interest","type":"top_placement__interest"},"properties":{"message":{"description":"The message with the support details","type":"string"},"subject":{"description":"Subject of the ticket","type":"string"},"type":{"description":"Type the ticket belongs to","type":"string"}},"type":"object"},"CreateTicketModel":{"description":"Information needed to create a ticket on the Just Eat Zendesk instance for a Scoober delivery support incident","properties":{"city":{"description":"City of the delivery in question of this ticket.","example":"london","nullable":true,"type":"string"},"country":{"description":"2 letter ISO code of the country this pertains to. Will be inferred from queried API.","example":"gb","nullable":true,"type":"string"},"courier":{"description":"Courier who created this query.","example":"scoober","nullable":true,"type":"string"},"description":{"description":"Description (main body) of the ticket.","example":"Scoober Test","type":"string"},"externalId":{"description":"We will note this as incident/ticket/query ID used by the calling party and include it for their future reference.","example":"slack:1","type":"string"},"language":{"description":"2 letter ISO code of the language for the ticket. Will be inferred from queried API.","example":"en","nullable":true,"type":"string"},"reason":{"description":"Scoober reason code for the creation of this ticket.","example":"delivery__spilled_food","type":"string"},"requesterEmail":{"description":"Ticket requester e-mail address.","example":"requester@scoober.com","nullable":true,"type":"string"},"requesterName":{"description":"Ticket requester name.","example":"scoober","nullable":true,"type":"string"},"responseUrl":{"description":"Where should we respond to with progress on this request?","example":"https://zenbox-api.bob.external.tkwy-staging.io/ticket/response","type":"string"},"scooberJobId":{"description":"Scoober job ID for this order.","example":"1234","nullable":true,"type":"string"},"senderType":{"description":"Scoober transmits a sender type value.","example":["internal"],"items":{"type":"string"},"nullable":true,"type":"array"},"status":{"description":"Ticket status to set on creation of this ticket. Possible values: New, pending, solved.","example":"new","nullable":true,"type":"string"},"subject":{"description":"Subject of the ticket.","example":"Scoober Test","type":"string"}},"required":["description","externalId","reason","responseUrl","subject"],"type":"object"},"CurrentUserResponse":{"example":{"accountType":"Registered","email":"example@just-eat.com","firstName":"Bob","globalUserId":"8It2lEaJjG82nJtxO00Iab0CoF0=","lastName":"Smith"},"properties":{"accountType":{"description":"The account type of the consumer.","enum":["Registered","Guest"],"type":"string"},"email":{"description":"The consumer's email address.","format":"email","nullable":true,"type":"string"},"firstName":{"description":"The consumer's first name.","nullable":true,"type":"string"},"globalUserId":{"description":"Global identifier for consumer and tenant.","nullable":true,"type":"string"},"lastName":{"description":"The consumer's last name.","nullable":true,"type":"string"}},"type":"object"},"CustomerOrderDetailsErrorResponse":{"description":"The error object returned when an operation fails","example":{"ErrorType":"OrderTimeNotFound","Exceptions":[],"Message":"Order Time not found for Basket example-basket-id"},"properties":{"ErrorType":{"$ref":"#/components/schemas/CustomerOrderDetailsErrorType","description":"Value of the error thrown"},"Exceptions":{"description":"List of exceptions thrown during the request","items":{"type":"string"},"type":"array"},"Message":{"description":"Detailed message on the error thrown","type":"string"}},"type":"object"},"CustomerOrderDetailsErrorType":{"enum":["None","Unknown","OrderTimeNotFound","OrderAddressNotFound","BasketNotFound","AvailabilityNotFound","Unauthorized","UpdateOrderAddressError","UpdateOrderTimeError","DependencyError","InvalidZipcode","InvalidMenuId"],"type":"string"},"CustomisationResponse":{"description":"Information about initial options to show to user","example":{"config":{"liveChatEnabled":true,"personalisedHelpEnabled":true},"dataLayer":{"helpData_features":"o:cancel_order|o:bad_item|o:call_restaurant|t:open_chatbot|t:email_justeat|t:call_justeat","helpData_helpSessionId":"helpsessionid","helpData_isPilot":32,"trData_menuType":"collection","trData_trId":null,"transactionData_dateDiff":-1800,"transactionData_nTotalItems":0,"transactionData_newTransactionId":"orderid","transactionData_orderDelay":null,"transactionData_orderStatus":"Accepted"},"experimentEvents":[{"id":"EX-1742","name":"bandit_exp_new_carousels_2","parentId":"1234567890","platform":"optimizely_fullstack","variantName":"variant_d","version":"1"}],"helpSessionId":"helpsessionid","personalisation":{"callRestaurantAction":{"action":"01234567890","buttonEvent":{"action":"click_call_restaurant","category":"engagement","label":"call restaurant","value":0},"buttonType":"Primary","data":{},"department":"LiveChat","id":"CallRestaurant","notes":"note","postText":[],"preText":[],"title":"Call the restaurant","type":"Call"},"orderActions":[{"action":"/applications/consumerhelp/flows/cancellation/uk/orderid/start","buttonEvent":{"action":"click_cancel_order","category":"engagement","label":"helpflow","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"Cancel","notes":"note","postText":[],"preText":[],"title":"I want to cancel my order","type":"ChapiGet"},{"action":"/applications/consumerhelp/flows/baditems/uk/orderid/start","buttonEvent":{"action":"click_bad_item","category":"engagement","label":"helpflow","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"BadItem","notes":"note","postText":[],"preText":[],"title":"I'm unhappy with my order","type":"ChapiGet"}]},"topLevelActions":[{"action":null,"buttonEvent":{"action":"click_open_chatbot","category":"engagement","label":"open chatbot","value":0},"buttonType":"Primary","data":{},"department":"LiveChat","id":"StartChatBot","notes":"note","postText":[],"preText":[],"title":"Chat to us","type":"Chatbot"},{"action":"info@just-eat.co.uk","buttonEvent":{"action":"click_email_justeat","category":"engagement","label":"email justeat","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"EmailJustEat","notes":"note","postText":[],"preText":[],"title":"Email our happy helpers","type":"Email"},{"action":"0344 243 7777","buttonEvent":{"action":"click_call_justeat","category":"engagement","label":"call justeat","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"PhoneJustEat","notes":"note","postText":[],"preText":[],"title":"Phone a human","type":"Call"}]},"properties":{"config":{"properties":{"liveChatEnabled":{"description":"Should we enable Live Chat","type":"boolean"},"personalisedHelpEnabled":{"description":"Should we show Personalised Help","type":"boolean"}},"type":"object"},"experimentEvents":{"description":"list of experiments running for this client","items":{"$ref":"#/components/schemas/ExperimentEvent"},"type":"array"},"helpSessionId":{"description":"Unique id for this help session","type":"string"},"personalisation":{"properties":{"callRestaurantAction":{"$ref":"#/components/schemas/HelpAction"},"dataLayer":{"additionalProperties":true,"description":"Key/values to be passed to analytics","type":"object"},"orderActions":{"description":"Actions pertaining to the order","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"topLevelActions":{"description":"Top-level actions not necessarily pertaining to the order","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"}},"type":"object"}},"type":"object"},"CustomisationResponseWeb":{"description":"Information about initial options to show to user","example":{"config":{"liveChatEnabled":true,"personalisedHelpEnabled":true},"dataLayer":{"helpData_features":"o:cancel_order|o:bad_item|o:call_restaurant|t:open_chatbot|t:email_justeat|t:call_justeat","helpData_helpSessionId":"helpsessionid","helpData_isPilot":32,"trData_menuType":"collection","trData_trId":null,"transactionData_dateDiff":-1800,"transactionData_nTotalItems":0,"transactionData_newTransactionId":"orderid","transactionData_orderDelay":null,"transactionData_orderStatus":"Accepted"},"helpSessionId":"helpsessionid","order":{"friendlyReference":"1234567890","id":"alphanumericid","status":{"dateText":708,"isActive":true,"isFinishedWithNegativeOutcome":false,"isFinishedWithPositiveOutcome":false,"isForDelivery":true,"preAcceptance":false,"preamble":"Delivering around","statusText":"The restaurant has confirmed the delivery time. The countdown to your first bite has begun...","value":"Accepted"}},"personalisation":{"callRestaurantAction":{"action":"01234567890","buttonEvent":{"action":"click_call_restaurant","category":"engagement","label":"call restaurant","value":0},"buttonType":"Primary","data":{},"department":"LiveChat","id":"CallRestaurant","notes":"note","postText":[],"preText":[],"title":"Call the restaurant","type":"Call"},"orderActions":[{"action":"/applications/consumerhelp/flows/cancellation/uk/orderid/start","buttonEvent":{"action":"click_cancel_order","category":"engagement","label":"helpflow","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"Cancel","notes":"note","postText":[],"preText":[],"title":"I want to cancel my order","type":"ChapiGet"},{"action":"/applications/consumerhelp/flows/baditems/uk/orderid/start","buttonEvent":{"action":"click_bad_item","category":"engagement","label":"helpflow","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"BadItem","notes":"note","postText":[],"preText":[],"title":"I'm unhappy with my order","type":"ChapiGet"}]},"restaurant":{"name":"Bob's kebabs","telephone":"+44 1234 123123","thumbnail":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTRnTQ8sfP8yxicqMBoAymdKzrpjhtwSeCIXdpqhZ7Hrj8FLBfB"},"topLevelActions":[{"action":null,"buttonEvent":{"action":"click_open_chatbot","category":"engagement","label":null,"value":null},"buttonType":"Primary","data":null,"department":"LiveChat","id":"StartChatBot","notes":"note","postText":[],"preText":[],"title":"Chat to us","type":"Chatbot"},{"action":"info@just-eat.co.uk","buttonEvent":{"action":"click_email_justeat","category":"engagement","label":null,"value":null},"buttonType":"Secondary","data":null,"department":"LiveChat","id":"EmailJustEat","notes":"note","postText":[],"preText":[],"title":"Email our happy helpers","type":"Email"},{"action":"0344 243 7777","buttonEvent":{"action":"click_call_justeat","category":"engagement","label":null,"value":null},"buttonType":"Secondary","data":null,"department":"LiveChat","id":"PhoneJustEat","notes":"note","postText":[],"preText":[],"title":"Phone a human","type":"Call"}],"user":{"isLoggedIn":true,"name":"John"}},"properties":{"config":{"description":"General config / feature toggles","properties":{"liveChatEnabled":{"description":"Should we enable Live Chat","type":"boolean"},"personalisedHelpEnabled":{"description":"Should we show Personalised Help","type":"boolean"}},"type":"object"},"helpSessionId":{"description":"Unique id for this help session","type":"string"},"order":{"description":"The customer's most recent or specified order","properties":{"friendlyReference":{"description":"Friendly order id.  Usually numeric","type":"string"},"id":{"description":"Alphanumeric order id","type":"string"},"status":{"description":"Information related to the status of the order","properties":{"dateText":{"description":"The date / time to display to the customer","type":"string"},"isActive":{"description":"Is this an active order?","type":"boolean"},"isFinishedWithNegativeOutcome":{"description":"Is this order in a final, unhappy (e.g. Cancelled) state?","type":"boolean"},"isFinishedWithPositiveOutcome":{"description":"Is this order in a final, happy, state?","type":"boolean"},"isForDelivery":{"description":"Is this a delivery order (as opposed to collection)?","type":"boolean"},"preAcceptance":{"description":"Is this order still awaiting acceptance from a restaurant?","type":"boolean"},"preamble":{"description":"Friendly 'preamble' text to display to the customer","type":"string"},"statusText":{"description":"Friendly text to display to the customer","type":"string"},"value":{"description":"The consumer status of the order","type":"string"}},"type":"object"}},"type":"object"},"personalisation":{"description":"The actions that are relevant to this customer / order","properties":{"callRestaurantAction":{"$ref":"#/components/schemas/HelpAction","description":"Action to call the restaurant, if possible at this time"},"dataLayer":{"additionalProperties":true,"description":"Key/values to be passed to analytics","type":"object"},"orderActions":{"description":"Actions pertaining to the order","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"topLevelActions":{"description":"Top-level actions not necessarily pertaining to the order","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"}},"type":"object"},"restaurant":{"description":"The restaurant of the most recent or specified order","properties":{"name":{"description":"Name of the restaurant","type":"string"},"telephone":{"description":"Restaurant's telephone number","type":"string"},"thumbnail":{"description":"URI for the restaurant's thumbnail image","type":"string"}},"type":"object"},"user":{"description":"The current user","properties":{"isLoggedIn":{"description":"Is the user currently logged in?","type":"boolean"},"name":{"description":"The user's name","type":"string"}},"type":"object"}},"type":"object"},"DayOfWeek":{"description":"","enum":[0,1,2,3,4,5,6],"type":"integer","x-enumNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},"Deal":{"properties":{"BasketProductIds":{"items":{"type":"string"},"type":"array"},"CategoryId":{"type":"string"},"DealGroups":{"items":{"$ref":"#/components/schemas/DealGroup"},"type":"array"},"Name":{"type":"string"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"TotalPrice":{"format":"decimal","type":"number"},"Variation":{"nullable":true,"type":"string"}},"type":"object"},"DealGroup":{"properties":{"DealGroupId":{"type":"string"},"Products":{"items":{"$ref":"#/components/schemas/DealProduct"},"type":"array"}},"type":"object"},"DealItemVariation":{"example":{"additionPrice":50,"dealItemVariationId":"8548153","maxChoices":1,"minChoices":0},"properties":{"additionPrice":{"description":"Selecting this modifier will increase the base price of the variation by this amount in the minor unit of the currency.","format":"int32","type":"number"},"dealItemVariationId":{"description":"A referenced variation id that can be a part of a deal group.","type":"string"},"maxChoices":{"description":"The maximum number of times this deal item variation can be chosen within a given deal group.","format":"int32","type":"integer"},"minChoices":{"description":"The minimum number of times this deal item variation can be chosen within a given deal group.","format":"int32","type":"integer"}},"type":"object"},"DealProduct":{"properties":{"ModifierGroups":{"items":{"$ref":"#/components/schemas/ModifierGroup"},"nullable":true,"type":"array"},"Name":{"type":"string"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"RemovedIngredients":{"items":{"$ref":"#/components/schemas/RemovedIngredient"},"nullable":true,"type":"array"},"TotalPrice":{"format":"decimal","type":"number"},"Variation":{"nullable":true,"type":"string"}},"type":"object"},"DeliveryDriverInfo":{"additionalProperties":false,"properties":{"arrivalTimeAtRestaurant":{"description":"The ISO-8601 datetime arrival time of the driver","format":"date-time","nullable":true,"type":"string"},"deliveryState":{"description":"Current state of the delivery","enum":["Accepted","TransmissionFailed"],"nullable":true,"type":"string"},"driverContactNumber":{"description":"The driver's contact telephone number","nullable":true,"type":"string"},"driverName":{"description":"The driver's first name","nullable":true,"type":"string"},"dynamicArrivalEstimate":{"description":"The ISO-8601 datetime dynamic estimated arrival of the driver","format":"date-time","nullable":true,"type":"string"},"estimatedArrivalTime":{"description":"The ISO-8601 datetime estimated arrival of the driver","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"DeliveryFee":{"properties":{"deliveryCharge":{"description":"base delivery charge for a given zone","properties":{"currency":{"description":"Currency code in ISO 4217 format","type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","type":"integer"}},"type":"object"},"freeDelivery":{"description":"Free delivery over order price","properties":{"currency":{"description":"Currency code in ISO 4217 format","type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","type":"integer"}},"type":"object"},"minimumOrder":{"description":"Minimum order value","properties":{"currency":{"description":"Currency code in ISO 4217 format","type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","type":"integer"}},"type":"object"},"smallOrderCharge":{"description":"delivery charge for orders that has order value less then `minimumOrder`","properties":{"currency":{"description":"Currency code in ISO 4217 format","type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","type":"integer"}},"type":"object"},"zoneId":{"description":"Id of assigned zone","type":"string"},"zoneName":{"description":"Name of assigned zone","type":"string"}},"type":"object"},"DeliveryZone":{"example":{"deliveryMinutes":5,"unboundedZone":{"items":[{"coordinates":null,"items":[{"latitude":57.159200668,"longitude":-2.08593559299993},{"latitude":57.459200668,"longitude":-2.18593559299993},{"latitude":57.159200668,"longitude":-2.28593559299993},{"latitude":57.159200668,"longitude":-2.08593559299993}]}]},"zoneId":"1"},"properties":{"deliveryMinutes":{"description":"geographical zone generated by SKIP, based on delivery minutes.","format":"int32","type":"integer"},"unboundedZone":{"description":"json representation of delivery zone","properties":{"coordinates":{"description":"geographical polygon https://tools.ietf.org/html/rfc7946#section-3.1.4. It might consist from multiple linear rings","items":{"properties":{"coordinates":{"description":"geographical coordinates of linear ring","items":{"properties":{"latitude":{"description":"geographical point latitude","format":"decimal","type":"number"},"longitude":{"description":"geographical point longitude","format":"decimal","type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"zoneId":{"description":"id of the zone","type":"string"}},"type":"object"},"Discount":{"additionalProperties":false,"properties":{"Amount":{"description":"The amount of discount","format":"decimal","type":"number"},"VoucherType":{"$ref":"#/components/schemas/VoucherType","description":"The type of discount"}},"type":"object"},"DiscoveryResponse":{"example":{"searchResults":[{"availabilities":[{"canPreOrder":false,"isOpen":true,"nextAvailability":{"AvailableFrom":"2025-04-15T13:52:07.556Z"},"serviceType":"Delivery"}],"cuisines":[{"name":"Pizza","seoName":"pizza"},{"name":"fish-and-chips","seoName":"Fish & Chips"},{"name":"Halal","seoName":"halal"}],"name":"Example Restaurant","restaurantId":"12345"}]},"properties":{"searchResults":{"description":"Restaurants serving the requested area","items":{"$ref":"#/components/schemas/DiscoveryResponseItem"},"type":"array"}},"type":"object"},"DiscoveryResponseAvailabilities":{"properties":{"canPreOrder":{"description":"If the restaurant is in a pre order state","type":"boolean"},"isOpen":{"description":"If the restaurant is in an open state. This also assumes it is accepting orders","type":"boolean"},"nextAvailability":{"$ref":"#/components/schemas/DiscoveryResponseAvailability","description":"When the restaurant is next available"},"serviceType":{"description":"The type of service the restaurant availability is","enum":["Unknown","Delivery","Collection"],"type":"string"}},"type":"object"},"DiscoveryResponseAvailability":{"properties":{"availableFrom":{"description":"Date and time the restaurant is available from. Format - 'yyyy-dd-MMTHH:mm:ssZ'","format":"date-time","type":"string"}},"type":"object"},"DiscoveryResponseCuisine":{"properties":{"name":{"description":"Display name of the cuisine","type":"string"},"seoName":{"description":"Sanitized name of the cuisine, compatible with URLs","type":"string"}},"type":"object"},"DiscoveryResponseItem":{"example":{"availabilities":[{"canPreOrder":false,"isOpen":true,"nextAvailability":{"AvailableFrom":"2025-04-15T13:52:07.556Z"},"serviceType":"Delivery"}],"cuisines":[{"name":"Pizza","seoName":"pizza"},{"name":"fish-and-chips","seoName":"Fish & Chips"},{"name":"Halal","seoName":"halal"}],"name":"Example Restaurant","restaurantId":"12345"},"properties":{"availabilities":{"description":"Availabilities of the restaurant","items":{"$ref":"#/components/schemas/DiscoveryResponseAvailabilities"},"type":"array"},"cuisines":{"description":"Cuisines of the restaurant","items":{"$ref":"#/components/schemas/DiscoveryResponseCuisine"},"type":"array"},"name":{"description":"Display name of the restaurant","type":"string"},"restaurantId":{"description":"Id of the restaurant","type":"string"}},"type":"object"},"DoNotUseStatus":{"description":"The usability status of a courier","enum":["IN_USE","NOT_IN_USE","UNRESPONSIVE","PAUSE_ORDERS","CANCELLATION"],"type":"string"},"DueTimeChange":{"additionalProperties":false,"properties":{"newTimeDue":{"description":"New DateTime of the order due in ISO 8601 format","format":"date-time","type":"string"}},"type":"object"},"EposState":{"description":"Current state of sending Order to EPOS system","enum":["None","Failed","FailedAcknowledged","FailedDismissed"],"type":"string"},"ExperimentContext":{"example":{"Client":"Web","ClientVersion":"2.0.0.1390","Culture":"en-GB","IsBetaClient":false,"UserAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0","UserBucket":"047850da-ccb3-491f-b5a5-43f186e4344b"},"properties":{"Client":{"description":"Type of client making the request.","enum":["Web","Android","iOS","Mobile","All","Test"],"type":"string"},"ClientVersion":{"description":"The version of the experiment client.","type":"string"},"Culture":{"description":"Culture of the request.","type":"string"},"IsBetaClient":{"description":"Client is a beta instance.","type":"boolean"},"UserAgent":{"description":"Browser user agent.","type":"string"},"UserBucket":{"description":"Representation of how the user has been partitioned into experiments.","format":"uuid","type":"string"}},"type":"object"},"ExperimentErrorResponse":{"description":"The error object returned when an operation fails","properties":{"Message":{"type":"string"}},"type":"object"},"ExperimentEvent":{"description":"Represents a possible experiment event on personalised help attached to customisation or to a Help Action. This will be sent from the client as an ExperimentV2 Google Analytics event","properties":{"id":{"description":"Unique but meaningful id for the experiment","type":"string"},"name":{"description":"A name that describes the experiment","type":"string"},"parentId":{"description":"The parent experiment id of the current experiment","type":"string"},"platform":{"description":"The platform where the experiment comes from","type":"string"},"variantName":{"description":"The name of the variant the user is bucketed into","type":"string"},"version":{"description":"The version of the running experiment","type":"string"}},"type":"object"},"ExperimentResultResponse":{"example":{"AssociatedTicket":"EX-1234","Name":"webexperiment","ParentTicket":"EX-123","Partition":"variant1","Version":2},"properties":{"AssociatedTicket":{"description":"Associated jira experiment ticket.","type":"string"},"Name":{"description":"The experiment name.","type":"string"},"ParentTicket":{"description":"Parent jira experiment ticket.","type":"string"},"Partition":{"description":"Experiment partition.","type":"string"},"Version":{"description":"Version number of the experiment.","format":"int32","type":"integer"}},"type":"object"},"ExperimentResultsResponse":{"example":{"iosexperiment":{"AssociatedTicket":"EX-8888","Name":"iosexperiment","ParentTicket":"EX-777","Partition":"variant5","Version":3},"webexperiment":{"AssociatedTicket":"EX-1234","Name":"webexperiment","ParentTicket":"EX-123","Partition":"variant1","Version":2}},"properties":{"Active":{"additionalProperties":{"$ref":"#/components/schemas/ExperimentResultResponse"},"description":"The active (enabled) experiments.","readOnly":true,"type":"object"}},"type":"object"},"ExperimentValue":{"description":"Defines data related to an experiment.","properties":{"name":{"description":"The name of the experiment.","type":"string"},"variant":{"description":"The value that the user has been bucketed into, also known as the variant. For\r\nexample in an A/B test, this would be \"A\" or \"B\".","type":"string"}},"required":["name","variant"],"type":"object"},"ExternalSearchResponse":{"properties":{"Restaurants":{"items":{"properties":{"Address":{"properties":{"City":{"type":"string"},"FirstLine":{"type":"string"},"Latitude":{"type":"number"},"Longitude":{"type":"number"},"Postcode":{"type":"string"}},"type":"object"},"DeliveryEtaMinutes":{"properties":{"Approximate":{"type":"number"},"RangeLower":{"type":"number"},"RangeUpper":{"type":"number"}},"type":"object"},"DriveDistance":{"type":"number"},"DriveInfoCalculated":{"type":"boolean"},"Id":{"type":"number"},"IsOpenNow":{"type":"boolean"},"IsOpenNowForDelivery":{"type":"boolean"},"Name":{"type":"string"},"UniqueName":{"type":"string"},"Url":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"Fee":{"description":"The object which encapsulates a Fee","example":{"description":"A charge for bags in delivery","serviceTypes":{"collection":{"amount":5},"default":{"amount":0},"delivery":{"amount":10}}},"properties":{"description":{"description":"A description of what the Fee is","type":"string"},"serviceTypes":{"description":"Contains Service type specific fee values. If set, default can be used to apply a fee to as yet unspecified service types","properties":{"collection":{"$ref":"#/components/schemas/ServiceTypeFeeConfiguration","description":"Configuration of the fee for the collection service type"},"default":{"$ref":"#/components/schemas/ServiceTypeFeeConfiguration","description":"Configuration of the fee for any service type which is not explicitly configured"},"delivery":{"$ref":"#/components/schemas/ServiceTypeFeeConfiguration","description":"Configuration of the fee for the delivery service type"}},"type":"object"}},"type":"object"},"Fees":{"description":"The calculated courier payment components.","properties":{"bonuses":{"description":"List of bonuses that may be granted to the courier under specific situations.","items":{"$ref":"#/components/schemas/BonusSummary"},"maxItems":1,"minItems":1,"type":"array"},"deliveryFee":{"description":"Delivery fee paid by the customer","example":500,"format":"integer","type":"number"},"driveScoreSubsidy":{"description":"Drive score subsidy paid to courier","example":200,"format":"integer","type":"number"},"jobPay":{"description":"Job pay is the sum of the pay components subsidy, drive score subsidy and delivery fee.","example":100,"format":"integer","type":"number"},"reimbursements":{"description":"Reimbursements paid to courier. This might occur in the event of an order cancellation, order other refundable reasons.","example":100,"format":"integer","type":"number"},"subsidy":{"description":"Skip subsidy paid to courier","example":90,"format":"integer","type":"number"},"tip":{"description":"Tip the courier might get from customers when an order is placed","example":180,"format":"integer","type":"number"}},"type":"object"},"FlexStateType":{"enum":["CODE_RED","OPEN","SEEKING"],"type":"string"},"FlowResponse":{"example":{"modals":{},"stepResponse":{"closeButton":{"action":"/uk/flows/close","buttonEvent":{"action":"form_cancel_order","category":"engagement","label":"close","value":0},"buttonType":"CloseButton","data":{},"department":"LiveChat","event":{"dataLayer":{"screenName":"/cancel-order/self-cancel-charged","transactionData_dateDiff":-3600,"transactionData_delay":-1800}},"id":"EndFlow","notes":"note","postText":[],"preText":[],"title":"Close","type":"EndFlow"},"data":{"actions":[{"action":"/uk/flows/cancellation/1234/confirm?reasonCode=cust_cancelled_changed_mind&flowId=XXX","buttonEvent":{"action":"form_cancel_order","category":"engagement","label":"confirm_charged","value":550},"buttonType":"Primary","data":null,"department":"LiveChat","id":"ConfirmCancel","notes":null,"postText":[],"preText":[],"title":"Cancel order - pay £5.50","type":"ChapiPost"},{"action":null,"buttonEvent":{"action":"form_cancel_order","category":"engagement","label":"close","value":0},"buttonType":"Secondary","data":{},"department":"LiveChat","id":"EndFlow","notes":null,"postText":[],"preText":[],"title":"Keep my order","type":"EndFlow"}],"body":["You will need to pay for 50% of your order. This charge will come to £5.50.","We are unable to offer a full refund because the restaurant has already started preparing your food."],"header":"Are you sure you want to cancel this order?","iconType":null,"title":"Cancel order"},"type":"TextAndActions"}},"properties":{"modals":{"additionalProperties":{"$ref":"#/components/schemas/FlowStep"},"description":"Dictionary of strings to `FlowStepResponses`","type":"object"},"stepResponse":{"properties":{"data":{"$ref":"#/components/schemas/FlowStep"},"type":{"enum":["TextAndActions","ItemSelection","BadItemIssueSelection","RequestCsat","LateOrderUpdateReceived"],"type":"string"}},"type":"object"}},"type":"object"},"FlowStep":{"description":"The possible steps that can be returned as part of flows","oneOf":[{"$ref":"#/components/schemas/TextAndActionsStep"},{"$ref":"#/components/schemas/ItemSelectionStep"},{"$ref":"#/components/schemas/BadItemIssueSelectionStep"},{"$ref":"#/components/schemas/RequestCsatStep"},{"$ref":"#/components/schemas/LateOrderUpdateReceivedStep"}]},"FlowStepBase":{"description":"Abstract base schema for flow steps.","properties":{"closeButton":{"$ref":"#/components/schemas/HelpAction"},"experimentEvents":{"description":"list of experiments running for this client","items":{"$ref":"#/components/schemas/ExperimentEvent"},"type":"array"},"screenEvent":{"properties":{"dataLayer":{"additionalProperties":true,"properties":{"screenName":{"type":"string"}},"type":"object"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"GeneratePresignedFIleUploadUrlRequest":{"description":"Request that contains information about file that will be uploaded to an AWS S3 bucket","example":{"fileName":"menu.pdf","fileSizeInBytes":4574745},"properties":{"fileName":{"description":"The name of file that will be uploaded to the AWS S3 bucket","type":"string"},"fileSizeInBytes":{"description":"The size of file that will be uploaded to the AWS S3 bucket, in bytes","format":"int32","type":"number"}},"type":"object"},"GeneratePresignedFIleUploadUrlResponse":{"description":"Response that provides all needed metadata to build signed request to upload file to AWS S3 bucket from a client application","example":{"fields":{"Content-Type":"application/pdf","Policy":"...redacted...","X-Amz-Algorithm":"AWS4-HMAC-SHA256","X-Amz-Credential":"...redacted...","X-Amz-Date":"20200423T120247Z","X-Amz-Security-Token":"...redacted...","X-Amz-Signature":"...redacted...","bucket":"qa28-presigned-post-data","key":"3c816agk9cpvahl_menu.pdf"},"url":"https://s3.eu-west-1.amazonaws.com/qa28-presigned-post-data"},"properties":{"fields":{"description":"Request metadata to make upload to S3 bucket","properties":{"Content-Type":{"description":"Content-Type of uploaded file","type":"string"},"Policy":{"description":"The Base64 encoded security policy that describes what is permitted in the request","type":"string"},"X-Amz-Algorithm":{"description":"The signing algorithm that you used to calculate the signature.","type":"string"},"X-Amz-Credential":{"description":"a string of the following form `<aws-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request`","type":"string"},"X-Amz-Date":{"description":"The date value specified in the ISO8601 formatted string.","type":"string"},"X-Amz-Security-Token":{"description":"AWS account token","type":"string"},"X-Amz-Signature":{"description":"The HMACSHA256 hash of the security policy","type":"string"},"bucket":{"description":"Name of the bucket in which file will be uploaded","type":"string"},"key":{"description":"File name that will be obtained after uploading","type":"string"}},"type":"object"},"url":{"description":"The URL of the bucket in which file will be uploaded","type":"string"}},"type":"object"},"GeoLocation":{"additionalProperties":false,"properties":{"accuracy":{"description":"How accurate the location is","format":"double","type":"number"},"heading":{"description":"The direction of travel","format":"double","type":"number"},"latitude":{"description":"The latitude component of the location","format":"double","nullable":true,"type":"number"},"longitude":{"description":"The longitude component of the location","format":"double","nullable":true,"type":"number"},"speed":{"description":"The speed of travel","format":"double","type":"number"}},"type":"object"},"Geometry":{"description":"Geometry information for consumers location","example":{"coordinates":[-0.10358,51.51469],"type":"Point"},"properties":{"coordinates":{"description":"first element of the array represents longitude, second latitude","items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"type":{"description":"type of primitive","type":"string"}},"type":"object"},"GetAvailableFulfilmentTimesResponse":{"properties":{"asapAvailable":{"description":"If the option to fulfil an order as soon as possible is available.","nullable":false,"type":"boolean"},"times":{"description":"Collection of time bands for when an order can be fulfilled.","items":{"description":"A time band for when an order can be fulfilled.","nullable":false,"properties":{"from":{"description":"Start time represented in ISO 8601 UTC (Zulu Time).","format":"date-time","nullable":false,"type":"string"},"to":{"description":"End time represented in ISO 8601 UTC (Zulu Time).\n\nThis time can be equal to the from time.\n","format":"date-time","nullable":false,"type":"string"}},"required":["from","to"],"type":"object"},"maxItems":576,"minItems":0,"nullable":false,"type":"array"}},"required":["times","asapAvailable"],"type":"object"},"GetDeliveryFeesResponse":{"example":{"deliveryFees":[{"deliveryCharge":{"currency":"GBP","value":100},"freeDelivery":{"currency":"GBP","value":1000},"minimumOrder":{"currency":"GBP","value":500},"smallOrderCharge":{"currency":"GBP","value":200},"zoneId":"1","zoneName":"Zone 1"},{"deliveryCharge":{"currency":"GBP","value":200},"freeDelivery":{"currency":"GBP","value":2000},"minimumOrder":{"currency":"GBP","value":500},"smallOrderCharge":{"currency":"GBP","value":300},"zoneId":"2","zoneName":"Zone 2"}]},"properties":{"deliveryFees":{"description":"restaurant delivery fees","items":{"$ref":"#/components/schemas/DeliveryFee"},"nullable":false,"type":"array"}},"type":"object"},"GetDeliveryZonesResponse":{"example":{"deliveryZones":[{"deliveryMinutes":5,"unboundedZone":{"items":[{"coordinates":null,"items":[{"latitude":57.159200668,"longitude":-2.08593559299993},{"latitude":57.459200668,"longitude":-2.18593559299993},{"latitude":57.159200668,"longitude":-2.28593559299993},{"latitude":57.159200668,"longitude":-2.08593559299993}]}]},"zoneId":"1"},{"deliveryMinutes":7,"unboundedZone":{"items":[{"coordinates":null,"items":[{"latitude":57.159200668,"longitude":-2.08593559299993},{"latitude":57.459200668,"longitude":-2.18593559299993},{"latitude":57.159200668,"longitude":-2.28593559299993},{"latitude":57.159200668,"longitude":-2.08593559299993}]}]},"zoneId":"2"}]},"properties":{"deliveryZones":{"description":"restaurant delivery zones. Maximum `deliveryZones` response size should be less than 20KB","items":{"$ref":"#/components/schemas/DeliveryZone"},"maxItems":5,"nullable":false,"type":"array","uniqueItems":true}},"type":"object"},"GetSettingsResponse":{"example":{"deliveryAreaFeatureState":"Enabled","deliveryFeesFeatureState":"Unreleased","isRestaurantWhiteListed":true},"properties":{"deliveryAreaFeatureState":{"description":"Delivery area feature state.","enum":["Unreleased","Disabled","Enabled"],"nullable":false,"type":"string"},"deliveryFeesFeatureState":{"description":"Delivery fees feature state.","enum":["Unreleased","Disabled","Enabled"],"nullable":false,"type":"string"},"isRestaurantWhiteListed":{"description":"We are going to use smooth 'delivery fees' feature rollout. So, in the first iteration feature will be available for a several restaurants.","type":"boolean"}},"type":"object"},"GetSupportRequestTypesResponse":{"description":"Array of types request belongs to","example":[{"name":"Top Placement","subtype":[{"name":"Interest","subtype":[],"value":"top_placement__interest"},{"name":"Issue","subtype":[],"value":"top_placement__issue"}],"value":"top_placement"},{"name":"Menu update","subtypes":[],"value":"menu_update"}],"items":{"$ref":"#/components/schemas/SupportRequestType"},"minLength":1,"type":"array"},"GetSupportRequestsResponse":{"description":"Response representing support requests from restaurant","example":{"paging":{"count":35},"requests":[{"id":"5646645","status":"open","subject":"Top Placement","submittedDate":"2025-04-15T13:52:07.557Z"},{"id":"235253","status":"closed","subject":"Change Logo Request","submittedDate":"2025-04-15T13:52:07.557Z"}]},"properties":{"paging":{"description":"Consists of pagination information","properties":{"count":{"description":"The total number of results","format":"int64","type":"integer"}},"type":"object"},"requests":{"description":"List of restaurant support requests","items":{"$ref":"#/components/schemas/SupportRequest"},"type":"array"}},"type":"object"},"GiftCardsErrorResponse":{"properties":{"code":{"format":"int32","type":"integer"},"codeText":{"type":"string"}},"type":"object"},"GroupType":{"description":"","enum":[0,1,2],"type":"integer","x-enumNames":["Unknown","DynamicSingleUse","StaticMultipleUse"]},"HelpAction":{"description":"Represents a possible action (i.e. button) on personalised help home page or as part of a flow","properties":{"action":{"description":"The specific action a button tap invokes.  Content depends on type.","type":"string"},"buttonEvent":{"description":"The analytics event to send on tap","properties":{"action":{"description":"Google Analytics action","type":"string"},"category":{"description":"Google Analytics category","type":"string"},"label":{"description":"Google Analytics label (if any)","type":"string"},"value":{"description":"Google Analytics value (if any)","type":"number"}},"type":"object"},"buttonType":{"description":"Display type of button","enum":["Primary","Secondary","TextOnly","CloseButton","Option","OptionExtra","FoodSafety"],"type":"string"},"data":{"additionalProperties":true,"description":"Data to post back (for use with type: ChapiPost).","type":"object"},"department":{"description":"LiveChat department (for use with type: LiveChat)","type":"string"},"id":{"description":"Unique but meaningful id for the action","type":"string"},"notes":{"description":"Notes to pass to LiveChat (for use with type: LiveChat)","type":"string"},"postText":{"description":"Paragraphs to display after button","items":{"type":"string"},"type":"array"},"preText":{"description":"Paragraphs to display before button","items":{"type":"string"},"type":"array"},"title":{"description":"Caption for the button","type":"string"},"type":{"description":"The type of action a button tap invokes","enum":["LogIn","Call","Chatbot","LiveChat","ChapiGet","ChapiPost","Link","HelpArticleLink","EndFlow","Email","Deferred","OpenModal","CloseModal","NoAction"],"type":"string"}},"type":"object"},"IgnoredRestaurantIds":{"example":{"ignoredRestaurantIds":["123","456"]},"properties":{"ignoredRestaurantIds":{"description":"A list of restaurant ids that were present in a request but were ignored.","items":{"type":"string"},"type":"array"}},"type":"object"},"Ingredients":{"additionalProperties":false,"description":"List of ingredients","example":{"name":"wasser"},"properties":{"name":{"description":"Name of ingredient","nullable":false,"type":"string"}},"type":"object"},"InternalServerErrorMarketingResponse":{"$ref":"#/components/schemas/MarketingErrorResponse","description":"500 Internal Server Error Returned","example":{"errors":[{"description":"Internal Server Error","errorCode":"500"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","message":"Something has gone wrong, please try again later."}},"InvalidProduct":{"properties":{"Name":{"type":"string"},"ProductId":{"type":"string"}},"type":"object"},"Item":{"description":"Information about an item in the claim","example":{"additionalContext":"Potato skin was damaged","decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"totalClaimed":1900,"unitPrice":2000},"properties":{"additionalContext":{"description":"Comment giving additional context","nullable":true,"type":"string"},"decision":{"description":"Indicates whether decision on the claimed item was made and what was that decision","enum":["NotDecided","Accepted","Rejected"],"type":"string"},"id":{"description":"Item identifier","type":"string"},"name":{"description":"Item name","type":"string"},"quantity":{"description":"Quantity of items","type":"number"},"totalClaimed":{"description":"Total claimed money in smallest unit of relevant currency","type":"number"},"unitPrice":{"description":"Price of a single unit in smallest unit of relevant currency","type":"number"}},"type":"object"},"ItemDecision":{"description":"Decision on the item","example":{"decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"},"properties":{"decision":{"description":"Decision made about the item","enum":["Accepted","Rejected"],"type":"string"},"id":{"description":"Item identifier","type":"string"}},"type":"object"},"ItemDiscount":{"additionalProperties":false,"example":{"discountPercentage":100,"modifierGroups":[{"MinimumChoices":1,"ModifierGroupId":"modifier111","Modifiers":[{"MaximumAdditionalModifiers":0,"ModifierId":"NoSugar11","Quantity":1,"TotalPrice":0}]}],"productId":"Lemonade1234"},"properties":{"discountPercentage":{"description":"The discount percentage applied.","format":"integer","type":"number"},"modifierGroups":{"description":"The collection of preselected modifier groups for the item.","items":{"$ref":"#/components/schemas/ModifierGroup"},"nullable":true,"type":"array"},"productId":{"description":"The unique identifier of the discounted product item.","type":"string"}},"title":"ItemDiscount","type":"object"},"ItemDiscountPrompt":{"additionalProperties":false,"example":{"description":"Get free lemonade with Super Burger","header":"Free item!","itemDiscounts":[{"discountPercentage":100,"modifierGroups":[{"MinimumChoices":1,"ModifierGroupId":"modifier111","Modifiers":[{"MaximumAdditionalModifiers":0,"ModifierId":"NoSugar11","Quantity":1,"TotalPrice":0}]}],"productId":"Lemonade1234"}],"title":"Get free lemonade"},"properties":{"description":{"description":"The description of offer to show in prompt for customer","type":"string"},"header":{"description":"The header to show in prompt for customer","type":"string"},"itemDiscounts":{"description":"The array of items with discounts","items":{"$ref":"#/components/schemas/ItemDiscount"},"type":"array"},"title":{"description":"The title to show in prompt for customer","type":"string"}},"title":"ItemDiscountPrompt","type":"object"},"ItemSelectionStep":{"allOf":[{"$ref":"#/components/schemas/FlowStepBase"},{"properties":{"actions":{"description":"Array of actions (i.e. buttons)","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"body":{"description":"Array of paragraphs for body text","items":{"type":"string"},"type":"array"},"header":{"description":"Display header","type":"string"},"items":{"description":"Array of items in order to choose from","items":{"properties":{"id":{"description":"Unique id of item","type":"string"},"name":{"description":"Name of item","type":"string"},"price":{"description":"Formatted price of item","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}],"description":"Flow step used for selecting problematic items","type":"object"},"JobDetails":{"description":"The details of a job which may be assigned to a courier for delivery.","properties":{"alcoholDelivery":{"description":"The order contains alcoholic products when true.","type":"boolean"},"amount":{"description":"The courier's balance regarding the job. When cash orders happen usually the courier pays out of his pocket, that would add credit to him until he's paid in full.","example":0,"format":"integer","type":"number"},"courierId":{"description":"Courier identifier for the job details","example":"61376a78-12e1-4f11-bba2-2097a65s2d75","type":"string"},"deliveryId":{"description":"Delivery identifier for the job.","example":"61376a78-12e1-4f11-bba2-2097a65s2d75","type":"string"},"destination":{"$ref":"#/components/schemas/Address","description":"The job address complete information."},"distance":{"description":"The distance between the courier location and the job destination.","format":"integer","type":"number"},"fees":{"$ref":"#/components/schemas/Fees","description":"The calculated components of the courier payment for the job."},"groceryDelivery":{"description":"The order contains grocery delivery when true.","type":"boolean"},"jobType":{"$ref":"#/components/schemas/JobType","description":"The job type classifies the type of job assigned to the courier. When an order is placed by the customer, two jobs are created for the courier, a collect job and a deliver job, basically the courier have to complete both jobs, first the collect job, which is the one where the order is collected from the restaurant, finally the deliver job as the job of delivering the order to the customer."},"orderNumber":{"description":"Incrementing number generated for each particular order.","example":"10113045","type":"string"},"paymentType":{"$ref":"#/components/schemas/SyncPaymentType","description":"The order payment status associated with the job."},"restaurantName":{"description":"Restaurant's name.","example":"MacDonalds","type":"string"},"status":{"$ref":"#/components/schemas/JobStatus","description":"All the possible job status that might occur during a delivery process."},"time":{"description":"Job creation time stamp.","example":1593444834,"format":"long","type":"number"}},"type":"object"},"JobStatus":{"description":"All possible job status during a delivery process.","enum":["UNASSIGNED","ASSIGNED_PENDING_ACCEPTED","ASSIGNED","ACCEPTED","PARKING","ARRIVED","ENTERED","COMPLETED"],"type":"string"},"JobType":{"description":"The job type classifies the type of job assigned to the courier. When an order is placed by the customer, two jobs are created for the courier, a collect job and a deliver job, basically the courier have to complete both jobs, first the collect job, which is the one where the order is collected from the restaurant and the deliver job as the job of delivering the order to the customer.","enum":["COLLECT","DELIVER"],"type":"string"},"Justification":{"description":"The reason of the claim rejection and optional comments from the restaurant","example":{"comments":"The food was packed properly","reason":"Other"},"nullable":true,"properties":{"comments":{"description":"Comment from the restaurant owner in case they rejected at least one of the items and want to type their own rejection reason","nullable":true,"type":"string"},"reason":{"description":"One of the predefined reasons","enum":["AlreadyRefunded","ItemReplaced","PartialRefundRequired","WasNotMissing","WillRedeliver","OrderWasHot","OrderWasOnTime","OrderWasPacked","FoodWasIntact","AddExtraItem","Other"],"type":"string"}},"type":"object"},"LateOrderCompensationOption":{"additionalProperties":false,"properties":{"amount":{"description":"Cost of the option in local currency","format":"decimal","type":"number"},"isRecommended":{"description":"Whether this option is the recommended option","type":"boolean"}},"type":"object"},"LateOrderCompensationQuery":{"additionalProperties":false,"properties":{"compensationOptions":{"description":"List of possible options for compensation","items":{"$ref":"#/components/schemas/LateOrderCompensationOption"},"nullable":true,"type":"array"},"isViewed":{"description":"Has this compensation query been viewed","type":"boolean"},"queryId":{"description":"The ID of the late order compensation query","nullable":true,"type":"string"},"response":{"$ref":"#/components/schemas/LateOrderCompensationResponse","description":"The restaurants response to the late order compensation query","nullable":true}},"type":"object"},"LateOrderCompensationResolutionRequest":{"additionalProperties":false,"properties":{"acceptedAmount":{"description":"Accepted compensation amount","format":"double","nullable":true,"type":"number"},"isAccepted":{"description":"Is compensation accepted","type":"boolean"},"rejectedReasonCode":{"description":"Reason code for rejection","enum":["ExtraItem","StuckInTraffic","BusierThanExpected","BadWeather","UnexpectedProblems"],"nullable":true,"type":"string"}},"type":"object"},"LateOrderCompensationResponse":{"additionalProperties":false,"properties":{"acceptedAmount":{"description":"The amount of compensation if accepted","format":"decimal","nullable":true,"type":"number"},"isAccepted":{"description":"Has the late order compensation request been accepted","type":"boolean"},"rejectedReasonCode":{"description":"The rejection reason if not accepted","enum":["ExtraItem","StuckInTraffic","BusierThanExpected","BadWeather","UnexpectedProblems"],"nullable":true,"type":"string"}},"type":"object"},"LateOrderCompensationRestaurantResolution":{"example":{"acceptedAmount":500,"isAccepted":true,"orderId":"69rqfxyfze2gjzf5nusdcw"},"properties":{"acceptedAmount":{"description":"The monetary amount of compensation granted, in cents/pence. Required when `isAccepted = true`.","type":"integer"},"isAccepted":{"description":"Flag to indicate whether a compensation request has been accepted or rejected.","type":"boolean"},"orderId":{"description":"The ID of the late order compensation request that this response relates to.","type":"string"},"rejectedReasonCode":{"description":"\n- `BadTraffic` : The driver was stuck in heavy traffic, sorry.\n- `BadWeather` : The bad weather was delaying our deliveries, sorry.\n- `BusierThanExpected` : Our restaurant was busier than we expected.\n- `CompensatedWithItem` : We gave you something from the menu free of charge to make up for it.\n- `NoReason` : We're really sorry your order was late. We hope you enjoyed your food.","enum":["BadTraffic","BadWeather","BusierThanExpected","CompensatedWithItem","NoReason"],"type":"string"}},"type":"object"},"LateOrderInfo":{"additionalProperties":false,"properties":{"isLateOrder":{"description":"Is there a late order request","type":"boolean"},"lateOrderProcessed":{"description":"Has the late order request been processed by the restaurant","type":"boolean"}},"type":"object"},"LateOrderRequest":{"additionalProperties":false,"properties":{"additionalMinutesToAdd":{"description":"Amount of minutes added","format":"int32","nullable":true,"type":"integer"},"lateOrderStatus":{"description":"Reason to adding minutes","enum":["None","Preparing","OnItsWay","Delivered"],"nullable":true,"type":"string"}},"type":"object"},"LateOrderRestaurantResponse":{"properties":{"additionalDeliveryTimeToAddMinutes":{"description":"The amount of time to add to the current delivery estimate in minutes","type":"integer"},"lateOrderStatus":{"description":"The updated later order query status","enum":["Preparing","OnItsWay","Delivered"],"type":"string"}},"type":"object"},"LateOrderUpdateReceivedStep":{"allOf":[{"$ref":"#/components/schemas/FlowStepBase"},{"properties":{"actions":{"description":"Array of actions (i.e. buttons)","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"header":{"description":"Display header","type":"string"},"message":{"description":"Message from restaurant","type":"string"},"messageHeader":{"description":"Header for the message from restaurant","type":"string"},"newDueDate":{"description":"New expected due date","format":"date-time","type":"string"}},"type":"object"}],"description":"Flow step used to display the restaurant's response to a customer's Late Order update request","type":"object"},"LegacyTempOfflineStatus":{"default":"ClosedDueToEvent","description":"\n- `Unset` : Legacy value meaning online.\n- `None` : Legacy value meaning online.\n- `TempOffline` : The restaurant will go temporarily offline, typically for an undetermined amount of time (no end date).\n- `ClosedToday` : The restaurant will closed for the day and the event will end the next morning.\n- `ClosedDueToEvent` : The restaurant will go offline for an event (e.g. a holiday), these events will typically have an end time.\n- `FailedJctConnection` : The restaurant will go offline due to the POS device losing connection.\n- `NoTrOverride` : The restaurant will go offline for another reason that the restaurant cannot override.\n- `IgnoredOrders` : The restaurant will go offline due to ignoring orders.","enum":["Unset","None","TempOffline","ClosedToday","ClosedDueToEvent","FailedJctConnection","NoTrOverride","IgnoredOrders"],"type":"string"},"ListOfOfflineItemsResponse":{"example":{"offlineItems":[{"id":"111","nextAvailableAt":"2025-04-15T13:52:07.557Z","type":"variation"},{"id":"222","nextAvailableAt":"2025-04-15T13:52:07.557Z","type":"variation"},{"id":"888","nextAvailableAt":"2025-04-15T13:52:07.557Z","type":"modifier"},{"id":"999","nextAvailableAt":"2025-04-15T13:52:07.557Z","type":"modifier"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}},"properties":{"offlineItems":{"description":"List of offline items for a given restaurant.","items":{"$ref":"#/components/schemas/OfflineItemsResponse"},"type":"array"},"paging":{"description":"Consists of pagination information.","properties":{"cursors":{"description":"Consists of cursors markers used in pagination.","properties":{"after":{"description":"The value should be used in the query parameter named after. It is used as a cursor of the last returned record in the previous request, from which next offset going to be fetched. A missing or empty value indicates that the end of the result set has been reached.","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"LiveMetrics":{"description":"The live metrics object for a given delivery zone.","properties":{"aajlTimestamp":{"description":"Timestamp for the average assignable job load retrieved for a given delivery zone.","example":1585260360000,"format":"integer","type":"number"},"currentAajl":{"description":"Average assignable job load retrieved for a given delivery zone.","example":0.7,"format":"double","type":"number"},"marketplaceRank":{"description":"Current marketplace rank value retrieved for a given delivery zone.","example":-2,"format":"integer","type":"number"},"marketplaceRankStatus":{"description":"Marketplace On/Off status","type":"boolean"},"throttlingStatus":{"description":"Zone Throttling On/Off status","type":"boolean"},"zoneThrottling":{"description":"Current zone throttling value retrieved for a given delivery zone.","example":15,"format":"integer","type":"number"}},"type":"object"},"Manufacturer":{"example":{"brand":"Coca-Cola Zero","city":"Anderlecht","manufacturer":"Coca-Cola Erfrischungsgetränke AG, Postfach 67 01 56, 10207 Berlin","origin":"Deutschland","postalCode":"1070","streetAddress":"Bergense Steenweg 1424"},"properties":{"brand":{"description":"Brand name","nullable":true,"type":"string"},"city":{"description":"City","nullable":true,"type":"string"},"manufacturer":{"description":"Manufacturer name","nullable":true,"type":"string"},"origin":{"description":"Country","nullable":true,"type":"string"},"postalCode":{"description":"Postal Code","nullable":true,"type":"string"},"streetAddress":{"description":"Street Address","nullable":true,"type":"string"}},"type":"object"},"MarketingContentResponse":{"additionalProperties":true,"example":{"anotherField":"another value","selected":["subjectLine","anotherField"],"subjectLine":"humor"},"properties":{"selected":{"description":"The set of 'select' properties from the request that meet the following criteria: \n  1) The user has data for the property\n  2) The data for the given user is present in the 'accepted values' specified in the request.","items":{"type":"string"},"type":"array"}},"type":"object"},"MarketingError":{"additionalProperties":false,"properties":{"description":{"description":"Specific details about the error that may assist the you in resolving the issue","type":"string"},"errorCode":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"}},"type":"object"},"MarketingErrorResponse":{"additionalProperties":false,"properties":{"errors":{"description":"Underlying errors associated with the error","items":{"$ref":"#/components/schemas/MarketingError"},"nullable":true,"type":"array"},"faultId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"message":{"description":"Specific details about the error that may assist the you in resolving the issue","type":"string"}},"type":"object","x-abstract":true},"MarketingReportResponse":{"additionalProperties":{"properties":{"dataExtractionDateUTC":{"description":"The UTC datetime that the report data was extracted from BigQuery","format":"date-time","type":"string"},"reportData":{"description":"Report data as JSON object","nullable":true}},"type":"object"},"description":"The report data and the extraction date","example":{"orders-per-month":{"dataExtractionDateUTC":"2025-04-15T13:52:07.558Z","reportData":"[{'month':3,'year':2019,'order_count':630},{'month':4,'year':2019,'order_count':583}]"},"potential-orders-per-month":{"dataExtractionDateUTC":"2025-04-15T13:52:07.558Z","reportData":"[{'month':3,'year':2019,'potential_monthly_order_count':630},{'month':4,'year':2019,'potential_monthly_order_count':583}]"},"unique-customers":{"dataExtractionDateUTC":"2025-04-15T13:52:07.558Z","reportData":"[{'month':3,'year':2019,'unique_customer_count':630},{'month':4,'year':2019,'unique_customer_count':583}]"}},"type":"object"},"MarketplaceRank":{"description":"The marketplace rank object used to build a Ranking for a given delivery zone.","properties":{"aajl":{"description":"Average Assignable Job Load","example":1,"format":"integer","type":"number"},"enabled":{"description":"Status of the corresponding rank","type":"boolean"},"rank":{"description":"Rank position of Average Assignable Job Load","example":-20,"format":"integer","type":"number"}},"type":"object"},"MarketplaceRankingSettings":{"description":"The marketplace ranking settings object for all endpoints.","properties":{"id":{"description":"Delivery Zone Id","example":"fc71ee27-608f-4223-b2ea-2774eb83c6b4","type":"string"},"marketplaceRankingStatus":{"description":"Marketplace On/Off Status","type":"boolean"},"ranks":{"description":"Array of marketplace rank objects used to build a Ranking for a given delivery zone.","items":{"$ref":"#/components/schemas/MarketplaceRank"},"maxItems":9,"minItems":9,"type":"array"}},"type":"object"},"MarketplaceRankingSettingsList":{"description":"Marketplace Ranking Settings List","properties":{"marketplaceRankSettingsList":{"description":"List of Marketplace Ranking Settings","items":{"$ref":"#/components/schemas/MarketplaceRankingSettings"},"maxItems":3,"minItems":3,"type":"array"}},"type":"object"},"Menu":{"allOf":[{"$ref":"#/components/schemas/MenuBase"},{"properties":{"availabilities":{"description":"A set of availabilities that can later be referenced by individual menu items.","items":{"$ref":"#/components/schemas/Availability"},"type":"array"},"categories":{"description":"A set of categories that appear on the menu.","items":{"$ref":"#/components/schemas/Category"},"type":"array"},"items":{"description":"All of the menu items within the menu.","items":{"$ref":"#/components/schemas/MenuItem"},"type":"array"}},"type":"object"}],"example":{"categories":[{"description":"","id":"3","itemIds":["65143901"],"name":"Starters"},{"description":"","id":"4","itemIds":["23435309","33445308"],"name":"Deals"},{"description":"","id":"5","itemIds":["8547130","8547140"],"name":"Pizzas"},{"description":"","id":"6","itemIds":["6537130","6537140"],"name":"Drinks"}],"currency":"GBP","description":"My excellent menu","items":[{"dealGroups":[{"dealItemVariations":[{"additionPrice":0,"dealItemVariationId":"1577341","maxChoices":1,"minChoices":0}],"id":"23435309-1","name":"Choose your base","numberOfChoices":1},{"dealItemVariations":[{"additionPrice":0,"dealItemVariationId":"8547121","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"3547157","maxChoices":1,"minChoices":0},{"additionPrice":50,"dealItemVariationId":"8548153","maxChoices":1,"minChoices":0}],"id":"23435309-2","name":"Choose your halves","numberOfChoices":2}],"description":"Choose each half.","id":"23435309","labels":[],"modifierGroups":[],"name":"Half-and-half Pizza","type":"deal","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery"],"basePrice":3099,"dealGroupsIds":["23435309-1","23435309-2"],"dealOnly":false,"id":"23435309","modifierGroupsIds":[],"name":"","type":"noVariation"}]},{"dealGroups":[{"dealItemVariations":[{"additionPrice":0,"dealItemVariationId":"9750011","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"9750021","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"23435309","maxChoices":1,"minChoices":0}],"id":"33445308-1","name":"Choose your pizza","numberOfChoices":1},{"dealItemVariations":[{"additionPrice":13,"dealItemVariationId":"6537130","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"6537140","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"7739164","maxChoices":1,"minChoices":0}],"id":"33445308-2","name":"Choose your drink","numberOfChoices":1}],"description":"Choose a 14 inch Pizza (including half-and-half) and any drink. Note: Alcohol is only available for collection.","id":"33445308","labels":[],"modifierGroups":[],"name":"14 inch Pizza & A Drink For 1","type":"deal","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery"],"basePrice":3099,"dealGroupsIds":["33445308-1","33445308-2"],"dealOnly":false,"id":"33445308","modifierGroupsIds":[],"name":"","type":"noVariation"}]},{"dealGroups":[],"description":"","id":"65143901","labels":[],"modifierGroups":[{"id":"65143901-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"834502","maxChoices":1,"minChoices":0,"name":"Pitta Bread"},{"additionPrice":0,"id":"835700","maxChoices":1,"minChoices":0,"name":"Sourdough"},{"additionPrice":50,"id":"835601","maxChoices":1,"minChoices":0,"name":"Wholemeal"}],"name":"Choose your bread"},{"id":"65143901-req-2","maxChoices":2,"minChoices":2,"modifiers":[{"additionPrice":0,"id":"835340","maxChoices":2,"minChoices":0,"name":"Tzatziki"},{"additionPrice":0,"id":"835341","maxChoices":2,"minChoices":0,"name":"Taramasalata"},{"additionPrice":0,"id":"825344","maxChoices":2,"minChoices":0,"name":"Hummus"},{"additionPrice":0,"id":"825346","maxChoices":2,"minChoices":0,"name":"Onion"}],"name":"Choose your dips"}],"name":"Flat Bread and Dips (Pick any 2 Dips)","requireOtherProducts":false,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":650,"dealGroupsIds":[],"dealOnly":false,"id":"65143901","kitchenNumber":"90","modifierGroupsIds":["65143901-req-1","65143901-req-2"],"name":"","type":"noVariation"}]},{"dealGroups":[],"description":"","id":"1577341","labels":[],"modifierGroups":[{"id":"1577341-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Crust"}],"name":"Base","requireOtherProducts":true,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":200,"dealGroupsIds":[],"dealOnly":true,"id":"1577341","modifierGroupsIds":["1577341-req-1"],"name":"","type":"noVariation"}]},{"dealGroups":[],"description":"","id":"8547130","labels":[],"modifierGroups":[{"id":"8547130-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Choose your crust"},{"id":"8547130-opt-1","maxChoices":10,"minChoices":0,"modifiers":[{"additionPrice":50,"id":"1000","maxChoices":2,"minChoices":0,"name":"Mozzarella Cheese"},{"additionPrice":50,"id":"1001","maxChoices":1,"minChoices":0,"name":"Ham"},{"additionPrice":50,"id":"1002","maxChoices":1,"minChoices":0,"name":"Red Onion"},{"additionPrice":50,"id":"1003","maxChoices":1,"minChoices":0,"name":"Pepperoni"},{"additionPrice":50,"id":"1004","maxChoices":1,"minChoices":0,"name":"Olives"}],"name":"Any extra toppings?"}],"name":"Margherita","requireOtherProducts":true,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":500,"dealGroupsIds":[],"dealOnly":true,"id":"8547121","kitchenNumber":"100","modifierGroupsIds":["8547130-opt-1"],"name":"Half","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":1000,"dealGroupsIds":[],"dealOnly":false,"id":"8547130","kitchenNumber":"100","modifierGroupsIds":["8547130-req-1","8547130-opt-1"],"name":"12 inch","type":"variation"},{"availabilityIds":["1-lunch-delivery-weekday","2-lunch-collection-weekday","3-dinner-delivery-weekday","4-dinner-collection-weekday"],"basePrice":1200,"dealGroupsIds":[],"dealOnly":true,"id":"8543123","kitchenNumber":"200","modifierGroupsIds":["8547130-req-1","8547130-opt-1"],"name":"14 inch","type":"variation"}]},{"dealGroups":[],"description":"","id":"8547140","labels":[],"modifierGroups":[{"id":"8547140-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Choose your crust"},{"id":"8547140-opt-1","maxChoices":10,"minChoices":0,"modifiers":[{"additionPrice":50,"id":"1000","maxChoices":2,"minChoices":0,"name":"Mozzarella Cheese"},{"additionPrice":50,"id":"1001","maxChoices":2,"minChoices":0,"name":"Ham"},{"additionPrice":50,"id":"1002","maxChoices":2,"minChoices":0,"name":"Red Onion"},{"additionPrice":50,"id":"1003","maxChoices":4,"minChoices":2,"name":"Pepperoni"},{"additionPrice":50,"id":"1004","maxChoices":2,"minChoices":0,"name":"Olives"}],"name":"Any extra toppings?"},{"id":"9755052-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":250,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Choose your crust"},{"id":"9755052-opt-1","maxChoices":10,"minChoices":0,"modifiers":[{"additionPrice":70,"id":"1000","maxChoices":2,"minChoices":0,"name":"Mozzarella Cheese"},{"additionPrice":70,"id":"1001","maxChoices":2,"minChoices":0,"name":"Ham"},{"additionPrice":70,"id":"1002","maxChoices":2,"minChoices":0,"name":"Red Onion"},{"additionPrice":70,"id":"1003","maxChoices":2,"minChoices":0,"name":"Pepperoni"},{"additionPrice":70,"id":"1004","maxChoices":2,"minChoices":0,"name":"Olives"}],"name":"Any extra toppings?"}],"name":"Double Pepperoni","requireOtherProducts":false,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":500,"dealGroupsIds":[],"dealOnly":true,"id":"8548153","kitchenNumber":"100","modifierGroupsIds":["8547140-opt-1"],"name":"Half","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":1000,"dealGroupsIds":[],"dealOnly":false,"id":"8547140","kitchenNumber":"100","modifierGroupsIds":["8547140-req-1","8547140-opt-1"],"name":"12 inch","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":1200,"dealGroupsIds":[],"dealOnly":true,"id":"9750021","kitchenNumber":"200","modifierGroupsIds":["8547140-req-1","8547140-opt-1"],"name":"14 inch","type":"variation"},{"availabilityIds":["2-lunch-collection","4-dinner-collection"],"basePrice":1200,"dealGroupsIds":[],"dealOnly":false,"id":"9755052","kitchenNumber":"200","modifierGroupsIds":["9755052-req-1","9755052-opt-1"],"name":"18 inch","type":"variation"}]},{"dealGroups":[],"description":"","id":"3547157","labels":["vegetarian"],"modifierGroups":[{"id":"8547140-opt-1","maxChoices":10,"minChoices":0,"modifiers":[{"additionPrice":50,"id":"1000","maxChoices":2,"minChoices":0,"name":"Mozzarella Cheese"},{"additionPrice":50,"id":"1001","maxChoices":2,"minChoices":0,"name":"Ham"},{"additionPrice":50,"id":"1002","maxChoices":2,"minChoices":1,"name":"Red Onion"},{"additionPrice":50,"id":"1003","maxChoices":2,"minChoices":0,"name":"Pepperoni"},{"additionPrice":50,"id":"1004","maxChoices":2,"minChoices":1,"name":"Olives"}],"name":"Any extra toppings?"}],"name":"Vegetarian","requireOtherProducts":false,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":500,"dealGroupsIds":[],"dealOnly":true,"id":"3547157","kitchenNumber":"121","modifierGroupsIds":["8547140-opt-1"],"name":"","type":"noVariation"}]},{"dealGroups":[],"description":"","id":"6537130","labels":[],"modifierGroups":[],"name":"Coca-Cola","requireOtherProducts":true,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":100,"dealGroupsIds":[],"dealOnly":false,"id":"6537130","kitchenNumber":"300","modifierGroupsIds":[],"name":"0.33L","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":300,"dealGroupsIds":[],"dealOnly":false,"id":"9750011","kitchenNumber":"400","modifierGroupsIds":[],"name":"1.5L","type":"variation"}]},{"dealGroups":[],"description":"","id":"6537140","labels":[],"modifierGroups":[],"name":"Diet Coke","requireOtherProducts":true,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":100,"dealGroupsIds":[],"dealOnly":false,"id":"6537140","kitchenNumber":"300","modifierGroupsIds":[],"name":"0.33L","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":300,"dealGroupsIds":[],"dealOnly":false,"id":"9750312","kitchenNumber":"400","modifierGroupsIds":[],"name":"1.5L","type":"variation"}]},{"dealGroups":[],"description":"","id":"7739164","labels":[],"modifierGroups":[],"name":"Bottle of Lager","requireOtherProducts":true,"type":"menuItem","variations":[{"availabilityIds":["2-lunch-collection","4-dinner-collection"],"basePrice":300,"dealGroupsIds":[],"dealOnly":false,"id":"7739164","kitchenNumber":"700","modifierGroupsIds":[],"name":"","type":"noVariation"}]}],"name":"My Restaurant","restaurantId":"100059"}},"MenuAllEditsResponse":{"description":"All pending changes","example":[{"CategoryId":"1","CategoryName":"Pizzas","Description":"It's a pizza","EditType":"Add","Labels":["Vegetarian"],"MenuItemId":"123","MenuItemName":"Cheese Pizza","OptionGroups":[{"Id":"1","MaxChoices":1,"MinChoices":1,"Modifiers":[{"Id":"9","Name":"Gluten-free","Variations":[{"AdditionPrice":1.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"},{"AdditionPrice":1.3,"ModifierGroupId":"1","Selected":true,"VariationId":"5","VariationName":"Small"}]}],"Name":"Bases"}],"PreferenceGroups":[{"Id":"12","MaxChoices":1,"MinChoices":0,"Modifiers":[{"Id":"9","Name":"Ham","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"12","Selected":true,"VariationId":"4","VariationName":"Large"}]}],"Name":"Meats"}],"ReceiptNumber":"321a","Variations":[{"Id":"32","Name":"Large","OptionGroupIds":["1"],"PreferenceGroupIds":["12","32"],"Price":12.32,"Type":"???"}]}],"items":{"$ref":"#/components/schemas/MenuEditResponse"},"type":"array","uniqueItems":false},"MenuBase":{"example":{"currency":"GBP","description":"My excellent menu","name":"My Restaurant","restaurantId":"100059"},"properties":{"currency":{"description":"The currency of the items on the menu in ISO 4217 format, i.e. GBP, EUR or AUD","type":"string"},"description":{"description":"A top level description for the menu.","type":"string"},"name":{"description":"The name of the restaurant.","type":"string"},"restaurantId":{"description":"A unique identifier at tenant level for a given restaurant.","type":"string"}},"type":"object"},"MenuCategory":{"additionalProperties":false,"properties":{"description":{"description":"Description of category","nullable":true,"readOnly":true,"type":"string"},"name":{"description":"Name of category","nullable":true,"readOnly":true,"type":"string"},"productGroups":{"description":"Product group","items":{"$ref":"#/components/schemas/ProductGroup"},"nullable":true,"readOnly":true,"type":"array"}},"type":"object"},"MenuDealGroup":{"allOf":[{"$ref":"#/components/schemas/MenuDealGroupBase"},{"properties":{"dealItemVariations":{"description":"The ids of the variations that can be selected in order to satisfy this deal group.","items":{"$ref":"#/components/schemas/DealItemVariation"},"type":"array"},"id":{"description":"A unique identifier at menu level for a deal group.","type":"string"},"name":{"description":"The name of the deal group.","type":"string"},"numberOfChoices":{"description":"How many deal item variations must be selected to satisfy this deal group.","format":"int32","type":"integer"}},"type":"object"}],"example":{"dealItemVariations":[{"additionPrice":0,"dealItemVariationId":"8547121","maxChoices":1,"minChoices":0},{"additionPrice":0,"dealItemVariationId":"3547157","maxChoices":1,"minChoices":0},{"additionPrice":50,"dealItemVariationId":"8548153","maxChoices":1,"minChoices":0}],"id":"23435309-2","name":"Choose your pizzas","numberOfChoices":2}},"MenuDealGroupBase":{"example":{"id":"23435309-2","name":"Choose your pizzas","numberOfChoices":2},"properties":{"id":{"description":"A unique identifier at menu level for a deal group.","type":"string"},"name":{"description":"The name of the deal group.","type":"string"},"numberOfChoices":{"description":"How many deal item variations must be selected to satisfy this deal group.","format":"int32","type":"integer"}},"type":"object"},"MenuEditResponse":{"example":{"CategoryId":"1","CategoryName":"Pizzas","Description":"Cheesy pizza","EditType":"Add","Labels":["Vegetarian"],"MenuItemId":"12","MenuItemName":"Cheese pizza","OptionGroups":[{"Id":"1","MaxChoices":1,"MinChoices":1,"Modifiers":[{"Id":"9","Name":"Gluten-free","Variations":[{"AdditionPrice":1.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"},{"AdditionPrice":1.3,"ModifierGroupId":"1","Selected":true,"VariationId":"5","VariationName":"Small"}]}],"Name":"Bases"}],"PreferenceGroups":[{"Id":"12","MaxChoices":1,"MinChoices":0,"Modifiers":[{"Id":"9","Name":"Ham","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"12","Selected":true,"VariationId":"4","VariationName":"Large"}]}],"Name":"Meats"},{"Id":"32","MaxChoices":1,"MinChoices":0,"Modifiers":[{"Id":"7","Name":"Pineapple","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"32","Selected":true,"VariationId":"4","VariationName":"Large"},{"AdditionPrice":0.3,"ModifierGroupId":"32","Selected":true,"VariationId":"5","VariationName":"Small"}]}],"Name":"Veggies"}],"ReceiptNumber":"123","Variations":[{"Id":"4","Name":"Large","OptionGroupIds":["1"],"PreferenceGroupIds":["12","32"],"Price":12.32},{"Id":"5","Name":"Small","OptionGroupIds":["1"],"PreferenceGroupIds":["32"],"Price":8.99}]},"properties":{"CategoryId":{"description":"Id of the category of the menu item","type":"string"},"CategoryName":{"description":"Name of the category of the menu item","type":"string"},"Description":{"description":"Description of the menu item","type":"string"},"EditType":{"description":"Action being applied to the menu item","enum":["Add","Edit","Delete","None"],"format":"string","type":"string"},"Labels":{"description":"Labels for the menu item","items":{"type":"string"},"type":"array","uniqueItems":false},"MenuItemId":{"description":"Id of the menu item","type":"string"},"MenuItemName":{"description":"Name of the menu item","type":"string"},"OptionGroups":{"description":"Option groups available for the menu item","items":{"$ref":"#/components/schemas/ModifierGroupResponse"},"type":"array","uniqueItems":false},"PreferenceGroups":{"description":"Preference groups available for the menu item","items":{"$ref":"#/components/schemas/ModifierGroupResponse"},"type":"array","uniqueItems":false},"ReceiptNumber":{"description":"Receipt or kitchen number of the menu item","type":"string"},"Variations":{"description":"Variations applicable to the menu item","items":{"$ref":"#/components/schemas/VariationResponse"},"type":"array","uniqueItems":false}},"type":"object"},"MenuIngestionResponse":{"example":{"correlationId":"64bef5ee-7265-47f8-9aee-28bc74f00b13"},"properties":{"correlationId":{"description":"An ID for the asynchronous operation to ingest the menu","type":"string"}},"type":"object"},"MenuItem":{"allOf":[{"$ref":"#/components/schemas/MenuItemBase"},{"properties":{"dealGroups":{"description":"A set of deal groups for this menu item.","items":{"$ref":"#/components/schemas/MenuDealGroup"},"type":"array"},"imageUrl":{"description":"A menu item image URL.","type":"string"},"modifierGroups":{"description":"A set of modifier groups for this menu item.","items":{"$ref":"#/components/schemas/MenuModifierGroup"},"type":"array"},"variations":{"description":"A set of variations of this menu item.","items":{"$ref":"#/components/schemas/Variation"},"type":"array"}},"type":"object"}],"example":{"dealGroups":[],"description":"","id":"65143901","imageUrl":"http://cdn.images/flat_bread_dips.png","labels":[],"modifierGroups":[{"id":"65143901-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"834502","maxChoices":1,"minChoices":0,"name":"Pitta Bread"},{"additionPrice":0,"id":"835700","maxChoices":1,"minChoices":0,"name":"Sourdough"},{"additionPrice":50,"id":"835601","maxChoices":1,"minChoices":0,"name":"Wholemeal"}],"name":"Bread"},{"id":"65143901-req-2","maxChoices":2,"minChoices":2,"modifiers":[{"additionPrice":0,"id":"835340","maxChoices":2,"minChoices":0,"name":"Tzatziki"},{"additionPrice":0,"id":"835341","maxChoices":2,"minChoices":0,"name":"Taramasalata"},{"additionPrice":0,"id":"825344","maxChoices":2,"minChoices":0,"name":"Hummus"},{"additionPrice":0,"id":"825346","maxChoices":2,"minChoices":0,"name":"Onion"}],"name":"Dips"}],"name":"Flat Bread and Dips (Pick any 2 Dips)","requireOtherProducts":false,"type":"menuItem","variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":650,"dealGroupsIds":[],"dealOnly":false,"id":"65143901","kitchenNumber":"90","modifierGroupsIds":["65143901-req-1","65143901-req-2"],"name":"","type":"noVariation"}]}},"MenuItemBase":{"example":{"description":"","id":"65143901","labels":[],"name":"Flat Bread and Dips (Pick any 2 Dips)","requireOtherProducts":false,"type":"menuItem"},"properties":{"description":{"description":"The description of the menu item.","type":"string"},"id":{"description":"A unique identifier at menu level for a menu item.","type":"string"},"labels":{"description":"Used to toggle front end icons for the available labels.","items":{"enum":["hot","vegetarian","alcohol"],"type":"string"},"maxItems":3,"minItems":0,"type":"array"},"name":{"description":"The name of the menu item.","type":"string"},"requireOtherProducts":{"description":"Cannot be selected as a stand alone item, it has to be ordered with other items. Typically this will apply to menu items within drinks and dessert categories.","type":"boolean"},"type":{"description":"Indicates whether this is a regular meal item or a deal item.","enum":["menuItem","deal"],"type":"string"}},"type":"object"},"MenuItemDetailsResponse":{"example":{"Category":{"Id":"21","Name":"Pizzas"},"Description":"Boring pizza","HasPendingChange":true,"Id":"1","IsDeal":false,"Labels":["Vegetarian"],"Name":"Pizza","OptionGroups":[{"Id":"1","MaxChoices":1,"MinChoices":1,"Modifiers":[{"Id":"9","Name":"Gluten-free","Variations":[{"AdditionPrice":1.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"},{"AdditionPrice":1.3,"ModifierGroupId":"1","Selected":true,"VariationId":"5","VariationName":"Small"}]}],"Name":"Bases"}],"PreferenceGroups":[{"Id":"12","MaxChoices":1,"MinChoices":0,"Modifiers":[{"Id":"9","Name":"Ham","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"12","Selected":true,"VariationId":"4","VariationName":"Large"}]}],"Name":"Meats"},{"Id":"32","MaxChoices":1,"MinChoices":0,"Modifiers":[{"Id":"7","Name":"Pineapple","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"32","Selected":true,"VariationId":"4","VariationName":"Large"},{"AdditionPrice":0.3,"ModifierGroupId":"32","Selected":true,"VariationId":"5","VariationName":"Small"}]}],"Name":"Veggies"}],"ReceiptNumber":"987","Variations":[{"Id":"4","Name":"Large","OptionGroupIds":["1"],"PreferenceGroupIds":["12","32"],"Price":12.32},{"Id":"5","Name":"Small","OptionGroupIds":["1"],"PreferenceGroupIds":["32"],"Price":8.99}]},"properties":{"Category":{"$ref":"#/components/schemas/CategoryResponse","description":"Category of the menu item"},"Description":{"description":"Description of the menu item","type":"string"},"HasPendingChange":{"description":"Whether the item has pending changes","type":"boolean"},"Id":{"description":"Id of the menu item","type":"string"},"IsDeal":{"description":"Is a deal","type":"boolean"},"Labels":{"description":"Labels of the menu item","items":{"type":"string"},"type":"array","uniqueItems":false},"Name":{"description":"Name of the menu item","type":"string"},"OptionGroups":{"description":"Option groups of the menu item","items":{"$ref":"#/components/schemas/ModifierGroupResponse"},"type":"array","uniqueItems":false},"PreferenceGroups":{"description":"Preference groups of the menu item","items":{"$ref":"#/components/schemas/ModifierGroupResponse"},"type":"array","uniqueItems":false},"ReceiptNumber":{"description":"The receipt or kitchen number of the menu item","type":"string"},"Variations":{"description":"Variations applicable to the menu item","items":{"$ref":"#/components/schemas/VariationResponse"},"type":"array","uniqueItems":false}},"type":"object"},"MenuItemResponse":{"example":{"Description":"It's a pizza","HasPendingChange":true,"Id":"1","IsDeal":false,"Labels":["Vegetarian"],"Name":"Pizza","ReceiptNumber":"123","Variations":[{"Id":"4","Name":"Large","OptionGroupIds":["1"],"PreferenceGroupIds":["12","32"],"Price":12.32},{"Id":"5","Name":"Small","OptionGroupIds":["1"],"PreferenceGroupIds":["32"],"Price":8.99}]},"properties":{"Description":{"description":"Description of the menu item","type":"string"},"HasPendingChange":{"description":"Whether the item has pending changes","type":"boolean"},"Id":{"description":"Id of the menu item","type":"string"},"IsDeal":{"description":"Is a deal","type":"boolean"},"Labels":{"description":"Labels of the menu item","items":{"type":"string"},"type":"array","uniqueItems":false},"Name":{"description":"Name of the menu item","type":"string"},"ReceiptNumber":{"description":"The receipt or kitchen number of the menu item","type":"string"},"Variations":{"description":"Variations applicable to the menu item","items":{"$ref":"#/components/schemas/VariationResponse"},"type":"array","uniqueItems":false}},"type":"object"},"MenuItemVariationResponse":{"example":{"MenuItemId":"1","PreferenceGroupsIds":[4,5],"UnitsOfferedInDealGroup":3,"VariationId":"9"},"properties":{"MenuItemId":{"description":"Id of the menu item","type":"string"},"PreferenceGroupsIds":{"description":"List of Preference Group Ids","items":{"format":"int32","type":"integer"},"type":"array","uniqueItems":false},"UnitsOfferedInDealGroup":{"description":"Units offered in deal group","format":"int32","type":"integer"},"VariationId":{"description":"Id of the variation","type":"string"}},"type":"object"},"MenuModifier":{"example":{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"},"properties":{"additionPrice":{"description":"Selecting this modifier will increase the base price of the variation by this amount in the minor unit of the currency.","format":"int32","type":"number"},"id":{"description":"A unique identifier relative to the menu for a modifier.","type":"string"},"maxChoices":{"description":"The maximum number of times this modifier can be chosen within a given modifier group.","format":"int32","type":"integer"},"minChoices":{"description":"The minimum number of times this modifier can be chosen within a given modifier group.","format":"int32","type":"integer"},"name":{"description":"The name of the modifier.","type":"string"}},"type":"object"},"MenuModifierGroup":{"example":{"id":"8547130-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Choose your crust"},"properties":{"id":{"description":"A unique identifier relative to the menu for a modifier group.","type":"string"},"maxChoices":{"description":"The maximum number of modifiers that must be selected to satisfy this modifier group.","format":"int32","type":"integer"},"minChoices":{"description":"The minimum number of modifiers that must be selected to satisfy this modifier group.","format":"int32","type":"integer"},"modifiers":{"description":"The modifiers that can be selected to satisfy this modifier group.","items":{"$ref":"#/components/schemas/MenuModifier"},"type":"array"},"name":{"description":"A name for the modifier group, usually phrased as a question, e.g. Would you like any extras?","type":"string"}},"type":"object"},"MenuRecommendationsRequest":{"description":"Describes a request for dish recommendations for a particular restaurant menu.","properties":{"orderRequestDetails":{"description":"Defines the time and service type for which the order is requested.","properties":{"dayOfWeek":{"description":"The day of the week that the order is placed for.","enum":["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],"type":"string"},"orderedForTime":{"description":"The time, local to restaurant, in ISO 8601 format, that the order is requested for. If the ordered for time is not known at the point of this request then the time should be the current local time.\n","format":"time","type":"string"},"serviceType":{"description":"The service type, \"collection\" or \"delivery\".","enum":["collection","delivery"],"type":"string"}},"type":"object"},"restaurantId":{"description":"The id of the restaurant that the recommendations are for.","type":"string"}},"required":["restaurantId","orderRequestDetails"],"type":"object"},"MenuRecommendationsResponse":{"description":"Contains menu dish recommendations.","properties":{"themes":{"description":"List of the themes of the recommendations, i.e. personal favourites, most popular, etc.","items":{"properties":{"id":{"description":"Unique identifier for the theme.","type":"string"},"recommendations":{"description":"List of dish recommendations for the theme.","items":{"properties":{"confidence":{"description":"Recommendation confidence score.","format":"double","type":"number"},"productId":{"description":"ID of a product/dish being recommended.","type":"string"},"type":{"description":"Describes the type of recommendation, i.e. popular, healthy.","type":"string"}},"type":"object"},"maxItems":20,"minItems":0,"type":"array"}},"type":"object"},"maxItems":10,"minItems":0,"type":"array"}},"required":["themes"],"type":"object"},"MergedMenuCard":{"additionalProperties":false,"properties":{"categories":{"additionalProperties":{"$ref":"#/components/schemas/MenuCategory"},"description":"Menu items of the restaurant with offline/online statuses grouped by category","nullable":true,"type":"object"}},"type":"object"},"MergedMenuResponse":{"additionalProperties":false,"properties":{"menuCard":{"$ref":"#/components/schemas/MergedMenuCard","description":"Menu items of the restaurant with offline/online statuses grouped by category"}},"type":"object"},"MergedProduct":{"additionalProperties":false,"properties":{"id":{"description":"The id of the product","nullable":true,"type":"string"},"ids":{"deprecated":true,"description":"Deprecated, not in use","items":{"format":"int32","type":"integer"},"nullable":true,"type":"array"},"isOffline":{"description":"Is this product offline?","type":"boolean"},"name":{"description":"Product name","nullable":true,"type":"string"}},"type":"object"},"MissingItem":{"additionalProperties":false,"properties":{"itemReference":{"description":"Product reference of missing item","nullable":true,"type":"string"},"name":{"description":"Name of the missing item","nullable":true,"type":"string"},"quantity":{"description":"Number of items missing","format":"int32","type":"integer"},"refundAmount":{"description":"Total cost of missing item","format":"decimal","type":"number"}},"type":"object"},"MissingItemClaim":{"additionalProperties":false,"properties":{"id":{"description":"Id of the missing item claim","nullable":true,"type":"string"},"missingItems":{"description":"Items that are missing","items":{"$ref":"#/components/schemas/MissingItem"},"nullable":true,"type":"array"},"refundRefusedReasonCode":{"description":"Reason for refusing if status is refused","nullable":true,"type":"string"},"status":{"$ref":"#/components/schemas/MissingItemClaimStatus","description":"Current status of the missing item claim"},"totalAmount":{"description":"Total cost of the claim","format":"decimal","type":"number"},"totalNumberItems":{"description":"Total quantity of items in the claim","format":"int32","type":"integer"}},"type":"object"},"MissingItemClaimStatus":{"description":"Status of missing item claim","enum":["Unknown","Pending","Viewed","RefundAccepted","RefundRefused"],"type":"string"},"Modifier":{"properties":{"MaximumAdditionalModifiers":{"format":"integer","type":"number"},"ModifierId":{"type":"string"},"Name":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"TotalPrice":{"format":"decimal","type":"number"}},"required":["MaximumAdditionalModifiers"],"type":"object"},"ModifierGroup":{"properties":{"MinimumChoices":{"format":"integer","type":"number"},"ModifierGroupId":{"type":"string"},"Modifiers":{"items":{"$ref":"#/components/schemas/Modifier"},"type":"array"}},"required":["MinimumChoices"],"type":"object"},"ModifierGroupResponse":{"example":{"Id":"1","MaxChoices":3,"MinChoices":0,"Modifiers":[{"Id":"9","Name":"Ham","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"}]},{"Id":"10","Name":"Sausage","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"}]}],"Name":"Toppings"},"properties":{"Id":{"description":"Id of Modifier Group","type":"string"},"MaxChoices":{"description":"The maximum number of options allowed to be selected","format":"int32","type":"integer"},"MinChoices":{"description":"The minimum number of options allowed to be selected","format":"int32","type":"integer"},"Modifiers":{"description":"A list of modifiers within the group","items":{"$ref":"#/components/schemas/ModifierResponse"},"type":"array","uniqueItems":false},"Name":{"description":"Name of Modifier Group","type":"string"}},"type":"object"},"ModifierResponse":{"example":{"Id":"9","Name":"Ham","Variations":[{"AdditionPrice":0.5,"ModifierGroupId":"1","Selected":true,"VariationId":"4","VariationName":"Large"}]},"properties":{"AdditionPrice":{"description":"The additional price","format":"double","type":"number"},"DefaultChoices":{"description":"The default number of options allowed to be selected","format":"int32","type":"integer"},"Id":{"description":"Id of the modifier","type":"string"},"MaxChoices":{"description":"The maximum number of options allowed to be selected","format":"int32","type":"integer"},"MinChoices":{"description":"The minimum number of options allowed to be selected","format":"int32","type":"integer"},"Name":{"description":"Name of the modifier","type":"string"},"RemovePrice":{"description":"The cost to remove","format":"double","type":"number"},"Variations":{"description":"The variations to which this modifiers applies","items":{"$ref":"#/components/schemas/VariationModifierResponse"},"type":"array","uniqueItems":false}},"type":"object"},"NotFoundMarketingResponse":{"$ref":"#/components/schemas/MarketingErrorResponse","description":"404 Not Found Returned","example":{"errors":[{"description":"Campaign Not found","errorCode":"404"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","message":"The requested resource could not found."}},"Nutritional":{"example":{"alcohol":{"unit":"%","value":7.5},"caffeine":{"unit":"mg","value":10},"calories":{"unit":"kcal","value":42},"carbohydrate":{"unit":"mg","value":22000},"energy":{"unit":"kJ","value":175.5},"fat":{"unit":"mg","value":16000},"fattyAcidTotal":{"unit":"mg","value":100},"protein":{"unit":"mg","value":4000.01},"salt":{"unit":"mg","value":20},"sodium":{"unit":"mg","value":10},"sugar":{"unit":"mg","value":9100}},"properties":{"alcohol":{"description":"Alcohol by volume value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"caffeine":{"description":"Caffeine milligram value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"calories":{"description":"Calories value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"carbohydrate":{"description":"Carbohydrate value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"energy":{"description":"Energy value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"fat":{"description":"Fat value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"fattyAcidTotal":{"description":"Fatty Acid value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"protein":{"description":"Protein value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"salt":{"description":"Salt value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"sodium":{"description":"Sodium value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}},"sugar":{"description":"Sugar value for product","properties":{"unit":{"description":"Unit of the item","nullable":false,"type":"string"},"value":{"description":"Value of the item","nullable":true,"type":"number"}}}},"type":"object"},"Offer":{"description":"The object representing offer entry","example":{"consumerSegment":"All","dayOfWeek":"Monday","discountAmount":15,"discountType":"Percent","endTime":"09:00:00","id":"1","offerType":"Percent","qualifyingValue":{"currency":"GBP","value":1000},"startTime":"06:00:00","validFrom":"2025-04-15T13:52:07.559Z","validTo":"2025-04-15T13:52:07.559Z"},"properties":{"campaignId":{"description":"Campaign id","nullable":true,"type":"string"},"consumerSegment":{"$ref":"#/components/schemas/PartnerConsumerSegment","description":"Consumer Segment to which offer applies","nullable":false},"dayOfWeek":{"description":"Day of week to run the offer","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"nullable":false,"type":"string"},"discountAmount":{"description":"Amount of the discount","format":"double","nullable":false,"type":"number"},"endTime":{"description":"Timestamp when offer ends during the day","format":"time","nullable":true,"type":"string"},"freeProducts":{"description":"The product that gets 100% discount applied","items":{"properties":{"id":{"description":"The unique identifier of the product.","nullable":false,"type":"string"},"modifiers":{"description":"The collection of preselected modifiers for the item.","items":{"properties":{"modifierId":{"description":"The unique identifier of the modifier.","nullable":false,"type":"string"},"quantity":{"description":"The required quantity of the modifier.","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"nullable":true,"type":"array"}},"type":"object"},"nullable":true,"type":"array"},"id":{"description":"Internal id of the offer","nullable":false,"type":"string"},"offerDescription":{"description":"The description of the offer.","nullable":true,"type":"string"},"offerType":{"$ref":"#/components/schemas/PartnerOfferType","description":"Type of the offer","nullable":false},"qualifyingProductIds":{"description":"One of those products needed to be included in the collection of products to make offer applicable","items":{"type":"string"},"nullable":true,"type":"array"},"qualifyingValue":{"description":"Minimum qualifying value for offer to be applied","nullable":true,"properties":{"currency":{"description":"Currency code in ISO 4217 format","nullable":false,"type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"startTime":{"description":"Timestamp when offer starts during the day","format":"time","nullable":true,"type":"string"},"validFrom":{"description":"The date when offer starts","format":"date-time","nullable":false,"type":"string"},"validTo":{"description":"The date when offer ends","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"OfferCampaign":{"example":{"active":true,"daysOfWeek":["Monday","Friday"],"discountAmount":15,"enabled":true,"end":"2025-04-15T13:52:07.560Z","id":"1","qualifyingValue":{"currency":"GBP","value":5000},"start":"2025-04-15T13:52:07.560Z","subscribed":true,"type":"CheekyCampaign"},"properties":{"active":{"description":"Calculated, is the campaign enabled and within start and end date","readOnly":true,"type":"boolean"},"daysOfWeek":{"description":"Days of week to run the campaign","items":{"enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"type":"string"},"nullable":false,"type":"array","uniqueItems":true},"discountAmount":{"description":"Amount of the discount","format":"double","nullable":false,"type":"number"},"enabled":{"description":"Is the offer campaign allowed to be active","nullable":false,"readOnly":false,"type":"boolean"},"end":{"description":"The date when offer campaign ends","format":"date-time","nullable":true,"readOnly":false,"type":"string"},"id":{"description":"Internal id of the offer campaign","type":"string"},"qualifyingValue":{"description":"qualifying value for a given offer template","nullable":false,"properties":{"currency":{"description":"Currency code in ISO 4217 format","nullable":false,"type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"start":{"description":"The date when offer campaign starts","format":"date-time","nullable":true,"readOnly":false,"type":"string"},"subscribed":{"description":"Is restaurant subscribed to this campaign","nullable":false,"readOnly":true,"type":"boolean"},"type":{"description":"Type of the offer campaign","enum":["CheekyCampaign","DonationCampaign","FastMovingGoodsCampaign"],"nullable":false,"type":"string"}},"type":"object"},"OfferTemplate":{"example":{"consumerSegment":"All","discountValue":15,"id":333,"maxQualifyingValue":{"currency":"GBP","value":5000},"offerType":"Percent"},"properties":{"consumerSegment":{"$ref":"#/components/schemas/PartnerConsumerSegment","description":"Consumer Segment that offer applies","nullable":false},"discountValue":{"description":"Amount of the discount","format":"double","nullable":false,"type":"number"},"id":{"description":"Internal id of the offer template","format":"int32","nullable":false,"type":"integer"},"maxQualifyingValue":{"description":"Maximum qualifying value for a given offer template","nullable":false,"properties":{"currency":{"description":"Currency code in ISO 4217 format","type":"string"},"value":{"description":"Smallest unit of local currency","format":"int32","type":"integer"}},"type":"object"},"offerType":{"$ref":"#/components/schemas/PartnerOfferType","description":"Type of the offer","nullable":false}},"type":"object"},"OfflineItemsRequest":{"example":{"modifierIds":["777","888","999"],"nextAvailableAt":"2025-04-15T13:52:07.560Z","variationIds":["111","222","333"]},"properties":{"modifierIds":{"description":"Modifier identifiers. Maximum sum of 25 Variation and Modifier IDs.","items":{"type":"string"},"maxItems":25,"minItems":0,"type":"array"},"nextAvailableAt":{"description":"Time when items will be brought back online (ISO-8601 Date Time UTC).","format":"date-time","type":"string"},"variationIds":{"description":"Variation identifiers. Maximum sum of 25 Variation and Modifier IDs.","items":{"type":"string"},"maxItems":25,"minItems":0,"type":"array"}},"type":"object"},"OfflineItemsResponse":{"example":{"id":"111","nextAvailableAt":"2025-04-15T13:52:07.560Z","type":"variation"},"properties":{"id":{"description":"Item identifier.","items":{"type":"string"},"type":"string"},"nextAvailableAt":{"description":"Time when item(s) will be brought back online (ISO-8601 Date Time UTC).","format":"date-time","type":"string"},"type":{"description":"Item type identifier.","items":{"type":"string"},"type":"string"}},"type":"object"},"OfflineProduct":{"properties":{"Name":{"type":"string"},"ProductId":{"type":"string"}},"type":"object"},"OfflineProductsResponse":{"additionalProperties":false,"properties":{"offlineProducts":{"description":"Array of men items which are offline currently","items":{"$ref":"#/components/schemas/OrderpadOfflineProduct"},"nullable":true,"type":"array"}},"type":"object"},"OfflineRestaurantsRequestModel":{"additionalProperties":false,"example":{"allowRestaurantOverride":true,"duration":3600,"name":"Out of Chicken","reason":"No more chicken in stock.","restaurantIds":"12345","startDate":"2025-04-15T13:52:07.560Z"},"properties":{"allowRestaurantOverride":{"description":"Whether a restaurant should be allowed to delete this event, regardless of who raised it.","type":"boolean"},"category":{"deprecated":true,"description":"A free text category used to group multiple events. This field is not intended to be used by clients.","type":"string"},"duration":{"description":"Either a timespan in the HH:mm format or `untilTomorrow` (this will be the next day at 4:30 am +/- 10 minutes local time). Note if both duration and `endDate` are specified duration takes precedence.","type":"string"},"endDate":{"description":"ISO 8601 format of the end datetime of the offline event.","format":"date-time","minLength":1,"nullable":true,"type":"string"},"legacyTempOfflineType":{"$ref":"#/components/schemas/LegacyTempOfflineStatus"},"name":{"description":"Name of the offline event to be created.","type":"string"},"reason":{"description":"The reason for creating the offline event.","type":"string"},"restaurantIds":{"description":"A comma separated list of the IDs of the restaurants to include in the offline event. No limit to the number accepted by the endpoint, but unexpected behaviour mat occur at more than 500 IDs.","type":"string"},"startDate":{"description":"ISO 8601 format of the start datetime of the offline event.","format":"date-time","minLength":1,"type":"string"}},"required":["restaurantIds","name","reason","startDate","allowRestaurantOverride"],"type":"object"},"OnlineItemsRequest":{"example":{"modifierIds":["777","888","999"],"variationIds":["111","222","333"]},"properties":{"modifierIds":{"description":"Modifier identifiers. Maximum sum of 25 Variation and Modifier IDs.","items":{"type":"string"},"maxItems":25,"minItems":0,"type":"array"},"variationIds":{"description":"Variation identifiers. Maximum sum of 25 Variation and Modifier IDs.","items":{"type":"string"},"maxItems":25,"minItems":0,"type":"array"}},"type":"object"},"OptimizelyData":{"additionalProperties":false,"properties":{"cdnUrl":{"description":"Location of the Optimizely data file","nullable":true,"type":"string"},"dataFileRevision":{"description":"The index of the Optimizely revision","format":"int32","type":"integer"}},"type":"object"},"OrderAcceptanceTimes":{"description":"The acceptance times used to present the offer to the courier.","properties":{"currentSystemTimestamp":{"description":"The time the delivery offer was made to the courier.","example":1593444834,"format":"integer","type":"number"},"expirationTimestamp":{"description":"The time when the offer to the courier will expire. Usually the courier has 60 seconds to accept a new offer.","example":1593444834,"format":"integer","type":"number"},"viewedTimestamp":{"description":"The time the delivery offer was viewed by the courier","example":1593444834,"format":"integer","type":"number"}},"type":"object"},"OrderAddressSuccessResponse":{"description":"The response object after successfully updating an order address.","example":{"address":["123 Wye Avenue, Eaton"],"city":"Bristol","email":"user@email.com","geoPosition":{"latitude":456.123,"longitude":123.456},"name":"J.E.Hungerton","orderable":true,"phoneNumber":"0123456789","polygonName":"BS1 1AA","postCode":"BS1 1AA","serviceType":"delivery"},"properties":{"address":{"description":"An array of strings containing lines of the customer's order address.","items":{"type":"string"},"nullable":false,"type":"array"},"city":{"description":"String value containing the city name of the customer's order address.","nullable":false,"type":"string"},"email":{"description":"The customer's email address.","nullable":false,"type":"string"},"geoPosition":{"allOf":[{"$ref":"#/components/schemas/OrderGeoPosition"}],"description":"Geoposition object containing latitude and longitude values for the customer's order address","nullable":true},"name":{"description":"The customer's name.","nullable":false,"type":"string"},"phoneNumber":{"description":"The customer's phone number.","nullable":false,"type":"string"},"polygonName":{"description":"String value containing the polygon name of customer's order address (in tenants with no polygon name, will be the same as postcode).","nullable":false,"type":"string"},"postCode":{"description":"String value containing the postcode of the customer's order address.","nullable":false,"type":"string"},"serviceType":{"description":"Service Type associated with the order details.","enum":["delivery","collection"],"nullable":false,"type":"string"}},"type":"object"},"OrderCancelled":{"description":"The order cancelled object holds the details of a cancelled order.","properties":{"cancellationTime":{"description":"Current timestamp for the cancelled order.","example":1593444834,"format":"integer","type":"number"},"collectJobStatus":{"$ref":"#/components/schemas/JobStatus","description":"The collect job status for the cancelled order."},"courierId":{"description":"Courier identifier for the cancelled order.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"},"deliveryId":{"description":"Deliver identifier for the cancelled order.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"},"isAlcoholDelivery":{"description":"The cancelled order contains alcoholic products when true.","type":"boolean"},"isCashPayment":{"description":"The cancelled order was cash payment when true.","type":"boolean"},"orderNumber":{"description":"Order number for the cancelled order.","example":"10113445","type":"string"},"restaurantName":{"description":"Restaurant name for the cancelled order.","example":"MacDonalds","type":"string"}},"type":"object"},"OrderClaim":{"description":"Claim information","example":{"affectedItems":[{"additionalContext":"Potato skin was damaged","decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Potato skin","quantity":1,"reference":"productid%4t56574596","totalClaimed":1900,"unitPrice":2000},{"additionalContext":"Pizza was damaged too","decision":"Accepted","id":"123iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1","name":"Pizza","quantity":1,"reference":"productid%t5y6574596","totalClaimed":1900,"unitPrice":2000}],"currency":"GBP","expirationDate":"2025-04-15T13:52:07.560Z","friendlyOrderReference":"451226580","id":"2f749442-a62a-abcd-8623-04202878e034","issueType":"Damaged","orderId":"r23tqoxdoeupdx9w8evorw","resolution":{"decision":"PartiallyAccepted","resolvedChannel":"PartnerCentre","resolvedDate":"2025-04-15T13:52:07.560Z","totalClaimedAccepted":1900},"restaurantResponse":{"decision":"PartiallyAccepted","items":[{"decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"},{"decision":"Accepted","id":"123iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"}],"justification":{"comments":"The food was packed properly","reason":"Other"}},"state":"Closed","submittedDate":"2025-04-15T13:52:07.560Z","totalClaimed":3800},"properties":{"affectedItems":{"description":"Information about the claimed items","items":{"$ref":"#/components/schemas/Item"},"nullable":true,"type":"array"},"currency":{"description":"Name of currency in ISO 4217 format","type":"string"},"expirationDate":{"description":"Date when the claim will be accepted automatically in case the owner of the restaurant ignores it","format":"date-time","type":"string"},"friendlyOrderReference":{"description":"Just Eat friendly order reference","type":"string"},"id":{"description":"Claim identifier","type":"string"},"issueType":{"description":"Type of claim","enum":["Missing","Damaged","Cold","LateOrder","FoodNotArrived"],"type":"string"},"orderId":{"description":"Just Eat order identifier","type":"string"},"resolution":{"$ref":"#/components/schemas/ClaimResolution","description":"Representation of the claim resolution"},"restaurantResponse":{"$ref":"#/components/schemas/OrderClaimRestaurantResponse","description":"Restaurant response on the claim","type":"object"},"state":{"description":"Indicates whether a decision about the claim was made","enum":["Open","Closed"],"type":"string"},"submittedDate":{"description":"Date when the claim was submitted","format":"date-time","type":"string"},"totalClaimed":{"description":"Total claimed money in smallest unit of relevant currency","type":"number"}},"type":"object"},"OrderClaimRestaurantResponse":{"description":"Restaurant response for the claim","example":{"decision":"PartiallyAccepted","items":[{"decision":"Accepted","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc1"},{"decision":"Rejected","id":"NJ7iYXNrZXRJdGVtLTM2NTc0GTk2LTMwNDY2LXMzOWJxb3hkb2V1cGR4OXc4ZXZvcnc3"}],"justification":{"comments":"The food was packed properly","reason":"Other"}},"nullable":true,"properties":{"decision":{"description":"Decision on the claim","enum":["Accepted","Rejected","PartiallyAccepted"],"type":"string"},"items":{"description":"Decisions on the items of a claim","items":{"$ref":"#/components/schemas/ItemDecision"},"nullable":true,"type":"array"},"justification":{"$ref":"#/components/schemas/Justification","description":"Reasons why of the decision for the claim"}},"type":"object"},"OrderEligibleForRestaurantCompensation":{"example":{"IsEligible":true,"OrderId":"c9639af6-04a3-4376-bb4b-5e95cc8b80eb"},"properties":{"IsEligible":{"description":"Flag that informs if the cancelled order is eligible for compensation","type":"boolean"},"OrderId":{"description":"Id for the order","type":"string"}},"type":"object"},"OrderGeoPosition":{"description":"Geoposition object containing latitude and longitude values.","properties":{"latitude":{"description":"The latitude value of the customer's Geoposition.","format":"decimal","type":"number"},"longitude":{"description":"The longitude value of the customer's Geoposition.","format":"decimal","type":"number"}},"type":"object"},"OrderHistoryItem":{"additionalProperties":false,"properties":{"detail":{"description":"Additional information about status update","nullable":true,"type":"string"},"occurredAt":{"description":"ISO 8601 Date/Time of status update","format":"date-time","type":"string"},"orderState":{"$ref":"#/components/schemas/ClientOrderState","description":"State order was set to"},"updatedBy":{"description":"User who made the status update","nullable":true,"type":"string"}},"type":"object"},"OrderItem":{"additionalProperties":false,"properties":{"basketIds":{"description":"Array of basket id's that make up the item. Can be multiple due to Zeus' grouping of items","items":{"type":"string"},"nullable":true,"type":"array"},"comment":{"description":"Additional comments","nullable":true,"type":"string"},"id":{"description":"Basket Id of the order item","nullable":true,"type":"string"},"itemReference":{"description":"Item reference uniquely identifying a product on the menu but not basket instance of a product","nullable":true,"type":"string"},"menuIdentifier":{"description":"Just Eat menu identifier","nullable":true,"type":"string"},"menuNumber":{"description":"Just Eat menu number","nullable":true,"type":"string"},"name":{"description":"Name of the item","nullable":true,"type":"string"},"orderItemAccessories":{"description":"Array of accessories for this item","items":{"$ref":"#/components/schemas/OrderItemAccessory"},"nullable":true,"type":"array"},"orderItems":{"description":"Array of sub items for this item","items":{"$ref":"#/components/schemas/OrderItem"},"nullable":true,"type":"array"},"productCategory":{"description":"Just Eat product category","nullable":true,"type":"string"},"productTypeId":{"description":"Just Eat product type id","format":"int32","type":"integer"},"quantity":{"description":"Quantity of the item","format":"int32","type":"integer"},"totalPrice":{"description":"Total price of this item","format":"decimal","type":"number"}},"type":"object"},"OrderItemAccessory":{"additionalProperties":false,"properties":{"accessoryName":{"description":"Name of the accessory","nullable":true,"type":"string"},"groupId":{"description":"Group id of the accessory","format":"int32","type":"integer"},"id":{"description":"Id of the accessory","nullable":true,"type":"string"},"itemReference":{"description":"Item reference uniquely identifying a product on the menu but not basket instance of a product","nullable":true,"type":"string"},"name":{"description":"Name of the accessory","nullable":true,"type":"string"},"quantity":{"description":"Quantity of accessories","format":"int32","type":"integer"},"totalPrice":{"description":"Total price of the accessory","format":"decimal","type":"number"}},"type":"object"},"OrderNumberValidity":{"additionalProperties":false,"properties":{"ComparisonOperator":{"description":"The comparison operator (e.g. >, <, ==)","nullable":true,"type":"string"},"NumberOfOrders":{"description":"The number of orders for the comparison","format":"int32","type":"integer"}},"type":"object"},"OrderPadClientOrder":{"additionalProperties":false,"properties":{"acceptedAt":{"description":"ISO 8601 Date/Time order was accepted by the restaurant","format":"date-time","type":"string"},"acceptedFor":{"description":"ISO 8601 Date/Time time due at the point of acceptance","format":"date-time","type":"string"},"addressLines":{"description":"Customer address","items":{"type":"string"},"nullable":true,"type":"array"},"asSoonAsPossible":{"description":"Will be false if order was a preorder","type":"boolean"},"attemptedDeliveryQuery":{"$ref":"#/components/schemas/AttemptedDeliveryQuery","description":"Details of any attempted delivery query attached to the order","nullable":true},"badItemClaims":{"description":"A list of bad item claims attached to the order","items":{"$ref":"#/components/schemas/BadItemClaim"},"nullable":true,"type":"array"},"cancellationInfo":{"$ref":"#/components/schemas/CancellationInfo","description":"Details of any cancellation attached to the order","nullable":true},"cancelledAt":{"description":"ISO 8601 Date/Time order was cancelled","format":"date-time","type":"string"},"city":{"description":"Customer city","nullable":true,"type":"string"},"customerId":{"description":"Platform customer id","nullable":true,"type":"string"},"customerNote":{"description":"Customer added notes","nullable":true,"type":"string"},"deliveredAt":{"description":"ISO 8601 Date/Time order was delivered","format":"date-time","nullable":true,"type":"string"},"deliveryDriverInfo":{"$ref":"#/components/schemas/DeliveryDriverInfo","description":"Delivery driver information","nullable":true},"deliveryDriverUsername":{"description":"Delivery drivers user name (usually their phone number)","nullable":true,"type":"string"},"deliveryNote":{"description":"Delivery specific notes","nullable":true,"type":"string"},"eposState":{"$ref":"#/components/schemas/EposState","description":"Current state of sending the order to the restaurants EPOS system"},"estimatedDeliveryTimeInSeconds":{"description":"How long until order will be delivered in seconds (RDS only)","format":"int32","type":"integer"},"estimatedHandoverTimeInSeconds":{"description":"How long until order needs to be handed over to driver in seconds (RDS only)","format":"int32","type":"integer"},"externalCustomerId":{"description":"Customer id restaurants can use to identify customer","nullable":true,"type":"string"},"id":{"description":"Id used to identify the order in Zeus","nullable":true,"type":"string"},"isPreorder":{"description":"Whether order is a preorder","type":"boolean"},"isRdsOrder":{"description":"Will be true if delivery is being arranged by Just Eat","type":"boolean"},"lateOrderCompensationQuery":{"$ref":"#/components/schemas/LateOrderCompensationQuery","description":"Details of any late order compensation query attached to the order","nullable":true},"lateOrderInfo":{"$ref":"#/components/schemas/LateOrderInfo","description":"Details of any late order query attached to the order","nullable":true},"location":{"$ref":"#/components/schemas/GeoLocation","description":"Geo location of the customers address","nullable":true},"missingItemClaims":{"description":"A list of missing item claims attached to the order","items":{"$ref":"#/components/schemas/MissingItemClaim"},"nullable":true,"type":"array"},"modernId":{"description":"Just Eat modern order id","nullable":true,"type":"string"},"name":{"description":"Customer name","nullable":true,"type":"string"},"notes":{"description":"General order notes","nullable":true,"type":"string"},"orderHistory":{"description":"Ordered history of status updates to the order and when they happened","items":{"$ref":"#/components/schemas/OrderHistoryItem"},"nullable":true,"type":"array"},"orderItems":{"description":"A list of order items","items":{"$ref":"#/components/schemas/OrderItem"},"nullable":true,"type":"array"},"orderState":{"$ref":"#/components/schemas/ClientOrderState","description":"Current state of the order"},"orderType":{"$ref":"#/components/schemas/OrderType","description":"Type of order (collection or delivery)"},"paymentInfo":{"$ref":"#/components/schemas/PaymentInfo","description":"Payment details for the order","nullable":true},"phone":{"description":"Customer phone number (will be phone masking number in markets when enabled)","nullable":true,"type":"string"},"phoneMaskingCode":{"description":"Code to use when calling customer phone masking number about this order","nullable":true,"type":"string"},"postcode":{"description":"Customer postcode","nullable":true,"type":"string"},"preferredTimeDue":{"description":"Current agreed delivery time of the order","format":"date-time","type":"string"},"prepareOrderFor":{"description":"ISO 8601 Date/Time when order should be prepared for","format":"date-time","nullable":true,"type":"string"},"previousOrders":{"description":"Number of previous Just Eat orders by the customer","nullable":true,"type":"string"},"previousOrdersToRestaurant":{"description":"Number of previous orders by the customer to this restaurant","nullable":true,"type":"string"},"rdsPickupTime":{"description":"ISO 8601 Date/Time when order will be picked up by RDS partner","format":"date-time","nullable":true,"type":"string"},"receivedAt":{"description":"ISO 8601 Date/Time order was paid","format":"date-time","type":"string"},"restaurantId":{"description":"Restaurant Id of the order","nullable":true,"type":"string"},"restaurantInformation":{"$ref":"#/components/schemas/RestaurantInfo","description":"Restaurant information for the order","nullable":true},"sourcePartner":{"$ref":"#/components/schemas/PartnerInfo","description":"Information about the source of the order (Just Eat, Third Party etc.)","nullable":true},"startOrderPreparationAt":{"description":"ISO 8601 Date/Time for restaurant to start preparing the order","format":"date-time","nullable":true,"type":"string"},"timeDue":{"description":"Current agreed delivery time of the order","format":"date-time","type":"string"},"withDriverAt":{"description":"ISO 8601 Date/Time order was handed over to driver","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"OrderStateChange":{"additionalProperties":false,"properties":{"newState":{"$ref":"#/components/schemas/ClientOrderState","description":"New order state"},"timeAcceptedFor":{"description":"If accepting order what date time (with offset) are you accepting it for","format":"date-time","type":"string"}},"required":["newState"],"type":"object"},"OrderTimeSuccessResponse":{"description":"The response object for successful updates to order time.","example":{"asap":true,"dateTime":"2020-02-05T16:26:30+0000","orderable":true,"utcOrderTime":"2020-02-05T16:26:30+0000"},"properties":{"asap":{"description":"True if the user has selected as soon as possible on the order, else false","nullable":false,"type":"boolean"},"dateTime":{"description":"The time the customer has requested their order for.","nullable":false,"type":"string"},"orderable":{"description":"Boolean value indicating whether the current basket is orderable.","nullable":false,"type":"boolean"},"utcOrderTime":{"description":"The time (in UTC) the customer has requested their order for","nullable":false,"type":"string"}},"type":"object"},"OrderType":{"description":"Type of order","enum":["Collection","Delivery","Unknown"],"type":"string"},"OrderpadMenuItem":{"additionalProperties":false,"properties":{"id":{"description":"The id of the menu item","nullable":true,"type":"string"},"isOutOfStock":{"description":"Is this menu item out of stock","type":"boolean"},"name":{"description":"Name of the menu item","nullable":true,"type":"string"}},"type":"object"},"OrderpadOfflineProduct":{"additionalProperties":false,"properties":{"createdBy":{"description":"Application which requested operation e.g. Orderpad, RestaurantApp","nullable":true,"type":"string"},"createdOn":{"description":"Date and time in ISO 8601 format taken offline","format":"date-time","type":"string"},"nextAvailableAt":{"description":"Date and time in ISO 8601 format when item will be brought back online","format":"date-time","nullable":true,"type":"string"},"productId":{"description":"The id of the menu item","nullable":true,"type":"string"},"restaurantId":{"description":"The Id of the restaurant","format":"int32","type":"integer"}},"type":"object"},"OrderpadSetupType":{"description":"Type of order pad set up","enum":["Unknown","SignUp","Upgrade","Swap"],"type":"string"},"OrdersData":{"additionalProperties":false,"properties":{"unreceivedOrders":{"description":"List of all changed orders for a restaurant","items":{"type":"string"},"nullable":true,"type":"array"}},"type":"object"},"PagedAfterOnlyCursorResponse":{"example":{"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}},"properties":{"paging":{"description":"Consists of pagination information.","properties":{"cursors":{"description":"Consists of cursors markers used in forward only pagination.","properties":{"after":{"description":"Cursor parameter to use in the next request to the resource to fetch the next page of data.","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"PagedAvailabilitiesResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"availabilities":{"description":"List of availabilities for a given restaurant's menu.","items":{"$ref":"#/components/schemas/Availability"},"type":"array"}},"type":"object"}],"example":{"availabilities":[{"description":"Menu items available for delivery during weekdays for lunch.","id":"1-lunch-delivery","name":"Delivery Lunch","serviceTypes":["delivery"],"times":[{"daysOfTheWeek":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"fromDateTime":41400,"toDateTime":52200}]},{"description":"Menu items available for delivery during weekdays for dinner.","id":"1-dinner-delivery","name":"Delivery Dinner","serviceTypes":["delivery"],"times":[{"daysOfTheWeek":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"fromDateTime":59400,"toDateTime":79200}]}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedCategoriesResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"categories":{"description":"List of categories for a given restaurant's menu.","items":{"$ref":"#/components/schemas/CategoryBase"},"type":"array"}},"type":"object"}],"example":{"categories":[{"description":"Sumptuous starters","id":"3","name":"Starters"},{"description":"Magnificent mains","id":"4","name":"Mains"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedCategoryItemsResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"itemIds":{"description":"List of item IDs which are assigned to the specified category","items":{"type":"string"},"type":"array"}},"type":"object"}],"example":{"itemIds":["65143901","65143902","65143903","65143904","65143905"],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedDealItemVariationResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"dealItemVariations":{"description":"List of deal item variations which form the specified deal group","items":{"$ref":"#/components/schemas/DealItemVariation"},"type":"array"}},"type":"object"}],"example":{"dealItemVariations":[{"additionPrice":50,"dealItemVariationId":"8548153","maxChoices":1,"minChoices":0},{"additionPrice":100,"dealItemVariationId":"8548153","maxChoices":2,"minChoices":1}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedFoodSafetyResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"data":{"description":"List of Products with food safety data.","items":{"$ref":"#/components/schemas/ProductFoodSafety"},"maxItems":500,"minItems":0,"type":"array"}},"type":"object"}],"example":{"data":[{"additives":[{"code":"10.2"}],"allergens":[{"code":"A"}],"id":"RRR3PRE","ingredients":["wasser"],"manufacturer":{"brand":"Coca-Cola Zero","city":"Anderlecht","manufacturer":"Coca-Cola Erfrischungsgetränke AG, Postfach 67 01 56, 10207 Berlin","origin":"Deutschland","postalCode":"1070","streetAddress":"Bergense Steenweg 1424"},"nutritional":{"alcohol":{"unit":"%","value":7.5},"caffeine":{"unit":"mg","value":10},"calories":{"unit":"kcal","value":42},"carbohydrate":{"unit":"mg","value":22000},"energy":{"unit":"kJ","value":175.5},"fat":{"unit":"mg","value":16000},"fattyAcidTotal":{"unit":"mg","value":100},"protein":{"unit":"mg","value":4000.01},"salt":{"unit":"mg","value":20},"sodium":{"unit":"mg","value":10},"sugar":{"unit":"mg","value":9100}},"storage":{"stgInstruction":"Example"},"type":"product"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw=="}}}},"PagedMenuDealGroupsResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"dealGroups":{"description":"List of deal groups for the given menu item on the given restaurant's menu","items":{"$ref":"#/components/schemas/MenuDealGroupBase"},"type":"array"}},"type":"object"}],"example":{"dealGroups":[{"id":"23435309-1","name":"Choose your base","numberOfChoices":1},{"id":"23435309-2","name":"Choose your halves","numberOfChoices":2}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedMenuItemsResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"items":{"description":"List of menu items for a given restaurant's menu.","items":{"$ref":"#/components/schemas/MenuItemBase"},"type":"array"}},"type":"object"}],"example":{"items":[{"description":"","id":"65143901","labels":[],"name":"Flat Bread and Dips (Pick any 2 Dips)","requireOtherProducts":false,"type":"menuItem"},{"description":"","id":"8547130","labels":[],"name":"Margherita","requireOtherProducts":true,"type":"menuItem"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedMenuModifierGroupsResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"modifierGroups":{"description":"List of modifier groups for the given menu item on the given restaurant's menu","items":{"$ref":"#/components/schemas/MenuModifierGroup"},"type":"array"}},"type":"object"}],"example":{"modifierGroups":[{"id":"8547130-req-1","maxChoices":1,"minChoices":1,"modifiers":[{"additionPrice":0,"id":"854500","maxChoices":1,"minChoices":0,"name":"Classic Crust"},{"additionPrice":200,"id":"854600","maxChoices":1,"minChoices":0,"name":"Stuffed Crust"}],"name":"Choose your crust"},{"id":"8547130-opt-1","maxChoices":10,"minChoices":0,"modifiers":[{"additionPrice":50,"id":"1000","maxChoices":2,"minChoices":0,"name":"Mozzarella Cheese"},{"additionPrice":50,"id":"1001","maxChoices":1,"minChoices":0,"name":"Ham"},{"additionPrice":50,"id":"1002","maxChoices":1,"minChoices":0,"name":"Red Onion"},{"additionPrice":50,"id":"1003","maxChoices":1,"minChoices":0,"name":"Pepperoni"},{"additionPrice":50,"id":"1004","maxChoices":1,"minChoices":0,"name":"Olives"}],"name":"Any extra toppings?"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}}},"PagedVariationsResponse":{"allOf":[{"$ref":"#/components/schemas/PagedAfterOnlyCursorResponse"},{"properties":{"variations":{"description":"List of variations for the given menu item on the given restaurant's menu","items":{"$ref":"#/components/schemas/Variation"},"type":"array"}},"type":"object"}],"example":{"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}},"variations":[{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":500,"dealGroupsIds":[],"dealOnly":true,"id":"8547121","kitchenNumber":"100","modifierGroupsIds":["8547130-opt-1"],"name":"Half","type":"variation"},{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":1000,"dealGroupsIds":[],"dealOnly":false,"id":"8547130","kitchenNumber":"100","modifierGroupsIds":["8547130-req-1","8547130-opt-1"],"name":"12 inch","type":"variation"},{"availabilityIds":["1-lunch-delivery-weekday","2-lunch-collection-weekday","3-dinner-delivery-weekday","4-dinner-collection-weekday"],"basePrice":1200,"dealGroupsIds":[],"dealOnly":true,"id":"8543123","kitchenNumber":"200","modifierGroupsIds":["8547130-req-1","8547130-opt-1"],"name":"14 inch","type":"variation"}]}},"PartnerConsumerSegment":{"enum":["All","NewToRestaurant"],"type":"string"},"PartnerInfo":{"additionalProperties":false,"properties":{"friendlyOrderReference":{"description":"Friendly order reference","nullable":true,"type":"string"},"orderReference":{"description":"Reference that partner uses to identify the order","nullable":true,"type":"string"},"partnerId":{"description":"Partner id of the source","nullable":true,"type":"string"},"partnerName":{"description":"Partner name of the source","nullable":true,"type":"string"},"source":{"description":"Where did the order originate (Just Eat, third party etc.)","nullable":true,"type":"string"}},"type":"object"},"PartnerOfferType":{"enum":["Percent","FreeItem","Bogof","StampCard"],"type":"string"},"PasswordResetFlowResponse":{"example":{"email":"example@just-eat.com","globalUserId":"8It2lEaJjG82nJtxO00Iab0CoF0="},"properties":{"email":{"description":"The consumer's email address.","type":"string"},"globalUserId":{"description":"Global identifier for consumer and tenant.","type":"string"}},"type":"object"},"PaymentDirectives":{"description":"The directives for payment component","properties":{"DisableCashPayment":{"description":"Indicates if cash payment option should be disabled","type":"boolean"}},"type":"object"},"PaymentInfo":{"additionalProperties":false,"properties":{"accountCreditAmount":{"description":"Total amount paid for with account credit","format":"decimal","type":"number"},"cardAmount":{"description":"Amount paid by card","format":"decimal","type":"number"},"cardFee":{"description":"Card fee for the order","format":"decimal","type":"number"},"cardNumberLast4Digits":{"description":"Last 4 digits of the payment card","nullable":true,"type":"string"},"currency":{"description":"Name of the currency used for the order","nullable":true,"type":"string"},"deliveryCharge":{"description":"Amount of cost that comes from delivery","format":"decimal","type":"number"},"discount":{"description":"Total amount of discount","format":"decimal","type":"number"},"discountSource":{"description":"Source of discount (i.e. Just Eat or restaurant funded)","nullable":true,"type":"string"},"feeText":{"description":"Type of fee (`spanner`, `card`, `servicecharge`)","nullable":true,"type":"string"},"isCashPayment":{"description":"Is it a cash order","type":"boolean"},"leftToPay":{"description":"Amount left for customer to pay in cash after all vouchers and discounts removed from total","format":"decimal","type":"number"},"taxes":{"additionalProperties":{"format":"decimal","type":"number"},"description":"Tax information for the order","nullable":true,"type":"object"},"totalPrice":{"description":"Total price of the order","format":"decimal","type":"number"},"voucherAmount":{"description":"Total amount paid for with a voucher","format":"decimal","type":"number"}},"type":"object"},"Percent":{"allOf":[{"$ref":"#/components/schemas/ActiveConsumerOffer"},{"additionalProperties":false,"properties":{"amount":{"description":"The percentage value discount","format":"decimal","type":"number"},"maxQualifyingValue":{"description":"The maximum order value required to be eligible for the offer","format":"decimal","type":"number"},"qualifyingValue":{"description":"The minimum order value required to be eligible for the Offer","format":"decimal","type":"number"}},"type":"object"}]},"PolicyEligibility":{"additionalProperties":false,"properties":{"code":{"description":"Policy rule name","enum":["BlockBlacklistedRestaurants","BlockCashCancellationBlacklistedRestaurants","BlockCashOrders","CashCancellationsAreWithinAllowedThreshold","CashOrderInTheWindowAfterAcceptance","MaxCancellationsPerCustomer","MaxCancellationsPerRestaurant","EvaluateMaxOrderValue","NotInTheWindowAfterAcceptance","OrderCancelledStatePolicy","IsRestaurantCancellationCapable"],"nullable":true,"type":"string"},"passed":{"description":"Passed or not","type":"boolean"}},"type":"object"},"PolicyFee":{"additionalProperties":false,"properties":{"amount":{"description":"Amount to be returned in local currency","format":"decimal","type":"number"},"justificationCode":{"description":"Justification code","enum":["CancellationOutsideWindow","UnChargeableReason","EmptyAcceptedAt","CancellationInsideWindow"],"nullable":true,"type":"string"},"percentage":{"description":"Percentage to be returned","format":"decimal","type":"number"}},"type":"object"},"PolicyOutcome":{"additionalProperties":false,"properties":{"decision":{"description":"Decision after policy run","enum":["Offered","Declined"],"nullable":true,"type":"string"},"fee":{"$ref":"#/components/schemas/PolicyFee","description":"Fee details after the policy run"}},"type":"object"},"PolicyResult":{"additionalProperties":false,"properties":{"eligibility":{"description":"Eligibility details","items":{"$ref":"#/components/schemas/PolicyEligibility"},"nullable":true,"type":"array"},"outcome":{"$ref":"#/components/schemas/PolicyOutcome","description":"Result of the policy run"}},"type":"object"},"PredictiveSearchRequest":{"example":{"location":"BS1","restaurants":[{"restaurantId":"1234"},{"menuId":"678","restaurantId":"1235"}],"searchTerm":"Pizza"},"properties":{"location":{"description":"User's location","type":"string"},"restaurants":{"description":"Restaurants that can be included in the search","items":{"$ref":"#/components/schemas/RequestRestaurant"},"maxItems":2000,"type":"array","uniqueItems":true},"searchTerm":{"description":"User's search term - at least one character required","minLength":1,"type":"string"}},"required":["searchTerm","restaurants"],"type":"object"},"PredictiveSearchResponse":{"example":{"suggestions":[{"category":"Restaurant","suggestedTerm":"Pizza Palace"},{"category":"Cuisine","suggestedTerm":"Pizza"},{"category":"Dish","suggestedTerm":"Large Hawaiian"}]},"properties":{"suggestions":{"description":"Ordered list of suggested term completions","items":{"$ref":"#/components/schemas/PredictiveSearchResponseItem"},"maxItems":10,"type":"array","uniqueItems":false}},"type":"object"},"PredictiveSearchResponseItem":{"example":{"category":"Restaurant","suggestedTerm":"Pizza Palace"},"properties":{"category":{"description":"Grouping to which term belongs","enum":["Restaurant","Cuisine","Dish"],"type":"string"},"suggestedTerm":{"description":"Suggested search term","type":"string"}},"type":"object"},"Product":{"properties":{"BasketProductIds":{"items":{"type":"string"},"type":"array"},"CategoryId":{"type":"string"},"ModifierGroups":{"items":{"$ref":"#/components/schemas/ModifierGroup"},"nullable":true,"type":"array"},"Name":{"type":"string"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"RemovedIngredients":{"items":{"$ref":"#/components/schemas/RemovedIngredient"},"nullable":true,"type":"array"},"TotalPrice":{"format":"decimal","type":"number"},"Variation":{"nullable":true,"type":"string"}},"type":"object"},"ProductFoodSafety":{"additionalProperties":false,"properties":{"additives":{"description":"List of additives","items":{"$ref":"#/components/schemas/Additive"},"maxItems":26,"minItems":0,"nullable":false,"type":"array"},"allergens":{"description":"List of allergens","items":{"$ref":"#/components/schemas/Allergen"},"maxItems":29,"minItems":0,"nullable":false,"type":"array"},"id":{"description":"Encrypted Product/Addon Id","nullable":false,"type":"string"},"ingredients":{"description":"List of ingredients","items":{"$ref":"#/components/schemas/Ingredients"},"maxItems":80,"minItems":0,"nullable":false,"type":"array"},"manufacturer":{"allOf":[{"$ref":"#/components/schemas/Manufacturer"}],"description":"Object for manufacturer data","nullable":false,"type":"object"},"nutritional":{"allOf":[{"$ref":"#/components/schemas/Nutritional"}],"description":"Object for nutritional data","nullable":false,"type":"object"},"storage":{"allOf":[{"$ref":"#/components/schemas/Storage"}],"description":"Object for storage data","nullable":false,"type":"object"},"type":{"description":"Product or Addon","nullable":false,"type":"string"}},"type":"object"},"ProductGroup":{"additionalProperties":false,"properties":{"products":{"description":"List of products","items":{"$ref":"#/components/schemas/MergedProduct"},"nullable":true,"type":"array"}},"type":"object"},"ProductRecommendationsResponse":{"description":"Contains all recommendations for a product.","properties":{"recommendations":{"description":"Gets or sets an array of products that are recommended for the source product.","items":{"description":"Contains information for a single recommended product.","properties":{"confidence":{"description":"Gets or sets the confidence level of this recommendation (between 0 and 1).","format":"double","type":"number"},"imageUrl":{"description":"The URL of the image, if available, to display with the view","type":"string"},"productId":{"description":"Gets or sets the id of the product that is being recommended.","type":"string"}},"type":"object"},"type":"array"},"renderWithView":{"description":"Gets or sets the name of the UI component that the client should use to display the recommendations,\r\nwhich is taken from the experiment data for the user.","type":"string"},"restaurantId":{"description":"Gets or sets the restaurant id","type":"string"}},"type":"object"},"ProductWithOfflineStatus":{"description":"Product.","example":{"CategoryIds":["1"],"Description":"","Id":"111","IsOffline":false,"Name":"Coca-Cola 0.33L","NextAvailableAt":null,"Price":{"CurrencyCode":"GBP","Value":99}},"properties":{"CategoryIds":{"description":"List of Category IDs this product belongs to.","items":{"type":"string"},"type":"array"},"Description":{"description":"Product description.","type":"string"},"Id":{"description":"Product identifier.","type":"string"},"IsOffline":{"description":"True if this Product is not available to purchase.","type":"boolean"},"Name":{"description":"Product name.","type":"string"},"NextAvailableAt":{"description":"Time when product will be brought back online.","format":"date-time","nullable":true,"type":"string"},"Price":{"description":"The price of this Product.","properties":{"CurrencyCode":{"description":"The currency of this Price in ISO 4217 format.","type":"string"},"Value":{"description":"The value of this Price in the minor unit of the currency.","format":"integer","type":"number"}},"type":"object"}},"type":"object"},"ProductsResponse":{"example":{"Paging":{"Cursors":{"After":"NDMyNzQyODI3OTQw"}},"Products":[{"CategoryIds":["1"],"Description":"","Id":"111","IsOffline":false,"Name":"Coca-Cola 0.33L","NextAvailableAt":null,"Price":{"CurrencyCode":"GBP","Value":99}},{"CategoryIds":["1"],"Description":"","Id":"112","IsOffline":false,"Name":"Coca-Cola 1.5L","NextAvailableAt":null,"Price":{"CurrencyCode":"GBP","Value":199}},{"CategoryIds":["2"],"Description":"","Id":"222","IsOffline":true,"Name":"Chicken & Sweetcorn Soup","NextAvailableAt":"2025-04-15T13:52:07.561Z","Price":{"CurrencyCode":"GBP","Value":299}}]},"properties":{"Paging":{"description":"Consists of pagination information.","properties":{"Cursors":{"description":"Consists of cursors markers used in pagination.","properties":{"After":{"description":"The value should be used in the query parameter named after. It is used as a cursor of the last returned record in the previous request, from which next offset going to be fetched. A missing or empty value indicates that the end of the result set has been reached.","type":"string"}},"type":"object"}},"type":"object"},"Products":{"description":"List of products for a given restaurant.","items":{"$ref":"#/components/schemas/ProductWithOfflineStatus"},"type":"array"}},"type":"object"},"PromotedPlacementActivePlacement":{"additionalProperties":true,"example":{"availableActions":["adjustBudget","resume","cancel"],"deliveryArea":"NW6","placementId":"100005","purchaseDate":"2025-04-15T13:52:07.561Z","status":{"pause":{"code":"paused","pauseDate":"2025-04-15T13:52:07.561Z","resumeDate":"2025-04-15T13:52:07.561Z"}},"weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"recommended":13000,"remaining":5000,"total":13000}},"nullable":false,"properties":{"availableActions":{"description":"A list of the currently supported actions for this placement.","items":{"enum":["adjustBudget","cancel","pause","resume","undoCancel"],"type":"string"},"type":"array"},"deliveryArea":{"description":"The postcode or location that the placement applies to.","nullable":false,"type":"string"},"placementId":{"description":"The unique identifier of the placement.","nullable":false,"type":"string"},"purchaseDate":{"description":"The UTC date and time at which this placement was purchased.","format":"date-time","nullable":false,"type":"string"},"status":{"description":"Contains status information for different aspects of this placement. 'normal' status is assumed if no additional status information is available.","properties":{"budget":{"additionalProperties":true,"description":"The budget status of this placement.","nullable":false,"properties":{"code":{"description":"The status code that describes this placement's current budget status.","enum":["budgetLow","budgetExhausted"],"nullable":false,"type":"string"}},"required":["code"]},"contract":{"additionalProperties":true,"description":"The status of this placement's contract.","nullable":false,"properties":{"cancellableAfterDate":{"description":"The UTC date and time after which this placement may be cancelled. Available if the status code is `inNonCancellablePeriod`.","format":"date-time","nullable":false,"type":"string"},"code":{"description":"The status code that describes this placement's contract status.","enum":["inNonCancellablePeriod","cancelled"],"nullable":false,"type":"string"},"endDate":{"description":"The UTC date and time at which this placement will end. Available if the status code is \"cancelled\".","format":"date-time","nullable":false,"type":"string"}},"required":["code"],"type":"object"},"pause":{"additionalProperties":true,"description":"The pause status of this placement.","nullable":false,"properties":{"code":{"description":"The status code that describes this placement's pause status.","enum":["paused"],"nullable":false,"type":"string"},"pauseDate":{"description":"The UTC date and time at which this placement was paused as a result of a manual action. Available if the status code is \"paused\".","format":"date-time","nullable":false,"type":"string"},"resumeDate":{"description":"The UTC date and time at which this placement is scheduled to be resumed. Available if the status code is \"paused\" and a resume date was specified.","format":"date-time","nullable":false,"type":"string"}},"required":["code"]}},"type":"object"},"weeklyBudget":{"description":"Contains information about the weekly budget for this placement.","nullable":false,"properties":{"maximumAllowable":{"description":"The maximum allowable budget for this week in the smallest unit of local currency (e.g., pence). It will not be possible to set a budget that exceeds this amount.","format":"int32","nullable":false,"type":"integer"},"minimumAllowable":{"description":"The minimum allowable budget for this week in the smallest unit of local currency (e.g., pence). It will not be possible to set a budget lower than this amount.","format":"int32","nullable":false,"type":"integer"},"recommended":{"description":"The recommended budget for this week so that the budget does not run out in the smallest unit of local currency (e.g., pence).","format":"int32","nullable":false,"type":"integer"},"remaining":{"description":"The remaining budget for this week in the smallest unit of local currency (e.g., pence).","format":"int32","nullable":false,"type":"integer"},"total":{"description":"The total budget for this week in the smallest unit of local currency (e.g., pence).","format":"int32","nullable":false,"type":"integer"}},"required":["remaining","total","maximumAllowable","minimumAllowable","recommended"],"type":"object"}},"required":["placementId","deliveryArea","purchaseDate","weeklyBudget","status"],"type":"object"},"PromotedPlacementActivePlacementsForRestaurantResponse":{"additionalProperties":true,"example":{"metadata":{"currency":"GBP","effectiveDate":"2025-04-15T13:52:07.561Z"},"placements":[{"availableActions":["adjustBudget","resume","cancel"],"deliveryArea":"NW6","placementId":"100001","purchaseDate":"2025-04-15T13:52:07.561Z","status":{"pause":{"code":"paused","pauseDate":"2025-04-15T13:52:07.561Z","resumeDate":"2025-04-15T13:52:07.561Z"},"placement":{"code":"cancelled","endDate":"2025-04-15T13:52:07.561Z"}},"weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"recommended":13000,"remaining":5000,"total":13000}},{"availableActions":["adjustBudget","pause","cancel"],"deliveryArea":"NW5","placementId":"100002","purchaseDate":"2025-04-15T13:52:07.561Z","status":{"budget":{"code":"budgetLow"}},"weeklyBudget":{"maximumAllowable":110000,"minimumAllowable":500,"recommended":14000,"remaining":210,"total":13000}},{"availableActions":["adjustBudget","undoCancel"],"deliveryArea":"NW4","placementId":"100003","purchaseDate":"2025-04-15T13:52:07.561Z","status":{"placement":{"code":"cancelled","endDate":"2025-04-15T13:52:07.561Z"}},"weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"recommended":14000,"remaining":3200,"total":13000}},{"availableActions":["adjustBudget","pause","cancel"],"deliveryArea":"NW3","placementId":"100004","purchaseDate":"2025-04-15T13:52:07.561Z","status":{"budget":{"code":"budgetExhausted"}},"weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"recommended":14000,"remaining":0,"total":13000}}]},"properties":{"contract":{"description":"Information about the contract for this restaurant.","properties":{"nonCancellablePeriodEndDate":{"description":"The UTC time after which the non-cancellable period ends for this restaurant. If not specified, this restaurant has week-by-week rolling contracts.","format":"date-date","type":"string"}},"type":"object"},"metadata":{"additionalProperties":true,"description":"Additional metadata that may assist the rendering of the response.","properties":{"currency":{"description":"The currency used for the budget data in ISO 4217 format, e.g., GBP, EUR or AUD.","nullable":false,"type":"string"},"effectiveDate":{"description":"The UTC time at which the request was processed for relative time calculations.","format":"date-time","nullable":false,"type":"string"}},"type":"object"},"placements":{"description":"List of promoted placements active for a given restaurant.","items":{"$ref":"#/components/schemas/PromotedPlacementActivePlacement"},"type":"array"}},"required":["placements"],"type":"object"},"PromotedPlacementAvailablePlacement":{"additionalProperties":true,"example":{"deliveryArea":"NW6","inAllowList":true,"weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"recommended":13000}},"nullable":false,"properties":{"deliveryArea":{"description":"The postcode or location that is available for starting a placement.","nullable":false,"type":"string"},"inAllowList":{"description":"Indicates whether this placement is in the allow list for self-service purchase by the restaurant partner.","nullable":false,"type":"boolean"},"weeklyBudget":{"additionalProperties":true,"description":"Contains information about the required weekly budget for this placement location.","nullable":false,"properties":{"maximumAllowable":{"description":"The maximum allowable budget for this week in the smallest unit of local currency (e.g., pence). It will not be possible to set a budget that exceeds this amount.","format":"int32","nullable":false,"type":"integer"},"minimumAllowable":{"description":"The minimum allowable budget for this week in the smallest unit of local currency (e.g., pence). It will not be possible to set a budget lower than this amount.","format":"int32","nullable":false,"type":"integer"},"recommended":{"description":"The recommended budget for this week so that the budget does not run out in the smallest unit of local currency (e.g., pence).","format":"int32","nullable":false,"type":"integer"}},"required":["maximumAllowable","minimumAllowable","recommended"],"type":"object"}},"required":["deliveryArea","weeklyBudget"],"type":"object"},"PromotedPlacementAvailablePlacementsForRestaurantResponse":{"additionalProperties":true,"example":{"metadata":{"currency":"GBP","effectiveDate":"2025-04-15T13:52:07.561Z"},"placements":[{"deliveryArea":"NW6","weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"minimumRecommended":1000,"recommended":13000}},{"deliveryArea":"NW5","weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"minimumRecommended":1000,"recommended":14000}},{"deliveryArea":"NW4","weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"minimumRecommended":1000,"recommended":14000}},{"deliveryArea":"NW3","weeklyBudget":{"maximumAllowable":100000,"minimumAllowable":500,"minimumRecommended":1000,"recommended":14000}}]},"properties":{"metadata":{"additionalProperties":true,"description":"Additional metadata that may assist the rendering of the response.","properties":{"currency":{"description":"The currency used for the budget data in ISO 4217 format, e.g., GBP, EUR or AUD.","nullable":false,"type":"string"},"effectiveDate":{"description":"The UTC time at which the request was processed for relative time calculations.","format":"date-time","nullable":false,"type":"string"},"timeZone":{"description":"The restaurant's timezone in IANA format, e.g., Europe/London.","type":"string"}},"type":"object"},"placements":{"description":"List of promoted placements available for purchase for a given restaurant.","items":{"$ref":"#/components/schemas/PromotedPlacementAvailablePlacement"},"type":"array"}},"type":"object"},"PromotedPlacementCancelPlacementRequest":{"example":{"cancellationEffective":"atEndOfWeek"},"oneOf":[{"additionalProperties":true,"nullable":false,"properties":{"cancellationEffective":{"description":"When the cancellation should take effect.","enum":["atEndOfWeek"],"type":"string"}},"required":["cancellationEffective"],"type":"object"},{"additionalProperties":true,"nullable":false,"properties":{"cancellationEffective":{"description":"When the cancellation should take effect.","enum":["atSpecifiedTime"],"type":"string"},"cancellationTime":{"description":"The UTC time at which the cancellation should take effect.","format":"date-time","type":"string"}},"required":["cancellationEffective","cancellationTime"],"type":"object"}]},"PromotedPlacementCandidateRestaurant":{"additionalProperties":true,"example":{"metadata":{"key":"value"},"rank":1,"restaurantId":"1234"},"properties":{"rank":{"description":"The relative rank of this candidate restaurant in relation to others in the response. A smaller number indicates that this restaurant should be shown closer to the beginning of the list.","type":"number"},"restaurantId":{"description":"The unique identifier of the candidate restaurant.","type":"string"}},"type":"object"},"PromotedPlacementCandidateRestaurantsResponse":{"additionalProperties":false,"example":{"candidateRestaurants":[{"rank":1,"restaurantId":"1234"},{"rank":2,"restaurantId":"4567"},{"rank":3,"restaurantId":"3245"}],"metadata":{"availableFilteredPositions":2,"availableUnfilteredPositions":5}},"properties":{"candidateRestaurants":{"description":"An array of candidate restaurants that are available for Promoted Placement.","items":{"$ref":"#/components/schemas/PromotedPlacementCandidateRestaurant"},"type":"array"},"metadata":{"additionalProperties":true,"description":"Contains additional metadata that may affect the rendering of Promoted Placement candidate restaurants.","properties":{"availableFilteredPositions":{"description":"The number of Promoted Placement positions available in this location when displaying a filtered list of restaurants.","type":"number"},"availableUnfilteredPositions":{"description":"The number of Promoted Placement positions available in this location when displaying the full list of restaurants.","type":"number"}},"type":"object"}},"type":"object"},"PromotedPlacementPlacementInsights":{"additionalProperties":true,"example":{"metadata":{"currency":"GBP"},"reports":{"last-28-days":{"data":{"overall":{"menuViews":1236,"newCustomers":198,"orderValue":1137241,"orders":660},"promotedPlacement":{"menuViews":922,"newCustomers":67,"orderValue":403212,"orders":250,"placementSpend":60630}},"period":{"createdAt":"2025-04-15T13:52:07.561Z","endDate":"2025-04-15T13:52:07.561Z","startDate":"2025-04-15T13:52:07.561Z"}},"last-7-days":{"data":{"overall":{"menuViews":309,"newCustomers":50,"orderValue":315910,"orders":165},"promotedPlacement":{"menuViews":225,"newCustomers":17,"orderValue":96090,"orders":48,"placementSpend":14190}},"period":{"createdAt":"2025-04-15T13:52:07.561Z","endDate":"2025-04-15T13:52:07.561Z","startDate":"2025-04-15T13:52:07.561Z"}}}},"properties":{"metadata":{"additionalProperties":true,"description":"Additional metadata that may assist the rendering of the response.","properties":{"currency":{"description":"The currency used in the reports in ISO 4217 format, e.g., GBP, EUR or AUD.","nullable":false,"type":"string"}},"type":"object"},"reports":{"additionalProperties":{"additionalProperties":true,"description":"A report for a given time period.","properties":{"data":{"additionalProperties":true,"description":"The placement insights data for this report period.","properties":{"overall":{"additionalProperties":true,"description":"Total values for this period.","properties":{"menuViews":{"description":"The total number of menu views.","format":"int32","type":"integer"},"newCustomers":{"description":"The total number of new customers.","format":"int32","type":"integer"},"orderValue":{"description":"The total order value in the smallest unit of local currency (e.g., pence).","format":"int32","type":"integer"},"orders":{"description":"The total number of orders.","format":"int32","type":"integer"}},"required":["newCustomers","menuViews","orders","orderValue"],"type":"object"},"promotedPlacement":{"additionalProperties":true,"description":"Total values for promoted placement in this period.","properties":{"menuViews":{"description":"The total number of promoted menu views.","format":"int32","type":"integer"},"newCustomers":{"description":"The total number of new customers as a result of promoted placement.","format":"int32","type":"integer"},"orderValue":{"description":"The total order value resulting from promoted placement orders in the smallest unit of local currency (e.g., pence).","format":"int32","type":"integer"},"orders":{"description":"The total number of orders resulting from promoted placement menu views.","format":"int32","type":"integer"},"placementSpend":{"description":"The total amount spent on promoted placement in the smallest unit of local currency (e.g., pence).","format":"int32","type":"integer"}},"required":["newCustomers","menuViews","orders","orderValue","placementSpend"],"type":"object"}},"type":"object"},"period":{"description":"Describes the time period for this report.","properties":{"createdAt":{"description":"The UTC time at which this report was generated.","format":"date-time","nullable":false,"type":"string"},"endDate":{"description":"The end date of this report period.","format":"date","nullable":false,"type":"string"},"startDate":{"description":"The start date of this report period.","format":"date","nullable":false,"type":"string"}},"required":["createdAt","startDate","endDate"],"type":"object"}},"required":["period","data"],"type":"object"},"description":"Reports keyed by the name of specific time periods.","type":"object"}},"required":["reports"],"type":"object"},"Prompts":{"properties":{"DiscountApplied":{"nullable":true,"properties":{"Amount":{"format":"decimal","type":"number"}},"type":"object"},"InvalidProducts":{"items":{"$ref":"#/components/schemas/InvalidProduct"},"type":"array"},"ItemDiscounts":{"description":"Collection of item discount prompts to be shown customer","items":{"$ref":"#/components/schemas/ItemDiscountPrompt"},"type":"array"},"Offers":{"items":{"properties":{"DiscountValue":{"format":"decimal","type":"number"},"OfferType":{"type":"string"},"QualifyingValue":{"format":"decimal","type":"number"},"ToSpendValue":{"format":"decimal","type":"number"}},"type":"object"},"type":"array"},"OfflineProducts":{"items":{"$ref":"#/components/schemas/OfflineProduct"},"type":"array"},"RequiresOther":{"type":"boolean"},"SpendMore":{"nullable":true,"properties":{"MinimumOrderAmount":{"format":"decimal","type":"number"},"ToSpend":{"format":"decimal","type":"number"}},"type":"object"}},"type":"object"},"Properties":{"description":"Geometry information for consumers location","example":{"accuracyScore":100,"geocodingProvider":"Google","matchScore":100},"properties":{"accuracyScore":{"default":80,"description":"Just Eat Takeaway address accuracy score","format":"integer","maximum":100,"minimum":1,"type":"number"},"geocodingProvider":{"description":"the geocoding provider","type":"string"},"matchScore":{"default":100,"description":"Just Eat Takeaway address match score","format":"integer","maximum":100,"minimum":1,"type":"number"}},"type":"object"},"PushNotificationRegistrationUpdate":{"additionalProperties":false,"properties":{"appType":{"$ref":"#/components/schemas/AppType","description":"Application type"},"pushNotificationToken":{"description":"Push notification token","nullable":true,"type":"string"}},"type":"object"},"PutProductBackOnTheMenuCommand":{"additionalProperties":false,"properties":{"deletedBy":{"description":"Application which requested operation e.g. Orderpad, RestaurantApp","nullable":true,"type":"string"},"productIds":{"description":"List of product Ids to be brought back online","items":{"type":"string"},"nullable":true,"type":"array"},"requestedAt":{"description":"Request date and time in ISO 8601 format","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"RedeemCommand":{"properties":{"pin":{"type":"string"}},"type":"object"},"RedeemCommandResponse":{"properties":{"value":{"format":"int32","type":"integer"}},"type":"object"},"RedeemPaycodeCommand":{"properties":{"paycode":{"type":"string"}},"type":"object"},"RedeemPaycodeResponse":{"properties":{"value":{"format":"int32","type":"integer"}},"type":"object"},"RedeliverOrderResolution":{"properties":{"NewDueDate":{"description":"Updated due date for delivery of the order","format":"date-time","type":"string"},"Status":{"description":"The current status of the order","enum":["DriverAtAddress","Repreparing"],"type":"string"}},"type":"object"},"RegistrationRequest":{"additionalProperties":false,"properties":{"appType":{"$ref":"#/components/schemas/AppType","description":"Application type"},"password":{"description":"Password","nullable":true,"type":"string"},"pushNotificationId":{"description":"The id used in push notification registration","nullable":true,"type":"string"},"username":{"description":"Username","nullable":true,"type":"string"}},"type":"object"},"RegistrationResponse":{"additionalProperties":false,"properties":{"appType":{"description":"Application type","nullable":true,"type":"string"},"restaurantId":{"description":"The Id of the restaurant","nullable":true,"type":"string"},"token":{"description":"Created authentication token","nullable":true,"type":"string"},"userId":{"description":"The Id of the user","nullable":true,"type":"string"}},"type":"object"},"RemovedIngredient":{"properties":{"Details":{"type":"string"}},"type":"object"},"ReplaceRestaurantMenuRequest":{"description":"request containing links in s3 to new menu files","example":{"fileKeys":["3c81dq0k9bhj1bn_menu_1.pdf","1rhj7qhr6fhjgbm_menu_2.pdf"]},"properties":{"fileKeys":{"description":"Array of paths to the new menu files that were uploaded to the certain AWS s3 bucket","items":{"description":"path to the new menu file that Was uploaded to the certain AWS s3 bucket","type":"string"},"maxLength":10,"type":"array"}},"type":"object"},"RequestCsatStep":{"allOf":[{"$ref":"#/components/schemas/FlowStepBase"},{"properties":{"quitFlowAction":{"$ref":"#/components/schemas/HelpAction","description":"Action to close flow without giving CSAT"}},"type":"object"}],"description":"Flow step used for asking if customer was satisfied with flow","type":"object"},"RequestRestaurant":{"properties":{"menuId":{"description":"Id of the restaurant's menu","type":"string"},"restaurantId":{"description":"Id of the restaurant","type":"string"}},"required":["restaurantId"],"type":"object"},"RestaurantCapabilitiesPaymentTypeItem":{"example":{"cardTypes":["VISA","MASTERCARD","AMEX"],"paymentType":"Card","selected":false},"properties":{"cardTypes":{"description":"List of card types (only applies to `Card` payment type)","items":{"enum":["AMEX","DK","MASTERCARD","VISA","VISADK"],"format":"enum","type":"string"},"type":"array"},"maxOrderValueCents":{"description":"Max order value in smallest unit of relevant currency (only applies to `Cash` payment type)","format":"integer","type":"number"},"paymentType":{"description":"The payment type","enum":["ApplePay","Card","Cash","GooglePay","PayPal","VCO"],"type":"string"},"selected":{"description":"Flag to indicate if the payment type has been selected","type":"boolean"},"token":{"description":"Token to be used with the payment type (only applies to `PayPal` payment type)","type":"string"},"voucherAvailable":{"description":"Flag to indicate if vouchers are available for the payment type","type":"boolean"}},"type":"object"},"RestaurantCapabilitiesResponse":{"example":{"availablePaymentTypes":[{"paymentType":"ApplePay","selected":true,"voucherAvailable":true},{"paymentType":"GooglePay","selected":false},{"paymentType":"PayPal","selected":false,"token":"token123"},{"paymentType":"VCO","selected":false},{"maxOrderValueCents":5000,"paymentType":"Cash","selected":false},{"cardTypes":["VISA","MASTERCARD","AMEX"],"paymentType":"Card","selected":false}],"feeConfig":{"amountCents":1000}},"properties":{"availablePaymentTypes":{"description":"List of available payment types","items":{"$ref":"#/components/schemas/RestaurantCapabilitiesPaymentTypeItem"},"type":"array"},"feeConfig":{"description":"Details of any additional fees","properties":{"amountCents":{"description":"The fee amount in smallest unit of relevant currency","format":"integer","type":"number"}},"type":"object"}},"type":"object"},"RestaurantCommentsOnReview":{"example":{"restaurantComments":"Thank you very much for positive feedback"},"properties":{"restaurantComments":{"description":"Restaurant comments in response on the customer review","nullable":false,"type":"string"}},"type":"object"},"RestaurantConfiguration":{"additionalProperties":false,"properties":{"addressCity":{"description":"Address city","nullable":true,"type":"string"},"addressLine1":{"description":"Address line 1","nullable":true,"type":"string"},"brandName":{"description":"Name of the brand this restaurant belongs to","nullable":true,"type":"string"},"financeDetails":{"$ref":"#/components/schemas/RestaurantFinanceDetails","description":"Restaurant finance details"},"geoLocation":{"$ref":"#/components/schemas/GeoLocation","description":"Geo location details"},"isDmsEnabled":{"description":"Is DMS enabled","type":"boolean"},"isFlypayEposEnabled":{"description":"Is Flypay enabled","type":"boolean"},"isRdsRestaurant":{"description":"Is it RDS restaurant","type":"boolean"},"logoUrl":{"description":"Logo URL","nullable":true,"type":"string"},"name":{"description":"Name of the restaurant","nullable":true,"type":"string"},"phoneNumber":{"description":"Phone number","nullable":true,"type":"string"},"postalCode":{"description":"Post code of the restaurant","nullable":true,"type":"string"},"supportDetails":{"$ref":"#/components/schemas/RestaurantSupportDetails","description":"Restaurant support details"},"tempOffline":{"$ref":"#/components/schemas/RestaurantTempOffline","description":"Details of temp offline"},"website":{"description":"Web site address of the restaurant","nullable":true,"type":"string"}},"type":"object"},"RestaurantDeliveryFees":{"example":{"bands":[{"fee":250,"minimumAmount":1000},{"fee":0,"minimumAmount":2000}],"minimumOrderValue":1000,"restaurantId":"5678"},"nullable":false,"properties":{"bands":{"description":"Collection of delivery fee bands","items":{"properties":{"fee":{"description":"The delivery fee, in the smallest unit of local currency (e.g. pence).","format":"integer","type":"number"},"minimumAmount":{"description":"The minimum order value (excluding fees) when this fee band applies. The fee with the highest `minimumAmount` that is less than or equal to order value applies. This is in the smallest unit of local currency (e.g. pence).","format":"integer","type":"number"}},"type":"object"},"type":"array"},"minimumOrderValue":{"description":"The minimum order value (excluding fees) required, in the smallest unit of local currency (e.g. pence).","format":"integer","type":"number"},"restaurantId":{"description":"The identifier of the restaurant","type":"string"}},"type":"object"},"RestaurantDetailsLocation":{"description":"Location of the restaurant","properties":{"city":{"description":"City of the restaurant","type":"string"},"country":{"description":"Country of the restaurant","type":"string"},"geoPosition":{"$ref":"#/components/schemas/RestaurantDetailsLocationPosition","description":"Geoposition of the restaurant"},"postalCode":{"description":"Post code of the restaurant","type":"string"},"region":{"description":"Region of the restaurant","type":"string"},"streetAddress":{"description":"Street address of the restaurant","type":"string"}},"type":"object"},"RestaurantDetailsLocationPosition":{"description":"Geoposition of the restaurant in GeoJSON format","properties":{"coordinates":{"description":"longitude and latitude","items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"type":{"description":"type of primitive","enum":["Point"],"type":"string"}},"type":"object"},"RestaurantDetailsResponse":{"description":"response containing details of the restaurant","example":{"allergenInformation":{"phoneNumber":"+44 7911 123456","url":"http://test.com"},"contactOptions":{"emails":[{"email":"test@mcdonalds.com"},{"usedFor":["Invoice","Default"]}],"phoneNumbers":[{"phoneNumber":"+44 7911 123456"},{"usedFor":["Default","Owner","Alternative"]}]},"cuisines":["Italian","American"],"id":"108308","legalInformation":{"companyNumber":"12345","registeredName":"Mc Donald's"},"location":{"city":"London","country":"United Kingdom","geoPosition":{"coordinates":[51.509865,-0.118092],"type":"Point"},"postalCode":"EC4M 7RF","region":"Farringdon","streetAddress":"Fleet Place House, Fleet Place"},"name":"McDonald's Test"},"properties":{"allergenInformation":{"description":"Allergen details of the restaurant","properties":{"phoneNumber":{"description":"Phone number to contact restaurant about allergens","type":"string"},"url":{"description":"Page with information about allergens","type":"string"}},"type":"object"},"contactOptions":{"description":"Contact details of the restaurant","properties":{"emails":{"description":"Array containing an email with label items","items":{"description":"An item in emails array containing an email with label","maxItems":3,"properties":{"email":{"description":"Email contact","type":"string"},"usedFor":{"description":"Type of email contacts","items":{"description":"Array containing labels specifying email","enum":["Default","Invoice"],"format":"enum","type":"string"},"maxItems":3,"type":"array"}},"type":"object"},"type":"array"},"phoneNumbers":{"description":"Array containing a phone number with label items","items":{"description":"An item in emails array containing an email with label","maxItems":3,"properties":{"phoneNumber":{"description":"Phone number","type":"string"},"usedFor":{"description":"Type of phone number contacts","items":{"description":"Array containing labels specifying phone number","enum":["Default","Owner","Alternative"],"format":"enum","type":"string"},"maxItems":3,"type":"array"}},"type":"object"},"maxItems":3,"type":"array"}},"type":"object"},"cuisines":{"description":"Array of cuisines of restaurant","items":{"description":"Cuisine name","type":"string"},"type":"array"},"id":{"description":"A unique identifier at tenant level for a given restaurant","type":"string"},"legalInformation":{"description":"Legal information of the restaurant","properties":{"companyNumber":{"description":"Company number of the restaurant","type":"string"},"registeredName":{"description":"Legal company name of the restaurant","type":"string"}},"type":"object"},"location":{"$ref":"#/components/schemas/RestaurantDetailsLocation","description":"Location of the restaurant"},"name":{"description":"The name of the restaurant.","type":"string"}},"type":"object"},"RestaurantETAs":{"items":{"example":{"etaAtRestaurant":1,"restaurantId":"1"},"properties":{"etaAtRestaurant":{"description":"Your best estimation in minutes","format":"int32","type":"number"},"restaurantId":{"description":"The unique identifier of the restaurant.","type":"string"}},"type":"object"},"type":"array"},"RestaurantErrorResponse":{"example":{"errorCode":"InvalidCountryCode","errorId":"6947c692-ca24-434d-8166-d4d54ef8d74e","message":"The country code 'zzz' is not supported.","requestId":"8000324e-0000-f400-b63f-84710c7967bb","statusCode":"400","timestamp":"2025-04-15T13:52:07.562Z"},"properties":{"errorCode":{"description":"A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error","type":"string"},"errorId":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault","type":"string"},"message":{"description":"Specific details about the error that may assist the you in resolving the issue","type":"string"},"requestId":{"description":"A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated","type":"string"},"statusCode":{"description":"Http response status code","type":"string"},"timestamp":{"description":"Date-time when this request was processed","format":"date-time","type":"string"}},"type":"object"},"RestaurantFees":{"description":"An object encapsulating all possible fees which a restaurant can apply to itself","example":{"bagFee":{"description":"A charge for bags in delivery","serviceTypes":{"collection":{"amount":5},"default":{"amount":0},"delivery":{"amount":10}}}},"properties":{"bagFee":{"$ref":"#/components/schemas/Fee","description":"A fee applied for bags used for delivery and collection orders"}},"type":"object"},"RestaurantFinanceDetails":{"additionalProperties":false,"properties":{"paymentMode":{"description":"Current payment mode","enum":["CardOnly","CardAndCash"],"nullable":true,"type":"string"}},"type":"object"},"RestaurantInfo":{"additionalProperties":false,"properties":{"addressCity":{"description":"Restaurant address city","nullable":true,"type":"string"},"addressLine1":{"description":"Restaurant address line 1","nullable":true,"type":"string"},"geoLocation":{"description":"Restaurant geolocation","nullable":true,"oneOf":[{"$ref":"#/components/schemas/GeoLocation"}]},"name":{"description":"Restaurant name","nullable":true,"type":"string"},"phoneNumber":{"description":"Restaurant phone number","nullable":true,"type":"string"},"postalCode":{"description":"Restaurant name","nullable":true,"type":"string"},"vatRegistrationNumber":{"description":"Restaurant VAT registration number","nullable":true,"type":"string"},"website":{"description":"Restaurant website","nullable":true,"type":"string"}},"type":"object"},"RestaurantInvoiceDownloadInformation":{"description":"An information to download invoice content","example":{"downloadUrl":"https://invoicesbucket.s3.eu-west-1.amazonaws.com/123456.html?X-Amz-Expires=60&x-amz-security-token=qw12qw12&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ABABABABAB/20201007/eu-west-1/s3/aws4_request&X-Amz-Date=20201007T162255Z&X-Amz-SignedHeaders=host;x-amz-security-token&X-Amz-Signature=34rt34rt","expires":"2025-04-15T13:52:07.562Z"},"properties":{"downloadUrl":{"description":"The URL to download invoice content","type":"string"},"expires":{"description":"The time when the download URL expires and becomes invalid to download invoice content","format":"date-time","type":"string"}},"type":"object"},"RestaurantInvoiceSummary":{"description":"An invoice summary for the invoice period","properties":{"accountBalance":{"description":"Restaurant account balance at the end of the invoice period in smallest unit of relevant currency","format":"integer","type":"number"},"createdDate":{"description":"The invoice created date","format":"date-time","type":"string"},"currencyCode":{"description":"The ISO-4217 currency code associated with the invoice","type":"string"},"endDate":{"description":"The end date of the invoice period","format":"date","type":"string"},"id":{"description":"The Id of the invoice","type":"string"},"invoiceAmount":{"description":"Invoice amount for the invoice period in smallest unit of relevant currency","format":"integer","type":"number"},"startDate":{"description":"The start date of the invoice period","format":"date","type":"string"}},"type":"object"},"RestaurantInvoices":{"example":{"invoices":[{"accountBalance":123540,"createdDate":"2025-04-15T13:52:07.562Z","currencyCode":"GBP","endDate":"2025-04-15T13:52:07.562Z","id":"i9999999","invoiceAmount":5421,"startDate":"2025-04-15T13:52:07.562Z"},{"accountBalance":167980,"createdDate":"2025-04-15T13:52:07.562Z","currencyCode":"GBP","endDate":"2025-04-15T13:52:07.562Z","id":"i8888888","invoiceAmount":6798,"startDate":"2025-04-15T13:52:07.562Z"}],"paging":{"cursors":{"after":"fewyNzQyOGI3OHYt"}}},"properties":{"invoices":{"description":"List of restaurant invoice summaries","items":{"$ref":"#/components/schemas/RestaurantInvoiceSummary"},"type":"array"},"paging":{"description":"Consists of pagination information","properties":{"cursors":{"description":"Consists of cursor markers used in pagination","properties":{"after":{"description":"The value should be used in the query parameter named after. It is used as a cursor of the last returned record in the previous request, from which next offset going to be fetched. A missing or empty value indicates that the end of the result set has been reached","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"RestaurantOffer":{"properties":{"ConsumerSegment":{"description":"Consumer Segment to which offer applies","example":"NewToRestaurant","nullable":false,"type":"string"},"DiscountApplied":{"description":"The money value discount","format":"decimal","nullable":false,"type":"number"},"DiscountCode":{"description":"The unique code of the discount, acts as a lock object at payment stage","nullable":true,"type":"string"},"DiscountValue":{"description":"The percentage value discount. Returned 0 when offer is not of Percent type","format":"decimal","nullable":false,"type":"number"},"OfferId":{"description":"The unique identifier of the offer","nullable":false,"type":"string"},"OfferType":{"description":"The type of the offer","nullable":false,"type":"string"}},"required":["OfferId","OfferType","ConsumerSegment","DiscountApplied"],"type":"object"},"RestaurantOfflineStatus":{"example":{"AllowRestaurantOverride":false,"IsOffline":true,"RestaurantId":"123456","Tenant":"uk"},"properties":{"AllowRestaurantOverride":{"description":"Whether a restaurant should be allowed to reverse this offline status change through calls to the Restaurant Events endpoints.","nullable":true,"type":"boolean"},"IsOffline":{"description":"Represents the current offline status of the restaurant.","type":"boolean"},"RestaurantId":{"description":"The unique identifier of the restaurant that has their offline status changed.","type":"string"},"Tenant":{"description":"The two letter country code for the market in which the restaurant operates.","enum":["au","dk","es","ie","it","no","uk","nz"],"format":"enum","type":"string"}},"type":"object"},"RestaurantOrderAppliedDiscount":{"description":"A discount item in an order","properties":{"discountAmount":{"description":"The discount value in smallest unit of relevant currency","format":"integer","type":"number"},"type":{"description":"The type of discount","enum":["Percent","FirstTimeCustomer","StampCard"]}},"type":"object"},"RestaurantOrderCustomerInfo":{"description":"Information about a customer","properties":{"deliveryAddress":{"description":"The delivery address of the order","items":{"description":"The address line","type":"string"},"nullable":true,"type":"array"},"name":{"description":"The customer name","nullable":true,"type":"string"}},"type":"object"},"RestaurantOrderDetails":{"description":"An order details","example":{"appliedDiscounts":[{"discountAmount":2550,"type":"StampCard"}],"currencyCode":"GBP","customerInfo":{"deliveryAddress":["13 Moon road","Mars","BS5 1KG","Bristol"],"name":"Simon Moon"},"deliveryPrice":200,"dueDate":"2025-04-15T13:52:07.562Z","friendlyId":821367535,"id":"rtvtgo0wwugmiiikdpzvsg","orderItems":[{"description":"one pizza and one drink from choices","itemId":"p1","itemType":"Product","name":"Pizza and drink","quantity":1,"subItems":[{"description":"classic pizza Margherita","itemId":"mp1","itemType":"MealPart","name":"Margherita","quantity":1,"subItems":[],"synonym":"Medium","unitPrice":0},{"description":"","itemId":"mp2","itemType":"MealPart","name":"Coca-Cola","quantity":1,"subItems":[],"synonym":"1L","unitPrice":0},{"itemId":"a1","itemType":"Accessory","name":"Double Cheese","quantity":1,"subItems":[],"synonym":"","unitPrice":100}],"synonym":"Medium","unitPrice":999},{"description":"Romaine lettuce, croutons, Parmesan cheese, lemon juice, olive oil, egg, Worcestershire sauce, anchovies, Dijon mustard, black pepper","itemId":"p2","itemType":"Product","name":"Cesar Salad","quantity":2,"subItems":[],"synonym":"","unitPrice":533}],"orderNote":"Contact-free delivery","orderPrice":2099,"orderPriceBreakdown":{"accountCredits":500,"discounts":207,"fees":250,"items":2066,"vouchers":0},"orderStatus":"Cancelled","paymentInfo":{"fees":[{"type":"Card","value":50},{"type":"Delivery","value":200}],"paidDate":"2025-04-15T13:52:07.562Z","paymentLines":[{"fee":0,"paymentMethod":"AccountCredit","value":500},{"fee":50,"paymentMethod":"Card","value":1549}]},"paymentType":"Card","placedDate":"2025-04-15T13:52:07.562Z","previousJustEatOrderCount":3,"previousRestaurantOrderCount":1,"promptAsap":false,"serviceType":"Delivery","statusReason":"RejectedByRestaurant","transactionReference":123334567667989},"properties":{"appliedDiscounts":{"description":"List of restaurant applied discounts","items":{"$ref":"#/components/schemas/RestaurantOrderAppliedDiscount"},"type":"array"},"currencyCode":{"description":"The ISO-4217 currency code associated with the all prices and money amounts in order details","type":"string"},"customerInfo":{"$ref":"#/components/schemas/RestaurantOrderCustomerInfo","description":"Information about a customer"},"deliveryPrice":{"description":"The order delivery price in smallest unit of relevant currency","format":"integer","type":"number"},"dueDate":{"description":"The due date of the order","format":"date-time","type":"string"},"friendlyId":{"description":"The friendly order Id","type":"string"},"id":{"description":"The Id of the order","type":"string"},"orderItems":{"description":"List of restaurant order items","items":{"$ref":"#/components/schemas/RestaurantOrderItem"},"type":"array"},"orderNote":{"description":"The customer note to the order","nullable":true,"type":"string"},"orderPrice":{"description":"The order price in smallest unit of relevant currency","format":"integer","type":"number"},"orderPriceBreakdown":{"$ref":"#/components/schemas/RestaurantOrderPriceBreakdown","description":"The order price breakdown (all amounts in smallest unit of relevant currency)"},"orderStatus":{"description":"Status of completed order","enum":["Completed","Cancelled"]},"paymentInfo":{"$ref":"#/components/schemas/RestaurantOrderPaymentInfo","description":"Information about a payment"},"paymentType":{"description":"The payment type (cash or card)","enum":["Card","Cash"]},"placedDate":{"description":"The order placed date","format":"date-time","type":"string"},"previousRestaurantOrderCount":{"description":"The customer's previous total number of orders made to this restaurant","type":"number"},"previousTotalOrderCount":{"description":"The customer's previous total number of orders made to all restaurants","type":"number"},"promptAsap":{"description":"The flag that shows whether the customer awaits an order as soon as possible","type":"boolean"},"serviceType":{"description":"Type of service (collection, delivery or dine-in)","enum":["Delivery","Collection","DineIn"]},"statusReason":{"description":"The reason for the order's status, if known","enum":["TooFar","FakeDelivered","FakeNotDelivered","FaxNotReceived","IncorrectOrder","NoAnswerFromRestaurant","MissedByRestaurant","FakeNotCollected","RestaurantCannotDeliver","RejectedByRestaurant","NewTimeRejected","SystemError","RestaurantIsBusy","TestOrder"]},"transactionReference":{"description":"The payment transaction reference, if known","type":"string"}},"type":"object"},"RestaurantOrderHistory":{"example":{"orders":[{"currencyCode":"GBP","deliveryPrice":200,"friendlyId":"821367535","id":"rtvtgo0wwugmiiikdpzvsg","orderPrice":2099,"orderStatus":"Completed","paymentType":"Card","placedDate":"2025-04-15T13:52:07.562Z","serviceType":"Delivery"},{"currencyCode":"GBP","deliveryPrice":0,"friendlyId":"829022736","id":"uerbbymdfkxdecduuerbby","orderPrice":99900,"orderStatus":"Cancelled","paymentType":"Cash","placedDate":"2025-04-15T13:52:07.562Z","serviceType":"Collection"},{"currencyCode":"GBP","deliveryPrice":0,"friendlyId":"829022737","id":"dfssd3efsferr4rgfdgf","orderPrice":54400,"orderStatus":"Completed","paymentType":"Cash","placedDate":"2025-04-15T13:52:07.562Z","serviceType":"DineIn"}],"paging":{"cursors":{"after":"NDMyNzQyODI3OTQw"}}},"properties":{"orders":{"description":"List of restaurant order summaries","items":{"$ref":"#/components/schemas/RestaurantOrderSummary"},"type":"array"},"paging":{"description":"Consists of pagination information","properties":{"cursors":{"description":"Consists of cursors markers used in pagination","properties":{"after":{"description":"The value should be used in the query parameter named after. It is used as a cursor of the last returned record in the previous request, from which next offset going to be fetched. A missing or empty value indicates that the end of the result set has been reached","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"RestaurantOrderItem":{"description":"An item in an order","properties":{"description":{"description":"The description for the item","type":"string"},"itemId":{"description":"The Id of the item","type":"string"},"itemType":{"description":"The type of item","enum":["Product","MealPart","Accessory"]},"name":{"description":"The name of the item","type":"string"},"quantity":{"description":"The quantity of the item","format":"int32","type":"integer"},"subItems":{"description":"The sub items of item, such as meal parts of the meal or accessories","items":{"$ref":"#/components/schemas/RestaurantOrderItem"},"type":"array"},"synonym":{"description":"The synonym of the item","type":"string"},"unitPrice":{"description":"The unit price for the item","format":"integer","type":"number"}},"type":"object"},"RestaurantOrderPaymentInfo":{"description":"Information about a payment","properties":{"fees":{"description":"The fees applied to the order","items":{"properties":{"type":{"description":"The type of fee, such as delivery or card","type":"string"},"value":{"description":"The fee value in smallest unit of relevant currency","format":"integer","type":"number"}},"type":"object"},"type":"array"},"paidDate":{"description":"The date and time the order was paid for, if known","format":"date-time","nullable":true,"type":"string"},"paymentLines":{"description":"The payment lines","items":{"description":"An individual payment line","properties":{"fee":{"description":"The payment fee in smallest unit of relevant currency","format":"integer","type":"number"},"paymentMethod":{"description":"The payment method, such as cash or card","type":"string"},"value":{"description":"The payment value in smallest unit of relevant currency","format":"integer","type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"RestaurantOrderPriceBreakdown":{"description":"The order price breakdown (all amounts in smallest unit of relevant currency)","properties":{"accountCredits":{"description":"The total amount of account credit(s) applied to the order","format":"integer","type":"number"},"discounts":{"description":"The total amount of discount(s) applied to the order","format":"integer","type":"number"},"fees":{"description":"The total amount of fees applied to the order","format":"integer","type":"number"},"items":{"description":"The total amount of order items","format":"integer","type":"number"},"vouchers":{"description":"The total amount of voucher(s) applied to the order","format":"integer","type":"number"}},"type":"object"},"RestaurantOrderSummaries":{"description":"An orders summary for date range (all total values in smallest unit of relevant currency)","example":{"count":27,"currencyCode":"GBP","totalCardOrderValue":92059,"totalCashOrderValue":7934,"totalCollectionOrderValue":22241,"totalDeliveryOrderValue":66621,"totalDeliveryPriceValue":70,"totalDineInOrderValue":11131,"totalOrderValue":99993},"properties":{"count":{"description":"Total number of all orders for date range","format":"int32","type":"integer"},"currencyCode":{"description":"The ISO-4217 currency code associated with the total values","type":"string"},"totalCardOrderValue":{"description":"Total value of card orders for date range","format":"int32","type":"number"},"totalCashOrderValue":{"description":"Total value of cash orders for date range","format":"int32","type":"number"},"totalCollectionOrderValue":{"description":"Total value of collection orders for date range","format":"int32","type":"number"},"totalDeliveryOrderValue":{"description":"Total value of delivery orders for date range","format":"int32","type":"number"},"totalDeliveryPriceValue":{"description":"Total delivery price value for date range","format":"int32","type":"number"},"totalDineInOrderValue":{"description":"Total value of dine-in orders for date range","format":"int32","type":"number"},"totalOrderValue":{"description":"Total value of all orders for date range","format":"int32","type":"number"}},"type":"object"},"RestaurantOrderSummary":{"description":"An order summary","properties":{"currencyCode":{"description":"The ISO-4217 currency code associated with the order price","type":"string"},"deliveryPrice":{"description":"The order delivery price in smallest unit of relevant currency","format":"integer","type":"number"},"friendlyId":{"description":"The friendly order Id","type":"string"},"id":{"description":"The Id of the order","type":"string"},"orderPrice":{"description":"The order price in smallest unit of relevant currency","format":"integer","type":"number"},"orderStatus":{"description":"Status of completed order","enum":["Completed","Cancelled"]},"paymentType":{"description":"The payment type (cash or card)","enum":["Card","Cash"]},"placedDate":{"description":"The order placed date","format":"date-time","type":"string"},"serviceType":{"description":"Type of service (collection, delivery or dine-in)","enum":["Collection","Delivery","DineIn"]}},"type":"object"},"RestaurantPromotedPlacementInfo":{"example":{"defaultPromoted":true,"restaurantId":"84335"},"nullable":false,"properties":{"defaultPromoted":{"description":"Should be promoted by default","type":"boolean"},"restaurantId":{"description":"Id of the restaurant","type":"string"}},"type":"object"},"RestaurantReviews":{"example":{"reviews":[{"approvedRestaurantComments":"Thank you very much for positive feedback","customerComments":"Extremely good food and service","customerName":"Steve","friendlyOrderId":"123456789","id":"uimpewidbrjyxcweiqtoe","rateDate":"2025-04-15T13:52:07.562Z","ratingAverage":5.66,"restaurantComments":"Thank u very much for positive feedback"},{"approvedRestaurantComments":"We are sorry","customerComments":"Coffee poured all over my food","customerName":"Lucy","friendlyOrderId":"123456790","id":"tytyhjdbrhgjfxcweigfht","rateDate":"2025-04-15T13:52:07.562Z","ratingAverage":2.33,"restaurantComments":"We are sorry, but it is your fault"}]},"properties":{"reviews":{"description":"List of restaurant reviews","items":{"properties":{"approvedRestaurantComments":{"description":"Any comments left by the restaurant in response to the review approved by a moderator","nullable":true,"type":"string"},"customerComments":{"description":"Any comments left by the customer in their review","nullable":true,"type":"string"},"customerName":{"description":"The (first) name of the customer who left the review","nullable":false,"type":"string"},"friendlyOrderId":{"description":"The friendly order Id the review is associated with","nullable":false,"type":"string"},"id":{"description":"The Id of the review","format":"int32","nullable":false,"type":"string"},"rateDate":{"description":"The date and time on which the order was made","format":"date-time","nullable":false,"type":"string"},"ratingAverage":{"description":"The average score left by the customer","format":"double","nullable":false,"type":"number"},"restaurantComments":{"description":"Any comments left by the restaurant in response to the review","nullable":true,"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"RestaurantReviewsRatingBreakdown":{"properties":{"badRatingsCount":{"description":"The count of bad (1,2 stars) ratings across all reviews","format":"int32","nullable":false,"type":"integer"},"goodRatingsCount":{"description":"The count of good (5,6 stars) ratings across all reviews","format":"int32","nullable":false,"type":"integer"},"neutralRatingsCount":{"description":"The count of neutral (3,4 stars) ratings across all reviews","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"RestaurantReviewsSummary":{"example":{"ratingAverage":4.7,"ratingsBreakdown":{"delivery":{"badRatingsCount":10,"goodRatingsCount":46,"neutralRatingsCount":10},"overall":{"badRatingsCount":8,"goodRatingsCount":44,"neutralRatingsCount":14},"quality":{"badRatingsCount":10,"goodRatingsCount":44,"neutralRatingsCount":12},"service":{"badRatingsCount":15,"goodRatingsCount":45,"neutralRatingsCount":6}},"reviewsCount":66},"properties":{"ratingAverage":{"description":"The average score of all reviews","format":"double","nullable":false,"type":"number"},"ratingsBreakdown":{"description":"The breakdown of good/neutral/bad reviews for different types of ratings","nullable":false,"properties":{"delivery":{"$ref":"#/components/schemas/RestaurantReviewsRatingBreakdown","description":"The breakdown of good/neutral/bad delivery experience ratings across all reviews"},"overall":{"$ref":"#/components/schemas/RestaurantReviewsRatingBreakdown","description":"The breakdown of good/neutral/bad overall experience ratings across all reviews"},"quality":{"$ref":"#/components/schemas/RestaurantReviewsRatingBreakdown","description":"The breakdown of good/neutral/bad quality experience ratings across all reviews"},"service":{"$ref":"#/components/schemas/RestaurantReviewsRatingBreakdown","description":"The breakdown of good/neutral/bad service experience ratings across all reviews"}},"type":"object"},"reviewsCount":{"description":"The count of all reviews","format":"int32","nullable":false,"type":"integer"}},"type":"object"},"RestaurantSearchProduct":{"example":{"fullName":"Chicken Korma","price":799,"productId":"289347"},"properties":{"fullName":{"description":"The full name of the product","type":"string"},"price":{"description":"The price of the product","type":"number"},"productId":{"description":"The id of the product","type":"string"}},"type":"object"},"RestaurantSearchResponse":{"example":{"restaurants":[{"isSponsored":true,"products":[{"fullName":"Chicken Korma","price":799,"productId":"289347"},{"fullName":"Chicken Madras","price":699,"productId":"563454"}],"restaurantId":"110230"},{"isSponsored":false,"products":[{"fullName":"BBQ Chicken Pizza","price":1099,"productId":"67832"},{"fullName":"Chicken Burger","price":899,"productId":"23567"}],"restaurantId":"229390"}]},"properties":{"restaurants":{"description":"Ordered list of restaurants","items":{"$ref":"#/components/schemas/RestaurantSearchResponseItem"},"type":"array","uniqueItems":false}},"type":"object"},"RestaurantSearchResponseItem":{"example":{"isSponsored":false,"products":[{"fullName":"Chicken Korma","price":799,"productId":"289347"},{"fullName":"Chicken Madras","price":699,"productId":"563454"}],"restaurantId":"110230"},"properties":{"isSponsored":{"description":"Flag to indicate if the restaurant is sponsored, so has been promoted to the top of the results","type":"boolean"},"products":{"description":"Ordered list of products available from the restaurant which matched the search term","items":{"$ref":"#/components/schemas/RestaurantSearchProduct"},"type":"array","uniqueItems":false},"restaurantId":{"description":"The id of the restaurant","type":"string"}},"type":"object"},"RestaurantSettingsResponse":{"description":"response containing settings of the restaurant in partner centre","example":{"isMenuManagementTeaserVisible":false},"properties":{"isMenuManagementTeaserVisible":{"description":"A value indicated whether menu management teaser should be shown on restaurant edit menu page","type":"boolean"}},"type":"object"},"RestaurantSmileyRatingsInspection":{"properties":{"inspectionDate":{"description":"Date of the inspection (dd-mm-yyyy). It can be nullable if no inspection was done in the restaurant.","nullable":true,"type":"string"},"rate":{"description":"Smiley Rating of this inspection (4 - lower, 1 - higher). It can be nullable if no inspection was done in the restaurant.","maximum":4,"minimum":1,"nullable":true,"type":"integer"}}},"RestaurantSmileyRatingsResponse":{"additionalProperties":false,"example":{"inspections":{"first":{"inspectionDate":"02-01-2021","rate":1},"fourth":{"inspectionDate":null,"rate":null},"second":{"inspectionDate":"02-01-2021","rate":1},"third":{"inspectionDate":"02-01-2021","rate":2}},"isElite":false,"restaurantSmileyId":"111111","url":"https://www.findsmiley.dk/111111"},"properties":{"inspections":{"description":"Object with the last four inspections from most recent to older","properties":{"first":{"allOf":[{"$ref":"#/components/schemas/RestaurantSmileyRatingsInspection"}],"description":"First most recent inspection","nullable":false,"type":"object"},"fourth":{"allOf":[{"$ref":"#/components/schemas/RestaurantSmileyRatingsInspection"}],"description":"Fourth most recent inspection","nullable":false,"type":"object"},"second":{"allOf":[{"$ref":"#/components/schemas/RestaurantSmileyRatingsInspection"}],"description":"Second most recent inspection","nullable":false,"type":"object"},"third":{"allOf":[{"$ref":"#/components/schemas/RestaurantSmileyRatingsInspection"}],"description":"Third most recent inspection","nullable":false,"type":"object"}},"type":"object"},"isElite":{"description":"Flag that ensures a restaurant is rated as Elite","nullable":false,"type":"boolean"},"restaurantSmileyId":{"description":"Restaurant Smiley Id","nullable":false,"type":"string"},"url":{"description":"URL for complete info of this restaurant at https://www.findsmiley.dk","nullable":false,"type":"string"}},"type":"object"},"RestaurantSupportDetails":{"additionalProperties":false,"properties":{"phoneNumber":{"description":"Phone number of the restaurant","nullable":true,"type":"string"}},"type":"object"},"RestaurantTempOffline":{"additionalProperties":false,"properties":{"categories":{"description":"List of current temp offline categories","items":{"type":"string"},"nullable":true,"type":"array"},"type":{"description":"Temp offline type","enum":["CancellationOutsideWindow","Unset","TempOffline","ClosedToday","ClosedDueTo","OnVacationOpens","OnVacationClosed","None","ClosedDueToEvent","ClosedDueToEmergency","FailedJctConnection","NoTrOverride","IgnoredOrders","ClosedByTempOfflineTool"],"nullable":true,"type":"string"}},"type":"object"},"RestaurantUpdateResponse":{"additionalProperties":false,"properties":{"optimizelyData":{"description":"Details of current Optimizely data file and location","nullable":true,"oneOf":[{"$ref":"#/components/schemas/OptimizelyData"}]},"ordersData":{"description":"Data containing all changed orders for a restaurant since last call","nullable":true,"oneOf":[{"$ref":"#/components/schemas/OrdersData"}]}},"type":"object"},"ReverseGeocodingResponse":{"description":"Best guess address for passed lat-long","example":{"geometry":{"coordinates":[-0.01938,51.10234],"type":"Point"},"properties":{"address":["Flat 3","Greystoke House","127 High Street","Chelmsford","Essex","CM1 4QQ"]},"type":"Feature"},"properties":{"geometry":{"description":"Geometry information for consumers location","properties":{"coordinates":{"description":"longitude and latitude","items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"type":{"description":"type of primitive","type":"string"}},"type":"object"},"properties":{"description":"feature metadata","properties":{"address":{"description":"list of address chunks","items":{"type":"string"},"type":"array"}},"type":"object"},"type":{"description":"type of primitive","type":"string"}},"type":"object"},"ReviewComment":{"additionalProperties":false,"description":"Details for a review comment","example":{"comment":"Yum!","processed":true,"showText":false},"properties":{"comment":{"description":"Comment left by customer/restaurant","nullable":true,"type":"string"},"processed":{"description":"Will be false until processed by an agent/automation","type":"boolean"},"showText":{"description":"Text for the review comment will be hidden until it has been passed as OK. E.g. ensuring it doesn't contains swear words","type":"boolean"}},"type":"object"},"ReviewManagementData":{"additionalProperties":false,"description":"A customer review for an order","example":{"customerCity":"London","customerComment":{"comment":"Very tasty!","processed":true,"showText":true},"customerDisplayName":"John","customerEmail":"example@example.com","hideFromSite":false,"orderDate":"2025-04-15T13:52:07.563Z","orderNumber":"1234","processed":true,"ratings":{"delivery":6,"quality":6,"service":6},"restaurantComment":{"comment":"Thank you :-)","processed":true,"showText":true},"restaurantId":"1234","restaurantName":"Tasty Snacks","reviewDate":"2025-04-15T13:52:07.563Z","reviewId":"abc1234","tenant":"uk"},"properties":{"customerCity":{"description":"The customers city","nullable":true,"type":"string"},"customerComment":{"$ref":"#/components/schemas/ReviewComment"},"customerDisplayName":{"description":"Customer name shown on the public site. Forename only to avoid disclosing PII","nullable":true,"type":"string"},"customerEmail":{"description":"The customers email","format":"email","nullable":true,"type":"string"},"hideFromSite":{"description":"This review is suspect (e.g. a restaurant self-reviewing) so don't display it on the public site","type":"boolean"},"orderDate":{"description":"When order was placed","format":"date-time","type":"string"},"orderNumber":{"description":"The user friendly order number","type":"string"},"processed":{"description":"Flag used to indicate that this review has passed through the validation process.","type":"boolean"},"ratings":{"$ref":"#/components/schemas/ReviewScores"},"restaurantComment":{"$ref":"#/components/schemas/ReviewComment"},"restaurantId":{"description":"The restaurant partner Id","type":"string"},"restaurantName":{"description":"The display name for the restaurant","nullable":true,"type":"string"},"reviewDate":{"description":"When the review was submitted","format":"date-time","type":"string"},"reviewId":{"description":"Identifier for ratings - will be equivalent to `RatingCode`","nullable":true,"type":"string"},"tenant":{"description":"A valid country code, e.g. \"uk\"","nullable":true,"type":"string"}},"type":"object"},"ReviewManagementPagedList":{"additionalProperties":false,"description":"Represents a page of reviews plus data about the overall result set. E.g. total number of results for the search.","example":{"paging":{"total":555},"reviews":[{"customerCity":"London","customerComment":{"comment":"Very tasty!","processed":true,"showText":true},"customerDisplayName":"John","customerEmail":"example@example.com","hideFromSite":false,"orderDate":"2025-04-15T13:52:07.563Z","orderNumber":"1234","processed":true,"ratings":{"delivery":6,"quality":6,"service":6},"restaurantComment":{"comment":"Thank you :-)","processed":true,"showText":true},"restaurantId":"1234","restaurantName":"Tasty Snacks","reviewDate":"2025-04-15T13:52:07.563Z","reviewId":"abc1234","tenant":"uk"}]},"properties":{"paging":{"$ref":"#/components/schemas/ReviewManagementPaging"},"reviews":{"description":"The current page of reviews","items":{"$ref":"#/components/schemas/ReviewManagementData"},"nullable":true,"type":"array"}},"type":"object"},"ReviewManagementPaging":{"additionalProperties":false,"description":"Meta data for a set of reviews","example":{"total":77},"properties":{"total":{"description":"The total number of reviews for the current search","format":"int32","type":"integer"}},"type":"object"},"ReviewScores":{"additionalProperties":false,"description":"The star ratings given by a customer","example":{"delivery":4,"quality":2,"service":3},"properties":{"delivery":{"description":"The delivery rating","format":"int32","type":"integer"},"quality":{"description":"The food quality rating","format":"int32","type":"integer"},"service":{"description":"The restaurant service rating","format":"int32","type":"integer"}},"type":"object"},"RichMediaImageBatchResponse":{"example":{"batchStatus":"PartiallySucceeded","images":[{"imageContext":{"dishKey":"pizza","restaurantKey":"burgers&pizza","tenant":"uk"},"imageStatus":"Succeeded","sourceImageUrl":"https://test.test/image01.jpg","urlTemplate":"https://cloudinary.test/image/upload/c_fill,q_auto,{transformations}/v1/uk/dishes/burgers_pizza/image01"},{"failureReason":"Source image exeeds maximum size of 10 MB.","imageContext":{"dishKey":"burger","restaurantKey":"burgers&pizza","tenant":"uk"},"imageStatus":"Failed","sourceImageUrl":"https://test.test/image02.jpg"}]},"nullable":false,"properties":{"batchStatus":{"description":"The status of batch request","enum":["Queued","Running","Succeeded","PartiallySucceeded","Failed","Cancelled"],"format":"enum","type":"string"},"images":{"description":"The array of images in the batch","items":{"properties":{"failureReason":{"description":"Can contain additional information about image publishing failure","type":"string"},"imageContext":{"additionalProperties":{"type":"string"},"description":"Image context in dictionary format. Can contain additional data that will be published alongside the image.","type":"object"},"imageStatus":{"description":"The status of individual image","enum":["Succeeded","Failed"],"format":"enum","type":"string"},"sourceImageUrl":{"description":"Source image URL. The remote HTTP or HTTPS URL address of an existing image or a private S3 object URL in a whitelisted bucket.","type":"string"},"urlTemplate":{"description":"Image URL template that can be used to access the image. Mandatory transformations are already baked in the URL template. The {transformations} placeholder can be replaced with additional Cloudinary transformations that suit your need (e.g. height, width etc). For more details see https://cloudinary.com/documentation/image_transformations","type":"string"}},"required":["sourceImageUrl","imageContext","imageStatus"],"type":"object"},"maxItems":500,"type":"array"}},"required":["batchStatus"],"type":"object"},"RichMediaImagePublishRequest":{"example":{"imageType":"DishImage","images":[{"imageContext":{"dishKey":"pizza","restaurantKey":"burgers&pizza","tenant":"uk"},"sourceImageUrl":"https://test.test/image01.jpg"},{"imageContext":{"dishKey":"burger","restaurantKey":"burgers&pizza","tenant":"uk"},"sourceImageUrl":"https://test.test/image02.jpg"}]},"nullable":false,"properties":{"imageType":{"description":"Image type of published images. Must match an image type defined in the metadata for your client.","type":"string"},"images":{"description":"The array of images to publish.","items":{"properties":{"imageContext":{"additionalProperties":{"type":"string"},"description":"Image context in dictionary format. Can contain additional data that will be published alongside the image.","type":"object"},"sourceImageUrl":{"description":"Source image URL. The remote HTTP or HTTPS URL address of an existing image or a private S3 object URL in a whitelisted bucket.","type":"string"}},"type":"object"},"maxItems":500,"minItems":1,"type":"array"}},"required":["imageType","images"],"type":"object"},"SearchByConsumerResponse":{"properties":{"cards":{"items":{"properties":{"amount":{"format":"int32","type":"integer"},"pan":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"SearchByPanResponse":{"properties":{"amount":{"format":"int32","type":"integer"},"pan":{"type":"string"},"redemptionHistory":{"items":{"properties":{"consumerId":{"type":"string"},"redeemedOn":{"format":"date-time","type":"string"},"status":{"enum":["Redeemed","Failed"],"type":"string"},"statusDetails":{"type":"string"},"transactionId":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"SearchResponse":{"example":{"Area":"Fleet Street","CuisineSets":[{"Cuisines":[{"Name":"Pizza","SeoName":"pizza"}],"Id":"user_and_local_cuisines","Name":"","Type":"area_cuisines"}],"Dishes":[],"MetaData":{"Area":"Fleet Street","CanonicalName":"ec4-fleetstreet","CuisineDetails":[{"Name":"Danish","SeoName":"danish","Total":171}],"District":"EC4","Latitude":0,"Longitude":0,"Postcode":"EC4","ResultCount":1,"SearchedTerms":null,"TagDetails":[{"BackgroundColour":"#E6F6C5","Colour":"#04822C","DisplayName":"Tried and Tasted","Key":"tried-and-tasted","Priority":300}]},"RestaurantSets":[],"Restaurants":[{"Address":{"City":"London","FirstLine":"London","Latitude":51.516454,"Longitude":-0.103137,"Postcode":"EC4M 7RF"},"Badges":[],"BrandName":"","City":"London","CollectionMenuId":null,"CuisineTypes":[{"Id":2,"IsTopCuisine":false,"Name":"English","SeoName":"english"}],"Cuisines":[{"Name":"English","SeoName":"english"}],"Deals":[{"Description":"20% off when you spend £20","DiscountPercent":20,"OfferType":"Percent","QualifyingPrice":20}],"DefaultDisplayRank":0,"DeliveryChargeBands":[],"DeliveryCost":0.12,"DeliveryEtaMinutes":{"Approximate":null,"RangeLower":10,"RangeUpper":25},"DeliveryMenuId":224651,"DeliveryOpeningTime":"2025-04-15T13:52:07.563Z","DeliveryOpeningTimeLocal":"2025-04-15T13:52:07.563Z","DeliveryOpeningTimeUtc":null,"DeliveryStartTime":"2025-04-15T13:52:07.563Z","DeliveryTime":null,"DeliveryTimeMinutes":null,"DeliveryWorkingTimeMinutes":10,"DeliveryZipcode":null,"Description":"","DriveDistance":0,"DriveInfoCalculated":true,"HygieneRating":null,"Id":102215,"IsBrand":false,"IsCloseBy":true,"IsCollection":false,"IsDelivery":true,"IsFreeDelivery":false,"IsHalal":false,"IsNew":false,"IsOpenNow":true,"IsOpenNowForCollection":false,"IsOpenNowForDelivery":true,"IsOpenNowForPreorder":false,"IsPremier":false,"IsSponsored":false,"IsTemporarilyOffline":false,"IsTemporaryBoost":false,"IsTestRestaurant":false,"LastUpdated":"2025-04-15T13:52:07.563Z","Latitude":0,"Logo":[{"StandardResolutionURL":"http://d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/102215.gif"}],"LogoUrl":"http://d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/102215.gif","Longitude":0,"MinimumDeliveryValue":0,"Name":"TEST_DP_1","NewnessDate":"2025-04-15T13:52:07.563Z","NumberOfRatings":0,"OfferPercent":0,"Offers":[{"Amount":20,"MaxQualifyingValue":50,"OfferId":"136149","QualifyingValue":20,"Type":"Percent"}],"OpeningTime":"2025-04-15T13:52:07.563Z","OpeningTimeIso":"2025-04-15T13:52:07.563Z","OpeningTimeLocal":"2025-04-15T13:52:07.563Z","OpeningTimeUtc":null,"OpeningTimes":[],"Postcode":"EC4M 7RF","Rating":{"Average":0,"Count":0,"StarRating":0},"RatingAverage":0,"RatingStars":0,"ReasonWhyTemporarilyOffline":"","Score":502,"ScoreMetaData":[{"Key":"Distance","Value":"0"},{"Key":"SetName","Value":"Default"}],"SecondDateRank":0,"SecondDateRanking":0,"SendsOnItsWayNotifications":false,"ServiceableAreas":[],"ShowSmiley":false,"SmileyDate":null,"SmileyElite":false,"SmileyResult":null,"SmileyUrl":null,"SponsoredPosition":0,"Tags":[],"UniqueName":"test_dp-london-london","Url":"https://www.just-eat.co.uk/restaurants-test_dp-london-london"}],"ShortResultText":"EC4","Views":[],"deliveryFees":{"restaurants":{"102215":{"bands":[{"fee":100,"minimumAmount":0}],"minimumOrderValue":0,"restaurantId":"102215"}}},"promotedPlacement":{"filteredSearchPromotedLimit":5,"rankedIds":[84335],"restaurants":{"84335":{"defaultPromoted":true,"restaurantId":"84335"}}}},"properties":{"CuisineSets":{"items":{"properties":{"Cuisines":{"items":{"properties":{"Name":{"type":"string"},"SeoName":{"type":"string"}},"type":"object"},"type":"array"},"Id":{"type":"string"},"Name":{"type":"string"},"Type":{"type":"string"}},"type":"object"},"type":"array"},"Dishes":{"items":{"properties":{"Best":{"items":{"properties":{"FullName":{"description":"The full name of the product","type":"string"},"Price":{"description":"The price of the product","type":"number"},"ProductId":{"description":"Deprecated field no longer populated, but retained for backwards compatibility with clients","type":"number"},"StrProductId":{"description":"The id of the product","type":"string"}},"type":"object"},"type":"array"},"RestaurantId":{"type":"number"},"Similar":{"items":{"properties":{"FullName":{"type":"string"},"Price":{"type":"number"},"ProductId":{"type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"},"MetaData":{"properties":{"Area":{"type":"string"},"CanonicalName":{"type":"string"},"CuisineDetails":{"items":{"properties":{"Name":{"type":"string"},"SeoName":{"type":"string"},"Total":{"type":"number"}},"type":"object"},"type":"array"},"District":{"type":"string"},"Latitude":{"description":"The latitude of the search location","type":"number"},"Longitude":{"description":"The longitude of the search location","type":"number"},"Postcode":{"type":"string"},"ResultCount":{"type":"number"},"SearchedTerms":{"nullable":true,"type":"object"},"TagDetails":{"items":{"properties":{"BackgroundColour":{"type":"string"},"Colour":{"type":"string"},"DisplayName":{"type":"string"},"Key":{"type":"string"},"Priority":{"type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"RestaurantSets":{"items":{"properties":{"Id":{"type":"string"},"Name":{"type":"string"},"Restaurants":{"items":{"properties":{"Id":{"type":"number"},"Metadata":{"items":{"properties":{"Key":{"type":"string"},"Value":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"},"Type":{"type":"string"}},"type":"object"},"type":"array"},"Restaurants":{"items":{"$ref":"#/components/schemas/SearchRestaurant"},"type":"array"},"ShortResultText":{"type":"string"},"Views":{"items":{"properties":{"Components":{"properties":{"Id":{"type":"string"},"TemplateName":{"type":"string"},"TrackingId":{"type":"string"},"Type":{"type":"string"},"ViewData":{"type":"object"}},"type":"object"},"Target":{"type":"string"}},"type":"object"},"type":"array"},"area":{"type":"string"},"deliveryFees":{"description":"Information related to delivery fees.","properties":{"restaurants":{"additionalProperties":{"$ref":"#/components/schemas/RestaurantDeliveryFees"},"description":"Dictionary of `restaurantIds` to delivery fees.","type":"object"}},"type":"object"},"promotedPlacement":{"description":"Information related to promoted placement restaurants.","properties":{"filteredSearchPromotedLimit":{"description":"How many restaurants to promote when search is filtered","type":"number"},"rankedIds":{"description":"Restaurants that can be promoted, in preferred order","items":{"type":"number"},"type":"array"},"restaurants":{"additionalProperties":{"$ref":"#/components/schemas/RestaurantPromotedPlacementInfo"},"description":"Dictionary of `restaurantIds` to promoted placement info.","type":"object"}},"type":"object"}},"type":"object"},"SearchRestaurant":{"properties":{"Address":{"properties":{"City":{"type":"string"},"FirstLine":{"type":"string"},"Latitude":{"type":"number"},"Longitude":{"type":"number"},"Postcode":{"type":"string"}},"type":"object"},"Badges":{"items":{"type":"object"},"type":"array"},"BrandName":{"type":"string"},"City":{"type":"string"},"CollectionMenuId":{"nullable":true,"type":"number"},"CuisineTypes":{"items":{"properties":{"Id":{"type":"number"},"IsTopCuisine":{"type":"boolean"}},"type":"object"},"type":"array"},"Cuisines":{"items":{"properties":{"Name":{"type":"string"},"SeoName":{"type":"string"}},"type":"object"},"type":"array"},"Deals":{"items":{"properties":{"Description":{"type":"string"},"DiscountPercent":{"type":"number"},"OfferType":{"type":"string"},"QualifyingPrice":{"type":"number"}},"type":"object"},"type":"array"},"DefaultDisplayRank":{"type":"number"},"DeliveryChargeBands":{"items":{"properties":{"BasketThresholdPrice":{"type":"number"},"DeliveryChargeBelowThreshold":{"type":"number"}},"type":"object"},"type":"array"},"DeliveryCost":{"type":"number"},"DeliveryEtaMinutes":{"properties":{"Approximate":{"nullable":true,"type":"number"},"RangeLower":{"type":"number"},"RangeUpper":{"type":"number"}},"type":"object"},"DeliveryMenuId":{"type":"number"},"DeliveryOpeningTime":{"format":"date-time","type":"string"},"DeliveryOpeningTimeLocal":{"$ref":"#/components/schemas/local-date-time"},"DeliveryOpeningTimeUtc":{"format":"date-time","nullable":true,"type":"string"},"DeliveryStartTime":{"format":"date-time","type":"string"},"DeliveryTime":{"nullable":true,"type":"number"},"DeliveryTimeMinutes":{"nullable":true,"type":"number"},"DeliveryWorkingTimeMinutes":{"type":"number"},"DeliveryZipcode":{"nullable":true,"type":"string"},"Description":{"type":"string"},"DriveDistance":{"type":"number"},"DriveInfoCalculated":{"type":"boolean"},"HygieneRating":{"nullable":true,"type":"number"},"Id":{"type":"number"},"IsBrand":{"type":"boolean"},"IsCloseBy":{"type":"boolean"},"IsCollection":{"type":"boolean"},"IsDelivery":{"type":"boolean"},"IsFreeDelivery":{"type":"boolean"},"IsHalal":{"type":"boolean"},"IsNew":{"type":"boolean"},"IsOpenNow":{"type":"boolean"},"IsOpenNowForCollection":{"type":"boolean"},"IsOpenNowForDelivery":{"type":"boolean"},"IsOpenNowForPreorder":{"type":"boolean"},"IsPremier":{"type":"boolean"},"IsSponsored":{"type":"boolean"},"IsTemporarilyOffline":{"type":"boolean"},"IsTemporaryBoost":{"type":"boolean"},"IsTestRestaurant":{"type":"boolean"},"LastUpdated":{"$ref":"#/components/schemas/local-date-time"},"Latitude":{"type":"number"},"Logo":{"items":{"properties":{"StandardResolutionURL":{"type":"string"}},"type":"object"},"type":"array"},"LogoUrl":{"type":"string"},"Longitude":{"type":"number"},"MinimumDeliveryValue":{"type":"number"},"Name":{"type":"string"},"NewnessDate":{"$ref":"#/components/schemas/local-date-time"},"NumberOfRatings":{"type":"number"},"OfferPercent":{"type":"number"},"Offers":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"OpeningTime":{"format":"date-time","type":"string"},"OpeningTimeIso":{"$ref":"#/components/schemas/local-date-time"},"OpeningTimeLocal":{"$ref":"#/components/schemas/local-date-time"},"OpeningTimeUtc":{"format":"date-time","nullable":true,"type":"string"},"OpeningTimes":{"items":{"type":"object"},"type":"array"},"Postcode":{"type":"string"},"Rating":{"properties":{"Average":{"type":"number"},"Count":{"type":"number"},"StarRating":{"type":"number"}},"type":"object"},"RatingAverage":{"type":"number"},"RatingStars":{"type":"number"},"ReasonWhyTemporarilyOffline":{"type":"string"},"Score":{"type":"number"},"ScoreMetaData":{"items":{"properties":{"Key":{"type":"string"},"Value":{"type":"string"}},"type":"object"},"type":"array"},"SecondDateRank":{"type":"number"},"SecondDateRanking":{"type":"number"},"SendsOnItsWayNotifications":{"type":"boolean"},"ServiceableAreas":{"items":{"type":"object"},"type":"array"},"ShowSmiley":{"type":"boolean"},"SmileyDate":{"nullable":true,"type":"object"},"SmileyElite":{"type":"boolean"},"SmileyResult":{"nullable":true,"type":"object"},"SmileyUrl":{"nullable":true,"type":"object"},"SponsoredPosition":{"type":"number"},"Tags":{"items":{"type":"string"},"type":"array"},"UniqueName":{"type":"string"},"Url":{"type":"string"}},"type":"object"},"SearchWebResponse":{"properties":{"Closed":{"items":{"$ref":"#/components/schemas/SearchRestaurant"},"type":"array"},"Offline":{"items":{"$ref":"#/components/schemas/SearchRestaurant"},"type":"array"},"Open":{"items":{"$ref":"#/components/schemas/SearchRestaurant"},"type":"array"}},"type":"object"},"SecretsResponse":{"additionalProperties":false,"properties":{"secrets":{"additionalProperties":{"additionalProperties":{"description":"Secret value","type":"string"},"description":"Key of a single secret","type":"object"},"description":"Dictionary of secrets providers available","nullable":true,"type":"object"}},"type":"object"},"SendSmsRequest":{"additionalProperties":false,"properties":{"message":{"description":"Message to send","nullable":true,"type":"string"}},"type":"object"},"SendSmsResponse":{"additionalProperties":false,"properties":{"mobileNumberUsed":{"description":"Mobile number to which message were sent","nullable":true,"type":"string"}},"type":"object"},"ServiceTimes":{"example":{"desiredServiceTimes":{"friday":{"collection":[{"end":50400,"start":43200},{"end":82800,"start":61200}],"delivery":[{"end":48600,"start":43200},{"end":"00:00:00","start":64800}]},"monday":{"collection":[{"end":50400,"start":43200},{"end":82800,"start":61200}],"delivery":[{"end":48600,"start":43200},{"end":"00:00:00","start":64800}]},"saturday":{"collection":[{"end":82800,"start":43200}],"delivery":[{"end":"00:00:00","start":43200}]},"sunday":{"collection":[{"end":82800,"start":43200}],"delivery":[{"end":"00:00:00","start":43200}]},"thursday":{"collection":[{"end":50400,"start":43200},{"end":82800,"start":61200}],"delivery":[{"end":48600,"start":43200},{"end":"00:00:00","start":64800}]},"tuesday":{"collection":[{"end":50400,"start":43200},{"end":82800,"start":61200}],"delivery":[{"end":48600,"start":43200},{"end":"00:00:00","start":64800}]},"wednesday":{"collection":[{"end":50400,"start":43200},{"end":82800,"start":61200}],"delivery":[{"end":48600,"start":43200},{"end":"00:00:00","start":64800}]}}},"properties":{"serviceTimes":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesDays"}],"description":"The desired times at which a restaurant is in service","type":"object"}},"type":"object"},"ServiceTimesCollection":{"items":{"properties":{"end":{"description":"Local end time of the slot in hh:mm:ss format. The end time occurs on the next day if less than or equal to the start time. Times are in the restaurant's time zone which can be obtained by converting `location.geoPosition` value from [the restaurant's details](#operation/GetRestaurantDetails) using a lookup API such as `timezonedb.com`.","pattern":"^([0-1]\\d|2[0-3]):[0-5]\\d$:[0-5]\\d$","type":"string"},"start":{"description":"Start time of the slot in hh:mm:ss format. Times are in the restaurant's time zone which can be obtained by converting `location.geoPosition` value from [the restaurant's details](#operation/GetRestaurantDetails) using a lookup API such as `timezonedb.com`.","pattern":"^([0-1]\\d|2[0-3]):[0-5]\\d$:[0-5]\\d$","type":"string"}},"type":"object"},"type":"array"},"ServiceTimesDays":{"description":"The desired times at which a restaurant is in service","properties":{"friday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Fridays"},"monday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Mondays"},"saturday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Saturdays"},"sunday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Sundays"},"thursday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Thursdays"},"tuesday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Tuesdays"},"wednesday":{"allOf":[{"$ref":"#/components/schemas/ServiceTimesServices"}],"description":"Service times for Wednesdays"}},"type":"object"},"ServiceTimesServices":{"properties":{"collection":{"$ref":"#/components/schemas/ServiceTimesCollection","description":"The times at which customers can collect from the restaurant","type":"object"},"delivery":{"$ref":"#/components/schemas/ServiceTimesCollection","description":"The times at which the restaurant can provide delivery","type":"object"}},"type":"object"},"ServiceType":{"description":"","enum":[1,2],"type":"integer","x-enumNames":["Collection","Delivery"]},"ServiceTypeFeeConfiguration":{"description":"Distinct values which are configured for a particular service type","example":{"amount":5},"properties":{"amount":{"description":"The value to apply to the basket for this Fee in the smallest unit of currency","format":"integer","type":"number"}},"type":"object"},"SetPaymentModeRequest":{"additionalProperties":false,"properties":{"paymentMode":{"description":"New payment mode","enum":["CardOnly","CardAndCash"],"nullable":true,"type":"string"}},"type":"object"},"SetProductsOfflineRequest":{"properties":{"NextAvailableAt":{"description":"The time when products should be brought back online. This may be delayed by up to 5 minutes. There is no upper time limit.","format":"date-time","type":"string"},"ProductIds":{"description":"Product ids to set offline.","items":{"type":"string"},"type":"array"},"RequestedBy":{"description":"Consists of information about who requested changes.","type":"string"}},"required":["ProductIds","RequestedBy","NextAvailableAt"],"type":"object"},"SetProductsOnlineRequest":{"properties":{"ProductIds":{"description":"Product IDs to set online.","items":{"type":"string"},"type":"array"},"RequestedBy":{"description":"Consists of information about who requested changes.","type":"string"}},"required":["ProductIds","RequestedBy"],"type":"object"},"SettingsFlexStates":{"properties":{"averageAssignableJobLoad":{"description":"Average assignable Job load for given state type","format":"double","nullable":true,"type":"number"},"flexStateType":{"$ref":"#/components/schemas/FlexStateType","description":"Flex State Type Options"},"triggerUsage":{"description":"Usage percentage for given state type","format":"double","type":"number"}},"type":"object"},"SetupOrderpadRequest":{"additionalProperties":false,"properties":{"phoneNumber":{"description":"Callback phone number","nullable":true,"type":"string"},"postCode":{"description":"Set up postcode","nullable":true,"type":"string"},"setupType":{"$ref":"#/components/schemas/OrderpadSetupType","description":"Orderpad set up type"}},"type":"object"},"Shift":{"description":"The shift object associated with a courier on a courier sync payload update.","properties":{"deliveryZoneId":{"description":"Delivery zone id the shift was created for.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"},"endDate":{"description":"Timestamp for when the shift was ended.","format":"integer","type":"number"},"id":{"description":"Shift identifier.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"},"shiftType":{"$ref":"#/components/schemas/ShiftType","description":"Type of shift the courier is on"},"startDate":{"description":"Timestamp for when the shift was started.","format":"integer","type":"number"},"vehicle":{"$ref":"#/components/schemas/Vehicle","description":"Type of vehicle on shift"}},"type":"object"},"ShiftType":{"description":"The types of shifts available for the couriers.","enum":["REGULAR","ON_CALL","OVERFLOW","ALCOHOL_ELIGIBLE","UNKNOWN"],"type":"string"},"SkipMenuEditorGatewayRequest":{"description":"GraphQL request","properties":{"query":{"description":"GraphQL statement","type":"string"},"variables":{"description":"variables used in query","type":"object"}},"type":"object"},"SkipMenuEditorGatewayResponse":{"description":"GraphQL response","properties":{"data":{"description":"GraphQL data response","type":"object"},"errors":{"description":"GraphQL errors response","items":{"type":"object"},"type":"array"}},"type":"object"},"Storage":{"example":{"stgInstruction":"Example"},"properties":{"stgInstruction":{"description":"Storage/Usage instructions","nullable":true,"type":"string"}},"type":"object"},"SupportRequest":{"description":"Object that represents support request","properties":{"id":{"description":"The Id of the request","type":"string"},"status":{"description":"Request status","enum":["new","open","closed","pending","solved","hold","deleted"]},"subject":{"description":"Request subject","type":"string"},"submittedDate":{"description":"Request placed date","format":"date-time","type":"string"}},"type":"object"},"SupportRequestType":{"description":"Object that represents type/sub-type of request","properties":{"name":{"description":"Human readable name","type":"string"},"subTypes":{"description":"Possible sub-types of request","items":{"$ref":"#/components/schemas/SupportRequestType"},"type":"array"},"value":{"description":"Type value which will be used for Zendesk ticket as a tag","type":"string"}},"type":"object"},"SyncFlexStateType":{"description":"<p>The flex state type changes according to the exponential moving average and is used as a reference to bring more couriers to suffice the demand in a given delivery zone.</p> <p>If the flex state type is \"Off\", it means no shifts will be offered for the delivery zone.</p> <p>If the state is \"CLOSED\", only scheduled shifts will be allowed for the delivery zone.</p> <p>If the state is \"SEEKING\", the shift offers are going to be made across the courier network in order to suffice the current demand.</p> <p>If the state is \"OPEN\", it means demand is high and couriers from all over the courier network are allowed to create shifts for themselves to suffice the current demand.</p> <p>If the state is \"CODE_RED\", it means not only can everyone create shifts for themselves for the delivery zone but also couriers from other delivery zones might reallocate to help suffice the demand of that particular delivery zone.</p>","enum":["CODE_RED","OPEN","SEEKING","CLOSED"],"type":"string"},"SyncPaymentType":{"description":"The order payment status.","enum":["PAID","UNPAID"],"type":"string"},"TakeOfflineRequest":{"additionalProperties":false,"properties":{"comment":{"description":"Any additional information","nullable":true,"type":"string"},"tempOfflineType":{"description":"Identifier of the reason for taking the restaurant offline","enum":["TempOffline","ClosedToday"],"nullable":true,"type":"string"}},"type":"object"},"TakeProductOffTheMenuCommand":{"additionalProperties":false,"properties":{"createdBy":{"description":"Application which requested operation e.g. Orderpad, RestaurantApp","nullable":true,"type":"string"},"productIds":{"description":"List of product Ids to be taken offline","items":{"type":"string"},"nullable":true,"type":"array"},"requestedAt":{"description":"Request date and time in ISO 8601 format","format":"date-time","nullable":true,"type":"string"}},"type":"object"},"Takeaway400ErrorResponse":{"description":"A HTTP 400 error response","properties":{"description":{"description":"A description of the error.","type":"string"},"errorCode":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","type":"string"},"validationErrors":{"additionalProperties":{"description":"Field name that contains error.","properties":{"errors":{"description":"Error explanation.","items":{"type":"string"},"type":"array"}},"type":"object"},"description":"Validation error messages for each field.","type":"object"}},"type":"object"},"Takeaway4XXErrorResponse":{"description":"A HTTP 4xx error response","properties":{"description":{"description":"A description of the error.","type":"string"},"errorCode":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","type":"string"}},"type":"object"},"Takeaway500ErrorResponse":{"description":"A HTTP 500 error response","properties":{"description":{"description":"A description of the error.","type":"string"},"errorCode":{"description":"A value that helps identify this response back to logs, so we can easily find this specific fault.","type":"string"}},"type":"object"},"TextAndActionsStep":{"allOf":[{"$ref":"#/components/schemas/FlowStepBase"},{"properties":{"actions":{"description":"Array of actions (i.e. buttons)","items":{"$ref":"#/components/schemas/HelpAction"},"type":"array"},"body":{"description":"Array of paragraphs for body text","items":{"type":"string"},"type":"array"},"header":{"description":"Display header","type":"string"}},"type":"object"}],"description":"'Default' flow step, consisting of text and next-step actions","type":"object"},"Time":{"example":{"daysOfTheWeek":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"fromDateTime":41400,"toDateTime":52200},"properties":{"daysOfTheWeek":{"description":"The days of the week.","items":{"enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"type":"string"},"type":"array"},"fromDateTime":{"description":"Time of day the availability begins, in local time, format is ISO 8601 hh:mm:ss","type":"string"},"toDateTime":{"description":"Time of day the availability begins, in local time, format is ISO 8601 hh:mm:ss","type":"string"}},"type":"object"},"TokenRequest":{"description":"The request object for retrieving an access token.","example":{"client_id":"example_clientid","code":"D4DE0039-8193-48A1-BA2D-49E6F0C8ADFF","code_verifier":"kPjhpIVnKGBq3YvnjLDBo65pi91YI4ReJoRV1WMryJa","grant_type":"authorization_code","redirect_uri":"example.com"},"properties":{"client_id":{"description":"Only required if the client is not authenticating with the same authorisation server.","nullable":true,"type":"string"},"code":{"description":"The authorisation code received from the authorisation server.","nullable":false,"type":"string"},"code_verifier":{"description":"High-entropy cryptographic random string with a minimum length of 43 characters and a maximum length of 128 characters.","nullable":true,"type":"string"},"grant_type":{"description":"OAuth grant type. Value MUST be set to `authorization_code`.","nullable":false,"type":"string"},"redirect_uri":{"description":"URI to form the path for a redirect response.","nullable":false,"type":"string"}},"type":"object"},"TokenRequestErrorResponse":{"description":"The error response object for token request endpoint.","example":{"error":"invalid_request"},"properties":{"error":{"description":"Error code. Can be one of: `invalid_request`, `invalid_client`, `invalid_grant`, `unauthorized_client`, `unsupported_grant_type`, `invalid_scope`.","type":"string"}},"type":"object"},"TokenRequestSuccessResponse":{"description":"The success response object for token request endpoint.","example":{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"},"properties":{"access_token":{"description":"The JWT access token.","type":"string"}},"type":"object"},"TopUpPromotion":{"description":"The zone profile object for a given delivery zone.","properties":{"currentAcceptanceRate":{"description":"The current order acceptance rate calculated for the courier.","example":9500,"format":"integer","type":"number"},"requiredAcceptanceRate":{"description":"The required acceptance rate the courier should have to be eligible for top up bonus subsidy.","example":8000,"format":"integer","type":"number"},"showAcceptanceRate":{"description":"Enables showing the courier acceptance rate when true","type":"boolean"}},"type":"object"},"TwiMLResult":{"properties":{"data":{"description":"set of special TwiML instructions defined by Twilio that will be executed","readOnly":true,"type":"string"}},"type":"object"},"TwilioDebuggingEventRequest":{"description":"Information about errors and warnings which could occur on Twilio account","properties":{"accountSid":{"description":"Unique identifier of the account that generated the Debugger event","example":"ACxxxxxxxxxxxxxxxxxxxxxxxx","type":"string"},"level":{"description":"Severity of the Debugger event. Possible values are Error and Warning","example":"Error","type":"string"},"parentAccountSid":{"description":"Unique identifier of the Parent Account. This parameter only exists if the above account is a sub account","example":"ACxxxxxxxxxxxxxxxxxxxxxxxx","type":"string"},"payload":{"description":"JSON data specific to the Debugging Event. More details - https://www.twilio.com/docs/usage/troubleshooting/debugging-event-webhooks#payload","example":"{resource_sid: CAxxxx, service_sid: SSxxxx, error_code: 13227 ,webhook: null, more_info: {  Msg : No International Permission. , ErrorCode : 13227 , LogLevel : WARN }}","type":"string"},"payloadType":{"description":"Type of the payload","example":"application/json","type":"string"},"sid":{"description":"Unique identifier of the Debugger event","example":"NOxxxxx","type":"string"},"timestamp":{"description":"Time of occurrence of the Debugger event","example":"2025-04-15T13:52:07.569Z","type":"string"}},"type":"object"},"TwilioIncomingMessageCallbackRequest":{"properties":{"body":{"description":"The body of the text message being sent","type":"string"},"from":{"description":"The number of the sender in E.164 format","type":"string"}},"type":"object"},"TwilioIncomingVoiceCallbackRequest":{"properties":{"digits":{"description":"Any digits the caller has entered on their phone","type":"string"},"from":{"description":"The number of the caller in E.164 format","type":"string"}},"type":"object"},"TwilioInteractionCallbackRequest":{"properties":{"inboundParticipantSid":{"description":"The SID of the inbound Participant resource","type":"string"},"inboundResourceSid":{"description":"The SID of the inbound resource","type":"string"},"inboundResourceStatus":{"description":"The inbound resource status of the Interaction","type":"string"},"inboundResourceType":{"description":"The inbound resource type","type":"string"},"inboundResourceUrl":{"description":"The URL of the Twilio inbound resource","type":"string"},"interactionAccountSid":{"description":"The SID of the Account that created the Interaction resource","type":"string"},"interactionData":{"description":"A JSON string that includes the message body of message interactions","type":"string"},"interactionDateCreated":{"description":"The date and time when the resource was created","type":"string"},"interactionDateUpdated":{"description":"The date and time when the resource was last updated","type":"string"},"interactionServiceSid":{"description":"The SID of the parent Service resource","type":"string"},"interactionSessionSid":{"description":"The SID of the parent Session resource","type":"string"},"interactionSid":{"description":"The unique string to identify the Interaction resource","type":"string"},"interactionType":{"description":"The Type of the Interaction","type":"string"},"outboundParticipantSid":{"description":"The SID of the outbound Participant","type":"string"},"outboundResourceSid":{"description":"The SID of the outbound resource","type":"string"},"outboundResourceStatus":{"description":"The outbound resource status of the Interaction","type":"string"},"outboundResourceType":{"description":"The outbound resource type","type":"string"},"outboundResourceUrl":{"description":"The URL of the Twilio outbound resource","type":"string"}},"type":"object"},"TwilioProxyOutOfSessionCallbackRequest":{"properties":{"callSid":{"description":"A unique identifier for the call, generated by Twilio","type":"string"},"from":{"description":"The number the call or text message is from in E.164 format","type":"string"},"sessionDateEnded":{"description":"The date and time in which the proxy session ended","nullable":true,"type":"string"},"sessionSid":{"description":"A unique identifier for the proxy session, generated by Twilio","type":"string"},"smsSid":{"description":"A unique identifier for the sms, generated by Twilio","type":"string"}},"type":"object"},"UnauthorisedMarketingResponse":{"allOf":[{"$ref":"#/components/schemas/MarketingErrorResponse"},{"additionalProperties":false,"description":"401 Unauthorised Returned","type":"object"}],"example":{"errors":[{"description":"Unauthorised","errorCode":"401"}],"faultId":"72d7036d-990a-4f84-9efa-ef5f40f6044b","message":"Unauthorised"}},"UpdateAddedDeal":{"properties":{"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"DealGroups":{"items":{"$ref":"#/components/schemas/UpdateDealGroup"},"type":"array"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"}},"type":"object"},"UpdateAddedProduct":{"properties":{"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"ModifierGroups":{"items":{"$ref":"#/components/schemas/UpdateModifierGroup"},"nullable":true,"type":"array"},"ProductId":{"type":"string"},"Quantity":{"format":"integer","type":"number"},"RemovedIngredients":{"items":{"$ref":"#/components/schemas/UpdateRemovedIngredient"},"nullable":true,"type":"array"}},"type":"object"},"UpdateDeal":{"properties":{"Added":{"items":{"$ref":"#/components/schemas/UpdateAddedDeal"},"nullable":true,"type":"array"},"Removed":{"items":{"$ref":"#/components/schemas/UpdateRemoved"},"nullable":true,"type":"array"},"Updated":{"items":{"$ref":"#/components/schemas/UpdateUpdatedDeal"},"nullable":true,"type":"array"}},"type":"object"},"UpdateDealGroup":{"properties":{"DealGroupId":{"type":"string"},"Products":{"items":{"$ref":"#/components/schemas/UpdateAddedProduct"},"type":"array"}},"type":"object"},"UpdateLocation":{"properties":{"GeoLocation":{"nullable":true,"properties":{"Date":{"type":"string"},"Value":{"allOf":[{"properties":{"Latitude":{"format":"decimal","type":"number"},"Longitude":{"format":"decimal","type":"number"}},"type":"object"}],"description":"Not available across platform yet, but applied for future proofing."}},"type":"object"},"ZipCode":{"nullable":true,"properties":{"Date":{"type":"string"},"Value":{"type":"string"}},"type":"object"}},"type":"object"},"UpdateMenuItemRequest":{"example":{"Category":{"Id":"10","Name":"Lunches"},"Description":"Tasty burrito","HasAllergens":false,"Id":"1","Labels":["Vegetarian"],"Name":"Burrito","OptionGroups":[{"Id":"14","Modifiers":[{"Id":"5","Name":"Plain","Variations":[{"AdditionPrice":0,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},{"Id":"6","Name":"Pilau","Variations":[{"AdditionPrice":0,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]}],"Name":"Rice"}],"PreferenceGroups":[{"Id":"13","Modifiers":[{"Id":"1","Name":"Green","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},{"Id":"2","Name":"Medium","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},{"Id":"3","Name":"Spicy","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]}],"Name":"Salsas"}],"ReceiptNumber":"123","Variations":[{"Id":"3","Name":"Standard","Price":6.99}]},"properties":{"Category":{"$ref":"#/components/schemas/CategoryRequest","description":"Category"},"Description":{"description":"Description","type":"string"},"HasAllergens":{"description":"Whether this item has allergens","type":"boolean"},"Id":{"description":"Id","type":"string"},"Labels":{"description":"Labels","items":{"type":"string"},"type":"array","uniqueItems":false},"Name":{"description":"Name","type":"string"},"OptionGroups":{"description":"Option Groups","items":{"$ref":"#/components/schemas/UpdateModifierGroupRequest"},"maxLength":100,"type":"array","uniqueItems":false},"PreferenceGroups":{"description":"Preference Groups","items":{"$ref":"#/components/schemas/UpdateModifierGroupRequest"},"maxLength":100,"type":"array","uniqueItems":false},"ReceiptNumber":{"description":"The receipt or kitchen number","type":"string"},"Variations":{"description":"Variations","items":{"$ref":"#/components/schemas/UpdateMenuItemVariationRequest"},"maxLength":75,"type":"array","uniqueItems":false}},"type":"object"},"UpdateMenuItemVariationRequest":{"example":{"Id":"12","Name":"Extra-mega-large","Price":50},"properties":{"Id":{"description":"Id","type":"string"},"Name":{"description":"Name","type":"string"},"Price":{"description":"Price","format":"double","type":"number"}},"type":"object"},"UpdateModifier":{"properties":{"ModifierId":{"type":"string"},"Quantity":{"format":"integer","type":"number"}},"type":"object"},"UpdateModifierGroup":{"properties":{"ModifierGroupId":{"type":"string"},"Modifiers":{"items":{"$ref":"#/components/schemas/UpdateModifier"},"type":"array"}},"type":"object"},"UpdateModifierGroupRequest":{"example":{"Id":"13","Modifiers":[{"Id":"1","Name":"Green","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},{"Id":"2","Name":"Medium","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},{"Id":"3","Name":"Spicy","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]}],"Name":"Salsas"},"properties":{"Id":{"description":"Id","type":"string"},"Modifiers":{"description":"Modifiers within this group","items":{"$ref":"#/components/schemas/UpdateModifierRequest"},"type":"array","uniqueItems":false},"Name":{"description":"Name","type":"string"}},"type":"object"},"UpdateModifierRequest":{"example":{"Id":"1","Name":"Green","Variations":[{"AdditionPrice":0.3,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Standard"}]},"properties":{"AdditionPrice":{"description":"Additional price","format":"double","type":"number"},"Id":{"description":"Id","type":"string"},"Name":{"description":"Name","type":"string"},"Variations":{"description":"Variations permitted","items":{"$ref":"#/components/schemas/VariationModifierResponse"},"type":"array","uniqueItems":false}},"type":"object"},"UpdateOrderAddressRequest":{"description":"The request object for setting the order address of a basket.","example":{"address":["123 Wye Avenue, Eaton"],"city":"Bristol","email":"user@email.com","geoPosition":{"latitude":456.123,"longitude":123.456},"name":"J.E.Hungerton","orderable":true,"phoneNumber":"0123456789","polygonName":"BS1 1AA","postCode":"BS1 1AA","serviceType":"delivery"},"properties":{"address":{"description":"An array of strings containing lines of the customer's order address.","items":{"type":"string"},"nullable":false,"type":"array"},"city":{"description":"String value containing the city name of the customer's order address.","nullable":false,"type":"string"},"email":{"description":"The customer's email address.","nullable":false,"type":"string"},"geoPosition":{"allOf":[{"$ref":"#/components/schemas/OrderGeoPosition"}],"description":"Geoposition object containing latitude and longitude values for the customer's order address","nullable":true},"name":{"description":"The customer's name.","nullable":false,"type":"string"},"phoneNumber":{"description":"The customer's phone number.","nullable":false,"type":"string"},"polygonName":{"description":"String value containing the polygon name of customer's order address (in tenants with no polygon name, will be the same as postcode).","nullable":false,"type":"string"},"postCode":{"description":"String value containing the postcode of the customer's order address.","nullable":false,"type":"string"},"serviceType":{"description":"Service Type associated with the order details.","enum":["delivery","collection"],"nullable":false,"type":"string"}},"required":["address","city","postCode","orderable","email","phoneNumber","geoPosition","polygonName"],"type":"object"},"UpdateOrderDetails":{"properties":{"Location":{"allOf":[{"$ref":"#/components/schemas/UpdateLocation"}],"nullable":true}},"type":"object"},"UpdateOrderTimeRequest":{"description":"The request object for setting the order time for a basket.","example":{"asap":true,"dateTime":"2020-02-05T16:26:30+0000","menuId":"12345"},"properties":{"asap":{"description":"True if the user has selected as soon as possible on the order, else false","nullable":false,"type":"boolean"},"dateTime":{"description":"The order time to set for the basket.","nullable":false,"type":"string"},"menuId":{"description":"The menu id that orderability of a basket is calculated against","nullable":false,"type":"string"}},"required":["dateTime","asap","menuId"],"type":"object"},"UpdatePasswordResetFlowResponse":{"example":{"accessCode":"8It2lEaJjG82nJtxO00Iab0CoF0=","expiry":"2025-04-15T13:52:07.569Z"},"properties":{"accessCode":{"description":"The One Time Access Code (OTAC).","type":"string"},"expiry":{"description":"The expiry of the OTAC.","example":"2025-04-15T13:52:07.569Z","format":"date-time","type":"string"}},"type":"object"},"UpdateProduct":{"properties":{"Added":{"items":{"$ref":"#/components/schemas/UpdateAddedProduct"},"nullable":true,"type":"array"},"Removed":{"items":{"$ref":"#/components/schemas/UpdateRemoved"},"nullable":true,"type":"array"},"Updated":{"items":{"$ref":"#/components/schemas/UpdateUpdatedProduct"},"nullable":true,"type":"array"}},"type":"object"},"UpdateQuantity":{"properties":{"Change":{"description":"Value to apply to existing quantity.","format":"integer","type":"number"},"Total":{"description":"Value that replaces the current quantity.","format":"integer","type":"number"}},"type":"object"},"UpdateRemoved":{"properties":{"BasketProductId":{"description":"A unique identifier for a product in the basket. This is needed to support complex products to make sure remove/update is applied to the correct product.","type":"string"},"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"}},"type":"object"},"UpdateRemovedIngredient":{"properties":{"Details":{"type":"string"}},"type":"object"},"UpdateRequest":{"description":"The request object for updating a basket.","properties":{"BasketId":{"type":"string"},"Deal":{"allOf":[{"$ref":"#/components/schemas/UpdateDeal"}],"nullable":true},"OrderDetails":{"allOf":[{"$ref":"#/components/schemas/UpdateOrderDetails"}],"description":"Information needed to allow an order to be placed on a basket.","nullable":true},"Product":{"allOf":[{"$ref":"#/components/schemas/UpdateProduct"}],"nullable":true},"SelectedServiceType":{"nullable":true,"properties":{"Date":{"type":"string"},"Value":{"type":"string"}},"type":"object"}},"type":"object"},"UpdateUpdatedDeal":{"properties":{"BasketProductId":{"type":"string"},"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"DealGroups":{"items":{"$ref":"#/components/schemas/UpdateDealGroup"},"type":"array"},"Quantity":{"items":{"$ref":"#/components/schemas/UpdateQuantity"},"type":"object"}},"type":"object"},"UpdateUpdatedProduct":{"properties":{"BasketProductId":{"type":"string"},"Date":{"description":"`YYYY-MM-DDThh:mm:ssZ (UTC)`","type":"string"},"ModifierGroups":{"items":{"$ref":"#/components/schemas/UpdateModifierGroup"},"nullable":true,"type":"array"},"Quantity":{"items":{"$ref":"#/components/schemas/UpdateQuantity"},"type":"object"},"RemovedIngredients":{"items":{"$ref":"#/components/schemas/UpdateRemovedIngredient"},"nullable":true,"type":"array"}},"type":"object"},"UserRole":{"description":"\n- `System` : Role for an automated process action.\n- `Operations` : Role for an operations user action.\n- `Restaurant` : Role for a restaurant owner/employee user action.","enum":["System","Operations","Restaurant"],"type":"string"},"ValidationError":{"additionalProperties":false,"example":{"attemptedValue":null,"customState":null,"errorCode":"NotEmptyValidator","errorMessage":"TestProperty is empty","formattedMessageArguments":[],"formattedMessagePlaceHolderValues":{"PropertyName":"User Role","PropertyValue":null},"propertyName":"TestProperty","resourceName":null,"severity":0},"properties":{"attemptedValue":{"description":"The property value that caused the failure","nullable":true,"type":"string"},"customState":{"description":"Custom state associated with the failure","nullable":true,"type":"string"},"errorCode":{"description":"The error code","type":"string"},"errorMessage":{"description":"The error message","type":"string"},"formattedMessageArguments":{"description":"Custom formatted validator messages with placeholders","items":{"type":"string"},"type":"array"},"formattedMessagePlaceHolderValues":{"additionalProperties":true,"description":"The values for placeholders in the formatted messages","type":"object"},"propertyName":{"description":"The name of the property causing the failure","type":"string"},"resourceName":{"description":"The resource name used for building the message","nullable":true,"type":"string"},"severity":{"description":"Severity of a validation rule. Will always be 0 (Error).","type":"number"}},"type":"object"},"Validity":{"additionalProperties":false,"properties":{"CuisineIds":{"description":"The cuisine ids the voucher is valid for","items":{"type":"string"},"nullable":true,"type":"array"},"EndDate":{"description":"The end date of the voucher","format":"date-time","nullable":true,"type":"string"},"MinimumSpend":{"description":"The minimum spend to use the voucher","format":"decimal","nullable":true,"type":"number"},"OrderNumberValidity":{"description":"The number of orders a customer has placed to satisfy the requirements of the voucher","nullable":true,"oneOf":[{"$ref":"#/components/schemas/OrderNumberValidity"}]},"PaymentOptionTypes":{"description":"The payment options the voucher is restricted to","items":{"type":"string"},"nullable":true,"type":"array"},"Platform":{"description":"The order platform using the voucher","nullable":true,"type":"string"},"PostCode":{"description":"The post code applicable to the order","nullable":true,"type":"string"},"RestaurantIds":{"description":"A comma separate list of restaurant ids","nullable":true,"type":"string"},"RestrictedToConsumerStatus":{"description":"Whether the voucher is restricted to new customers, returning customers etc","nullable":true,"oneOf":[{"$ref":"#/components/schemas/ConsumerStatus"}]},"ServiceType":{"description":"The service type for the voucher (e.g. Delivery, collection)","nullable":true,"oneOf":[{"$ref":"#/components/schemas/ServiceType"}]},"StartDate":{"description":"The start date of the voucher","format":"date-time","nullable":true,"type":"string"},"ValidFromHour":{"description":"Whether time the voucher is valid from","format":"time-span","nullable":true,"type":"string"},"ValidOnDays":{"description":"The days of the week the voucher is valid on","items":{"$ref":"#/components/schemas/DayOfWeek"},"nullable":true,"type":"array"},"ValidToHour":{"description":"Whether time the voucher is valid to","format":"time-span","nullable":true,"type":"string"}},"type":"object"},"Variation":{"example":{"availabilityIds":["1-lunch-delivery","2-lunch-collection","3-dinner-delivery","4-dinner-collection"],"basePrice":1000,"dealGroupsIds":[],"dealOnly":false,"id":"8547130","kitchenNumber":"100","modifierGroupsIds":["8547130-req-1","8547130-opt-1"],"name":"12 inch","type":"variation"},"properties":{"availabilityIds":{"description":"Maps to an availability item, availabilities determines which days and times the item can be sold.","items":{"type":"string"},"type":"array"},"basePrice":{"description":"The base price of this variation in the minor unit of the currency.","format":"int32","type":"number"},"dealGroupsIds":{"description":"Maps to the deal groups that are applicable to this variation.","items":{"type":"string"},"type":"array"},"dealOnly":{"description":"This flag indicates the variation is only available as part of a deal, the item will not be displayed as a stand alone menu item.","type":"boolean"},"id":{"description":"A unique identifier at menu level for a variation, can be shared with parent menu item id.","type":"string"},"kitchenNumber":{"description":"Identifies the item with a number on the physical menu that the kitchen understand e.g. on a Chinese menu number 16 could correspond to \"BBQ ribs\"","type":"string"},"modifierGroupsIds":{"description":"Maps to the modifier groups that are applicable to this variation.","items":{"type":"string"},"type":"array"},"name":{"description":"The name of the variation.","type":"string"},"type":{"description":"Denotes the type of variation, `Variation` if there's multiple variations of the parent `menuitem`, `NoVariation` if there's only one","enum":["noVariation","variation"],"type":"string"}},"type":"object"},"VariationModifierResponse":{"example":{"AdditionPrice":12.34,"ModifierGroupId":"2","Selected":true,"VariationId":"3","VariationName":"Large"},"properties":{"AdditionalPrice":{"description":"The additional price","format":"double","type":"number"},"ModifierGroupId":{"description":"Id of the modifier group","type":"string"},"Selected":{"description":"Whether this modifier is permitted on this variation","type":"boolean"},"VariationId":{"description":"Id of the variation","type":"string"},"VariationName":{"description":"Name of the variation","type":"string"}},"type":"object"},"VariationReorderDeal":{"additionalProperties":false,"properties":{"Attributes":{"additionalProperties":false,"description":"An object containing all the attributes of a Deal","properties":{"DealGroups":{"description":"A list of all the deal groups attached to a deal. 20 items maximum.","items":{"$ref":"#/components/schemas/VariationReorderDealGroup"},"type":"array"},"Quantity":{"description":"How many of the deal were previously ordered. When re-adding to basket this is the number that should be added.","type":"integer"},"Rank":{"description":"The position in the deal in the list. The data list is ordered by this ascending.","type":"integer"}},"type":"object"},"Id":{"description":"The unique identifier for the deal.","type":"string"},"Type":{"description":"The type of the object. This will always be 'deal'.","type":"string"}},"title":"VariationReorderDeal","type":"object"},"VariationReorderDealGroup":{"additionalProperties":false,"properties":{"Id":{"description":"The unique identifier for a deal group.","type":"string"},"Variations":{"description":"A list of variations in the deal group. 20 items maximum.","items":{"$ref":"#/components/schemas/VariationReorderVariation"},"type":"array"}},"title":"VariationReorderDealGroup","type":"object"},"VariationReorderModifier":{"additionalProperties":false,"properties":{"Id":{"description":"A unique identifier for the variation modifier.","type":"string"},"Quantity":{"description":"How many of the modifier were previously added to the variation.","type":"integer"}},"title":"VariationReorderModifier","type":"object"},"VariationReorderModifierGroup":{"additionalProperties":false,"properties":{"Id":{"description":"The unique identifier for a modifier group.","type":"string"},"Modifiers":{"description":"A list of modifiers applied in this modifier group. 20 items maximum.","items":{"$ref":"#/components/schemas/VariationReorderModifier"},"type":"array"}},"title":"VariationReorderModifierGroup","type":"object"},"VariationReorderRankedVariation":{"additionalProperties":false,"properties":{"Attributes":{"additionalProperties":false,"description":"An object containing all the attributes of a Deal","properties":{"ModifierGroups":{"description":"A list of all the modifiers previously applied to the variation. 20 items maximum.","items":{"$ref":"#/components/schemas/VariationReorderModifierGroup"},"type":"array"},"Quantity":{"description":"How many of the variation were previously ordered. When re-adding to basket, this is the number that should be added.","type":"integer"},"Rank":{"description":"The position in the variation in the array. The data array is ordered by this ascending.","type":"integer"}},"type":"object"},"Id":{"description":"The unique identifier for the variation.","type":"string"},"Type":{"description":"The type of the object. This will always be 'variation'.","type":"string"}},"title":"VariationReorderRankedVariation","type":"object"},"VariationReorderVariation":{"additionalProperties":false,"properties":{"Id":{"description":"The unique identifier for the variation.","type":"string"},"ModifierGroups":{"description":"A list of all the modifiers previously applied to the variation. 20 items maximum.","items":{"$ref":"#/components/schemas/VariationReorderModifierGroup"},"type":"array"},"Quantity":{"description":"How many of the variation were previously ordered.","type":"integer"}},"title":"VariationReorderVariation","type":"object"},"VariationResponse":{"example":{"Id":"32","Name":"Large","OptionGroupIds":["1"],"PreferenceGroupIds":["12","32"],"Price":12.32},"properties":{"Id":{"description":"Id","type":"string"},"Name":{"description":"Name","type":"string"},"OptionGroupIds":{"description":"List of option group ids applicable to this variation","items":{"type":"string"},"type":"array","uniqueItems":false},"PreferenceGroupIds":{"description":"List of preference group ids applicable to this variation","items":{"type":"string"},"type":"array","uniqueItems":false},"Price":{"description":"Price","format":"double","type":"number"},"Type":{"description":"Type","type":"string"}},"type":"object"},"Vehicle":{"description":"All The types of vehicle available.","enum":["CAR","BICYCLE","TRICYCLE","VAN","TRUCK"],"type":"string"},"Voucher":{"additionalProperties":false,"properties":{"Code":{"description":"The voucher code","nullable":true,"type":"string"},"CodeType":{"$ref":"#/components/schemas/CodeType","description":"The type of voucher code"},"Created":{"description":"The created time (UTC) of the voucher","format":"date-time","type":"string"},"CreatedBy":{"description":"The creator of the voucher","nullable":true,"type":"string"},"Id":{"description":"The voucher id","format":"int32","type":"integer"},"Lock":{"description":"If the voucher is locked and what it is locked to","nullable":true,"oneOf":[{"$ref":"#/components/schemas/VoucherLock"}]},"PaymentOptionTypes":{"description":"The payment options the voucher is restricted to","items":{"type":"string"},"nullable":true,"type":"array"}},"type":"object"},"VoucherGroup":{"additionalProperties":false,"properties":{"Archived":{"description":"Whether the voucher group is flagged as archived","type":"boolean"},"Created":{"description":"The created time (UTC) of the voucher group","format":"date-time","type":"string"},"CreatedBy":{"description":"The creator of the voucher group","nullable":true,"type":"string"},"Discount":{"description":"The details of the discount (amount / type etc)","nullable":true,"oneOf":[{"$ref":"#/components/schemas/Discount"}]},"GroupType":{"$ref":"#/components/schemas/GroupType","description":"The type of the voucher group (e.g. Dynamically Created Single Use)"},"Hidden":{"description":"Whether the voucher group is flagged as hidden","type":"boolean"},"Id":{"description":"The Id of the voucher group","format":"int32","type":"integer"},"Name":{"description":"The name of the voucher group","nullable":true,"type":"string"},"Source":{"description":"The source system creating the voucher group","nullable":true,"type":"string"},"StaticCode":{"description":"The static code of the voucher group (will be normalised as part of the creation)","nullable":true,"type":"string"},"Updated":{"description":"The updated time (UTC) of the voucher group","format":"date-time","type":"string"},"Validity":{"description":"The parameters that determine the validity of the voucher group","nullable":true,"oneOf":[{"$ref":"#/components/schemas/Validity"}]}},"type":"object"},"VoucherLock":{"additionalProperties":false,"properties":{"Consumed":{"description":"The UTC date it was consumed","format":"date-time","nullable":true,"type":"string"},"ConsumerStatus":{"description":"The Customer Status (i.e. new customers, returning customers etc)","nullable":true,"oneOf":[{"$ref":"#/components/schemas/ConsumerStatus"}]},"CuisinesIds":{"description":"The number of orders","items":{"type":"string"},"nullable":true,"type":"array"},"CustomerId":{"description":"The Customer Id the voucher is locked to","nullable":true,"type":"string"},"DeliveryFee":{"description":"The delivery fee","format":"decimal","type":"number"},"DiscountApplied":{"description":"The Discount Applied","format":"decimal","type":"number"},"Locked":{"description":"The UTC date it was locked","format":"date-time","nullable":true,"type":"string"},"NumberOfOrders":{"description":"The number of orders","format":"int32","nullable":true,"type":"integer"},"OrderAmount":{"description":"The order amount","format":"decimal","type":"number"},"OrderId":{"description":"The Order Id the voucher is locked to","nullable":true,"type":"string"},"OrderPlacedDateWithUtcOffset":{"description":"The order placed date","format":"date-time","nullable":true,"type":"string"},"PaymentOptionType":{"description":"The payment option","nullable":true,"type":"string"},"Platform":{"description":"The order platform","nullable":true,"type":"string"},"PostCode":{"description":"The post code","nullable":true,"type":"string"},"RestaurantId":{"description":"The restaurant id","format":"int32","type":"integer"},"ServiceType":{"description":"The service type (i.e. Delivery, Collection)","nullable":true,"oneOf":[{"$ref":"#/components/schemas/ServiceType"}]},"State":{"$ref":"#/components/schemas/VoucherStates","description":"The current state"},"VoucherId":{"description":"The voucher id","format":"int32","type":"integer"}},"type":"object"},"VoucherStates":{"description":"","enum":[0,1,2],"type":"integer","x-enumNames":["Available","Locked","Consumed"]},"VoucherType":{"description":"Type of voucher","enum":[0,1,2],"type":"integer","x-enumNames":["Absolute","Percentage","DeliveryFee"]},"WellKnownConfigurationResponse":{"description":"The success response object for the well-known endpoint.","example":{"authorization_endpoint":"http://uk-tokenweb.cwa.je-labs.com/applications/tokenweb/authorize","issuer":"http://uk-tokenweb.cwa.je-labs.com","jwks_uri":"http://uk-tokenweb.cwa.je-labs.com/.well-known/jwks.json","response_types_supported":["code"],"scopes_supported":[""],"token_endpoint":"http://uk-tokenweb.cwa.je-labs.com/applications/tokenweb/token","token_endpoint_auth_methods_supported":["client_secret_basic"],"userinfo_endpoint":"http://uk-tokenweb.cwa.je-labs.com/userinfo"},"properties":{"authorization_endpoint":{"description":"URL of the authorisation endpoint.","nullable":false,"type":"string"},"issuer":{"description":"URL used to identify the issuer.","nullable":false,"type":"string"},"jwks_uri":{"description":"URL of the JSON Web Key Set. This contains the signing keys used to validate signatures.","nullable":false,"type":"string"},"response_types_supported":{"description":"List containing the OAuth 2.0 `response_type` values which are supported.","items":{"type":"string"},"nullable":true,"type":"array"},"scopes_supported":{"description":"List containing the scope values that the server supports.","items":{"type":"string"},"nullable":true,"type":"array"},"token_endpoint":{"description":"URL of the token endpoint.","nullable":false,"type":"string"},"token_endpoint_auth_methods_supported":{"description":"List containing the Client Authentication methods supported by this Token Endpoint.","items":{"type":"string"},"nullable":true,"type":"array"},"userinfo_endpoint":{"description":"URL of the user info endpoint.","nullable":false,"type":"string"}},"type":"object"},"ZoneProfile":{"description":"The zone profile object for a given delivery zone.","properties":{"averageAssignableJobLoad":{"description":"The burden over the couriers in a delivery zone. The average assignable job load is calculated by the sum of all jobs assigned to the couriers divided by the delivery zone's total assignable courier count.","example":0.7,"format":"double","type":"number"},"bender":{"description":"Bender On/Off object","properties":{"enabled":{"description":"Bender Enabled/Disabled status","type":"boolean"}},"type":"object"},"ema":{"description":"The simple moving average is the usage for a given delivery zone, which is calculated by using the sum of all on-shift utilisation ( percentage of time a courier spends working on orders during their shift ) at the time, divided by the number of time periods gathered from all data points. Differently from simple moving average, exponential moving average also represents the usage however its equation places a greater weight on the most recent data points.","example":70,"format":"integer","type":"number"},"flexStateType":{"$ref":"#/components/schemas/BenderFlexStateType","description":"The flex state type changes according to the exponential moving average and is used as a reference to bring more couriers to suffice the demand in a given delivery zone."},"zoneId":{"description":"Zone profile delivery zone id.","example":"53c3afb5-fcs5-4941-be6d-2179f812sc8d","type":"string"}},"type":"object"},"acceptance-requested":{"example":{"Currency":"GBP","Customer":{"Id":12345,"Name":"Bruce Wayne","PreviousRestaurantOrderCount":5,"PreviousTotalOrderCount":83},"CustomerNotes":{"noteForDelivery":"delivery note","noteForRestaurant":"restaurant note"},"FriendlyOrderReference":"REF0001","Fulfilment":{"Address":{"City":"London","Geolocation":{"Latitude":51.51641,"Longitude":-0.103198},"Lines":["Fleet Place House","Fleet Pl"],"PostalCode":"EC4M 7RD"},"CustomerDueAsap":false,"CustomerDueDate":"2025-04-15T13:52:07.570Z","Method":"Delivery","PhoneMaskingCode":"9999999","PhoneNumber":"+441234567890","PreparationTime":"0:23:32"},"IsTest":true,"Items":[{"Items":[{"Items":[],"Name":"Fries","Quantity":1,"Reference":"9876","Synonym":"Regular","UnitPrice":0},{"Items":[],"Name":"Pepsi","Quantity":2,"Reference":"6789","Synonym":"330ml","UnitPrice":0}],"Name":"Chicken Box Meal","Quantity":2,"Reference":"1234","Synonym":"","TotalPrice":10,"UnitPrice":5},{"Items":[],"Name":"Milkshake","Quantity":1,"Reference":"4321","Synonym":"","TotalPrice":7.25,"UnitPrice":7.25}],"OrderId":"ABCD654321","Payment":{"Lines":[{"Paid":false,"Type":"AccountCredit","Value":19.25},{"Paid":true,"Type":"CreditCard","Value":19.25}]},"PlacedDate":"2025-04-15T13:52:07.570Z","PriceBreakdown":{"Discount":0,"Fees":{"Delivery":1,"Other":0,"ServiceCharge":0.5},"Items":17.25,"Taxes":3.85,"Tips":0.5},"Restaurant":{"Address":{"City":"London","Geolocation":{"Latitude":51.4484,"Longitude":-0.1504},"Lines":["Oldridge Road"],"PostalCode":"SW12 8PW"},"Id":"I12345","Name":"Just Eat Test Restaurant","PhoneNumber":"+441200000000","Refererence":"R99999","TimeZone":"Australia/Sydney (IANA format)"},"Restrictions":[{"Type":"Alcohol"}],"TotalPrice":19.25},"properties":{"Currency":{"type":"string"},"Customer":{"properties":{"Id":{"nullable":true,"type":"number"},"Name":{"type":"string"},"PreviousRestaurantOrderCount":{"description":"The customer's previous total number of orders made to this restaurant","type":"number"},"PreviousTotalOrderCount":{"description":"The customer's previous total number of orders made to all restaurants","type":"number"}},"type":"object"},"CustomerNotes":{"additionalProperties":{"type":"string"},"type":"object"},"FriendlyOrderReference":{"type":"string"},"Fulfilment":{"properties":{"Address":{"$ref":"#/components/schemas/order-address"},"CustomerDueAsap":{"type":"boolean"},"CustomerDueDate":{"format":"date-time","type":"string"},"Method":{"enum":["Delivery","Collection"],"type":"string"},"PhoneMaskingCode":{"description":"Code to use when calling customer phone masking number about this order. null if phone masking not enabled","type":"string"},"PhoneNumber":{"description":"Customer phone number (will be phone masking number if enabled)","type":"string"},"PreparationTime":{"format":"timespan","type":"string"}},"type":"object"},"IsTest":{"type":"boolean"},"Items":{"$ref":"#/components/schemas/order-item"},"OrderId":{"type":"string"},"Payment":{"properties":{"Lines":{"items":{"properties":{"Paid":{"type":"boolean"},"Type":{"type":"string"},"Value":{"format":"money","type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"PlacedDate":{"format":"date-time","type":"string"},"PriceBreakdown":{"properties":{"Discount":{"format":"money","nullable":true,"type":"number"},"Fees":{"properties":{"Delivery":{"format":"money","nullable":true,"type":"number"},"Other":{"format":"money","nullable":true,"type":"number"},"ServiceCharge":{"format":"money","nullable":true,"type":"number"}},"type":"object"},"Items":{"format":"money","nullable":true,"type":"number"},"Taxes":{"format":"money","nullable":true,"type":"number"},"Tips":{"format":"money","nullable":true,"type":"number"}},"type":"object"},"Restaurant":{"properties":{"Address":{"$ref":"#/components/schemas/order-address"},"Id":{"description":"Restaurant Id","type":"string"},"Name":{"type":"string"},"PhoneNumber":{"type":"string"},"Reference":{"type":"string"},"TimeZone":{"type":"string"}},"type":"object"},"Restrictions":{"description":"This is a list of types of restricted items contained in the order.","items":{"$ref":"#/components/schemas/order-item-restriction"},"type":"array"},"TotalPrice":{"format":"money","type":"number"}},"type":"object"},"address":{"properties":{"AddressLines":{"items":{"type":"string"},"type":"array"},"City":{"type":"string"},"Postcode":{"type":"string"}},"type":"object"},"address-v2":{"properties":{"City":{"type":"string"},"GeoLocation":{"$ref":"#/components/schemas/location-v2"},"Lines":{"items":{"type":"string"},"type":"array"},"PostalCode":{"type":"string"}},"required":["Lines","City","PostalCode","Geolocation"],"type":"object"},"applicationState":{"description":"The application state i.e. Open, Approved etc.","enum":["OpenApplication","ManualInterventionRequired","ReadyForInitialReview","InitialReviewRejected","ReadyForFinalReview","FinalReviewRejected","Approved"],"type":"string"},"applicationSubmitResponse":{"properties":{"applicationState":{"$ref":"#/components/schemas/applicationState","description":"The current application state i.e. Open, Approved etc."}},"type":"object"},"assessmentStatusTypes":{"description":"Denotes the type of segmentation status that restaurant can have","enum":[0,1,2,3,4],"example":1,"format":"enum","type":"integer","x-enumNames":["Unknown","LocalLegend","Gold","Silver","New"]},"attempted-delivery-created":{"example":{"OrderId":"wiej234idf09i29jijgf4","Reason":"Customer did not answer the door","RestaurantId":110230,"Tenant":"uk"},"properties":{"OrderId":{"description":"The id of the order","type":"string"},"Reason":{"description":"The reason for creating the attempted delivery","type":"string"},"RestaurantId":{"description":"The id of the restaurant","type":"number"},"Tenant":{"description":"The tenant associated with the order","type":"string"}},"type":"object"},"attempted-delivery-resolved":{"example":{"OrderId":"wiej234idf09i29jijgf4","Resolution":{"Redelivery":{"CustomerTimeZone":"Europe/London","NewDueDate":"2025-04-15T13:52:07.570Z","Status":"repreparing"},"Type":"redeliver_order"},"Tenant":"uk"},"properties":{"OrderId":{"description":"The ID of the order for which an attempted delivery query has been resolved","type":"string"},"Resolution":{"description":"Details of the resolution to the query","properties":{"Cancellation":{"description":"The cancellation properties. Only required if the order has been cancelled, otherwise null","properties":{"Reason":{"description":"The reason for cancelling the order","enum":["new_address_not_within_area","unable_to_reprepare","driver_not_available","area_unsafe","customer_doesnt_want_anymore"],"type":"string"}},"type":"object"},"Redelivery":{"description":"The redelivery properties. Only required if the order is being redelivered, otherwise null","properties":{"CustomerTimeZone":{"description":"The IANA TZ database name of the time zone the customer that placed the order is in","type":"string"},"NewDueDate":{"description":"Updated due date for delivery of the order in ISO 8601 format","format":"date-time","type":"string"},"Status":{"description":"The current status of the order","enum":["driver_at_address","repreparing"],"type":"string"}},"type":"object"},"Type":{"description":"The type of resolution to the query, either cancellation or redelivery","enum":["order_cancelled","redeliver_order"],"type":"string"}},"type":"object"},"Tenant":{"description":"The tenant of the restaurant the order was placed at","enum":["uk","dk","es","ie","it","no","au","nz"],"type":"string"}},"type":"object"},"attempted-delivery-response-received":{"example":{"Notes":"Please press 123 on the door","OrderId":"wiej234idf09i29jijgf4","Tenant":"uk","Update":"Please redeliver"},"properties":{"Notes":{"type":"string"},"OrderId":{"type":"string"},"Tenant":{"type":"string"},"Update":{"type":"string"}},"type":"object"},"availability-result":{"properties":{"message":{"description":"Error description when something went wrong or `unprocessedPartnerProductIds` any","type":"string"},"processedPartnerProductIds":{"description":"Array of partner product identifiers that have been successfully processed","items":{"type":"string"},"type":"array"},"unprocessedPartnerProductIds":{"description":"Array of partner product identifiers that have not been processed","items":{"type":"string"},"type":"array"}},"type":"object"},"availability-result-error":{"properties":{"message":{"description":"Short error description","type":"string"}},"type":"object"},"binary-object":{"format":"binary","type":"string"},"bulk-delivery-details":{"properties":{"EtaAtDeliveryAddress":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the delivery address.","example":"2025-04-15T13:52:07.570Z","format":"date-time","type":"string"},"EtaAtRestaurant":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the restaurant.","example":"2025-04-15T13:52:07.570Z","format":"date-time","type":"string"},"Location":{"$ref":"#/components/schemas/location"},"OrderId":{"description":"Just Eat order identifier","type":"string"},"TimeStampWithUtcOffset":{"description":"This should represent the bulk delivery updated timestamp.","format":"date-time","type":"string"}},"type":"object"},"bulk-delivery-details-list":{"items":{"$ref":"#/components/schemas/bulk-delivery-details"},"type":"array"},"campaignId":{"properties":{"campaignId":{"description":"Id of the campaign","type":"string"}},"type":"object"},"connectorder":{"properties":{"BasketInfo":{"description":"Basket data","properties":{"BasketId":{"description":"Unique Basket Id for the Order.","example":"ABCb8DzdnUy7G481b0JN5g","type":"string"},"DeliveryCharge":{"description":"Amount of cost that comes from delivery.","example":5,"format":"double","type":"number"},"Discount":{"description":"The discount amount, used in conjunction with `DiscountType`.","example":4.78,"format":"double","type":"number"},"Discounts":{"description":"Any Discounts applied to the Order.","items":{"description":"Discount data","properties":{"Discount":{"description":"The discount amount, used in conjunction with `DiscountType`.","example":10,"format":"int32","type":"number"},"DiscountType":{"description":"The type of discount, e.g. a percentage or the order or fixed amount.","example":"Percent","type":"string"},"Id":{"description":"Basket item id.","example":21950,"format":"int32","type":"number"},"QualifyingValue":{"description":"The minimum order amount in order for this discount to be applicable.","example":4.78,"format":"double","type":"number"}},"type":"object"},"type":"array"},"GroupedBasketItems":{"description":"Grouped basket items","items":{"description":"An item in the Basket.","properties":{"BasketItem":{"description":"An item in the Basket.","properties":{"CombinedPrice":{"description":"Unit Price plus individual Meal Part item cost.","example":3.58,"format":"double","type":"number"},"Discounts":{"description":"Any discounts applied to this specific item.","items":{"description":"Discount data","properties":{"Amount":{"description":"Amount of the discount applied","example":4.5,"format":"double","type":"number"},"DiscountType":{"description":"Type of the discount applied","example":"Percent","type":"string"}},"type":"object"},"type":"array"},"MealParts":{"description":"Represents sub-parts of a meal.","items":{"description":"Meal part data","properties":{"GroupId":{"description":"The group Id.","example":1,"format":"int32","type":"number"},"MealPartId":{"description":"The meal part Id.","example":45822750,"format":"int32","type":"number"},"Name":{"description":"The name of the meal part.","example":"Any Sides?","type":"string"},"OptionalAccessories":{"description":"Optional accessories","items":{"description":"Optional accessory","properties":{"Name":{"description":"The name of the accessory.","example":"Add Bacon","type":"string"},"OptionalAccessoryId":{"description":"The accessory Id.","example":56168,"format":"int32","type":"number"},"Quantity":{"description":"The quantity of the accessory.","example":1,"format":"int32","type":"number"},"UnitPrice":{"description":"The unit price of the accessory.","example":0.5,"format":"double","type":"number"}},"type":"object"},"type":"array"},"RequiredAccessories":{"description":"Required accessories","items":{"description":"Required accessory","properties":{"GroupId":{"description":"The group Id of the accessory.","example":3,"format":"int32","type":"number"},"Name":{"description":"The name of the accessory.","example":"Coca-Cola Original Taste","type":"string"},"RequiredAccessoryId":{"description":"The accessory Id.","example":225025,"format":"int32","type":"number"},"UnitPrice":{"description":"The unit price of the accessory.","example":0.16,"format":"double","type":"number"}},"type":"object"},"type":"array"},"Synonym":{"description":"The synonym of the meal part.","type":"string"}},"type":"object"},"type":"array"},"MenuCardNumber":{"description":"Menu card number.","example":"1","type":"string"},"MultiBuyDiscounts":{"description":"Any multi-purchase discounts applied to this item.","items":{"description":"Multi-purchase discount data","properties":{"Amount":{"description":"Amount of the discount applied","example":4.5,"format":"double","type":"number"},"DiscountType":{"description":"Type of the discount applied","example":"Percent","type":"string"},"OrderItemId":{"description":"Id of the Order item.","type":"string"},"ProductTypeId":{"description":"The Id of the product type the discount applies to.","format":"int32","type":"number"}},"type":"object"},"type":"array"},"Name":{"description":"The Item name, e.g. Chicken Tikka Masala or Family Meal Deal 3.","example":"Mini Fillet Burger","type":"string"},"OptionalAccessories":{"description":"An option item added to the Basket Item, this may be options such as Garlic Bread or a bottle of Coke.","items":{"description":"Optional accessory","properties":{"Name":{"description":"The name of the accessory.","example":"Add Bacon","type":"string"},"OptionalAccessoryId":{"description":"The accessory Id.","example":56168,"format":"int32","type":"number"},"Quantity":{"description":"The quantity of the accessory.","example":1,"format":"int32","type":"number"},"UnitPrice":{"description":"The unit price of the accessory.","example":0.5,"format":"double","type":"number"}},"type":"object"},"type":"array"},"ProductId":{"description":"Id of the Product.","example":45858074,"format":"int32","type":"number"},"ProductTypeId":{"description":"Id of the Product.","example":428,"format":"int32","type":"number"},"RequiredAccessories":{"description":"Items required as part of the Item, for example, Pizza base sauce.","items":{"description":"Required accessory","properties":{"GroupId":{"description":"The group Id of the accessory.","example":3,"format":"int32","type":"number"},"Name":{"description":"The name of the accessory.","example":"Large Meal","type":"string"},"RequiredAccessoryId":{"description":"The accessory Id.","example":225025,"format":"int32","type":"number"},"UnitPrice":{"description":"The unit price of the accessory.","example":0.1,"format":"double","type":"number"}},"type":"object"},"type":"array"},"Synonym":{"description":"Legacy - ignore.","type":"string"},"UnitPrice":{"description":"The price of the item.","example":1.79,"format":"double","type":"number"}},"type":"object"},"CombinedPrice":{"description":"The total price of the Basket Item (including discounts).","example":3.58,"format":"double","type":"number"},"MenuCardNumber":{"description":"Menu card number.","example":"1","type":"string"},"OrderSubId":{"description":"Order `SubId`","example":0,"format":"int32","type":"number"},"Quantity":{"description":"The quantity of Basket Items requested.","example":2,"format":"int32","type":"number"}},"type":"object"},"type":"array"},"MenuId":{"description":"Id of the Restaurant's menu.","example":777890,"format":"int32","type":"number"},"MultiBuyDiscount":{"description":"MultiBuy discount.","example":0,"format":"double","type":"number"},"SubTotal":{"description":"The Basket total cost, excluding any discounts.","example":47.75,"format":"double","type":"number"},"ToSpend":{"description":"Amount to spend.","example":0,"format":"double","type":"number"},"Total":{"description":"Total price of the Order.","example":47.97,"format":"double","type":"number"}},"type":"object"},"CustomerInfo":{"description":"Customer data","properties":{"Address":{"description":"Customer Address. Note that Address is comma delimited.","example":"Fleet Place House, 2 Fleet Place, London","type":"string"},"City":{"description":"The name of the city where the Customer is located.","example":"London","type":"string"},"DisplayPhoneNumber":{"description":"The customer's masked phone number.","example":"(01) 872 7863","type":"string"},"Email":{"description":"Email address for the Customer.","example":"contact@just-eat.com","type":"string"},"Id":{"description":"The JUST EAT Customer Id.","example":"123456","type":"string"},"Latitude":{"description":"Customer address latitude. Will be 0 if not provided.","example":51.50015,"format":"double","type":"number"},"LocationAccuracyDescription":{"description":"Location accuracy description","example":"ROOFTOP","type":"string"},"LocationAccuracyInMeters":{"description":"Accuracy of the location data in meters.","example":0,"format":"double","type":"number"},"LocationSource":{"description":"Provider of the location data.","example":"GeodataGeocoder","type":"string"},"Longitude":{"description":"Customer address longitude. Will be 0 if not provided.","example":-0.12624,"format":"double","type":"number"},"Name":{"description":"The name of the Customer.","example":"Just Eat","type":"string"},"PhoneMaskingCode":{"description":"Code to use when calling customer phone masked number (`DisplayPhoneNumber`) about this order. Null if phone masking not enabled","example":"444333222","type":"string"},"PhoneNumber":{"description":"The customer's unmasked phone number. Please don't expose this to drivers, instead use this number to provide your own phone masking number or use the JustEat masked number `DisplayPhoneNumber` below","example":"018727863","type":"string"},"Postcode":{"description":"The post code where Customer is located.","example":"EC4M 7RF","type":"string"},"PreviousRestuarantOrderCount":{"description":"The number of Orders the Customer has placed at this Restaurant via JUST EAT","format":"int32","type":"number"},"TimeZone":{"description":"Customer timezone, e.g. 'Central European Standard Time'.","example":"GMT Standard Time","type":"string"}},"type":"object"},"CustomerOrderId":{"deprecated":true,"description":"This is a deprecated customer-facing ID that we maintain to support existing implementations.","example":348322088,"format":"int32","type":"number"},"FriendlyOrderReference":{"description":"The customer facing identifier for the order, which should be used in any UI or receipts to identify the order to the customer, driver or restaurant. This identifier is not guaranteed to be globally unique.","example":"348322088","type":"string"},"Id":{"deprecated":true,"description":"The unique identifier for an order within the country. You can provide this ID whenever sending requests related to the order. Note that further messages from Just Eat relating to this order may not use this same identifier, use `OrderId` for a more consistent identifier.","example":"348322088","type":"string"},"IsAMiniFistPumpOrder":{"deprecated":true,"description":"Legacy Promotion - Ignore.","type":"boolean"},"Order":{"description":"Order data","properties":{"DueDate":{"deprecated":true,"description":"Ignore - use `DueDateWithUtcOffset`.","format":"date-time","type":"string"},"DueDateWithUtcOffset":{"description":"The DateTime when the Customer has been told they will receive the Order.","format":"date-time","type":"string"},"InitialDueDate":{"deprecated":true,"description":"Ignore - use `IntialDueDateWithUtcOffset`.","format":"date-time","type":"string"},"InitialDueDateWithUtcOffset":{"description":"When the Customer was originally told the order would be delivered (prior to Restaurant adjustment)","format":"date-time","type":"string"},"NoteToRestaurant":{"description":"Notes from the customer about their order. In addition to notes for the restaurant, this field can also delivery instructions - and should be displayed to the delivery driver.","example":"Contact-free delivery","type":"string"},"PickupNoticePeriod":{"description":"Desired minimum amount of notice needed before the driver arrives to pickup the order at the restaurant. This is to allow restaurant enough time to prepare the order. If less notice is given the driver may have to wait for the order to be prepared. Field is in the format \"hh:mm:ss\"","example":"00:10:00","format":"timespan","type":"string"},"PlacedDate":{"description":"Date Customer placed the order. Note that JUST EAT accepts pre-orders therefore there may be a significant difference between Placed Date and Due Date This Date/Time is set as UTC without an offset, regardless of Country.","format":"date-time","type":"string"},"PromptAsap":{"description":"Did the Customer request the Order to ready ASAP","type":"boolean"},"RdsPickupTimeWithUtcOffset":{"description":"When the Delivery Partner needs to be at the Restaurant to pickup the Order.","format":"date-time","type":"string"},"ServiceType":{"description":"Type of the Order.","enum":["Collection","Delivery"],"type":"string"}},"type":"object"},"OrderId":{"description":"Globally unique Identifier for the order. Please use this whenever sending requests related to this order. Just Eat will provide this same identifier on any further messages relating to this order.","example":"ijdhpy7bdusgtc28bapspa","type":"string"},"OrderReference":{"deprecated":true,"description":"This field is used to store external references to the order. This is defined by either Just Eat or the partner that created the order.","example":"39cce3f0-0278-dd25-ae32-e8effe1ce4eb","type":"string"},"PaymentInfo":{"description":"Payment data","properties":{"CashOnDelivery":{"description":"Is the Customer paying on Delivery.","type":"boolean"},"DriverTipValue":{"description":"The value of the tip given to the Driver.","example":0,"format":"double","type":"number"},"PaidDate":{"description":"DateTime when the Order was Paid (excludes UTC offset).","format":"date-time","type":"string"},"PaymentLines":{"description":"How the Customer has paid for the Order.","items":{"description":"Payment line data","properties":{"CardFee":{"description":"Was there a fee for the payment mechanism.","example":0.5,"format":"double","type":"number"},"Type":{"description":"How was the order Paid.","enum":["Card"],"type":"string"},"Value":{"description":"The value of the payment.","example":22.05,"format":"double","type":"number"}},"type":"object"},"type":"array"},"Total":{"description":"The total order value.","example":22.55,"format":"double","type":"number"},"TotalComplementary":{"description":"Order amount covered by JUST EAT.","example":0,"format":"double","type":"number"}},"type":"object"},"RestaurantInfo":{"description":"Restaurant data","properties":{"AddressLines":{"description":"Restaurant address.","items":{"description":"Address line","example":"Fleet Place House 2, Fleet Place, London","type":"string"},"type":"array"},"City":{"description":"The name of the city where the Restaurant is located","example":"London","type":"string"},"DispatchMethod":{"description":"`DispatchMethod` to use.","example":"Phone","type":"string"},"EmailAddress":{"description":"Email address for the Restaurant.","example":"contact@testrestaurant.com","type":"string"},"Id":{"description":"Unique ID of the Restaurant.","example":"123456","type":"string"},"Latitude":{"description":"Restaurant address latitude. Will be 0 if not provided.","example":51.50015,"format":"double","type":"number"},"Longitude":{"description":"Restaurant address longitude. Will be 0 if not provided.","example":-0.12624,"format":"double","type":"number"},"Name":{"description":"The name of the Restaurant.","example":"Test Restaurant","type":"string"},"PhoneNumber":{"description":"The Restaurant phone number.","example":"07123456789","type":"string"},"PickupNotes":{"description":"Order pickup instructions for the Delivery Partner.","example":"Use the back entrance","type":"string"},"Postcode":{"description":"The post code where Restaurant is located","example":"EC4M 7RF","type":"string"}},"type":"object"},"Restrictions":{"description":"This is a list of types of restricted items contained in the order.","items":{"$ref":"#/components/schemas/order-item-restriction"},"type":"array"}},"type":"object"},"connectorder-list":{"items":{"$ref":"#/components/schemas/connectorder"},"type":"array"},"consumerMarketingPreference":{"items":{"properties":{"channelName":{"description":"The channel name.","enum":["Email","Push","Sms"],"type":"string"},"dateUpdated":{"description":"The date of the marketing preference change","format":"date-time","type":"string"},"isSubscribed":{"description":"Should the channel be subscribed to?","type":"boolean"}},"type":"object"},"type":"array"},"consumerMarketingPreferencev2":{"example":{"emailAddress":"consumer@just-eat.com","updates":[{"channelName":"Email","dateUpdated":"2025-04-15T13:52:07.570Z","isSubscribed":true}]},"properties":{"emailAddress":{"description":"The email address of the consumer","type":"string"},"updates":{"$ref":"#/components/schemas/consumerMarketingPreference","description":"Collection of marketing channel subscription updates"}},"type":"object"},"create-attempted-delivery":{"example":{"ReasonCode":"problem_with_address"},"properties":{"ReasonCode":{"description":"The reason the attempted delivery event was created","enum":["problem_with_address","no_answer"],"type":"string"}},"type":"object"},"create-delivery-pool":{"example":{"name":"Toronto - West","restaurants":[123,456]},"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"required":["name"],"type":"object"},"customer":{"properties":{"Address":{"$ref":"#/components/schemas/address"},"CustomerReference":{"type":"string"},"Email":{"type":"string"},"Location":{"$ref":"#/components/schemas/location"},"Name":{"type":"string"},"PhoneNumber":{"type":"string"}},"type":"object"},"customer-v2":{"properties":{"Address":{"$ref":"#/components/schemas/address-v2"},"DisplayPhoneNumber":{"description":"If you implement phone masking provide a masked number here","type":"string"},"Email":{"type":"string"},"Name":{"type":"string"},"PhoneNumber":{"description":"The customer's real phone number","type":"string"}},"required":["Name","PhoneNumber","Address"],"type":"object"},"customerExperienceScoreDetail":{"description":"Details of how customer experience score has contributed to get the segmentation status","example":{"hasPassed":false,"maximumScore":50,"requiredScore":40,"score":12,"scoreType":0},"properties":{"hasPassed":{"description":"Represent if the restaurant has passed the customer experience score criteria","type":"boolean"},"maximumScore":{"description":"Represent the maximum customer experience score that can be achieved by the restaurant","type":"number"},"requiredScore":{"description":"Represent the customer experience score required to pass the customer experience score criteria","type":"number"},"score":{"description":"Represent the customer experience score achieved by the restaurant","type":"number"},"scoreType":{"$ref":"#/components/schemas/scoreTypes","description":"Represent the type of score data. It would always be number (0) customer experience score."}},"type":"object"},"delivery-abort-with-reason":{"example":{"deliveryPartnerReasonCode":"courier_issue","reason":"driver_problem"},"properties":{"deliveryPartnerReasonCode":{"description":"The original reason code from the delivery partner","example":"package_damaged","format":"string","type":"string"},"reason":{"description":"The detailed Just Eat delivery partner cancellation reason code","enum":["cancelled_by_requester","package_not_available","restaurant_closed","package_damaged","address_error","driver_problem","could_not_reach_customer","technical_problem","incorrect_package","other"],"example":"incorrect_package","type":"string"}},"type":"object"},"delivery-details":{"example":{"TimeStampWithUtcOffset":"2025-04-15T13:52:07.571Z"},"properties":{"Location":{"$ref":"#/components/schemas/location"},"TimeStampWithUtcOffset":{"description":"This should represent the delivery detailed updated timestamp.","format":"date-time","type":"string"}},"type":"object"},"delivery-driver-assigned-details":{"properties":{"DriverContactNumber":{"description":"This should represent the driver's contact number.","example":"07123456789","type":"string"},"DriverName":{"description":"This should represent the driver's name.","example":"David","type":"string"},"EtaAtDeliveryAddress":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the delivery address.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"EtaAtRestaurant":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the restaurant. In other words, it should not just contain the pick-up time initially requested by Just Eat.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"Location":{"$ref":"#/components/schemas/location"},"TimeStampWithUtcOffset":{"description":"This should represent the driver assigned timestamp.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"VehicleDetails":{"$ref":"#/components/schemas/vehicle-details"}},"type":"object"},"delivery-driver-details-with-eta":{"example":{"EtaAtDeliveryAddress":"2025-04-15T13:52:07.571Z","Location":{"Accuracy":12.814,"Heading":357.10382,"Latitude":51.51641,"Longitude":-0.103198,"Speed":8.68},"TimeStampWithUtcOffset":"2025-04-15T13:52:07.571Z"},"properties":{"EtaAtDeliveryAddress":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the delivery address.","format":"date-time","type":"string"},"Location":{"$ref":"#/components/schemas/location"},"TimeStampWithUtcOffset":{"description":"This should represent the Eta calculated timestamp.","format":"date-time","type":"string"}},"type":"object"},"delivery-driver-location":{"properties":{"EtaAtDeliveryAddress":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the delivery address.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"EtaAtRestaurant":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the restaurant.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"Location":{"$ref":"#/components/schemas/location","example":{"Accuracy":12.814,"Heading":357.10382,"Latitude":51.51641,"Longitude":-0.103198,"Speed":8.68}},"TimeStampWithUtcOffset":{"description":"This should represent the location updated timestamp.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"}},"type":"object"},"delivery-driver-unassigned-details":{"properties":{"Comment":{"description":"This should represent the comment on the unassignment.","example":"Order was not ready","type":"string"},"DriverContactNumber":{"description":"This should represent the driver's contact number.","example":"07123456789","type":"string"},"DriverName":{"description":"This should represent the driver's name.","example":"David McDriverson","type":"string"},"EtaAtDeliveryAddress":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the delivery address.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"EtaAtRestaurant":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the restaurant. In other words, it should not just contain the pick-up time initially requested by Just Eat.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"Location:":{"$ref":"#/components/schemas/location","description":"This should represent the driver's geographic location (longitude and latitude)"},"Reason":{"description":"This should represent the delivery partner's reason for unassigning themselves from the order.","example":"package_not_ready","type":"string"},"TimeStampWithUtcOffset":{"description":"This should represent the driver unassigned timestamp.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"UnassignedBy":{"description":"This should represent the actor who triggered unassignment.","example":"operation","type":"string"}},"type":"object"},"delivery-eta-minutes":{"example":{"Approximate":null,"RangeLower":35,"RangeUpper":50},"nullable":true,"properties":{"Approximate":{"description":"Approximate delivery eta in minutes","format":"int32","nullable":true,"type":"integer"},"RangeLower":{"description":"Lower bound of delivery eta in minutes","format":"int32","nullable":true,"type":"integer"},"RangeUpper":{"description":"Upper bound of delivery eta in minutes","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"delivery-pool":{"example":{"name":"Toronto - West","restaurants":[123,456]},"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"},"delivery-pool-hours":{"example":{"friday":{"closed":false,"poolTimes":[{"endTime":"01:00","startTime":720}]},"monday":{"closed":false,"poolTimes":[{"endTime":1260,"startTime":"09:00"}]},"saturday":{"closed":false,"poolTimes":[{"endTime":1380,"startTime":660}]},"sunday":{"closed":false,"poolTimes":[{"endTime":1140,"startTime":780}]},"thursday":{"closed":false,"poolTimes":[{"endTime":"03:00","startTime":720}]},"tuesday":{"closed":true,"poolTimes":[{"endTime":1140,"startTime":600}]},"wednesday":{"closed":false,"poolTimes":[{"endTime":1080,"startTime":"08:00"}]}},"properties":{"friday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Friday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Friday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"monday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Monday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Monday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"saturday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Saturday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Saturday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"sunday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Sunday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Sunday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"thursday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Thursday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Thursday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"tuesday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Tuesday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Tuesday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"},"wednesday":{"properties":{"closed":{"description":"true if the pool is closed for the day","type":"boolean"},"poolTimes":{"description":"pool start and end times for the day","items":{"properties":{"endTime":{"description":"pool end time for Wednesday (HH:mm)","type":"string"},"startTime":{"description":"pool start time for Wednesday (HH:mm)","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["poolTimes"],"type":"object"}},"required":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"type":"object"},"delivery-restaurantslist":{"properties":{"restaurants":{"description":"A list of Just Eat restaurant ids served by the pool.","example":[10202,10203],"items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"},"document":{"properties":{"documentMetadata":{"$ref":"#/components/schemas/documentMetadata","description":"Metadata of document being added"},"documentType":{"$ref":"#/components/schemas/documentType","description":"Type of document being added"}},"type":"object"},"documentContentType":{"description":"The content type of this document. Can be used by the client to display the file correctly","enum":["image/jpeg","image/png","application/pdf","application/msword"],"type":"string"},"documentLinkResponse":{"example":{"headers":{"x-amz-meta-documenttype":"Menu","x-amz-server-side-encryption":"AES256"},"href":"https://s3.eu-west-1.amazonaws.com/uk/restaurants/restaurantId/fileName?X-Amz-Expires=180"},"properties":{"documentKey":{"description":"The name of the document","type":"string"},"headers":{"additionalProperties":{"type":"string"},"description":"Headers that will be passed when calling S3","type":"object"},"href":{"description":"The signed URL for S3. It includes the random generated file name which is usually a GUID.","type":"string"},"method":{"description":"The method the client should use when calling S3","enum":["GET","PUT","DELETE"],"type":"string"}},"type":"object"},"documentMetadata":{"properties":{"contentType":{"$ref":"#/components/schemas/documentContentType","description":"Content type of the document"},"dateAdded":{"description":"When the document is added [YYYY-MM-DDThh:mm:ssZ (UTC)]","format":"date-time","type":"string"},"documentKey":{"description":"Key of document being added. This is the s3 object key that you have already added","example":"images/signup/menu-1.jpg","type":"string"}},"type":"object"},"documentRejectionType":{"description":"The rejection reason of a document","enum":["Other","IncorrectDocument","NotClearEnough","Outdated","NoOwnersName","NoOwnersPhoto","NoBusinessAddress","NoBusinessName","MissingPages","Handwritten","MissingInformation","NoAllergenKey","LogoNameDoesNotMatch","CopyrightInfringement","PhotoFromInternet"],"type":"string"},"documentReviews":{"properties":{"rejectionReasons":{"description":"An array of rejection reasons","items":{"properties":{"comment":{"description":"Any other review comments","type":"string"},"type":{"$ref":"#/components/schemas/documentRejectionType"}},"type":"object"},"maxItems":10,"minItems":0,"type":"array"}},"type":"object"},"documentState":{"description":"The state of a document","enum":["NotAvailable","Received","ReadyForInitialReview","InitialToBeRejected","InitialNoIssuesFound","InitialReviewRejected","ReadyForFinalReview","FinalReviewNoIssuesFound","FinalReviewToBeRejected","FinalReviewRejected","Approved"],"type":"string"},"documentStateUpdate":{"properties":{"documentState":{"$ref":"#/components/schemas/documentState","description":"The new state of the document","type":"string"}},"type":"object"},"documentType":{"description":"The type of the document","enum":["Menu","PhotoId","AddressProof","FsaCertificate","Logo","OwnershipInfo","Shopfront"],"type":"string"},"driver-location":{"properties":{"Location":{"$ref":"#/components/schemas/location-v2"},"OrderId":{"type":"string"},"TimeStamp":{"format":"date-time","type":"string"}},"type":"object"},"driver-status":{"properties":{"DriverContactNumber":{"type":"string"},"DriverName":{"type":"string"},"EstimatedDeliveryTime":{"format":"date-time","type":"string"},"EstimatedPickupTime":{"format":"date-time","type":"string"},"Event":{"enum":["DriverAssigned","DriverAtRestaurant","OnItsWay","AtDeliveryAddress","Delivered"],"type":"string"},"OrderId":{"type":"string"},"TimeStamp":{"format":"date-time","type":"string"}},"type":"object"},"emailaddress":{"properties":{"EmailAddress":{"description":"An email address for an account.","type":"string"}},"type":"object"},"estimated-delivery-time":{"properties":{"DurationInMinutes":{"type":"string"},"RestaurantReference":{"type":"string"}},"type":"object"},"estimated-time":{"example":{"bestGuess":"00:35:00"},"properties":{"bestGuess":{"description":"Your best estimation (hh:mm:ss)","type":"string"}},"type":"object"},"eta-estimate":{"properties":{"bestGuess":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the restaurant.","format":"date-time","type":"string"},"estimatedAt":{"description":"This is the time at which you are doing the estimation","format":"date-time","type":"string"}},"type":"object"},"extensibleObject":{"additionalProperties":true,"type":"object"},"fee":{"properties":{"Type":{"type":"string"},"Value":{"format":"money","type":"number"}},"type":"object"},"fulfillment":{"properties":{"Method":{"type":"string"},"PickupTime":{"format":"date-time","type":"string"},"Table":{"type":"string"}},"type":"object"},"fulfilment-v2":{"example":{"DueAsap":false,"DueDate":"2025-04-15T13:52:07.571Z","Method":"Delivery"},"properties":{"DueAsap":{"description":"If food should be delivered ASAP","type":"boolean"},"DueDate":{"description":"The time the customer expects the food. Time must be in the future","format":"date-time","type":"string"},"Method":{"enum":["Delivery","Collection"],"type":"string"}},"required":["Method","DueDate"],"type":"object"},"hygieneScheme":{"description":"Denotes the type of hygiene scheme supported","enum":[0,1,2],"example":1,"type":"integer","x-enumNames":["Unknown","FHRS","FHIS"]},"hygieneScoreDetail":{"description":"Details of hygiene rating experience score has contributed to get the segmentation status","example":{"hasPassed":true,"maximumScore":5,"requiredScore":3,"scheme":1,"score":5,"scoreType":0},"properties":{"hasPassed":{"description":"Represent if the restaurant has passed the hygiene score criteria","type":"boolean"},"maximumScore":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"object"}],"description":"Represent the maximum hygiene score that can be achieved. Based in the score type value, type of this field can be string or number of in future anything else","nullable":true},"requiredScore":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"object"}],"description":"Represent the hygiene score required to pass hygiene criteria. Based in the score type value, type of this field can be string or number of in future anything else"},"scheme":{"$ref":"#/components/schemas/hygieneScheme","description":"Represent the hygiene scheme used by the restaurant"},"score":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"object"}],"description":"Represent the hygiene score achieved by restaurant. Based in the score type value, type of this field can be string or number of in future anything else"},"scoreType":{"$ref":"#/components/schemas/scoreTypes","description":"Represent the type of score data. Value of this field will depend which hygiene method is supported by restaurant."}},"type":"object"},"initialRestaurantRequest":{"example":{"address":{"city":"London","lines":["Fleet Place House","Fleet Place"],"postalCode":"EC4M 7RF"},"name":"Test Restaurant","owner":{"emailAddress":"restaurant@example.com","phoneNumber":"0791231234"}},"properties":{"address":{"description":"The address of the restaurant","properties":{"city":{"description":"The name of the city the restaurant is located","type":"string"},"lines":{"description":"The address lines the restaurant is located","items":{"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"postalCode":{"description":"The post code the restaurant is located","type":"string"}},"type":"object"},"name":{"description":"The name of the restaurant","type":"string"},"owner":{"description":"The owner of the restaurant","properties":{"emailAddress":{"description":"The email address of the restaurant owner","type":"string"},"familyName":{"description":"The last name of the restaurant owner","type":"string"},"givenName":{"description":"The first name of the restaurant owner","type":"string"},"phoneNumber":{"description":"The phone number of the restaurant owner","type":"string"}},"type":"object"}},"required":["name","address","owner"],"type":"object"},"item":{"properties":{"Description":{"type":"string"},"Items":{"items":{"$ref":"#/components/schemas/item"},"type":"array"},"OptionReference":{"type":"string"},"Quantity":{"format":"int32","type":"number"},"Reference":{"type":"string"}},"type":"object"},"item-v2":{"properties":{"Items":{"items":{"$ref":"#/components/schemas/item-v2"},"type":"array"},"Name":{"type":"string"},"Quantity":{"type":"integer"},"Reference":{"type":"string"},"UnitPrice":{"format":"money","type":"integer"}},"type":"object"},"items-v2":{"properties":{"Items":{"items":{"$ref":"#/components/schemas/item-v2"},"type":"array"},"Name":{"type":"string"},"Quantity":{"minimum":1,"type":"integer"},"Reference":{"description":"The item's ID that you hold","type":"string"},"TotalPrice":{"description":"Price of this item x quantity and all sub items","format":"money","type":"number"},"UnitPrice":{"format":"money","type":"integer"}},"required":["TotalPrice","Reference","Name","Quantity"],"type":"object"},"late-order-compensation-options":{"items":{"$ref":"#/components/schemas/LateOrderCompensationOption","type":"object"},"type":"array"},"late-order-compensation-query":{"example":{"CompensationOptions":[{"Amount":200,"IsRecommended":false},{"Amount":300,"IsRecommended":true},{"Amount":400,"IsRecommended":false}],"OrderId":"wiej234idf09i29jijgf4","RestaurantId":"110230","Tenant":"uk"},"properties":{"compensationOptions":{"$ref":"#/components/schemas/late-order-compensation-options","description":"List of possible options for compensation"},"orderId":{"description":"Just Eat order identifier","type":"string"},"restaurantId":{"description":"Just Eat restaurant identifier","type":"string"},"tenant":{"description":"Tenant (Country) of order restaurant.","type":"string"}},"type":"object"},"late-order-query":{"example":{"OrderId":"wiej234idf09i29jijgf4","RestaurantId":"110230","Tenant":"uk"},"properties":{"orderId":{"description":"Just Eat order identifier","type":"string"},"restaurantId":{"description":"Just Eat restaurant identifier","type":"string"},"tenant":{"description":"Tenant (Country) of order restaurant.","type":"string"}},"type":"object"},"lines-v2":{"properties":{"LastCardDigits":{"type":"string"},"Paid":{"type":"boolean"},"ServiceFee":{"format":"double","type":"number"},"Type":{"enum":["Cash","Card","AccountCredit","Voucher"],"type":"string"},"Value":{"format":"money","type":"number"}},"required":["Type"],"type":"object"},"local-date-time":{"description":"A local date time object, conforming to `ISO-8601`, but with only a partial time representation and no time offset.","pattern":"^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?$","type":"string"},"location":{"description":"GeoLocation object containing latitude and longitude values.","example":{"Accuracy":12.814,"Heading":357.10382,"Latitude":51.51641,"Longitude":-0.103198,"Speed":8.68},"properties":{"Accuracy":{"description":"This should represent the accuracy of driver's location.","format":"double","type":"number"},"Heading":{"description":"This should represent the degree of heading direction, for example, 0 is north, 90 is east.","format":"double","type":"number"},"Latitude":{"description":"This should represent the latitude of the driver's location.","format":"double","type":"number"},"Longitude":{"description":"This should represent the longitude of the driver's location.","format":"double","type":"number"},"Speed":{"description":"This should represent the travel speed of the driver.","format":"double","type":"number"}},"required":["Latitude","Longitude"],"type":"object"},"location-v2":{"example":{"Latitude":51.51641,"Longitude":-0.103198},"properties":{"Latitude":{"format":"double","type":"number"},"Longitude":{"format":"double","type":"number"}},"required":["Latitude","Longitude"],"type":"object"},"menu-ingestion-complete":{"example":{"correlationId":"64bef5ee-7265-47f8-9aee-28bc74f00b13","fault":{"errors":[{"code":"123","description":"Invalid variation: 15237d6c-c866-55da-9e61-b4f59dcab9ae - variations must be associated with at least one availability"},{"code":"145","description":"Invalid availability ID: menu-105369-availabilities - availability IDs must be integers"}],"id":"70e307df-0156-4d3c-ab92-dd57a103350b"},"restaurantId":"123456","result":"fail","tenant":"uk","timestamp":"2025-04-15T13:52:07.571Z"},"properties":{"correlationId":{"description":"The ID of the execution which has been completed","type":"string"},"fault":{"description":"Details of the fault which caused the menu ingestion to fail. This is only present if menu ingestion did not complete successfully","properties":{"errors":{"description":"Details of errors which caused the fault","items":{"properties":{"code":{"description":"An alphanumeric code for the error","type":"string"},"description":{"description":"A description of the error to help you resolve the issue","type":"string"}},"type":"object"},"type":"array"},"id":{"description":"A unique ID for the fault","type":"string"}},"type":"object"},"restaurantId":{"description":"The Just Eat restaurant ID","type":"string"},"result":{"description":"The result of the menu ingestion process","enum":["success","fail"],"format":"enum","type":"string"},"tenant":{"description":"Country code for the market the restaurant is in","enum":["au","dk","es","ie","it","no","uk","nz"],"format":"enum","type":"string"},"timestamp":{"description":"The ISO-8601 datetime at which the menu ingestion completed","format":"date-time","type":"string"}},"type":"object"},"object":{"type":"object"},"on-its-way-details":{"properties":{"EstimatedArrivalTime":{"description":"This should represent the delivery partner's best guess at when the driver will arrive at the customer's address. In other words, it should not just contain the delivery time initially requested by Just Eat.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"},"Location":{"$ref":"#/components/schemas/location"},"TimeStampWithUtcOffset":{"description":"This should represent the driver on its ways timestamp.","example":"2025-04-15T13:52:07.571Z","format":"date-time","type":"string"}},"type":"object"},"onItsWayPercentage":{"description":"Details of how on its way experience score has contributed to get the segmentation status","example":{"hasPassed":true,"requiredScore":70,"score":84,"scoreType":1},"properties":{"hasPassed":{"description":"Represent if the restaurant has passed the on-its-way threshold","type":"boolean"},"requiredScore":{"description":"Represent the on its way percentage required to pass the on-its-way threshold","type":"number"},"score":{"description":"Represent the on-its-way percentage of restaurant","type":"number"},"scoreType":{"$ref":"#/components/schemas/scoreTypes","description":"Represent the type of score data. It would always be percentage (1) for on-its-way."}},"type":"object"},"order-accept-request":{"example":{"TimeAcceptedFor":"2025-04-15T13:52:07.571Z"},"properties":{"TimeAcceptedFor":{"format":"date-time","type":"string"}},"type":"object"},"order-accepted":{"example":{"AcceptedFor":"2025-04-15T13:52:07.571Z","Event":"OrderAccepted","OrderId":"123456"},"properties":{"AcceptedFor":{"format":"date-time","type":"string"},"Event":{"type":"string"},"OrderId":{"type":"string"}},"type":"object"},"order-address":{"properties":{"City":{"type":"string"},"Geolocation":{"properties":{"Latitude":{"format":"double","type":"number"},"Longitude":{"format":"double","type":"number"}},"type":"object"},"Lines":{"items":{"type":"string"},"type":"array"},"PostalCode":{"type":"string"}},"type":"object"},"order-cancel-request":{"example":{"Message":"Customer requested the order to be cancelled"},"properties":{"Message":{"description":"Reason why this order is being cancelled.","type":"string"}},"type":"object"},"order-cancelled":{"example":{"Event":"OrderCancelled","OrderId":"ijdhpy7bdusgtc28bapspa","Reason":"system_cancelled_other"},"properties":{"Event":{"type":"string"},"OrderId":{"type":"string"},"Reason":{"description":"The reason the order was cancelled.","enum":["cust_cancelled_changed_mind","cust_cancelled_delivery_too_long","cust_cancelled_made_mistake","cust_cancelled_other","delivery_partner_cancelled","rest_cancelled_customer_absent","rest_cancelled_customer_requested","rest_cancelled_declined","rest_cancelled_drivers_unavailable","rest_cancelled_fake_order","rest_cancelled_other","rest_cancelled_out_of_stock","rest_cancelled_too_busy","system_cancelled_other","system_cancelled_test_order"],"type":"string"}},"type":"object"},"order-due-date-request":{"example":{"DueDate":"2025-04-15T13:52:07.571Z"},"properties":{"DueDate":{"description":"The updated ETA for the order","format":"date-time","type":"string"}},"type":"object"},"order-item":{"items":{"properties":{"Items":{"$ref":"#/components/schemas/order-item"},"Name":{"type":"string"},"Quantity":{"type":"number"},"Reference":{"type":"string"},"TotalPrice":{"format":"money","type":"number"},"UnitPrice":{"format":"money","type":"number"}},"type":"object"},"type":"array"},"order-item-restriction":{"properties":{"Type":{"description":"The type of restricted item contained in the order. The only supported value is 'Alcohol'.","enum":["Alcohol"],"type":"string"}},"type":"object"},"order-ready-for-preparation":{"example":{"Currency":"GBP","Customer":{"Id":"Batman","Name":"Bruce Wayne"},"CustomerNotes":[{"Key":"Floor","Value":"5th floor"},{"Key":"Code","Value":"Code 1234"}],"Fulfilment":{"Address":{"City":"London","Geolocation":{"Latitude":51.51641,"Longitude":-0.103198},"Lines":["Fleet Place House","Fleet Pl"],"PostalCode":"EC4M 7RD"},"CustomerDueAsap":false,"CustomerDueDate":"2025-04-15T13:52:07.571Z","Method":"Delivery","PhoneNumber":"+441234567890"},"IsTest":true,"Items":[{"Items":[{"Items":[],"Name":"Fries","Quantity":1,"Reference":"9876","Synonym":"Regular","UnitPrice":0},{"Items":[],"Name":"Pepsi","Quantity":2,"Reference":"6789","Synonym":"330ml","UnitPrice":0}],"Name":"Chicken Box Meal","Quantity":2,"Reference":"1234","Synonym":"","TotalPrice":10,"UnitPrice":5},{"Items":[],"Name":"Milkshake","Quantity":1,"Reference":"4321","Synonym":"","TotalPrice":7.25,"UnitPrice":7.25}],"OrderId":"XYZ123456","Payment":{"Lines":[{"Paid":false,"Type":"card","Value":19.25}]},"PlacedDate":"2025-04-15T13:52:07.571Z","PriceBreakdown":{"Discount":0,"Fees":{"Delivery":1,"Other":0,"ServiceCharge":0.5},"Items":17.25,"Taxes":3.85,"Tips":0.5},"Restaurant":{"Address":{"City":"London","Geolocation":{"Latitude":51.4484,"Longitude":-0.1504},"Lines":["Oldridge Road"],"PostalCode":"SW12 8PW"},"Id":"99999","Name":"Just Eat Test Restaurant","PhoneNumber":"+441200000000","Refererence":"R99999"},"TotalPrice":19.25},"properties":{"Currency":{"type":"string"},"Customer":{"properties":{"Id":{"type":"string"},"Name":{"type":"string"}},"type":"object"},"CustomerNotes":{"additionalProperties":{"type":"string"},"type":"object"},"Fulfilment":{"properties":{"Address":{"properties":{"City":{"type":"string"},"Geolocation":{"$ref":"#/components/schemas/location"},"Lines":{"items":{"type":"string"},"type":"array"},"PostalCode":{"type":"string"}},"type":"object"},"CustomerDueAsap":{"type":"boolean"},"CustomerDueDate":{"format":"date-time","type":"string"},"Method":{"enum":["Delivery","Collection"],"type":"string"},"PhoneNumber":{"type":"string"},"PreparationTime":{"format":"timespan","type":"string"},"PrepareFor":{"format":"date-time","type":"string"}},"type":"object"},"IsTest":{"type":"boolean"},"Items":{"items":{"$ref":"#/components/schemas/item-v2"},"type":"array"},"OrderId":{"type":"string"},"Payment":{"properties":{"Lines":{"items":{"properties":{"Paid":{"type":"boolean"},"Type":{"enum":["card","cash","credit","other"],"type":"string"},"Value":{"format":"money","type":"number"}},"type":"object"},"type":"array"}},"type":"object"},"PlacedDate":{"format":"date-time","type":"string"},"PriceBreakdown":{"properties":{"Discount":{"format":"money","type":"number"},"Fees":{"properties":{"Delivery":{"format":"money","type":"number"},"Other":{"format":"money","type":"number"},"ServiceCharge":{"format":"money","type":"number"}},"type":"object"},"Items":{"format":"money","type":"number"},"Taxes":{"format":"money","type":"number"},"Tips":{"format":"money","type":"number"}},"type":"object"},"Restaurant":{"properties":{"Address":{"properties":{"City":{"type":"string"},"Geolocation":{"$ref":"#/components/schemas/location"},"Lines":{"items":{"type":"string"},"type":"array"},"PostalCode":{"type":"string"}},"type":"object"},"Id":{"type":"string"},"Name":{"type":"string"},"PhoneNumber":{"type":"string"},"Reference":{"type":"string"}},"type":"object"},"TotalPrice":{"format":"money","type":"number"}},"type":"object"},"order-reject-request":{"example":{"Message":"Kitchen overloaded"},"properties":{"Message":{"description":"Reason why this order is being rejected.","type":"string"}},"type":"object"},"order-rejected":{"example":{"Event":"OrderRejected","RejectedAt":"2025-04-15T13:52:07.572Z","RejectedBy":"123456","RejectedReason":"Kitchen overloaded"},"properties":{"Event":{"type":"string"},"RejectedAt":{"format":"date-time","type":"string"},"RejectedBy":{"type":"string"},"RejectedReason":{"type":"string"}},"type":"object"},"order-request":{"properties":{"Basket":{"type":"string"},"Customer":{"$ref":"#/components/schemas/customer"},"CustomerNote":{"type":"string"},"DueDate":{"format":"date-time","type":"string"},"EventUpdateUri":{"type":"string"},"FriendlyOrderReference":{"type":"string"},"Fulfillment":{"$ref":"#/components/schemas/fulfillment"},"IsRds":{"type":"boolean"},"OrderReference":{"type":"string"},"PartnerName":{"type":"string"},"PartnerSubscriptionId":{"type":"integer"},"Payment":{"$ref":"#/components/schemas/payment"},"PlacedDate":{"format":"date-time","type":"string"},"RestaurantDetails":{"$ref":"#/components/schemas/restaurant-details"},"RestaurantReference":{"type":"string"},"TimeStampAccepted":{"format":"date-time","type":"string"}},"required":["PlacedDate","DueDate","OrderReference","Payment","Customer","Basket","RestaurantDetails","PartnerSubscriptionId"],"type":"object"},"order-request-v2":{"properties":{"Customer":{"$ref":"#/components/schemas/customer-v2"},"CustomerNotes":{"example":{"NoteForDelivery":"Red door","NoteForRestaurant":"Make it spicy"},"properties":{"NoteForDelivery":{"type":"string"},"NoteForRestaurant":{"type":"string"}},"type":"object"},"FriendlyOrderReference":{"type":"string"},"Fulfilment":{"$ref":"#/components/schemas/fulfilment-v2"},"IsTest":{"type":"boolean"},"Items":{"items":{"$ref":"#/components/schemas/items-v2"},"type":"array"},"OrderReference":{"type":"string"},"Payment":{"$ref":"#/components/schemas/payment-v2"},"Restaurant":{"$ref":"#/components/schemas/restaurant-v2"},"TotalPrice":{"format":"double","type":"number"}},"required":["OrderReference","TotalPrice","Restaurant","Customer","Fulfilment","Payment","Items"],"type":"object"},"order-status-request":{"example":{"Status":"Accepted","TimeStamp":"2025-04-15T13:52:07.572Z"},"properties":{"Data":{"additionalProperties":{"type":"string"},"type":"object"},"Message":{"type":"string"},"Status":{"description":"The requested new state of the order","enum":["InKitchen","FailedToSendToKitchen","Accepted","Rejected"],"type":"string"},"TimeAcceptedFor":{"format":"date-time","type":"string"},"TimeStamp":{"format":"date-time","type":"string"}},"required":["Status","TimeStamp"],"type":"object"},"order-time-updated":{"example":{"dayOfWeek":"Monday","lowerBoundMinutes":35,"restaurantId":"123456","serviceType":"Delivery","upperBoundMinutes":50},"properties":{"dayOfWeek":{"description":"The day of the week that has been updated.","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"format":"enum","type":"string"},"lowerBoundMinutes":{"description":"Order time lower bound value, in minutes.","format":"int32","type":"integer"},"restaurantId":{"description":"The Just Eat restaurant ID","type":"string"},"serviceType":{"description":"Service type of the order time.","enum":["Delivery","Collection"],"format":"enum","type":"string"},"upperBoundMinutes":{"description":"Order time upper bound value, in minutes.","format":"int32","type":"integer"}},"type":"object"},"orderScoreDetail":{"description":"Details of how order score has contributed to get the segmentation status","example":{"hasPassed":true,"maximumScore":50,"requiredScore":20,"score":48,"scoreType":0},"properties":{"hasPassed":{"description":"Represent if the restaurant has passed the order score criteria","type":"boolean"},"maximumScore":{"description":"Represent the maximum order score that can be achieved by the restaurant","type":"number"},"requiredScore":{"description":"Represent the order score required to pass the order score criteria","type":"number"},"score":{"description":"Represent the order score achieved by the restaurant","type":"number"},"scoreType":{"$ref":"#/components/schemas/scoreTypes","description":"Represent the type of score data. It would always be number (0) customer experience score."}},"type":"object"},"orderTime":{"description":"The object representing order time entry","example":{"dayOfWeek":"Monday","lowerBoundMinutes":35,"serviceType":"Delivery","upperBoundMinutes":50},"properties":{"dayOfWeek":{"description":"Day of week for order time","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"type":"string"},"lowerBoundMinutes":{"description":"Order time lower bound value, in minutes.","format":"int32","type":"integer"},"serviceType":{"description":"Service type of the order time","enum":["Delivery","Collection"],"type":"string"},"upperBoundMinutes":{"description":"Order time upper bound value, in minutes.","format":"int32","type":"integer"}},"type":"object"},"partner-restaurant-temporary-offline-status":{"example":{"Message":"Too busy","Status":"TempOffline"},"properties":{"Message":{"type":"string"},"Status":{"enum":["TempOffline","ClosedToday","None"],"type":"string"}},"type":"object"},"password":{"properties":{"Password":{"description":"A password for a consumers account.","type":"string"}},"type":"object"},"patch-delivery-pool":{"example":{"name":"Toronto - North"},"properties":{"name":{"description":"The name of the pool, used by operations teams, in reports, etc.","type":"string"},"restaurants":{"description":"A list of Just Eat restaurant ids served by the delivery pool.","items":{"format":"int32","type":"number"},"type":"array"}},"type":"object"},"payment":{"properties":{"CardCharges":{"format":"money","type":"number"},"CashOnDelivery":{"type":"boolean"},"DeliveryCharge":{"format":"money","type":"number"},"DriverTipValue":{"format":"money","type":"number"},"Fees":{"items":{"$ref":"#/components/schemas/fee"},"type":"array"},"RestaurantTipValue":{"format":"money","type":"number"},"Total":{"format":"money","type":"number"}},"type":"object"},"payment-v2":{"example":{"Fees":[{"Type":"card","Value":0.25},{"Type":"delivery","Value":3.5}],"Lines":[{"LastCardDigits":"1234","Paid":true,"ServiceFee":0,"Type":"Card","Value":19.95}],"Tips":[{"Type":"driver","Value":2.5}]},"properties":{"Fees":{"items":{"$ref":"#/components/schemas/fee"},"type":"array"},"Lines":{"items":{"$ref":"#/components/schemas/lines-v2"},"type":"array"},"PaidDate":{"format":"date-time","type":"string"},"Taxes":{"items":{"$ref":"#/components/schemas/tax-v2"},"type":"array"},"Tips":{"items":{"$ref":"#/components/schemas/fee"},"type":"array"}},"required":["Lines"],"type":"object"},"product-id-list":{"items":{"description":"Array of partner product identifiers","type":"string"},"type":"array"},"ready-for-pickup":{"properties":{"Event":{"enum":["Ready for pickup"],"type":"string"},"Timestamp":{"format":"date-time","type":"string"}},"type":"object"},"resolve-attempted-delivery-cancel":{"example":{"ReasonCode":"new_address_not_within_area"},"properties":{"ReasonCode":{"description":"The reason the order has been cancelled","enum":["new_address_not_within_area","unable_to_reprepare","driver_not_available","area_unsafe","customer_doesnt_want_anymore"],"type":"string"}},"type":"object"},"resolve-attempted-delivery-redeliver":{"example":{"NewDueDate":"2025-04-15T13:52:07.572Z","Status":"driver_at_address"},"properties":{"NewDueDate":{"description":"Updated due date for delivery of the order","format":"date-time","type":"string"},"Status":{"description":"The current status of the order","enum":["driver_at_address","repreparing"],"type":"string"}},"type":"object"},"restaurant":{"example":{"address":{"city":"London","lines":["Fleet Place House","Fleet Place"],"postalCode":"EC4M 7RF"},"applicationMetadata":{"applicationType":"NonStandard","occupancyType":"MultipleBusinessMultipleOwnership","premiseType":"Van"},"applicationState":"OpenApplication","bankDetails":{"accountHolderName":"John Doe","bankAccountNumber":"12345678","bankName":"Best Bank","bankSortCode":"12-34-56"},"createdDate":"2025-04-15T13:52:07.572Z","fulfilment":{"description":"The fulfillment options for the restaurant","type":"DeliveryAndCollection"},"hygiene":{"rating":"4"},"lastUpdatedDate":"2025-04-15T13:52:07.572Z","menu":{"requestedCuisines":["Greek","European"]},"name":"Test Restaurant","owner":{"emailAddress":"restaurant@example.com","familyName":"Doe","givenName":"John","phoneNumber":"0791231234"}},"properties":{"address":{"description":"The address of the restaurant","properties":{"city":{"description":"The name of the city the restaurant is located","type":"string"},"lines":{"description":"The address lines the restaurant is located","items":{"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"postalCode":{"description":"The post code the restaurant is located","type":"string"}},"type":"object"},"applicationMetadata":{"description":"Extra information about the restaurant, like the premises and ownership status","nullable":true,"properties":{"applicationType":{"description":"The type of sign up application i.e. Standard, Non-Standard.","enum":["Unknown","Standard","NonStandard"],"nullable":true,"type":"string"},"occupancyType":{"description":"The nature of occupancy that restaurant is using e.g Single, Multiple businesses under one ownership, Multiple businesses under multiple ownership etc...","enum":["Unknown","Single","MultipleBusinessSingleOwnership","MultipleBusinessMultipleOwnership","Other"],"nullable":true,"type":"string"},"premiseType":{"description":"The type of premises that restaurant is using e.g Pub, Hotel, Stall etc...","enum":["Unknown","HighStreet","GhostKitchen","Residential","PubOrHotelSameName","PubOrHotelDifferentName","PubOrHotelLeased","PubOrHotelUnknown","Unit","Stall","ShoppingCentre","Van","Other"],"nullable":true,"type":"string"}},"type":"object"},"applicationState":{"$ref":"#/components/schemas/applicationState","description":"The current application state of the restaurant"},"bankDetails":{"description":"Account holder information for the restaurant","properties":{"accountHolderName":{"description":"The name on the bank account","type":"string"},"bankAccountNumber":{"description":"The bank account number","type":"string"},"bankName":{"description":"The name of the bank","type":"string"},"bankSortCode":{"description":"The sort code","type":"string"}},"type":"object"},"createdDate":{"description":"When the restaurant was created [YYYY-MM-DDThh:mm:ssZ (UTC)]","format":"date-time","type":"string"},"fulfilment":{"description":"The delivery type of the restaurant","properties":{"type":{"description":"The delivery type of the restaurant","enum":["DeliveryAndCollection","CollectionOnly","JustEatDelivery"],"type":"string"}},"type":"object"},"hygiene":{"description":"The food hygiene rating for the restaurant","properties":{"rating":{"description":"The rating score","type":"string"}},"type":"object"},"lastUpdatedDate":{"description":"When the restaurant was last updated [YYYY-MM-DDThh:mm:ssZ (UTC)]","format":"date-time","type":"string"},"menu":{"description":"The restaurant menu","properties":{"requestedCuisines":{"description":"The restaurant cuisines","items":{"type":"string"},"maxItems":2,"minItems":1,"type":"array"}},"type":"object"},"name":{"description":"The name of the restaurant","type":"string"},"owner":{"description":"The restaurant owner","properties":{"emailAddress":{"description":"The email address of the restaurant owner","type":"string"},"familyName":{"description":"The last name of the restaurant owner","type":"string"},"givenName":{"description":"The first name of the restaurant owner","type":"string"},"phoneNumber":{"description":"The phone number of the restaurant owner","type":"string"}},"type":"object"}},"type":"object"},"restaurant-details":{"properties":{"Address":{"type":"string"},"City":{"type":"string"},"Email":{"type":"string"},"Id":{"type":"integer"},"Location":{"$ref":"#/components/schemas/location"},"Name":{"type":"string"},"PhoneNumber":{"type":"string"},"Postcode":{"type":"string"}},"required":["Id","Email","Name","Address","Location"],"type":"object"},"restaurant-details-updated":{"properties":{"event":{"enum":["RestaurantUpdated"],"format":"enum","type":"string"},"restaurants":{"items":{"properties":{"city":{"type":"string"},"firstLine":{"type":"string"},"id":{"description":"The JUST EAT restaurant id","format":"integer","type":"number"},"latitude":{"format":"float","type":"number"},"longitude":{"format":"float","type":"number"},"name":{"type":"string"},"postcode":{"type":"string"}},"type":"object"},"type":"array"},"tenant":{"description":"The country the restaurant(s) exists in","type":"string"}},"type":"object"},"restaurant-hours-changed":{"properties":{"Event":{"enum":["OpenHoursForRestaurantChanged"],"format":"enum","type":"string"},"OpenHours":{"items":{"properties":{"CloseTime":{"description":"The close time (HH:mm) (Wide clock, i.e. if before start it is following day)","type":"string"},"Closed":{"description":"The restaurant is closed for the day","type":"boolean"},"DayOfWeek":{"description":"The day of the week the times are for.","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"format":"enum","type":"string"},"OpenTime":{"description":"The open time (HH:mm)","type":"string"}},"type":"object"},"type":"array"},"RestaurantReference":{"description":"The JUST EAT Restaurant Id","type":"string"},"Tenant":{"description":"The country the restaurant exists in","type":"string"}},"type":"object"},"restaurant-information-updated":{"properties":{"RestaurantInformationUpdated":{"properties":{"RestaurantId":{"description":"The JUST EAT Restaurant Id","type":"string"},"RestaurantInfo":{"properties":{"address":{"properties":{"city":{"type":"string"},"firstLine":{"type":"string"},"location":{"properties":{"lat":{"format":"double","type":"number"},"lng":{"format":"double","type":"number"}},"type":"object"},"postcode":{"type":"string"}},"type":"object"},"allergenPhoneNumber":{"type":"string"},"allergenUrl":{"type":"string"},"alternativeOwnerName":{"type":"string"},"alternativeOwnerNumber":{"type":"string"},"brandName":{"type":"string"},"companyNo":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"legalName":{"type":"string"},"logoUrl":{"type":"string"},"mobileNumber":{"type":"string"},"name":{"type":"string"},"openingClosingTimes":{"properties":{"fridayClosed":{"type":"boolean"},"fridayClosingTimeOfDay":{"type":"string"},"fridayOpeningTimeOfDay":{"type":"string"},"mondayClosed":{"type":"boolean"},"mondayClosingTimeOfDay":{"type":"string"},"mondayOpeningTimeOfDay":{"type":"string"},"saturdayClosed":{"type":"boolean"},"saturdayClosingTimeOfDay":{"type":"string"},"saturdayOpeningTimeOfDay":{"type":"string"},"sundayClosed":{"type":"boolean"},"sundayClosingTimeOfDay":{"type":"string"},"sundayOpeningTimeOfDay":{"type":"string"},"thursdayClosed":{"type":"boolean"},"thursdayClosingTimeOfDay":{"type":"string"},"thursdayOpeningTimeOfDay":{"type":"string"},"tuesdayClosed":{"type":"boolean"},"tuesdayClosingTimeOfDay":{"type":"string"},"tuesdayOpeningTimeOfDay":{"type":"string"},"wednesdayClosed":{"type":"boolean"},"wednesdayClosingTimeOfDay":{"type":"string"},"wednesdayOpeningTimeOfDay":{"type":"string"}},"type":"object"},"ownerName":{"type":"string"},"phoneNumber":{"type":"string"},"seoName":{"type":"string"},"signupReference":{"type":"string"}},"type":"object"},"Tenant":{"description":"The country the restaurant exists in","type":"string"}},"type":"object"},"event":{"enum":["RestaurantInformationUpdated"],"format":"enum","type":"string"}},"type":"object"},"restaurant-offline-status":{"properties":{"Event":{"enum":["RestaurantOfflineStatus"],"format":"enum","type":"string"},"RestaurantOfflineStatus":{"$ref":"#/components/schemas/RestaurantOfflineStatus"},"RestaurantReference":{"description":"The JUST EAT Restaurant Id","type":"string"}},"type":"object"},"restaurant-status":{"properties":{"Event":{"enum":["RestaurantStatusChange"],"format":"enum","type":"string"},"Message":{"deprecated":true,"description":"This field should not be used but has been left in the callback for backwards compatibility purposes","type":"string"},"RestaurantReference":{"description":"The JUST EAT Restaurant Id","type":"string"},"Status":{"enum":["online","offline"],"format":"enum","type":"string"}},"type":"object"},"restaurant-v2":{"oneOf":[{"properties":{"Id":{"description":"Our restaurant ID","type":"integer"}},"type":"object"},{"properties":{"Reference":{"description":"If we hold a mapping for your restaurant IDs to ours - use your ID here","type":"string"}},"type":"object"}]},"restaurantEmailAddress":{"properties":{"emailAddress":{"description":"The email address of the restaurant that the login link will be sent to","type":"string"}},"type":"object"},"scoreTypes":{"description":"Represent the type of score data. Value of this field will depend on the category.","enum":[0,1,2],"example":2,"type":"integer","x-enumNames":["Number","Percentage","Custom"]},"search-address":{"description":"The address of the restaurant","properties":{"City":{"description":"City the restaurant is in","type":"string"},"FirstLine":{"description":"First line of the restaurant's address","type":"string"},"Latitude":{"description":"Latitude of the restaurant","format":"double","type":"number"},"Longitude":{"description":"Longitude of the restaurant","format":"double","type":"number"},"Postcode":{"description":"Postcode of the restaurant","type":"string"}},"type":"object"},"search-restaurant":{"properties":{"Address":{"$ref":"#/components/schemas/search-address","description":"The restaurant's address"},"DeliveryEtaMinutes":{"$ref":"#/components/schemas/delivery-eta-minutes","description":"Information about the approximate delivery time"},"DriveDistance":{"description":"The distance to drive from restaurant to delivery location in miles","format":"double","type":"number"},"DriveInfoCalculated":{"description":"Flag indicating that the driving information has been calculated","type":"boolean"},"Id":{"description":"The id of the restaurant","format":"double","type":"number"},"IsOpenNowForDelivery":{"description":"Indicates the restaurant is now open for delivery","type":"boolean"},"Name":{"description":"The name of the restaurant","type":"string"},"UniqueName":{"description":"The unique name of the restaurant on Just Eat","type":"string"},"Url":{"description":"The URL of the restaurant's menu page","type":"string"}},"type":"object"},"search-restaurants":{"properties":{"Restaurants":{"description":"A list of restaurants matching the search criteria","items":{"$ref":"#/components/schemas/search-restaurant"},"type":"array"}},"type":"object"},"segmentationHistory":{"description":"Represents list of last four segmentation statuses, sorted reverse chronologically by assessment date.","example":{"dateAssessed":"2025-04-15T13:52:07.572Z","hasLocalLegendCriteriaBeenMet":true,"status":1},"properties":{"dateAssessed":{"description":"Date and time when the segmentation assessment was made","format":"date-time","type":"string"},"hasLocalLegendCriteriaBeenMet":{"description":"Represents if the restaurant achieved local legend status at that point or not","type":"boolean"},"status":{"$ref":"#/components/schemas/assessmentStatusTypes","description":"The segmentation status for restaurant"}},"type":"object"},"segmentationHistoryList":{"description":"Represents list of last four segmentation statuses, sorted reverse chronologically by assessment date.","items":{"$ref":"#/components/schemas/segmentationHistory"},"type":"array"},"segmentationStatus":{"properties":{"details":{"$ref":"#/components/schemas/segmentationStatusDetail","description":"Represent the details of segmentation status"},"id":{"description":"The JUST EAT restaurant id","format":"integer","type":"number"},"lastUpdated":{"description":"Timestamp of last status change","format":"date-time","type":"string"},"status":{"$ref":"#/components/schemas/assessmentStatusTypes","description":"The segmentation status for restaurant"}},"type":"object"},"segmentationStatusDetail":{"description":"Represent the details of segmentation status sub-scores","properties":{"customerExperienceScore":{"$ref":"#/components/schemas/customerExperienceScoreDetail","description":"Details of how customer experience score has contributed to get the segmentation status"},"hygiene":{"$ref":"#/components/schemas/hygieneScoreDetail","description":"Details of hygiene rating experience score has contributed to get the segmentation status"},"onItsWayPercentage":{"$ref":"#/components/schemas/onItsWayPercentage","description":"Details of how on its way experience score has contributed to get the segmentation status"},"orderScore":{"$ref":"#/components/schemas/orderScoreDetail","description":"Details of how order score has contributed to get the segmentation status"}},"type":"object"},"send-to-pos-failed":{"properties":{"OrderId":{"type":"string"}},"type":"object"},"supportRequest":{"properties":{"body":{"description":"Detail of the request","type":"string"},"orderid":{"description":"The id of the order this request relates to","type":"string"},"subject":{"description":"What is this request about?","type":"string"}},"type":"object"},"tax-v2":{"properties":{"Percentage":{"format":"double","type":"number"},"Type":{"type":"string"},"Value":{"format":"money","type":"number"}},"required":["Value","Type","Percentage"],"type":"object"},"tenants":{"enum":["au","ca","dk","es","ie","it","nz","uk"],"type":"string"},"updateOrderTimeRequest":{"description":"Request object for order time update","example":{"lowerBoundMinutes":35,"upperBoundMinutes":50},"properties":{"lowerBoundMinutes":{"description":"Order time lower bound value, in minutes.","format":"int32","type":"integer"},"upperBoundMinutes":{"description":"Order time upper bound value, in minutes.","format":"int32","type":"integer"}},"type":"object"},"vehicle-details":{"properties":{"Vehicle":{"example":"Motorbike","type":"string"},"VehicleRegistration":{"example":"JU51 SAY","type":"string"}},"type":"object"}},"securitySchemes":{"Bearer":{"bearerFormat":"JWT","description":"Bearer token authentication using a JSON Web Token (JWT).","scheme":"bearer","type":"http"},"api_key":{"description":"APIs for delivery partners require an API key that will have been issued to you.","in":"header","name":"Authorization","type":"apiKey"},"basic_auth":{"description":"A few services allow the use of basic authentication when a partner doesn't support OAuth based authentication.","scheme":"basic","type":"http"},"justeat_adfs":{"description":"ADFS authentication provider for internal Just Eat tools.","openIdConnectUrl":"https://adfs.just-eat.com/adfs/.well-known/openid-configuration","type":"openIdConnect"},"restaurantsignup_jwt":{"bearerFormat":"JWT token with payload `RestaurantId` and Role `[RestaurantRead | VerifyEmail | RestaurantWrite | FullAccess | DocumentRead]`","description":"Bearer token authentication using a JSON Web Token (JWT), used by the restaurant sign up system","scheme":"bearer","type":"http"}}},"x-tagGroups":[{"name":"Consumer Experience","tags":["Authorization","Consumers","ConsumerOffers","ConsumerQueries","Consumer Queries Webhooks","ConsumerOrders","Search","Basket","Payments","Giftcards","Experiments","Vouchers","Promoted Placement","Menu","Recommendations","Location Services"]},{"name":"Manage Order Journey","tags":["Order Acceptance API","Order Acceptance Webhooks","Order Delivery API","Order Delivery Webhooks","Order API","Order Webhooks","Customer Order Details","DeliveryFee","Delivery Pools API","Attempted Delivery API","Attempted Delivery Webhooks","Checkout","Courier Feedback"]},{"name":"Restaurant Management","tags":["Restaurant Product","Restaurants","RestaurantOffers","Restaurant OrderTimes","Restaurants Webhooks","RestaurantSignup","RestaurantQueries","RestaurantQueries Webhooks","Restaurant Claims","Restaurant Events","Restaurant Events Webhooks","Restaurant API","Restaurant Webhooks","Products","Logistics POS Restaurants","Restaurant Smiley Rating"]}]}