Saltar al contenido principal

Actualizar reserva

PUT 

/api/booking/update

Actualiza una reserva existente en el lugar: la reserva conserva su id y su historial, y los cambios de los campos principales (fechas, lugares, auto o categoría, distancia, ids de transporte, agencia, acuerdos y precio) quedan auditados como comentarios en la reserva. Es una operación de modificación, no de cancelar y volver a reservar.

Fechas, horarios, lugares de retiro/devolución, modelo o categoría del auto, adicionales, ids de transporte (números de vuelo) y campos de precio se actualizan directamente y el precio se recalcula (aplica la misma tolerancia del 1% que en la creación cuando se envía Price). Con disponibilidad por modelo las fechas solicitadas se revalidan, conservando el vehículo asignado cuando sigue disponible; con disponibilidad por categoría el cupo de la categoría solo se vuelve a chequear cuando la categoría cambia — los cambios solo de fechas se aplican sin un nuevo chequeo de disponibilidad.

Estado de la reserva:

  • Las reservas canceladas se reactivan automáticamente. Si la reserva tiene un vehículo asignado (o la disponibilidad es por modelo) se valida su disponibilidad y el request falla con BookingStatusNotAllowUpdate cuando no hay vehículo disponible; las reservas por categoría sin vehículo asignado se reactivan sin chequeo de disponibilidad. La reactivación ocurre antes de la validación de versión, por lo que un request luego rechazado por versión puede haber reactivado la reserva igual.
  • Las reservas entregadas y cerradas no se pueden actualizar: el request falla con BookingStatusNotAllowUpdate y se agrega un comentario de advertencia en la reserva.

Versionado: cuando tanto la versión almacenada como la Version entrante son numéricas, un valor entrante menor o igual al almacenado falla con BookingVersionError y uno mayor se aplica; cuando alguno de los dos valores falta o no es numérico, no se realiza el chequeo de versión y la actualización se aplica.

Datos del cliente: solo se actualizan Customer.Name y Customer.EmailAddress, y únicamente cuando el cliente fue creado por el mismo usuario de API que hace el request; en caso contrario los cambios del cliente se ignoran. Los demás campos del cliente (teléfono, edad, documentos, etc.) nunca se modifican por este endpoint.

Los adicionales se sincronizan con el request: los adicionales opcionales omitidos en Additionals se eliminan de la reserva, mientras que los obligatorios y los agregados por el sistema (p. ej. cargos por fuera de horario) se re-aplican automáticamente aunque se omitan.

Cuando FullResponse es verdadero y la reserva se tarifó por cortes de cobertura VDR, sus líneas de alquiler facturadas por día pueden llevar AppliedCoverageBrackets. Cada una de esas líneas declara un solo rango con todo su Price. Varias líneas del mismo pagador pueden declarar el mismo rango, y el total de ese rango es su suma. El detalle se omite en todas las líneas cuando las líneas guardadas no se pueden relacionar con sus rangos, por ejemplo después de una extensión que paga otro pagador. La respuesta simplificada nunca lo lleva.

Request​

Responses​

Actualiza una reserva existente o Actualiza una reserva existente