Just Eat UK 1.0.0
Added: 03/03/2018
Updated at: 21/06/2021
# Just Eat API Just Eat offers services for our various business partners and our consumer applications. How you interact with the API depends on the services you wish to interact with. ## Security ### HTTPS All api calls and callbacks require HTTPS. Your service will need a valid SSL certificate and be accessible via the standard SSL port (port 443). ## Making an API request Some API calls require an API key, to authenticate the partner calling the API. ``` PUT https://uk-partnerapi.just-eat.io/orders/abcd1234 HTTP/1.1 Authorization: JE-API-KEY abcd123456789 ``` Other calls require a user token in the form of a JWT. ``` GET https://uk.api.just-eat.io/consumer/me/orders/uk HTTP/1.1 Authorization: Bearer abcd123456789 ``` ## Date Formats ### Date and time formats All dates and times should use the [ISO 8601 standard for representation of dates and times](https://en.wikipedia.org/wiki/ISO_8601). #### For instance: * DueDateWithUtcOffset: `"2015-05-26T14:52:35.5444292+01:00"` - Local time: `14:52` - UTC time: `13:52` - UTC offset: `+1hr` (due to daylight time saving) * DueDateWithUtcOffset: `"2015-02-03T11:10:00.0000000+00:00"` - Local time: `11:10` - UTC time: `11:10` - UTC offset: `0` (no daylight time saving, local time is equivalent to UTC) Note 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). ### Callback timestamps Timestamps 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. If it is not possible to record timestamps in local time, timestamps may be recorded in UTC time with a 00:00 offset. ## Async Webhooks Some of the webhooks on the platform are configured as being 'async' webhooks. These are for long-running operations, and work as follows: 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. 2. Return an immediate `202 Accepted` response from the webhook endpoint, to indicate that you have received the request. 3. Perform the long-running operation. This can be deemed either a _success_; or a _failure_. 4. If the result is a _**success**_, return the following: ``` POST {returnUrl} HTTP/1.1 { "status": "Success", "message": "{successMessage}", "data": {} // webhook-specific response object } ``` 5. Otherwise, if the result is a _**failure**_, return the following: ``` POST {returnUrl} HTTP/1.1 { "status": "Failure", "message": "{failureMessage}", "data": {} // webhook-specific response object } ```