Skip to main content
Qualquer pessoa com acesso à URL do seu webhook pode simular uma entrega. Por isso, a SocialSell assina cada requisição com HMAC-SHA256 usando o secret da sua assinatura — e você deve validar essa assinatura antes de processar qualquer payload.

O header de assinatura

Cada entrega inclui o header:
O valor é sha256= seguido do HMAC-SHA256 do corpo bruto da requisição, usando o secret da assinatura como chave.

Como validar

Sempre use o corpo bruto (raw bytes) da requisição, não o JSON parseado. Re-serializar o JSON pode alterar a assinatura.

Erros comuns de validação

Boas práticas de segurança

  • Sempre valide antes de processar — nunca confie no payload sem verificar a assinatura
  • Use timingSafeEqual — previne timing attacks onde um atacante mede o tempo de comparação para adivinhar a assinatura
  • Armazene o secret como variável de ambiente — nunca no código ou em repositórios
  • Rejeite com 401 — não com 200. Responder com sucesso a payloads inválidos pode confundir sistemas de monitoramento
  • Rotacione o secret se comprometido — delete a assinatura e crie uma nova com POST /v1/webhooks