Primeros pasos con la API de actividades de XeniCómo reservar una actividadCómo buscar etiquetas y categorías de actividadesCómo cancelar una reserva de actividadCómo comprobar la disponibilidad de la actividadCómo obtener detalles de la actividadCómo recuperar los detalles de la reserva de actividadesCómo buscar actividades con filtrosCómo buscar destinos de actividadesAPI de alquiler de coches: introducciónAPI de alquiler de coches: comprensión de los campos de respuestaCómo reservar un alquiler de cochesCómo obtener detalles del vehículo de alquiler y complementos de equipoCómo recuperar o cancelar una reserva de alquiler de cochesCómo buscar autos de alquiler disponiblesCómo buscar ubicaciones de recogidaCómo utilizar los filtros de búsqueda de alquiler de cochesMejores prácticas de integración de API de ofertasPreguntas frecuentes sobre la API de ofertasPrimeros pasos con la API de ofertas de XeniReferencia de encabezados y parámetros de solicitud de API de ofertasOfertas API Monedas admitidas y localizaciónCómo mostrar ofertas en su aplicaciónCómo buscar ofertas de hoteles por ubicaciónCódigos de error de la API de vuelos y solución de problemasPrimeros pasos con la API de vuelos de XeniCómo reservar un vueloCómo comprobar la disponibilidad y el precio de los vuelosCómo confirmar o cancelar una reserva de vueloCómo recuperar las reglas de tarifas de un vueloCómo recuperar los detalles de la reserva de un vueloCómo buscar aeropuertos usando AutocompletarCómo buscar vuelosCómo utilizar filtros, clasificación y paginación de búsqueda de vuelosCómo comprobar la disponibilidad y el precio de las habitacionesCómo filtrar los resultados de los alquileres vacacionalesCómo obtener detalles, comodidades y accesibilidad de la propiedad del resortCómo mantener y confirmar una reserva de resortCómo liberar una retención de resortCómo recuperar los detalles de la reserva del resortCómo buscar complejos turísticos disponiblesCómo buscar destinos turísticosCómo buscar ubicaciones de alquiler vacacionalCómo buscar alquileres vacacionalesCómo utilizar filtros de búsqueda y clasificación de complejos turísticosComenzando con la API de Xeni ResortsAPI de Resorts: comprensión de los estados y políticas de las reservasPrimeros pasos con la API de alquileres vacacionalesPreguntas frecuentes sobre alquileres vacacionalesTipos de propiedades admitidas para alquileres vacacionalesComprensión de la búsqueda asincrónica para alquileres vacacionalesAutenticación y firmas APIReserva de hoteles: API directa y pago SSOManejo de errores, límites de tasas y mejores prácticasPrimeros pasos con la API de Xeni HotelesGestión de reservas: estado, recuperación y cancelaciónConfirmación de precios y ciclo de vida del tokenRecuperar detalles del hotel y disponibilidad de habitacionesBúsqueda de hoteles: ubicaciones, filtros y paginaciónBuscando HotelesGestión de sesiones e ID de correlaciónAutenticación API y obtención de claves API

Cómo reservar un vuelo

Última actualización: 2026-03-03

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

EncabezadoRequeridoDescripción
x-api-keySu clave API.
x-correlation-idID de correlación de la respuesta de autocompletar.

Cuerpo de solicitud

CampoTipoRequeridoDescripción
cabinavailabilitytokencadenaToken del punto final de disponibilidad.
travelerinfomatrizConjunto de objetos viajeros. Una entrada por pasajero.
countrycodecadenaCódigo de país del teléfono de contacto (por ejemplo, "1" para EE. UU.).
areacodecadenaCódigo de área del teléfono de contacto (por ejemplo, "415").
phonenumbercadenaNúmero de teléfono de contacto.
emailcadenaDirección de correo electrónico de contacto para confirmaciones de reservas.
post_codecadenaNoCódigo postal/ZIP de facturación.
currencycadenaNoCódigo de moneda preferida (por ejemplo, "USD").

Objeto de información del viajero

CampoTipoRequeridoDescripción
typecadenaTipo de pasajero: "ADULT", "CHILD" o "INFANT".
gendercadena"Male" o "Female".
titlecadena"Mr", "Mrs", "Ms" o "Miss".
firstnamecadenaNombre del viajero (como en el documento de identidad/pasaporte).
lastnamecadenaApellido del viajero (como en DNI/pasaporte).
dateofbirthcadenaFecha de nacimiento en formato YYYY-MM-DD.
passportobjetoCondicionalDetalles del pasaporte. Obligatorio si ispassportrequired era true en la respuesta de disponibilidad.
passengernationalitycadenaNoNacionalidad (código de país ISO, por ejemplo, "US").
nationalidcadenaNoNúmero de DNI (para vuelos nacionales cuando corresponda).
extraservicesmatrizNoServicios complementarios opcionales.
frequentflyernumbercadenaNoNúmero del programa de viajero frecuente.
knowtravelernocadenaNoNúmero de viajero conocido (TSA PreCheck / Global Entry).
redressnocadenaNoNúmero de control de reparación (DHS).

Objeto de pasaporte

CampoTipoRequeridoDescripción
passportnumbercadenaNúmero de pasaporte.
expirydatecadenaFecha de vencimiento del pasaporte en formato YYYY-MM-DD.
countrycadenaPaís emisor (código de país ISO, por ejemplo, "US").

Objeto de servicios adicionales

CampoTipoDescripción
service_idcadenaIdentificación del servicio extra (p. ej., equipaje adicional, selección de asiento).
quantityenteroNú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

CampoTipoDescripción
bookingidcadenaIdentificador único de reserva. Utilice esto para confirmar, cancelar o recuperar la reserva.
bookingstatuscadena"BOOKED" (retenido, pendiente de confirmación) o "TICKETED" (ya emitido).
tickettimelimitcadenaFecha límite para confirmar la reserva antes de que se cancele automáticamente. Formato ISO 8601.

Estados de reserva

EstadoDescripción
BOOKEDLa reserva se crea y se mantiene. Debe ser confirmado antes del tickettimelimit para emitir boletos.
TICKETEDSe 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.

Artículos relacionados- Cómo comprobar la disponibilidad y los precios de los vuelos: obtenga el cabinavailabilitytoken.

¿Te resultó útil este artículo?