Cómo reservar un vuelo
El punto final de reserva crea una nueva reserva de vuelo. Necesita el cabinavailabilitytoken de la verificación de disponibilidad y la información completa del viajero para todos los pasajeros.
Punto final
POST /flights/api/v2/bookings
encabezados
| Encabezado | Requerido | Descripción |
|---|
x-api-key | Sí | Su clave API. |
x-correlation-id | Sí | ID de correlación de la respuesta de autocompletar. |
Cuerpo de solicitud
| Campo | Tipo | Requerido | Descripción |
|---|
cabinavailabilitytoken | cadena | Sí | Token del punto final de disponibilidad. |
travelerinfo | matriz | Sí | Conjunto de objetos viajeros. Una entrada por pasajero. |
countrycode | cadena | Sí | Código de país del teléfono de contacto (por ejemplo, "1" para EE. UU.). |
areacode | cadena | Sí | Código de área del teléfono de contacto (por ejemplo, "415"). |
phonenumber | cadena | Sí | Número de teléfono de contacto. |
email | cadena | Sí | Dirección de correo electrónico de contacto para confirmaciones de reservas. |
post_code | cadena | No | Código postal/ZIP de facturación. |
currency | cadena | No | Código de moneda preferida (por ejemplo, "USD"). |
Objeto de información del viajero
| Campo | Tipo | Requerido | Descripción |
|---|
type | cadena | Sí | Tipo de pasajero: "ADULT", "CHILD" o "INFANT". |
gender | cadena | Sí | "Male" o "Female". |
title | cadena | Sí | "Mr", "Mrs", "Ms" o "Miss". |
firstname | cadena | Sí | Nombre del viajero (como en el documento de identidad/pasaporte). |
lastname | cadena | Sí | Apellido del viajero (como en DNI/pasaporte). |
dateofbirth | cadena | Sí | Fecha de nacimiento en formato YYYY-MM-DD. |
passport | objeto | Condicional | Detalles del pasaporte. Obligatorio si ispassportrequired era true en la respuesta de disponibilidad. |
passengernationality | cadena | No | Nacionalidad (código de país ISO, por ejemplo, "US"). |
nationalid | cadena | No | Número de DNI (para vuelos nacionales cuando corresponda). |
extraservices | matriz | No | Servicios complementarios opcionales. |
frequentflyernumber | cadena | No | Número del programa de viajero frecuente. |
knowtravelerno | cadena | No | Número de viajero conocido (TSA PreCheck / Global Entry). |
redressno | cadena | No | Número de control de reparación (DHS). |
Objeto de pasaporte
| Campo | Tipo | Requerido | Descripción |
|---|
passportnumber | cadena | Sí | Número de pasaporte. |
expirydate | cadena | Sí | Fecha de vencimiento del pasaporte en formato YYYY-MM-DD. |
country | cadena | Sí | País emisor (código de país ISO, por ejemplo, "US"). |
Objeto de servicios adicionales
| Campo | Tipo | Descripción |
|---|
service_id | cadena | Identificación del servicio extra (p. ej., equipaje adicional, selección de asiento). |
quantity | entero | Número de unidades para este servicio. |
Solicitud de ejemplo
JSON
{
"cabinavailabilitytoken": "cat_xyz789abc123",
"traveler_info": [
{
"type": "ADULT",
"gender": "Male",
"title": "Mr",
"first_name": "John",
"last_name": "Smith",
"dateofbirth": "1985-06-15",
"passport": {
"passport_number": "AB1234567",
"expiry_date": "2030-12-31",
"country": "US"
},
"passenger_nationality": "US",
"frequentflyernumber": "UA123456789",
"knowtravelerno": "12345678",
"extra_services": [
{
"serviceid": "extrabag_23kg",
"quantity": 1
}
]
},
{
"type": "CHILD",
"gender": "Female",
"title": "Miss",
"first_name": "Emma",
"last_name": "Smith",
"dateofbirth": "2018-03-22",
"passport": {
"passport_number": "CD7654321",
"expiry_date": "2031-06-30",
"country": "US"
},
"passenger_nationality": "US"
}
],
"country_code": "1",
"area_code": "415",
"phone_number": "5551234",
"email": "john.smith@example.com",
"post_code": "94105",
"currency": "USD"
}
Ejemplo de respuesta
JSON
{
"status": "success",
"data": {
"booking_id": "XNFiEtVA3LL",
"booking_status": "BOOKED",
"tickettimelimit": "2026-04-14T23:59:00Z"
},
"message": "Booking created successfully"
}
Campos de respuesta
| Campo | Tipo | Descripción |
|---|
bookingid | cadena | Identificador único de reserva. Utilice esto para confirmar, cancelar o recuperar la reserva. |
bookingstatus | cadena | "BOOKED" (retenido, pendiente de confirmación) o "TICKETED" (ya emitido). |
tickettimelimit | cadena | Fecha límite para confirmar la reserva antes de que se cancele automáticamente. Formato ISO 8601. |
Estados de reserva
| Estado | Descripción |
|---|
BOOKED | La reserva se crea y se mantiene. Debe ser confirmado antes del tickettimelimit para emitir boletos. |
TICKETED | Se han emitido billetes. La reserva está totalmente confirmada. |
Notas importantes
- Los nombres de los viajeros deben coincidir con la identificación oficial. Los nombres deben coincidir exactamente con el pasaporte o la identificación gubernamental utilizada para viajar.
- Los detalles del pasaporte se requieren condicionalmente. Marque el campo
ispassportrequired de la respuesta de disponibilidad. Los vuelos internacionales normalmente requieren datos de pasaporte. - Confirmar antes del límite de tiempo. Si el estado de la reserva es
BOOKED, deberás confirmarlo antes del tickettimelimit o la reserva será liberada. - Una entrada de viajero por pasajero. El número de entradas en
traveler_info debe coincidir con el total de adults + children + infants de la búsqueda original. - Los bebés no tienen asiento propio. Los bebés se sientan en el regazo de un adulto que los acompañe.