For the complete documentation index, see llms.txt. This page is also available as Markdown.

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
/warehouses/{warehouse}/skus/{sku}/stock

Actualiza el stock total y los distintos tipos de "on hold" para un SKU específico en un almacén.

Autorizaciones
AuthorizationstringRequerido

Autenticación básica HTTP utilizando token como nombre de usuario y secret como contraseña

Parámetros de ruta
warehousestringRequerido

Código del almacén

skustringRequerido

ID interno o código del SKU

Cuerpo
qty_totalintegerOpcional

Cantidad total de stock

Example: 100
qty_on_hold_brokenintegerOpcional

Cantidad en hold por rotura

Example: 5
qty_on_hold_expirationintegerOpcional

Cantidad en hold por vencimiento

Example: 3
qty_on_hold_for_reviewintegerOpcional

Cantidad en hold para revisión

Example: 2
commentsstringOpcional

Comentario sobre el movimiento

Example: Ajuste por inventario físico
Respuestas
200

Stock actualizado exitosamente

application/json
messagestringOpcional

Confirmación de la operación

Example: SKU SKU-001 stock updated for warehouse ba-4.
put/warehouses/{warehouse}/skus/{sku}/stock
PUT /v2/warehouses/{warehouse}/skus/{sku}/stock HTTP/1.1
Host: api.zipnova.com.ar
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 137

{
  "qty_total": 100,
  "qty_on_hold_broken": 5,
  "qty_on_hold_expiration": 3,
  "qty_on_hold_for_review": 2,
  "comments": "Ajuste por inventario físico"
}
{
  "message": "SKU SKU-001 stock updated for warehouse ba-4.",
  "stock": {
    "sku": {
      "sku": "SKU-001",
      "internal_sku": "INT-001",
      "account_id": 42,
      "management_type": "units"
    },
    "warehouse": "AR-GBA-01",
    "qty_available": 100,
    "qty_allocated": 5,
    "qty_total": 110,
    "qty_warehouse": 110,
    "qty_on_hold_broken": 2,
    "qty_on_hold_expiration": 0,
    "qty_on_hold_for_review": 3,
    "updated_at": "2024-03-15T09:30:00-03:00"
  }
}

Crear un movimiento de stock

Registrar movimiento de inventario

post
/warehouses/{warehouse}/movements

Registra un movimiento de inventario (entrada, salida o hold) para un SKU en un almacén.

El campo quantity siempre debe ser positivo. El sistema determina el signo automáticamente según el prefijo del type:

  • Tipos in_*: se registran como entrada (suma stock)

  • Tipos out_*: se registran como salida (resta stock)

  • Tipos hold_*: colocan unidades en espera (no modifica qty_total)

  • Tipos unhold_*: liberan unidades de espera

El campo external_id garantiza idempotencia: si se envía el mismo external_id para el mismo SKU y almacén, el movimiento no se duplica.

Autorizaciones
AuthorizationstringRequerido

Autenticación básica HTTP utilizando token como nombre de usuario y secret como contraseña

Parámetros de ruta
warehousestringRequerido

Código del almacén

Example: ba-4
Cuerpo
typestring · enumOpcional

Código del motivo del movimiento. Determina si es entrada, salida o hold.

Example: in_receivedValores posibles:
skustringOpcional

Código sku del producto. Requerido si no se envía internal_sku.

Example: SKU-001
internal_skustringOpcional

Código internal_sku del producto. Requerido si no se envía sku.

Example: INT-001
quantityintegerRequerido

Cantidad del movimiento. Siempre enviar un valor positivo; el sistema aplica el signo según el tipo.

Example: 10
external_idstringRequerido

Identificador externo del movimiento. Garantiza idempotencia: si ya existe un movimiento con este ID para el mismo SKU y almacén, no se duplica.

Example: ORDER-12345
commentsstringOpcional

Comentarios opcionales sobre el movimiento

Example: Recepción de mercadería por OC #789
relation_typestring · enumOpcional

Tipo de entidad relacionada con este movimiento

Example: fulfillment_order_idValores posibles:
relation_idstringOpcional

ID de la entidad relacionada (corresponde al tipo indicado en relation_type)

Example: 456
Respuestas
201

Movimiento registrado exitosamente

application/json

Representa un movimiento de inventario de un SKU en un depósito (entrada, salida, ajuste, etc.).

idintegerOpcional

ID del movimiento

Example: 4521
created_atstring · date-timeOpcional

Fecha y hora en que se registró el movimiento

Example: 2024-03-15T09:30:00-03:00
warehousestring · nullableOpcional

Código del depósito donde ocurrió el movimiento

Example: AR-GBA-01
post/warehouses/{warehouse}/movements
POST /v2/warehouses/{warehouse}/movements HTTP/1.1
Host: api.zipnova.com.ar
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 215

{
  "type": "in_received",
  "sku": "SKU-001",
  "internal_sku": "INT-001",
  "quantity": 10,
  "external_id": "ORDER-12345",
  "comments": "Recepción de mercadería por OC #789",
  "relation_type": "fulfillment_order_id",
  "relation_id": "456"
}
{
  "id": 4521,
  "created_at": "2024-03-15T09:30:00-03:00",
  "sku": {
    "sku": "SKU-001",
    "internal_sku": "INT-123",
    "account_id": 10
  },
  "warehouse": "AR-GBA-01",
  "movement": {
    "qty_changed": -5,
    "type": "OUT",
    "code": "SHIPMENT",
    "reason": "Descontado por envío",
    "comments": "Envío #9001"
  }
}

Listar tipos de movimiento

get
/inventory/movement_types

Obtiene una lista de todos los tipos de movimiento de inventario disponibles.

Autorizaciones
AuthorizationstringRequerido

Autenticación básica HTTP utilizando token como nombre de usuario y secret como contraseña

Respuestas
200

Lista de tipos de movimiento

application/json

Motivo o tipo de movimiento de inventario. Usar el campo code al referenciar un tipo de movimiento en otras operaciones.

codestringOpcional

Código del tipo de movimiento

Example: SHIPMENT
namestringOpcional

Nombre descriptivo del tipo de movimiento

Example: Descontado por envío
get/inventory/movement_types
GET /v2/inventory/movement_types HTTP/1.1
Host: api.zipnova.com.ar
Authorization: Basic username:password
Accept: */*
[
  {
    "code": "SHIPMENT",
    "name": "Descontado por envío"
  }
]

Última actualización