GET/v1/transfers/tracking/:reservationId/events/stream

Transmitir eventos de tracking

Recibe continuamente la posición del vehículo y el estado del viaje mediante Server-Sent Events (SSE).

Compartir

Recibe continuamente la posición del vehículo y el estado del viaje mediante Server-Sent Events (SSE).

Autenticación y headers

HeaderDescripción
AuthorizationBearer <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>.
LANGHeader recomendado para el idioma. También se acepta Accept-Language.
Accepttext/event-stream para respuestas progresivas en stream.

Headers de respuesta

http
http
Content-Type: text/event-stream
Cache-Control: no-cache, no-transform
Connection: keep-alive

Petición

Este endpoint no recibe body y acepta los mismos parámetros que el endpoint del último evento. Envía Accept: text/event-stream. El idioma capturado al abrir la conexión se reutiliza en todos los eventos posteriores.

Schema de parámetros

reservationId
string
Reservation identifier returned when the booking was created.

Schema de query params

currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
No
Lowercase values are accepted and normalized. Defaults to USD on a new search and is inherited afterwards.
language
enum
en-USes-ESde-DEfr-FRpt-BRzh-CNit-IT
No
Legacy field. Prefer the LANG or Accept-Language header.

Respuesta exitosa

Cada evento update incluye el mismo payload que el endpoint del último evento.

Schema de respuesta

location
object
locationlatitude
numberNo
locationlongitude
numberNo
status
stringNo
Journey state, for example driver_departed_to_pickup.
timestamp
string
Formato: ISO 8601
No
trackingId
stringNo

Eventos del stream

EventoDescripción
updateUn snapshot actualizado. Reemplaza lo que estás mostrando con el payload del último evento.
errorUn 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
text
event: update
data: {"location":{"latitude":40.7607634,"longitude":-73.971212},"status":"driver_departed_to_pickup","timestamp":"2026-07-25T17:47:01.761854Z","trackingId":"c90n51960f274447b29473fc0d995f6a"}

event: error
data: {"code":"transfer_provider_error","message":"Unable to load tracking data"}

Errores

HTTPCódigoSignificadoAcción recomendada
400El body, la query o el path son inválidos, o incluyen una propiedad desconocida.Corrige la petición usando el array message.
400transfer_invalid_currencyLa moneda está fuera de la lista soportada.Usa una moneda soportada.
400transfer_invalid_languageEl idioma solicitado no está soportado.Usa uno de los valores de idioma documentados.
429transfer_provider_errorEl servicio está temporalmente limitado por rate limit.Reintenta con backoff exponencial.
502transfer_provider_errorLa 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
bash
curl --request GET \
  --url "https://api.sandbox.travelandz.com/v1/transfers/tracking/f390daff1fdf4cccb19b7abd825dc011/events/stream?currency=USD" \
  -H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  -H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  -H "Accept: text/event-stream"