---
tags: ОР ЛКК
---
# Анкета нового клиента
Протокол: `http` `https`
Адрес: `server/base/hs/api/questionnaire/{название_метода}`
Отправка запроса происходит после нажатия кнопки расчитать в калькуляторе, если поле **first_design** = Истина. Иначе обыный процесс взятия займа без анкеты. При успешном запросе возвращает список json. При отсутствии вернёт ошибочный результат
## Получение анкеты нового клиента
==GET== `getForm`
**Параметры**
* client_hash - хэш клиента
* ip
* type - тип (рассрочка/займ) в зависимости от того на какой закладке калькулятора нажимали кнопку рассчитать. Возможные значения: ==Installments/ConsumerLoan==
**Описание ответа**
:::success
:::spoiler Пример тела ответа
```json=
{
"error":false,
"description":"",
"result":[
{
"id":"personal_information",
"title":"Персональные данные",
"fields":[
{
"label":"Фамилия",
"id":"surname",
"type":"text",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"Имя",
"id":"first_name",
"type":"text",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"Отчество",
"id":"second_name",
"type":"text",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"Есть отчество",
"id":"second_name",
"type":"checkbox",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"Дата рождения",
"id":"birth_date",
"type":"text",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"Пол",
"id":"gender",
"type":"select",
"mask":"",
"required":true,
"value":[
"Мужской",
"Женский"
]
},
{
"label":"Телефон",
"id":"phone",
"type":"phone",
"mask":"",
"required":true,
"value":[
]
},
{
"title":"Удостоверения личности",
"id":"identity",
"sections":[
{
"title":"Паспорт",
"id":"passport",
"fields":[
{
"label":"Серия",
"id":"series",
"type":"text",
"mask":"9999",
"required":true,
"value":[
]
},
{
"label":"Номер",
"id":"num",
"type":"text",
"mask":"999999",
"required":true,
"value":[
]
},
{
"label":"Код подразделения",
"id":"code",
"type":"text",
"mask":"999-999",
"required":true,
"value":[
]
},
{
"label":"Кем выдан",
"id":"issued_by",
"type":"text",
"mask":"999-999",
"required":true,
"value":[
]
},
{
"label":"Дата выдачи",
"id":"pass_date",
"type":"date",
"mask":"999-999",
"required":true,
"value":[
]
}
]
},
{
"title":"СтарыйПаспорт",
"id":"old_passport",
"fields":[
{
"label":"Серия",
"id":"old_series",
"type":"text",
"mask":"9999",
"required":true,
"value":[
]
},
{
"label":"Номер",
"id":"old_num",
"type":"text",
"mask":"999999",
"required":true,
"value":[
]
},
{
"label":"Код подразделения",
"id":"old_code",
"type":"text",
"mask":"999-999",
"required":true,
"value":[
]
},
{
"label":"Кем выдан",
"id":"old_issued_by",
"type":"text",
"mask":"999-999",
"required":true,
"value":[
]
},
{
"label":"Дата выдачи",
"id":"old_pass_date",
"type":"date",
"mask":"999-999",
"required":true,
"value":[
]
}
]
}
],
"fields":[
{
"label":"Есть cтарый gаспорт",
"id":"has_old_passport",
"type":"checkbox",
"mask":"",
"required":true,
"value":[
]
},
{
"label":"СНИЛС",
"id":"snils",
"type":"text",
"mask":"9999999999999",
"required":true,
"value":[
]
},
{
"label":"ИНН",
"id":"inn",
"type":"text",
"mask":"999999999999",
"required":true,
"value":[
]
}
]
}
]
},
{
"id":"7f604bf3-7b0b-4cdf-8563-09066d33d354",
"title":"Информация о клиенте"
},
{
"id":"bcc61112-d9a1-4a7b-b8c1-52d917ee3a2f",
"title":"Адреса и контактная информация"
},
{
"id":"2b49c62a-2613-41bb-9ff2-21c72180d2c9",
"title":"Ваши доходы"
},
{
"id":"f6e8cd78-6756-4f09-b1a7-3d2551b31695",
"title":"Ваши расходы"
}
]
}
```
:::
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Отправка заполненного раздела и одновременное получение следующего раздела
==POST== `sendSection`
**Параметры**
* client_hash - хэш клиента
* ip
* section_id - ид раздела, который был получен операцией `getForm`
**Тело запроса**
```json=
{
"id_вопроса1": "выбранное значение вопроса1",
"id_вопроса2": "выбранное значение вопроса2",
"id_вопроса3": "выбранное значение вопроса3",
"id_вопроса4": "выбранное значение вопроса4"
}
```
**Описание ответа**
```json=
{
"error":false,
"description":"",
"result":{
"fields":[
{
"label":"Работодатель",
"id":"Работодатель",
"type":"text",
"mask":"",
"required":true,
"value":"МКК \"АРИФМЕТИКА\"",
"visible":true
},
{
"label":"Отраслевая принадлежность",
"id":"ОтраслеваяПринадлежность",
"type":"select",
"mask":"",
"required":true,
"value":[
"финансовое дело и страхование",
"строительство",
"оптовая торговля",
"розничная торговля",
"промышленность",
"услуги по продаже и аренде недвижимости",
"перевозки / складское хранение",
"предпринимательская деятельность",
"образование",
"здравоохранение и социальная помощь",
"искусство / развлечения / отдых",
"гостиницы и предприятия общественного питания",
"государственное управление",
"вооруженные силы (МВД, ВС, МЧС и т.д.)",
"юридические услуги",
"другое"
],
"visible":true
}
],
"questions_for_change":[
"НетСтационарногоРабочегоТелефона"
]
}
}
```
**Параметры**
* label - наименование вопроса
* id - идентификатор вопроса
* type - тип вопроса. Возможные значения:
* select - список выбора значения
* address - адрес, в формате 9 запятых (<код страны>, <индекс>, <код региона>, <район>, <город>, <населенный пункт>, <улица>, <дом>, <корпус>, <квартира>)
* ~~phone - телефон~~ вместо этого type: text и mask = "+7 (999) 999-99-99"
* email
* num - число
* text - строка
* checkbox - флажок
* multiple - составной ответ
* date - дата
* mask - маска заполнения, используется вместе с type
* required - обязательность поля
* value - значение, в случае type: select - массив, type: checkbox - булево, в остальных случаях строка/число
* disabled - (необязательное, может как быть в вопросе, так и нет) - нужно ли заблокировать поле. Булево
* warning_text - (необязательное, может как быть в вопросе, так и нет) - текст предупреждения для вопроса
* error_text - (необязательное, может как быть в вопросе, так и нет) - текст ошибки для вопроса
* min_length - (необязательное, может как быть в вопросе, так и нет) - минимальная длина ответа
* visible - не успользуется, не обращать внимание на этот параметр
* questions_for_change - массив id вопросов, при изменении которых нужно обновить текущий раздел
* comment - признак того, что у этого вопроса должен быть комментарий
* required_comment - в разработке
* min_value - (необязательное), минимальное значение ответа
* max_value - (необязательное), максимальное значение ответа
* max_count_strings - (только у составных вопросов) максимальное количество строк составного вопроса
* min_count_strings - (только у составных вопросов) минимальное количество строк составного вопроса
* explanation - (необязательный), пояснения к вопросу (отображаются при наведении на “?”)
:::success
:::spoiler Пример тела ответа
```json=
{
"error":false,
"description":"",
"result":{
"fields":[
{
"label":"Работодатель",
"id":"Работодатель",
"type":"text",
"mask":"",
"required":true,
"value":"МКК \"АРИФМЕТИКА\"",
"visible":true
},
{
"label":"Отраслевая принадлежность",
"id":"ОтраслеваяПринадлежность",
"type":"select",
"mask":"",
"required":true,
"value":[
"финансовое дело и страхование",
"строительство",
"оптовая торговля",
"розничная торговля",
"промышленность",
"услуги по продаже и аренде недвижимости",
"перевозки / складское хранение",
"предпринимательская деятельность",
"образование",
"здравоохранение и социальная помощь",
"искусство / развлечения / отдых",
"гостиницы и предприятия общественного питания",
"государственное управление",
"вооруженные силы (МВД, ВС, МЧС и т.д.)",
"юридические услуги",
"другое"
],
"visible":true
},
{
"label":"Должность (выбор)",
"id":"Должность",
"type":"select",
"mask":"",
"required":true,
"value":[
"Ассистент",
"Сновальщик",
"Вулканизаторщик",
"Зачистчик",
"Бандажник",
"Агломератчик",
"Агент ",
"Градуировщик",
"Отделочник",
"Строгальщик",
"Фельдшер",
"Забойщик",
"Гидролог",
"Консул",
"Экономист",
"Конвертерщик",
"Консультант",
"Педикюрша",
"Вышивальщик ",
"Столяр",
"Дезинфекционист",
"Адвокат",
"Пильщик",
"Садовод",
...
],
"visible":true
},
{
"label":"Стаж на текущем месте работы",
"id":"Стаж",
"type":"select",
"mask":"",
"required":false,
"value":[
"свыше пяти лет",
"от 3 до 12 месяцев",
"от года до трех лет включительно",
"от трех до пяти лет включительно",
"до 3-х месяцев"
]
},
{
"label":"Нет стационарного рабочего телефона",
"id":"НетСтационарногоРабочегоТелефона",
"type":"checkbox",
"mask":"",
"required":false,
"value":"",
"visible":true
},
{
"label":"Стационарный рабочий телефон",
"id":"ТелефонРабочий",
"type":"text",
"mask":"+7 (999) 999-99-99",
"required":false,
"value":"3832808027"
},
{
"label":"Мобильный/многоканальный рабочий телефон",
"id":"МобильныйМногоканальныйРабочийТелефон",
"type":"text",
"mask":"+7 (999) 999-99-99",
"required":false,
"value":""
},
{
"label":"Мобильный телефон руководителя",
"id":"МобильныйТелефонРуководителя",
"type":"text",
"mask":"+7 (999) 999-99-99",
"required":false,
"value":""
},
{
"label":"Адрес постоянной работы",
"id":"АдресПостояннойРаботы",
"type":"address",
"mask":"",
"required":true,
"value":"РОССИЯ,630110,Новосибирская обл,,Новосибирск г,,Богдана Хмельницкого ул,дом 58,,",
"visible":true
},
{
"label":"Зарплата Клиента",
"id":"ЗарплатаКлиента",
"type":"num",
"mask":"",
"required":false,
"value":""
},
{
"label":"Ежемесячный доход на семью",
"id":"СуммарныйДоход",
"type":"num",
"mask":"",
"required":true,
"value":""
}
]
}
}
```
:::
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Получение списка документов для заполнения анкеты
==GET== `getDocsList`
**Параметры**
* client_hash - хэш клиента
* ip
* type - тип (рассрочка/займ) в зависимости от того на какой закладке калькулятора нажимали кнопку рассчитать. Возможные значения: Installments/ConsumerLoan
**Описание ответа**
```json=
[
{
"downloaded":false,
"acceptable_size":1500,
"mandatory":true,
"instruction":"",
"id":"ID='80e2fddb-b284-4f9e-b118-12574d87983a'",
"pattern":"",
"pattern_extension":"png",
"name":"Разворот паспорта с фото"
},
{
"downloaded":true,
"acceptable_size":1500,
"mandatory":true,
"instruction":"Прикрепите фото паспорта с фото",
"id":"Name='ОсновнаяФотография'",
"pattern":"base64шаблона",
"pattern_extension":"png",
"name":"ФОТО КЛИЕНТА С РАЗВОРОТОМ ПАСПОРТА"
},
{
"downloaded":false,
"acceptable_size":1500,
"mandatory":true,
"instruction":"",
"id":"ID='067a5dcd-0d20-448d-ab9f-9fc556712c9e'",
"pattern":"",
"pattern_extension":"png",
"name":"Адрес регистрации"
},
{
"downloaded":false,
"acceptable_size":1500,
"mandatory":true,
"instruction":"",
"id":"ID='40d1dd46-bfbb-46a2-828d-d5c22654a6bc'",
"pattern":"",
"pattern_extension":"png",
"name":"Сведения о ранее выданных паспортах"
}
]
```
* name - наименование документа (тип: строка),
* id - представление ссылки (тип: строка),
* acceptable_size (ДопустимыйРазмер) - размер загружаемого файла в кБайтах (тип: число),
* mandatory (Обязательный) - признак обязательности (тип: булево)
* downloaded - признак, что в базе есть такой загруженный файл и его можно удалить
* pattern - двоичные данные в base64 шаблона документа (картинка)
* pattern_extension - формат поля pattern
* instruction - инструкция по подготовке файла к прикреплению
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Отправка документа анкеты
==POST== `sendDoc`
**Параметры**
* client_hash - хэш клиента
* ip
* doc_id - ид документа, который был получен операцией `getDocsList`
**Тело запроса**
```json=
{
"id": "ID='80e2fddb-b284-4f9e-b118-12574d87983a'",
"data": <двоичные данные документа в формате base64>,
"extension": "pdf"
}
```
**Описание ответа**
```json=
{
"error": false,
"description": ""
}
```
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Скачивание документа анкеты
==GET== `getDoc`
**Параметры**
* client_hash - хэш клиента
* ip
**Описание ответа**
```json=
{
"id": "ID='80e2fddb-b284-4f9e-b118-12574d87983a'",
"data": <двоичные данные документа в формате base64>,
"extension": "pdf"
}
```
* id - ид документа, который был получен операцией `getDocsList`
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Удаление документа анкеты
==GET== `delDoc`
**Параметры**
* client_hash - хэш клиента
* ip
* doc_id - ид документа, который был получен операцией `getDocsList`
**Описание ответа**
```json=
{
"error": false,
"description": ""
}
```
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)
## Отправка анкеты и начало взятия займа
==POST== `sendForm`
**Параметры**
* client_hash - хэш клиента
* ip
* type - тип (рассрочка/займ) в зависимости от того на какой закладке калькулятора нажимали кнопку рассчитать. Возможные значения: ==Installments/ConsumerLoan==
**Тело запроса**
```json=
{
"sum":8000,
"period":5,
"type_period":"Month",
"step_period":1
}
```
Данные для тела запроса - то, что выбрал клиент при расчитать, и часть что пришло на лимитах
**Описание ответа**
```json=
{
в разработке, пока просто error false
}
```
Ошибочный ответ, см. [пример](/E1rcq73tSPODd0Ds-6qT9w#Пример-ошибочного-ответа)