Contenido
El endpoint de Inventario proporciona visibilidad a nivel de lote y operaciones transaccionales — recepción de existencias en un almacén, movimiento entre ubicaciones y despacho.
{
"recNo": 15234,
"partNo": 42,
"shortID": "BOLT-M8-30",
"description": "Hex Bolt M8x30mm",
"associate": "Acme Corp",
"warehouse": "Main",
"wID": 1,
"spot": "A-01-03",
"units": 500.0,
"received": "2025-01-15T09:30:00Z",
"shipped": null,
"serial": "LOT-2025-001",
"serial2": null,
"rFIDTag": null,
"remark": "PO #4521",
"hold": false,
"jobID": 0,
"jobName": null,
"active": true
}| Campo | Tipo | Descripción |
|---|---|---|
recNo | integer | Número de registro único del lote |
partNo | integer | Número de parte del artículo |
shortID | string | SKU del artículo |
description | string | Descripción del artículo |
associate | string | Nombre del cliente/propietario (vacío = existencias propias) |
warehouse | string | Nombre del almacén |
wID | integer | ID del almacén |
spot | string | Contenedor/ubicación dentro del almacén |
units | decimal | Cantidad en este lote |
received | datetime | Fecha de recepción |
shipped | datetime o null | Fecha de envío (null si aún está en existencias) |
serial | string | Número de serie/lote |
serial2 | string | Número de serie secundario |
rFIDTag | string | Valor de etiqueta RFID |
remark | string | Notas |
hold | boolean | Si el lote está retenido |
jobID | integer | ID de trabajo/proyecto asociado |
jobName | string | Nombre del trabajo/proyecto |
active | boolean | Si el lote está activo |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /Inventory | Listar todos los lotes de inventario |
| GET | /Inventory/{wid} | Listar lotes en un almacén |
| GET | /Inventory/StockLevels | Niveles de existencias agregados (todos los almacenes) |
| GET | /Inventory/StockLevels/{wid} | Niveles de existencias agregados (un almacén) |
| POST | /Inventory/Receive | Recibir existencias en un almacén |
| POST | /Inventory/Move | Mover existencias entre ubicaciones |
| POST | /Inventory/Issue | Despachar existencias de un almacén |
GET /Inventory?page=1&pageSize=50Devuelve lotes individuales de inventario (registros de recepción) ordenados por el más reciente primero.
{
"value": [
{
"recNo": 15234,
"partNo": 42,
"shortID": "BOLT-M8-30",
"description": "Hex Bolt M8x30mm",
"associate": "Acme Corp",
"warehouse": "Main",
"wID": 1,
"spot": "A-01-03",
"units": 500.0,
"received": "2025-01-15T09:30:00Z",
"shipped": null,
"serial": "LOT-2025-001",
"serial2": null,
"rFIDTag": null,
"remark": "PO #4521",
"hold": false,
"jobID": 0,
"jobName": null,
"active": true
}
],
"totalCount": 8420,
"page": 1,
"pageSize": 50,
"pageCount": 169,
"hasMore": true
}Cada lote en value contiene los campos documentados en El Objeto Lote anterior.
GET /Inventory/3?page=1&pageSize=50Igual que la lista completa, filtrada a un almacén específico por ID.
GET /Inventory/StockLevels
GET /Inventory/StockLevels/3Devuelve conteos de existencias agregados por artículo. Opcionalmente filtrado a un solo almacén.
{
"value": [
{
"partNo": 42,
"available": 1200.0,
"inStock": 1500.0,
"onOrder": 500.0,
"onHold": 300.0,
"committed": 0.0,
"packed": 0.0,
"aSN": 0.0
}
],
"totalCount": 2340,
"page": 1,
"pageSize": 25,
"pageCount": 94,
"hasMore": true
}| Campo | Tipo | Descripción |
|---|---|---|
partNo | integer | Número de parte del artículo |
available | decimal | Disponible para uso (inStock - onHold - committed - packed) |
inStock | decimal | Total físicamente en almacén |
onOrder | decimal | En órdenes de compra abiertas |
onHold | decimal | En existencias pero retenido (calidad, inspección, etc.) |
committed | decimal | Asignado a órdenes de envío |
packed | decimal | Empacado y en espera de envío |
aSN | decimal | En tránsito (aviso de envío anticipado) |
POST /Inventory/ReceiveRegistra un ajuste positivo de inventario — existencias ingresando al sistema.
{
"itemID": "BOLT-M8-30",
"units": 500,
"wid": 1,
"reasonCode": 1,
"spot": "A-01-03",
"serial": "LOT-2025-002",
"reference": "PO #4521",
"remark": "Vendor delivery"
}| Campo | Tipo | Descripción |
|---|---|---|
itemID | string | ShortID del artículo a recibir |
units | decimal | Cantidad a recibir (debe ser > 0) |
wid | integer | ID del almacén destino |
reasonCode | integer | Código de razón para el ajuste |
| Campo | Tipo | Descripción |
|---|---|---|
spot | string | Contenedor/ubicación en el almacén |
serial | string | Número de serie o lote |
serial2 | string | Serial secundario |
rfidTag | string | Etiqueta RFID |
reference | string | Referencia externa (número de OC, etc.) |
remark | string | Notas |
netWeight | decimal | Peso neto |
grossWeight | decimal | Peso bruto |
price | decimal | Costo unitario |
expires | datetime | Fecha de vencimiento |
supplier | integer | ID de proveedor |
line | integer | Número de línea de OC (si recibe contra una OC) |
jobid | integer | ID de trabajo/proyecto asociado |
Devuelve el nuevo número de registro en caso de éxito.
| Estado | Causa |
|---|---|
| 400 | Faltan campos obligatorios o fallo de validación |
| 403 | Sin permiso de recepción, o almacén fuera de alcance |
POST /Inventory/MoveMueve inventario entre ubicaciones o almacenes.
{
"itemID": "BOLT-M8-30",
"units": 100,
"wid": 1,
"fromSpot": "A-01-03",
"toSpot": "B-02-01"
}Para movimientos entre almacenes, incluya shipToWid:
{
"itemID": "BOLT-M8-30",
"units": 100,
"wid": 1,
"shipToWid": 3,
"transitSlip": "TS-2025-042"
}| Campo | Tipo | Descripción |
|---|---|---|
itemID | string | ShortID del artículo a mover |
units | decimal | Cantidad a mover |
wid | integer | ID del almacén de origen |
| Campo | Tipo | Descripción |
|---|---|---|
fromSpot | string | Contenedor/ubicación de origen |
toSpot | string | Contenedor/ubicación de destino |
shipToWid | integer | Almacén de destino (para movimientos entre almacenes) |
transitSlip | string | Referencia de guía de tránsito |
serial | string | Serial/lote a mover |
serial2 | string | Serial secundario |
rfidTag | string | Etiqueta RFID |
reference | string | Referencia externa |
recno | integer | Registro de lote específico a mover |
received | string | Filtro de fecha de recepción |
Devuelve el resultado de la operación de movimiento en caso de éxito.
| Estado | Causa |
|---|---|
| 400 | Faltan campos obligatorios o fallo de validación |
| 403 | Sin permiso de movimiento, o almacén(es) fuera de alcance |
POST /Inventory/IssueRegistra un ajuste negativo de inventario — existencias saliendo del sistema.
{
"itemID": "BOLT-M8-30",
"units": 50,
"wid": 1,
"reasonCode": 2,
"spot": "A-01-03",
"reference": "Work Order #789"
}| Campo | Tipo | Descripción |
|---|---|---|
itemID | string | ShortID del artículo a despachar |
units | decimal | Cantidad a despachar (debe ser > 0) |
wid | integer | ID del almacén de origen |
reasonCode | integer | Código de razón para el ajuste |
| Campo | Tipo | Descripción |
|---|---|---|
spot | string | Contenedor/ubicación de donde despachar |
serial | string | Número de serie/lote |
serial2 | string | Serial secundario |
rfidTag | string | Etiqueta RFID |
reference | string | Referencia externa |
remark | string | Notas |
netWeight | decimal | Peso neto |
shipto | integer | ID de cliente destino |
prodID | string | ID de produccion/ensamblaje |
recno | integer | Registro de lote especifico de donde despachar |
line | integer | Numero de linea de orden |
Devuelve el resultado de la operacion de despacho en caso de exito.
| Estado | Causa |
|---|---|
| 400 | Faltan campos obligatorios o fallo de validacion |
| 403 | Sin permiso de despacho, o almacen fuera de alcance |
Todas las operaciones de inventario aplican el alcance de almacen. Sus credenciales de API estan asignadas a almacenes especificos. Si intenta leer o escribir inventario en un almacen fuera de su alcance, recibira un error 403.
Para movimientos entre almacenes, tanto el origen (wid) como el destino (shipToWid) deben estar en su alcance autorizado.
| Accion | Permiso Requerido |
|---|---|
| Listar lotes / niveles de existencias | Item Master List (SecurityID 11) |
| Recibir existencias | Positive Adjustment (SecurityID 95) |
| Mover existencias | Locate/Move Units (SecurityID 15) |
| Despachar existencias | Negative Adjustment (SecurityID 88) |
En esta página