Skip to content

Integração Stays (webhook)

Automação de webhook que reage aos eventos de reserva enviados pela Stays. Atende as ações reservation.created e reservation.modified.

Nos eventos de criação e de modificação, o script:

  1. Procura a reserva pelo id_externo, com até três tentativas espaçadas de 0,5 segundo. A espera é curta de propósito, porque esperas longas podem estourar o tempo da automação.
  2. Se a reserva não aparecer, encerra sem erro. O próximo evento de modificação ou uma correção manual resolve o caso.
  3. Se encontrar, sincroniza os hóspedes e as taxas.

Para cada hóspede da lista da Stays com nome preenchido:

  • Se já existe um hóspede com o mesmo nome na mesma reserva, atualiza os dados.
  • Se não existe, cria um novo registro, mas somente se o nome tiver pelo menos duas palavras (nome e sobrenome).

Campos preenchidos: nome, e-mail, CPF, documento, idioma, responsável pela reserva, telefone, data de nascimento e idade.

O script soma as taxas de extrasDetails e hostingDetails e grava uma única linha por reserva. Cada tipo de taxa vai para uma coluna específica:

Nome na Stays Coluna no Jestor
Taxa de roupa de cama e toalhas taxa_roupa_cama_toalhas
Taxa de limpeza taxa_limpeza
Taxa de Lavanderia taxa_lavanderia
ISS iss
PASS_THROUGH_PET_FEE taxa_pet
Additional Guests Fee taxa_hospedes_adicionais
Booking.com taxes and charges taxas_booking
Taxa de serviço taxa_servico
Qualquer outra outras_taxas

Regras adicionais:

  • Se houver taxa de pet, marca reserva_com_pets_1 como 1 na reserva.
  • Se a reserva ainda não tem linha de taxas e o total é maior que zero, cria a linha.
  • Se já existe, compara os valores e atualiza apenas se algo mudou. Se houver linhas duplicadas, remove as extras.
  • Criação: se o operador for StaysBot, o script para sem criar nada. Nos demais casos, cria o bloqueio.
  • Modificação: atualiza o bloqueio existente ou cria se não existir.

Os bloqueios gravam o intervalo nos campos de e ate, que são lidos pela página de Bloqueios ativos.

O evento reservation.canceled não é tratado aqui. Segundo o código, o Worker atualiza o status sozinho.

Slug Papel
4t52yq48kfmfe5lcnhmgv Reservas (somente leitura neste script)
pfziere4qayrb1ui_4bv4 Apartamentos
_zl5s03z3hn5taf86zgot Hóspedes
rl3s1prbot8y5xzdc9jru Taxas por reserva
6gyrmgkhgiyhnkyybnlez Bloqueios