Webhooks

Verificar assinaturas de webhook

Verifique o cabeçalho X-Studio-Signature para confiar apenas em pedidos que enviámos.

11 de out. de 2026Leitura de 1 min

Cada pedido para um endpoint personalizado é assinado com o segredo do seu endpoint. Verifique a assinatura antes de confiar no corpo.

Como é assinado

  • A assinatura é um HMAC-SHA256 do corpo bruto do pedido, com a chave do seu segredo de assinatura.
  • É enviada como X-Studio-Signature: sha256=<hex digest>.
  • Os segredos começam com whsec_. Encontre o seu em Signing secret na página do endpoint.

Node.js

import { createHmac, timingSafeEqual } from "node:crypto"

export function verify(rawBody: string, header: string, secret: string) {
  const expected = `sha256=${createHmac("sha256", secret).update(rawBody).digest("hex")}`
  const a = Buffer.from(header)
  const b = Buffer.from(expected)
  return a.length === b.length && timingSafeEqual(a, b)
}

Python

import hashlib, hmac

def verify(raw_body: bytes, header: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(header, expected)

Erros comuns

  • Faça o hash dos bytes exatos que recebeu. Analisar o JSON e serializá-lo novamente altera os bytes, por isso a assinatura não vai corresponder.
  • Use uma comparação em tempo constante, como nos exemplos acima, em vez de ==.
  • Depois de Rotate secret, atualize o seu servidor imediatamente. O segredo antigo deixa de funcionar.

Destinos de chat, como o Slack, recebem em vez disso uma mensagem formatada e não são assinados.

Isso foi útil?
Publique posts alinhados à sua marca em minutos

Conteúdo de IA, agendamento, interação e um pacote completo de marketing — grátis para começar.

Comece grátis
Voltar à documentação

Continuar a ler

Coloque isso em prática na AeroReply

Todas as ferramentas ficam na mesma conta, desde o plano gratuito em diante.

Coloque isso em prática

Comece grátis — crie, agende e cresça em um só espaço de trabalho.

  • Sem cartão de crédito
  • Configuração em 2 minutos
  • Cancele a qualquer momento