Recibe progresivamente ofertas por itinerario, finalización y políticas de cancelación.
Autenticación y headers
| Header | Descripción |
|---|---|
Authorization | Bearer <secret_key>. Conserva el secret en el servidor y nunca lo escribas en logs del cliente. |
X-Travelandz-Id | <public_key>:<profile_code>, donde el profile code persistido tiene el formato dp_<12 alfanuméricos>. |
Accept | application/x-ndjson para respuestas progresivas en stream. |
Content-Type | application/json para peticiones con body JSON. |
Petición
Usa el mismo path, query y body JSON que el endpoint de ofertas sin stream.
Schema de parámetros
gdsproviderCurrently
0journeyIdJourney id returned by the journey search.
Schema de query params
languagereturnCancellationPoliciesSchema del body
passengerspassengers[]typeRespuesta exitosa
Cada línea NDJSON se discrimina por type: itinerary con un item, offers_search_completed o cancellation_policies con un array item.
Schema de respuesta (type=itinerary)
typeitemitemitineraryIndexitemsegmentsitemsegments[]segmentIditemsegments[]departureitemsegments[]departuredepartureAtitemsegments[]departurenameitemsegments[]departurelocationIditemsegments[]departurecountryitemsegments[]departurecountryCodeitemsegments[]arrivalitemsegments[]arrivalarrivalAtitemsegments[]arrivalnameitemsegments[]arrivallocationIditemsegments[]arrivalcountryitemsegments[]arrivalcountryCodeitemsegments[]identifieritemsegments[]transportitemsegments[]durationInMinutesitemsegments[]operatoritemsegments[]operatorcodeitemsegments[]operatornameitemsegments[]operatorimageUrlitemsegments[]serviceitemsegments[]servicenameitemsegments[]serviceimageUrlitemoffersitemoffers[]offerIditemoffers[]partsitemoffers[]parts[]segmentsitemoffers[]parts[]segments[]segmentIditemoffers[]parts[]segments[]amenitiesitemoffers[]parts[]segments[]amenities[]itemoffers[]parts[]flexibilityitemoffers[]parts[]comfortClassitemoffers[]parts[]serviceClassitemoffers[]parts[]conditionsitemoffers[]parts[]conditions[]typeitemoffers[]parts[]conditions[]conditionitemoffers[]parts[]conditions[]noteitemoffers[]parts[]conditions[]conditionKeyitemoffers[]parts[]cancellationPoliciesitemoffers[]parts[]cancellationPolicies[]__typenameitemoffers[]parts[]cancellationPolicies[]__typenametypeitemoffers[]parts[]cancellationPolicies[]descriptionitemoffers[]parts[]cancellationPolicies[]minimum_minutes_before_departureitemoffers[]parts[]cancellationPolicies[]maximum_minutes_before_departureitemoffers[]parts[]cancellationPolicies[]minimum_minutes_after_departureitemoffers[]parts[]cancellationPolicies[]maximum_minutes_after_departureitemoffers[]parts[]cancellationPolicies[]percentageWhen
__typename is CancellationByPercentageitemoffers[]parts[]cancellationPolicies[]chargePercentageWhen
__typename is CancellationByPercentChargeitemoffers[]parts[]cancellationPolicies[]chargeAmountWhen
__typename is CancellationByFixedChargeitemoffers[]parts[]cancellationPolicies[]currencyWhen
__typename is CancellationByFixedChargeitemoffers[]parts[]cancellationPolicies[]perPersonWhen
__typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optionalitemoffers[]parts[]cancellationPolicies[]perLegWhen
__typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optionalitemoffers[]parts[]isRefundableitemoffers[]priceitemoffers[]priceamountitemoffers[]pricecurrencyitemoffers[]createdAtitemoffers[]expiresAt,
Schema de respuesta (type=offers_search_completed)
type,
Schema de respuesta (type=cancellation_policies)
typeitemitem[]conditionKeyitem[]policiesitem[]policies[]__typenameitem[]policies[]__typenametypeitem[]policies[]descriptionitem[]policies[]minimum_minutes_before_departureitem[]policies[]maximum_minutes_before_departureitem[]policies[]minimum_minutes_after_departureitem[]policies[]maximum_minutes_after_departureitem[]policies[]percentageWhen
__typename is CancellationByPercentageitem[]policies[]chargePercentageWhen
__typename is CancellationByPercentChargeitem[]policies[]chargeAmountWhen
__typename is CancellationByFixedChargeitem[]policies[]currencyWhen
__typename is CancellationByFixedChargeitem[]policies[]perPersonWhen
__typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optionalitem[]policies[]perLegWhen
__typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optional,
Schema de respuesta (error=true)
errorcodestatusCodeErrores
400por validación o campos desconocidos.401o403por credenciales API inválidas.500 internal_communication_errorounknown_errorpor fallos del proveedor.- Los errores del stream usan un objeto con
error: true, uncodede negocio ystatusCode.
Notas de uso
Usa type como discriminador; no todas las líneas tienen forma de itinerario. Consume hasta offers_search_completed y conserva las políticas por separado.
Ejemplo cURL
bash
curl --request POST \
--url "https://api.sandbox.travelandz.com/v1/trains/journeys/0/journey_123/offers/stream?language=en&returnCancellationPolicies=true" \
--header "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
--header "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
--header "Accept: application/x-ndjson" \
--data '{"passengers":[{"type":"adult"}]}'