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

# Screening AML: API per sanzioni e PEP

> Verifica utenti con Didit su 1,300+ database di sanzioni, PEP e watchlist in tempo reale. $0.20 a chiamata, doppio punteggio, nessun contratto.

Lo Screening AML di Didit verifica una persona in tempo reale confrontandola con 1,300+ fonti globali di sanzioni, PEP e watchlist, oltre a notizie negative, e restituisce ogni potenziale corrispondenza con due punteggi: un punteggio di corrispondenza che indica quanto è probabile che si tratti della stessa persona, e un punteggio di rischio che misura il livello di rischio dell'entità presente nell'elenco.

Prompt di integrazione dello screening AML
        Copia il prompt negli appunti



      
      

\<pre>

\````# Goal
Integrate Didit AML Screening (PEP, sanctions, warnings, adverse media) into your app. Pick ONE mode.

\# Mode A — Session-based
Run AML as a step inside a verification session. Decisions, ongoing monitoring, and audit history are bound to the session and surfaced in the Business Console.

1\. Add the AML feature to the workflow (Business Console or POST /v3/workflows/). Configure thresholds: aml_match_score_threshold, aml_score_approve_threshold, aml_score_review_threshold, and the weights aml_name_weight + aml_dob_weight + aml_country_weight (must sum to 100).
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: `aml_screenings[]` array on the decision payload.

\# Mode B — Standalone API (server-to-server)
Use when you want a one-shot AML check decoupled from a hosted KYC flow.

