El orden de llamadas obligatorio para reservar un transfer y para cambiar una reserva.
Reserva nueva
POST /search
-> POST /pricing
-> POST /book
-> GET /reservations/detailsPricing es obligatorio incluso cuando el viajero no selecciona ninguna amenity. No hay forma de reservar directamente desde un resultado de búsqueda.
Cambio de reserva
POST /reservations/changes/search
-> POST /pricing
-> POST /reservations/changesLa reserva original permanece activa hasta que se confirma el cambio.
Valores que arrastras entre llamadas
| Valor | De dónde viene | A dónde va |
|---|---|---|
searchId | Search o change search | Pricing, booking, consultas de reserva |
resultId | La oferta seleccionada | Pricing y booking |
bookingToken | La oferta seleccionada | Pricing y booking |
pricingToken | Pricing | Booking o confirmación de cambio |
reservationId | Booking | Consultas de reserva, driver y vehículo, tracking, cancelación |
confirmationNumber | Booking | Consultas de reserva, comunicación con el viajero |
bookingToken y pricingToken son opacos. Cópialos en la llamada siguiente exactamente como los recibiste: no los decodifiques, parsees ni modifiques. Pertenecen a la oferta para la que se emitieron y dejan de funcionar cuando esa oferta expira, algo que expiresAt te indica por adelantado.
Estados del resultado de una reserva
El booking y la confirmación de cambio responden HTTP 200 con un campo status:
status | Qué significa | Qué hacer |
|---|---|---|
completed | El transfer está reservado. | Confirma al viajero cuando completed sea true y reservations no esté vacío. |
pending | Todavía no hay respuesta definitiva. | Consulta la reserva para saber cómo terminó. No repitas la petición de booking. |
failed | La reserva fue rechazada. | Muestra el motivo de error y ofrece otra opción al viajero. |
Nunca consideres una reserva confirmada solo porque el status HTTP fue 200.
Después de una petición fallida
Un 502 significa que la petición no se completó, no que no haya pasado nada. Conserva los identificadores que ya tienes y consulta la reserva antes de crear otra.
Qué persistir
Guarda searchId, resultId, bookingToken, pricingToken, reservationId, confirmationNumber y tu propio partnerTrackingId. Sin ellos no podrás consultar, cambiar ni cancelar la reserva más adelante.