Stock de artículos
https://api.afer.pro/api/v1/products/stock
POST https://api.afer.pro/consultarStock
El stock de tus artículos, con el número de referencias bajo mínimo para la tarjeta de alertas del panel.
Listado paginado de artículos con su stock actual y su stock mínimo. articulos_bajo_minimo llega siempre (independientemente de los filtros): es el KPI de la tarjeta de alertas.
Un artículo está bajo mínimo cuando su stock es igual o inferior al mínimo configurado (solo cuenta entre los que tienen mínimo > 0, el mismo criterio que el listado interno de productos).
stock y stock_minimo están en la unidad base del artículo. En cuentas con stock multiformato la respuesta dice cuál es esa unidad y adjunta los formatos con su equivalencia; en el resto, esos campos no aparecen y todo sigue igual que siempre.
Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →
Este endpoint requiere autenticación con API key: sin credenciales responde 401.
Parámetros del cuerpo
El cuerpo de la petición es un objeto JSON con Content-Type: application/json.
bajo_minimoboolopcional | Con true, solo los artículos bajo mínimo. |
busquedastringopcional | Filtra por descripción del artículo. |
paginaintopcional | Página a devolver. Por defecto 1. |
por_paginaintopcional | Resultados por página. Por defecto 100, máximo 500. |
Ejemplo de petición
curl -X GET 'https://api.afer.pro/api/v1/products/stock?bajo_minimo=1' \
-H 'X-API-KEY: afer_tk_TU_TOKEN' \
-H 'X-API-SECRET: afer_sk_TU_SECRET'
<?php
$ch = curl_init('https://api.afer.pro/api/v1/products/stock?bajo_minimo=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-KEY: afer_tk_TU_TOKEN',
'X-API-SECRET: afer_sk_TU_SECRET',
]);
$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/api/v1/products/stock?bajo_minimo=1', {
method: 'GET',
headers: {
'X-API-KEY': 'afer_tk_TU_TOKEN',
'X-API-SECRET': 'afer_sk_TU_SECRET'
}
});
const resultado = await respuesta.json();
Respuesta
{
"errorCode": 200,
"errorMsg": "",
"data": {
"total_articulos": 2,
"articulos_bajo_minimo": 2,
"pagina": 1,
"por_pagina": 100,
"num_paginas": 1,
"articulos": [
{
"articuloId": "aBc123XyZ…",
"descripcion": "CANNONDALE SYNAPSE CARBON",
"familiaId": "dEf456…",
"stock": 2,
"stock_minimo": 4,
"bajo_minimo": true
},
{
"articuloId": "dEf456…",
"descripcion": "TOMATE PERA",
"familiaId": "gHi789…",
"stock": 958.4,
"stock_minimo": 200,
"bajo_minimo": false,
"unidad_base": "kg",
"multiformato": true,
"peso_variable": false,
"formatos": [
{
"formatoId": "jKl012…",
"titulo": "Caja 8 kg",
"factor": 8,
"unidad_base": "kg",
"uso": "ambos",
"peso_variable": true,
"decimales": 0,
"defecto_compra": false,
"defecto_venta": true
}
]
}
]
}
}
articuloIdse puede usar directamente en las líneas de crearFactura y en los endpoints de disponibilidad: sus parámetros de artículo aceptan tanto el id cifrado como el numérico legacy.unidad_base,multiformato,peso_variableyformatosson campos añadidos: solo aparecen en cuentas con stock multiformato activado. Los campos de siempre no cambian ni de forma ni de valor. El catálogo completo de formatos está en consultarFormatos.- Un artículo puede tener
unidad_basesin tener formatos: significa que se compra y se vende siempre en esa unidad.