---
title: "items__createItem"
method: POST
path: "/tools/items__createItem"
tags: ["Items"]
---

# items__createItem

`POST /tools/items__createItem`

Crea un nuevo ítem en la aplicación. El campo `type` determina qué campos son requeridos:

| type | Campos adicionales requeridos |
|------|-------------------------------|
| `service` | `unit` (opcional) |
| `product` | `inventory` (unit, unitCost, warehouses) |
| `kit` | `subitems` + `kitWarehouse` |
| `variantParent` | `variantAttributes` (mín 1) + `itemVariants` (opcional) |

> ⚠️ **Límite de variantes:** Para `type=variantParent`, el producto cartesiano de las opciones de `variantAttributes` no puede superar **100 combinaciones**. Si se proveen `itemVariants` explícitos, no pueden superar **100 entradas**. El servidor rechazará el request si se supera este límite.

## Request body

- object
  - `name` string, required — Nombre del ítem.
  - `type` 'service' | 'product' | 'kit' | 'variantParent', required — Tipo de ítem. Determina qué campos adicionales aplican.
  - `price` object[], required — Lista de precios. Se requiere al menos un precio.
    - `price` number, required
    - `idPriceList` integer
  - `description` string
  - `reference` string
  - `status` 'active' | 'inactive'
  - `unit` string
  - `itemCategory` object — Categoría del ítem (clasificación comercial).
    - `id` string
  - `category` object — Categoría contable del ítem (cuenta contable).
    - `id` string
  - `tax` object[]
    - `id` string
  - `customFields` object[]
    - `id` string
    - `key` string
    - `value` string
  - `settingsOnShop` object — Configuración de visibilidad en tienda online.
    - `hide` boolean
  - `accounting` object — Cuentas contables del ítem.
    - `inventory` string
    - `inventariablePurchase` string
  - `inventory` object — Inventario del ítem. Aplica a type=product y type=variantParent.
    - `unit` string
    - `unitCost` number
    - `negativeSale` boolean — Solo aplica a type=product.
    - `warehouses` object[] — Solo aplica a type=product. Para variantParent las bodegas se definen por variante.
      - `id` string
      - `initialQuantity` number
      - `minQuantity` number
      - `maxQuantity` number
  - `subitems` object[] — Requerido para type=kit. Lista de ítems que componen el kit.
    - `item` object
      - `id` string
    - `quantity` number
    - `price` number
  - `kitWarehouse` object — Requerido para type=kit. Bodega desde la cual se descuenta el kit.
    - `id` string
  - `variantAttributes` object[] — Requerido para type=variantParent. Define los atributos y sus opciones. El producto cartesiano de opciones no puede superar 100 combinaciones (ej: 2 atributos × 5 opciones = 10, válido; 5 × 5 × 5 = 125, rechazado).
    - `id` string, required — ID del atributo de variante.
    - `options` object[], required
      - `id` string, required — ID de la opción del atributo.
  - `itemVariants` object[] — Opcional para type=variantParent. Lista explícita de variantes a crear (máx 100). Si no se provee, las variantes se generan automáticamente como producto cartesiano de variantAttributes.
    - `id` string
    - `status` 'active' | 'inactive'
    - `variantAttributes` object[]
      - `id` string
      - `options` object[]
        - `id` string
    - `inventory` object
      - `warehouses` object[]
        - `id` string
        - `initialQuantity` number
        - `minQuantity` number
        - `maxQuantity` number

## Response `200`

Ítem creado exitosamente.

## Other responses

- `400` — Datos inválidos o límite de variantes superado.
- `401` — No autorizado

---

[API](https://skmtc.net/alegra/apis/ingresos.md) · [All operations](https://skmtc.net/alegra/apis/ingresos/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alegra/ingresos/versions/cd52d3f68f1b/schema)
