Base URL https://api.afer.pro aferapp.com
Charters

Localizar reserva de charter

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

Localiza una reserva de charter por email, fecha y apellido del cliente, y devuelve el enlace a su detalle en la web de reservas.

Pensado para atención al cliente (por ejemplo, un asistente de WhatsApp): el cliente aporta su email, el apellido con el que reservó y la fecha de la salida, y el endpoint devuelve la URL del detalle de su reserva en tu web de reservas.

Solo se buscan reservas no canceladas de tu cuenta. Si hay varias coincidencias se devuelve la más reciente. El apellido se compara de forma parcial contra el nombre fiscal del cliente.

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.

emailstring
obligatorio
Email con el que se hizo la reserva.
datedate
obligatorio
Fecha de la salida reservada (YYYY-MM-DD).
surnamestring
obligatorio
Apellido del cliente. Coincidencia parcial.

Ejemplo de petición

curl -X POST 'https://api.afer.pro/getBookingCharter' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{
    "email": "maria@ejemplo.com",
    "date": "2026-08-28",
    "surname": "Ferrer"
}'
<?php

$data = [
  'email' => 'maria@ejemplo.com',
  'date' => '2026-08-28',
  'surname' => 'Ferrer',
];

$ch = curl_init('https://api.afer.pro/getBookingCharter');
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/getBookingCharter', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({
      "email": "maria@ejemplo.com",
      "date": "2026-08-28",
      "surname": "Ferrer"
  })
});

const resultado = await respuesta.json();

Respuesta

Devuelve la URL del detalle de la reserva en tu web de reservas, o false si no hay coincidencias.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "url": "https://bookings.tuempresa.com/bookings/?id=aBc123XyZ…"
    }
}

Errores

CasoResultado
email, date o surname ausentes errorMsg indicando el parámetro vacío (p. ej. "Error on service call: Email is empty.").
Sin coincidencias data = false.