Pular para o conteúdo principal
POST
curl

Por que é sem estado

A triagem de carteiras avulsa não grava nada na tabela de transações, então não existe um registro armazenado a partir do qual este endpoint possa gerar o PDF. Em vez disso, você reenvia exatamente o JSON que o POST /v3/wallet-screening/ já retornou, e a Didit transforma esse payload em PDF sem consultar novamente um provedor.

O campo report_signature

Toda resposta do POST /v3/wallet-screening/ agora inclui o campo report_signature, uma assinatura opaca vinculada à sua aplicação. Este endpoint verifica essa assinatura antes de gerar o PDF, de modo que ninguém consiga editar risk_score, severity, sanctions_hit ou qualquer outro campo e obter um PDF com a marca Didit, de aparência legítima, para um resultado que a Didit nunca produziu. Sempre reenvie o corpo completo da resposta sem modificações, incluindo report_signature. Reordenar as chaves é permitido; não é permitido alterar nenhum valor assinado.

Faturamento

Nenhuma chamada ao provedor é feita e nada é cobrado: este endpoint apenas gera novamente um resultado pelo qual você já pagou ao chamar o POST /v3/wallet-screening/.

Erros

Próximos passos

Triagem de carteira

Execute a triagem de carteira sob demanda e obtenha o resultado em JSON para reenviar aqui.

Triagem de carteiras sob demanda

Visão geral do endpoint independente de triagem de carteiras e do modelo de resultado.

Autorizações

x-api-key
string
header
obrigatório

Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.

Corpo

application/json

O objeto JSON sem modificações retornado por POST /v3/wallet-screening/, incluindo report_signature.

Mesmo formato da resposta de POST /v3/wallet-screening/: envie de volta o corpo dessa resposta literalmente, incluindo report_signature.

provider
string
obrigatório

Provedor que realizou a triagem (por exemplo, merklescience, crystal).

screening_type
enum<string>
obrigatório

Sempre WALLET_SCREENING neste endpoint.

Opções disponíveis:
WALLET_SCREENING
risk_score
integer
obrigatório

Pontuação de risco normalizada de 0 a 100. Quanto maior, maior a exposição a entidades de risco. A Merkle Science classifica um endereço de 0 a 5, o que corresponde a 0, 15, 35, 55, 75 ou 95.

severity
enum<string>
obrigatório

Faixa de risco derivada de risk_score: 0-9 UNKNOWN, 10-39 LOW, 40-69 MEDIUM, 70-89 HIGH, 90-100 CRITICAL. UNKNOWN é a faixa mais baixa, não um estado separado de ausência de dados. Um risk_score 0 (o caso comum de endereço limpo) significa que não há avaliação adversa. Já uma pontuação diferente de zero na faixa de 1-9 é um sinal real, mas abaixo de LOW. Leia o risk_score, não apenas a faixa. Nunca trate UNKNOWN como uma classificação afirmativa de baixo risco ou de aprovação, e não o exiba como aprovado.

Opções disponíveis:
UNKNOWN,
LOW,
MEDIUM,
HIGH,
CRITICAL
status
enum<string>
obrigatório

Status do resultado da análise.

Opções disponíveis:
SCREENED,
PENDING,
ERROR
summary
string
obrigatório

Resumo legível do resultado da triagem.

wallet_address
string
obrigatório

O endereço analisado, devolvido na resposta.

blockchain
string
obrigatório

A blockchain que foi analisada.

source_of_funds
object[]
obrigatório

De onde o endereço recebeu fundos, atribuídos por entidade. Cada entrada é um detalhamento de exposição.

destination_of_funds
object[]
obrigatório

Para onde o endereço enviou fundos, atribuídos por entidade. Mesmo formato de item de source_of_funds, com exposure_direction = outgoing.

counterparty_connections
object[]
obrigatório

Entidades às quais o provedor atribui o endereço analisado. Para a Merkle Science, elas vêm das tags de proprietário e de usuário do próprio endereço, então a mesma entidade pode aparecer duas vezes, e não trazem fluxos de fundos: received_usd, sent_usd, received_hops e sent_hops são null e percentage é 0. Não tome decisões com base em risk_level ou is_direct aqui: use sanctions_hit, dominant_risk_category e risk_factors[].is_high_risk para o veredito, e exposure_type em source_of_funds/destination_of_funds para saber se a exposição é direta.

sanctions_hit
boolean
obrigatório

True se o endereço tem exposição direta ou indireta a sanções.

dominant_risk_category
string | null
obrigatório

Categoria de alto risco com maior peso, ou null quando nenhuma predomina (por exemplo, sanctioned, mixer, stolen_funds).

report_signature
string
obrigatório

Assinatura HMAC-SHA256 opaca sobre exatamente este resultado, restrita à sua aplicação. Não tem significado por si só: reenvie o corpo completo da resposta, sem modificações e incluindo este campo, para POST /v3/wallet-screening/pdf/ para gerá-lo como PDF. O endpoint de PDF rejeita a requisição com 400 se report_signature estiver ausente ou se qualquer campo assinado (por exemplo, risk_score, severity, sanctions_hit) tiver sido editado antes do reenvio.

transaction_hash
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

block_timestamp
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

total_value_usd
number | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

fee_usd
number | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

sender_rows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

receiver_rows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

transaction_flows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

transaction_flows_status
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

transaction_flows_error
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

network_nodes
object[]

Nós do grafo de exposição para a triagem de transações. Vazio em um resultado de Triagem de carteiras.

network_edges
object[]

Arestas do grafo de exposição para a triagem de transações. Vazio em um resultado de Triagem de carteiras.

pep_counterparty
boolean | null

Exposição como pessoa politicamente exposta. null quando não há nenhuma constatação de PEP disponível, o que ocorre hoje em todos os resultados, pois nenhum provedor a informa; false somente para um resultado de triagem explicitamente negativo. Não interprete null como uma verificação de PEP concluída.

risk_factors
object[]

Explicação ordenada de risk_score: o que levou a este veredito. Os provedores avaliam um endereço com o próprio modelo e retornam apenas um veredito (a Merkle Science retorna um inteiro de 0 a 5), então a pontuação sozinha não permite agir. A ordem é primeiro os de alto risco, depois o valor que passou por cada fator, limitada aos cinco mais fortes; source_of_funds e destination_of_funds sempre trazem o detalhamento completo. Um risk_score alto sem nenhuma entrada is_high_risk significa que o provedor não informou correspondência com sanções nem com entidade atribuída e avaliou o endereço apenas com o próprio modelo de exposição. O summary informa isso explicitamente.

raw_response
object

O payload próprio do provedor. O formato dele é específico de cada provedor e pode mudar sem aviso: leia os campos normalizados em vez de interpretá-lo.

Resposta

O documento PDF renderizado, retornado diretamente como binário application/pdf: não há wrapper JSON.

The response is of type file.

Última modificação em 1 de novembro de 2026