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 /stocks

Listar existencias

Una fila por producto, ubicación, lote y serie. Filtra por producto (product_id o item_code), almacén (warehouse_id o warehouse), ubicación, lote, serie y estado. Para totales por producto se usa niveles de existencia.

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: id

    Campo de orden; antepón - para descendente.

    Valores: id, -id, qty, -qty, created_at, -created_at, updated_at, -updated_at
  • updated_since string (date-time)

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

  • product_id integer

    Id del producto.

  • item_code string

    Código del producto.

  • warehouse_id integer

    Id del almacén.

  • warehouse string

    Código del almacén (whs_code).

  • bin_code string

    Código de la ubicación.

  • batch string

    Lote.

  • serial string

    Número de serie.

  • status string

    Estado de la fila: in (en almacén) u out (salió).

Respuestas

200 Página de existencias.
  • data array de objetos obligatorio
    13 campos de data
    • id integer obligatorio
    • product_id integer obligatorio
    • product_name string | null
    • item_code string | null
    • qty number obligatorio
    • status string obligatorio

      in (en almacén) u out (salió).

    • serial_number string | null
    • batch_num string | null
    • position objeto | null
      5 campos de position
      • id integer
      • bin_code string | null
      • whs_code string | null
      • warehouse_id integer | null
      • warehouse_name string | null
    • expiry_date string (date) | null
    • inventory_status string | null
      Valores: available, quarantine, in_transit, staged, damaged, blocked
    • created_at string (date-time) | null
    • updated_at string (date-time) | null
  • 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/stocks?warehouse=CEDIS-GDL" \
  -H "Authorization: Bearer $CHAINLINK_TOKEN" \
  -H "Accept: application/json"
Respuesta
{
    "data": [
        {
            "id": 5012,
            "product_id": 101,
            "product_name": "Aceite comestible 1 L",
            "item_code": "P-1001",
            "qty": 48,
            "status": "in",
            "serial_number": null,
            "batch_num": "L2609",
            "position": {
                "id": 210,
                "bin_code": "A-01-01-1",
                "whs_code": "CEDIS-GDL",
                "warehouse_id": 1,
                "warehouse_name": "CEDIS Guadalajara"
            },
            "expiry_date": "2027-03-31",
            "inventory_status": "available",
            "created_at": "2026-09-20T14:10:00.000000Z",
            "updated_at": "2026-10-06T15:58:21.000000Z"
        }
    ],
    "links": {
        "first": "https://demo.chainlink.mx/api/v1/stocks?page=1",
        "last": "https://demo.chainlink.mx/api/v1/stocks?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://demo.chainlink.mx/api/v1/stocks",
        "per_page": 25,
        "to": 1,
        "total": 1
    }
}