31-07-2019 12:21

Метод создания клиента, заявки, контракта, а также ДДС с процессом Выдача по переданным агрегированным данным.

POST   /bs-core/main/loans/creation

Данный метод создаёт в BI объекты клиент, заявка, контракт, график и счёт клиента, который отражает выдачу денежных средств и добавляет новые записи в справочник.

В этом методе используется канал поступления LOAN_APPLICATION. Для корректной работы этого метода нужно, чтобы схема СПР для канала поступления LOAN_APPLICATION была сквозной. Например одно выражение, которое всегда выполнится (2 > 1). Это нужно для того, чтобы при сохранении заявки и автоматическом создании лида запускалась эта СПР, выполнялась успешно и проставляла статус заявки «К выдаче». После того как заявка принимает этот статус, может создаваться контракт. Сейчас в коде метод может ожидать какое-то времени пока заявка не примет этот статус. Но если по СПР выполняются шлюзовые проверки и/или ручные верификации, то соответственно автоматическое создание контракта становится невозможным в текущем виде и соответственно будет возвращаться ошибка что статус заявки не тот который должен быть (WRONG_LOAN_APP_STATUS_FOR_CONTRACT_CREATION_ERROR). Также в «Канале поступления» не должна стоять птичка «Автоматическое создание контракта», иначе будет возвращена ошибка «CHANNEL_SCHEMA_MUST_BE_WITHOUT_AUTO_CONTRACT_CREATION_ERROR».

Настройку СПР и канала поступления смотрите вот по этой ссылке https://connect.brainysoft.ru/documentation/article/270.

Описание бизнес правил для этого метода Вы найдте по ссылке https://connect.brainysoft.ru/documentation/article/265.

Описание возможных ошибок смотрите вот по этой ссылке https://connect.brainysoft.ru/documentation/article/266.

Запрос

1. POST /bs-core/main/loans/creation
{
       "borrower": {
                   "guid": "111112",
                   "lastName": "Краморов",
                   "firstName": "Савелий",
                   "mobilePhone": "79253334443",
                   "email": "fsdfsd@fd.com"            
       },
       "loan": {
                   "name": "224zz123",
                  "loanAmount": 50000,
                   "creditProductId": 101335,
                  "trancheDuration": null,
                  "tranchesQty": null,
                  "interestRate": null,
                  "delinquencyIntRate": null,
                  "barcode": 545454648794354687487,
                  "merchantCommissionRate": 1.5,
           "fees": [
                       {
                                   "amountTypeId": 101293,
                                   "chargeMomentId": 101032,
                                   "valueTypeId": 102522,
                                   "chargeBaseId": 102532,
                                   "value": 0.3,
                                   "chargePenalty": false,
                                   "notForCharge": false,
                                   "notForRepayment": false,
                                   "involvedInFullCostCalc": true
                       }
           ]
           
       },
       "schedule": {
                  "tranches": [
                       {
                                   "repaymentDate": "2018-07-19",
                                   "principal": 50000,
                                   "interest": 6500
                       }
           ]
       },
       "outlet": {
                  "id": null,
                  "name": "Магазин 'Спорттовары'",
                  "shopAgentNo": null,
                  "shopAddress": null
       },
       "contractor": {
                  "id": null,
                  "name": "СпортТайм",
                  "nip": null
       },
       "merchant": {
                  "id": null,
                  "name": "Продавец"
       },
       "consultant": {
                  "id": null,
                  "name": "Консультант Выхин"
       }
}

2. POST /bs-core/main/loans/creation
{
"borrower": {
"guid": "7897117",
"lastName": "pol12",
"firstName": "pol12",
"mobilePhone": null,
"email": null
},
"loan": {
"name": "cont14",
"loanAmount": 16000,
"creditProductId": 101339,
"trancheDuration": null,
"tranchesQty": null,
"interestRate": null,
"delinquencyIntRate": null,
"barcode": 545454648794354687487,
"merchantCommissionRate": 0,
"fees": [
{
"amountTypeId": 101293,
"chargeMomentId": 101032,
"valueTypeId": 102522,
"chargeBaseId": 102532,
"value": 0.3,
"chargePenalty": false,
"notForCharge": false,
"notForRepayment": false,
"involvedInFullCostCalc": true
}
]

},
"intFreeSchedule": {

"tranches": [
	{
	"repaymentDate": "2019-08-26",
	"principal": 16000,
	"interest": 0
	}
]
},
		"schedule": 
					{
			"tranches": [
				{
					"repaymentDate": "2019-08-26",
					"principal": 4000,
					"interest": 0
				},
				{
					"repaymentDate": "2019-09-26",
					"principal": 4000,
					"interest": 0
				},
				{
					"repaymentDate": "2019-10-26",
					"principal": 4000,
					"interest": 0
				},
				{
					"repaymentDate": "2019-11-26",
					"principal": 4000,
					"interest": 0
				}
				
						]
					},
					
"outlet": {
"id": 10,
"name": "ГлавСпорт",
"shopAgentNo": null,
"shopAddress": null
},
"contractor": {
"id": 23,
"name": "Новьёё",
"nip": null
},
"merchant": {
"id": 10,
"name": "ГлавПродавец ноль"
},
"consultant": {
"id": 19,
"name": "Консультант Выхин 666"
}
}
Описание параметров
Параметр Обязателен Тип данных Описание
borrower R [object]

