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

Name
Value

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

Name
Type
Description

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

Name
Value

warehouse

Es el código del almacén en el que se quiere hacer la modificación. Ej. wh-dem-7

Body

Name
Type
Description

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