Son permisos explícitos: una integración solo los tiene si el administrador los marca uno por uno en Integraciones externas. Las integraciones existentes no los reciben automáticamente.
- Solo los productos físicos manejan inventario; los servicios no aparecen en existencias ni se pueden ajustar o transferir.
- Todo se limita al negocio de la integración: una sucursal, producto o transferencia de otro negocio responde
404. unit_costes siempre el costo del producto (no el precio de venta). Los ajustes y transferencias quedan listos para contabilizarse a costo desde Procesar documentos.- Las escrituras aceptan el encabezado
Idempotency-Key. Envíalo siempre para no duplicar un ajuste o una transferencia al reintentar.
Consultar existencias
Consultar movimientos
type:in(entrada) uout(salida).quantitysiempre es positiva.source:adjustment,transfer,sale,purchaseonull(movimientos antiguos sin origen registrado).unit_costpuede sernullen movimientos anteriores a esta versión.
Consultar lotes
Los lotes se ordenan por fecha de vencimiento. Cada elemento:
days_to_expire es negativo si el lote ya venció.
Alertas
low_stock usa el formato de existencias y los lotes el de lotes.
Registrar ajuste
out) o un sobrante (in) y actualiza la existencia de inmediato. El movimiento guarda el costo unitario del producto en ese momento.
201: el movimiento y la existencia actualizada.
El ajuste no valida la existencia disponible: un faltante mayor que la existencia deja el producto en negativo. Consulta existencias antes si tu proceso lo requiere.
Transferencias entre sucursales
Una transferencia tiene tres estados:Crear transferencia
pending. Con "complete": true además la completa en la misma llamada.
201
items[].unit_cost es el costo del producto al crear la transferencia y total_cost es la suma de cantidad × costo.
Completar transferencia
200 con la transferencia en estado completed.
Producto en la sucursal destino: se busca por SKU; si no existe, por código de barras; si tampoco existe, se crea una copia del producto en el destino (mismo SKU, nombre, categoría, unidad, precio e impuestos) con existencia 0 antes de sumar la entrada.
Cancelar transferencia
pending; no mueve existencias. Responde 200 con la transferencia en estado cancelled.
Errores de transferencias
Consultar transferencias
El listado es paginado (
data + pagination) con el mismo formato de la respuesta de creación. El detalle devuelve un solo objeto o 404 si no existe o es de otro negocio.