Создание нового лида
POST   /bs-core/main/leads
Создание нового клиента из лида
При создании Клиента из Лида, ядро само может определить, что это Лид от уже существующего клиента. Ядро считает, что если совпали поля [Фамилия, Имя, Отчество, серия паспорта, номер паспорта] - то это Лид от существующего клиента и ядро добавит заявку к этому клиенту. В противном случае - будет создан новые клиент.
Если при создании лида параметры: firstName, lastName, patronymic, passport.seria, passport.no будут совпадать с уже существующим клиентом, то в этом случае произойдет привязка этого лида к клиенту. Есть валидация в рамках юр. лиц (включается отдельно, по умолчанию валидации нет). Привязка лида к тому или иному юр. лицу происходит по параметру managerId.
При создании нового лида можно передавать полностью заполненную структуру адреса, или можно указать только три поля - идентификатор страны ([countryId](https://connect.brainysoft.ru/documentation/page/73)), идентификатор ФИАС (fiasId) и строка адреса (fullAddressText) (включая номер квартиры) и все остальные поля будут заполнены автоматически.
Триггером для отправки отдельного запроса по уточнению адреса является заполненные поля идентификатор ФИАС (fiasId) и строка адреса (fullAddressText). Поле fiasId должно соответствовать строке адреса ФИАС (fullAddressText). Корректные значения получаются методом "[Получение адреса и ID ФИАС по строке](https://connect.brainysoft.ru/documentation/page/533)". Для правильного отображения в интерфейсе адреса необходимо передавать три поля - идентификатор страны ([countryId](https://connect.brainysoft.ru/documentation/page/73)), идентификатор ФИАС (fiasId) и строка адреса (fullAddressText) (включая номер квартиры). Подробнее с примерами описано ниже в параметрах addressData, registrationAddressData и addresses.Минимально необходимой информацией для создания лида в системе, являются поля "firstName", "mobilePhone".
Для того чтобы определить, какие поля являются обязательными и их нужно обязательно (required) передавать в теле запроса (JSON-объект передаваемый в теле запроса), нужно посмотреть в панели администратора в категории "Редактор моделей". **Важно** понимать то, что из лида создается клиент, заявка и может быть создан контракт. Следовательно минимальный набор передаваемых в теле запроса полей складывается из обязательных полей клиента (физ. или юр. лица), заявки и контракта. В системе присутствуют как системно-обязательные поля, так и обязательные поля, обязательность которых можно отключить через функционал "Редактор моделей". Минимальный работающий пример созданного лида и возможно созданные из него объекты клиента и заявки описаны в статьях"[Элементарный сценарий по созданию лида](https://connect.brainysoft.ru/documentation/article/336)", "[Создание клиента (физ.лицо) и заявки из лида автоматом](https://connect.brainysoft.ru/documentation/article/337)". Общее описание работы с методами API описаны в статье "[Нюансы при работе с API](https://connect.brainysoft.ru/documentation/article/338)".Запрос
POST /bs-core/main/leads
{
"id": null,
"channel": "ECOMM",
"lastName": "Иванов",
"firstName": "Иван",
"patronymic": "Ивановнич",
"sexId": 101251,
"birthDate": "1987-07-29",
"birthPlace": "Москва",
"passport": {
"seria": "1222",
"no": "125523",
"issueDate": "2006-11-11",
"closeDate": "2020-11-11",
"manager": "УВД",
"subdivisionCode": "989-098",
"complementaryDocTypeId": null
},
"inn": "",
"snils": "",
"mobilePhone": "79057357014",
"relatives": [],
"leadDebts": [],
"amount": 4499,
"period": 0,
"periodUnit": "DAYS;MONTHS;YEARS",
"goods": [],
"storeTypeId": null,
"cardNumber": "",
"cardHolder": "",
"validThruMonth": "",
"validThruYear": "",
"cardCvc": "",
"childrenCount": 0,
"adultChildrenCount": 0,
"dependentsCount": 0,
"meanIncome": 0,
"averageMonthlyCost": 0,
"monthlyCreditPayment": 0,
"closedCreditsCount": 0,
"delinquencyCount": 0,
"payedDelinquencyCount": 0,
"writtenDelinquencyCount": 0,
"activeCreditsCount": 0,
"activeCreditsAmount": 0,
"activeDelinquencyAmount": 0,
"mobilePhoneCheck": false,
"ipAndRegionMatch": false,
"rosfinmonitoringCheck": true,
"ufmsCheck": false,
"approvedByScorista": true,
"storeCode": "102072",
"orderCode": "58",
"addressData": {
"counryId": 101042,
"fiasId": "77523bc3-b053-456b-b99b-0a26e2e6af0c",
"fullAddressText": "г Москва, наб Академика Туполева, д 15 к 12"
},
"registrationAddressData": {
"countryId": 101043,
"houseNo": "8",
"blockNo": "",
"buildingNo": "",
"apartmentNo": "4",
"telephone": "",
"postalCode": "100115",
"regDate": "2017-08-15",
"housingType": "",
"metroStation": "",
"regionName": "г. Ташкент",
"localityName": "г. Ташкент",
"streetName": "ул. АРНАСОЙ",
"oldAddressText": ""
},
"addresses": [
{
"purposeId": 1,
"countryId": 101042,
"fiasId": "6fe4f702-b9f1-4e0d-890a-be9963f64a21",
"fullAddressText": "Московская обл, г Химки, кв-л Старбеево, кв-л Ленина, д 5, кв 14"
},
{
"purposeId": 3,
"countryId": 101042,
"fiasId": "be540338-8f26-4e74-81ed-789f9495297a",
"fullAddressText": "Московская обл, г Химки, ул Зеленая, д 10, кв 35"
}
],
"extraFields": [
{
"key": "client.education.id",
"value": "1011010"
},
{
"key": "client.changeName",
"value": "true"
},
{
"key": "client.dependents",
"value": "2"
},
{
"key": "client.birthDate",
"value": "1980-05-14"
},
{
"key": "loanApplication.familyIncome",
"value": "100000"
},
{
"key": "loanApplication.liability.id",
"value": "101932"
},
{
"key": "contract.loanStage",
"value": "5"
}
]
}
Описание параметров
Параметр | Обязателен | Тип данных | Описание |
id | О | [int][20] | Идентификатор лида |
channel | R | [enum] | Канал поступления лида
|
naturalPerson | R | [bool] | Физическое лицо (да/нет), по умолчанию стоит true. |
firstName | R | [string][50] | Имя |
lastName | R | [string][50] | Фамилия |
patronymic | R | [string][50] | Отчество |
title | R | [string][500] | Наименование организации (Для Юридического лица) |
registrationNumber | R | [string][50] | Регистрационный номер (ОГРН) (для лида юр.лица) |
sexId | R | [int][20] | Пол:
|
birthDate | R | [date] | Дата рождения (YYYY-MM-DD) |
birthPlace | R | [string][100] | Место рождения |
birthCountryId | R | [int][20] | Идентификатор страны гражданства |
passport | R | [object] | Паспорт |
passport.id | О | [int][20] | Паспорт. Идентификационный номер. |
passport.seria | М | [string][25] | Паспорт серия |
passport.no | М | [string][25] | Паспорт номер |
passport.extraNumber | М | [string][100] | Дополнительный номер |
passport.issueDate | М | [date] | Дата выдачи паспорта. (YYYY-MM-DD) |
passport.closeDate | М | [date] | Дата окончания действия паспорта. (YYYY-MM-DD) |
passport.manager | М | [string][255] | Орган выдачи паспорта |
passport.subdivisionCode | М | [string][10] | Код подразделения |
passport.complementaryDocTypeId | М | [int][20] |
В настоящее время, хотя этот параметр и присутствует, у него в паспорте будет проставляться значение null, так как существует объект complementaryDoc который содержит параметр complementaryDocTypeId, который имеет значение (смотрите например описание этого метода). |
inn | R | [string][50] | ИНН |
snils | R | [string][50] | СНИЛС |
mobilePhone | R | [string][50] | Указываются только цифры в международном формате 79886542301 |
R | [string][100] | Электронная почта | |
howYouKnowId | R | [int][20] |
|
subdivisionId | R | [int][20] |
|
relatives | R | [collection] | Список родственников |
relatives._.id | О | [int][20] | Идентификатор родственника |
relatives._.lastName | М | [string][50] | Фамилия родственника |
relatives._.firstName | М | [string][50] | Имя родственника |
relatives._.patronymic | М | [string][50] | Отчество родственника |
relatives._.resident | М | [bool] | Резидент |
relatives._.passport | М | [object] | Паспорт родственника. |
relatives._.passport._.id | О | [int][20] | Паспорт родственника. Идентификационный номер. |
relatives._.passport._.seria | R | [string][25] | Паспорт серия родственника |
relatives._.passport._.no | R | [string][25] | Паспорт номер родственника |
relatives._.passport._.extraNumber | R | [string][100] | Дополнительный номер родственника |
relatives._.passport._.issueDate | R | [date] | Дата выдачи паспорта родственника. (YYYY-MM-DD) |
relatives._.passport._.closeDate | R | [date] | Дата окончания действия паспорта родственника. (YYYY-MM-DD) |
relatives._.passport._.manager | R | [string][255] | Орган выдачи паспорта родственника |
relatives._.passport._.subdivisionCode | R | [string][10] | Код подразделения |
relatives._.passport._.complementaryDocTypeId | R | [int][20] |
В настоящее время, хотя этот параметр и присутствует, у него в паспорте будет проставляться значение null, так как существует объект complementaryDoc который содержит параметр complementaryDocTypeId, который имеет значение (смотрите например описание этого метода). |
relatives._.rnn | М | [string][50] | ИНН родственника |
relatives._.telephone | М | [string][100] | Номер телефона родственника |
relatives._.email | М | [string][50] | Электронная почта родственника |
relatives._.workPlace | М | [string][50] | Место работы родственника |
relatives._.address | М | [string][255] | Адрес родственника |
relatives._.birthDate | М | [date] | Дата рождения родственника (YYYY-MM-DD) |
relatives._.collateralRelId | М | [int][20] | Идентификатор степени родства:
|
relatives._.verified | М | [bool] | Верифицирован |
relatives._.comments | М | [string][255] | Комментарии по родственникам |
leadDebts | R | [collection] | Действующие кредиты и займы |
leadDebts._.id | О | [int][20] | Идентификатор действующего кредита или займа |
leadDebts._.debtName | М | [string][200] | Наименование действующего кредита или займа |
leadDebts._.debtAmount | М | [float] | Сумма действующего кредита или займа |
leadDebts._.bank | М | [string][100] | Банк действующего кредита или займа |
leadDebts._.debtBankId | М | [int][20] | Идентификатор объекта банк действующего кредита или займа |
leadDebts._.remainderDebt | М | [float] | Остаток долга действующего кредита или займа |
leadDebts._.monthlyPayment | М | [float] | Ежемесячный платеж действующего кредита или займа |
leadDebts._.availabilityDelays | М | [string][200] | Наличие просрочек действующего кредита или займа |
leadDebts._.paymentPeriodicity | М | [string][50] | Периодичность выплат действующего кредита или займа |
leadDebts._.lastFactPaymentDate | М | [date] | Дата последнего фактического платежа по действующему кредиту или займу в формате YYYY-MM-DD |
leadDebts._.intRate | М | [float] | Процентная ставка действующего кредита или займа |
leadDebts._.contractNameAndDate | М | [string][100] | Номер/Дата договора действующего кредита или займа |
leadDebts._.requisites | М | [string][200] | Реквизиты действующего кредита или займа |
managerId | R | [int][20] | |
creditProductId | R | [int][20] | Идентификатор кредитного продукта:
|
amount | R | [float] | Сумма займа |
period | R | [int][11] | Запрашиваемый срок займа |
periodUnit | R | [enum] | Единица измерения срока:
|
gettingMoneyMethodId | R | [int][20] | |
goods | R | [collection] | Список товаров |
goods._.id | О | [int][20] | Идентификатор товара |
goods._.name | М | [string][100] | Наименование товара |
goods._.article | М | [string][50] | Артикул товара |
goods._.description | М | [string][1024] | Описание товара |
goods._.quantity | М | [int][11] | Количество товара |
goods._.amount | М | [float] | Сумма товара |
extraFields | R | [collection] | Дополнительные поля |
extraFields._.id | О | [int][20] | Идентификатор дополнительного поля. |
extraFields._.key | М | [string][255] | Название дополнительного поля. Если нужно, чтобы в процессе работы системы принятия решений (СПР) переменные из лида были взяты в клиента/заявку/контракт, то нужно их передать следующим образом:
|
extraFields._.value | М | [string][255] | Значение дополнительного поля (не передавать значение "null", в случае если передать null ядро вернет ошибку "Ошибка при выполнении коммита транзакции") |
storeTypeId | R | [int][20] | Идентификатор категории магазина. |
cardNumber | R | [string][25] | Номер банковской карты, только цифры, без пробелов и других знаков |
cardHolder | R | [string][75] | Держатель карты (Для хранения данных карты необходимо наличие сертификата PCI DSS у клиента) |
validThruMonth | R | [string][2] | Срок действия карты месяц, формат: ММ |
validThruYear | R | [string][2] | Срок действия карты год, формат: ГГ |
cardCvc | R | [string][10] | CVC код, 3 цифры |
employerTitle | R | [string][100] | Наименование работодателя |
employerInn | R | [string][25] | ИНН работодателя. |
childrenCount | R | [int][20] | Количество детей. |
adultChildrenCount | R | [int][20] | Количество совершеннолетних детей. |
dependentsCount | R | [int][11] | Количество иждивенцев. |
meanIncome | R | [float] | Среднемесячный доход. |
averageMonthlyCost | R | [float] | Среднемесячный расходы |
monthlyCreditPayment | R | [float] | Ежемесячные платежи по кредитам |
closedCreditsCount | R | [int][11] | Количество закрытых кредитов |
delinquencyCount | R | [int][11] | Количество просрочек в прошлом |
payedDelinquencyCount | R | [int][11] | Количество закрытых просрочек |
writtenDelinquencyCount | R | [int][11] | Количество списанных просрочек |
activeCreditsCount | R | [int][11] | Количество активных кредитов |
activeCreditsAmount | R | [float] | Сумма текущей задолженности |
activeDelinquencyAmount | R | [float] | Сумма текущих просроченных платежей |
mobilePhoneCheck | R | [bool] | Флаг верификации телефона. |
ipAndRegionMatch | R | [bool] | Совпадает ли заявленный регион в фактическом адресе (адресе проживания) с IP адресом заявителя |
ipAndRegAddressMatch | R | [bool] | Совпадает ли заявленный регион в адресе регистрации с IP адресом заявителя |
rosfinmonitoringCheck | R | [bool] | Пройдена проверка Росфинмониторинг |
ufmsCheck | R | [bool] | Пройдена проверка по базе паспортов УФМС |
approvedByScorista | R | [bool] | Одобрено скорингом Scorista |
denialReasonId | R | [int][20] | Идентификатор причины отказа |
addressData | R | [object] | Для физ. лиц этот объект является системно-обязательным, а для юр. лиц нет. Адрес проживания (для юр.лиц фактический адрес). При добавлении адреса в систему Brainysoft нужно использовать один из двух вариантов: Значения поля countryId берутся из справочника "Страны".
Например:
|
addressData.countryId | М | [int][20] | Идентификатор страны проживания (для юр.лиц фактическая страна). |
addressData.fiasId | М | [string][50] | Код ФИАС (уровня улицы). |
addressData.fullAddressText | М | [string][1024] | Строка адреса ФИАС. |
addressData.fiasChainText | О | [string][2048] | Цепочка адреса в формате JSON. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.houseNo | О | [string][15] | Номер дома. |
addressData.blockNo | О | [string][15] | Номер корпуса. |
addressData.buildingNo | О | [string][15] | Номер строения. |
addressData.apartmentNo | О | [string][25] | Номер квартиры. |
addressData.telephone | О | [string][50] | Стационарный номер телефона. |
addressData.postalCode | О | [string][25] | Почтовый индекс. |
addressData.regDate | О | [date] | Дата регистрации (YYYY-MM-DD). |
addressData.housingType | О | [string][100] | Тип жилья |
addressData.metroStation | О | [string][100] | Ближайшая станция метро. |
addressData.regionName | О | [string][50] | Название региона |
addressData.localityName | О | [string][75] | Название города. |
addressData.streetName | О | [string][75] | Название улицы. |
addressData.oldAddressText | О | [string][1024] | Строка адреса введенная вручную (не актуальный адрес как в паспорте) |
addressData.fiasChain | О | [object] | Цепочка адреса ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.id | О | [string] | Id ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.level | О | [int] | Уровень. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.name | О | [string] | Название. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.type | О | [string] | Тип. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.settlement | О | [bool] | Населённый. Поле не используется. Осталось в in-модели для обратной совместимости. |
addressData.fiasChain.parents | О | [collection] | Родительские элементы. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData | R | [object] | Адрес прописки (для юр.лиц Юридический адрес). При добавлении адреса в систему Brainysoft можно использовать один из двух вариантов:
Вариант 1 является предпочтительным. Для правильного отображения в интерфейсе нужно использовать этот способ. Например: "registrationAddressData": { |
registrationAddressData.id | О | [int][20] | Идентификатор адреса проживания. |
registrationAddressData.countryId | М | [int][20] | Идентификатор страны проживания. |
registrationAddressData.fiasId | М | [string][50] | Код ФИАС (уровня улицы). |
registrationAddressData.fullAddressText | М | [string][1024] | Строка адреса ФИАС. |
registrationAddressData.fiasChainText | О | [string][2048] | Цепочка адреса в формате JSON. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.houseNo | О | [string][15] | Номер дома. |
registrationAddressData.blockNo | О | [string][15] | Номер корпуса. |
registrationAddressData.buildingNo | О | [string][15] | Номер строения. |
registrationAddressData.apartmentNo | О | [string][25] | Номер квартиры. |
registrationAddressData.telephone | О | [string][50] | Стационарный номер телефона. |
registrationAddressData.postalCode | О | [string][25] | Почтовый индекс. |
registrationAddressData.regDate | О | [date] | Дата регистрации (YYYY-MM-DD). |
registrationAddressData.housingType | О | [string][100] | Тип жилья |
registrationAddressData.metroStation | О | [string][100] | Ближайшая станция метро. |
registrationAddressData.regionName | О | [string][50] | Название региона |
registrationAddressData.localityName | О | [string][75] | Название города. |
registrationAddressData.streetName | О | [string][75] | Название улицы. |
registrationAddressData.oldAddressText | О | [string][1024] | Строка адреса введенная вручную (не актуальный адрес как в паспорте) |
registrationAddressData.fiasChain | О | [object] | Цепочка адреса ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.id | О | [string] | Id ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.level | О | [int] | Уровень. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.name | О | [string] | Название. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.type | О | [string] | Тип. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.settlement | О | [bool] | Населённый. Поле не используется. Осталось в in-модели для обратной совместимости. |
registrationAddressData.fiasChain.parents | О | [collection] | Родительские элементы. Поле не используется. Осталось в in-модели для обратной совместимости.Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses | R | [collection] | Коллекция привязанных дополнительных адресов. При добавлении адреса в систему Brainysoft можно использовать один из двух вариантов:
Вариант 1 является предпочтительным. Для правильного отображения в интерфейсе нужно использовать этот способ. Например:
|
addresses._.id | О | [int][20] | Идентификатор адреса. |
addresses._.countryId | М | [int][20] | Идентификатор страны. |
addresses._.fiasId | М | [string][50] | Код ФИАС (уровня улицы). |
addresses._.fullAddressText | М | [string][1024] | Строка адреса ФИАС. |
addresses._.fiasChainText | О | [string][2048] | Цепочка адреса в формате JSON. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.houseNo | О | [string][15] | Номер дома. |
addresses._.blockNo | О | [string][15] | Номер корпуса. |
addresses._.buildingNo | О | [string][15] | Номер строения. |
addresses._.apartmentNo | О | [string][25] | Номер квартиры. |
addresses._.telephone | О | [string][50] | Стационарный номер телефона. |
addresses._.postalCode | О | [string][25] | Почтовый индекс. |
addresses._.regDate | О | [date] | Дата регистрации (YYYY-MM-DD). |
addresses._.housingType | О | [string][100] | Тип жилья |
addresses._.metroStation | О | [string][100] | Ближайшая станция метро. |
addresses._.regionName | О | [string][50] | Название региона |
addresses._.localityName | О | [string][75] | Название города. |
addresses._.streetName | О | [string][300] | Название улицы. |
addresses._.oldAddressText | О | [string][1024] | Строка адреса введенная вручную (не актуальный адрес как в паспорте) |
addresses._.purposeId | М | [int][20] | Назначение адреса (регистрации, места работы итп.) |
addresses._.fiasChain | О | [object] | Цепочка адреса ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.id | О | [string] | Id ФИАС. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.level | О | [int] | Уровень. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.name | О | [string] | Название. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.type | О | [string] | Тип. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.settlement | О | [bool] | Населённый. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.fiasChain._.parents | О | [collection] | Родительские элементы. Поле не используется. Осталось в in-модели для обратной совместимости. |
addresses._.position | М | [int] | Индекс положения адреса в коллекции дополнительных адресов |
storeCode | R | [string] | Код магазина |
orderCode | R | [string] | Код заказа |
ipAddress | R | [string] | IP адрес |
macAddress | R | [string] | MAC адрес |
deviceTypeId | R | [int] | Id Типа устройства |
referralLink | R | [string] | Реферальная ссылка [maxLength:255] |
Ответ
{
"status": "ok",
"timestamp": 1462953481103,
"data": 362
}