Endpoints de la API. Especificación exacta de cada operación de la API v1 (parámetros, cuerpo, respuestas y ejemplos), generada del documento OpenAPI con el que se valida cada respuesta real. Los procedimientos completos están en Guías.

GET /stock-levels

Niveles de existencia por producto

Para cada producto, lo que hay a la mano (on_hand: todo lo que está en almacén) y lo disponible (available: en estado disponible, sin retenciones y descontando lo que reservan los pedidos abiertos). Son las mismas cifras del evento stock.updated. Con warehouse, solo las de ese almacén.

updated_since aquí significa «productos cuyas existencias se movieron desde esa fecha».

Alcance (cliente de integración)
stocks:read
Permiso (token de usuario)
Token válido
Idempotency-Key
No aplica

Parámetros de consulta

  • page integer valor por omisión: 1

    Número de página, desde 1.

  • per_page integer valor por omisión: 25

    Elementos por página, de 1 a 100. Un valor mayor se toma como 100.

  • sort string valor por omisión: item_code

    Campo de orden; antepón - para descendente.

    Valores: item_code, -item_code, name, -name
  • updated_since string (date-time)

    Solo lo que cambió desde esta fecha (ISO 8601), para sincronización incremental.

  • item_code string

    Uno o varios códigos separados por comas (hasta 100).

  • product_id integer

    Id del producto.

  • warehouse string

    Código del almacén; sin él, el total de la empresa.

Respuestas

200 Página de niveles por producto.
  • data array de objetos obligatorio
    6 campos de data
    • product_id integer obligatorio
    • item_code string obligatorio
    • name string | null
    • warehouse string | null

      El almacén pedido; null para el total de la empresa.

    • on_hand number obligatorio

      Todo lo que está en almacén.

    • available number obligatorio

      Lo que se puede prometer o surtir.

  • links objeto obligatorio
    4 campos de links
    • first string (uri) | null obligatorio
    • last string (uri) | null obligatorio
    • prev string (uri) | null obligatorio

      Página anterior; null en la primera.

    • next string (uri) | null obligatorio

      Página siguiente; null en la última.

  • meta objeto obligatorio
    8 campos de meta
    • current_page integer obligatorio
    • from integer | null

      Posición del primer elemento de la página.

    • last_page integer obligatorio
    • links array de objetos

      Enlaces de página para interfaces; no hace falta leerlos.

    • path string (uri)
    • per_page integer obligatorio
    • to integer | null
    • total integer obligatorio

      Total de elementos con los filtros aplicados.

401 Falta el token o no es válido.

Cuerpo: el sobre de error.

402 La función no está en el plan de la empresa, o la cuenta está suspendida o cancelada.

Cuerpo: el sobre de error.

403 Al cliente le falta el alcance (missing_scope), al usuario el permiso (forbidden), o el token de usuario no tiene acceso a la ruta (client_not_allowed: aplicación móvil o usuario con verificación en dos pasos).

Cuerpo: el sobre de error.

422 Datos no válidos (validation_failed), una llave de idempotencia reutilizada con otra solicitud (idempotency_key_reused) o una regla de negocio que bloquea la operación (rule_blocked).

Cuerpo: el sobre de error.

429 Se superó el límite por minuto. Reintente después de los segundos de Retry-After.

Cuerpo: el sobre de error.

Probar

Probar con una instancia

La solicitud sale del navegador hacia la instancia indicada; nada pasa por chainlink.mx. El token se conserva solo en esta pestaña.

Obtener un token con un cliente de integración

Credenciales de Configuración › Clientes API (grant client_credentials). El secreto se usa una vez y no se guarda. Los tokens de usuario se obtienen fuera de la consola; ver Autenticación.

Solicitud
curl "https://empresa.chainlink.mx/api/v1/stock-levels?item_code=P-1001%2CP-1002&warehouse=CEDIS-GDL" \
  -H "Authorization: Bearer $CHAINLINK_TOKEN" \
  -H "Accept: application/json"
Respuesta
{
    "data": [
        {
            "product_id": 101,
            "item_code": "P-1001",
            "name": "Aceite comestible 1 L",
            "warehouse": "CEDIS-GDL",
            "on_hand": 48,
            "available": 46
        },
        {
            "product_id": 102,
            "item_code": "P-1002",
            "name": "Arroz grano largo 1 kg",
            "warehouse": "CEDIS-GDL",
            "on_hand": 120,
            "available": 120
        }
    ],
    "links": {
        "first": "https://demo.chainlink.mx/api/v1/stock-levels?warehouse=CEDIS-GDL&page=1",
        "last": "https://demo.chainlink.mx/api/v1/stock-levels?warehouse=CEDIS-GDL&page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://demo.chainlink.mx/api/v1/stock-levels",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}