Just Eat Restaurant Events API

The Restaurant Events API from Just Eat — 2 operation(s) for restaurant events.

OpenAPI Specification

just-eat-restaurant-events-api-openapi.yml Raw ↑
openapi: 3.0.0
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 Attempted Delivery API Restaurant Events API
  version: 1.0.0
  x-apisguru-categories:
  - ecommerce
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter.com_JustEatUK_profile_image.png
  x-origin:
  - format: openapi
    url: https://uk.api.just-eat.io/docs/openapi.json
    version: '3.0'
  x-providerName: just-eat.co.uk
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
tags:
- name: Restaurant Events
paths:
  /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
      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
      x-status: Stable
components:
  schemas:
    OfflineRestaurantsRequestModel:
      additionalProperties: false
      example:
        allowRestaurantOverride: true
        duration: '1:00:00'
        name: Out of Chicken
        reason: No more chicken in stock.
        restaurantIds: '12345'
        startDate: '2020-01-16T09:00:00Z'
      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
    LegacyTempOfflineStatus:
      default: ClosedDueToEvent
      description: '

        - `Unset` : Legacy value meaning online.

        - `None` : Legacy value meaning online.

        - `TempOffline` : The restaurant will go temporarily offline, typically for an undetermined amount of time (no end date).

        - `ClosedToday` : The restaurant will closed for the day and the event will end the next morning.

        - `ClosedDueToEvent` : The restaurant will go offline for an event (e.g. a holiday), these events will typically have an end time.

        - `FailedJctConnection` : The restaurant will go offline due to the POS device losing connection.

        - `NoTrOverride` : The restaurant will go offline for another reason that the restaurant cannot override.

        - `IgnoredOrders` : The restaurant will go offline due to ignoring orders.'
      enum:
      - Unset
      - None
      - TempOffline
      - ClosedToday
      - ClosedDueToEvent
      - FailedJctConnection
      - NoTrOverride
      - IgnoredOrders
      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
    UserRole:
      description: '

        - `System` : Role for an automated process action.

        - `Operations` : Role for an operations user action.

        - `Restaurant` : Role for a restaurant owner/employee user action.'
      enum:
      - System
      - Operations
      - Restaurant
      type: string
  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