---
updatedAt: 2026-09-04T11:42:45.000Z
---

Fetch the complete documentation index at: https://developers.deliverect.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# POS Product - Model

<HTMLBlock>{`
<div class="callout-banner callout-banner--required">
  <span class="callout-icon"><i class="fa-duotone fa-list-check"></i></span>
  <p><strong>Required Attributes</strong><br>
  Fields marked with
  <i class="fa-solid fa-asterisk" style="color: #038851;"></i>
  must be included in the request payload — the request will be rejected without them.
  </p>
</div>
`}</HTMLBlock>

<HTMLBlock>{`
<div class="callout-banner callout-banner--important">
  <span class="callout-icon"><i class="fa-regular fa-triangle-exclamation"></i></span>
  <p><strong>Legacy Attributes</strong><br>
Certain attributes are part of the product model, but should not be applied as part of an integration and are marked as
<span class="legacy-label">Legacy</span>
  </p>
</div>
`}</HTMLBlock>

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Parameters
      </th>

      <th>
        Meaning
      </th>

      <th>
        Type
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `accountId`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        The customer account ID in Deliverect
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        `locationId`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        The specific customer's location ID in Deliverect
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        **products**
      </td>

      <td>

      </td>

      <td>

      </td>
    </tr>

    <tr>
      <td>
        products.`productType`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Specifies the product type being inserted. See section here on <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/product-configurations">product types</Anchor> supported
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`plu`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Unique identifier for a product.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products. `gtin`
      </td>

      <td>
        GTIN (Global Trade Item Number) for product, which could be EAN code

        <em>NB:</em> We are not validating these as yet
      </td>

      <td>
        array of strings
      </td>
    </tr>

    <tr>
      <td>
        products.`price`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Defined by a an integer with 2 decimal digits.<br />i.e. $5.00 is stored as 500
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`name`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Name for the product
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products.`nameTranslations`
      </td>

      <td>
        Object containing name translations. <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-set-translations">See guide here</Anchor> for more information.
      </td>

      <td>
        Object
      </td>
    </tr>

    <tr>
      <td>
        products.`kitchenName`
      </td>

      <td>
        An optional additional name for the product that will be sent through with the order
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products. `visible`
      </td>

      <td>
        This specifies if the item is enabled or disabled within a location
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        products.`stock`
      </td>

      <td>
        The current level of stock for this item (relevant in retail accounts)
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`channelOverrides`
      </td>

      <td>
        The `channelOverrides` allows the visible flag to apply differently per channel (<Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-apply-visible-status-per-channel">see guide here</Anchor>)

        Each key represents the ID of a channel (obtained via <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/reference/channel-integrators">GET Integrated Channels</Anchor>) For example `"7"` channel ID for Uber Eat is marked as `"visible": false`where `"12"`for DoorDash is marked as `"visible": true`
      </td>

      <td>
        object
      </td>
    </tr>

    <tr>
      <td>
        products.`posProductId`
      </td>

      <td>
        Internal reference ID for the product coming from the POS. Optional use.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products.`posCategoryIds`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Products should belong at least to one category, each Id listed corresponds to a lookup table which you will provide along with the customer facing category name see; categories.`posCategoryId`  .
      </td>

      <td>
        array of strings
      </td>
    </tr>

    <tr>
      <td>
        products.`imageUrl`
      </td>

      <td>
        Cloud hosted image URL. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-set-product-images">section here for more details</Anchor>
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products.`description`
      </td>

      <td>
        Product description
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        products.`descriptionTranslations`
      </td>

      <td>
        Object containing the translations for the descriptions. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-set-translations">guide here</Anchor> for more details.
      </td>

      <td>
        object
      </td>
    </tr>

    <tr>
      <td>
        products.`deliveryTax`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Tax rate for delivery order,<br />int with 3 decimal digits. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/product-configurations#tax">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`takeawayTax`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Tax rate for pickup order, int with 3 decimal digits.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/product-configurations#tax">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`eatInTax`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Tax rate for pickup order, int with 3 decimal digits.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/product-configurations#tax">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`multiMax`
      </td>

      <td>
        Defines how many times can the same modifier be chosen.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`min`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Minimum quantity for a modifier.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`max`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Maximum quantity for a modifier.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`maxFree`
      </td>

      <td>
        Specifies how many sub products can be ordered at zero value, normal pricing applying after set limit
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`minUniqueOptions`
      </td>

      <td>
        Minimum unique options that can be selected in any one modifier group
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`maxUniqueOptions`
      </td>

      <td>
        Maximum unique options that can be selected in any one modifier group
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`defaultQuantity`
      </td>

      <td>
        Specify a default quantity where '1' is equivalent to a 'pre-selected' item (compatible with only a few channels)
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        products.`isCombo`
      </td>

      <td>
        Indicates product is a combo.
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        products.`isVariant`
      </td>

      <td>
        Indicates a product is a variant.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-variant-products">section here</Anchor> for more details.
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        products.`isVariantGroup`
      </td>

      <td>
        Indicates the group contains variants.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-variant-products">section here</Anchor> for more details.
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        products.`priceLevels`
      </td>

      <td>
        Object containing the `priceLevels.posId` specified on the `priceLevels` array and the corresponding price as in below examples.<br /><br />See guide <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-price-levels">here</Anchor> for more details

        ```json Price Levels
        "priceLevels": {  
         "UE": 900,  
         "DL": 850,  
         "TA": 825  
        }
        ```
      </td>

      <td>
        object
      </td>
    </tr>

    <tr>
      <td>
        products.`subProducts`
      </td>

      <td>
        A product can contain additional options (see full guide <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-modifier-groups">here</Anchor>)
      </td>

      <td>
        array of strings
      </td>
    </tr>

    <tr>
      <td>
        **autoApply**
      </td>

      <td>

      </td>

      <td>

      </td>
    </tr>

    <tr>
      <td>
        autoApply.`plu`
      </td>

      <td>
        A predefined set of zero-priced items applied to an order by Deliverect. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-auto-apply-modifiers">section here</Anchor> for more details.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        `sortOrder`
      </td>

      <td>
        Defines the order in which an item will appear when auto-applied. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-auto-apply-modifiers">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        **overloads**
      </td>

      <td>
        Specifies price variances from 'base' price dependant on where option is offered
      </td>

      <td>

      </td>
    </tr>

    <tr>
      <td>
        overloads.`scopes`
      </td>

      <td>
        Define surcharges applied to the specific modifier group or bundle. See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/overloads">section here</Anchor> for more details.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        overloads.`price`
      </td>

      <td>
        Determines the price for the overload.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/overloads">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        overloads.`bundlePrice`
      </td>

      <td>
        Determines the price for the overload when the grouping is a bundle.
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/overloads">section here</Anchor> for more details.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        **beverageInfo**
      </td>

      <td>

      </td>

      <td>

      </td>
    </tr>

    <tr>
      <td>
        beverageInfo.`caffeine`
      </td>

      <td>
        Caffeine content (in mg)
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        beverageInfo.`alcohol`
      </td>

      <td>
        Alcohol content (in % )
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo
      </td>

      <td>
        An object containing the nutritional values for the product, including flat numeric fields expressed in grams (e.g. fat, protein, salt) as well as `servingSize` and `netQuantity`, each an object specifying an `amount`, `unitType`, and `countUnitDescription`<br /><br />All values listed explained in this <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-nutritionalsupplemental-data#nutritional-information-and-supplemental-info">guide here</Anchor> in more detail.
      </td>

      <td>
        object
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo.netQuantity.`amount`
      </td>

      <td>
        value of the quantity amount
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo.netQuantity.`countUnitDescription`
      </td>

      <td>
        the unit of the quantity amount
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo.servingSize.`amount`
      </td>

      <td>
        the serving size amount
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo.servingSize.`unitType`
      </td>

      <td>
        the unit of the serving size amount

        `unitType : 1`  =  **Weight** (in grams)
        `unitType : 2 ` =  **Volume** (in milliliter)
        `unitType : 3 ` =  **Count** (i.e piece, slice, tablet, capsule, cookie, etc)
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        nutritionalInfo.servingSize.`countUnitDescription`
      </td>

      <td>
        the serving size unit
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        `calories`
      </td>

      <td>
        kcal / Cals
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        `caloriesRangeHigh`
      </td>

      <td>
        Where a range of calories applies to a variable option e.g. a 'Sandwich Deal' where selections are required.

        To apply this, the format would be;
        • Minimum =`calories`
        • Maximum =`caloriesRangeHigh`
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        packaging.`reusable`
      </td>

      <td>
        Whether packaging is reusable
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        packaging.`storageInstructions`
      </td>

      <td>
        How to store an item
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        packaging.`count`
      </td>

      <td>

      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`instructionsForUse`
      </td>

      <td>
        Instructions for the use e.g. "Cool before drink." See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-nutritionalsupplemental-data#nutritional-information-and-supplemental-info">section here</Anchor> for more information.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`ingredients`
      </td>

      <td>
        e.g.  "Water"
      </td>

      <td>
        array of strings
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.fbo.`name`
      </td>

      <td>
        Food business operator name
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.fbo.`address`
      </td>

      <td>
        Food business operator address
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.fbo.`brand`
      </td>

      <td>
        Food business operator brand name
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.fbo.`countryOfOrigin`
      </td>

      <td>
        Food business operator country of origin
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`legalName`
      </td>

      <td>
        The legal name of the product
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`additives`
      </td>

      <td>
        e.g. `["Artificial Food Coloring",  				"PRESERVATIVES_NITRATE"]`
      </td>

      <td>
        array of enums as strings
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`prepackaged`
      </td>

      <td>
        Indicates if the item is prepackaged.
      </td>

      <td>
        boolean
      </td>
    </tr>

    <tr>
      <td>
        supplementalInfo.`deposit`
      </td>

      <td>
        Value of the deposit if applicable.
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        `productTags`
      </td>

      <td>
        e.g.`108` = mustard (see guide <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-nutritionalsupplemental-data#product-tags">here</Anchor>)
      </td>

      <td>
        array of integer
      </td>
    </tr>

    <tr>
      <td>
        `bottleDepositPrice `

        <HTMLBlock>{`
<span class="legacy-label">Legacy</span>
`}</HTMLBlock>
      </td>

      <td>
        For correct format see `"supplementalInfo.deposit"` and <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-set-deposits">this guide here</Anchor>
      </td>

      <td>
        integer
      </td>
    </tr>

    <tr>
      <td>
        **categories**
      </td>

      <td>
        This is the lookup table for every product which specifies `"posCategoryIds"`

        It sets the categories which would form a menu when imported and also provides a reference when products are added to menus in Deliverect
      </td>

      <td>
        array of objects
      </td>
    </tr>

    <tr>
      <td>
        categories.`name`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Name for the category.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        categories.`posCategoryId`<span style={{color: "#038851"}}><i className="fa-solid fa-asterisk"></i></span>
      </td>

      <td>
        Id assigned to the category.
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        categories.`imageUrl`
      </td>

      <td>
        Image for the category
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        categories.`description`
      </td>

      <td>
        Description of the category
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        **priceLevels**
      </td>

      <td>
        See <Anchor target="_blank" href="https://developers.deliverect.com/v1.1-restaurants/docs/how-to-configure-price-levels">section here</Anchor> for more information. This is mandatory when using Price Levels, otherwise, the Price Level will not work.
      </td>

      <td>
        array of objects
      </td>
    </tr>

    <tr>
      <td>
        priceLevels.`name`
      </td>

      <td>
        Name for the priceLevel
      </td>

      <td>
        string
      </td>
    </tr>

    <tr>
      <td>
        priceLevels.`posId`
      </td>

      <td>
        Id for the priceLevel.
        Value used inside the array products.`priceLevels`
      </td>

      <td>
        string
      </td>
    </tr>
  </tbody>
</Table>