POST /analyses roda o motor de risco AML/KYC sobre um subject e retorna um veredito determinístico. O uuid retornado é o identificador usado por todo o resto da API: sub-recursos da própria análise, relatórios (/reports) e triagem de mídia adversa (/adverse-media).
POST /analyses
Cria e executa a análise de forma síncrona. A resposta já contém o veredito completo.
Escopo: analyses:create
Corpo da requisição
Exatamente um deentity_id ou document:
Resposta (AnalysisResponse)
Contagem de sinais e status por base consultada ficam em
GET /analyses/{uuid}/signals, não nesta resposta.
Erros
Catálogo completo em Erros.
GET /analyses/{uuid}
Veredito de uma análise já computada. Escopo: analyses:read.
GET /analyses
Lista análises, paginado. Escopo: analyses:read.
Sub-recursos da análise
Todos exigemanalyses:read, disponíveis em links na resposta de criação:
GET /analyses/{uuid}/dossier é uma releitura da análise já computada e paga: chamadas repetidas não criam nova análise nem geram cobrança adicional.Grafo
GET /analyses/{uuid}/graph
Grafo de relacionamentos da contraparte (AnalysisGraphResponse), com sinais, UBOs e PEPs de rede.
GET /analyses/{uuid}/graph/nodes/{node_key}
Detalhe de um nó: campos, relacionamentos, evidências e sinais associados. Escopo: analyses:read.
GET /analyses/{uuid}/graph/edges/{edge_key}
Detalhe de uma aresta: tipo de relacionamento, endpoints e campos próprios. Escopo: analyses:read.
Agregação de evidências
Registros do mesmo tipo de evidência sobre o mesmo nó âncora (ex.: várias sanções da mesma entidade) chegam agrupados em um nó agregado (EvidenceSummary). Dois endpoints movem registros entre o agregado e nós individuais:
POST /analyses/{uuid}/graph/nodes/{node_key}/disaggregate — extrai registros específicos do agregado, materializando cada um como nó/aresta próprios.
graph) e os registros extraídos (disaggregated: node_key, edge_key, signal_codes de cada um). record_ids são ids naturais do registro (ex.: SanctionData.id), como string (podem exceder 2^53).
POST /analyses/{uuid}/graph/nodes/reaggregate — reagrupa nós individuais de volta em um agregado. Todos os node_keys informados devem compartilhar a mesma entidade âncora e tipo de evidência.
graph) e aggregate_node_key.
Ambos: escopo analyses:read, erro 404 se a análise ou um nó não existir, 422 em corpo inválido.
Notas e expansão de nó
GET /analyses/{uuid}/graph/nodes/{node_id}/expandable-relationships — lista domínios de relacionamento ainda não expandidos a partir de um nó (entities, corporate, sanctions, legal, watchlists, publications). Escopo: analyses:read.
POST /analyses/{uuid}/graph/nodes/{node_id}/expand — expande e persiste esses relacionamentos na análise.
analyses:create.
GET/POST /analyses/{uuid}/graph/nodes/{node_id}/notes — lista ou cria uma nota de texto livre (body) anexada a um nó. Escopo: analyses:read (GET) / analyses:create (POST).
GET /analyses/{uuid}/graph/notes — contagem de notas por nó, para a análise inteira. Escopo: analyses:read.
Export em lote de dossiês
POST /analyses/bulk-dossier-jobs — enfileira geração de PDF para até 1000 itens de uma vez. Cada item referencia uma análise existente (analysis_uuid) ou um documento cru (document, roda a análise na hora). Retorna job_id imediatamente. Escopo: analyses:create.
GET /analyses/bulk-dossier-jobs — lista jobs, paginado. Escopo: analyses:read.
GET /analyses/bulk-dossier-jobs/{job_id} — status agregado (status: running/completed/completed_with_errors/failed) e por item (pending/completed/failed). Escopo: analyses:read.
GET /analyses/bulk-dossier-jobs/{job_id}/download — baixa o ZIP com os PDFs prontos. 404 se o job não existe ou o ZIP ainda não está disponível. Escopo: analyses:read.
