Atualizar reserva
PUT/api/booking/update
Atualiza uma reserva existente no lugar: a reserva mantém seu id e seu histórico, e as alterações dos campos principais (datas, locais, carro ou categoria, distância, ids de transporte, agência, acordos e preço) são auditadas como comentários na reserva. É uma operação de modificação, não de cancelar e reservar novamente.
Datas, horários, locais de retirada/devolução, modelo ou categoria do carro, adicionais, ids de transporte (números de voo) e campos de preço são atualizados diretamente e o preço é recalculado (aplica-se a mesma tolerância de 1% da criação quando Price é enviado). Com disponibilidade por modelo, as datas solicitadas são revalidadas, mantendo o veículo atribuído enquanto continuar disponível; com disponibilidade por categoria, a cota da categoria só é verificada novamente quando a categoria muda — alterações apenas de datas são aplicadas sem uma nova verificação de disponibilidade.
Status da reserva:
- Reservas canceladas são reativadas automaticamente. Se a reserva tem um veículo atribuído (ou a disponibilidade é por modelo), sua disponibilidade é validada e a requisição falha com
BookingStatusNotAllowUpdatequando não há veículo disponível; reservas por categoria sem veículo atribuído são reativadas sem verificação de disponibilidade. A reativação ocorre antes da validação de versão, então uma requisição depois rejeitada por versão pode ter reativado a reserva mesmo assim. - Reservas entregues e fechadas não podem ser atualizadas: a requisição falha com
BookingStatusNotAllowUpdatee um comentário de aviso é adicionado à reserva.
Versionamento: quando tanto a versão armazenada quanto a Version recebida são numéricas, um valor recebido menor ou igual ao armazenado falha com BookingVersionError e um maior é aplicado; quando qualquer um dos dois valores está ausente ou não é numérico, nenhuma verificação de versão é realizada e a atualização é aplicada.
Dados do cliente: apenas Customer.Name e Customer.EmailAddress são atualizados, e somente quando o cliente foi criado pelo mesmo usuário de API que faz a requisição; caso contrário, as alterações do cliente são ignoradas. Os demais campos do cliente (telefone, idade, documentos, etc.) nunca são modificados por este endpoint.
Os adicionais são sincronizados com a requisição: adicionais opcionais omitidos de Additionals são removidos da reserva, enquanto os obrigatórios e os adicionados pelo sistema (p. ex. cobranças fora do horário) são reaplicados automaticamente mesmo quando omitidos.
Quando FullResponse é verdadeiro e a reserva foi tarifada por cortes de cobertura VDR, suas linhas de aluguel faturadas por dia podem levar AppliedCoverageBrackets. Cada uma dessas linhas declara um único intervalo com todo o seu Price. Várias linhas do mesmo pagador podem declarar o mesmo intervalo, e o total desse intervalo é a soma delas. O detalhe é omitido em todas as linhas quando as linhas salvas não podem ser relacionadas aos seus intervalos, por exemplo após uma extensão paga por outro pagador. A resposta simplificada nunca o leva.
Request
Responses
- 200
- 400
- 403
Atualiza uma reserva existente or Atualiza uma reserva existente
Api Error
Usuário não autenticado