Правилами можно управлять в Бизнес-консоли, через Management API и в Didit MCP. Используйте консоль, если каждое изменение должен просматривать человек из вашей команды комплаенса. Используйте API или MCP, если правила создаются и настраиваются программно, например при переносе набора правил от другого провайдера. См. справочник API и руководство по управлению правилами через API и MCP. Правила применяются к каждой транзакции, отправленной через
POST /v3/transactions/, а результат появляется в массиве rule_runs[] транзакции (см. схему ответа).Встроенные наборы правил
Didit предоставляет готовую библиотеку правил, которая покрывает распространённые регуляторные типологии. Установите нужные предустановки или целые наборы из библиотеки: в консоли, через API установки или с помощью инструментов MCP. Для каждой установленной предустановки можно задать режим работы. Полный каталог всех предустановленных правил с пороговыми значениями и действиями см. в Библиотеке правил.Источники правил
У каждого правила естьsource, который показывает, кто им управляет:
Устройство правила
Каждое правило состоит из:Действия
Когда правило срабатывает для транзакции, выполняется одно или несколько действий. Каждое правило может содержать несколько действий, которые применяются все вместе:
Большинство готовых правил сочетают Добавить баллы с Изменить статус. Например, правило для санкционного контрагента добавляет к оценке 90 баллов и сразу отклоняет транзакцию.
Требование верификации пользователя (AWAITING_USER)
Действие Изменить статус → AWAITING_USER делает больше, чем просто задаёт статус. Как только правило срабатывает, Didit автоматически создаёт размещённую сессию верификации для субъекта транзакции (с тем же vendor_data).
Сессия возвращается в блоке action_required транзакции (а также в объекте remediation) в ответе на создание и при каждом последующем чтении, а также в обоих событиях webhook транзакции. Поэтому можно сразу перенаправить пользователя. См. обязательные действия пользователя.
Пользовательские правила должны указывать сценарий прямо в действии (workflow_id). Этого требуют и конструктор правил в консоли, и API правил.
Готовые правила из библиотеки не содержат сценария. Для них сценарий сессии определяется в таком порядке:
- Сценарий устранения последствий, настроенный в ваших настройках транзакций.
- Сценарий «Биометрическая аутентификация» вашего приложения, если у субъекта уже есть сохранённое эталонное лицо из одобренной верификации.
- Сценарий по умолчанию вашего приложения.
AWAITING_USER из библиотеки всегда создают действующую сессию без дополнительной настройки: биометрическую повторную проверку для пользователей, которых вы уже верифицировали, и полную верификацию для остальных.
Транзакции Travel Rule исключены из этого автоматического резервного варианта. Их ожидание AWAITING_USER предназначено для подтверждения владения кошельком, и для этого есть отдельный процесс.
Самый надёжный выбор для транзакций высокого риска это сценарий «Биометрическая аутентификация». Субъект является пользователем, которого вы уже верифицировали с помощью KYC, поэтому Didit использует подтверждённое эталонное лицо из его онбординга (одобренное селфи для проверки живости, фото из чипа паспорта или портрет из документа). Пользователю достаточно сделать одно живое селфи, а Didit выполняет проверку живости и сравнение лица 1:1 с лицом пользователя, открывшего аккаунт.
Украденные учётные данные, одноразовые коды, полученные в результате фишинга, и подмена SIM-карты не пройдут эту проверку.
Полное руководство: пошаговая биометрическая проверка для вывода крупной суммы.
Когда сессия получает решение, транзакция автоматически следует за ним, и срабатывает webhook transaction.status.updated. Одобренная сессия одобряет транзакцию (decision_reason_code: user_action_approved), отклонённая сессия отклоняет её (user_action_declined), а сессия, которая завершается переводом на проверку, переводит транзакцию в IN_REVIEW (user_action_in_review).
Если сессия истекла или прервана, транзакция остаётся в AWAITING_USER.
В качестве действия по устранению последствий можно использовать сценарий любого типа, кроме KYB.
Сценарии Биометрическая аутентификация (а также сценарии, где сравнение лиц выполняется до верификации личности) дополнительно требуют сохранённого эталонного лица субъекта: одобренное селфи для проверки живости, фото из чипа паспорта, портрет из документа или лицо, добавленное вручную в профиль.
Если такого лица нет, пользователю предлагается пройти сценарий по умолчанию вашего приложения. Это также зарегистрирует его лицо для следующих проверок, а примечание к транзакции зафиксирует замену.
Сессия пропускается только тогда, когда не существует и подходящего сценария по умолчанию. В этом случае примечание объясняет причину.
Скоринг
Когда транзакция совпадает с одним или несколькими правилами, их оценки суммируются:- Каждое совпадение правила вносит вклад в общую оценку риска транзакции через действие
add_score. - Итоговая оценка определяет статус транзакции согласно порогам оценки вашего приложения.
- Если какое-либо правило содержит действие
change_status, этот статус применяется напрямую.DECLINEDвсегда имеет приоритет.
Создание пользовательских правил
Пользовательские правила можно создать в Бизнес-консоли или через Management API (он также доступен через Didit MCP и любой ИИ-ассистент с подключением MCP).- Консоль
- API
- Перейдите в Транзакции > Правила в консоли
- Нажмите Create Rule
- Укажите название правила, описание и категорию
- Задайте режим:
Active, чтобы правило работало в реальном времени, илиTest, чтобы оценивать его без влияния на транзакции - Выберите режим оценки:
All(должны совпасть все условия) илиAny(достаточно одного совпадения) - Задайте область применения: типы или направления транзакций, к которым применяется правило
- Добавьте условия: сравнения полей, такие как пороги суммы, коды стран и проверки пользовательских свойств
- При необходимости добавьте агрегацию: проверки скорости за временное окно (количество, сумма, количество уникальных значений и другие)
- Определите одно или несколько действий: добавить оценку, изменить статус, добавить теги, добавить заметки, добавить в список или открыть кейс
- Сохраните и включите правило
Active применяются сразу ко всем новым транзакциям. Названия правил уникальны в рамках приложения.
Бэктестинг
Перед активацией правила его можно проверить на исторических данных:- Установите правило в режим Test: правило оценивается для каждой новой транзакции, но результаты не влияют на статус или оценку транзакции. Статистика выполнения (количество совпадений, затронутые сущности) накапливается, чтобы вы могли оценить влияние до перевода в продакшн.
- Используйте функцию бэктеста в консоли или через
POST /v3/transactions/rules/backtest/, чтобы задним числом оценить условия и агрегацию правила на транзакциях за указанный период. Бэктест возвращает количество оценённых и совпавших транзакций, а также затронутые сущности, и не изменяет никакие исторические данные. Передавайте те жеconditions,aggregation,evaluation_modeиscope, что и у правила, которое вы планируете активировать. Если область применения не указана, ограничений нет, и бэктест посчитает транзакции, которые сохранённое правило пропускает.
Окна скоростных проверок (агрегация)
Скоростные правила агрегируют исторические данные о транзакциях за период, чтобы выявлять закономерности, которые проверки отдельных транзакций пропускают:
Каждая агрегация задаёт:
- Временное окно:
<N>m(минуты),<N>h(часы) или<N>d(дни), например30m,6h,7d,30d. Внимание:mозначает минуты, а не месяцы. - Фильтры, которые сужают набор исторических транзакций. Ключи являются путями полей из каталога полей. Специальное значение
"__current__"подставляет значение того же поля из оцениваемой транзакции (например,"subject_vendor_data": "__current__"ограничивает окно тем же субъектом). Список значений означает принадлежность к списку. Фильтры сравнивают только по равенству или принадлежности: оператораlt/gteдля фильтров нет, поэтому диапазон вроде транзакции меньше 10 000 фильтром задать нельзя. Задавайте диапазон в метрике (maxменьше 10 000,minбольше 1 000). Помните, что условие ограничивает оцениваемую транзакцию, но никогда не окно. - Оператор и порог (
eq,ne,gt,gte,lt,lteотносительноvalue, например количество >= 20)
Примеры шаблонов
Каталог полей
Условия и фильтры агрегации обращаются к полям транзакции по пути:Операторы условий
Правила поддерживают следующие операторы сравнения для условий:
Для каждого другого оператора требуется непустое
value, без него API возвращает 400.
contains, not_contains и regex принимают одну строку, но не список или объект; contains_any принимает список строк.
Типы значений условий
Необязательный параметрvalue_type в условии меняет способ интерпретации value:
Группированные условия
Плоский список условий объединяется в соответствии сevaluation_mode правила (ALL / ANY). Для смешанной логики задайте условиям group_index: условия с одинаковым индексом образуют группу, group_logic (AND / OR, по умолчанию AND) объединяет условия внутри группы, а groups_logic в первом условии (AND / OR, по умолчанию OR) объединяет результаты групп. Если хотя бы у одного условия есть group_index, группированная оценка заменяет evaluation_mode.
Обращение к пользовательским свойствам
Каждый ключ, переданный в объектеcustom_properties запроса POST /v3/transactions/, сохраняется в транзакции как custom_values и может использоваться в условиях с путём поля custom_values.<key>. Например, транзакция, отправленная с "custom_properties": {"channel": "mobile_app"}, соответствует условию custom_values.channel eq "mobile_app". Все перечисленные выше операторы работают с пользовательскими свойствами, их также можно сравнивать с другими полями или использовать в фильтрах окон скорости.
В конструкторе правил консоли ключи, встречавшиеся в недавно полученных транзакциях, автоматически появляются в селекторе полей условия в разделе Пользовательские свойства. Вы также можете указать ключ до того, как он появится в какой-либо транзакции: выберите Ввести пользовательское свойство в той же группе и введите ключ точно так, как его отправляет ваша интеграция (ключи чувствительны к регистру). Пока транзакции с этим ключом не поступят, правило просто не будет срабатывать.
Автоматический отказ по списку блокировки
До оценки любых правил Didit проверяет объекты транзакции по спискам блокировки вашего приложения. Если найдено любое совпадение, транзакция немедленно отклоняется, правила не оцениваются. Проверяются следующие объекты:
При совпадении со списком блокировки:
- Статус транзакции устанавливается в
DECLINED - Причина решения устанавливается в
blocklisted - Создаётся запись активности для аудита
Проверки списков блокировки выполняются до оценки правил. Объект из списка блокировки всегда отклоняется независимо от конфигурации правил и пороговых значений оценки.
Скрининг транзакций
Didit интегрируется с внешними провайдерами аналитики AML и блокчейна, чтобы обогащать транзакции данными о рисках. Когда транзакция отправляется, система может:- Проверять контрагентов по глобальным базам данных о санкциях и списках наблюдения
- Оценивать адреса кошельков (для криптотранзакций) по данным блокчейн-аналитики, включая использование миксеров или подверженность миксерам, связи с субъектами, находящимися под санкциями, и взаимодействия с высокорисковыми сервисами
- Проверять статус AML заявителя, сопоставляя связанного с транзакцией пользователя с результатами его последнего AML-скрининга
Следующие шаги
Отправка транзакций
Как структурированы транзакции для оценки по правилам.
Скрининг криптовалют
Результаты скрининга криптовалют и то, как готовые правила их используют.
Настройки
Настройте пороговые значения оценок и сценарии устранения проблем.
Справочник API
Эндпоинт API для создания транзакций.