POST https://verification.didit.me/v3/aml/
x-api-key: YOUR_API_KEY
Content-Type: application/json

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/aml/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Javier Ejemplo Modelo",
"entity_type": "person",
"date_of_birth": "1974-01-01",
"nationality": "ES",
"include_adverse_media": true,
"vendor_data": "user-1234"
}'
\```
Returns: { request_id, aml: { status, screening_id, hits: [...], warnings: [...] } }.

\# Important policy rules
\- aml_name_weight + aml_dob_weight + aml_country_weight must equal exactly 100 — request rejected with HTTP 400 otherwise.
\- include_adverse_media=true increases latency to ~25s; use a client timeout of at least 45s.
\- include_ongoing_monitoring=true keeps the entity under daily re-screening at **$0.07 per year per screened entity** (billing alert) and requires save_api_request=true (HTTP 400 otherwise). Disable from the Business Console.

\# Status enum (per aml_screenings[].status / aml.status)
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.AML)
warnings[] risk codes include:
POSSIBLE_MATCH_FOUND, MATCH_FOUND, HIGH_RISK_COUNTRY, ADVERSE_MEDIA_HIT, SANCTIONED_ENTITY, PEP_MATCH, ONGOING_MONITORING_ENABLED.
Full catalogue: /core-technology/aml-screening/warnings-aml-screening.

\# Failure modes to handle
\- HTTP 400 — weights don't sum to 100; ongoing_monitoring without save_api_request.
\- HTTP 403 — out of credits.
\- status="Declined" — at least one hit's risk_score ≥ aml_score_review_threshold and crossed the decline boundary.
\- status="In Review" — risk_score between approve and review thresholds; route to manual queue.
\- Adverse-media timeout — the upstream provider was slow; the result returns without adverse-media hits (still actionable).

\# See also
\- Canonical schema: /reference/data-models#aml-screening
\- Per-feature report: /core-technology/aml-screening/report-aml-screening
\- Risk catalogue: /core-technology/aml-screening/warnings-aml-screening
\- Ongoing monitoring: /core-technology/aml-screening/continuous-monitoring-aml-screening
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

Incolla in

La lezione dell'Academy sulla lettura dell'esito di una verifica affronta lo screening AML al minuto 8:40: sanzioni, PEP e notizie negative su una sessione reale.[Screening AML: sanzioni, PEP e notizie negative — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=520\&rel=0\&playsinline=1)![Tabella delle fonti delle watchlist per lo screening AML di Didit, tra cui sanzioni OFAC, UE, ONU e liste PEP](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/aml-list-table.jpeg?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=b254abf5bb564018e15588ef7c56f92e)## Concetti chiave: punteggio di corrispondenza vs punteggio di rischioDidit utilizza un **sistema a due punteggi** per lo screening AML:### Punteggio di corrispondenza (affidabilità dell'identità)- **Domanda:** Questa corrispondenza riguarda la stessa persona sottoposta a screening?
- **Fattori:** Somiglianza del nome, data di nascita, paese/nazionalità, numero del documento
- **Scopo:** Classifica la corrispondenza come **Falso positivo** o **Non esaminato** (Possibile corrispondenza)
- **Soglia:** Soglia del punteggio di corrispondenza (predefinita: 93)### Punteggio di rischio (livello di rischio dell'entità)- **Domanda:** Quanto è rischiosa questa entità se si tratta di una corrispondenza reale?
- **Fattori:** Rischio del paese, categoria (PEP/sanzioni/ecc.), precedenti penali
- **Scopo:** Determina lo **stato AML finale** (Approvato/In revisione/Rifiutato)
- **Soglie:** Soglia di approvazione (predefinita: 80) e soglia di revisione (predefinita: 100)```
┌─────────────────────────────────────────────────────────────────────────────┐
│                           AML SCREENING FLOW                                │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  STEP 1: Screen against watchlists                                          │
│     └── Returns potential matches (match score ≥ 75% included)              │
│                                                                             │
│  STEP 2: For each match, calculate MATCH SCORE                              │
│     └── Match Score = (Name × W1) + (DOB × W2) + (Country × W3)             │
│                                                                             │
│  STEP 3: Classify match by match score                                      │
│     ├── Match Score < 93 → FALSE POSITIVE (excluded from risk)              │
│     └── Match Score ≥ 93 → UNREVIEWED (included in risk)                    │
│                                                                             │
│  STEP 4: For unreviewed matches, calculate RISK SCORE                       │
│     └── Risk Score = (Country × 30%) + (Category × 50%) + (Criminal × 20%)  │
│                                                                             │
│  STEP 5: Determine AML STATUS (highest risk score among non-FP matches)     │
│     ├── Risk Score < 86 → APPROVED                                          │
│     ├── 86 ≤ Risk Score ≤ 100 → IN REVIEW                                   │
│     └── Risk Score > 100 → DECLINED                                         │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘
```## Stati di revisione delle corrispondenzeA ogni corrispondenza AML viene assegnato uno stato di revisione in base al relativo punteggio di corrispondenza:| Stato | Descrizione | Quando viene assegnato |
| - | - | - |
| **Falso positivo** | È probabile che NON si tratti della stessa persona | Punteggio di corrispondenza \< soglia (assegnato automaticamente) |
| **Non esaminato** | La corrispondenza è una possibile corrispondenza che richiede una revisione | Punteggio di corrispondenza ≥ soglia (assegnato automaticamente) |
| **Corrispondenza confermata** | È stato verificato che la corrispondenza riguarda la stessa persona | Impostato manualmente dal responsabile della compliance |
| **Non conclusivo** | Impossibile determinare se si tratti della stessa persona | Impostato manualmente dal responsabile della compliance |> [!NOTE]
>
> ### **Suggerimento:** Puoi modificare lo stato di revisione di una corrispondenza nella Console visualizzando la panoramica AML o cliccando su una corrispondenza specifica per visualizzarne i dettagli.## Funzionalità principali### 1. Estrazione completa dei dati- **Estrazione accurata**: estrai dati dalle informazioni fornite dall'utente o dai documenti d'identità utilizzando una tecnologia OCR avanzata.
- **Logica fuzzy**: gestisci varianti di nomi ed errori di battitura per garantire un'acquisizione completa dei dati.### 2. Ampia copertura delle watchlistEffettua lo screening su più categorie, tra cui:- **Lista delle sanzioni**: da enti governativi e internazionali.
- **Persone politicamente esposte (PEP)**: individui con funzioni pubbliche di rilievo.
- **Precedenti penali**: inclusi database criminali globali e locali.
- **Menzioni in notizie negative**: articoli di giornale e report su reati finanziari e altri rischi.
- **Watchlist personalizzate**: configurabili in base alle esigenze specifiche del cliente.### 3. Algoritmi di corrispondenza avanzati- **Corrispondenza fuzzy**: rileva lievi variazioni nei nomi o nei dettagli per garantire una corrispondenza accurata.
- **Molteplici punti dati**: utilizza nome, data di nascita, nazionalità e altri identificatori per uno screening approfondito.
- **Logica Golden Key**: corrispondenza del numero di documento in grado di sovrascrivere i punteggi per un'identificazione definitiva.### 4. Valutazione del rischio a due punteggiOgni corrispondenza riceve DUE punteggi:| Punteggio | Scopo | Classificazione |
| - | - | - |
| **Punteggio di corrispondenza** (0-100) | Si tratta della stessa persona? | Falso positivo vs Non revisionato |
| **Punteggio di rischio** (0-100) | Quanto è rischiosa questa entità? | Determina lo stato AML finale |**Stato di revisione della corrispondenza (basato sul punteggio di corrispondenza):**- **Falso positivo**: punteggio di corrispondenza inferiore alla soglia: probabilmente NON si tratta della stessa persona
- **Non revisionato**: punteggio di corrispondenza pari o superiore alla soglia: richiede una revisione**Stato AML finale (basato sul punteggio di rischio più elevato tra le corrispondenze che non sono false positive):**- **Approvata**: tutte le corrispondenze non revisionate hanno punteggi di rischio bassi
- **In revisione**: almeno una corrispondenza non revisionata ha un punteggio di rischio medio-alto
- **Rifiutata**: almeno una corrispondenza non revisionata ha un punteggio di rischio molto elevato### 5. Screening dettagliato delle notizie negativeEffettua lo screening su un'ampia gamma di categorie di notizie negative, tra cui:- **Reati finanziari**: riciclaggio di denaro, appropriazione indebita e altro.
- **Reati violenti**: aggressione, omicidio e reati correlati.
- **Terrorismo**: coinvolgimento o supporto ad attività terroristiche.
- **Narcotici**: traffico di stupefacenti e reati correlati.
- **Frode**: vari tipi di frode e pratiche ingannevoli.
- **Violazioni normative**: infrazioni dei requisiti di conformità normativa.### 6. Parametri di screening personalizzabili- **Sensibilità regolabile**: configura la sensibilità dello screening in base alla propensione al rischio della tua organizzazione.
- **Watchlist personalizzabili**: seleziona quali watchlist e categorie includere nel processo di screening per soddisfare requisiti specifici.### Soglie configurabiliPuoi personalizzare i livelli di sicurezza impostando soglie diverse:**Configurazione del punteggio di corrispondenza:**| Impostazione | Predefinito | Descrizione |
| - | - | - |
| Soglia del punteggio di corrispondenza | 93 | Le corrispondenze al di sotto sono Falsi positivi, pari o superiori sono Non revisionate |
| Peso del nome | 60 | Peso per il nome nel punteggio di corrispondenza |
| Peso della data di nascita | 25 | Peso per la data di nascita nel punteggio di corrispondenza |
| Peso del paese | 15 | Peso per il paese nel punteggio di corrispondenza |**Soglie del punteggio di rischio (stato finale):**| Impostazione | Predefinito | Descrizione |
| - | - | - |
| Soglia di approvazione | 80 | Punteggi di rischio inferiori = Approvata |
| Soglia di revisione | 100 | Punteggi di rischio superiori = Rifiutata; compresi = In revisione |![Soglie del punteggio di rischio AML di Didit per gli stati Approvata, In revisione e Rifiutata](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/aml-risk-score.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=297acc5d98dcd0f038597c4f2d953f46)> [!NOTE]
>
> Queste soglie possono essere modificate in base alla tua tolleranza al rischio e ai tuoi requisiti di sicurezza.## Come funzionaIl nostro processo di Screening AML identifica in modo efficiente i potenziali rischi riducendo al minimo i ritardi per gli utenti legittimi.**1. Estrazione dei dati**Il sistema estrae le informazioni rilevanti dai dati forniti dall'utente o dai documenti d'identità caricati.| Input | Metodo |
| - | - |
| **Documenti d'identità** | Tecnologia OCR avanzata per un'estrazione accurata dei dati |
| **Dati forniti dall'utente** | Inserimento diretto (nome, data di nascita, nazionalità, numero del documento) |
| **Logica fuzzy** | Tiene conto delle variazioni del nome e degli errori di battitura |**2. Screening delle watchlist**I dati estratti vengono confrontati in tempo reale con **1,300+ watchlist globali** e database:- **Liste delle sanzioni** — Enti governativi e internazionali (OFAC, UE, ONU, ecc.)
- **Persone politicamente esposte (PEP)** — Persone che ricoprono cariche pubbliche di rilievo
- **Precedenti penali** — Database criminali globali e locali
- **Notizie negative** — Articoli di giornale e report su reati finanziari
- **Watchlist personalizzate** — Configurabili in base alle tue esigenze**3. Calcolo del punteggio di corrispondenza**Per ogni potenziale corrispondenza, il sistema calcola un **punteggio di affidabilità dell'identità**, che indica la probabilità che si tratti della stessa persona.| Fattore | Peso predefinito | Descrizione |
| - | :-: | - |
| **Somiglianza del nome** | 60% | Corrispondenza fuzzy che tiene conto delle variazioni |
| **Data di nascita** | 25% | Confronto esatto o parziale della data di nascita |
| **Paese/Nazionalità** | 15% | Confronto del paese di origine |- Corrispondenza con un punteggio **sotto la soglia** (predefinito: 93) → classificata come **Falso positivo**
- Corrispondenza con un punteggio **pari o superiore alla soglia** → classificata come **Non esaminata** (possibile corrispondenza)
- **Golden Key**: la corrispondenza del numero del documento può sovrascrivere il punteggio al 100% per un'identificazione definitiva**4. Calcolo del punteggio di rischio**Per le corrispondenze non classificate come falsi positivi, il sistema calcola il **livello di rischio** dell'entità:| Fattore | Peso | Descrizione |
| - | :-: | - |
| **Categoria** | 50% | Livello PEP, tipologia di sanzione, gravità del reato |
| **Rischio paese** | 30% | Valutazione del rischio dei paesi associati |
| **Precedenti penali** | 20% | Presenza e gravità di precedenti penali |**5. Determinazione dello stato finale**In base al **punteggio di rischio più elevato** tra tutte le corrispondenze non classificate come falsi positivi:| Punteggio di rischio | Stato | Azione |
| :-: | - | - |
| Sotto la soglia di approvazione | **Approvata** | Approvazione automatica, nessun rischio plausibile |
| Tra le soglie | **In revisione** | Segnalato per revisione manuale di compliance |
| Sopra la soglia di revisione | **Rifiutata** | Rischio elevato, rifiuto automatico |Se **tutte** le corrispondenze sono false positive, il risultato è **Approvata** (nessuna corrispondenza plausibile rilevata).**6. Generazione dei risultati**Viene generato un report dettagliato in totale trasparenza:- **Punteggio di corrispondenza** e **punteggio di rischio** di ogni corrispondenza con dettaglio delle voci
- Classificazione delle corrispondenze (Falso positivo vs. Non esaminato vs. Confermato)
- Database di origine e dettagli della categoria per ciascun risultato
- Risultati inviati tramite **risposta API**, **webhook** o **Business Console**
- Processo decisionale automatico basato sulle soglie del punteggio di rischio configurate## AML Hit Data ReferenceOgni hit AML restituito nella risposta API contiene informazioni dettagliate sull'entità corrispondente. Di seguito sono riportati i campi principali e i loro possibili valori.### Categorie di datasetIl campo `datasets` di ciascun hit indica in quali categorie di database di compliance è stata trovata l'entità. Valori possibili:| Valore | Descrizione |
| - | - |
| `PEP` | Persona politicamente esposta (generica) |
| `PEP Level 1` | Capi di stato, politici di alto livello, giudici della corte suprema |
| `PEP Level 2` | Membri del parlamento, ambasciatori, leader militari |
| `PEP Level 3` | Funzionari dei governi locali, dipendenti pubblici di livello intermedio |
| `PEP Level 4` | RCA (familiari e stretti collaboratori) di individui PEP |
| `Sanctions` | Liste delle sanzioni internazionali e nazionali (OFAC, UE, ONU, ecc.) |
| `Adverse Media` | Articoli e report di notizie negative legati a reati finanziari |
| `Warnings and Regulatory Enforcement` | Avvisi normativi, azioni di applicazione della normativa e alert di compliance |
| `Fitness and Probity` | Registri di idoneità e correttezza tenuti dalle autorità di regolamentazione finanziaria |
| `SIP` | Liste di persone di interesse speciale |
| `SIE` | Liste di entità di interesse speciale |
| `Insolvency` | Registri di insolvenza e fallimento |### Corrispondenze per sanzioniL'array `sanction_matches` contiene i dettagli per ciascuna lista delle sanzioni in cui è stata trovata l'entità. Campi principali:| Campo | Tipo | Descrizione |
| - | - | - |
| `list_name` | `string[]` | Nome o nomi delle liste delle sanzioni |
| `matched_name` | `string` | Nome come appare nella lista delle sanzioni |
| `description` | `string` | Descrizione della voce della sanzione |
| `reason` | `string` | Motivo in testo libero per cui l'entità è stata sanzionata. Non si tratta di un enum: i valori provengono direttamente dall'autorità sanzionatoria e descrivono i motivi specifici dell'inserimento nella lista (ad es. "Executive Order 13224 (Terrorism)", "Support for actions undermining Ukraine's sovereignty"). |
| `legal_basis` | `string[]` | Base giuridica della sanzione |
| `sanction_program` | `string[]` | Programma/i di sanzioni in cui è elencata l'entità |
| `sanctioning_authority` | `string[]` | Autorità che ha imposto la sanzione |
| `listed_on` | `string[]` | Data o date di inserimento dell'entità nella lista |
| `source_url` | `string` | URL della fonte |### Corrispondenze per avvisiL'array `warning_matches` contiene i dettagli per le corrispondenze provenienti da liste di avvisi, di applicazione della normativa e correlate. Il campo `additional_data` può includere un array `data.case_details` con informazioni strutturate sul caso.#### Tipologie di casi di avvisoIl campo `case_type` all'interno di `additional_data.data.case_details[]` descrive la natura del caso di avviso. Valori noti:| Valore | Descrizione |
| - | - |
| `Accusation` | Accusa o imputazione formale |
| `Arrest` | Registro degli arresti |
| `Bribery` | Caso legato a corruzione |
| `Criminal` | Caso penale generale |
| `Fraud` | Caso legato a frode |
| `Illegal Fundraising` | Attività di raccolta fondi illecita |
| `Non-conviction Terror` | Inserimento in lista per terrorismo senza condanna |
| `Proclaimed Offender` | Autore di reato ufficialmente dichiarato |
| `Regulatory Enforcement` | Azione di applicazione della normativa |
| `Terrorism` | Caso legato al terrorismo |
| `Terrorism-related` | Correlato ad attività terroristiche |
| `Terrorism-related listing` | Inserito in lista in relazione al terrorismo |


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