Pular para o conteúdo principal
Toda entrega é assinada com o segredo do canal, no formato whsec_ seguido de 64 caracteres. Ele fica na aba Webhooks do canal, no painel.

Como a assinatura é calculada

O timestamp é o valor do cabeçalho x-datafy-timestamp, e o corpo_cru são os bytes exatos recebidos.
Calcule sobre o corpo cru, antes de qualquer interpretação. Converter para objeto e serializar de novo muda espaços e ordem de chaves, e a assinatura deixa de bater.

Exemplo

Compare com timingSafeEqual em vez de ===. A comparação comum encerra no primeiro caractere diferente, e o tempo de resposta revela quanto do valor estava correto.

Trocar o segredo

O segredo pode ser rotacionado no painel. A troca passa a valer na entrega seguinte, então atualize o valor na sua aplicação antes de rotacionar.