Just Eat Order Acceptance API API

The Order Acceptance API API from Just Eat — 7 operation(s) for order acceptance api.

OpenAPI Specification

just-eat-order-acceptance-api-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 Order Acceptance API 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: Order Acceptance API
paths:
  /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
  /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
  /orders/{orderId}/complete:
    x-status: Draft
    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
  /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.

        '
      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
  /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
  /orders/{orderId}/readyforcollection:
    x-status: Draft
    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
  /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
components:
  schemas:
    order-accept-request:
      example:
        TimeAcceptedFor: '2018-03-10T14:45:28Z'
      properties:
        TimeAcceptedFor:
          format: date-time
          type: string
      type: object
    order-due-date-request:
      example:
        DueDate: '2019-12-25T14:45:28Z'
      properties:
        DueDate:
          description: The updated ETA for the order
          format: date-time
          type: string
      type: object
    order-reject-request:
      example:
        Message: Kitchen overloaded
      properties:
        Message:
          description: Reason why this order is being rejected.
          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
    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
    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
  responses:
    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
  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