Mensagem do erro
The rooms cannot be booked without executing the cancellation policies first.
O que esse erro significa
Esse retorno indica que a confirmação da reserva foi bloqueada porque as políticas de cancelamento não foram executadas e registradas para a mesma tentativa de reserva.
No fluxo de hotel, a confirmação (DoBooking) depende de um passo anterior que valida e “carimba” as políticas de cancelamento (getBookingConditions). Esse carimbo fica associado ao Token da tentativa.
Se o DoBooking chega com um Token que não possui esse carimbo, o sistema entende que as políticas não foram executadas e retorna o erro.
Sintomas mais comuns
DoBookingretorna HTTP 200, porém o payload contém um objetoError.A mensagem cita explicitamente a necessidade de executar cancellation policies antes de reservar.
A reserva não é criada e o campo
Roomspode virnull.
Causa raiz mais comum
Divergência de Token entre as chamadas.
Exemplo típico:
getBookingConditionsfoi chamado com TOKEN_ADoBookingfoi chamado com TOKEN_B
Mesmo que hotel e quarto sejam os mesmos, o carimbo de políticas fica amarrado ao Token. Se o Token não for idêntico, a validação falha.
Outras causas possíveis
O
getBookingConditionsfoi executado, mas com parâmetros diferentes doDoBooking(hotel, quarto, datas, ocupação).O Token expirou por demora entre as etapas.
Retentativas em paralelo ou múltiplas abas, gerando troca de Token no meio do fluxo.
Reaproveitamento de Token antigo salvo em sessão/cache do integrador.
Como resolver
Refaça o fluxo garantindo esta ordem:
Availability/Search
getBookingConditionsDoBooking
Garanta consistência total entre
getBookingConditionseDoBooking:Mesmo Token
Mesmo
HotelIdMesmo
RoomIdMesmas datas e ocupação
Em caso de retry de
DoBooking:Execute novamente
getBookingConditionsusando o mesmo Token do retry, imediatamente antes de confirmar.
Como confirmar no log rapidamente
Compare os campos abaixo nas duas requisições:
TokenHotelIdRoomIdouRoomIds
Se o Token divergir, a causa está confirmada.
Recomendação de auditoria:
Pesquise no log por um
getBookingConditionscom o mesmo Token doDoBookingque falhou.Se não existir, o fluxo pulou a etapa ou trocou o Token.
Prevenção
Não reutilize Token entre tentativas diferentes.
Evite paralelismo no checkout (duas confirmações em paralelo).
Ao atualizar seleção de quarto, datas ou ocupação, gere novo Token e refaça
getBookingConditions.Padronize o armazenamento do Token no integrador, sempre sobrescrevendo o valor anterior na sessão do usuário.
O que enviar ao suporte, quando precisar de ajuda
Para análise completa, encaminhe:
ClientReferenceToken do
DoBookingRequests e responses de:
Availability/Search (onde o Token foi gerado)
getBookingConditionsDoBooking
Horário aproximado do teste e ambiente (produção/homologação)
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo