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 обновления статуса AML-совпадения: снятие и подтверждение
Отмечайте отдельные AML-совпадения как подтверждённое совпадение, ложное срабатывание или неокончательное — по одному или массово — через Didit API.
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"
}Что это делает
AML-скрининг возвращает список совпадений (hits): потенциальных соответствий санкционным спискам, базам PEP, спискам наблюдения и негативным публикациям в СМИ. У каждого совпадения естьreview_status (его решение), который при создании получает значение Unreviewed или False Positive в зависимости от оценки совпадения. Этот эндпоинт позволяет вашей команде (или вашей автоматизации) зафиксировать решение по каждому совпадению без изменения общего решения по сессии.
Совпадения и их ID находятся в решении по сессии: в массиве hits проверки AML, где id каждого совпадения — это hit_id, который вы передаёте в этот запрос.
id совпадения имеет вид hit_ и 24 шестнадцатеричных символа и не меняется при повторном скрининге субъекта. ID совпадения в прежнем формате по-прежнему принимается, но в ответе совпадение всегда указывается по его текущему id.
Статусы проверки
review_status | Значение |
|---|---|
Unreviewed | Значение по умолчанию для совпадений на уровне порога совпадения или выше. Требуется решение. |
Confirmed Match | Подтверждённое совпадение с проверяемым физическим или юридическим лицом. |
False Positive | Это не то же лицо или организация. Значение по умолчанию для совпадений ниже порога совпадения. |
Inconclusive | Определить не удалось. |
False Positive, сохраняет этот статус, когда провайдер повторно проверяет субъекта.Обновление одного совпадения
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 к URL или укажите "node_id" в теле запроса, чтобы выбрать конкретную проверку.
Обновление нескольких совпадений сразу
PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/
Передайте hit_updates: список пар { hit_id, review_status }. Операция выполняется все или ничего: если какой-либо hit_id не найден, запрос возвращает 404, и ни одно совпадение не изменяется.
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 и создаёт одну запись активности, которая охватывает все изменения.
Что происходит после обновления
- Вебхук: по сессии отправляется событие
data.updated. - Журнал аудита: изменение записывается в журнал проверки сессии с указанием инициатора (API-ключ или пользователь). Его можно увидеть в хронологии активности консоли.
- Общий статус шага AML не меняется: изменение решения по совпадению само по себе не меняет статус шага AML и решение по сессии. Чтобы изменить статус шага AML (
Approved/Declined/In Review), используйте обновление статуса функции. Чтобы изменить решение по сессии, используйте обновление статуса сессии.
Поддержка KYC и KYB
Работает как для сессий Проверки пользователей (KYC), так и для сессий Верификации бизнеса (KYB): Didit находитsessionId в обоих типах. Для KYB AML-скрининг проводится для компании и её ключевых лиц, и каждая проверка AML содержит свои совпадения.
Разрешение
Требуется привилегияwrite:sessions с клиентским API-ключом (x-api-key) или с заголовком авторизации пользователя.
Ошибки
| Статус | Значение |
|---|---|
400 | review_status имеет недопустимое значение, hit_id пустой или hit_updates пустой. |
403 | Учетные данные отсутствуют или недействительны либо у вызывающего нет write:sessions. |
404 | Сессия не найдена, у сессии нет проверки AML или hit_id не найден (для массового запроса ничего не изменяется). |
Связанные материалы
- Обновление статуса функции: изменение статуса шага AML (или любого другого шага).
- Обновление статуса сессии: изменение общего решения по сессии.
- Получение сессии: чтение массива
hitsAML и их ID. - Скрининг AML: как работают AML-скрининг и скоринг.
Авторизации
API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.
Параметры пути
UUID сессии верификации. Принимает ID сессий как пользователей (KYC), так и компаний (KYB) — сервис сопоставляет ID для обоих типов сессий.
"11111111-2222-3333-4444-555555555555"
Параметры запроса
ID узла графа сценария. Требуется, только если в сессии есть несколько AML-проверок (по одной на узел); опустите для сессий с одной AML-проверкой.
"feature_aml_1"
Тело
Идентификатор id совпадения в массиве hits AML-проверки (hit_...). Идентификатор совпадения, возвращённый в прежнем формате, по-прежнему принимается.
"hit_7c1e9a40b2d35f86e0a4c912"
Новый статус проверки для совпадения.
Unreviewed, Confirmed Match, False Positive, Inconclusive "False Positive"
Необязательный ID узла графа. Используйте его (здесь или в качестве query-параметра), если в сессии есть несколько AML-проверок.
"feature_aml_1"
Ответ
Статус проверки срабатывания обновлён.
Всегда Hit status updated successfully.
id обновлённого совпадения в том виде, как его возвращает решение по сессии, в том числе когда в запросе совпадение было указано по id в прежнем формате.
Статус проверки, сохранённый в срабатывании.
Unreviewed, Confirmed Match, False Positive, Inconclusive