Base URL https://api.afer.pro aferapp.com
Alquiler y disponibilidad

Reservas por variaciones

POST https://api.afer.pro/consultarReservasArticulos

Devuelve las variaciones con stock de los artículos indicados y el detalle de cada reserva que ocupa el rango de fechas.

La versión detallada de consultarDisponibilidadArticulos: en lugar del agregado de unidades reservadas, devuelve cada reserva individual que se solapa con el rango — con sus fechas, su cantidad y su procedencia (línea de albarán o de factura directa).

Útil para pintar calendarios de ocupación o para lógica de asignación fina en tu web.

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 →

Parámetros del cuerpo

El cuerpo de la petición es un objeto JSON con Content-Type: application/json.

articulosint[]
obligatorio
Array de IDs de artículo a consultar.
fecha_iniciodate
obligatorio
Inicio del período (YYYY-MM-DD).
fecha_findate
opcional
Fin del período. Si se omite, se consulta solo el día de fecha_inicio.

Ejemplo de petición

curl -X POST 'https://api.afer.pro/consultarReservasArticulos' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{
    "articulos": [
        52087
    ],
    "fecha_inicio": "2026-09-01",
    "fecha_fin": "2026-09-30"
}'
<?php

$data = [
  'articulos' => [
    0 => 52087,
  ],
  'fecha_inicio' => '2026-09-01',
  'fecha_fin' => '2026-09-30',
];

$ch = curl_init('https://api.afer.pro/consultarReservasArticulos');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    '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/consultarReservasArticulos', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({
      "articulos": [
          52087
      ],
      "fecha_inicio": "2026-09-01",
      "fecha_fin": "2026-09-30"
  })
});

const resultado = await respuesta.json();

Respuesta

Devuelve variaciones (solo las que tienen stock configurado), cada una con su array reservas. En cada reserva, id es la referencia documento-línea y procedencia indica si viene de un albarán o de una factura.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "variaciones": [
            {
                "articulo_descripcion": "CANNONDALE SYNAPSE CARBON",
                "variacion_titulo": "Talla 58",
                "variacion_id": "524997",
                "articulo_fk": "52087",
                "variacion1_fk": "18",
                "unidades_disponibles": "4",
                "reservas": [
                    {
                        "cantidad": "1",
                        "variacion": "524997",
                        "startDate": "2026-09-05",
                        "endDate": "2026-09-10",
                        "id": "88412-3",
                        "procedencia": "albaran"
                    }
                ]
            }
        ]
    }
}

Errores

CasoResultado
articulos vacío errorMsg "Error on service call: El parametro artículos está vacío."
fecha_inicio vacío errorMsg "Error on service call: El parametro fecha inicio está vacío."
Error interno de consulta data = {"error": "mensaje"}.