ANBD-GENESIS ANBD GENESIS

Referência técnica

Documentação ANBD-GENESIS

Autenticação, endpoints, exemplos de integração, limites de uso e boas práticas para colocar o motor de decisão em produção.

Visão geral Autenticação /v1/decide /v1/signup /v1/contact Checkout Webhook Painel do cliente Limites Erros Exemplos Boas práticas Segurança

Visão geral

O que é o ANBD-GENESIS

O ANBD-GENESIS é uma infraestrutura de decisão adaptativa entregue como API. Você envia um evento — um texto, uma solicitação, um sinal de negócio — e recebe, em milissegundos, uma decisão auditável: EXECUTAR, REAVALIAR, ESCALAR, ABSTER ou RECUPERAR, acompanhada de um nível de confiança explícito e da justificativa completa do racional.

Internamente, o motor representa cada padrão como um hypervector binário (Vector Symbolic Architecture) e aprende continuamente a partir do próprio uso, ajustando força e confiança dos padrões a cada novo evento e feedback — sem pipeline de re-treinamento manual. A arquitetura é multi-tenant desde a concepção: dados, histórico e credenciais de cada cliente ficam completamente isolados.

Fluxo de integração em 3 passos 1. Crie uma conta e obtenha sua chave de API · 2. Autentique requisições com o cabeçalho X-API-Key · 3. Envie eventos para POST /v1/decide e trate a ação retornada.

Autenticação

Chave de API (X-API-Key)

Toda rota de cliente é autenticada pelo cabeçalho X-API-Key, recebido no momento da criação da conta (POST /v1/signup). A chave é exibida uma única vez — o servidor armazena apenas o hash SHA-256 dela, nunca o valor em texto puro, e ela não pode ser recuperada posteriormente.

cabeçalho
X-API-Key: anbd_xxxxxxxxxxxxxxxxxxxxxxxx

Requisições sem X-API-Key, ou com uma chave inválida/revogada, recebem 401 Unauthorized. Rotas administrativas usam um cabeçalho separado, X-Admin-Key, restrito à equipe operadora da plataforma.

Endpoint principal

Avaliar um evento

POST /v1/decide Requer X-API-Key

Envia um evento para o motor e recebe a decisão correspondente, com justificativa e métricas de confiança.

Parâmetros de entrada

CampoTipoDescrição
input_textstring, obrigatórioTexto ou evento a ser avaliado pelo motor (1 a 8.000 caracteres por padrão).
reward_feedbackfloat, opcionalFeedback adaptativo entre -1.0 e 1.0 usado para ajustar a força do padrão. Padrão: 1.0.

Exemplo de requisição

request
{
  "input_text": "Pedido de crédito acima do limite padrão",
  "reward_feedback": 1.0
}

Exemplo de resposta

response · 200 OK
{
  "decision_id": "3f1a9c2e-...",
  "timestamp": "2026-08-31T12:00:00Z",
  "action": "EXECUTAR",
  "confidence_level": "ALTA",
  "confidence_score": 0.9123,
  "principal_score": 0.8541,
  "secondary_score": 0.4310,
  "novelty": 0.0821,
  "latency_ms": 4.2,
  "rationale": ["Score principal: 85.4", "..."],
  "oracle_payload": null
}

Ações possíveis

EXECUTARConfiança suficiente para agir automaticamente sobre o evento.
REAVALIARPadrão reconhecido parcialmente; recomenda-se nova análise antes de agir.
ESCALARSituação de risco ou baixa confiança — encaminhar para um humano.
ABSTERO motor se abstém de decidir por reconhecer os próprios limites.
RECUPERARRecupera contexto de decisões anteriores relacionadas ao mesmo padrão.

Confiança e justificativa

confidence_level resume o nível de confiança em três faixas (BAIXA, MEDIA, ALTA), enquanto confidence_score, principal_score, secondary_score e novelty trazem os valores numéricos que compuseram a decisão. O campo rationale retorna a explicação passo a passo do racional — a base da trilha de auditoria de cada decisão.

Contas

Criar uma conta

POST /v1/signup Sem autenticação

Cria um novo tenant no plano Free e retorna a chave de API correspondente.

