# Crear producto

`POST /api/v1/billing/productos`

Crea un producto o servicio en el catálogo de la empresa. El `codigo`
(si se envía) debe ser único dentro de la empresa.

> **Beta privada**: las escrituras vía API key están en beta privada
> (solicitar acceso: hola@simplo.cl); las API keys hoy operan en modo
> lectura.

- Autenticación: header `X-Api-Key: sk_simplo_...` (o `Authorization: Bearer <jwt>` para sesiones de la plataforma).
- operationId: `createProducto` — contrato completo en https://docs.simplo.cl/openapi.yaml
- Versión HTML: https://docs.simplo.cl/api/operations/createproducto/

## Request body (application/json)

Schema: `CreateProductoRequest`

| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `codigo` | string | no |  |
| `nombre` | string | sí |  |
| `descripcion` | string | no |  |
| `precio_unitario` | integer (int64) | no | Precio en CLP (entero, sin decimales) |
| `unidad` | string (UN \| HR \| KG \| LT \| MT \| M2 \| M3) | no |  |
| `es_exento` | boolean | no |  |
| `categoria` | string | no |  |

## Ejemplo (curl)

```sh
curl -X POST "https://api.simplo.cl/api/v1/billing/productos" \
  -H "X-Api-Key: $SIMPLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Hora de consultoria TI"
  }'
```

## Respuestas

### 201 — Producto creado

Schema: `ProductoResponse`

| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `id` | string (uuid) | no |  |
| `codigo` | string | no |  |
| `nombre` | string | no |  |
| `descripcion` | string | no |  |
| `precio_unitario` | integer (int64) | no |  |
| `unidad` | string | no |  |
| `es_exento` | boolean | no |  |
| `categoria` | string | no |  |
| `created_at` | string (date-time) | no |  |
| `updated_at` | string (date-time) | no |  |

### 400 — Datos inválidos (nombre vacio, precio negativo)

Schema: `ErrorResponse`

### 401 — Token o API key inválido o ausente

Schema: `ErrorResponse`

### 409 — Producto con este código ya existe para la empresa

Schema: `ErrorResponse`
