Deliverect Channel API

Integrate ordering channels and marketplaces with Deliverect to create and cancel orders, sync menus, snooze products, update store and courier status, and exchange payment events. Authenticates with OAuth 2.0 machine-to-machine access tokens scoped via genericChannel.

OpenAPI Specification

deliverect-channel-api-openapi-original.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect Channel API
  description: Integrate ordering channels and marketplaces with Deliverect to create and cancel orders, sync menus, snooze products, update store and courier status, and exchange payment events. Authenticates
    with OAuth 2.0 machine-to-machine access tokens scoped via genericChannel.
  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: Orders
  description: Orders operations for the Deliverect Channel API.
- name: Menus
  description: Menus operations for the Deliverect Channel API.
- name: Products
  description: Products operations for the Deliverect Channel API.
- name: Store Status
  description: Store Status operations for the Deliverect Channel API.
- name: Couriers
  description: Couriers operations for the Deliverect Channel API.
- name: Registration
  description: Registration operations for the Deliverect Channel API.
- name: Payments
  description: Payments operations for the Deliverect Channel API.
- name: Opening Hours
  description: Opening Hours operations for the Deliverect Channel API.
- name: Channel Links
  description: Channel Links operations for the Deliverect Channel API.
- name: Accounts
  description: Accounts operations for the Deliverect Channel API.
