Por que verificar
Qualquer pessoa na internet pode fazer POST para o seu endpoint. A verificação de assinatura garante que o evento veio realmente do kycert e não foi adulterado em trânsito.Como funciona
O kycert assina cada requisição com HMAC-SHA256 usando o seu segredo de webhook. A assinatura é enviada no headerkycert-signature:
Onde encontrar o segredo
No dashboard kycert, vá em Integrações & API → Webhooks e copie o Webhook Secret (hex puro, sem prefixo — ex:a218fc6f3b...). Armazene como variável de ambiente — nunca em código.
Algoritmo de verificação
signature com v1 do header usando comparação de tempo constante.
Tolerância de tempo: rejeitar eventos com timestamp mais antigo que 5 minutos (300 segundos) em relação ao relógio atual. Isso protege contra ataques de replay.
Use o valor
t do header kycert-signature para a verificação de timestamp — o campo created no body pode diferir em ~2s e não deve ser usado na verificação de replay.