Перейти к основному содержимому

Создание клиента (физ.лицо) и заявки из лида автоматом

Цель: создать лид, запустить проверку по лиду, создать автоматом клиента и заявку.

Этот бизнес сценарий нужно использовать тогда, когда необходимо:

  • быстро создать рабочий пример в системе?
  • ускорить ознакомление с системой?
  • создать заявку, которую можно обработать, одобрить и следующим шагом выдать кредит?

Тогда этот сценарий именно тот, который нужно взять на вооружение.

Ожидаемый результат: созданная заявка.

При успешном прохождении проверки клиент и заявка создаются автоматически.

В интерфейсе результат может выглядеть следующим образом:

В канале поступления должна быть выбрана схема "СПР", в которой настроена только ручная проверка. В качестве кредитного продукта выбирается "Тариф Базовый".

Описание бизнес сценария в BPMN: для этого сценария смотрите цифру 1 и 2

Для достижения цели потребуется вызвать 2 метода апи.

1. Сигнатура метода

Общее описание по работе с методом веб-сервиса ядра описано с статье "Нюансы при работе с API" в разделе "Метод".

POST /main/leads

Параметры пути:

нет

Параметры запроса:

нет

Тело запроса

В теле запроса передается объект следующей структуры:

ЭлементОбязательностьТип данныхОписание
firstNameMstring[50]Имя. Если передать ФИО, то оно будет сохранено. В этом случае в дальнейшем возможны проблемы, если будут добавляться фамилия и отчество.
mobilePhoneMstring[50]Номер мобильного телефона. Указываются только цифры в международном формате 797762007777. Значение этого поля добавляется в лид как +7 (977) 620 07 77.
lastNameMstring[50]Фамилия. В этом поле можно также передать любое строковое значение длиной в 50 символов. Но это не рекомендуется делать.
birthDateMdateДата рождения в формате YYYY-MM-DD
sexIdМint[20]Id Пола. Возможные значения смотрите [здесь](https://docs.brainysoft.ru/documentation/page/794).
passportMobjectПаспорт
passport.issueDateMdateДата выдачи паспорта в формате YYYY-MM-DD
passport.noMstring[25]Номер паспорта
addressDataMobjectАдрес проживания
registrationAddressDataMobjectАдрес прописки
amountMfloatСумма займа
managerIdMint[20]Специалист по займам. Значение для этого поля берется из справочника "[Специалисты по займам](http://docs.brainysoft.ru/documentation/page/79)". Если не передавать это поле, то за основу берется значение у специалиста по займам, у которого стоит галочка "Использовать при автоматическом создании клиента". Также следует обратить внимание на то, что передавая поле подразделение "subdivisionId", в поле managerId будет проставляться значение специалиста по займам этого подразделения. Например передаем "subdivisionId":101798, то clientId примет значение 101091, специалиста по займам этого подразделения.
subdivisionIdOint[20][Идентификатор подразделения](http://docs.brainysoft.ru/page/223). Смотрите также описание параметра "managerId".
periodM[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 можно посмотреть и скопировать здесь.