Just Eat Order Acceptance Webhooks API

The Order Acceptance Webhooks API from Just Eat — 5 operation(s) for order acceptance webhooks.

OpenAPI Specification

just-eat-order-acceptance-webhooks-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 Webhooks 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 Webhooks
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
  /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
  /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
  /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
  /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
components:
  schemas:
    order-rejected:
      example:
        Event: OrderRejected
        RejectedAt: '2018-03-10T14:45:28Z'
        RejectedBy: '123456'
        RejectedReason: Kitchen overloaded
      properties:
        Event:
          type: string
        RejectedAt:
          format: date-time
          type: string
        RejectedBy:
          type: string
        RejectedReason:
          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
    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: '2018-03-10T14:45:28Z'
          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: '2018-03-10T14:45:28Z'
        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
    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-accepted:
      example:
        AcceptedFor: '2018-03-10T14:45:28Z'
        Event: OrderAccepted
        OrderId: '123456'
      properties:
        AcceptedFor:
          format: date-time
          type: string
        Event:
          type: string
        OrderId:
          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
    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
  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