Inventario
Base path: /api/inventory
Productos
GET /inventory/products
Obtener todos los productos con datos de categoría y proveedor.
Auth: Autenticado
Query parameters: search, supplier_id, page, limit
POST /inventory/products
Crear nuevo producto. article_number se genera automáticamente.
Auth: Admin
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | Nombre del producto |
sku | string | Sí | Código de artículo |
price | number | Sí | Precio de venta (>= 0) |
purchase_price | number | Sí | Precio de compra (obligatorio para cálculos de coste) |
quantity_on_hand | integer | Sí | Stock actual |
low_stock_threshold | integer | No | Umbral de alerta (por defecto 5) |
category_id | integer | No | ID de categoría |
supplier_id | integer | No | ID de proveedor |
vat_rate_id | integer | No | ID de tipo de IVA |
ean_code | string | No | Código EAN |
PUT /inventory/products/:id / DELETE /inventory/products/:id
Actualizar o eliminar un producto.
Categorías de productos
GET /inventory/categories / POST / PUT /:id / DELETE /:id
Gestionar categorías de productos.
Transacciones de stock
GET /inventory/transactions
Obtener movimientos de stock.
Query parameters: product_id, from, to
Proveedores
Base path: /api/suppliers
GET /suppliers
Listar todos los proveedores.
Auth: Autenticado
Query parameters: active=true, page, limit
POST /suppliers
Crear nuevo proveedor. creditor_number se genera automáticamente con la secuencia CRED.
Auth: Admin
GET /suppliers/:id / PUT /:id / DELETE /:id
Obtener proveedor con sus 20 últimos pedidos, actualizar o eliminar.
Pedidos de compra
Base path: /api/suppliers
GET /suppliers/orders
Listar todos los pedidos de compra.
Auth: Autenticado
Query parameters: status, page, limit
POST /suppliers/orders
Crear nuevo pedido. order_number se genera automáticamente con la secuencia IO. Estado inicial: created.
Auth: Admin
| Campo | Tipo | Obligatorio |
|---|---|---|
supplier_id | integer | Sí |
staff_id | integer | No |
notes | string | No |
order_date | fecha | No |
expected_date | fecha | No |
PUT /suppliers/orders/:id/items
Establecer artículos en un pedido (reemplaza los existentes). Solo cuando estado es created u ordered.
PUT /suppliers/orders/:id
Actualizar estado o metadatos. Al pasar a received se actualiza el stock automáticamente.
POST/GET /suppliers/orders/:id/packing-slip
Subir o descargar albarán.
GET /suppliers/packing-slips/zip
Descargar todos los albaranes de un año como ZIP. Query parameters: year
DELETE /suppliers/orders/:id
Eliminar pedido. Válido para todos los estados.
Auth: Admin
| Estado | Efecto en stock |
|---|---|
created | Sin cambio |
ordered | Sin cambio |
received | Stock decrementado; transacciones inversas creadas; albarán eliminado |
cancelled | Sin cambio |
Response: { "ok": true }
Estados de pedido
| Estado | Descripción |
|---|---|
created | Pedido creado, añadiendo artículos |
ordered | Pedido enviado al proveedor |
received | Mercancía recibida; stock actualizado |
cancelled | Pedido cancelado |
Numeración automática
| Prefijo | Entidad | Ejemplo |
|---|---|---|
IO | Pedidos de compra | IO2601, IO2602 |
CRED | Números de acreedor | CRED001, CRED002 |
ART_PRODUCT | Números de artículo | ART_PRODUCT001 |