Docs · Webhooks
Webhooks: o desenho está aqui — a feature ainda não
Nenhum webhook do GenOpt dispara hoje. Esta página publica o desenho planejado (Sprint 4E) para colher crítica antes de escrever o código — não para fingir que existe. Quando entrar no ar, o estado muda aqui e no /changelog.
Estado: planejado — Sprint 4E
Não há endpoint para cadastrar URL, não há evento sendo emitido e não há segredo para gerar. Tudo abaixo é desenho sujeito a mudança até a primeira emissão real. Previsão pública no /roadmap.
O desenho: entrega assinada com HMAC
Cada entrega será um POST JSON na URL que você cadastrar, assinada com HMAC-SHA256 sobre o corpo bruto mais um timestamp — o mesmo padrão de Stripe e GitHub, escolhido porque os seus desenvolvedores provavelmente já o verificaram uma vez na vida. O segredo de assinatura será exibido uma única vez no cadastro e armazenado como hash do nosso lado, como já fazemos com evidência.
POST https://sua-url.exemplo.com/genopt
Content-Type: application/json
X-GenOpt-Event: measurement.completed
X-GenOpt-Timestamp: 1770854400
X-GenOpt-Signature: sha256=3f2a...c91b
{
"event": "measurement.completed",
"occurred_at": "2026-08-07T12:00:00Z",
"data": {
"brand_id": "…",
"engine": "…",
"run_count": 0
}
}// Verificação no seu servidor (Node, desenho):
import { createHmac, timingSafeEqual } from 'node:crypto'
const esperado = createHmac('sha256', process.env.GENOPT_WEBHOOK_SECRET)
.update(`${timestamp}.${corpoBruto}`)
.digest('hex')
// compare com timingSafeEqual e rejeite timestamps com mais de 5 minutosEventos planejados
A primeira leva cobre o que os clientes pedem para não precisar ficar olhando o painel: medição concluída, confabulação nova detectada e mudança de classificação de citação. Retentativa com backoff exponencial em falha de entrega, e rejeição recomendada de timestamps velhos para bloquear replay. Os nomes finais dos eventos saem junto com a implementação — publicar nome de evento antes do código é convidar integração quebrada.
Enquanto isso, o que existe de verdade
Para consumo programático hoje: a API v1 documentada em /docs/api (pull, não push) e o servidor MCP no ar em mcp.genopt.ai, documentado em /docs/mcp. O estado de todas as integrações, com rótulo honesto, está em /integracoes.