Deliverect Commerce API

Power digital ordering, click-and-collect, and kiosk experiences with store details, menu data, basket creation, validation, discounts, and a checkout flow that injects orders to the POS. Authenticates with OAuth 2.0 machine-to-machine access tokens using the genericCommerce scope.

OpenAPI Specification

deliverect-commerce-api-openapi-original.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect Commerce API
  description: Power digital ordering, click-and-collect, and kiosk experiences with store details, menu data, basket creation, validation, discounts, and a checkout flow that injects orders to the POS.
    Authenticates with OAuth 2.0 machine-to-machine access tokens scoped via genericCommerce.
  version: '1.0'
  x-generated-from: documentation
  x-source-url: https://developers.deliverect.com/reference
  x-last-validated: '2026-06-02'
  contact:
    name: Kin Lane
    email: [email protected]
  license:
    name: All Rights Reserved
servers:
- url: https://api.deliverect.com
  description: Production
- url: https://api.staging.deliverect.com
  description: Staging
tags:
- name: Baskets
  description: Baskets operations for the Deliverect Commerce API.
- name: Stores
  description: Stores operations for the Deliverect Commerce API.
- name: Menus
  description: Menus operations for the Deliverect Commerce API.
- name: Checkout
  description: Checkout operations for the Deliverect Commerce API.
- name: Coupons
  description: Coupons operations for the Deliverect Commerce API.
- name: Upsell
  description: Upsell operations for the Deliverect Commerce API.
