---
title: "Create an inventory item"
method: POST
path: "/v3/merchants/{mId}/items"
tags: ["INVENTORY"]
---

# Create an inventory item

`POST /v3/merchants/{mId}/items`

Creates an inventory item.

## Path parameters

- `mId` string, required

## Query parameters

- `expand` string

## Headers

- `User-Agent` string, required

## Request body

- object
  - `id` string — Unique identifier of the inventory item.
  - `hidden` boolean — Indicates whether the inventory item is hidden on the Register app.
  - `available` boolean — Indicates whether the inventory item is available for sale across all channels, including point of sale (POS) devices, customer-facing kiosks, and online ordering websites.
  - `autoManage` boolean — Indicates whether the inventory item's availability is automatically or manually managed. Values: True - Item availability is automatically managed. False - Item availability is manually managed.
  - `itemGroup` object — Information regarding the item group.
    - `id` string — Unique identifier of the item group.
  - `options` object[] — List of variants (options) available within an attribute. For example, an attribute of size can have small, medium, and large options.
    - `id` string — Unique identifier of the variant option.
    - `name` string, required — Variant option name.
    - `attribute` object
      - `id` string — Unique identifier of the attribute.
    - `items` object[] — List of items associated with the options.
      - `id` string — Unique identifier of the item.
  - `name` string, required — Item name.
  - `alternateName` string — Alternate name of the item.
  - `code` string — Item product code, such as Universal Product Code (UPC) or European Article Number (EAN).
  - `sku` string — Stock keeping unit (SKU).
  - `price` integer, required — Price of the item based on the merchant's local currency and price type, such as fixed, variable, or per unit price. For non-VAT merchants who do not pay value-added tax, this field is exclusive of tax. For VAT merchants, this field is inclusive of tax. Format: Cents
  - `priceType` 'FIXED' | 'VARIABLE' | 'PER_UNIT' — Price type, such as fixed, variable, or per unit price.
  - `defaultTaxRates` boolean — Indicates whether or not to use the default tax rate.
  - `unitName` string — Unit of measurement for the item, such as pound or meter.
  - `cost` integer — Cost of the item to a merchant as compared to the price payable by the customer, for example: wholesale versus retail price.
  - `isRevenue` boolean — Indicates whether this item is counted as revenue, for example: gift cards and donations are not counted as revenue.
  - `isAgeRestricted` boolean — Set to true to create an age-restricted item. If true, `ageRestrictedObj` must also be provided.
  - `ageRestrictedObj` object — Contains the details for the age restriction. Required when `isAgeRestricted` is true.
    - `id` string, required — The unique identifier of the age restriction category (e.g., the ID for 'Alcohol').
    - `name` string, required — The name of the age restriction category. Must be provided when creating the item.
    - `minimumAge` integer, required — The minimum legal age required to purchase this item.
  - `stockCount` integer — Deprecated. Use itemStock.
  - `taxRates` object[]
    - `id` string — Tax rate identifier.
    - `name` string, required — Tax rate name.
    - `taxType` 'VAT_TAXABLE' | 'VAT_NON_TAXABLE' | 'VAT_EXEMPT' | 'INTERNAL_TAX' | 'PARTNER_TAX' — Tax type used in Argentina.
    - `rate` integer — Tax rate for percentage-based discounts, such as sales tax. Format: 100% = 1e7 or 1 followed by 7 zeros.
    - `isDefault` boolean — Indicates whether the merchant's default tax rate is used for the item.
    - `items` object[] — Items associated with the tax rate.
      - `id` string — Unique identifier of the item.
    - `taxAmount` integer — Amount for a flat tax, such as a recycling redemption fee. Format: Cents
    - `deletedTime` integer — Time when the tax rate was deleted.
    - `modifiedTime` integer — Time when the tax rate was modified.
  - `modifierGroups` object[]
    - `id` string — Unique identifier of the modifier group.
    - `name` string — Modifier group name.
    - `alternateName` string — Alternate modifier group name.
    - `minRequired` integer — Minimum number of modifiers from this group that must be applied to associated lineItems when using the Register app.
    - `maxAllowed` integer — Maximum number of modifiers from this group that can be applied to associated lineItems when using the Register app.
    - `showByDefault` boolean — Indicates whether employees receive an automatic message to add modifiers from this category when using the Register app.
    - `modifiers` object[]
      - `id` string — Unique identifier of the modifier.
      - `name` string — Modifier name.
      - `alternateName` string — Modifier alternate name.
      - `available` boolean — Indicates whether the modifier is available across all channels.
      - `price` integer — Additional cost associated with using the modifier.
      - `modifierGroup` object
        - `id` string — Unique identifier of the modifier group.
    - `modifierIds` string — Read-only. Comma-separated list of sorted modifier IDs in the modifier group.
    - `items` object[] — List of items.
      - `id` string — Unique identifier of the item.
    - `sortOrder` integer — Ascending or descending sort order of the modifier group.
  - `categories` object[] — Categories associated with the item.
    - `id` string — Unique identifier of the category.
    - `name` string, required — Category name that displays in the Register app.
    - `sortOrder` integer — Ascending or descending sort order of the categories.
    - `items` object[] — Ordered list of items associated with the category.
      - `id` string — Unique identifier of the item.
    - `colorCode` string — Hex code of the color assigned to the category and its items. Format: #fff, #ffffff, or #ffffffff.
    - `deleted` boolean — Indicates whether the category can be deleted.
    - `modifiedTime` integer — Time when the category was last modified.
    - `canonical` object — Reference to canonical category in an item inventory.
      - `id` string — Unique identifier of the canonical category.
  - `tags` object[] — Tags associated with the item.
    - `id` string — Unique identifier of the tag.
    - `name` string, required — Tag name.
    - `showInReporting` boolean — Indicates whether the tag displays as a summary label in the reporting app.
    - `items` object[] — Items associated with the tag.
      - `id` string — Unique identifier of the item.
    - `printers` object[] — Printers associated with the tag.
      - `id` string — Unique identifier of the printer.
  - `canonical` object — Reference to canonical category in an item inventory.
    - `id` string — Unique identifier of the canonical category.
  - `itemStock` object — Item stock attribute that can contain the stock quantity.
    - `item` object — Information regarding an item in the item stock.
      - `id` string — Unique identifier of the item.
    - `stockCount` integer — Deprecated. Use quantity instead.
    - `quantity` number — Current count of the items in stock.
    - `modifiedTime` integer — Time when the item was modified.
  - `modifiedTime` integer — Time when the item was modified.
  - `deletedTime` integer — Time when the item was deleted.
  - `priceWithoutVat` integer — Item price without value-added tax (VAT). For non-VAT merchants, this field is not used. For VAT merchants, this field is the base price of an item.
  - `colorCode` string — Hex code of the color assigned to the category and its items. Format: #fff, #ffffff, or #ffffffff.

## Response `200`

Successful response. Returns the newly created inventory item.

- object
  - `id` string — Unique identifier for the newly created item.
  - `name` string — The name of the item.
  - `price` integer — The price of the item in cents.
  - `priceType` 'FIXED' | 'VARIABLE' | 'PER_UNIT'
  - `hidden` boolean
  - `available` boolean
  - `modifiedTime` integer — Timestamp indicating when the item was created.
  - `isAgeRestricted` boolean — If true, the item requires age verification. The `ageRestrictedObj` can be retrieved by using `expand=ageRestricted`.
  - `ageRestrictedObj` object — Contains details about the age restriction. This object is only returned if the `expand=ageRestricted` query parameter was used in the request.
    - `id` string — Unique identifier for the age restriction category.
    - `name` 'Alcohol' | 'Tobacco' | 'OTC products' | 'Vitamin & Supplements' — The category name of the age-restricted item.
    - `minimumAge` integer — The minimum legal age required to purchase the item.

---

[API](https://skmtc.net/clover/apis/platform-api.md) · [All operations](https://skmtc.net/clover/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clover/platform-api/versions/08da265101a3/schema)