CampoTipoDescrição
namestring, obrigatórioNome da empresa ou projeto (1 a 200 caracteres).
accepted_termsboolean, obrigatórioDeve ser true — confirma a leitura dos Termos de Uso e da Política de Privacidade. A versão vigente e a data são registradas junto ao tenant.
sourcestring, opcionalOrigem do cadastro (ex: linkedin, google, direto), usada para métricas de aquisição.
response · 201 Created
{
  "tenant_id": "t_8f2c...",
  "name": "Minha Empresa Ltda",
  "plan": "free",
  "api_key": "anbd_xxxxxxxxxxxxxxxx"
}
Guarde a chave imediatamenteO valor de api_key só aparece nesta resposta. Não é possível recuperá-lo depois — apenas revogar e gerar um novo tenant.

Contato

Enviar mensagem de contato

POST /v1/contact Sem autenticação

Usado pelo formulário de contato do site. Salva a mensagem no banco e dispara uma notificação por e-mail.

CampoTipoDescrição
namestring, obrigatórioNome de quem envia.
emailstring, obrigatórioE-mail de contato.
companystring, opcionalEmpresa.
messagestring, obrigatórioConteúdo da mensagem.
sourcestring, opcionalOrigem do contato (ex: linkedin).
response · 201 Created
{ "message_id": "a1b2c3...", "status": "recebido" }

Assinaturas

Checkout e upgrade de plano

POST /v1/checkout?plan={{plano}} Requer X-API-Key

Gera uma sessão de checkout do Stripe para o plano informado (pro, enterprise ou enterprise_corporativo) e retorna a URL de pagamento para redirecionamento do cliente.

response · 200 OK
{ "checkout_url": "https://checkout.stripe.com/c/pay/..." }

A ativação do novo plano acontece de forma assíncrona, via webhook do Stripe, após a confirmação do pagamento.

Assinaturas

Webhook do Stripe

POST /v1/webhook/stripe Assinatura Stripe

Endpoint interno, configurado diretamente no painel do Stripe, que recebe eventos de checkout e assinatura. A requisição é validada pela assinatura enviada no cabeçalho Stripe-Signature; eventos de conclusão de checkout atualizam automaticamente o plano do tenant correspondente.

Autoatendimento

Painel do cliente

Toda conta tem acesso a um painel de gerenciamento em /dashboard, onde é possível acompanhar o uso do plano, consultar o histórico auditável de decisões e gerenciar a assinatura — sem precisar entrar em contato com o suporte. Basta acessar com a chave de API recebida no cadastro. O painel também funciona instalado como aplicativo (PWA) no celular.

Consultar uso e limite do plano

GET /v1/me/usage Requer X-API-Key

Retorna o plano atual, o limite de requisições/minuto, quantas requisições já foram feitas e a última atividade registrada.

response · 200 OK
{
  "tenant_id": "tn_8f2a...",
  "name": "Minha Empresa",
  "plan": "pro",
  "rate_limit": "200/minute",
  "request_count": 4821,
  "last_request_at": "2026-09-03T20:14:02Z",
  "created_at": "2026-08-01T10:00:00Z",
  "has_billing": true
}

Histórico de decisões

GET /v1/me/decisions?limit=20 Requer X-API-Key

Lista as últimas decisões tomadas pelo motor para o tenant autenticado, com ação, nível de confiança e latência — base para auditoria interna. limit aceita até 100 (padrão 20).

Portal de cobrança

POST /v1/me/billing-portal Requer X-API-Key

Gera um link temporário para o Portal de Cobrança do Stripe, onde o próprio cliente troca de plano, atualiza o cartão e baixa faturas. Disponível apenas após a primeira assinatura paga (campo has_billing em /v1/me/usage indica se já está liberado).

Painel do cliente

Webhooks de saída

Em vez de ficar consultando /v1/me/decisions repetidamente, seu sistema pode ser avisado automaticamente sempre que o motor decidir ESCALAR ou ABSTER — os dois casos em que, por definição, uma decisão humana ou um processo à parte é necessário.

POST /v1/me/webhook Requer X-API-Key

Corpo: {"webhook_url": "https://seusite.com/anbd-webhook"}. A URL precisa ser HTTPS. A resposta traz um webhook_secret mostrado uma única vez — guarde-o, ele é usado para validar a assinatura de cada notificação recebida. Chamar este endpoint de novo substitui a URL e gera um novo segredo, invalidando o anterior.

