curl -X PATCH \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/update-aml-hit-status/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"hit_id": "abc123",
"review_status": "False Positive"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.update_aml_hit_status(
"11111111-2222-3333-4444-555555555555",
hit_id="hit_7c1e9a40b2d35f86e0a4c912",
review_status="False Positive",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.updateAmlHitStatus("11111111-2222-3333-4444-555555555555", {
hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
review_status: "False Positive",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.UpdateAMLHitStatus(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsUpdateAMLHitStatusParams{
HitID: "hit_7c1e9a40b2d35f86e0a4c912",
ReviewStatus: "False Positive",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsUpdateAmlHitStatusParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().updateAmlHitStatus("11111111-2222-3333-4444-555555555555", SessionsUpdateAmlHitStatusParams.builder()
.hitId("hit_7c1e9a40b2d35f86e0a4c912")
.reviewStatus(SessionsUpdateAmlHitStatusParams.ReviewStatus.of("False Positive"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->updateAmlHitStatus('11111111-2222-3333-4444-555555555555', [
'hit_id' => 'hit_7c1e9a40b2d35f86e0a4c912',
'review_status' => 'False Positive',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.update_aml_hit_status(
"11111111-2222-3333-4444-555555555555",
hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
review_status: "False Positive"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.UpdateAmlHitStatusAsync("11111111-2222-3333-4444-555555555555", new SessionsUpdateAmlHitStatusParams
{
HitId = "hit_7c1e9a40b2d35f86e0a4c912",
ReviewStatus = "False Positive",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"message": "Hit status updated successfully",
"hit_id": "hit_7c1e9a40b2d35f86e0a4c912",
"review_status": "False Positive"
}API aggiornamento stato hit AML: conferma o chiudi
Aggiorna lo stato degli hit AML come Match confermato, Falso positivo o Inconcludente, singolarmente o in blocco, tramite l’API di Didit.
curl -X PATCH \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/update-aml-hit-status/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"hit_id": "abc123",
"review_status": "False Positive"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.update_aml_hit_status(
"11111111-2222-3333-4444-555555555555",
hit_id="hit_7c1e9a40b2d35f86e0a4c912",
review_status="False Positive",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.updateAmlHitStatus("11111111-2222-3333-4444-555555555555", {
hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
review_status: "False Positive",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.UpdateAMLHitStatus(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsUpdateAMLHitStatusParams{
HitID: "hit_7c1e9a40b2d35f86e0a4c912",
ReviewStatus: "False Positive",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsUpdateAmlHitStatusParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().updateAmlHitStatus("11111111-2222-3333-4444-555555555555", SessionsUpdateAmlHitStatusParams.builder()
.hitId("hit_7c1e9a40b2d35f86e0a4c912")
.reviewStatus(SessionsUpdateAmlHitStatusParams.ReviewStatus.of("False Positive"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->updateAmlHitStatus('11111111-2222-3333-4444-555555555555', [
'hit_id' => 'hit_7c1e9a40b2d35f86e0a4c912',
'review_status' => 'False Positive',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.update_aml_hit_status(
"11111111-2222-3333-4444-555555555555",
hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
review_status: "False Positive"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.UpdateAmlHitStatusAsync("11111111-2222-3333-4444-555555555555", new SessionsUpdateAmlHitStatusParams
{
HitId = "hit_7c1e9a40b2d35f86e0a4c912",
ReviewStatus = "False Positive",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"message": "Hit status updated successfully",
"hit_id": "hit_7c1e9a40b2d35f86e0a4c912",
"review_status": "False Positive"
}Cosa fa
Lo screening AML restituisce un elenco di hit, ovvero potenziali corrispondenze con liste delle sanzioni, database PEP, watchlist e notizie negative. Ogni hit ha unreview_status (il suo esito), che parte come Unreviewed o False Positive in base al punteggio di corrispondenza. Questo endpoint permette al tuo team (o alla tua automazione) di registrare una decisione su ciascun hit, senza modificare la decisione complessiva della sessione.
Trovi gli hit e i loro ID nella decisione della sessione: nell’array hits del controllo AML, dove l’id di ogni hit è l’hit_id da passare qui.
L’id di un hit è hit_ seguito da 24 caratteri esadecimali e resta invariato quando il soggetto viene sottoposto di nuovo a screening. L’ID di un hit restituito nel formato precedente è comunque accettato; la risposta indica sempre l’hit con il suo id attuale.
Stati di revisione
review_status | Significato |
|---|---|
Unreviewed | Valore predefinito per gli hit pari o superiori alla soglia di corrispondenza: richiede ancora una decisione. |
Confirmed Match | Una corrispondenza reale con la persona o l’entità sottoposta a screening. |
False Positive | Non si tratta della stessa entità. Valore predefinito per gli hit sotto la soglia di corrispondenza. |
Inconclusive | Non è stato possibile determinarlo. |
False Positive mantiene quello stato quando il provider ripete lo screening dell’entità.Aggiornare un singolo hit
PATCH /v3/session/{sessionId}/update-aml-hit-status/
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../update-aml-hit-status/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hit_id": "hit_7c1e9a40b2d35f86e0a4c912",
"review_status": "False Positive"
}'
?node_id=feature_aml_1 all’URL oppure includi "node_id" nel corpo della richiesta per indirizzare un controllo specifico.
Aggiornare più hit insieme
PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/
Passa hit_updates, un elenco di coppie { hit_id, review_status }. L’operazione è tutto o niente: se un hit_id non viene trovato, la richiesta restituisce 404 e nessun hit viene modificato.
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../bulk-update-aml-hit-status/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hit_updates": [
{ "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "Confirmed Match" },
{ "hit_id": "hit_3b8f20d6a91c4e75f0b2d6a8", "review_status": "False Positive" }
]
}'
data.updated e registra una sola voce di attività che copre tutte le modifiche.
Cosa succede dopo un aggiornamento
- Webhook: un evento
data.updatedviene attivato per la sessione. - Registro di audit: la modifica viene registrata nel registro di revisione della sessione, con l’attore (chiave API o utente), ed è visibile nella cronologia delle attività della console.
- Lo stato complessivo del passaggio AML non cambia: modificare l’esito di un hit non modifica, di per sé, lo stato del passaggio AML né la decisione della sessione. Per cambiare lo stato del passaggio AML (
Approved/Declined/In Review), usa update-feature-status. Per cambiare la decisione della sessione, usa update-status.
Supporto KYC e KYB
Funziona sia per le sessioni Verifica degli utenti (KYC) sia per quelle Verifica aziendale (KYB): Didit risolve ilsessionId in entrambi i casi. Per il KYB, lo screening AML viene eseguito sull’azienda e sulle sue persone chiave, e ogni controllo AML espone i propri hit.
Autorizzazione
Richiede il privilegiowrite:sessions, con una chiave API del client (x-api-key) oppure un’intestazione di autorizzazione dell’utente.
Errori
| Stato | Significato |
|---|---|
400 | review_status non è un valore valido, hit_id è vuoto oppure hit_updates è vuoto. |
403 | Credenziali mancanti o non valide, oppure il chiamante non ha write:sessions. |
404 | Sessione non trovata, la sessione non ha un controllo AML oppure un hit_id non è stato trovato (in blocco: non viene modificato nulla). |
Contenuti correlati
- Aggiornare lo stato del passaggio: modifica lo stato del passaggio AML (o di qualsiasi altro passaggio).
- Aggiornare lo stato della sessione: modifica la decisione complessiva della sessione.
- Recuperare la sessione: leggi gli
hitsAML e i loro ID. - Screening AML: come funzionano lo screening e il punteggio.
Autorizzazioni
La chiave API della tua applicazione, da Developers -> API keys nella Business Console. La chiave primaria ha accesso completo. Una chiave con nome può avere un ambito definito: nessuno, lettura o scrittura per risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco di indirizzi IP e a una data di scadenza. 401 indica che la chiave è errata, revocata o scaduta; 403 indica che non è stata inviata alcuna chiave, che la chiave non ha accesso a questa risorsa o azione, oppure che la richiesta proviene da un indirizzo non incluso nel suo elenco IP; 404 su una route di sessione indica che la sessione non rientra nei workflow o negli stati previsti dalla chiave. Una chiave senza accesso ai media riceve gli URL di immagini, video e PDF come null, e una chiave senza permessi di scrittura sulle sessioni riceve link e token di sessione come null. Consulta https://docs.didit.me/console/api-keys.
Parametri del percorso
UUID della sessione di verifica. Accetta sia ID di sessione utente (KYC) sia ID di sessione aziendale (KYB): il servizio risolve l'ID per entrambi i tipi di sessione.
"11111111-2222-3333-4444-555555555555"
Parametri della query
ID del nodo del grafo del workflow. Richiesto solo quando la sessione contiene più controlli AML (uno per nodo); omettere per le sessioni con un singolo controllo AML.
"feature_aml_1"
Corpo
L'id dell'hit nell'array hits del controllo AML (hit_...). Un id hit restituito nel formato precedente viene ancora accettato.
"hit_7c1e9a40b2d35f86e0a4c912"
Il nuovo stato di revisione per il match.
Unreviewed, Confirmed Match, False Positive, Inconclusive "False Positive"
ID opzionale del nodo del grafo. Usalo (qui o come parametro di query) quando la sessione include più controlli AML.
"feature_aml_1"
Risposta
Stato di revisione del riscontro aggiornato.
Sempre Hit status updated successfully.
L'id dell'hit aggiornato, così come restituito dalla decisione della sessione, anche se la richiesta ha indicato l'hit tramite un id nel formato precedente.
Lo stato di revisione ora memorizzato per la corrispondenza (hit).
Unreviewed, Confirmed Match, False Positive, Inconclusive