Error: The rooms cannot be booked without executing the cancellation policies first.

Criada por Rafaela Menegazzo, Modificado em Seg, 18 Mai na (o) 3:22 PM por Rafaela Menegazzo

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

  1. DoBooking retorna HTTP 200, porém o payload contém um objeto Error.

  2. A mensagem cita explicitamente a necessidade de executar cancellation policies antes de reservar.

  3. A reserva não é criada e o campo Rooms pode vir null.

Causa raiz mais comum

Divergência de Token entre as chamadas.

Exemplo típico:

  • getBookingConditions foi chamado com TOKEN_A

  • DoBooking foi 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 getBookingConditions foi executado, mas com parâmetros diferentes do DoBooking (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

  1. Refaça o fluxo garantindo esta ordem:

    • Availability/Search

    • getBookingConditions

    • DoBooking

  2. Garanta consistência total entre getBookingConditions e DoBooking:

    • Mesmo Token

    • Mesmo HotelId

    • Mesmo RoomId

    • Mesmas datas e ocupação

  3. Em caso de retry de DoBooking:

    • Execute novamente getBookingConditions usando o mesmo Token do retry, imediatamente antes de confirmar.

Como confirmar no log rapidamente

Compare os campos abaixo nas duas requisições:

  • Token

  • HotelId

  • RoomId ou RoomIds

Se o Token divergir, a causa está confirmada.

Recomendação de auditoria:

  • Pesquise no log por um getBookingConditions com o mesmo Token do DoBooking que 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:

  • ClientReference

  • Token do DoBooking

  • Requests e responses de:

    • Availability/Search (onde o Token foi gerado)

    • getBookingConditions

    • DoBooking

  • 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

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo