---
# System prepended metadata

title: Оформление займов/предложений повторным клиентам
tags: [secondary_contract, arithmetic-integration, temp]

---

---
tags: arithmetic-integration,temp,secondary_contract
title: Оформление займов/предложений повторным клиентам
---

# Оформление займов/предложений повторным клиентам

## 1. ЛКК ---> БПР

#### Операция: запрос лимитов

#### Данные:
* персональные данные клиента

#### :arrow_forward: Выполнение:
* обычный подбор лимитов (это уже реализовано!)

---

## 2. БПР ---> ЛКК (ответ на [п.1](#1-ЛКК-—gt-БПР))

#### Данные:
* список лимитов:
    * суммы,
    * сроки,
    * акция
    * настройки акции

---

## 3. ЛКК ---> РБО

#### Операция: начать оформление договора

#### Данные:
* (телефон И др) ИЛИ (серия+номер И др)
* населённый пункт (идентификатор, можно получить через операцию [Получение списка регионов](/Rssiwh6CSr6QXB4JekBuuA))
* кредитная акция
* настройки кредитной акции (схема начисления и т.д.)
* сумма
* срок
* банковская карта (13 цифр = Арифметика, 16 цифр = PAN банковских карт)

:::info
:::spoiler API

#### Headers:
* **Mq-Jrb-Exchange**: PersonalAccount
* **Mq-Jrb-Routing-key**: contract-reg-process-==base_source==
* **Mq-Jrb-Operation**: CreateContractRepeatCustomer
* **Mq-Jrb-Object**: ==phone==

#### Body:
```json
{
    "phone": "9999999999",
    "passport_series": "1234",
    "passport_number": "123456",
    "birthdate": "yyyy-MM-dd",
    "city_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "offer_id": "offer_id",
    "settings": {...},
    "sum": 99999,
    "type_period": "Year"/"Month"/"Day",
    "period": 99,
    "card_num": "1234567890123456"
}
```
:::

#### :arrow_forward: Выполнение:
1. определяем магазин ЛКК по переданному коду региона
2. делаем запрос в БПР за лимитами по (телефон И др) ИЛИ (серия+номер И др), получаем:
    * лимиты (сверяем их с запрошенными суммами и сроками) 
    * полные данные о текущем паспорте клиента (дата выдачи, кем выдан и т.д., а, может, есть ссылка?)
    * ФИО, пол, место рождения и т.д.
3. делаем запрос в БПР за старыми ответами на вопросы клиента:
    * адрес регистрации
    * доход
    * <прочие вопросы для скоринга в БКИ>
4. получаем код ЛК НКО
5. создаём договор на основании полученных данных
6. отправляем запрос в БПР на подбор страховых продуктов

---

## 4. РБО ---> БПР (внутренний запрос)

#### Операция: проверка договора (+подбор сертификатов)

#### Данные:
* все данные по договору, чтобы создать его на стороне БПР

#### :arrow_forward: Выполнение:
1. создание и заполнение договора в БПР
2. базовые проверки корректности данных в договоре (проверка перс. данных клиента: списки, лимиты, мораторий; проверка некоторых ответов на вопросы, которые потребуются для отправки в БКИ)
3. подбор сертификатов (страховых продуктов)

---

## 5. БПР ---> РБО (обработка ответа на [п.4](#4-РБО-—gt-БПР-внутренний-запрос))

#### Операция: после получения сертификатов

#### Данные:
* подобранные сертификаты

#### :arrow_forward: Выполнение:
1. прикрепление сертификатов к договору 
2. обновление состояния договора (смена статуса, модификация сумм, обновление графика)
3. получение пакета 1 печатных форм перед скорингом (пакет номер 1: анкета, согласия разного рода и т.д.)
4. генерация файлов документов для ознакомления

---

## 6. РБО ---> ЛКК (ответ на [п.3](#3-ЛКК-—gt-РБО))

#### Данные:
* "base_source" (база, где создан договор)
* номер договора
* пакет документов 1 для подписания (набор файлов)
* идентификатор пакета 1 документов

:::info
:::spoiler API
#### Body:
```json
{
    "base_source": "xxxxxxxxxxxx",
    "contract_num": "А99АААА999999999",
    "doc_pack": [
        {
            "name": "Наименование печатной формы",
            "extension": "abc",
            "data": "<двоичные данные в base64>"
        },
        ...
    ],
    "doc_pack_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```
:::

---

## 7. ЛКК ---> РБО

#### Операция: запросить код подписания пакета документов

#### Данные:
* номер договора
* идентификатор пакета 1 документов
* признак повтора

:::info
:::spoiler API

#### Headers:
* **Mq-Jrb-Exchange**: PersonalAccount
* **Mq-Jrb-Routing-key**: contract-reg-process-==base_source==
* **Mq-Jrb-Operation**: RequestContractPackageSigningCode
* **Mq-Jrb-Object**: ==phone==, ==contract_num==

#### Body:
```json
{
    "contract_num": "А99АААА999999999",
    "doc_pack_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "repeat": true/false
}
```
:::

#### :arrow_forward: Выполнение:
1. генерация смс для подписания пакета 1
2. отправка смс через веб-сервис в БПР

---

## 8. РБО ---> ЛКК (ответ на [п.7](#7-ЛКК-—gt-РБО))

#### Данные:
* ожидаемый код смс для пакета 1

:::info
:::spoiler API
#### Body:
```json
{
    "doc_pack_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "code": "999999",
    "time": 999
}
```
:::

---

## 9. ЛКК ---> РБО

#### Операция: продолжить оформление

#### Данные:
* номер договора
* идентификатор пакета 1 документов
* код подтверждения для пакета 1

:::info
:::spoiler API

#### Headers:
* **Mq-Jrb-Exchange**: PersonalAccount
* **Mq-Jrb-Routing-key**: contract-reg-process-==base_source==
* **Mq-Jrb-Operation**: ContinueProcessContractReg
* **Mq-Jrb-Object**: ==phone==, ==contract_num==

#### Body:
```json
{
    "contract_num": "А99АААА999999999",
    "doc_pack_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "code": "999999"
}
```
:::

#### :arrow_forward: Выполнение:
1. проверка кода подтверждения пакета 1
2. подписание пакета 1 документов
3. отправка договора на скоринг в БПР

---

## 10. РБО ---> БПР (внутрений запрос)

#### Операция: выполнить скоринг договора

#### Данные:
* договор (ссылка?)

#### Выполнение:
1. внутренний скоринг
2. скоринг в БКИ
3. если для акции выставлено автосогласование, то договор получает статус "Согласован"

---

## 11. БПР ---> РБО (обработка ответа на [п.10](#10-РБО-—gt-БПР-внутрений-запрос))

#### Операция: после скоринга договора

#### Данные:
* договор с результатами скоринга

#### :arrow_forward: Выполнение:
1. обновление состояния договора ("Согласован" или "Результат скоринга: Одобрено")
2. получение пакета 2 печатных форм перед подписанием (пакет номер 2: договор, сертификаты и т.д.)
3. генерация файлов документов для ознакомления
4. генерация смс для подписания пакета 2

---

## 12. РБО ---> ЛКК (ответ на [п.9](#9-ЛКК-—gt-РБО))

:::warning
:warning: Полностью повторяет [п.6](#6-РБО-—gt-ЛКК-ответ-на-п3), но с пакетом 2 документов
:::

:::warning
:warning: Если система определяет, что это последний пакет документов для подписания, то в тело ответа будет помещено поле ==`"need_card": true`==, наличие которого указывает, что у клиента нужно будет запросить номер карты для зачисления средств
:::

---

## 13. ЛКК ---> РБО

#### Операция: запросить код подписания пакета документов

:::warning
:warning: Полностью повторяет [п.7](#7-ЛКК-—gt-РБО), но с пакетом 2 документов
:::

---

## 14. РБО ---> ЛКК (ответ на [п.13](#13-ЛКК-—gt-РБО))

:::warning
:warning: Полностью повторяет [п.8](#8-ЛКК-—gt-РБО), но с пакетом 2 документов
:::

---

## 15. ЛКК ---> РБО

#### Операция: продолжить оформление

:::warning
:warning: Входные данные и API полностью повторяют [п.9](#9-ЛКК-—gt-РБО), но с пакетом 2 документов. А вот выполнение другое, оно зависит от текущего состояния договора на стороне Рассрочки
:::

#### :arrow_forward: Выполнение:
1. проверка кода подтверждения пакета 2
2. подписание пакета 2 документов
3. подписание и выдача договора (сопутствующие проверки лимитов и т.д.)
4. отправка запроса через НКО на перечисление средств
5. отправка договора в БПР на смену статуса (в параллельном потоке)

---

## 16. РБО ---> ЛКК (ответ на [п.15](#15-ЛКК-—gt-РБО))

#### Данные:
* "base_source" (база, где создан договор)
* номер договора

:::info
:::spoiler API
#### Body:
```json
{
    "base_source": "xxxxxxxxxxxx",
    "contract_num": "А99АААА999999999"
}
```
:::

---
