Общее руководство ПО программного обеспечения «CreditPolicy v1»
1. Общая информация
Программное обеспечение «CreditPolicy v1» – это скоринг-сервис,
который определяет оценку платежеспособности клиента, в результате
которой микрофинансовыми организациями и банками автоматически
принимается решение об одобрении или отказе в выдаче кредита.

1.1. Функциональные характеристики
Программное обеспечение «CreditPolicy v1» рассчитывает скоринговый
балл потенциального заемщика на основе алгоритмических правил и
статистических данных и позволяет принимать решение о выдаче кредита.
Это увеличивает эффективность работы банка или МФО (Микрофинансовой организации) и помогает в обнаружении признаков мошенничества.
Программное обеспечение предназначено для:
  • Автоматизации оценки кредитоспособности клиента
  • Снижения кредитных рисков
  • Стандартизации процесса принятия решения по кредиту
  • Сокращения времени ожидания заемщика
Ключевые функции, которые выполняет сервис:
  • Анализ кредитоспособности клиента при заявке. Выбор
  • платежеспособных заемщиков на рынке потребительского
  • кредитования, минимизируя риски увеличения объема просроченной
  • задолженности;
  • Построение независимой скоринг-модели. Объективные критерии и
  • математические модели принятия решения снижают влияние
  • предубеждений, субъективности, а также исключают возникновение
  • ошибок за счет человеческого фактора;
  • Оптимизация кредитного процесса. Сокращение времени рассмотрения заявки, автоматизация ручных операций кредитных специалистов,
  • Проверка предоставленных данных на необычные паттерны поведения и противоречия. Сигнализирует о возможных мошеннических действиях со стороны потенциального заемщика, что позволяет принимать меры для защиты от финансовых потерь.
1.2. Системные требования
Для функционирования программного обеспечения «CreditPolicy v1»
(Далее – ПО) необходимо развернуть сервер со следующими ресурсными характеристиками:
  1. Linux OS (например, Ubuntu)
  2. CPU 2.2GHz 8 ядер
  3. 16 Гб оперативной памяти
  4. 200 Гб дискового пространства
Скорость интернета: От 5 Мб/с – для стабильной работы сервиса
2. Источники данных для скоринг-сервиса
Для работы ПО необходимо настроить интеграцию с теми источниками
данных, которые будут передавать данные необходимые для принятия
решения.

2.1. Анкетные данные
Основная информация о клиенте для принятия решения должна быть
получена из анкеты при заполнении заявки на кредит. Для скоринговой модели необходимо собрать следующие персональные данные клиента:
  • Паспортные данные
  • Дата и место рождения
  • Место работы
  • Адрес регистрации / местонахождения
  • Номер телефона
2.2. Скоринг Бюро
Для получения кредитного отчета, который используются при оценке
(скоринге) заемщика при принятии решения о выдаче займа, необходимонастроить интеграцию с бюро и поставщиком кредитных историй «Скоринг Бюро».
Для этого необходимо получить ключ и установить сертификат, который подтверждает соответствие между открытым ключом и информацией, идентифицирующей владельца ключа.
Протокол взаимодействия должен соответствовать последней версии
формата запросов и кредитных отчетов «Скоринг бюро».

2.3. Перечень РФМ
Для оценки клиента необходимо выполнять проверку по спискам
неблагонадежных лиц по линии Росфинмониторинга в целях исполнения законодательства Российской Федерации в сфере противодействия легализации (отмыванию) доходов, полученных преступным путем, финансированию терроризма и финансированию распространения оружия массового уничтожения. Электронный сервис «Сервисный концентратор Росфинмониторинга» предоставляет возможность получать сведения в рамках, существующих нормативно-правовых актов.
Для обновления перечня РФМ необходимо запросить доступ к личному кабинету Росфинмониторинга по ссылке https://portal.fedsfm.ru/ (с использованием логина и пароля или сертификата).
Полученные учетные данные должны быть установлены для получения
JWT-токена при запросах API методов сервиса, которые будут обновлять все перечни РФМ с заданной периодичностью.

2.4. ЕФРСБ
Источником данных о банкротстве потенциальных клиентов используется веб-сервис АИС «Сведения о банкротстве», который предоставляет возможность автоматизированного получения в машиночитаемом виде размещаемой в ЕФРСБ информации в части опубликованных сообщений и сведений о торгах, размещаемых арбитражными управляющими (далее – АУ), организаторами торгов, саморегулируемыми организациями АУ,
отчетов должников, а также реестров АУ, саморегулируемых организаций АУ, организаторов торгов, электронных торговых площадок и должников.
Для работы с сервисом необходимо в соответствии с документацией
https://fedresurs.ru/help:
  1. провести подключение к демо-контуру;
  2. направить заявку на bhelp@interfax.ru, указав в ней IP-адрес, с
  3. которого будет осуществляться тестирование;
  4. выполнить тестовое подключение к промышленному контуру;
  5. заключить Договор с АО «Интерфакс».