GET /v1/me/webhook Requer X-API-Key

Consulta se há um webhook configurado e qual URL está registrada (o segredo nunca é reexibido).

DELETE /v1/me/webhook Requer X-API-Key

Remove o webhook configurado.

Cada notificação é uma requisição POST para sua URL, com o corpo em JSON (campos event, tenant_id, decision_id, action, confidence_level, confidence_score, novelty, timestamp) e um cabeçalho X-ANBD-Signature: sha256=<hmac> — o HMAC-SHA256 do corpo bruto usando seu webhook_secret. Valide essa assinatura antes de confiar no conteúdo. O envio roda em segundo plano com timeout curto: uma falha de entrega nunca afeta a resposta de /v1/decide, e não há reenvio automático em caso de falha ainda.

Painel do cliente

Exportação de auditoria (CSV)

GET /v1/me/decisions/export Requer X-API-Key

Baixa o histórico de decisões deste tenant em um arquivo .csv (colunas: decision_id, timestamp, action, confidence_level, confidence_score, novelty, latency_ms, rationale), pronto para abrir em Excel/Planilhas Google ou anexar a um relatório de auditoria/compliance. Parâmetro opcional ?limit= (padrão 1000, máximo 5000). Pensado para consultas pontuais — para consumo automatizado e de alto volume, use /v1/me/decisions (JSON, paginação por limit).

Operação

Limites de requisição por plano

O limite é aplicado por chave de API. Requisições sem X-API-Key seguem o limite do plano Free.

PlanoLimitePreço
Free20 requisições / minutoR$ 0
Pro200 requisições / minutoR$ 997,00 / mês
Enterprise1.000 requisições / minutoR$ 2.997,00 / mês
Enterprise Corporativo5.000 requisições / minutoR$ 5.997,00 / mês

Operação

Códigos de erro comuns

CódigoSituação
400Requisição inválida — plano inexistente no checkout ou payload malformado no webhook.
401Cabeçalho X-API-Key ausente ou chave inválida/revogada.
422Falha de validação do corpo da requisição, como input_text vazio.
429Limite de requisições do plano excedido — aguarde e tente novamente.
500Falha interna do pipeline de decisão ou do provedor de pagamento.

Integração

Exemplos completos

Python

python
import requests

api_key = "sua_chave_api"
url = "https://anbd-genesis-enterprise.onrender.com/v1/decide"

response = requests.post(
    url,
    headers={"X-API-Key": api_key},
    json={"input_text": "Texto para avaliar", "reward_feedback": 1.0}
)

print(response.json())

cURL

bash
curl -X POST https://anbd-genesis-enterprise.onrender.com/v1/decide \
  -H "X-API-Key: sua_chave_api" \
  -H "Content-Type: application/json" \
  -d '{"input_text": "Pedido de reembolso de R$ 450, produto alegado como não entregue, cliente com 2 reembolsos nos últimos 30 dias", "reward_feedback": 1.0}'

Referência

Boas práticas de uso

  • Trate 429 com backoff exponencial em vez de repetir a chamada imediatamente.
  • Sempre registre decision_id e rationale junto ao seu próprio log — eles formam a trilha de auditoria da decisão.
  • Use reward_feedback para informar ao motor o resultado real de uma decisão anterior e acelerar o aprendizado contínuo.
  • Trate ESCALAR e ABSTER como sinais de design, não como falhas — são o motor reconhecendo os próprios limites.
  • Armazene a api_key em um cofre de segredos; ela não pode ser recuperada caso perdida, apenas substituída.
  • Para cargas sensíveis, avalie o endpoint cifrado ponta a ponta (envelope X25519 + AES-256-GCM) em vez do canal padrão.

Referência

Segurança e isolamento multi-tenant

🔒
Chaves de API protegidasArmazenadas apenas como hash SHA-256, nunca em texto puro.
🔒
Criptografia em repousoTrilha de auditoria cifrada com AES-256-GCM no banco de dados.
🔐
Criptografia ponta a pontaEnvelope opcional via X25519 + HKDF-SHA256 + AES-256-GCM.
🛡
Isolamento multi-tenantCada registro é segmentado por tenant_id: dados de um cliente nunca se misturam com os de outro.