Gestión de Stocks
Consultas de stock
La consulta de stock puedes hacerla de varias maneras:
Actualizar stocks
Actualizar stock de un SKU en un almacén
PUT
/v2/warehouses/{warehouse}/skus/{internal_sku}/stock
Actualiza las cantidades de un SKU en un almacén determinado.
Se informa, por cada atributo, el valor que debe quedar. El sistema generará automáticamente los movimientos de ajuste necesarios para que el stock del SKU refleje el valor que se está definiendo.
Parámetros de URL
warehouse
Es el código del almacén en el que se quiere hacer la modificación. Ej. wh-dem-7
internal_sku
Es el código Zipnova del SKU, que verás como internal_sku en la API. Ej. DEM0568784
Body
qty_total
integer
Nueva cantidad total (física)
qty_on_hold_broken
integer
Nueva cantidad retenida por motivo de rotura
qty_on_hold_expiration
integer
Nueva cantidad retenida por motivo de vencimiento
qty_on_hold_for_review
integer
Nueva cantidad retenida por motivo de revisión
comments
string
Comentario que se asociará a los movimientos de inventario (si es que hay diferencias).
Al menos uno de los atributos qty_
debe ser indicdo en el llamado a la API. No es necesario incluir un atributo para el que no habrá cambios. Si se incluye, se debe completar con un valor no nulo.
Ejemplo
PUT /v2/warehouses/wh-dem-7/skus/DEM0568784/stock
{
"qty_total": 79,
"qty_on_hold_broken": 1,
"qty_on_hold_expiration": 5,
"qty_on_hold_for_review": 0,
"comments": "Correccion ajuste manual"
}
Response
{
"message": "SKU DEM0568784 stock updated for warehouse wh-dem-7.",
"stock": {
"sku": {
"sku": "AC2345",
"internal_sku": "DEM0568784",
"account_id": 2,
"management_type": null
},
"warehouse": "wh-dem-7",
"qty_available": 73,
"qty_allocated": 0,
"qty_total": 79,
"qty_warehouse": 0,
"qty_on_hold_broken": 1,
"qty_on_hold_expiration": 5,
"qty_on_hold_for_review": 0,
"updated_at": "2025-06-30T21:25:00.000000Z"
}
}
Crear un movimiento de stock
POST
/v2/warehouses/{warehouse}/movements
El endpoint permite crear movimientos de inventario, que tienen efectos sobre el stock del SKU en un almacén determinado.
Parámetros de la URL
warehouse
Es el código del almacén en el que se quiere hacer la modificación. Ej. wh-dem-7
Body
type
string
REQUERIDO Código del tipo de movimiento. Basado en la lista disponible en tipos de movimiento.
sku
string
REQUERIDO
Es el código Zipnova del SKU, que verás como internal_sku en la API. Ej. DEM0568784
external_id
string
REQUERIDO Es el identificador del movimiento en tus sistemas, para tu referencia. Texto libre
quantity
integer
REQUERIDO
La cantidad de stock que es parte del movimiento. Generalmente se debe indicar un valor entero positivo.
Solo en movimientos del tipo adjustment
, se admiten valores negativos.
comments
string
Comentario que se asociará al movimientos de inventario.
Ejemplo
POST /v2/warehouses/wh-dem-7/movements
{
"type": "adjustment",
"sku": "ABC0289334",
"external_id": "ABC0289334-250506",
"quantity": -3,
"comments": "Correccion ajuste manual"
}
Response
{
"account_id": 11111,
"warehouse_id": 14,
"sku_id": 289334,
"qty": -3,
"total_weight": 34500,
"total_volume": 1436400,
"type": "OUT",
"reason_id": 2,
"author": 1,
"source": "api",
"external_id": "ABC0289334-250506",
"comments": "Correccion ajuste manual",
"updated_at": "2025-05-06T13:59:36.000000Z",
"created_at": "2025-05-06T13:59:36.000000Z",
"id": 117807
}
Tipos de movimiento
GET
/v2/inventory/movement_types
Obtiene una lista de los tipos de movimientos disponibles.
Response
{
"data": [
{
"code": "adjustment",
"name": "Ajuste manual"
},
{
"code": "hold_broken",
"name": "Retención de stock por rotura"
},
{
"code": "hold_expiration",
"name": "Retención de stock vencido"
},
{
"code": "hold_for_review",
"name": "Retenido para analizar"
},
{
"code": "in_canceled_out",
"name": "Ingreso por anulacion de remitos de egreso"
},
{
"code": "in_received",
"name": "Ingreso por recepcion"
},
{
"code": "in_rejected",
"name": "Ingreso por rechazo"
},
{
"code": "in_return",
"name": "Ingreso por devolucion"
},
{
"code": "in_transfer",
"name": "Ingreso por transferencia"
},
{
"code": "out_broken",
"name": "Egreso por rotura"
},
{
"code": "out_confiscated",
"name": "Egreso por decomiso"
},
{
"code": "out_expired",
"name": "Egreso por vencimiento"
},
{
"code": "out_lost",
"name": "Egreso por siniestro"
},
{
"code": "out_review",
"name": "Egreso por Revisión"
},
{
"code": "out_shipped",
"name": "Egreso por despacho"
},
{
"code": "out_transfer",
"name": "Egreso por transferencia interna"
},
{
"code": "out_unstocked",
"name": "Egreso por vaciado"
},
{
"code": "unhold_broken",
"name": "Liberación de stock por rotura"
},
{
"code": "unhold_expiration",
"name": "Liberación de stock vencido"
},
{
"code": "unhold_for_review",
"name": "Liberación de stock para analizar"
}
]
}
Última actualización