Перейти к содержанию

AML Post-Screening policy

AML Post-Screening policy интерпретирует результат, полученный от AML-провайдера, и решает: принять транзакцию как «чистую» или отклонить её из-за обнаруженных рисков.

В отличие от AML Screening, эта политика работает с уже готовой оценкой: списком категорий риска (mixer, darknet, sanctions и т. п.), численным риск-скором (0–10) и типом контакта (прямой / косвенный).

Когда применяется

После того как AML-провайдер вернул результат скрининга. Применяется к обеим направлениям:

  • исходящие — блокирует withdrawal с переводом транзакции в статус frozen (reason = aml);
  • входящие (депозиты) — приводит к заморозке vault, на который пришёл депозит.

Action — что делает правило

Логика AML Post-Screening инвертирована относительно других политик: правила здесь описывают рисковые случаи, при которых транзакцию нужно отклонить.

Action Что произойдёт
AML_POST_SCREENING_REJECT Транзакция отклоняется. Для withdrawal — freeze с reason aml; для deposit — freeze vault. Снять заморозку может админ через UNFREEZE_TRANSACTION / UNFREEZE_VAULT.
AML_POST_SCREENING_ACCEPT (Дефолтное действие.) Используется как «штатное» поведение, когда ни одно reject-правило не сматчилось.

Дефолт — ACCEPT

Все правила в этой политике пишутся только под reject. Если ни одно reject-правило не сработало, транзакция автоматически ACCEPTED. Создавать правила с ACCEPT вручную обычно не нужно.

Структура правила

Правило срабатывает, если все указанные условия выполнены одновременно и среди рисков, которые вернул провайдер, нашёлся хотя бы один, удовлетворяющий критериям правила.

Фильтры на саму транзакцию

Блок Описание
direction Направление: AML_POST_SCREENING_DIRECTION_OUTGOING, ..._INCOMING или ..._ANY (по умолчанию — любое).
asset Актив и порог суммы. Если asset.amount задан — правило применяется, только когда сумма транзакции ≥ amountUSD или NATIVE). Поведение полей идентично Transfer policy → Asset.

Критерии риска (применяются к каждому риску из ответа провайдера)

Поле Описание
risk_score Минимальный риск-скор, при котором риск считается опасным. Шкала 0–10; чем выше — тем выше риск. Условие: risk.risk_score ≥ rule.risk_score.
category Категория риска. Поле name — конкретная категория (например, mixer, darknet_market, sanctions, gambling, …). Флаг any_category = true — подходит любая категория.
exposure_type Тип контакта: ..._DIRECT (прямой контакт с подозрительным адресом), ..._INDIRECT (через цепочку транзакций), ..._ANY (или поле не указано — любой).

Логика матча по рискам

Провайдер возвращает массив рисков. Правило срабатывает, если среди них есть хотя бы один риск, удовлетворяющий всем критериям выше. В отклонении (Rejected) транзакция получает полный список совпавших рисков — он попадает в reason заморозки и аудит-лог.

Поведение по умолчанию

При первом обращении создаётся одно правило:

  • Default accept (position 1) — AML_POST_SCREENING_ACCEPT, direction = ANY, any_asset, amount = 0, risk_score = 0.

При отсутствующей или деактивированной политике, а также при пустом списке правил — транзакция всегда ACCEPTED.

Не оставляйте политику без reject-правил

Дефолтное accept ничего не блокирует. Чтобы AML-проверка имела смысл, добавьте хотя бы одно reject-правило (см. сценарии ниже).

Типовые сценарии

1. Жёсткий запрет высокорискованных контактов

Любая категория с риск-скором ≥ 7 и прямым контактом — отклонить.

# Action Direction risk_score category exposure_type
1 REJECT ANY 7 any_category = true DIRECT
2. Чёрный список категорий

Любое появление этих категорий — отклонить, независимо от скора.

# Action category exposure_type risk_score
1 REJECT sanctions ANY 0
2 REJECT darknet_market ANY 0
3 REJECT mixer DIRECT 0
3. Мягче для маленьких сумм, строже для крупных

Депозиты до 100 USD — пропускать почти всё; крупные — резать жёстче.

# Action Direction Asset risk_score exposure_type
1 REJECT INCOMING any_asset, 100 USD 5 ANY
2 REJECT INCOMING any_asset, 0 8 DIRECT

Что делать с заблокированной транзакцией

  • Withdrawal в frozen — администратор с правом UNFREEZE_TRANSACTION может снять заморозку через UI; транзакция вернётся к предыдущему статусу и продолжит обработку.
  • Замороженный vault — снимается через UNFREEZE_VAULT. До разморозки на vault нельзя принимать новые депозиты.
  • В обоих случаях reason содержит список матчнувшихся рисков (категория, скор, тип контакта) — это удобно для compliance-отчёта.