Skip to main content
Toda entrega de webhook do ByDoctor é assinada seguindo o padrão Standard Webhooks, usando três cabeçalhos: O segredo de assinatura (whsec_...) é exibido uma única vez, no momento em que você cria o endpoint em Minha Clínica → API e Webhooks. Guarde-o em um cofre de segredos — não há rotação de segredo para um endpoint existente. Se o segredo for perdido ou exposto, crie um novo endpoint, aponte seu receptor para o novo segredo e depois exclua o endpoint antigo.

Verifique com a biblioteca oficial

Não reimplemente a comparação de assinatura — use a biblioteca standardwebhooks, disponível para várias linguagens, que faz a verificação em tempo constante.
verify() lança uma exceção se a assinatura não bater ou se o timestamp estiver fora da janela de tolerância — trate a exceção como um evento inválido e rejeite a requisição.
Verifique a assinatura sobre o corpo bruto (raw) da requisição, nunca sobre um objeto reserializado. Frameworks que fazem parse do JSON antes da sua rota receber a requisição podem mudar a ordem das chaves ou o espaçamento — e qualquer diferença de byte quebra a assinatura. Capture o corpo bruto antes de qualquer middleware de parsing tocar nele.A comparação da assinatura já é feita em tempo constante dentro da biblioteca — não reimplemente essa lógica.Rejeite qualquer payload não verificado antes de tocar no seu banco de dados.