Создание нового лида
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
}