> ## 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.

# Cribratge de carteres sota demanda: API sense transacció

> Cribra una adreça de cartera cripto amb Didit per detectar risc AML sense crear transaccions. Origen dels fons, sancions i puntuació de risc.

## Quan utilitzar-ho

De vegades cal verificar el risc AML d'una cartera de criptomonedes **abans** que hi hagi cap transacció per registrar, per exemple quan un client afegeix una adreça de retirada o quan el teu equip de compliment vol revisar una adreça puntualment. L'endpoint de cribratge de carteres sota demanda cribra una única adreça i retorna el resultat de risc complet sense crear cap transacció.

És l'equivalent independent del [cribratge automàtic de criptomonedes](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md) que s'executa durant l'[enviament de la transacció](https://docs.didit.me/ca/transaction-monitoring/transactions.md). Tots dos comparteixen els mateixos proveïdors d'analítica de blockchain i la mateixa estructura de resultat.

| Cas d'ús | Endpoint |
| - | - |
| Verificar prèviament una adreça sense cap transacció per registrar | **Cribratge de carteres** — `POST /v3/wallet-screening/` |
| Cribrar una cartera com a part d'un dipòsit o una retirada registrats | [Crear transacció](https://docs.didit.me/ca/transaction-monitoring/transactions.md) amb `currency_kind: "crypto"` |

El cribratge de carteres no escriu res a la taula de transaccions. Si necessites que el cribratge quedi associat a una transacció monitoritzada (amb regles, alertes i webhooks), envia una transacció.

## Requisits previs

