Deliverect Products API

Products operations for the Deliverect Channel API.

OpenAPI Specification

deliverect-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect Channel Accounts Products 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: kin@apievangelist.com
  license:
    name: All Rights Reserved
servers:
- url: https://api.deliverect.com
  description: Production
- url: https://api.staging.deliverect.com
  description: Staging
security:
- oauth2: []
tags:
- name: Products
  description: Products operations for the Deliverect Channel API.
paths:
  /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
                              properties:
                                plu:
                                  type: string
                                  example: PIE1
                                snoozeStart:
                                  type: string
                                  format: date-time
                                  example: '2020-03-24T16:21:54.955000Z'
                                snoozeEnd:
                                  type: string
                                  format: date-time
                                  example: '2020-03-24T22:21:54.955000Z'
                      allSnoozedItems:
                        type: array
                        items:
                          type: object
                          properties:
                            plu:
                              type: string
                              example: PIE1
                            snoozeStart:
                              type: string
                              format: date-time
                              example: '2020-03-24T16:21:54.955000Z'
                            snoozeEnd:
                              type: string
                              format: date-time
                              example: '2020-03-24T22:21:54.955000Z'
            examples:
              channel_snooze_request:
                summary: Default channel_snooze request
                x-microcks-default: true
                value:
                  accountId: 5b****71c6489f0029****d4
                  locationId: 5c****ecc6489f0001****b8
                  channelLinkId: 5e****abc11dec0001****9b
                  operations:
                  - action: snooze
                    data:
                      items:
                      - plu: PIE1
                        snoozeStart: '2020-03-24T16:21:54.955000Z'
                        snoozeEnd: '2020-03-24T22:21:54.955000Z'
                    allSnoozedItems:
                    - plu: PIE1
                      snoozeStart: '2020-03-24T16:21:54.955000Z'
                      snoozeEnd: '2020-03-24T22:21:54.955000Z'
                    - plu: MSB1
                      snoozeStart: '2020-03-24T16:21:54.955000Z'
                      snoozeEnd: '2020-03-24T22:21:54.955000Z'
      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:
      - Products
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /kds/productUpdate:
    post:
      description: Deliverect Kds_productupdate
      operationId: kds_productupdate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                kds_productupdate200Example:
                  summary: Default kds_productupdate 200 response
                  x-microcks-default: true
                  value: {}
      parameters:
      - in: header
        name: Content-Type
        schema:
          type: string
          default: application/json
        required: false
        description: application/json
        example: application/json
      - in: header
        name: Accept
        schema:
          type: string
          default: application/json
        description: application/json
        example: application/json
      - in: header
        name: User-Agent
        schema:
          type: string
          default: Deliverect/{version}
        description: Deliverect/{version}
        example: Deliverect/{version}
      - in: header
        name: X-Server-Authorization-HMAC-SHA256
        schema:
          type: string
          default: '{signature}'
        description: '{signature}'
        example: '{signature}'
      summary: Deliverect Kds_productupdate
      tags:
      - Products
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /syncProducts:
    get:
      summary: Deliverect Sync Products
      description: '*This is a GET webhook set by the POS'
      operationId: pos_syncproducts
      responses:
        '204':
          description: '204'
          content:
            application/json:
              examples:
                Result:
                  value: ' '
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"error\": \"Product Sync aborted: Too many products 17 would be deleted.\\nThis may affect your menus and is irreversible. If you still want to proceed, please use the \\\"Force Sync\\\" option.\"\n}"
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: 'Product Sync aborted: Too many products 17 would be deleted.

                      This may affect your menus and is irreversible. If you still want to proceed, please use the "Force Sync" option.'
      deprecated: false
      tags:
      - Products
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/locations/{locationId}/syncProducts:
    get:
      tags:
      - Products
      description: This endpoint initiates the product sync request for a specified location. When called, Deliverect will trigger a product sync from the connected POS system for the given location.
      operationId: get_v2_locations_locationid_syncproducts
      parameters:
      - in: path
        name: locationId
        schema:
          type: string
        required: true
        description: The unique identifier of the location to sync products for.
        example: 5cecc6489f0001b8
      - in: query
        name: forceUpdate
        schema:
          type: string
          default: 'true'
        description: When set to `true`, forces a full product sync even if products have not changed since the last sync.
        example: 'true'
      responses:
        '200':
          description: Product sync request initiated successfully.
          content:
            application/json:
              examples:
                OK:
                  summary: OK
                  value: {}
        '400':
          description: Bad Request — the sync request could not be processed. This may occur if the location ID is invalid or the location does not have a POS system configured.
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Bad Request:
                  summary: Bad Request
                  value: {}
      summary: Deliverect Get_v2_locations_locationid_syncproducts
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /productAndCategories:
    post:
      tags:
      - Products
      summary: Deliverect Insert/update Products and Categories
      description: 'Insert/update Products The ''Source of Truth'' in terms of product data and structure is almost always sourced from an integrated POS system. When a POS successfully syncs products with their unique identifiers (PLUs), these will be selected by the customer for inclusion in their menu(s). In turn, orders will be created with these same PLUs and injected into the POS '
      operationId: insertUpdateProductsAndCategories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - accountId
              - locationId
              - products
              - categories
              properties:
                accountId:
                  type: string
                  description: The customer account ID in Deliverect
                  example: 5b71c6489f00290d4
                locationId:
                  type: string
                  example: 5cecc6489f0001b8
                products:
                  type: array
                  items:
                    properties:
                      name:
                        type: string
                        example: Deliverect's Pizza Place
                      plu:
                        type: string
                        example: PIE1
                      price:
                        type: integer
                        format: int32
                        example: 1250
                      description:
                        type: string
                        example: No salad
                      productType:
                        type: integer
                        format: int32
                        example: 1
                      gtin:
                        type: array
                        description: GTIN (Global Trade Item Number) for product, which could be EAN code
                        default: []
                        items:
                          type: string
                          example: string
                      isVariant:
                        type: boolean
                        example: true
                      isCombo:
                        type: boolean
                        example: true
                      deliveryTax:
                        type: integer
                        format: int32
                        example: 1
                      takeawayTax:
                        type: integer
                        format: int32
                        example: 1
                      eatInTax:
                        type: integer
                        format: int32
                        example: 1
                      priceLevels:
                        type: object
                        properties:
                          TA:
                            type: integer
                            format: int32
                            example: 1
                          DL:
                            type: integer
                            format: int32
                            example: 1
                          UE:
                            type: integer
                            format: int32
                            example: 1
                      overloads:
                        type: array
                        items:
                          properties:
                            scopes:
                              type: array
                              default: []
                              items:
                                type: string
                                example: string
                            bundlePrice:
                              type: integer
                              format: int32
                              example: 1250
                            price:
                              type: integer
                              format: int32
                              example: 1250
                            name:
                              type: string
                              example: Deliverect's Pizza Place
                          type: object
                      posProductId:
                        type: string
                        example: 609a1b2c3d4e5f6a7b8c9d0e
                      posCategoryIds:
                        type: array
                        default: []
                        items:
                          type: string
                          example: string
                      imageUrl:
                        type: string
                        example: https://example.com/path/abc123
                      nameTranslations:
                        type: object
                        properties:
                          en:
                            type: string
                            example: string
                          es:
                            type: string
                            example: string
                          fr:
                            type: string
                            example: string
                          nl:
                            type: string
                            example: string
                          ar:
                            type: string
                            example: string
                          el:
                            type: string
                            example: string
                      productTags:
                        type: array
                        default: []
                        items:
                          type: integer
                          format: int32
                          example: 1
                      multiMax:
                        type: integer
                        description: sets the maximum quantity orderable of any one item in a group, can also set the maximum quantity of a product to be ordered in a basket
                        format: int32
                        example: 1
                      defaultQuantity:
                        type: integer
                        description: 'applicable to modifiers (productType: 2) to ''pre-select'' an option'
                        format: int32
                        example: 1
                      nutritionalInfo:
                        type: object
                        properties:
                          fat:
                            type: integer
                            format: int32
                            example: 1
                          protein:
                            type: integer
                            format: int32
                            example: 1
                          sugar:
                            type: integer
                            format: int32
                            example: 1
                          addedSugar:
                            type: integer
                            format: int32
                            example: 1
                          saturatedFat:
                            type: integer
                            format: int32
                            example: 1
                          carbohydrates:
                            type: integer
                            format: int32
                            example: 1
                          salt:
                            type: integer
                            format: int32
                            example: 1
                          transFat:
                            type: integer
                            format: int32
                            example: 1
                          monoUnsaturatedFat:
                            type: integer
                            format: int32
                            example: 1
                          polyUnsaturatedFat:
                            type: integer
                            format: int32
                            example: 1
                          cholesterol:
                            type: integer
                            format: int32
                            example: 1
                          starch:
                            type: integer
                            format: int32
                            example: 1
                          sodium:
                            type: integer
                            format: int32
                            example: 1
                          fiber:
                            type: integer
                            format: int32
                            example: 1
                          vitaminC:
                            type: integer
                            format: int32
                            example: 1
                          calcium:
                            type: integer
                            format: int32
                            example: 1
                          magnesium:
                            type: integer
                            format: int32
                            example: 1
                          chloride:
                            type: integer
                            format: int32
                            example: 1
                          fluoride:
                            type: integer
                            format: int32
                            example: 1
                          potassium:
                            type: integer
                            format: int32
                            example: 1
                          polyols:
                            type: integer
                            format: int32
                            example: 1
                          servingSize:
                            type: object
                            properties:
                              amount:
                                type: integer
                                format: int32
                                example: 1250
                              unitType:
                                type: integer
                                format: int32
                                example: 1
                              countUnitDescription:
                                type: string
                                example: No salad
                          netQuantity:
                            type: object
                            properties:
                              amount:
                                type: integer
                                format: int32
                                example: 1250
                              unitType:
                                type: integer
                                format: int32
                                example: 1
                              countUnitDescription:
                                type: string
                                example: No salad
                      supplementalInfo:
                        type: object
                        properties:
                          instructionsForUse:
                            type: string
                            example: string
                          ingredients:
                            type: array
                            items:
                              type: string
                              example: string
                          additives:
                            type: array
                            items:
                              type: string
                              example: string
                          prepackaged:
                            type: boolean
                            example: true
                          deposit:
                            type: integer
                            format: int32
                            example: 1
                      bottleDepositPrice:
                        type: integer
                        format: int32
                        example: 1250
                      visible:
                        type: boolean
                        example: true
                      subProducts:
                        type: array
                        default: []
                        items:
                          type: string
                          example: string
                      kitchenName:
                        type: string
                        description: An optional additional name for the product that will be sent through with the order
                        example: Deliverect's Pizza Place
                    required:
                    - name
                    - plu
                    - price
                    - productType
                    - deliveryTax
                    type: object
                categories:
                  type: array
                  items:
                    properties:
                      name:
                        type: string
                        default: Build your own Pizza
                        example: Build your own Pizza
                      posCategoryId:
                        type: string
                        default: PZ
                        example: PZ
                    type: object
                priceLevels:
                  type: array
                  items:
                    properties:
                      name:
                        type: string
                        default: Takeaway
                        example: Takeaway
                      posId:
                        type: string
                        default: TA
                        example: TA
                    type: object
              example:
                accountId: 6**f578fa205bc3eca854***
                locationId: 6**91e9273d6950b4b0a8***
                products:
                - productType: 1
                  plu: STK-01
                  price: 1500
                  name: Delicious Steak Frites
                  kitchenName: Steak
                  posProductId: POS-ID-001
                  posCategoryIds:
                  - STK
                  imageUrl: https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/steak-622862588c506f015be6018e.jpeg
                  description: Delicious Steak Frites
                  descriptionTranslations:
                    es: Deliciosos Bistecs Fritos
                    fr: Steak Frites Délicieux
                    nl: Heerlijke Biefstuk Frites
                    ar: شريحة لحم فريتس
                    el: Νοστιμη χοιρινή παντσέτα με πατάτες
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Delicious Steak Frites
                    es: Deliciosos Bistecs Fritos
                    fr: Steak Frites Délicieux
                    nl: Heerlijke Biefstuk Frites
                    ar: شريحة لحم فريتس
                    el: Νοστιμη χοιρινή παντσέτα με πατάτες
                  eatInTax: 9000
                  multiMax: 1
                  nutritionalInfo:
                    fat: 1
                    sugar: 4
                    saturatedFat: 1
                    carbohydrates: 1
                    protein: 1
                    salt: 1
                  subProducts:
                  - AUTO-01
                  - MOD-01
                  - MOD-02
                - productType: 3
                  plu: MOD-01
                  name: Cooking instructions
                  posProductId: POS-ID-009
                  posCategoryIds:
                  - POS-CAT-001
                  imageUrl: ''
                  description: Cooking Instructions
                  descriptionTranslations:
                    es: Cocinado
                    fr: Cuisson
                    nl: Kook instructies
                    ar: تعليمات الطبخ
                    el: Οδηγίες μαγειρέματος
                  deliveryTax: 6000
                  takeawayTax: 6000
                  nameTranslations:
                    en: Cooking Instructions
                    es: Cocinado
                    fr: Cuisson
                    nl: Kook instructies
                    ar: تعليمات الطبخ
                    el: Οδηγίες μαγειρέματος
                  min: 1
                  max: 1
                  subProducts:
                  - COOK-01
                  - COOK-02
                  - COOK-03
                - productType: 3
                  plu: MOD-02
                  name: Add a side
                  posProductId: POS-ID-014
                  posCategoryIds: INTERNAL-POS-CAT-2
                  imageUrl: https://www.stockvault.net/data/2009/07/20/109569/preview16.jpg
                  description: Pizza made for cheese fanatics
                  deliveryTax: 6000
                  takeawayTax: 6000
                  nameTranslations:
                    en: Choose a side
                    es: Elige tu acompañamiento
                    fr: Choisissez votre garniture
                    nl: Kies je bijgerecht
                    ar: اختر طبقك الجانبي
                    el: Διαλέξτε ακόμα
                  subProducts:
                  - SI-01
                  - SI-02
                  - SI-03
                  min: 0
                  max: 0
                  multiMax: 3
                - productType: 3
                  plu: AUTO-01
                  price: 900
                  name: Garnishes
                  posProductId: POS-ID-032
                  imageUrl: ''
                  description: ''
                  deliveryTax: 6000
                  takeawayTax: 6000
                  min: 0
                  max: 0
                  autoApply:
                  - plu: PR1
                  - plu: PR2
                  subProducts:
                  - PR1
                  - PR2
                - productType: 2
                  plu: PR1
                  price: 0
                  name: Parsley
                  posProductId: PA_POS-0023
                  posCategoryIds: ''
                  imageUrl: ''
                  description: ''
                  deliveryTax: 0
                  takeawayTax: 0
                  defaultQuantity: 3
                - productType: 2
                  plu: PR2
                  price: 0
                  name: Melted Butter
                  posProductId: PA_POS-0024
                  posCategoryIds: ''
                  imageUrl: ''
                  description: ''
                  deliveryTax: 0
                  takeawayTax: 0
                - productType: 2
                  plu: COOK-01
                  price: 0
                  name: Rare
                  posProductId: POS-ID-003
                  posCategoryIds:
                  - POS-CAT-001
                  imageUrl: ''
                  description: ''
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Rare
                    es: Poco hecho
                    fr: Saignant
                    nl: Rood
                    ar: غير ناضج جيدا
                    el: Ωμό
                - productType: 2
                  plu: COOK-02
                  price: 0
                  name: Medium Rare
                  posProductId: POS-ID-004
                  posCategoryIds: INTERNAL-POS-CAT-2
                  imageUrl: ''
                  description: ''
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Medium Rare
                    es: Al punto
                    fr: À point
                    nl: Half doorbakken
                    ar: مُتَوَسِّط النُضْجِ
                    el: Μισοψημένο
                - productType: 2
                  plu: COOK-03
                  price: 0
                  name: Well Done
                  posProductId: POS-ID-005
                  posCategoryIds: INTERNAL-POS-CAT-2
                  imageUrl: ''
                  description: ''
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Well done
                    es: Muy hecho
                    fr: Bien cuit
                    nl: Doorbakken
                    ar: مطبوخ جيدا
                    el: καλοψημένο
                - productType: 2
                  plu: SI-01
                  price: 0
                  name: Fries
                  posProductId: POS-ID-012
                  posCategoryIds:
                  - SD
                  imageUrl: ''
                  description: Fries
                  descriptionTranslations:
                    es: Patatas fritas
                    fr: Frites
                    nl: Frietjes
                    ar: بطاطس مقلية
                    ελ: Πατάτες
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Fries
                    es: Patatas fritas
                    fr: Frites
                    nl: Frietjes
                    ar: بطاطس مقلية
                    ελ: Πατάτες
                  eatInTax: 9000
                  defaultQuantity: 1
                - productType: 2
                  plu: SI-02
                  price: 200
                  name: Salad
                  kitchenName: ''
                  posProductId: POS-ID-013
                  posCategoryIds:
                  - SD
                  imageUrl: ''
                  description: Salad
                  descriptionTranslations:
                    es: Ensalada
                    fr: Salade
                    nl: Salade
                    ar: سلطة
                    ελ: Σαλάτα
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
                    en: Salad
                    es: Ensalada
                    fr: Salade
                    nl: Salade
                    ar: سلطة
                    ελ: Σαλάτα
                  eatInTax: 9000
                - productType: 2
                  plu: SI-03
                  price: 100
                  name: Mashed Potato
                  kitchenName: Mash
                  posProductId: POS-ID-014
                  posCategoryIds:
                  - SD
                  imageUrl: ''
                  description: Mashed Potato
                  descriptionTranslations:
                    es: Puré de patata
                    fr: Purée de pommes de terre
                    nl: Aardappelpuree
                    ar: البطاطا المهروسة
                    el: Πουρές πατάτας
                  deliveryTax: 9000
                  takeawayTax: 9000
                  nameTranslations:
              

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