Quickstart
A integração máquina-a-máquina usa o header X-API-Key na superfície
/api/v1/vasp/*. A chave já identifica seu tenant e seus escopos: nenhum
header de tenant é necessário.
Base de produção: https://api.crypto.sentinexrisk.com/api/v1
(atenção: a base é /api/v1; o prefixo /v1 sozinho retorna 404).
-
Criar conta + tenant
- Acesse crypto.sentinexrisk.com/signup
- Preencha CNPJ + dados da empresa
- Confirme email
- Configure MFA TOTP obrigatório
-
Gerar API key
- Console, seção Desenvolvedores, API Keys
- Clique em Gerar nova key
- Defina escopos (para começar:
vasp:transactions:screen,vasp:read) - Copie a key imediatamente: só será exibida uma vez (formato
snxc_<env>_...)
-
Primeira chamada: health check (sem auth)
Terminal window curl https://api.crypto.sentinexrisk.com/api/v1/healthconst res = await fetch('https://api.crypto.sentinexrisk.com/api/v1/health');console.log(await res.json());import requestsr = requests.get('https://api.crypto.sentinexrisk.com/api/v1/health')print(r.json())Resposta real:
{"postgres": "ok","redis": "ok","service": "crypto-sentinexrisk","status": "ok","version": "1.0.0"} -
Decisão KYT em tempo real (o endpoint principal)
POST /vasp/screeningsretorna decisão síncronaAPPROVE/MONITOR/REVIEW/BLOCK/CRITICALcom score, sanções, regras disparadas e obrigações regulatórias brasileiras (Travel Rule, COAF, DeCripto) inline. Escopo:vasp:transactions:screen.Terminal window curl -X POST https://api.crypto.sentinexrisk.com/api/v1/vasp/screenings \-H "X-API-Key: <sua-api-key>" \-H "Content-Type: application/json" \-H "Idempotency-Key: minha-txn-0001" \-d '{"client_transaction_id": "minha-txn-0001","customer_ref": "cliente-42","direction": "WITHDRAWAL","asset": "USDT","chain": "tron","counterparty_address": "TC4VsFHJdZ66BdwobZxkudVZBVmQZgCP65","amount": 1500.0}'Estrutura da resposta (campos principais):
{"success": true,"data": {"screening_id": "uuid","screen_status": "completed","decision": "REVIEW","risk_score": 62.5,"risk_level": "HIGH","sanctions": { "hit": false },"rule_hits": [{ "rule_id": "R-KYT-04", "name": "Exposição a mixer", "severity": "HIGH", "weight": 25 }],"obligations": {"travel_rule": "NOT_REQUIRED","coaf_sar": "MONITOR","decripto": "REPORTABLE"},"amount_brl": 7733.1,"fail_closed": false,"latency_ms": 41,"api_version": "2026-06-01"}}Repetir a chamada com a mesma
Idempotency-Keye o mesmo corpo devolve a mesma decisão comidempotent_replay: true. -
Próximos passos
- Poll de alertas:
GET /vasp/alerts(escopovasp:read) - Webhook outbound:
POST /vasp/webhooks(escopovasp:webhooks:manage) - Feedback de decisão:
PATCH /vasp/screenings/:id/decision - Enrollment de clientes e carteiras:
POST /vasp/customers,POST /vasp/wallets - Contrato completo: referência OpenAPI
- Poll de alertas: