---
title: "Create or delete associations between items and categories"
method: POST
path: "/v3/merchants/{mId}/category_items"
tags: ["INVENTORY"]
---

# Create or delete associations between items and categories

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

Creates or removes the association between a category (or subcategory) and an item.

Important: To fully move an item from a parent category to a subcategory, you must send two separate API requests:

* Send a request with `delete=true` and the parent category ID to remove the current association.
* Send a second request with `delete=false` and the subcategory ID to create the new association.

## Path parameters

- `mId` string, required

## Query parameters

- `expand` string
- `delete` boolean

## Headers

- `User-Agent` string, required

## Request body

- object
  - `elements` object[], required — Array of category-item associations.
    - `category` object, required — The category or subcategory to associate the item with.
      - `id` string, required — The unique identifier of the category or subcategory to associate the item with.
    - `item` object, required — The item to associate with the category or subcategory.
      - `id` string, required — The unique identifier of the item to associate.

## Response `200`

Successful response. Association created or deleted.

- object
  - `item` object, required
    - `id` string — Unique identifier of the 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 and customer-facing platforms such as kiosks and merchant 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 — The ID of the inventory item group.
    - `options` object[] — List of variants (options) available within an attribute.
      - `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 option.
        - `id` string — Unique identifier of the item.
    - `name` string, required — Item name.
    - `alternateName` string — Item alternate name.
    - `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. Use price type and merchant currency to determine the actual item 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 merchant, as opposed to customer price. 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.
    - `stockCount` integer — Deprecated. Use itemStock.quantity.
    - `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' — For use 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 tax rate was deleted.
      - `modifiedTime` integer — Time when 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, including point-of-sale (POS) devices and customer-facing platforms such as kiosks and merchant online ordering websites.
        - `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[]
        - `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 as it 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. Note: You can change or delete the Item color at any time. In this case, it may no longer match this line item.
      - `deleted` boolean — Indicates whether the category can be deleted.
      - `modifiedTime` integer — Time when the category was modified.
      - `canonical` object — Reference to canonical category in an item inventory.
        - `id` string — Reference to the canonical category in an item inventory.
    - `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 items
      - `id` string — Unique identifier of the canonical item.
    - `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 in the item stock.
      - `stockCount` integer — Deprecated. Use quantity instead.
      - `quantity` number — Current count of the items in stock.
      - `modifiedTime` integer — Time when the item stock 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. Note: You can change or delete the Item color at any time. In this case, it may no longer match this line item.
  - `category` object, required
    - `id` string — Unique identifier of the category.
    - `name` string, required — Category name as it 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. Note: You can change or delete the Item color at any time. In this case, it may no longer match this line item.
    - `deleted` boolean — Indicates whether the category can be deleted.
    - `modifiedTime` integer — Time when the category was modified.
    - `canonical` object — Reference to canonical category in an item inventory.
      - `id` string — Reference to the canonical category in an item inventory.

---

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