Заёмщик

borrower.guid М [string]

GUID клиента (заёмщика)

borrower.lastName М [string][50]

Фамилия клиента (заёмщика)

borrower.firstName М [string][50]

Имя клиента (заёмщика)

borrower.mobilePhone М [string][50]

Номер мобильного телефона

borrower.email М [string][100]

Адрес электронной почты

loan R [object]

Займ (контракт)

loan.name М [string][50]

GUID займа (контракта)

loan.loanAmount М [float]

Сумма займа

loan.creditProductId М [int][20]

Идентификатор кредитного продукта

loan.trancheDuration О [int][11]

Количество дней между погашениями. В случае если для полей объекта loan не указано поле trancheDuration (либо в нём передано значение null) - то это поле заполняется значением из кредитного продукта.

loan.tranchesQty О [int][11]

Количество траншей. В случае если для полей объекта loan не указано поле tranchesQty (либо в нём передано значение null) - то это поле заполняется значением из кредитного продукта.

loan.interestRate О [float]

Процентная ставка. В случае если для полей объекта loan не указано поле interestRate (либо в нём передано значение null) - то это поле заполняется значением из кредитного продукта.

loan.delinquencyIntRate О [float]

Процентная ставка при просрочке. В случае если для полей объекта loan не указано поле delinquencyIntRate (либо в нём передано значение null) - то это поле заполняется значением из кредитного продукта.

loan.barcode М [string][50]

Баркод (штрих код)

loan.merchantCommissionRate М [float]

Комиссия продавца

loan.fees О [collection]

Дополнительное обслуживание. Если в качестве этой коллекции передано null, то все сборы возьмутся из кред.продукта (если они там есть).

loan.fees._.amountTypeId R [int][20]

Идентификатор вида суммы. Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным. 

loan.fees._.chargeMomentId R [int][20]

Идентификатор момента начисления сбора. Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным. 

loan.fees._.valueTypeId R [int][20]

Идентификатор вида сбора:

  • 102521 - Сумма
  • 102522 - Ставка
  • 102523 - Составная ставка

Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным. 

loan.fees._.chargeBaseId R [int][20]

База начисления:

102531 - Выданная сумма
102532 - Активная сумма
102533 - Сумма из контракта

Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным. 

loan.fees._.value R [float]

Значение

loan.fees._.chargePenalty О [bool]

Штраф за просрочку. Это поле не обязательно. Его значение по умолчанию равно false.

loan.fees._.notForCharge О [bool]

Не начислять. Это поле не обязательно. Его значение по умолчанию равно false.

loan.fees._.notForRepayment О [bool]

Не погашать. Это поле не обязательно. Его значение по умолчанию равно false.

loan.fees._.involvedInFullCostCalc О [bool]

Участвует в расчёте ПСК. Это поле не обязательно. Его значение по умолчанию равно true.

schedule R [object]

Плановый график

schedule.tranches М [collection]

Траншы

schedule.tranches._.repaymentDate R [string]

Дата погашения периода в формате YYYY-MM-DD 

schedule.tranches._.principal R [float]

Основная сумма

schedule.tranches._.interest R [float]

Проценты

outlet R [object]

Справочник "Магазины" (Outlet)

outlet.id О [int][20]

Идентификатор магазина. В случае если не указан id - создаются новые элементы справочника с указанным в параметре "name" наименованием.

outlet.name М [string][250]

Название магазина

outlet.shopAgentNo О [string][100]

Shop agent number (Номер торгового агента)

outlet.shopAddress О [string][1024]

Адрес магазина

contractor R [object]

Cправочник "Подрядчики" (Contractor)

contractor.id О [int][20]

Идентификатор подрядчика. В случае если не указан id - создаются новые элементы справочника с указанным в параметре "name" наименованием.

contractor.name М [string][250]

Полное наименование организации подрядчика

contractor.nip О [string][100]

Идентификационный номер налогоплатильщика

merchant R [object]

Cправочника "Продавцы"

merchant.id О [int][20]

Идентификатор элемента справочника "Продавцы". В случае если не указан id - создаются новые элементы справочника с указанным в параметре "name" наименованием.

merchant.name М [string][250]

Продавец

consultant R [object]

Cправочник "Консультанты" (Consultant)

consultant.id О [int][20]

Идентификатор элемента справочника "Консультанты" (Consultant). В случае если не указан id - создаются новые элементы справочника с указанным в параметре "name" наименованием.

consultant.name М [string][250]

Полное имя консультанта

Ответ


                        {
    "status": "ok",
    "timestamp": 1531221984159,
    "data": 1
}
                    
Описание параметров
Параметр Обязателен Тип данных Описание
data О [int][20]

Идентификатор созданного контракта