Stock BETA
Endpoints para registrar movimientos de stock desde un sistema externo.
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).
/integraciones/terceros/stock/movimientoEste 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,
}
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
| Regla | Error |
|---|---|
motivoId es obligatorio y debe ser mayor a 0 | "El motivoId es obligatorio para movimientos de terceros" |
| Body inválido o malformado | 403 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.
/integraciones/terceros/motivosRespuesta
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'
Consultá este endpoint una vez y cacheá los motivos localmente. No cambian con frecuencia.
Flujo recomendado
- Consultar
/motivospara obtener los motivos disponibles. - Elegir el
motivoIdque corresponda a la operación. - Armar el payload con el depósito, tipo de transacción, motivo y artículos.
- Enviar a
/stock/movimiento. - Verificar la respuesta
NxResultado; sitipoes1(OK), el movimiento se registró correctamente.
Ver también
- Exportar stock — snapshot de stock de un depósito.
- Esquema de datos — contratos completos.