Deliverect POS API

Connect point-of-sale systems to Deliverect to receive and manage orders and catalogues, sync products, manage inventory, and push order status updates across delivery and ordering channels. Uses OAuth 2.0 machine-to-machine access tokens with the genericPOS scope. A generated OpenAPI specification is available.

OpenAPI Specification

deliverect-pos-api-openapi-original.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect POS API
  description: Connect point-of-sale systems to Deliverect to receive orders, sync products and catalogues, manage inventory, and push order status updates across delivery and ordering channels. Authenticates
    with OAuth 2.0 machine-to-machine access tokens scoped via genericPOS.
  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: Registration
  description: Registration operations for the Deliverect POS API.
- name: Products
  description: Products operations for the Deliverect POS API.
- name: Orders
  description: Orders operations for the Deliverect POS API.
- name: Floors
  description: Floors operations for the Deliverect POS API.
- name: Tables
  description: Tables operations for the Deliverect POS API.
- name: Inventory
  description: Inventory operations for the Deliverect POS API.
paths:
  /register:
    post:
      summary: Deliverect Register POS
      description: '*This is a webhook set by the POS'
      operationId: pos_register
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                location:
                  type: string
                  default: ''
                  example: string
              required:
              - location
            examples:
              pos_registerRequest:
                summary: Default pos_register request
                x-microcks-default: true
                value:
                  location: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"ordersWebhookURL\": \"https://integrator.com/ordersWebhookURL\",\n  \"syncProductsURL\": \"https://integrator.com/syncProductsURL\",\n  \"syncTablesURL\": \"https://integrator.com/syncTablesURL\"\
                    ,\n  \"syncFloorsURL\": \"https://integrator.com/syncFloorsURL\",\n  \"operationsWebhookURL\": \"https://integrator.com/operationsURL\",\n  \"storeStatusWebhookURL\": \"https://integrator.com/storeStatusURL\"\
                    \n}"
              schema:
                type: object
                properties:
                  ordersWebhookURL:
                    type: string
                    example: https://integrator.com/ordersWebhookURL
                  syncProductsURL:
                    type: string
                    example: https://integrator.com/syncProductsURL
                  syncTablesURL:
                    type: string
                    example: https://integrator.com/syncTablesURL
                  syncFloorsURL:
                    type: string
                    example: https://integrator.com/syncFloorsURL
                  operationsWebhookURL:
                    type: string
                    example: https://integrator.com/operationsURL
                  storeStatusWebhookURL:
                    type: string
                    example: https://integrator.com/storeStatusURL
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Registration
      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
  /orders:
    post:
      summary: Deliverect Order Notification
      description: '*This will be the same webhook endpoint set by the POS for Order Notifications'
      operationId: pos_ordercancel
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                OK success:
                  value: ''
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Orders
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /floors/locationId:
    get:
      summary: Deliverect Sync Floors
      description: '*This is a GET webhook set by the POS'
      operationId: pos_floors_locationid
      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:
      - Floors
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tables/locationId:
    get:
      summary: Deliverect Sync Tables
      description: '*This is a GET webhook set by the POS'
      operationId: pos_tables_locationid
      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:
      - Tables
      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:
                    en: Mashed Potato
                    es: Puré de patata
                    fr: Purée de pommes de terre
                    nl: Aardappelpuree
                    ar: البطاطا المهروسة
                    el: Πουρές

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