Оглавление |
---|
Общий порядок взаимодействия систем
Получение списка обязательных полей
Для получения списка первичных обязательных полей без привязки к конкретным инстанциям используются следующие API-методы:
Получение обязательных полей по типу клиента
POST /api/v1/service/profilebasefield/list
Используется для получения первичных обязательных полей зависимых от типа клиента (ФЛ или ИП/ЮЛ).
Раскрыть | ||||
---|---|---|---|---|
| ||||
Пример тела запроса:
где clientType может иметь следующие значения:
Пример получаемого ответа:
|
Получение обязательных полей по типу продукта
POST /api/v1/service/profilebasefieldproductbasefield/list
Используется для получения первичных обязательных полей зависимых от типа продукта.
Раскрыть | ||||
---|---|---|---|---|
| ||||
Пример тела запроса:
Возможные значения productType см. в справочнике product_types. Пример получаемого ответа:
|
Поиск продуктов на основе имеющихся на текущий момент данных
POST /api/v1/deal/findProducts
Подсказка |
---|
Пример сообщения: findProducts.json |
Информация о подходящих продуктах и требования по дальнейшему заполнению
Ответ, получаемый при выполнении findProducts, содержит список доступных продуктов
Раскрыть | ||
---|---|---|
| ||
|
Описание полей ответа
Ключ | Описание | Прим. |
---|---|---|
product | Содержит ссылку на fetchField Product | |
serviceCompanyErrors | Содержит информацию о необходимых для заполнения полях продукта. | |
serviceProductErrors | Содержит информацию о необходимых для заполнения полях продукта. Перечень возможных значений см. в справочнике product_types_fields | |
serviceMissingClientDocTypes | Содержит список недостающих документов клиента. Перечень возможных значений см. в справочнике docs_types | |
serviceMissingDealDocTypes | Содержит список недостающих обязательных документов о сделке. | |
serviceMissingIndicators | Содержит список достающих обязательных фин.показателей. Перечень возможных значений см. в справочнике finance_fields | |
documentTooltips | Содержит список документов необходимых при заполнении | |
financeIndicatorTooltips | Содержит список фин.показателей необходимых при заполнении "либо документы, либо фин.показатели" | |
tariffCompanyErrors | ||
tariffProductErrors |
Отправка заявки в сервисы с указанием продуктов
POST /api/v1/deal/send_applications
При отправке заявок указывается список целевых продуктов, и идентификаторы будущих заявок для соответствующего продукта. В dealState передается та же структура, что и ранее передавалась в /api/v1/deal/findProducts
Раскрыть | ||
---|---|---|
| ||
|
Информация |
---|
В ближайшем будущем планируется вместо productId принимать токен, который будет возвращаться из findProducts. Так же вероятна замена передачи данных в dealState на указание URI, по которому можно получить данные, с поддержкой указания требуемых секций данных. Эти преобразования дадут возможность применить стиль REST с применением HATEOAS. |
Информация о результате принятия заявки в работу
Система банка, получив заявку, делает первичную ее валидацию, по результатам которой она отправляет сообщение о успешном или провалившемся результате принятия заявки в обработку.
В атрибуте targetObjectId приходит идентификатор заявки, по которой пришел результат.
Раскрыть | ||||
---|---|---|---|---|
| ||||
Структура сообщения об успешном принятии заявки в работу
Структура сообщения об ошибке
|
Сообщения отправляемые при изменении статуса заявок
Сообщение будет приходить на ранее указанный адрес обратного вызова.
В сообщении присутствует идентификатор заявки, который был ранее указан при "applicationId".
Информация |
---|
Для повышения уровня безопасности коммуникации, и минимизации согласования авторизационных данных, данное сообщение планируется передавать в виде подписанного JWT, чтобы принимающая сторона смогла проверять достоверность полученных данных без необходимости какой-либо дополнительной аутентификации при обратном вызове. |
Раскрыть | ||
---|---|---|
| ||
|
Перечень возможных значений dealApplicationStatus см. в справочнике dealApplicationStatuses.
Перечень возможных userActions см. в справочнике userActions.
Информация |
---|
На текущий момент в прототипе не реализован проброс API для подписания документов, чтобы заявка могла считаться подписанной. Необходимые данные для получения и подписания документов предполагается указывать в виде соответствующих URI внутри каждого элемента userActions. Так же возможна реализация ресурса, для получения текущего состояния заявки, чтобы внешняя система могла в любой момент получить актуальное состояние заявки, и возможные действия по ней. |
Не все требования к полям сервисы декларируют в своих продуктах, некоторые проверки они выполняют у себя самостоятельно, поэтому возможны статусы отклонения заявки.
Раскрыть | ||
---|---|---|
| ||
Пример отклонения заявки
|
Возможные значения applicationStatus:
Значение | Описание |
---|---|
SENT_TO_SERVICE | Отправлена в сервис |
CLOSED_BY_SYSTEM | Закрыта системой. Терминальный статус |
REJECTED_BY_SERVICE | Отклонена сервисом (банком). Терминальный статус |
PRODUCT_ISSUED | Выпущен продукт. Терминальный статус |
Подписание заявки на стороне внешней системы
При получении события о смене статуса заявки, если в данном сообщении так же присутствует UserAction с типом CLIENT_INTERNAL_SIGN, система-отправитель должна выполнить действие подписания заявки. Процесс подписания заявки организован через подписание ее документов, куда входят как документы, которые были ранее присланы при подаче заявки, так и сгенерированные на стороне банка документы (например, анкета клиента).
Получить список документов, требуемых на подпись можно вызвав URL, указанный в атрибуте userActions[].documentsToSignUrl. В результате данного вызова будет получен список документов, с их хешами разных алгоритмов, для возможности подписания, и URL для скачивания (если пользователю или системе отправителю, потребуется содержимое документов).
Список возможных алгоритмов
- GOST-3411,
- GOST-3411-2012-512,
- GOST-3411-2012-256,
- SHA-256.
Так же в теле ответа приходит URL, на который необходимо отправлять результаты подписи. Данный URL определен в атрибуте result.signUrl.
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|