Base URL https://api.afer.pro Referencia aferapp.com Reservar demo

Stock de artículos

GET https://api.afer.pro/api/v1/products/stock
Alias en castellano (v0, sigue operativo): 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.

Autenticación

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_minimobool
opcional
Con true, solo los artículos bajo mínimo.
busquedastring
opcional
Filtra por descripción del artículo.
paginaint
opcional
Página a devolver. Por defecto 1.
por_paginaint
opcional
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

200 · application/json
{
    "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
                    }
                ]
            }
        ]
    }
}
Notas
  • articuloId se 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_variable y formatos son 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_base sin tener formatos: significa que se compra y se vende siempre en esa unidad.