Для дальнейшей работы пройти аутентификацию по логину и паролю
доступа к системе. При прохождении аутентификации необходимо
использовать «Digest access authentication». При получении информации от пользователя проверяется IP-адрес, с которого пришло обращение – адрес должен соответствовать перечню IP-адресов, разрешенных для пользователя.
3. Правила принятия решения
ПО представляет собой универсальную систему принятия решений по
кредитным заявкам. Эта оперативно-конфигурируемая BPM-система (дерево принятия решений) может управляться бизнес-отделами без привлечения технических специалистов. Правила принятия решения формируются с помощью domain specific language (DSL), схожего по своей структуре с SQL.
Пример используемой DSL-модели находится в Приложении 1 (ниже).

3.1. Основные операторы DSL
DSL – это последовательное дерево решений, которое не имеет
параллельных потоков. Основные параметры, которые применяются в
скрипте:
  • spec - определяет спецификацию для кредитной политики;
  • rule - определяет блок с правилом, который должен примениться;
  • note - добавляет системную информацию в решение;
  • when/then/otherwise - аналог условного оператора;
  • addCause - статус причины будет применен к решению без изменения статуса риска, поток кредитной политики не будет прерван;
  • approve - изменяет статус риска на одобренный и применяет указанную причину статуса, но только если текущий статус не хуже. Поток кредитной политики не будет прерван;
  • cancel - это наихудший статус, изменяет статус риска на отмененный и применяет указанную причину статуса. Поток кредитной политики будет прерван.
3.2. Статус заявки
При поступлении новой заявки ей присваивается самый лучший
финальный статус (окончательное решение) – Автоодобрена (PROCESSING), т.е. заявка по умолчанию автоматически одобрена.
При осуществлении проверок данный статус может быть изменен только в сторону ухудшения по следующей иерархии (если в блоке проверок не оговорено иное):
  • Автоодобрена (PROCESSING)
  • Отказ по заявке (CANCELLED)
При получении заявкой статуса Отказ (CANCELLED) проверки
останавливаются в момент сработки правила, если иное не указано в блоке проверок.

3.3. Вызов скоринг-сервиса
ПО "CreditPolicy v1" является внутренним сервисом, который вызывается по REST API. Все параметры для вызова метода должны быть получены из источников, перечисленных в разделе 2. В результате работы метод возвращает статус заявки.
API инструкция находится в Приложении 2 (ниже).
Приложение 1

Пример DSL правила

spec(CreditPolicy) {

version NEW_BORROWER_SCORE
def params = params as CreditRequestParams

rule {
when {Employment.UNEMPLOYED_ID.getValue() == params.employmentId} then
{addCause(BWK01)}
when {params.age < 18 || params.age > 70} then {cancel(A1)}
}

rule {
def terroristCheckResult = ruleAction(TERRORIST_CHECK) as
TerroristCheckResult
when {terroristCheckResult?.isTerrorist()} then {delayedCancel(A2)}
flushDelayed()
}

def equifaxIsPassed
def equifaxResult
rule {
equifaxResult = ruleAction(EQUIFAX_REQUEST, true) as EquifaxResult
equifaxIsPassed = equifaxResult?.passed
when {
!equifaxIsPassed
} then {
addCause(SU020)
} otherwise {
def equifaxStatus = equifaxResult.currentWorstPaymentStatus
when {equifaxStatus > 30} then {addCause(A3)}
}
}

rule {
when {
!equifaxIsPassed
} then {
pending(A3)
interrupt()
}

def equifaxCreditsAllOwner = equifaxResult?.creditsAllOwner
def equifaxNoCh =
equifaxResult?.summaryId == null || equifaxCreditsAllOwner == null
|| equifaxCreditsAllOwner == 0
when {
equifaxNoCh
} then {
addCause(A4)
}
when {
!equifaxResult?.successRequest
} then {
addCause(A5)
}
}

def scoringResults
def score911
def creditNumberAttempts
rule {
forceRuleAction(CALL_SCORING_COLLECT)
scoringResults = scoringAction(CALCULATE_SCORE, [SCORING_VERSION_911])
as ScoringResults
score911 = (scoringResults.getScoringMap().get(SCORING_VERSION_911) as
ScoringResult)?.result
creditNumberAttempts = (ruleAction(FIND_CREDIT_NUMBER_ATTEMPTS) as
CreditNumberAttemptsResult)
.creditNumberAttempts

when {
(creditNumberAttempts == 1 && score911 < 400) ||
(creditNumberAttempts > 1 && score911 < 500)
} then {
approve(A6)
} otherwise {
cancel(A7)
}
}

rule {
def bankruptCheckResult = ruleAction(BANKRUPT_CHECK) as
BankruptCheckResult
when {
bankruptCheckResult?.bankrupt
} then {
cancel(A8)
}
}
}
Приложение 2

API. Вызов сервиса кредитной политики

Метод: POST
URL: /ru-credit-policy/get-decision?version={version}
Для запроса используются следующие параметры:
Параметры ответа:
Приложение 3

Справочник Тип занятости