Примеры¶
Простой пример с логическим оператором И:¶
rule:
3 > 2 AND 1 = 1
-> accept;
Пример работы с черными списками:¶
rule:
inBlackList("email")
-> notify;
данная функция может принимать список параметров:
rule:
inBlackList("email", "fingerprint", "card_token", "bin", "ip")
-> notify;
Работа с белыми списками аналогична:¶
rule: check_in_white_list_rule:
inWhiteList("email", "fingerprint", "card_token", "bin", "ip")
-> notify;
Работа с счетчиками:¶
rule:
(count("ip", 1, days) >= 10 OR countSuccess("email", 1, days) > 5)
AND countError("fingerprint", 1, calendar_days, "error_code") > 5
-> notify;
Вызываются функции подсчета количества операций в разрезе ip, подсчет успешных платежей в разрезе email, а также количество конкретных ошибок при оплатах.
Это работает следующим образом - если количество платежей на один ip в сутки >= 10 или количество успешных платежей на один mail за сутки > 5 и при выполнении одного из этих условий количество ошибок с кодом “error_code” на один fingerprint за календарнык сутки > 5, будет выслана уведомление.
Работа с функциями сумм производится аналогично.
Количество уникальных ip на один email¶
rule: unique("email", "ip") < 4
-> decline;
Определение страны по ip¶
rule: country() = "RU"
-> notify;
Определение суммы платежа¶
rule: amount() < 100
-> accept;
Работа с обработчиком ошибок¶
rule:
unique("email", "ip") < 4 -> accept
catch: decline;
В случае технической ошибки во время работы данной функции транзакция будет помечена как decline
,
по умолчанию система возвращает normal
и продолжает проверять правила
Определение доверенного трафика¶
rule: isTrusted(
paymentsConditions(
condition("RUB", 1, 1000, 10),
condition("EUR", 2, 20)
),
withdrawalsConditions(
condition("USD", 3, 3000, 3)
)
) -> accept;
В случае если сумма за 1 последний год > 100 рублей и количество транзакций > 10
или количество транзакций за 2 последних года > 20 в евро
или количество выплат в USD за 3 последних года по сумме > 3000 или больше 3 успешных операций,
то операция будет помечена как accept
.
Определение типа карты¶
rule:
cardCategory() = "credit"
-> accept;
Определение платежной системы¶
rule:
paymentSystem() = "VISA"
-> accept;
Определение рекурентного платежа¶
rule:
isRecurrent()
-> accept;
Определение мобильного платежа¶
rule:
isMobile()
-> accept;
Сравнение по шаблону и в списке¶
rule: cb:
like("bin", "5536.*") AND in("pan", "9137", "1231")
-> decline;
Пример шаблона с несколькими правилами¶
# принимаем платеж, если хотя бы один из указанных параметров находится в вайтлисте
rule: inWhiteList("email", "fingerprint", "card", "bin", "ip")
-> accept;
# отклоняем платеж, если хотя бы один из указанных параметров находится в блэклисте
rule: inBlackList("email", "fingerprint", "card", "bin", "ip")
-> decline;
# эти страны блочим всегда
rule: in(countryBy("bin"), "AS", "SD", "TR", "WE", "SD", "CD", "KL", "EW", "VF", "XZ", "CD")
-> decline;
# лимит суммы платежа 10 баксов для
rule: amount() > 1000 AND in(countryBy("bin"), "DS", "LA", "AS")
-> decline;
# лимит суммы платежа 10 баксов для некоторых стран
rule: amount() > 1000 AND in(countryBy("bin"), "VC", "WE")
-> decline;
# лимит по сумме платежа > 100 условных единиц в валюте платежа
rule: amount() > 10000
-> decline;