Muito bom o relato. Um detalhe que costuma passar batido em integrações de webhook é usar comparação timingSafeEqual na validação do HMAC e garantir idempotência pelo ID do evento, porque provedores fazem retry quando há timeout de rede.
4
4
Obrigado. Esse ponto é mais de webhooks do que de IPs, mas vale registrar: com timingSafeEqual a comparação do HMAC não vaza informação pelo tempo de resposta, e gravar o ID do evento antes de processar resolve os retries do provedor sem efeito duplicado.