> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Triagem de carteiras sob pedido via API, sem transação

> Faça a triagem de uma carteira cripto para risco AML sem criar transação. Com a Didit: origem dos fundos, exposição a sanções e pontuação de risco.

Por vezes é preciso verificar o risco AML de uma carteira de criptomoedas **antes** de existir qualquer transação para registar, por exemplo quando um cliente adiciona um endereço de levantamento ou quando a sua equipa de conformidade quer analisar um endereço de forma pontual. O endpoint de triagem de carteiras sob pedido analisa um único endereço e devolve o resultado completo de risco sem criar uma transação.

Este é o equivalente autónomo da [triagem automática de criptomoedas](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md) que é executada durante a [submissão de transações](https://docs.didit.me/pt/transaction-monitoring/transactions.md). Ambos partilham os mesmos fornecedores de análise de blockchain e a mesma estrutura de resultados.

## Quando utilizar

| Caso de utilização | Endpoint |
| - | - |
| Verificação prévia de um endereço sem transação a registar | **Triagem de carteiras** — `POST /v3/wallet-screening/` |
| Analisar uma carteira como parte de um depósito ou levantamento registado | [Criar transação](https://docs.didit.me/pt/transaction-monitoring/transactions.md) com `currency_kind: "crypto"` |

A triagem de carteiras não grava nada na tabela de transações. Se precisar que a triagem fique associada a uma transação monitorizada (com regras, alertas e webhooks), submeta uma transação.

## Pré-requisitos

A monitorização de transações tem de estar configurada para a aplicação, com um fornecedor gerido ou uma [chave de fornecedor existente](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md#fornecedores-suportados). Configure-a em **Transações** > **Definições** > **Preferências do fornecedor** na [Business Console](https://business.didit.me). Se nenhum fornecedor estiver configurado, o endpoint devolve `409 Conflict`.

## Pedido

`POST https://verification.didit.me/v3/wallet-screening/`

Autentique-se com o cabeçalho `x-api-key`.

| Campo | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `wallet_address` | string | Sim | O endereço ou identificador de rede a analisar. Tem de corresponder à rede escolhida, como `0x` seguido de 40 caracteres hexadecimais para cadeias EVM, ou um identificador Lightning aceite pelo seu fornecedor. Alias: `address`. |
| `blockchain` | string | Não | Identificador do ativo ou da rede. Quando omitido, a Didit lê a rede a partir do formato do endereço: os endereços `bc1`, `1` e `3` são Bitcoin (`BTC`), os endereços `T` são Tron (`TRX`) e as chaves públicas base58 são Solana (`SOL`). Um endereço `0x` é válido em todas as redes EVM, por isso responde com `422` e `candidate_chains`, e nada é analisado nem faturado; envie-o novamente com a rede definida. Qualquer outro formato responde com `400`. Valores aceites: `BTC`, `LIGHTNING`, `ETH`, `LTC`, `XRP`, `BCH`, `DOGE`, `TRX`, `SOL`, `MATIC`, `BNB`, `BASE`, `OP`, `ARB`, `AVAX`, `ADA`, `XLM`, `HBAR`, `CELO`, `MODE`, `PLUME`, `USDT`, `USDC`. Também são aceites nomes comuns de redes, por exemplo `POLYGON` ou `POL` para `MATIC`, `BSC` para `BNB` e `TRON` para `TRX`. Alias: `currency`. |
| `direction` | string | Não | `inbound`, `outbound`, `deposit` ou `withdrawal`. Contexto opcional para o fornecedor; omita-o para uma análise neutra antes da transferência. Não altera o `risk_score`, o `severity` nem as decomposições do fluxo de fundos (ver a nota em [Resposta](#resposta)). |

### Cobertura de redes

A triagem gerida suporta Base (`BASE`), Optimism (`OP`) e Arbitrum One (`ARB`), tanto para triagem de carteiras como de hashes de transações.
Os fornecedores ligados podem ter cobertura diferente; uma rede também tem de ser suportada pelo fornecedor e pela conta selecionados.
Celo (`CELO`), Mode (`MODE`) e Plume (`PLUME`) são analisadas através de uma conta TRM Labs ligada (**Marketplace**, traga a sua própria chave); a análise gerida não as cobre e responde com `400`.
Não envie `ETH` para outra rede EVM: o mesmo endereço pode ter atividade e risco diferentes em cada rede.

Com a análise gerida, `USDT` e `USDC` são aliases antigos para Ethereum, e não uma pesquisa em todas as redes onde esses tokens existem.
Use o identificador da rede (`ETH`, `TRX`, `SOL`, `MATIC`, `BNB`, `BASE`, `OP`, `ARB`, `AVAX`, `ADA`, `XLM`, `HBAR`, ou, com TRM Labs, `CELO`, `MODE` ou `PLUME`) correspondente à rede real da carteira.
Para tokens em transações registadas, mantenha o token em `transaction_details.currency` e indique a rede separadamente em `transaction_details.crypto_params.crypto_chain`.
Consulte [seleção de ativo e rede](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md#seleção-de-ativo-e-rede).

> [!WARNING]
>
> `LIGHTNING` está disponível apenas quando a aplicação tem um fornecedor BYOK ligado da Elliptic ou da Chainalysis na **Marketplace** da consola.
> Não está disponível com a Merkle Science gerida, nem com a Crystal ou a TRM Labs.
> Os pedidos sem um fornecedor ligado suportado devolvem `400` e não são analisados nem faturados.

```bash theme={null}
curl -X POST https://verification.didit.me/v3/wallet-screening/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "wallet_address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
    "blockchain": "ETH"
  }'
```

## Resposta

A resposta é o resultado de triagem normalizado, com a mesma estrutura do resultado do fornecedor `WALLET_SCREENING` devolvido pela triagem de transações.

| Campo | Tipo | Descrição |
| - | - | - |
| `provider` | string | Fornecedor que analisou o endereço (`merklescience`, `crystal`, `chainalysis`, `elliptic`, `trmlabs`). |
| `screening_type` | string | Sempre `WALLET_SCREENING`. |
| `risk_score` | integer | Pontuação de risco normalizada de 0 a 100. A Merkle Science classifica um endereço com `0-5`, que corresponde a `0`, `15`, `35`, `55`, `75` ou `95`. |
| `severity` | string | Faixa de risco derivada de `risk_score` (ver a nota abaixo): `UNKNOWN`, `LOW`, `MEDIUM`, `HIGH` ou `CRITICAL`. |
| `status` | string | `SCREENED`, `PENDING` ou `ERROR`. |
| `summary` | string | Resumo legível para pessoas. |
| `wallet_address` | string | O endereço analisado. |
| `blockchain` | string | A blockchain analisada. |
| `sanctions_hit` | boolean | `true` quando a carteira analisada está sancionada, ou quando os fundos de alguma das suas contrapartes provêm de entidades sancionadas (exposição). Não distingue um caso do outro. |
| `pep_counterparty` | boolean \| null | Exposição a pessoa politicamente exposta (PEP). `null` quando não existe nenhum resultado PEP disponível, o que acontece em todos os resultados atuais, porque nenhum fornecedor o reporta; `false` apenas para um resultado de triagem negativo explícito. Não leia `null` como uma verificação PEP concluída. |
| `dominant_risk_category` | string \| null | Categoria de alto risco com maior peso, ou `null`. |
| `risk_factors` | array | Explicação ordenada de `risk_score`: o que produziu este veredito. Ver [Fatores de risco](#fatores-de-risco). |
| `source_of_funds` | array | Origem dos fundos recebidos, por entidade. Ver [Detalhe da exposição](#detalhe-da-exposição). |
| `destination_of_funds` | array | Destino dos fundos enviados, por entidade. Mesma estrutura de entrada que `source_of_funds`. |
| `counterparty_connections` | array | Entidades a que o fornecedor atribui o endereço. Ver [Ligações a contrapartes](#ligações-com-contrapartes). |
| `network_nodes`, `network_edges` | array | Grafo da exposição na triagem de transações. Vazio num resultado de triagem de carteiras. |
| `transaction_hash`, `block_timestamp`, `total_value_usd`, `fee_usd`, `transaction_flows_status`, `transaction_flows_error` | null | Campos da triagem de transações, partilhados com a estrutura do resultado. São sempre `null` num resultado de triagem de carteiras. |
| `sender_rows`, `receiver_rows`, `transaction_flows` | array | Campos da triagem de transações. Estão sempre vazios num resultado de triagem de carteiras. |
| `raw_response` | object | Payload próprio do fornecedor. A sua estrutura é específica de cada fornecedor e pode mudar sem aviso: use os campos normalizados acima em vez de a analisar. |
| `report_signature` | string | Assinatura opaca sobre este resultado, limitada à sua aplicação. Reenvie a resposta sem alterações, incluindo este campo, para [gerar um PDF](#relatório-pdf). |

> [!NOTE]
>
> **Como `severity` é definido.** `severity` é a faixa do `risk_score` normalizado: `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 "sem dados": `risk_score: 0` (o caso comum de um endereço limpo) significa que o fornecedor não devolveu nenhuma avaliação adversa, enquanto uma pontuação diferente de zero no intervalo `1-9` é um sinal real, mas abaixo de `LOW`; por isso, leia o próprio `risk_score` e não apenas a faixa. Em qualquer dos casos, não apresente `UNKNOWN` como um «limpo» nem como uma aprovação afirmativa.
>
> **`direction` não altera o modelo de risco.** O campo opcional `direction` é enviado ao fornecedor apenas como contexto. Não afeta `risk_score`, `severity` nem as listas de detalhe devolvidas: tanto `source_of_funds` como `destination_of_funds` são sempre devolvidos, independentemente disso. Alterar ou omitir `direction` não obriga, portanto, a repetir a triagem de um endereço já analisado.

### Fatores de risco

`risk_factors` é a resposta ordenada à pergunta "porque é que este endereço tem esta pontuação". Os fornecedores classificam um endereço com o seu próprio modelo e devolvem apenas um veredito (a Merkle Science devolve um inteiro `0-5`), pelo que `risk_score` por si só não permite tomar medidas. Cada entrada identifica um fator; as entradas são ordenadas primeiro pelos fatores de alto risco e, depois, pelo valor que passou por cada fator.

| Campo | Tipo | Descrição |
| - | - | - |
| `source` | string | `attribution` (o que o fornecedor diz que o endereço *é*, a sua própria etiqueta ou agrupamento) ou `exposure` (por onde os fundos efetivamente circularam). |
| `category` | string | Categoria de risco normalizada, com o mesmo vocabulário do detalhe da exposição. |
| `label` | string | A redação própria do fornecedor, por exemplo `Gambling / Crypto only`. Use este valor numa interface: corresponde ao que veria na consola do fornecedor. |
| `entity_name` | string \| null | Entidade atribuída, por exemplo um site de jogo ou uma plataforma de câmbio. Os exemplos desta página usam marcadores como `Example Gambling`. |
| `direction` | string | `incoming`, `outgoing`, `connected`, `attribution` (a etiqueta própria do endereço) ou `unknown` quando o fornecedor não indicou o sentido. |
| `exposure_type` | string | `direct` (1 salto), `indirect` (vários saltos), `attribution` (a etiqueta própria do endereço) ou `unknown` quando o fornecedor não indicou a quantos saltos de distância está a contraparte. Trate `unknown` como não classificado, nunca como `direct`. |
| `amount_usd` | number \| null | Valor em USD atribuído a este fator. |
| `percentage` | number | Parte do volume **total** analisado do endereço, somando os dois sentidos. Ao contrário de `percentage` dentro de `source_of_funds` / `destination_of_funds`, que é normalizado por sentido, este valor é comparável e somável em toda a lista. |
| `is_high_risk` | boolean | Indica se a categoria é considerada de alto risco pela Didit (`sanctioned`, `mixer`, `stolen_funds`, `ransomware`, `scam`, `darknet_market`, `terrorist_financing`, `child_exploitation`, `hacked_exchange`, `high_risk_exchange`, `seized_funds`). |
| `description` | string | Descrição de uma linha do fator, por exemplo `9.01% indirect outgoing exposure to Gambling / Crypto only (Example Gambling)`. |

> [!NOTE]
>
> **Uma pontuação alta sem nenhum fator `is_high_risk` é um resultado real e significativo.** Significa que o fornecedor classificou o endereço com base no seu próprio modelo de exposição, sem reportar uma correspondência com sanções, com uma PEP ou com uma entidade atribuída: os fatores listados são os fluxos de fundos que sustentam a classificação. `summary` declara isto explicitamente, por isso trate estes endereços como "rever os fluxos", e não como uma correspondência confirmada. `risk_factors` está limitado aos cinco fatores mais fortes; `source_of_funds` e `destination_of_funds` contêm sempre o detalhe completo.
>
> **`risk_factors` é um campo de nível superior, não aninhado.** Os resultados analisados antes da existência deste campo omitem a chave por completo: leia-a como uma lista vazia, em vez de assumir uma explicação vazia.

### Detalhe da exposição

Cada entrada em `source_of_funds` / `destination_of_funds` descreve uma entidade com a qual o endereço trocou fundos:

| Campo | Tipo | Descrição |
| - | - | - |
| `category` | string | Categoria de risco normalizada (`exchange_licensed`, `dex`, `defi`, `mixer`, `sanctioned`, `darknet_market`, `stolen_funds`, …). |
| `entity_name` | string \| null | Entidade atribuída, por exemplo uma exchange, um mixer ou um grupo sancionado. Os exemplos desta página usam marcadores de posição. |
| `entity_type` | string \| null | Tipo de entidade do fornecedor (`Exchange`, `DeFi`, `Sanctions`). |
| `entity_subtype` | string \| null | Subtipo detalhado (`Mandatory KYC and AML`, `OFAC`). |
| `description` | string \| null | `entity_type / entity_subtype`, tal como o fornecedor designa a entidade. |
| `exposure_direction` | string | `incoming`, `outgoing` ou `connected`. |
| `exposure_type` | string | `direct` (1 salto) ou `indirect` (multissalto). |
| `is_direct` | boolean | `true` quando `exposure_type` é `direct`. |
| `amount_usd` | number \| null | Valor em USD atribuído à entidade. |
| `percentage` | number | Parte do total de exposição da direção (0–100). |
| `hops` | integer \| null | Número de saltos até à entidade (`1` para uma contraparte direta), quando o fornecedor o indica. Fica sempre `null` na Merkle Science, que indica apenas se a exposição é direta ou indireta: use `exposure_type`. |
| `country` | string \| null | País principal da entidade, segundo a norma ISO 3166-1 alfa-2. Vazio ou `null` quando o fornecedor não o conhece. |
| `provider_entity_id`, `provider_entity_type_id`, `provider_entity_subtype_id` | string \| null | Os identificadores próprios do fornecedor para a entidade e para o respetivo tipo. |
| `raw_amount`, `raw_currency` | number \| null, string \| null | Montante na unidade do próprio ativo, quando o fornecedor o indica. |

### Ligações com contrapartes

`counterparty_connections` lista as entidades às quais o fornecedor atribui o endereço analisado. Na Merkle Science, estas provêm das etiquetas de proprietário e de utilizador do próprio endereço, pelo que a mesma entidade pode aparecer duas vezes, e não incluem fluxos de fundos: `received_usd`, `sent_usd`, `received_hops` e `sent_hops` são `null`, e `percentage` é `0.0`. Leia os fluxos de fundos em `source_of_funds` e `destination_of_funds`.

| Campo | Tipo | Descrição |
| - | - | - |
| `entity_name` | string \| null | Entidade atribuída. |
| `entity_type` | string \| null | Tipo de entidade do fornecedor. |
| `entity_subtype` | string \| null | Subtipo detalhado. |
| `categories` | array | Categorias de risco normalizadas da entidade. |
| `risk_level` | string | Em minúsculas, depende do fornecedor. Na Merkle Science, corresponde à classificação de risco de 0 a 5 do próprio endereço (`no_risk`, `low`, `medium_low`, `medium`, `high`, `critical`), elevada para `high` quando a categoria da entidade é de risco elevado; não é uma classificação separada da entidade. |
| `is_direct` | boolean | Sempre `true` na Merkle Science, cujas ligações são atribuições e não contrapartes. |
| `received_usd`, `sent_usd` | number \| null | USD recebidos da entidade e enviados para a entidade, quando o fornecedor os indica. |
| `received_hops`, `sent_hops` | integer \| null | Saltos até à entidade em cada direção, quando o fornecedor os indica. |
| `percentage` | number | Parte da exposição do endereço, quando o fornecedor a indica; caso contrário, `0.0`. |
| `country` | string \| null | País da entidade, quando conhecido. |
| `provider_entity_id` | string \| null | O identificador próprio do fornecedor para a entidade. |

> [!WARNING]
>
> Não use `counterparty_connections[].risk_level` nem `counterparty_connections[].is_direct` para encaminhar decisões: na Merkle Science, o primeiro repete a pontuação de risco do próprio endereço (leia `risk_score`) e o segundo é sempre `true`. 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.

### Exemplo

Uma resposta real para um endereço na lista de sanções OFAC, analisado com a Merkle Science. Só `raw_response` foi encurtado e `report_signature` foi substituído:

```json theme={null}
{
  "provider": "merklescience",
  "screening_type": "WALLET_SCREENING",
  "risk_score": 95,
  "severity": "CRITICAL",
  "status": "SCREENED",
  "summary": "Merkle Science risk: Critical (5/5). SANCTIONS HIT. Dominant risk: sanctioned. Driven by: the address is attributed to Sanctions / OFAC (Example Sanctions)",
  "wallet_address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
  "transaction_hash": null,
  "blockchain": "ETH",
  "block_timestamp": null,
  "total_value_usd": null,
  "fee_usd": null,
  "sender_rows": [],
  "receiver_rows": [],
  "transaction_flows": [],
  "transaction_flows_status": null,
  "transaction_flows_error": null,
  "source_of_funds": [
    {
      "category": "sanctioned",
      "percentage": 100.0,
      "amount_usd": 9813695.0,
      "entity_name": "Example Sanctions",
      "entity_type": "Sanctions",
      "entity_subtype": "OFAC",
      "hops": null,
      "description": "Sanctions / OFAC",
      "is_direct": true,
      "exposure_direction": "incoming",
      "exposure_type": "direct",
      "provider_entity_id": "118885",
      "provider_entity_type_id": "30",
      "provider_entity_subtype_id": "125",
      "country": "",
      "raw_amount": null,
      "raw_currency": null
    }
  ],
  "destination_of_funds": [
    {
      "category": "defi",
      "percentage": 84.824453,
      "amount_usd": 7783414.38,
      "entity_name": "Example DeFi 7",
      "entity_type": "DeFi",
      "entity_subtype": "Bridges",
      "hops": null,
      "description": "DeFi / Bridges",
      "is_direct": false,
      "exposure_direction": "outgoing",
      "exposure_type": "indirect",
      "provider_entity_id": "118459",
      "provider_entity_type_id": "33",
      "provider_entity_subtype_id": "143",
      "country": "",
      "raw_amount": null,
      "raw_currency": null
    },
    {
      "category": "defi",
      "percentage": 15.175547,
      "amount_usd": 1392494.37,
      "entity_name": "Example DeFi 2",
      "entity_type": "DeFi",
      "entity_subtype": "Yield Aggregator",
      "hops": null,
      "description": "DeFi / Yield Aggregator",
      "is_direct": false,
      "exposure_direction": "outgoing",
      "exposure_type": "indirect",
      "provider_entity_id": "90192",
      "provider_entity_type_id": "33",
      "provider_entity_subtype_id": "142",
      "country": "",
      "raw_amount": null,
      "raw_currency": null
    }
  ],
  "counterparty_connections": [
    {
      "entity_name": "Example Sanctions",
      "entity_type": "Sanctions",
      "entity_subtype": "OFAC",
      "risk_level": "critical",
      "categories": [
        "sanctioned"
      ],
      "received_usd": null,
      "sent_usd": null,
      "received_hops": null,
      "sent_hops": null,
      "percentage": 0.0,
      "is_direct": true,
      "country": null,
      "provider_entity_id": null
    },
    {
      "entity_name": "Example Sanctions",
      "entity_type": "Sanctions",
      "entity_subtype": "OFAC",
      "risk_level": "critical",
      "categories": [
        "sanctioned"
      ],
      "received_usd": null,
      "sent_usd": null,
      "received_hops": null,
      "sent_hops": null,
      "percentage": 0.0,
      "is_direct": true,
      "country": null,
      "provider_entity_id": null
    }
  ],
  "network_nodes": [],
  "network_edges": [],
  "sanctions_hit": true,
  "pep_counterparty": null,
  "dominant_risk_category": "sanctioned",
  "risk_factors": [
    {
      "source": "attribution",
      "category": "sanctioned",
      "label": "Sanctions / OFAC",
      "entity_name": "Example Sanctions",
      "direction": "attribution",
      "exposure_type": "attribution",
      "amount_usd": null,
      "percentage": 0.0,
      "is_high_risk": true,
      "description": "the address is attributed to Sanctions / OFAC (Example Sanctions)"
    },
    {
      "source": "exposure",
      "category": "sanctioned",
      "label": "Sanctions / OFAC",
      "entity_name": "Example Sanctions",
      "direction": "incoming",
      "exposure_type": "direct",
      "amount_usd": 9813695.0,
      "percentage": 51.679304,
      "is_high_risk": true,
      "description": "51.6793% direct incoming exposure to Sanctions / OFAC (Example Sanctions)"
    },
    {
      "source": "exposure",
      "category": "defi",
      "label": "DeFi / Bridges",
      "entity_name": "Example DeFi 7",
      "direction": "outgoing",
      "exposure_type": "indirect",
      "amount_usd": 7783414.38,
      "percentage": 40.987766,
      "is_high_risk": false,
      "description": "40.9878% indirect outgoing exposure to DeFi / Bridges (Example DeFi 7)"
    },
    {
      "source": "exposure",
      "category": "defi",
      "label": "DeFi / Yield Aggregator",
      "entity_name": "Example DeFi 2",
      "direction": "outgoing",
      "exposure_type": "indirect",
      "amount_usd": 1392494.37,
      "percentage": 7.33293,
      "is_high_risk": false,
      "description": "7.33293% indirect outgoing exposure to DeFi / Yield Aggregator (Example DeFi 2)"
    }
  ],
  "raw_response": {
    "...": "provider-specific details"
  },
  "report_signature": "<hmac-sha256 over the result, scoped to your application>"
}
```

Os exemplos ilustram a estrutura da resposta, não um veredito garantido para um endereço real.
As pontuações de risco e a exposição a sanções dependem da rede selecionada, da informação atualizada e da política de risco configurada.
A atribuição a uma plataforma de câmbio não implica uma pontuação de risco zero: uma carteira de uma plataforma de câmbio pode ter exposição a sanções através dos seus fluxos de fundos.
`sanctions_hit: true` pode indicar que a própria carteira está sancionada ou apenas que os seus fundos têm exposição a sanções, pelo que não significa, por si só, que o titular da carteira analisada esteja sancionado.
Quando a mesma triagem é executada sobre uma transação registada, as regras podem também ler `custom_values.wallet_sanctioned`, que é `true` apenas quando o fornecedor atribui a própria carteira a uma entidade sancionada, e `custom_values.aml_sanctions_exposure_pct`.
Consulte [Campos de triagem para regras](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md#campos-de-análise-para-regras).
Leia `risk_factors`, `source_of_funds` e `destination_of_funds` para distinguir atribuição de exposição.
Consulte [Triagem de cripto e carteiras](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md#resultados-da-triagem) para um guia passo a passo.

## Relatório PDF

Para obter um PDF com a marca Didit de um resultado de triagem, reenvie o corpo exato da resposta, incluindo `report_signature`, para `POST /v3/wallet-screening/pdf/`. Esta operação não tem estado: não há chamadas ao fornecedor, não há faturação adicional e nada é guardado. Editar qualquer campo assinado (`risk_score`, `severity`, `sanctions_hit`, …) antes de reenviar falha com `400`.

```bash theme={null}
RESULT=$(curl -s -X POST https://verification.didit.me/v3/wallet-screening/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"wallet_address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a", "blockchain": "ETH"}')

curl -X POST https://verification.didit.me/v3/wallet-screening/pdf/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$RESULT" \
  -o wallet_screening_report.pdf
```

Consulte [Triagem de carteira em PDF](https://docs.didit.me/pt/management-api/transactions/screen-wallet-pdf.md) para o esquema completo de pedido e resposta e para as estruturas de erro.

## Billing

Cada utilização de monitorização AML é faturada por triagem bem-sucedida, à mesma tarifa da triagem cripto associada a transações. Consulte os [preços](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md#fornecedores-suportados) das tarifas com chave gerida e com chave ligada. As aplicações em sandbox não são faturadas. Os erros de validação (`400`) e os erros de fornecedor não configurado (`409`) nunca são faturados.

## Erros

| Status | Significado |
| - | - |
| `400` | Endereço de carteira mal formado, `wallet_address` em falta ou `blockchain` não suportado. |
| `401` | `x-api-key` em falta ou inválida. |
| `409` | Nenhum fornecedor AML configurado para a aplicação: configure primeiro a monitorização de transações. |
| `409` | O fornecedor rejeitou a chave de API que ligou (`wallet_screening_provider_credentials_rejected`): atualize a chave na ligação do Marketplace ou, para uma chave configurada nas definições de monitorização de transações, atualize-a aí. Tentar novamente com a mesma chave não resolve o problema. |
| `409` | O fornecedor AML configurado ainda não suporta triagem de carteiras (`wallet_screening_provider_unavailable`). |
| `422` | Foi enviado um endereço `0x` sem `blockchain` (`wallet_screening_chain_undetermined`). O corpo lista os `candidate_chains`; reenvie com uma delas. Não é feita triagem nem faturação. |
| `502` | O fornecedor não conseguiu concluir a triagem; tente novamente mais tarde. |

## Próximos passos

> [card] [Referência da API](https://docs.didit.me/pt/management-api/transactions/screen-wallet.md)
>
> Esquema completo do pedido e da resposta do endpoint Screen Wallet.

> [card] [PDF Screen Wallet](https://docs.didit.me/pt/management-api/transactions/screen-wallet-pdf.md)
>
> Gere o resultado de uma triagem como PDF com a marca Didit.

> [card] [Triagem cripto e de carteiras](https://docs.didit.me/pt/transaction-monitoring/aml-screening.md)
>
> Triagem automática durante a criação de transações e o modelo de resultados.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.