paths:
  /commerce/{accountId}/baskets/recreate:
    post:
      description: Deliverect Recreate Basket
      responses:
        '200':
          description: ''
          content:
            application/json:
              examples:
                OK:
                  summary: OK
                  value:
                    id: 65********************e2
                    channel: 20000
                    category:
                      type: restaurant
                    currency: USD
                    taxExclusive: true
                    status: open
                    items:
                    - id: 65********************27
                      menuId: 64********************7b
                      plu: QS-01
                      name: Classic Quesadilla + Drink
                      note: as much cheese as possible!
                      quantity: 1
                      price: 529
                      gross: 698
                      taxes:
                      - rate: 7000
                        name: GST
                        amount: 49
                      net: 747
                      subItems:
                      - customizationPlu: MOD-01
                        plu: DRNK-01
                        name: Coca Cola
                        quantity: 1
                        price: 169
                        note: Extra cold please
                        subItems: []
                      discounts: []
                      discountTotal: 0
                    - id: 691327c5d367f4588f9482fb
                      menuId: 6902550da160cca419af2469
                      plu: '645611577'
                      name: Chocolate Chip Cookie
                      quantity: 2
                      price: 159
                      gross: 318
                      taxes: []
                      net: 318
                      subItems: []
                      discounts: []
                      discountTotal: 0
                      note: In seperate bag please
                    payment:
                      tips: []
                      discountsTotal: 0
                      chargesTotal: 0
                      taxTotal: 56
                      tipTotal: 0
                      subTotal: 1016
                      total: 1065
                    customer:
                      name: John Doe
                      companyName: ACME
                      phoneNumber: '+3211223344'
                      email: [email protected]
                      externalId: crm-id-1234
                      tin: '123456789'
                    fulfillment:
                      type: pickup
                      time: null
                    taxes:
                    - name: SALES_TAX
                      amount: 49
                    discounts: []
                    charges:
                      serviceCharge:
                        value: 0
                        taxRate: 0
                        gross: 0
                        tax: 0
                        net: 0
                        type: fixed
                      bagFee:
                        value: 0
                        taxRate: 0
                        gross: 0
                        tax: 0
                        net: 0
                      deliveryFee:
                        value: 0
                        taxRate: 0
                        gross: 0
                        tax: 0
                        net: 0
                      taxTotal: 0
                      netTotal: 0
                      grossTotal: 0
                    created: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    updated: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    deleted: false
                    etag: f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf
                    accountId: 66********************d1
                    storeId: 67********************a8
                    channelLinkId: 67********************a8
                    channelOrderId: null
                    channelOrderDisplayId: null
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 65********************e2
                  channel:
                    type: integer
                    example: 20000
                    default: 0
                  category:
                    type: object
                    properties:
                      type:
                        type: string
                        example: restaurant
                  currency:
                    type: string
                    example: USD
                  taxExclusive:
                    type: boolean
                    example: true
                    default: true
                  status:
                    type: string
                    example: open
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 65********************27
                        menuId:
                          type: string
                          example: 64********************7b
                        plu:
                          type: string
                          example: QS-01
                        name:
                          type: string
                          example: Classic Quesadilla + Drink
                        note:
                          type: string
                          example: as much cheese as possible!
                        quantity:
                          type: integer
                          example: 1
                          default: 0
                        price:
                          type: integer
                          example: 529
                          default: 0
                        gross:
                          type: integer
                          example: 698
                          default: 0
                        taxes:
                          type: array
                          items:
                            type: object
                            properties:
                              rate:
                                type: integer
                                example: 7000
                                default: 0
                              name:
                                type: string
                                example: GST
                              amount:
                                type: integer
                                example: 49
                                default: 0
                        net:
                          type: integer
                          example: 747
                          default: 0
                        subItems:
                          type: array
                          items:
                            type: object
                            properties:
                              customizationPlu:
                                type: string
                                example: MOD-01
                              plu:
                                type: string
                                example: DRNK-01
                              name:
                                type: string
                                example: Coca Cola
                              quantity:
                                type: integer
                                example: 1
                                default: 0
                              price:
                                type: integer
                                example: 169
                                default: 0
                              note:
                                type: string
                                example: Extra cold please
                              subItems:
                                type: array
                                items:
                                  type: object
                                  properties: {}
                        discounts:
                          type: array
                          items:
                            type: object
                            properties: {}
                        discountTotal:
                          type: integer
                          example: 0
                          default: 0
                  payment:
                    type: object
                    properties:
                      tips:
                        type: array
                        items:
                          type: object
                          properties: {}
                      discountsTotal:
                        type: integer
                        example: 0
                        default: 0
                      chargesTotal:
                        type: integer
                        example: 0
                        default: 0
                      taxTotal:
                        type: integer
                        example: 56
                        default: 0
                      tipTotal:
                        type: integer
                        example: 0
                        default: 0
                      subTotal:
                        type: integer
                        example: 1016
                        default: 0
                      total:
                        type: integer
                        example: 1065
                        default: 0
                  customer:
                    type: object
                    properties:
                      name:
                        type: string
                        example: John Doe
                      companyName:
                        type: string
                        example: ACME
                      phoneNumber:
                        type: string
                        example: '+3211223344'
                      email:
                        type: string
                        example: [email protected]
                      externalId:
                        type: string
                        example: crm-id-1234
                      tin:
                        type: string
                        example: '123456789'
                  fulfillment:
                    type: object
                    properties:
                      type:
                        type: string
                        example: pickup
                      time: {}
                  taxes:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: SALES_TAX
                        amount:
                          type: integer
                          example: 49
                          default: 0
                  discounts:
                    type: array
                    items:
                      type: object
                      properties: {}
                  charges:
                    type: object
                    properties:
                      serviceCharge:
                        type: object
                        properties:
                          value:
                            type: integer
                            example: 0
                            default: 0
                          taxRate:
                            type: integer
                            example: 0
                            default: 0
                          gross:
                            type: integer
                            example: 0
                            default: 0
                          tax:
                            type: integer
                            example: 0
                            default: 0
                          net:
                            type: integer
                            example: 0
                            default: 0
                          type:
                            type: string
                            example: fixed
                      bagFee:
                        type: object
                        properties:
                          value:
                            type: integer
                            example: 0
                            default: 0
                          taxRate:
                            type: integer
                            example: 0
                            default: 0
                          gross:
                            type: integer
                            example: 0
                            default: 0
                          tax:
                            type: integer
                            example: 0
                            default: 0
                          net:
                            type: integer
                            example: 0
                            default: 0
                      deliveryFee:
                        type: object
                        properties:
                          value:
                            type: integer
                            example: 0
                            default: 0
                          taxRate:
                            type: integer
                            example: 0
                            default: 0
                          gross:
                            type: integer
                            example: 0
                            default: 0
                          tax:
                            type: integer
                            example: 0
                            default: 0
                          net:
                            type: integer
                            example: 0
                            default: 0
                      taxTotal:
                        type: integer
                        example: 0
                        default: 0
                      netTotal:
                        type: integer
                        example: 0
                        default: 0
                      grossTotal:
                        type: integer
                        example: 0
                        default: 0
                  created:
                    type: string
                    example: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  updated:
                    type: string
                    example: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  deleted:
                    type: boolean
                    example: false
                    default: true
                  etag:
                    type: string
                    example: f4c8f20eeb23206c2bc8cf66c2843a6efaa3eaaf
                  accountId:
                    type: string
                    example: 66********************d1
                  storeId:
                    type: string
                    example: 67********************a8
                  channelLinkId:
                    type: string
                    example: 67********************a8
                  channelOrderId: {}
                  channelOrderDisplayId: {}
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: product_snoozed
                  message:
                    type: string
                    example: Product is currently snoozed
                  context:
                    type: object
                    properties:
                      menuId:
                        type: string
                        example: 63********************b5
                      plu:
                        type: string
                        example: '123'
              examples:
                Unprocessable Entity:
                  summary: Unprocessable Entity
                  value:
                    code: product_snoozed
                    message: Product is currently snoozed
                    context:
                      menuId: 63********************b5
                      plu: '123'
          description: Unprocessable Entity
      parameters:
      - in: path
        name: accountId
        schema:
          type: string
        required: true
        description: The accountId value.
        example: 5b71c6489f00290d4
      operationId: post_commerce_accountid_baskets_recreate
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                storeId:
                  type: string
                  example: 609a1b2c3d4e5f6a7b8c9d0e
                orderId:
                  type: string
                  example: 609a1b2c3d4e5f6a7b8c9d0e
              required:
              - storeId
              - orderId
            examples:
              post_commerce_accountid_baskets_recreateRequest:
                summary: Default post_commerce_accountid_baskets_recreate request
                x-microcks-default: true
                value:
                  storeId: 609a1b2c3d4e5f6a7b8c9d0e
                  orderId: 609a1b2c3d4e5f6a7b8c9d0e
      summary: Deliverect Recreate Basket
      tags:
      - Baskets
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /commerce/{accountId}/stores/{channelLinkId}:
    get:
      tags:
      - Stores
      summary: Deliverect Get Store
      description: A store represents a unique ordering experience from a specific location.
      operationId: commerce_channel_api_stores_get_store
      parameters:
      - name: accountId
        in: path
        schema:
          type: string
          default: 668e4aa170efd23c474b2ad1
        required: true
        description: The accountId value.
        example: 668e4aa170efd23c474b2ad1
      - in: path
        name: channelLinkId
        schema:
          type: string
        required: true
        description: The channelLinkId value.
        example: 5e8abc11dec0001a009b
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    id: 65eee6a9984a1bc1b9637c59
                    channelLinkId: 65eee6a9984a1bc1b9637c59
                    name: Store Name
                    currency: EUR
                    address:
                      source: 1 Main street D13 R2P6 Ghent VOV
                      coordinates:
                      - 3.73398891371018
                      - 51.0311233802278
                      country: BE
                      city: Ghent
                      stateOrProvince: VOV
                    openingHours:
                      timezone: Europe/Brussels
                      dayTimeRanges:
                      - dayOfWeek: 1
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 2
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 3
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 4
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 5
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 6
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      - dayOfWeek: 7
                        startTime: 00:00:00
                        endTime: '23:59:00'
                      scheduling:
                        acceptsAsapOrders: false
                        acceptsPreOrders: false
                        acceptsSameDayPreOrders: false
                        minimumLeadTimeInMinutes: 30
                        maximumDaysInAdvance: 30
                        slotLengthInMinutes: 30
                    distance: 1235
                    taxExclusive: false
                    contact:
                      firstName: John
                      lastName: Doe
                      phoneNumber: '+32411111111'
                      email: [email protected]
                    fulfillmentTypes:
                    - pickup
                    - delivery
                    - eatIn
                    status: open
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 65eee6a9984a1bc1b9637c59
                  name:
                    type: string
                    example: Store Name
                  currency:
                    type: string
                    example: EUR
                  address:
                    type: object
                    properties:
                      source:
                        type: string
                        example: 1 Main street D13 R2P6 Ghent VOV
                      coordinates:
                        type: array
                        items:
                          type: number
                          example: 3.73398891371018
                          default: 0
                      country:
                        type: string
                        example: BE
                      city:
                        type: string
                        example: Ghent
                      stateOrProvince:
                        type: string
                        example: VOV
                  openingHours:
                    type: object
                    properties:
                      timezone:
                        type: string
                        example: Europe/Brussels
                      dayTimeRanges:
                        type: array
                        items:
                          type: object
                          properties:
                            dayOfWeek:
                              type: integer
                              example: 1
                              default: 0
                            startTime:
                              type: string
                              example: 00:00:00
                            endTime:
                              type: string
                              example: '23:59:00'
                  distance:
                    type: integer
                    example: 1235
                    default: 0
                  taxExclusive:
                    type: boolean
                    example: false
                    default: true
                  contact:
                    type: object
                    properties:
                      firstName:
                        type: string
                        example: John
                      lastName:
                        type: string
                        example: Doe
                      phoneNumber:
                        type: string
                        example: '+32411111111'
                      email:
                        type: string
                        example: [email protected]
                  fulfillmentTypes:
                    type: array
                    items:
                      type: string
                      example: pickup
                  status:
                    type: string
                    example: open
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /commerce/{accountId}/menus:
    get:
      tags:
      - Menus
      summary: Deliverect Get Root Menu(s)
      description: This endpoint returns a list of menus associated with the account's master location. These menus are store agnostic and typically hold enough data to display as first entry experience.
      operationId: commerce_channel_api_menus_get_root_menus
      parameters:
      - name: accountId
        in: path
        schema:
          type: string
        required: true
        description: The accountId value.
        example: 5b71c6489f00290d4
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                  - menu: Burger Menu
                    menuId: 64c27a89c6352cd55814580c
                    menuType: 0
                    nestedModifiers: false
                    description: Description
                    menuImageUrl: null
                    currency: 1
                    menuTranslations:
                      en: ''
                    productTags:
                    - 116
                    - 16
                    - 6
                    - 115
                    - 1
                    - 35
                    - 101
                    - 104
                    descriptionTranslations:
                      en: ''
                    categories:
                    - id: 64c27a9513128b833aaec96e
                      name: Pizza
                      description: ''
                      imageUrl: null
                      menu: 64c27a89c6352cd55814580c
                      account: 64872839172e0e6d2cedaa48
                      nameTranslations: {}
                      descriptionTranslations: {}
                      subProducts:
                      - 648acd52c5bf7503468da6c7
                      - 648acc5c2d5016b2ecce3188
                      - 649abe754ea4f0e242ddb755
                    - id: 65c130c6ec28c6821bcf80ab
                      name: Drinks
                      description: ''
                      imageUrl: null
                      menu: 64c27a89c6352cd55814580c
                      account: 64872839172e0e6d2cedaa48
                      nameTranslations: {}
                      descriptionTranslations: {}
                      subProducts:
                      - 64d4c407554b010187f74830
                    - id: 65c130daec28c6821bcf80e0
                      name: Burgers
                      description: ''
                      imageUrl: null
                      menu: 64c27a89c6352cd55814580c
                      account: 64872839172e0e6d2cedaa48
                      nameTranslations: {}
                      descriptionTranslations: {}
                      subProducts:
                      - 65c1304eec28c6821bcf73e7
                    - id: 65c131b0dc12e93ea9081a9a
                      name: Extra
                      description: ''
                      imageUrl: null
                      menu: 64c27a89c6352cd55814580c
                      account: 64872839172e0e6d2cedaa48
                      nameTranslations: {}
                      descriptionTranslations: {}
                      subProducts:
                      - 65c1308edc12e93ea907f49a
                    products:
                      648acd52c5bf7503468da6c7:
                        id: 648acd52c5bf7503468da6c7
                        plu: P-MA-sViS-2
                        name: Margherita
                        productType: 1
                        max: 0
                        min: 0
                        multiply: 1
                        description: Margherita Pizza
                        defaultQuantity: null
                        isVariant: null
                        account: 64872839172e0e6d2cedaa48
                        referenceId: P-MA-sViS-2
                        calories: null
                        caloriesRangeHigh: null
                        nameTranslations: {}
                        descriptionTranslations: {}
                        productTags:
                        - 116
                        subProducts:
                        - 648c251ebb2163a8cebc1137
                        beverageInfo: null
                        nutritionalInfo: null
                        packaging: null
                        supplementalInfo: null
                        subProductSortOrder: []
                      648acc5c2d5016b2ecce3188:
                        id: 648acc5c2d5016b2ecce3188
                        plu: P-PE-xmku-2
                        name: Pepperoni
                        productType: 1
                        max: 0
                        min: 0
                        multiply: 1
                        description: Pepperoni Pizza
                        defaultQuantity: null
                        isVariant: null
                        account: 64872839172e0e6d2cedaa48
                        referenceId: P-PE-xmku-2
                        calories: null
                        caloriesRangeHigh: null
                        nameTranslations: {}
                        descriptionTranslations: {}
                        productTags:
                        - 16
                        - 6
                        - 115
                        subProducts: []
                        beverageInfo: null
                        nutritionalInfo: null
                        packaging: null
                        supplementalInfo: null
                        subProductSortOrder: []
                      649abe754ea4f0e242ddb755:
                        id: 649abe754ea4f0e242ddb755
                        plu: P-ME-72C1-2
                        name: Pizza Meal Option 1
                        productType: 1
                        max: 0
                        min: 0
                        multiply: 1
                        description: ''
                        defaultQuantity: null
                        isVariant: null
                        account: 64872839172e0e6d2cedaa48
                        referenceId: P-ME-72C1-2
                        calories: null
                        caloriesRangeHigh: null
                        nameTranslations: {}
                        descriptionTranslations: {}
                        productTags: []
                        subProducts:
                        - 649abede949cfa36470e3326
                        - 649abefeb99c55cfcbf181c6
                        beverageInfo: null
                        nutritionalInfo: null
                        packaging: null
                        supplementalInfo: null
                        subProductSortOrder: []
                      64d4c407554b010187f74830:
                        id: 64d4c407554b010187f74830
                        plu: VAR-3
                        name: Coke
                        productType: 1
                        max: 0
                        min: 0
                        multiply: 1
                        description: ''
                        defaultQuantity: null
                        isVariant: null
                        account: 64872839172e0e6d2cedaa48
                        referenceId: VAR-3
                        calori

# --- truncated at 32 KB (276 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deliverect/refs/heads/main/openapi/deliverect-commerce-api-openapi-original.yml