Saltar al contenido principal

Stock BETA

Endpoints para registrar movimientos de stock desde un sistema externo.

Endpoints en beta

Pueden cambiar de contrato, comportamiento o ser retirados antes de su release definitivo.

Movimiento de stock

Permite registrar un movimiento de stock (ingreso, egreso o transferencia).

POSTBETA/integraciones/terceros/stock/movimiento
Rate limiting

Este endpoint tiene un rate limit de 3 segundos entre requests consecutivas. Si se envía una request antes de que pase la ventana, la API responde 403 Forbidden.

Request

export interface StockMovimiento {
depositoId: number;
motivoId: number; // obligatorio — ver endpoint de motivos
tipo: TipoStockTransaccion;
fecha?: string; // ISO 8601 — si no se envía, usa fecha actual
detalle?: string;
sref?: string; // referencia externa

// solo para transferencias
depositoDosId?: number; // depósito destino

articulos: StockArticulo[];
}
export interface StockArticulo {
articuloId: number;
cantidad: number;
colorId?: number;
talleId?: number;
precio?: number;
detalle?: string;
sref?: string; // referencia externa del item
}

Tipos de transacción

export enum TipoStockTransaccion {
INGRESO_MANUAL = 4,
EGRESO_MANUAL = 5,
INGRESO_STOCK = 6,
EGRESO_STOCK = 7,
TRANSFERENCIA = 10,
}
Nota

Los valores más comunes para integraciones son INGRESO_STOCK (6) y EGRESO_STOCK (7). Para transferencias entre depósitos usar TRANSFERENCIA (10) junto con depositoDosId.

Respuesta

NxResultado

Validaciones

ReglaError
motivoId es obligatorio y debe ser mayor a 0"El motivoId es obligatorio para movimientos de terceros"
Body inválido o malformado403 con "Los datos de stock recibidos son incorrectos"
Request dentro de la ventana de rate limit (3s)403 Forbidden

Ejemplo

curl --request POST \
--url https://api.test-ninox.com.ar/integraciones/terceros/stock/movimiento \
--header 'X-NX-TOKEN: {TU_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"depositoId": 1,
"motivoId": 5,
"tipo": 6,
"detalle": "Ingreso desde sistema externo",
"articulos": [
{ "articuloId": 100, "cantidad": 10, "colorId": 1, "talleId": 2 },
{ "articuloId": 200, "cantidad": 5 }
]
}'

Motivos de stock

Devuelve los motivos disponibles para movimientos de stock. El motivoId retornado es el que debe enviarse en el endpoint de movimiento.

GETBETA/integraciones/terceros/motivos

Respuesta

export interface Motivo {
motivoId: number;
nombre: string;
creado: string;
modificado: string;
eliminado: boolean;
modulos: number[];
}

Ejemplo

curl --request GET \
--url https://api.test-ninox.com.ar/integraciones/terceros/motivos \
--header 'X-NX-TOKEN: {TU_TOKEN}' \
--header 'Content-Type: application/json'
Recomendación

Consultá este endpoint una vez y cacheá los motivos localmente. No cambian con frecuencia.

Flujo recomendado

  1. Consultar /motivos para obtener los motivos disponibles.
  2. Elegir el motivoId que corresponda a la operación.
  3. Armar el payload con el depósito, tipo de transacción, motivo y artículos.
  4. Enviar a /stock/movimiento.
  5. Verificar la respuesta NxResultado; si tipo es 1 (OK), el movimiento se registró correctamente.

Ver también