paths:
  /{channelName}/order/{channelLinkId}:
    post:
      summary: Deliverect Create / Cancel Order
      description: Create a new order for a linked location.
      operationId: post_channelname_order_channellinkid
      parameters:
      - name: channelName
        in: path
        required: true
        schema:
          type: string
          default: '{channelName}'
        description: A unique scope provided to channel integrators to create orders in authorised locations
        example: '{channelName}'
      - name: channelLinkId
        in: path
        required: true
        schema:
          type: string
          default: '{channelLinkId}'
        description: The unique identifier of the channel in a specific location.
        example: '{channelLinkId}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                channelOrderId:
                  type: string
                  description: The full unique ID from the ordering channel.
                  example: 609a1b2c3d4e5f6a7b8c9d0e
                channelOrderDisplayId:
                  type: string
                  description: A humanly-readable order reference.
                  example: 609a1b2c3d4e5f6a7b8c9d0e
                validationId:
                  type: string
                  description: Validation ID returned from dispatch validation when used.
                  example: 609a1b2c3d4e5f6a7b8c9d0e
                orderType:
                  type: integer
                  description: Order type. Use 1 for pickup, 2 for delivery, 3 for eat-in, and 4 for curbside.
                  example: 1
                deliveryIsAsap:
                  type: boolean
                  example: true
                pickupTime:
                  type: string
                  example: '2026-03-15T14:30:00Z'
                deliveryTime:
                  type: string
                  example: '2026-03-15T14:30:00Z'
                placedTime:
                  type: string
                  example: '2026-03-15T14:30:00Z'
                courier:
                  type: string
                  description: Who delivers the order.
                  example: string
                ageCheck:
                  type: boolean
                  example: true
                deliveryAddress:
                  type: object
                  properties:
                    street:
                      type: string
                      example: string
                    streetNumber:
                      type: string
                      example: string
                    postalCode:
                      type: string
                      example: string
                    area:
                      type: string
                      example: string
                    city:
                      type: string
                      example: string
                    country:
                      type: string
                      example: BE
                    extraAddressInfo:
                      type: string
                      example: string
                    coordinates:
                      type: object
                      properties:
                        latitude:
                          type: number
                          format: float
                          example: 1.0
                        longitude:
                          type: number
                          format: float
                          example: 1.0
                    verification:
                      type: object
                      properties:
                        pincode:
                          type: string
                          example: string
                deliveryInfo:
                  type: object
                  properties:
                    packageSize:
                      type: string
                      example: string
                    transportType:
                      type: string
                      example: string
                decimalDigits:
                  type: integer
                  example: 1
                payment:
                  type: object
                  properties:
                    amount:
                      type: integer
                      example: 1250
                    type:
                      type: integer
                      example: 1
                    due:
                      type: integer
                      example: 1
                  required:
                  - amount
                  - type
                taxes:
                  type: array
                  items:
                    type: object
                    properties:
                      taxClassId:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: Deliverect's Pizza Place
                      total:
                        type: integer
                        example: 1250
                taxRemitted:
                  type: integer
                  example: 1
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      plu:
                        type: string
                        example: PIE1
                      name:
                        type: string
                        example: Deliverect's Pizza Place
                      price:
                        type: integer
                        example: 1250
                      quantity:
                        type: integer
                        example: 1
                      remark:
                        type: string
                        example: No salad
                      discountReferenceIds:
                        type: array
                        items:
                          type: integer
                          example: 1
                      subItems:
                        type: array
                        items:
                          type: object
                          properties:
                            plu:
                              type: string
                              example: PIE1
                            name:
                              type: string
                              example: Deliverect's Pizza Place
                            price:
                              type: integer
                              example: 1250
                            quantity:
                              type: integer
                              example: 1
                            remark:
                              type: string
                              example: No salad
                            subItems:
                              type: array
                              items:
                                type: object
                                properties:
                                  plu:
                                    type: string
                                    example: PIE1
                                  name:
                                    type: string
                                    example: Deliverect's Pizza Place
                                  price:
                                    type: integer
                                    example: 1250
                                  quantity:
                                    type: integer
                                    example: 1
                                  remark:
                                    type: string
                                    example: No salad
                                  subItems:
                                    type: array
                                    items:
                                      type: object
                includeCutlery:
                  type: boolean
                  example: true
                table:
                  type: string
                  example: string
                orderIsAlreadyPaid:
                  type: boolean
                  example: true
                note:
                  type: string
                  example: No salad
                numberOfCustomers:
                  type: integer
                  example: 1
                customer:
                  type: object
                  properties:
                    name:
                      type: string
                      example: Deliverect's Pizza Place
                    companyName:
                      type: string
                      example: Deliverect's Pizza Place
                    phoneNumber:
                      type: string
                      example: '+15555550123'
                    phoneAccessCode:
                      type: string
                      example: '+15555550123'
                    email:
                      type: string
                      example: [email protected]
                    tin:
                      type: string
                      example: string
                    note:
                      type: string
                      example: No salad
                deliveryCost:
                  type: integer
                  example: 1250
                deliveryCostTax:
                  type: integer
                  example: 1250
                serviceCharge:
                  type: integer
                  example: 1
                serviceChargeTax:
                  type: integer
                  example: 1
                tip:
                  type: integer
                  example: 1250
                driverTip:
                  type: integer
                  example: 1250
                bagFee:
                  type: integer
                  example: 1250
                discountTotal:
                  type: integer
                  example: 1250
                discounts:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        example: string
                      provider:
                        type: string
                        example: string
                      name:
                        type: string
                        example: Deliverect's Pizza Place
                      channelDiscountCode:
                        type: string
                        example: string
                      referenceId:
                        type: integer
                        example: 1
                      value:
                        type: integer
                        example: 1
                      amount:
                        type: integer
                        example: 1250
              required:
              - channelOrderId
              - channelOrderDisplayId
              - orderType
              - courier
              - payment
            examples:
              Create Order (Tax exclusive):
                summary: Create Order (Tax exclusive)
                value:
                  channelOrderId: TEST****629
                  channelOrderDisplayId: T**629
                  validationId: 62********************3x
                  orderType: 1
                  deliveryIsAsap: true
                  pickupTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  deliveryTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  placedTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  courier: restaurant
                  ageCheck: false
                  deliveryAddress:
                    street: Adelaide Street East
                    streetNumber: '207'
                    postalCode: M5A1N4
                    area: Distillery District
                    city: Toronto
                    country: Canada
                    extraAddressInfo: 1st floor
                    coordinates:
                      latitude: 43.65152
                      longitude: -79.37128
                    verification:
                      pincode: ''
                  deliveryInfo:
                    packageSize: small
                    transportType: bicycle
                  decimalDigits: 2
                  payment:
                    amount: 1800
                    type: 0
                    due: 0
                  taxes:
                  - taxClassId: 0
                    name: taxes
                    total: 77
                  taxRemitted: 77
                  items:
                  - plu: P-SATE
                    name: Chicken Sate
                    price: 450
                    quantity: 1
                    remark: well done
                    discountReferenceIds:
                    - 1
                    subItems:
                    - plu: RICE-01
                      name: White Rice
                      price: 450
                      quantity: 1
                      subItems:
                      - plu: SAUCE-01
                        name: Sate Sauce
                        price: 50
                        quantity: 2
                        subItems: []
                  includeCutlery: false
                  table: ''
                  orderIsAlreadyPaid: true
                  note: ''
                  numberOfCustomers: 1
                  customer:
                    name: Jane
                    companyName: Doe
                    phoneNumber: 0618776767
                    phoneAccessCode: '5040'
                    email: [email protected]
                    tin: '1234'
                    note: call once you arrive
                  deliveryCost: 300
                  deliveryCostTax: 0
                  serviceCharge: 400
                  serviceChargeTax: 0
                  tip: 200
                  driverTip: 0
                  bagFee: 0
                  discountTotal: -100
                  discounts:
                  - type: order_flat_off
                    provider: channel
                    name: Test discount
                    channelDiscountCode: test 1234
                    referenceId: 1
                    value: 100
                    amount: 100
              Create Order (Tax inclusive):
                summary: Create Order (Tax inclusive)
                value:
                  channelOrderId: TEST****628
                  channelOrderDisplayId: T**628
                  validationId: 62********************3w
                  orderType: 1
                  deliveryIsAsap: true
                  pickupTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  deliveryTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  placedTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  courier: restaurant
                  ageCheck: false
                  deliveryAddress:
                    street: Folgate Street
                    streetNumber: '35'
                    postalCode: E1 6BX
                    area: Spitalfields
                    city: London
                    country: United Kingdom
                    extraAddressInfo: Ground Floor, near Spitalfields Market
                    coordinates:
                      latitude: 51.51942
                      longitude: -0.07771
                    verification:
                      pincode: '1234'
                  deliveryInfo:
                    packageSize: small
                    transportType: bicycle
                  decimalDigits: 2
                  payment:
                    amount: 1800
                    type: 0
                    due: 0
                  taxes: []
                  taxRemitted: 0
                  items:
                  - plu: P-SATE
                    name: Chicken Sate
                    price: 450
                    quantity: 1
                    remark: well done
                    discountReferenceIds:
                    - 1
                    subItems:
                    - plu: RICE-01
                      name: White Rice
                      price: 450
                      quantity: 1
                      subItems:
                      - plu: SAUCE-01
                        name: Sate Sauce
                        price: 50
                        quantity: 2
                        subItems: []
                  includeCutlery: false
                  table: ''
                  orderIsAlreadyPaid: true
                  note: ''
                  numberOfCustomers: 1
                  customer:
                    name: John
                    companyName: Doe
                    phoneNumber: 0618776767
                    phoneAccessCode: '2105'
                    email: [email protected]
                    tin: '1234'
                    note: call once you arrive
                  deliveryCost: 300
                  deliveryCostTax: 0
                  serviceCharge: 400
                  serviceChargeTax: 0
                  tip: 200
                  driverTip: 0
                  bagFee: 0
                  discountTotal: -100
                  discounts:
                  - type: order_flat_off
                    provider: channel
                    name: Test discount
                    channelDiscountCode: test 1234
                    referenceId: 1
                    value: 100
                    amount: 100
              Cancel Order:
                summary: Cancel Order
                value:
                  channelOrderId: '{{channelOrderId}}'
                  channelOrderDisplayId: '{{channelOrderDisplayId}}'
                  cancellationReason: CANCELLATION
                  status: 100
      responses:
        '200':
          description: Successful response
        '201':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Created:
                  summary: Created
                  value: '{}'
          description: Created
        '400':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Bad Request:
                  summary: Bad Request
                  value:
                    orderFieldsErrors:
                      channelOrderId: Missing from the payload.
                      channelOrderDisplayId: Missing from the payload.
                      items: Missing from the payload.
                      decimalDigits: Missing from the payload.
                    orderPaymentErrors:
                      amount: Missing from the payload.
                      type: Missing from the payload.
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Unauthorized:
                  summary: Unauthorized
                  value:
                    code: token_expired
                    description: token is expired
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Not Found:
                  summary: Not Found
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Internal Server Error:
                  summary: Internal Server Error
                  value:
                    error:
                      code: internal_server_error
                      message: Internal server error
          description: Internal Server Error
      tags:
      - Orders
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /channel/order_status:
    post:
      summary: Deliverect Order Status Update
      description: Deliverect Order Status Update
      operationId: channel_order_status
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Orders
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /channel/menu_update/:
    post:
      summary: Deliverect Menu Update
      description: Customers will publish their menu to a provided webhook URL. This delivers JSON containing all the necessary attributes to display their menu as intended
      operationId: channel_menu_update
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
            examples:
              Menu Example:
                summary: Menu Example
                value:
                  availabilities:
                  - dayOfWeek: 1
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 2
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 3
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 4
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 5
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 6
                    endTime: '17:00'
                    startTime: 09:00
                  - dayOfWeek: 6
                    endTime: '22:00'
                    startTime: '19:00'
                  - dayOfWeek: 7
                    endTime: '17:00'
                    startTime: 09:00
                  bundles: {}
                  categories:
                  - _id: 65********************87
                    name: Steaks
                    description: ''
                    descriptionTranslations: {}
                    nameTranslations: {}
                    account: 62********************f1
                    posLocationId: ''
                    posCategoryType: ''
                    posCategoryId: ''
                    imageUrl: ''
                    subCategories: []
                    products: []
                    availabilities: []
                    level: 1
                    menu: 65********************79
                    sortedChannelProductIds: []
                    subProducts:
                    - 65********************30
                    subProductSortOrder: []
                  channelLinkId: 65********************7f
                  currency: 3
                  description: ''
                  descriptionTranslations:
                    fr: Un exemple de menu de diffu00e9rentes configurations de produits, profitez-enu00a0!
                  menu: Example Menu
                  menuId: 65********************79
                  menuImageURL: ''
                  menuType: 0
                  modifierGroups:
                    65********************31:
                      _id: 65********************31
                      name: Cooking instructions
                      description: ''
                      descriptionTranslations: {}
                      nameTranslations:
                        es: Cocinado
                        fr: Cuisson
                      account: 62********************f1
                      capacityUsages: []
                      deliveryTax: 9000
                      eatInTax: 9000
                      takeawayTax: 9000
                      location: 65********************32
                      max: 1
                      min: 1
                      multiply: 1
                      plu: MOD-01
                      posCategoryIds: []
                      posProductCategoryId: ''
                      posProductId: ''
                      productTags: []
                      productType: 3
                      subProducts:
                      - 65********************32
                      - 65********************33
                      parentId: 65********************30
                      snoozed: false
                      subProductSortOrder: []
                  modifiers:
                    65********************32:
                      _id: 65********************32
                      name: Rare
                      description: ''
                      descriptionTranslations: {}
                      nameTranslations:
                        es: Poco hecho
                        fr: Saignant
                      account: 62********************f1
                      capacityUsages: []
                      deliveryTax: 9000
                      eatInTax: 9000
                      takeawayTax: 9000
                      location: 65********************32
                      max: 0
                      min: 0
                      multiply: 1
                      plu: COOK-01
                      posCategoryIds: []
                      posProductCategoryId: ''
                      posProductId: ''
                      price: 0
                      productTags: []
                      productType: 2
                      subProducts: []
                      parentId: 65********************31
                      snoozed: false
                      subProductSortOrder: []
                    65********************34:
                      _id: 65********************34
                      name: Well Done
                      description: ''
                      descriptionTranslations: {}
                      nameTranslations:
                        es: Muy hecho
                        fr: Bien cuit
                      account: 62********************f1
                      capacityUsages: []
                      deliveryTax: 9000
                      eatInTax: 9000
                      takeawayTax: 9000
                      location: 65********************32
                      max: 0
                      min: 0
                      multiply: 1
                      plu: COOK-03
                      posCategoryIds: []
                      posProductCategoryId: ''
                      posProductId: ''
                      price: 0
                      productTags: []
                      productType: 2
                      subProducts: []
                      parentId: 65********************31
                      snoozed: false
                      subProductSortOrder: []
                  menuTranslations:
                    fr: Exemple de Menu
                  nestedModifiers: true
                  products:
                    65********************30:
                      _id: 65********************30
                      name: Delicious Steak and Frites ud83dude0b
                      description: ''
                      descriptionTranslations:
                        fr: Exemple de produit de base avec - groupes de modificateurs - variables min/max - su00e9lection par du00e9faut - traductions
                      nameTranslations:
                        es: Deliciosos Bistecs Fritos
                        fr: Steak Frites Du00e9licieux
                      account: 62********************f1
                      capacityUsages: []
                      deliveryTax: 9000
                      eatInTax: 9000
                      takeawayTax: 9000
                      imageUrl: ''
                      location: 65********************32
                      max: 0
                      min: 0
                      multiply: 1
                      plu: STK-01
                      posCategoryIds: []
                      posProductCategoryId: ''
                      posProductId: ''
                      price: 1500
                      productTags: []
                      productType: 1
                      subProducts:
                      - 65********************31
                      - 65********************35
                      parentId: 65********************87
                      snoozed: false
                      subProductSortOrder: []
                      referenceId: STK-01
                  productTags:
                  - 104
                  - 108
                  snoozedProducts: {}
                  validations: []
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Menus
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /channel/snooze:
    post:
      summary: Deliverect Snooze / Unsnooze Products
      description: Webhook events will be sent when items are snoozed or unsnoozed
      operationId: channel_snooze
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accountId:
                  type: string
                  example: 5b****71c6489f0029****d4
                locationId:
                  type: string
                  example: 5c****ecc6489f0001****b8
                channelLinkId:
                  type: string
                  example: 5e****abc11dec0001****9b
                operations:
                  type: array
                  items:
                    type: object
                    properties:
                      action:
                        type: string
                        example: snooze
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              propert

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