> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cashea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear productos (masivo)

> Crea uno o varios productos de forma asíncrona

Crea uno o varios productos de forma **asíncrona**. Encola un job y responde `202` con un `jobId`; el resultado se consulta con [`GET /v2/inventory/jobs/{jobId}`](https://docs.cashea.app/apis/inventory/get-job).

> [!NOTE]
>
> **Límites:** entre 1 y 1.000 productos por request.

## Authorization

**Authorization** `string` *required*

Formato: `ApiKey TU_API_KEY`

## Body Parameters

**products** `object[]` *required*

Lista de productos a crear.

**producto**

**sku** `string` *required*

SKU único (1–64 caracteres).

**title** `string` *required*

Título (máx. 256 caracteres).

**description** `string` *required*

Descripción (máx. 5000 caracteres).

**categoryUuid** `string` *required*

uuid de la categoría del producto. Tiene que ser una categoría hoja (`hasChildren: false` en [Listar categorías](https://docs.cashea.app/apis/inventory/get-categories.md)).

**brand** `string` *required*

Marca del fabricante.

**model** `string` *required*

Modelo del producto, sirve para agruparlos.

**price** `number` *required*

Precio.

**images** `string[]` *required*

1 a 5 URLs válidas, únicas.

**condition** `string` *required*

Condición del producto. Valores permitidos: `NEW` (nuevo), `USED` (usado), `REFURBISHED` (reacondicionado).

**digital** `boolean` *required*

Si es digital, `shippable` debe ser `false`.

**shippable** `boolean` *required*

Si es enviable.

**weight** `number` *required*

Peso en kilogramos (kg).

**height** `number`

Altura en metros.

**width** `number`

Ancho en metros.

**length** `number`

Largo en metros.

**warranty** `integer` *required*

Garantía en días.

**bestInstallmentPlan** `integer` *required*

**Máximo** de cuotas: `3`, `6`, `9` o `12`. Se otorgan todos los planes elegibles hasta ese valor (`12` otorga 3, 6, 9 y 12); nunca por encima del máximo.

**stock** `integer` *required*

Unidades disponibles.

**status** `boolean` *required*

`true`: el producto aparece en el buscador del marketplace. `false`: queda cargado, pero no aparece en el buscador.

**priceAfterDiscount** `number`

Precio con descuento (menor a `price`). Requerido si se envía alguna fecha de descuento.

**discountStartDate** `string`

Formato ISO 8601. Vigencia del descuento.

**discountExpirationDate** `string`

Formato ISO 8601. Debe ser posterior a `discountStartDate`.

**commercialBrands** `string[]`

uuids de marcas comerciales (máx. 2).

**attributes** `object[]`

Pares `attributeId` / `valueId` de la categoría.

## Response

**data** `object`

**job**

**jobId** `string`

ID del job. Se usa para consultar el resultado con [`GET /v2/inventory/jobs/{jobId}`](https://docs.cashea.app/apis/inventory/get-job).

**status** `string`

Estado inicial del job: `PENDING`.

## Errors

La respuesta `202` solo confirma que el job se encoló. **Los fallos por producto no llegan como error HTTP:** se consultan con [`GET /v2/inventory/jobs/{jobId}`](https://docs.cashea.app/apis/inventory/get-job).

| Código | Descripción |
| - | - |
| `400` | Body inválido. El campo `message` indica la validación que falló. |

```bash cURL theme={null}
curl --request POST \
  --url https://sandbox.external.cashea.app/v2/inventory/products/bulk/async \
  --header 'Authorization: ApiKey TU_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "products": [
      {
        "sku": "TEST-SMARTPHONE-001",
        "title": "Sumsung Galaxo Z54",
        "description": "Smartphone de prueba",
        "categoryUuid": "5f0ba846-e37f-4a67-8f03-95e998996c95",
        "brand": "Sumsung",
        "model": "Galaxo Z54",
        "price": 299.99,
        "images": ["https://cdn.photo/800"],
        "condition": "NEW",
        "digital": false,
        "shippable": true,
        "weight": 0.5,
        "warranty": 12,
        "bestInstallmentPlan": 6,
        "stock": 25,
        "status": true,
        "commercialBrands": ["20353c61-45bd-4493-85a6-a264b35429d2"],
        "attributes": [ { "attributeId": 1, "valueId": 5 } ]
      }
    ]
  }'
```

```json Ejemplo 202 theme={null}
{
  "data": {
    "jobId": "b2f6e8a0-c5d3-4f0a-9c8d-1e2f3a4b5c6d",
    "status": "PENDING"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.