POST/v1/flights/order/required-fields/:gdsprovider/:offerId

Consultar campos requeridos para reservar vuelo

Devuelve los campos dinámicos de pasajero, documentos e identidad necesarios para completar la reserva de una oferta de vuelo seleccionada.

Compartir
POST/v1/flights/order/required-fields/:gdsprovider/:offerId

Consola API

Pruébalo

Envía una petición real al entorno sandbox e inspecciona la respuesta.

Credenciales

Inicia sesión para elegir entre tus API keys guardadas en vez de pegarlas.

Parámetros de ruta

2 campos

Proveedor GDS

Sistema de distribución global usado para obtener contenido de vuelos. Selecciona 0 para el proveedor predeterminado.

ID de oferta

Identificador de la oferta devuelta por una búsqueda de vuelos anterior.

Cuerpo de la petición

Petición cURL

cURL
bash
curl -X POST 'https://api.sandbox.travelandz.com/v1/flights/order/required-fields/0/:offerId' \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE' \
  -H 'Content-Type: application/json' \
  -d '{"offerId":"off_0000B7VCW4q5OD5G49hmKn","passengers":[{"type":"adult"}]}'

Añade tus credenciales para enviar una petición.

Respuesta

Pulsa «¡Pruébalo!» para enviar una petición y ver la respuesta aquí.

Devuelve los campos dinámicos de pasajero, documentos e identidad necesarios para completar la reserva de una oferta de vuelo seleccionada.

Endpoint

MétodoRutaAuth
POST/v1/flights/order/required-fields/:gdsprovider/:offerIdAPI key requerida
Headers obligatorios:
HeaderDescripción
AuthorizationBearer <secret_key>. El secret se muestra una sola vez al crear la credencial.
X-Travelandz-Id<public_key>:<profile_code>. El profile_code es el codigo de Developer Profile con prefijo dp_ que ves en el dashboard. Esto vincula la peticion con un perfil y una credencial.
Content-TypeUsa application/json para peticiones con cuerpo.

Esquema de parámetros de la petición

gdsprovider
number
Valores aceptados: 0, 1
offerId
string

Esquema del cuerpo de la petición

offerId
string
Id de la oferta seleccionada
passengers
array
passengers[]type
enum
adultchildinfant_without_seat

Respuesta exitosa

Devuelve required field definitions for the offer.

Esquema del cuerpo de la respuesta

holder
object
holderphone
boolean
Cuando sea true, envia passengers[0].phone_number en formato E.164 para flujos que consumen datos de contacto del titular
holderemail
boolean
Cuando sea true, envia passengers[0].email para flujos que consumen email del titular
holdercountryCode
boolean
No existe un campo separado en create-order. En flujos gdsprovider=1 se deriva de passengers[0].phone_number en formato E.164
passengers
array
passengers[]idx
number
Indice del pasajero en la respuesta de required-fields
passengers[]title
boolean
Mapea a passengers[].title
passengers[]type
boolean
Mapea a passengers[].type
passengers[]name
boolean
Mapea a passengers[].firstName
passengers[]lastName
boolean
Mapea a passengers[].lastName
passengers[]age
boolean
Solo informativo. No existe campo directo en create-order y actualmente es false en flujos publicos de vuelos
passengers[]nationality
boolean
Cuando sea true, mapea a passengers[].country
passengers[]gender
boolean
Mapea a passengers[].gender
passengers[]phone
boolean
Cuando sea true, mapea a passengers[].phone_number
passengers[]email
boolean
Cuando sea true, mapea a passengers[].email. Algunos flujos gdsprovider=1 solo consumen el email del primer pasajero
passengers[]address
boolean
Solo informativo. No existe campo directo en create-order y actualmente es false en flujos publicos de vuelos
passengers[]city
boolean
Solo informativo. No existe campo directo en create-order y actualmente es false en flujos publicos de vuelos
passengers[]postalCode
boolean
Solo informativo. No existe campo directo en create-order y actualmente es false en flujos publicos de vuelos
passengers[]bornDate
boolean
Cuando sea true, mapea a passengers[].bornDate
passengers[]documentIdentifier
boolean
Cuando sea true, mapea a passengers[].identity_documents[].unique_identifier
passengers[]documentType
boolean
Cuando sea true, mapea a passengers[].identity_documents[].type cuando se usa un objeto de documento
passengers[]documentIssuedAt
boolean
Solo informativo. No existe campo directo en create-order y actualmente es false en flujos publicos de vuelos
passengers[]documentExpiresAt
boolean
Cuando sea true, mapea a passengers[].identity_documents[].expires_on
passengers[]documentCountryCode
boolean
Cuando sea true, mapea a passengers[].identity_documents[].issuing_country_code
passengers[]allowedDocuments
arrayNulable
Valores permitidos para el flujo de documentos de reserva: passport, tax_id, known_traveler_number, passenger_redress_number, dni. Si dni esta permitido, tambien recoge passengers[].NationalID porque la respuesta actual no expone un flag dedicado nationalId
liveMode
boolean
True cuando la peticion se sirve desde el entorno live de Travelandz. Este valor viene de Travelandz, no del payload del proveedor.

Notas operativas

  • Prefiere este endpoint POST porque acepta contexto de pasajeros en el cuerpo de la peticion.
  • GET /v1/flights/order/required-fields/:gdsprovider/:offerId existe por compatibilidad, pero las integraciones deberian usar POST.
  • El contrato real de respuesta es holder mas passengers[]; no es un wrapper requiredFields[].
  • Usa la respuesta para decidir si antes de reservar debes recoger identity_documents, NationalID, nacionalidad o vencimiento de documento.
  • allowedDocuments limita los valores validos de passengers[].identity_documents[].type. Si incluye dni, recoge tambien passengers[].NationalID, aunque la respuesta actual no exponga un boolean dedicado nationalId.
  • En flujos gdsprovider=1, holder.countryCode no corresponde a un campo separado de reserva. Se satisface con passengers[0].phone_number en formato E.164.
  • En flujos gdsprovider=1, passengers[].email puede aparecer como requerido aunque solo el email del primer pasajero se consuma como email del titular.

Ejemplo

bash
bash
curl -X POST https://api.sandbox.travelandz.com/v1/flights/order/required-fields/0/offer_123 \
  -H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  -H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  -H "Content-Type: application/json" \
  -d '{"offerId":"offer_123","passengers":[{"type":"adult"}]}'

Cuerpo de la petición - Ejemplo

json
json
{
  "offerId": "off_0000B7VCW4q5OD5G49hmKn",
  "passengers": [
    {
      "type": "adult"
    }
  ]
}

Respuestas

CódigoDescripción
200Campos requeridos de reserva resueltos correctamente.
400Solicitud inválida: payload no válido.
401No autorizado: credenciales inválidas o ausentes.
403Prohibido: credenciales inválidas.
500Error interno del servidor

200 Cuerpo de la respuesta

Tipo de contenido: application/json

json
json
{
  "holder": {
    "phone": false,
    "email": false,
    "countryCode": false
  },
  "passengers": [
    {
      "idx": 0,
      "title": true,
      "type": true,
      "name": true,
      "lastName": true,
      "age": false,
      "nationality": false,
      "gender": true,
      "phone": true,
      "email": true,
      "address": false,
      "city": false,
      "postalCode": false,
      "bornDate": true,
      "documentIdentifier": false,
      "documentType": false,
      "documentIssuedAt": false,
      "documentExpiresAt": false,
      "documentCountryCode": false,
      "allowedDocuments": null
    }
  ],
  "liveMode": false
}