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

AML Post-Screening policy

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

В отличие от AML Screening, эта политика работает с уже готовой оценкой: разбивкой истории адреса по категориям риска (mixer, darknet, sanctions и т. п.) с долей каждой категории в общем exposure (в процентах, 0–100).

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

После того как 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.

Критерии риска

Поле Описание
category Категория риска. Поле name — конкретная категория (например, mixer, darknet_market, sanctions, gambling, …). Флаг any_category = true — подходит любая категория.
min_exposure_percent Порог по доле exposure категории в истории адреса, 0–100. Условие: среди категорий из ответа провайдера есть хотя бы одна, проходящая фильтр category, с долей ≥ rule.min_exposure_percent. Если поле не задано, а category указана — достаточно любого ненулевого появления категории.
exposure_type Тип контакта. Пока принимается только ..._ANY и в оценке не участвует — текущие провайдеры не разделяют прямой и косвенный контакт. Поле зарезервировано под провайдеров с таким разделением.

Логика матча

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

Устаревшее поле

Поле risk_score (шкала 0–10) устарело: старые правила автоматически переведены в min_exposure_percent (×10).

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

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

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

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

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

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

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

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

Больше 70% истории адреса приходится на любую одну рискованную категорию — отклонить.

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

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

# Action category min_exposure_percent
1 REJECT sanctions
2 REJECT darknet_market
3 REJECT mixer
3. Порог по доле рискованной категории

Отклонять, если больше четверти истории адреса приходится на любую одну категорию, а также при заметной доле санкционных контактов.

# Action category min_exposure_percent
1 REJECT sanctions 5
2 REJECT any_category = true 25
4. Мягче для маленьких сумм, строже для крупных

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

# Action Direction Asset category min_exposure_percent
1 REJECT INCOMING any_asset, 100 USD any_category = true 50
2 REJECT INCOMING any_asset, 0 any_category = true 80

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

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