Domo Trust · API v1

Documentação da API

Endpoints REST para integrar a Domo Trust no seu sistema (fluxo COAF, onboarding, consultas em tempo real).

Autenticação

Todas as requisições devem incluir o header:

Authorization: Bearer <SUA_API_KEY>

Gere uma API key em /app/integracoes. Chaves começam com dmt_live_.

Rate limits

  • Consulta: 120 requisições/minuto por API key
  • Incidentes: 60/min
  • COAF: 60/min

POST /api/v1/consultar

Verifica se há alerta confirmado na rede por CPF ou CNPJ. A consulta custa 20 DMT e responde somente se existe alerta — o conteúdo é revelado num segundo passo, que você decide dar (nada além dos 20 é debitado sem essa escolha).

curl -X POST https://domotrust.com.br/api/v1/consultar \
  -H "Authorization: Bearer dmt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"documento": "12345678000199"}'

Resposta (estágio 1):

{
  "documento_hash": "9f86d08...",
  "sinal": {
    "tem_alerta": true,
    "qtd_confirmados": 2,
    "texto": "Há alerta confirmado na rede sobre este CNPJ."
  },
  "abertura": { "endpoint": "/api/v1/consultar/abrir", "custo_dmt": 680 }
}

A origem do relato nunca é revelada — nem a instituição, nem o setor. HTTP 402 se saldo insuficiente.

POST /api/v1/consultar/abrir

Estágio 2: revela o conteúdo do alerta e debita o complemento (680 DMT, total do hit = 700). Só alertas confirmados abrem; sem saldo, o retorno é 402 e nada é cobrado — o alerta fica reservado até você repor os créditos.

curl -X POST https://domotrust.com.br/api/v1/consultar/abrir \
  -H "Authorization: Bearer dmt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"documento": "12345678000199"}'

Modo legado (compatibilidade)

Com "dois_estagios": false, a consulta debita tudo de uma vez (20, mais 680 se houver alerta) e devolve o conteúdo na mesma resposta. Mantido só para integrações antigas — prefira o fluxo em dois estágios acima.

POST /api/v1/incidentes

Registra um incidente na rede.

curl -X POST https://domotrust.com.br/api/v1/incidentes \
  -H "Authorization: Bearer dmt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_documento": "cpf",
    "documento": "12345678900",
    "nome_alvo": "Joao da Silva",
    "categoria": "fraude",
    "severidade": "alta",
    "titulo": "Suspeita de laranja em PIX",
    "descricao": "Cliente solicitou transferencia de R$ 50k...",
    "valor_envolvido": 50000.00,
    "ocorrido_em": "2026-04-20"
  }'

Até 100 DMT quando o incidente é confirmado pela rede. IA classifica automaticamente.

POST /api/v1/coaf/incidente

Endpoint side-car para replicar comunicação COAF na rede. Protocolo SISCOAF é cifrado e armazenado apenas para você — a rede vê somente fato, categoria e valor (sigilo Art. 11 §2º Lei 9.613/98).

curl -X POST https://domotrust.com.br/api/v1/coaf/incidente \
  -H "Authorization: Bearer dmt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_comunicacao": "COE",
    "referencia_coaf": "COE-2026-000123",
    "tipo_documento": "cpf",
    "documento": "12345678900",
    "valor_envolvido": 78500.00,
    "categoria_coaf": "lavagem_dinheiro_pld",
    "descricao_fato": "Fracionamento em 12 transferencias...",
    "data_ocorrencia": "2026-04-20"
  }'

Webhooks

Configure um endpoint HTTPS em /app/integracoes para receber eventos em tempo real.

Headers enviados:

X-DomoTrust-Event: match
X-DomoTrust-Timestamp: 1729876543
X-DomoTrust-Signature: sha256=abc123...
X-DomoTrust-Delivery-Id: 42

Validação HMAC (Node.js):

const assinado = crypto
  .createHmac("sha256", SEU_SECRET)
  .update(timestamp + "." + corpoRaw)
  .digest("hex");
// comparar com header X-DomoTrust-Signature removendo "sha256="

Retry com backoff exponencial: 30s, 1m, 2m, 4m, 8m, 16m. Desiste após 6 tentativas. Responda HTTP 2xx em até 10s para confirmar recebimento.

Códigos HTTP

  • 200 — sucesso
  • 400 — dados inválidos
  • 401 — API key ausente/inválida
  • 402 — saldo DMT insuficiente
  • 403 — escopo insuficiente
  • 429 — rate limit
  • 500 — erro interno