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 camposProveedor 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 -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étodo | Ruta | Auth |
|---|---|---|
POST | /v1/flights/order/required-fields/:gdsprovider/:offerId | API key requerida |
| Header | Descripción |
|---|---|
Authorization | Bearer <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-Type | Usa application/json para peticiones con cuerpo. |
Esquema de parámetros de la petición
gdsprovider0, 1offerIdEsquema del cuerpo de la petición
offerIdpassengerspassengers[]typeRespuesta exitosa
Devuelve required field definitions for the offer.
Esquema del cuerpo de la respuesta
holderholderphonepassengers[0].phone_number en formato E.164 para flujos que consumen datos de contacto del titularholderemailpassengers[0].email para flujos que consumen email del titularholdercountryCodecreate-order. En flujos gdsprovider=1 se deriva de passengers[0].phone_number en formato E.164passengerspassengers[]idxpassengers[]titlepassengers[].titlepassengers[]typepassengers[].typepassengers[]namepassengers[].firstNamepassengers[]lastNamepassengers[].lastNamepassengers[]agecreate-order y actualmente es false en flujos publicos de vuelospassengers[]nationalitypassengers[].countrypassengers[]genderpassengers[].genderpassengers[]phonepassengers[].phone_numberpassengers[]emailpassengers[].email. Algunos flujos gdsprovider=1 solo consumen el email del primer pasajeropassengers[]addresscreate-order y actualmente es false en flujos publicos de vuelospassengers[]citycreate-order y actualmente es false en flujos publicos de vuelospassengers[]postalCodecreate-order y actualmente es false en flujos publicos de vuelospassengers[]bornDatepassengers[].bornDatepassengers[]documentIdentifierpassengers[].identity_documents[].unique_identifierpassengers[]documentTypepassengers[].identity_documents[].type cuando se usa un objeto de documentopassengers[]documentIssuedAtcreate-order y actualmente es false en flujos publicos de vuelospassengers[]documentExpiresAtpassengers[].identity_documents[].expires_onpassengers[]documentCountryCodepassengers[].identity_documents[].issuing_country_codepassengers[]allowedDocumentspassport, 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 nationalIdliveModeNotas operativas
- Prefiere este endpoint
POSTporque acepta contexto de pasajeros en el cuerpo de la peticion. GET /v1/flights/order/required-fields/:gdsprovider/:offerIdexiste por compatibilidad, pero las integraciones deberian usarPOST.- El contrato real de respuesta es
holdermaspassengers[]; no es un wrapperrequiredFields[]. - Usa la respuesta para decidir si antes de reservar debes recoger
identity_documents,NationalID, nacionalidad o vencimiento de documento. allowedDocumentslimita los valores validos depassengers[].identity_documents[].type. Si incluyedni, recoge tambienpassengers[].NationalID, aunque la respuesta actual no exponga un boolean dedicadonationalId.- En flujos gdsprovider=1,
holder.countryCodeno corresponde a un campo separado de reserva. Se satisface conpassengers[0].phone_numberen formato E.164. - En flujos gdsprovider=1,
passengers[].emailpuede aparecer como requerido aunque solo el email del primer pasajero se consuma como email del titular.
Ejemplo
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
{
"offerId": "off_0000B7VCW4q5OD5G49hmKn",
"passengers": [
{
"type": "adult"
}
]
}Respuestas
| Código | Descripción |
|---|---|
200 | Campos requeridos de reserva resueltos correctamente. |
400 | Solicitud inválida: payload no válido. |
401 | No autorizado: credenciales inválidas o ausentes. |
403 | Prohibido: credenciales inválidas. |
500 | Error interno del servidor |
200 Cuerpo de la respuesta
Tipo de contenido: application/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
}