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 para actualizar estado de coincidencias AML
Con la API de Didit, marca coincidencias AML como coincidencia confirmada, falso positivo o no concluyente, de forma individual o masiva.
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"
}Qué hace
El análisis AML devuelve una lista de coincidencias (hits): posibles coincidencias con listas de sanciones, bases de datos de PEP, listas de vigilancia y medios adversos. Cada coincidencia tiene unreview_status (su disposición), que empieza como Unreviewed o False Positive según la puntuación de coincidencia. Este endpoint permite a tu equipo (o a tu automatización) registrar una decisión sobre cada coincidencia sin cambiar la decisión global de la sesión.
Encontrarás las coincidencias y sus ID en la decisión de la sesión: en el array hits de la comprobación AML, donde el id de cada coincidencia es el hit_id que pasas aquí.
El id de una coincidencia es hit_ seguido de 24 caracteres hexadecimales, y no cambia cuando se vuelve a analizar al mismo sujeto. Un ID de coincidencia devuelto en el formato anterior se sigue aceptando; la respuesta siempre identifica la coincidencia por su id actual.
Estados de revisión
review_status | Significado |
|---|---|
Unreviewed | Valor predeterminado para las coincidencias que alcanzan o superan el umbral de coincidencia: aún necesita una decisión. |
Confirmed Match | Una coincidencia real con la persona o entidad analizada. |
False Positive | No es la misma entidad. Valor predeterminado para las coincidencias por debajo del umbral de coincidencia. |
Inconclusive | No se pudo determinar. |
False Positive mantiene ese estado cuando el proveedor vuelve a analizar la entidad.Actualizar una sola coincidencia
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 a la URL o incluye "node_id" en el cuerpo para seleccionar una comprobación concreta.
Actualizar varias coincidencias a la vez
PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/
Pasa hit_updates, una lista de pares { hit_id, review_status }. La operación es de todo o nada: si no se encuentra algún hit_id, la solicitud devuelve 404 y no se modifica ninguna coincidencia.
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 y registra una sola entrada de actividad que abarca todos los cambios.
Qué ocurre después de una actualización
- Webhook: se dispara un evento
data.updateden la sesión. - Registro de auditoría: el cambio queda registrado en el historial de revisión de la sesión junto con quién lo hizo (clave de API o usuario), y es visible en la cronología de actividad de la consola.
- El estado global del paso AML no cambia: cambiar la disposición de una coincidencia no modifica por sí solo el estado del paso AML ni la decisión de la sesión. Para cambiar el estado del paso AML (
Approved/Declined/In Review), usa update-feature-status. Para cambiar la decisión de la sesión, usa update-status.
Compatibilidad con KYC y KYB
Funciona tanto con sesiones de Verificación de usuario (KYC) como de Verificación de empresas (KYB): Didit resuelve elsessionId en ambos tipos. En KYB, el análisis AML se ejecuta sobre la empresa y sus personas clave; cada comprobación AML expone sus propias coincidencias.
Permiso
Requiere el privilegiowrite:sessions, con una clave de API de cliente (x-api-key) o un encabezado de autorización de usuario.
Errores
| Estado | Significado |
|---|---|
400 | review_status no es un valor válido, hit_id está vacío o hit_updates está vacío. |
403 | Faltan credenciales o no son válidas, o quien realiza la solicitud no tiene write:sessions. |
404 | No se encontró la sesión, la sesión no tiene ninguna comprobación AML o no se encontró un hit_id (en la operación masiva no se modifica nada). |
Relacionado
- Actualizar el estado de una función: cambia el estado del step AML (o de cualquier otro paso).
- Actualizar el estado de la sesión: cambia la decisión global de la sesión.
- Obtener una sesión: consulta los
hitsde AML y sus ID. - Análisis AML: cómo funcionan el análisis y la puntuación.
Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Parámetros de ruta
UUID de la sesión de verificación. Acepta ID de sesión tanto de usuario (KYC) como de empresa (KYB): el servicio resuelve el ID en ambos tipos de sesión.
"11111111-2222-3333-4444-555555555555"
Parámetros de consulta
ID del nodo del grafo del flujo. Solo es obligatorio cuando la sesión tiene varios análisis AML (uno por nodo); omítelo en sesiones con un único análisis AML.
"feature_aml_1"
Cuerpo
El id de la coincidencia en el array hits de la comprobación AML (hit_...). Se sigue aceptando un id de coincidencia devuelto en el formato anterior.
"hit_7c1e9a40b2d35f86e0a4c912"
El nuevo estado de revisión de la coincidencia.
Unreviewed, Confirmed Match, False Positive, Inconclusive "False Positive"
ID de nodo del grafo opcional. Úsalo (aquí o como parámetro de consulta) cuando la sesión tenga varias comprobaciones AML.
"feature_aml_1"
Respuesta
Se actualizó el estado de revisión de la coincidencia.
Siempre Hit status updated successfully.
El id de la coincidencia actualizada, tal como lo devuelve la decisión de la sesión, también cuando la solicitud identificó la coincidencia con un id en el formato anterior.
El estado de revisión que ahora tiene guardado la coincidencia.
Unreviewed, Confirmed Match, False Positive, Inconclusive