Comenzando con la API de Xeni Hotels
La API de Xeni Hotels le brinda acceso programático a más de 2 millones de propiedades hoteleras en todo el mundo. Con una única integración, puede buscar hoteles, verificar la disponibilidad y los precios en tiempo real y completar reservas completamente a través de API, todo a través de una interfaz REST completa y limpia.
Qué puedes hacer
La API de Hoteles v2 admite el ciclo de vida completo de las reservas:
- Buscar ubicaciones: autocompletar nombres de ciudades, regiones o hoteles específicos y recuperar coordenadas geográficas.
- Buscar hoteles: consulte propiedades disponibles por ubicación, fechas, ocupación, clasificación de estrellas, servicios y rango de precios.
- Obtener detalles del hotel: recupere información completa de la propiedad, incluidas fotos, servicios, políticas y reseñas de huéspedes.
- Ver disponibilidad de habitaciones: vea los tipos de habitaciones disponibles con precios en tiempo real para fechas específicas y recuentos de huéspedes.
- Confirmar precio: fije una tarifa por hasta 10 minutos y reciba un token de precio final.
- Crear reservas: reserve mediante programación a través de la API utilizando su propio procesador de pagos, el comerciante de Xeni o redirigiendo a los invitados a la página de pago SSO alojada de Xeni.
- Administrar reservas: recupere los detalles de la reserva y procese cancelaciones mediante el ID de la reserva.
Ambientes
| Medio ambiente | Base URL | Propósito |
|---|---|---|
| UAT (Sandbox) | https://uat.travelapi.ai | Desarrollo y pruebas. No hay reservas reales creado. |
| Producción | XEN IKBPH38https://api.travelapi.ai | En Vivo ambiente. Reservas reales con cargos reales. |
Recomendamos crear y probar su integración en el entorno UAT antes de pasar a producción. La superficie API es idéntica en ambos entornos.
Versiones de API
Todos los puntos finales del hotel utilizan el prefijo de ruta v2. Por ejemplo:
GET /hotels/api/v2/autocompletePOST /hotels/api/v2/propertiesGET /hotels/api/v2/property/{propertyid}POST /hotels/api/v2/properties/availabilityGET /hotels/api/v2/properties/pricePOST /hotels/api/v2/bookingsGET /hotels/api/v2/bookings/{bookingid}PATCH /hotels/api/v2/bookings/{booking_id}
Requisitos previos
Antes de comenzar, necesitará:
- Clave API: su clave API única, proporcionada durante la incorporación.
- API Secret: su clave secreta, que se utiliza junto con la clave API para generar firmas de autenticación.
Si aún no has recibido tus credenciales, contacta a tu representante de cuenta Xeni.
Inicio rápido: su primera búsqueda de hotel
Aquí tienes el flujo mínimo para buscar hoteles. Cada paso se trata en detalle en artículos posteriores.
Paso 1: Autenticar
Genere una firma llamando al punto final de autenticación con su clave API, secreto y una marca de tiempo Unix.
POST /identity/v2/auth/generate
{ "api_key": "your-api-key", "secret": "your-api-secret", "timestamp": 1700000000}
// Response{ "signature": "eyJhbGciOi..."}
La firma es válida por 30 minutos. Inclúyalo en el encabezado Authorization de todas las solicitudes posteriores.
Paso 2: buscar una ubicación
Utilice el punto final de autocompletar para resolver un nombre de destino en coordenadas.
GET /hotels/api/v2/autocomplete?key=Miami
// Response{ "data": [ { "id": "12345", "name": "Miami", "full_name": "Miami, Florida, United States", "country": "United States", "state": "Florida", "location": { "lat": 25.7617, "long": -80.1918 } } ]}
Importante: Los encabezados de respuesta incluirán un x-correlation-id. Guarde este valor: debe pasarse en los encabezados de todas las llamadas API posteriores dentro de esta sesión de búsqueda.
Paso 3: buscar hoteles
Utilizando las coordenadas y el ID de correlación del paso anterior, busque hoteles disponibles.
POST /hotels/api/v2/properties?page=1&limit=20
Headers: Authorization: {signature} x-correlation-id: {correlation_id}
{ "checkindate": "2025-03-15", "checkoutdate": "2025-03-18", "occupancy": [ { "adults": 2, "childs": 0, "childages": [] } ], "lat": 25.7617, "long": -80.1918, "countryofresidence": "US", "sort": [{ "key": "price", "order": "asc" }], "filters": { "ratings": [] }, "is_async": false}
// Response{ "data": { "total": 321, "hotels": [ { "propertyid": "XN00012345", "name": "Oceanview Resort & Spa", "ratings": { "starrating": 4, "userrating": 8.5 }, "rate": { "baserate": 189.00, "totalrate": 567.00, "currency": "USD", "taxandfees": 63.50 }, "amenities": ["Free WiFi", "Pool", "Spa"], "image": { "large": "https://..." }, "contact": { "address": { "line1": "123 Ocean Drive", "city": "Miami Beach", "state": "FL", "postal_code": "33139" } } } ] }}
¿Qué sigue?
A partir de aquí, el flujo típico continúa con:
- Recuperando detalles del hotel para una propiedad específica
- Verificar disponibilidad de habitaciones para ver tipos de habitaciones y precios en tiempo real
- Confirmar el precio para fijar una tarifa
- Completar la reserva: mediante una llamada API directa (con su propio procesador de pagos o el de Xeni) o redirigiendo al huésped a la página de pago SSO de Xeni
Tipo de contenido y encabezados
Todas las solicitudes deben incluir los siguientes encabezados:
| Encabezado | Valor | XENIKBPH5 5Requerido|
|---|---|---|
Tipo de contenido XENIKBPH63 | application/json | SíXENIK BPH70 |
Autorización | Su API firma | Sí |
| Correlación ID de la respuesta API inicial | Después de la primera llamada |
Formato de respuesta
Todas las respuestas de la API devuelven JSON. Las respuestas exitosas envuelven su carga útil en una propiedad data:
{ "data": { ... }}
Las respuestas de error siguen una estructura consistente:
{
"message": "Description of the error",
"status": 400
}*
_Artículo siguiente: Autenticación y firmas API
_