El monitoratge de transaccions s'ha de configurar per a l'aplicació amb un proveïdor gestionat o amb una [clau de proveïdor existent](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md#proveïdors-compatibles). Configura'l a **Transaccions** > **Configuració** > **Provider Preferences** a la [Business Console](https://business.didit.me). Si no hi ha cap proveïdor configurat, l'endpoint retorna `409 Conflict`.

## Sol·licitud

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

Autentica't amb la capçalera `x-api-key`.

| Camp | Tipus | Obligatori | Descripció |
| - | - | - | - |
| `wallet_address` | string | Sí | L'adreça o l'identificador de xarxa a cribrar. Ha de coincidir amb la xarxa escollida, com ara `0x` + 40 caràcters hexadecimals per a les cadenes EVM o un identificador Lightning acceptat pel teu proveïdor. Àlies: `address`. |
| `blockchain` | string | No | Identificador d'actiu o xarxa. Quan s'omet, Didit llegeix la xarxa a partir del format de l'adreça: les adreces `bc1`, `1` i `3` són Bitcoin (`BTC`), les adreces `T` són Tron (`TRX`) i les claus públiques en base58 són Solana (`SOL`). Una adreça `0x` és vàlida a totes les xarxes EVM, així que respon `422` amb `candidate_chains` i no es cribra ni es factura res; torna-la a enviar amb la xarxa definida. Qualsevol altre format respon `400`. Valors acceptats: `BTC`, `LIGHTNING`, `ETH`, `LTC`, `XRP`, `BCH`, `DOGE`, `TRX`, `SOL`, `MATIC`, `BNB`, `BASE`, `OP`, `ARB`, `AVAX`, `ADA`, `XLM`, `HBAR`, `CELO`, `MODE`, `PLUME`, `USDT`, `USDC`. També s'accepten noms comuns de xarxa, per exemple `POLYGON` o `POL` per a `MATIC`, `BSC` per a `BNB` i `TRON` per a `TRX`. Àlies: `currency`. |
| `direction` | string | No | `inbound`, `outbound`, `deposit` o `withdrawal`. Context opcional per al proveïdor; omet-lo per a un cribratge neutral previ a la transferència. No canvia el `risk_score`, el `severity` ni els desglossaments del flux de fons (vegeu la nota a [Resposta](#resposta)). |

### Cobertura de cadenes

El cribratge gestionat admet Base (`BASE`), Optimism (`OP`) i Arbitrum One (`ARB`), tant per al cribratge de carteres com per al de hashes de transacció.
La cobertura dels proveïdors connectats pot ser diferent; una cadena també ha de ser compatible amb el proveïdor i el compte que hagis seleccionat.
Celo (`CELO`), Mode (`MODE`) i Plume (`PLUME`) es cribren a través d'un compte connectat de TRM Labs (Marketplace, amb clau pròpia); el cribratge gestionat no les cobreix i respon `400`.
No enviïs `ETH` per a una altra xarxa EVM: una mateixa adreça pot tenir activitat i risc diferents a cada cadena.

Amb el cribratge gestionat, `USDT` i `USDC` són àlies antics per a Ethereum, no una cerca a totes les xarxes on existeixen aquests tokens.
Utilitza l'identificador de xarxa (`ETH`, `TRX`, `SOL`, `MATIC`, `BNB`, `BASE`, `OP`, `ARB`, `AVAX`, `ADA`, `XLM`, `HBAR`, o, amb TRM Labs, `CELO`, `MODE` o `PLUME`) per a la cadena real de la cartera.
Per als tokens de transaccions registrades, mantén el token a `transaction_details.currency` i indica la xarxa per separat a `transaction_details.crypto_params.crypto_chain`.
Consulta [selecció d'actiu i xarxa](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md#selecció-d’actiu-i-xarxa).

> [!WARNING]
>
> `LIGHTNING` només està disponible quan l'aplicació té un proveïdor BYOK connectat d'Elliptic o de Chainalysis al **Marketplace** de la consola.
> No està disponible amb Merkle Science gestionat, ni amb Crystal o TRM Labs.
> Les sol·licituds sense un proveïdor connectat compatible retornen `400` i no es cribren ni es facturen.

```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

La resposta és el resultat estandarditzat del cribratge. Té la mateixa estructura que el resultat del proveïdor `WALLET_SCREENING` que retorna el cribratge de transaccions.

| Camp | Tipus | Descripció |
| - | - | - |
| `provider` | string | Proveïdor que ha analitzat l'adreça (`merklescience`, `crystal`, `chainalysis`, `elliptic`, `trmlabs`). |
| `screening_type` | string | Sempre `WALLET_SCREENING`. |
| `risk_score` | integer | Puntuació de risc normalitzada de 0 a 100. Merkle Science puntua una adreça amb `0-5`, que es converteix en `0`, `15`, `35`, `55`, `75` o `95`. |
| `severity` | string | Franja de risc derivada de `risk_score` (vegeu la nota següent): `UNKNOWN`, `LOW`, `MEDIUM`, `HIGH` o `CRITICAL`. |
| `status` | string | `SCREENED`, `PENDING` o `ERROR`. |
| `summary` | string | Resum comprensible per a les persones. |
| `wallet_address` | string | L'adreça analitzada. |
| `blockchain` | string | La cadena analitzada. |
| `sanctions_hit` | boolean | `true` quan la cartera analitzada està sancionada, o quan els fons d'alguna de les seves contraparts procedeixen d'entitats sancionades (exposició). No distingeix entre els dos casos. |
| `pep_counterparty` | boolean \| null | Exposició a una persona políticament exposada (PEP). És `null` quan no hi ha cap resultat PEP disponible, cosa que passa en tots els resultats actuals perquè cap proveïdor n'informa. És `false` només en un resultat de cribratge negatiu explícit. No interpretis `null` com una comprovació PEP completada. |
| `dominant_risk_category` | string \| null | Categoria d'alt risc amb més pes, o `null`. |
| `risk_factors` | array | Explicació ordenada de `risk_score`: què ha produït aquest veredicte. Consulta [Factors de risc](#factors-de-risc). |
| `source_of_funds` | array | D'on han arribat els fons, per entitat. Consulta [Desglossament de l'exposició](#desglossament-de-l’exposició). |
| `destination_of_funds` | array | A on s'han enviat els fons, per entitat. La forma de cada entrada és la mateixa que la de `source_of_funds`. |
| `counterparty_connections` | array | Entitats a les quals el proveïdor atribueix l'adreça. Consulta [Connexions de contrapart](#connexions-amb-contraparts). |
| `network_nodes`, `network_edges` | array | Graf de l'exposició per al cribratge de transaccions. És buit en un resultat de cribratge de carteres. |
| `transaction_hash`, `block_timestamp`, `total_value_usd`, `fee_usd`, `transaction_flows_status`, `transaction_flows_error` | null | Camps del cribratge de transaccions, compartits amb l'estructura del resultat. Són sempre `null` en un resultat de cribratge de carteres. |
| `sender_rows`, `receiver_rows`, `transaction_flows` | array | Camps del cribratge de transaccions. Són sempre buits en un resultat de cribratge de carteres. |
| `raw_response` | object | El payload propi del proveïdor. La seva estructura depèn del proveïdor i pot canviar sense avís: llegeix els camps normalitzats anteriors en lloc d'analitzar-la. |
| `report_signature` | string | Signatura opaca d'aquest resultat, limitada a la teva aplicació. Torna a enviar la resposta sense modificar-la, incloent-hi aquest camp, per [generar-ne un PDF](#informe-pdf). |

> [!NOTE]
>
> **Com es defineix `severity`.** `severity` és la franja del `risk_score` normalitzat: `0-9` → `UNKNOWN`, `10-39` → `LOW`, `40-69` → `MEDIUM`, `70-89` → `HIGH`, `90-100` → `CRITICAL`. `UNKNOWN` és la franja més baixa, no un estat separat de «sense dades»: `risk_score: 0` (el cas habitual d'una adreça neta) vol dir que el proveïdor no ha retornat cap avaluació adversa, mentre que una puntuació diferent de zero dins del rang `1-9` és un senyal real però inferior a `LOW`. Per tant, llegeix el `risk_score` en si, no només la franja. En qualsevol cas, no mostris `UNKNOWN` com a «net» ni com a aprovació.
>
> **`direction` no canvia el model de risc.** El camp opcional `direction` es passa al proveïdor només com a context. No afecta `risk_score`, `severity` ni les llistes del desglossament que es retornen: `source_of_funds` i `destination_of_funds` es retornen sempre, independentment del valor. Per tant, canviar o ometre `direction` no obliga a tornar a analitzar una adreça ja analitzada.

### Factors de risc

`risk_factors` és la resposta ordenada a «per què aquesta adreça té aquesta puntuació». Els proveïdors puntuen una adreça amb el seu propi model i només retornen un veredicte: Merkle Science retorna un enter de `0-5`, de manera que `risk_score` per si sol no permet actuar. Cada entrada indica un factor concret, ordenat primer pels factors de risc alt i després pel valor que hi ha circulat.

| Camp | Tipus | Descripció |
| - | - | - |
| `source` | string | `attribution` (què diu el proveïdor que l'adreça *és*: la seva pròpia etiqueta o clúster) o `exposure` (on han circulat realment els seus fons). |
| `category` | string | Categoria de risc normalitzada, amb el mateix vocabulari que el desglossament de l'exposició. |
| `label` | string | El text del propi proveïdor, per exemple `Gambling / Crypto only`. Utilitza'l en una interfície: coincideix amb el que veuries a la consola del proveïdor. |
| `entity_name` | string \| null | Entitat atribuïda, per exemple un lloc de jocs d'atzar o una plataforma d'intercanvi. Els exemples d'aquesta pàgina fan servir marcadors de posició com `Example Gambling`. |
| `direction` | string | `incoming`, `outgoing`, `connected`, `attribution` (l'etiqueta pròpia de l'adreça) o `unknown` quan el proveïdor no ha indicat cap direcció. |
| `exposure_type` | string | `direct` (1 salt), `indirect` (diversos salts), `attribution` (l'etiqueta pròpia de l'adreça) o `unknown` quan el proveïdor no ha indicat a quants salts es troba la contrapart. Tracta `unknown` com a no classificat, mai com a `direct`. |
| `amount_usd` | number \| null | Valor en USD atribuït a aquest factor. |
| `percentage` | number | Part del volum **total** analitzat de l'adreça, sumant les dues direccions. A diferència de `percentage` dins de `source_of_funds` / `destination_of_funds`, que es normalitza per direcció, aquest valor es pot comparar i sumar en tota la llista. |
| `is_high_risk` | boolean | Indica si la categoria és una que Didit considera d'alt risc (`sanctioned`, `mixer`, `stolen_funds`, `ransomware`, `scam`, `darknet_market`, `terrorist_financing`, `child_exploitation`, `hacked_exchange`, `high_risk_exchange`, `seized_funds`). |
| `description` | string | Descripció del factor en una línia, per exemple `9.01% indirect outgoing exposure to Gambling / Crypto only (Example Gambling)`. |

> [!NOTE]
>
> **Una puntuació alta sense cap factor `is_high_risk` és un resultat real i significatiu.** Vol dir que el proveïdor ha puntuat l'adreça amb el seu propi model d'exposició sense informar de cap coincidència amb sancions, PEP o entitats atribuïdes. Els factors que sí que apareixen són els fluxos de fons que hi ha darrere de la puntuació. `summary` ho indica explícitament, així que tracta aquestes adreces com a «revisar els fluxos», no com a coincidència confirmada. `risk_factors` es limita als cinc factors més rellevants, mentre que `source_of_funds` i `destination_of_funds` sempre contenen el desglossament complet.
>
> **`risk_factors` és un camp de primer nivell, no un camp niat.** Els resultats cribrats abans que existís l'ometen per complet: llegeix-lo com una llista buida en lloc de suposar una explicació buida.

### Desglossament de l'exposició

Cada entrada de `source_of_funds` / `destination_of_funds` descriu una entitat amb la qual l'adreça ha intercanviat fons:

| Camp | Tipus | Descripció |
| - | - | - |
| `category` | string | Categoria de risc normalitzada (`exchange_licensed`, `dex`, `defi`, `mixer`, `sanctioned`, `darknet_market`, `stolen_funds`, …). |
| `entity_name` | string \| null | Entitat atribuïda, per exemple una plataforma d'intercanvi, un mesclador o un grup sancionat. Els exemples d'aquesta pàgina fan servir marcadors de posició. |
| `entity_type` | string \| null | Tipus d'entitat segons el proveïdor (`Exchange`, `DeFi`, `Sanctions`). |
| `entity_subtype` | string \| null | Subtipus detallat (`Mandatory KYC and AML`, `OFAC`). |
| `description` | string \| null | `entity_type / entity_subtype`, tal com l'etiqueta el proveïdor. |
| `exposure_direction` | string | `incoming`, `outgoing` o `connected`. |
| `exposure_type` | string | `direct` (1 salt) o `indirect` (multisalt). |
| `is_direct` | boolean | `true` quan `exposure_type` és `direct`. |
| `amount_usd` | number \| null | Valor en USD atribuït a l'entitat. |
| `percentage` | number | Percentatge del total d'exposició de la direcció (0–100). |
| `hops` | integer \| null | Nombre de salts fins a l'entitat (`1` per a una contrapart directa), quan el proveïdor n'informa. Sempre `null` per a Merkle Science, que només indica si l'exposició és directa o indirecta: fes servir `exposure_type`. |
| `country` | string \| null | Codi de país ISO 3166-1 alpha-2 principal de l'entitat. Buit o `null` quan el proveïdor no el coneix. |
| `provider_entity_id`, `provider_entity_type_id`, `provider_entity_subtype_id` | string \| null | Els identificadors propis del proveïdor per a l'entitat i per al seu tipus. |
| `raw_amount`, `raw_currency` | number \| null, string \| null | Import en la unitat pròpia de l'actiu, quan el proveïdor n'informa. |

### Connexions amb contraparts

`counterparty_connections` enumera les entitats que el proveïdor atribueix a l'adreça analitzada. Per a Merkle Science, provenen de les etiquetes de propietari i d'usuari de la mateixa adreça, de manera que una mateixa entitat pot aparèixer dues vegades, i no contenen flux de fons: `received_usd`, `sent_usd`, `received_hops` i `sent_hops` són `null`, i `percentage` és `0.0`. Llegeix els fluxos de fons des de `source_of_funds` i `destination_of_funds`.

| Camp | Tipus | Descripció |
| - | - | - |
| `entity_name` | string \| null | Entitat atribuïda. |
| `entity_type` | string \| null | Tipus d'entitat segons el proveïdor. |
| `entity_subtype` | string \| null | Subtipus detallat. |
| `categories` | array | Categories de risc normalitzades de l'entitat. |
| `risk_level` | string | És en minúscules i depèn del proveïdor. Per a Merkle Science és la qualificació de risc de 0 a 5 de la pròpia adreça (`no_risk`, `low`, `medium_low`, `medium`, `high`, `critical`), que passa a `high` quan la categoria de l'entitat és d'alt risc; no és una qualificació independent de l'entitat. |
| `is_direct` | boolean | Sempre `true` per a Merkle Science, perquè les seves connexions són atribucions i no contraparts. |
| `received_usd`, `sent_usd` | number \| null | USD rebuts de l'entitat i enviats a l'entitat, quan el proveïdor n'informa. |
| `received_hops`, `sent_hops` | integer \| null | Salts fins a l'entitat en cada direcció, quan el proveïdor n'informa. |
| `percentage` | number | Percentatge de l'exposició de l'adreça, quan el proveïdor n'informa; en cas contrari, `0.0`. |
| `country` | string \| null | País de l'entitat, quan es coneix. |
| `provider_entity_id` | string \| null | Identificador propi del proveïdor per a l'entitat. |

> [!WARNING]
>
> No prenguis decisions a partir de `counterparty_connections[].risk_level` ni de `counterparty_connections[].is_direct`: per a Merkle Science, el primer repeteix la qualificació pròpia de l'adreça (consulta `risk_score`) i el segon és sempre `true`. Fes servir `sanctions_hit`, `dominant_risk_category` i `risk_factors[].is_high_risk` per al veredicte, i `exposure_type` dins de `source_of_funds` / `destination_of_funds` per determinar si és directa.

### Exemple

Una resposta real per a una adreça inclosa a la llista de sancions de l'OFAC, analitzada amb Merkle Science. Només s'ha escurçat `raw_response` i s'ha substituït `report_signature`:

```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>"
}
```

Els exemples il·lustren l'estructura de la resposta, no un veredicte garantit per a una adreça real. Les puntuacions de risc i l'exposició a sancions depenen de la xarxa seleccionada, de la intel·ligència vigent i de la política de risc configurada. Una atribució a una plataforma d'intercanvi no implica una puntuació de risc zero: una cartera d'una plataforma d'intercanvi pot tenir exposició a sancions a través dels seus fluxos de fons.
`sanctions_hit: true` pot indicar que la cartera en si està sancionada o només que els seus fons tenen exposició a sancions, de manera que, per si sol, no vol dir que el titular de la cartera analitzada estigui sancionat.
Quan el mateix cribratge s'executa sobre una transacció registrada, les regles també poden llegir `custom_values.wallet_sanctioned`, que és `true` només quan el proveïdor atribueix la cartera en si a una entitat sancionada, i `custom_values.aml_sanctions_exposure_pct`.
Consulta [Camps de cribratge per a regles](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md#camps-de-cribratge-per-a-regles).
Llegeix `risk_factors`, `source_of_funds` i `destination_of_funds` per distingir l'atribució de l'exposició.
Consulta [Cribratge de criptomonedes i carteres](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md#resultats-del-cribratge) per a una guia pas a pas.

## Informe PDF

Per obtenir un PDF amb la marca de Didit d'un resultat de cribratge, torna a enviar el cos exacte de la resposta, incloent-hi `report_signature`, a `POST /v3/wallet-screening/pdf/`. Aquesta operació és sense estat: no fa cap crida al proveïdor, no genera cap cost addicional i no es desa res. Si edites qualsevol camp signat (`risk_score`, `severity`, `sanctions_hit`, …) abans de tornar a enviar-lo, la petició falla amb `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
```

Consulta [Screen Wallet PDF](https://docs.didit.me/ca/management-api/transactions/screen-wallet-pdf.md) per a l'esquema complet de la petició i de la resposta, i per als formats d'error.

## Facturació

Es factura un ús de monitoratge AML per cribratge satisfactori, a la mateixa tarifa que el cribratge de criptoactius vinculat a transaccions. Consulta els [preus](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md#proveïdors-compatibles) per a les tarifes gestionades i per a les claus connectades. Les aplicacions de sandbox no es facturen. Els errors de validació (`400`) i els errors de proveïdor no configurat (`409`) mai no es facturen.

## Errors

| Estat | Significat |
| - | - |
| `400` | Adreça de cartera mal formada, `wallet_address` absent o `blockchain` no compatible. |
| `401` | `x-api-key` absent o no vàlida. |
| `409` | No hi ha cap proveïdor AML configurat per a l'aplicació: configura primer el monitoratge de transaccions. |
| `409` | El proveïdor ha rebutjat la clau d'API que has connectat (`wallet_screening_provider_credentials_rejected`): actualitza la clau a la connexió del Marketplace o, per a una clau configurada allà, a la configuració del monitoratge de transaccions. Tornar a intentar-ho amb la mateixa clau no serveix de res. |
| `409` | El proveïdor AML configurat encara no admet el cribratge de carteres (`wallet_screening_provider_unavailable`). |
| `422` | S'ha enviat una adreça `0x` sense `blockchain` (`wallet_screening_chain_undetermined`). El cos de la resposta inclou `candidate_chains`; torna a enviar la sol·licitud amb una d'aquestes cadenes. No es fa cap cribratge ni se'n factura cap. |
| `502` | El proveïdor no ha pogut completar el cribratge; torna-ho a intentar més tard. |

## Següents passos

> [card] [Referència de l'API](https://docs.didit.me/ca/management-api/transactions/screen-wallet.md)
>
> Esquema complet de la sol·licitud i de la resposta de l'endpoint Screen Wallet.

> [card] [PDF de Screen Wallet](https://docs.didit.me/ca/management-api/transactions/screen-wallet-pdf.md)
>
> Genera un resultat de cribratge com a PDF amb la marca de Didit.

> [card] [Cribratge de criptoactius i carteres](https://docs.didit.me/ca/transaction-monitoring/aml-screening.md)
>
> Cribratge automàtic durant la creació de transaccions i el model de resultat.


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