Recibe actualizaciones de driver y vehículo mediante Server-Sent Events.
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 usa el formato dp_<12 alfanuméricos>. |
LANG | Header recomendado para el idioma. También se acepta Accept-Language. |
Accept | text/event-stream para respuestas progresivas en stream. |
Headers de respuesta
http
Content-Type: text/event-stream
Cache-Control: no-cache, no-transform
Connection: keep-alivePetición
Este endpoint no recibe body y acepta los mismos parámetros que el endpoint de snapshot. Envía Accept: text/event-stream.
Schema de parámetros
reservationIdReservation identifier returned when the booking was created.
Schema de query params
currencyLowercase values are accepted and normalized. Defaults to
USD on a new search and is inherited afterwards.languageLegacy field. Prefer the
LANG or Accept-Language header.Respuesta exitosa
Cada evento update incluye el mismo payload que el endpoint de snapshot. El stream permanece abierto hasta que lo cierres.
Schema de respuesta
statusAssignment state, for example
active.driverdriveriddriverexternalIddrivernamedriverphonedriverlicenseNumberdriverimageUrlvehiclevehicleidvehicleexternalIdvehicletypevehiclemanufacturervehiclemodelvehicleplatevehiclecolorvehicledescriptionvehicleimageUrlEventos del stream
| Evento | Descripción |
|---|---|
update | Un snapshot actualizado. Reemplaza lo que estás mostrando con el payload del último evento. |
error | Un refresco no pudo completarse. Incluye code y message. La conexión no se cierra automáticamente; el siguiente refresco puede tener éxito. |
Ejemplo de stream
text
event: update
data: {"status":"active","driver":{"id":"123","externalId":"DRV456","name":"John Doe","phone":"+1234567890","licenseNumber":"AB123456"},"vehicle":{"id":"789","externalId":"VEH789","type":"Sedan","manufacturer":"Toyota","model":"Camry","plate":"XYZ1234","color":"Blue"}}
event: error
data: {"code":"transfer_provider_error","message":"Unable to load vehicle information"}Errores
| HTTP | Código | Significado | Acción recomendada |
|---|---|---|---|
400 | El body, la query o el path son inválidos, o incluyen una propiedad desconocida. | Corrige la petición usando el array message. | |
400 | transfer_invalid_currency | La moneda está fuera de la lista soportada. | Usa una moneda soportada. |
400 | transfer_invalid_language | El idioma solicitado no está soportado. | Usa uno de los valores de idioma documentados. |
429 | transfer_provider_error | El servicio está temporalmente limitado por rate limit. | Reintenta con backoff exponencial. |
502 | transfer_provider_error | La petición no pudo completarse. | No asumas que tuvo éxito. Conserva tus identificadores y consulta la reserva cuando la operación pudiera haberse creado. |
Notas de uso
Mantén la conexión abierta solo mientras el viajero esté viendo la vista en vivo, y ciérrala explícitamente después. Gestiona los eventos update y error, y reconecta tras una interrupción de red.
La validación que falla antes de abrir el stream se devuelve como un error HTTP JSON normal. Una vez abierto el stream, los fallos llegan como eventos error.
Ejemplo cURL
bash
curl --request GET \
--url "https://api.sandbox.travelandz.com/v1/transfers/reservations/f390daff1fdf4cccb19b7abd825dc011/vehicle/stream?currency=USD" \
-H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
-H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
-H "Accept: text/event-stream"