Создание клиента (физ.лицо) и заявки из лида автоматом
Цель: создать лид, запустить проверку по лиду, создать автоматом клиента и заявку.
Этот бизнес сценарий нужно использовать тогда, когда необходимо:
- быстро создать рабочий пример в системе?
- ускорить ознакомление с системой?
- создать заявку, которую можно обработать, одобрить и следующим шагом выдать кредит?
Тогда этот сценарий именно тот, который нужно взять на вооружение.
Ожидаемый результат: созданная заявка.
При успешном прохождении проверки клиент и заявка создаются автоматически.
В интерфейсе результат может выглядеть следующим образом:
В канале поступления должна быть выбрана схема "СПР", в которой настроена только ручная проверка. В качестве кредитного продукта выбирается "Тариф Базовый".
Описание бизнес сценария в BPMN: для этого сценария смотрите цифру 1 и 2
Для достижения цели потребуется вызвать 2 метода апи.
1. Сигнатура метода
Общее описание по работе с методом веб-сервиса ядра описано с статье "Нюансы при работе с API" в разделе "Метод".
POST /main/leads
Параметры пути:
нет
Параметры запроса:
нет
Тело запроса
В теле запроса передается объект следующей структуры:
Элемент | Обязательность | Тип данных | Описание |
firstName | M | string[50] | Имя. Если передать ФИО, то оно будет сохранено. В этом случае в дальнейшем возможны проблемы, если будут добавляться фамилия и отчество. |
mobilePhone | M | string[50] | Номер мобильного телефона. Указываются только цифры в международном формате 797762007777. Значение этого поля добавляется в лид как +7 (977) 620 07 77. |
lastName | M | string[50] | Фамилия. В этом поле можно также передать любое строковое значение длиной в 50 символов. Но это не рекомендуется делать. |
birthDate | M | date | Дата рождения в формате YYYY-MM-DD |
sexId | М | int[20] | Id Пола. Возможные значения смотрите [здесь](https://docs.brainysoft.ru/documentation/page/794). |
passport | M | object | Паспорт |
passport.issueDate | M | date | Дата выдачи паспорта в формате YYYY-MM-DD |
passport.no | M | string[25] | Номер паспорта |
addressData | M | object | Адрес проживания |
registrationAddressData | M | object | Адрес прописки |
amount | M | float | Сумма займа |
managerId | M | int[20] | Специалист по займам. Значение для этого поля берется из справочника "[Специалисты по займам](http://docs.brainysoft.ru/documentation/page/79)". Если не передавать это поле, то за основу берется значение у специалиста по займам, у которого стоит галочка "Использовать при автоматическом создании клиента". Также следует обратить внимание на то, что передавая поле подразделение "subdivisionId", в поле managerId будет проставляться значение специалиста по займам этого подразделения. Например передаем "subdivisionId":101798, то clientId примет значение 101091, специалиста по займам этого подразделения. |
subdivisionId | O | int[20] | [Идентификатор подразделения](http://docs.brainysoft.ru/page/223). Смотрите также описание параметра "managerId". |
period | M | [int][11] | Период займа. Это поле является условно обязательным для успешного прохождения этого бизнес-сценария. |
Примечание: для успешного отрабатывания 1 метода в теле запроса необходимо передавать только 2 свойства (firstName и mobilePhone).
Все остальные свойства, помеченные обязательными или условно обязательными, являются таковыми для успешного отрабатывания 2 метода.
Ошибки:
- NO_CLIENT_FIRST_NAME_ERROR - не указано имя клиента
- NO_MOBILE_PHONE_ERROR - не указан номер телефона
Пример запроса:
POST /main/leads
{
"firstName": "Фридрих",
"mobilePhone": "797762007719",
"lastName": "Эберт",
"birthDate": "1982-12-20",
"sexId": 101251,
"passport": {
"issueDate": "2012-01-23",
"no": "782573"
},
"addressData": { },
"registrationAddressData": { },
"amount": 99,
"subdivisionId": 101798,
"period": 30
}
Результат вызова метода 1
Общее описание структуры возвращаемого объекта описано с статье "Нюансы при работе с API" в разделе "Метод".
Элемент | Описание |
data | Идентификатор созданного лида. |
Пример ответа:
{
"status": "ok",
"timestamp": 1551033140167,
"data": 1400
}
Примеры кода ( 1-й метод ):
$requestBody = '{
"firstName": "Фридрих",
"mobilePhone": "797762007719",
"lastName": "Эберт",
"birthDate": "1982-12-20",
"sexId": 101251,
"passport": {
"issueDate": "2012-01-23",
"no": "782573"
},
"addressData": { },
"registrationAddressData": { },
"amount": 99,
"subdivisionId": 101798,
"period":30
}';
curl_setopt_array($curl_newLead, array(
CURLOPT_PORT => "9025",
CURLOPT_URL => "https://{customer}-saas.brainysoft.ru/bs-core/main/leads/",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $requestBody
));
2. Сигнатура метода
Общее описание по работе с методом веб-сервиса ядра описано с статье "Нюансы при работе с API" в разделе "Метод".
POST /main/leads/{leadId}/check
Параметры пути:
Параметр | Обязательность | Тип данных | Описание |
leadId | M | int | Идентификатор лида созданного вызовом верхнего метода. |
Параметры запроса:
нет
Тело запроса
нет
Ошибки:
- NO_CLIENT_NAME_ERROR - не указана фамилия клиента
- NO_BIRTH_DATE_ERROR - не указана дата рождения
- NO_SEX_ERROR не указан пол
- NO_PASSPORT_ERROR - не указан номер паспорта
- NO_PASSPORT_ISSUE_DATE_ERROR - не указана дата выдачи паспорта
- NO_ADDRESS_ERROR - не указан адрес
- NO_REGISTRATION_ADDRESS_ERROR - не указан адрес регистрации
- NO_LOAN_AMOUNT_ERROR - не указана сумма займа
- LOAN_AMOUNT_LESS_THAN_MIN_LOAN_AMOUNT_ERROR - Запрашиваемая в заявке сумма займа должна быть больше, чем минимальная сумма согласно заявленному в кредитном продукте
- PERIOD_LESS_THAN_MIN_PERIOD_ERROR - Период, указанных в заявке должен быть больше, чем минимальный период в кредитном продукте.
Пример запроса:
POST /main/leads/1400/check
Результат вызова метода 2
Общее описание структуры возвращаемого объекта описано с статье "Нюансы при работе с API" в разделе "Метод".
Элемент | Описание |
data | Пустая строка в валидном формате json. |
Пример ответа:
{
"status": "ok",
"timestamp": 1462953747271,
"data": ""
}
Примеры кода:
$leadId = //идентификатор лида, созданного методом 1
curl_setopt_array($curl, array(
CURLOPT_PORT => "9025",
CURLOPT_URL => "https://{customer}-saas.brainysoft.ru/bs-core/main/leads/$leadId/check",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array (
"bsauth: $bsauth",
"cache-control: no-cache"
)
));
Пример кода на PHP можно посмотреть и скопировать здесь.