Инициализация нового контракта
GET   /bs-core/main/contracts/init/loan-app-id/{loanApplicationId}
Существует следующий процесс создания контракта по указанной заявке:
1. Сначала создается заявка. Описание создания заявки Вы можете найти здесь. Следует принять во внимание, что при создании заявки в канале поступления нужно убрать галочку "Автоматическое создание контракта" (Админ-->Электронная коммерция-->Каналы-->Название Канала).
--> 2. Затем происходит инициализация контракта по заявке на займ. При передаче параметра generateName со значением false номер контракта не будет сгенерирован. Этот параметр не обязателен и по умолчанию установлено значение true, при котором генерируется следующий номер контракта. Для автоматиского создания контрактов, во избежание ошибки CONTRACT_SERIAL_NUMBER_IS_NOT_UNIQUE, желательно указывать generateName=falsе. Это поле заполнится автоматически при последующем вызове метода сохранения контракта (смотрите следующий шаг).
3. В последнем шаге происходит создание нового контракта.
Запрос
GET /bs-core/main/contracts/init/loan-app-id/10113505
или
GET /bs-core/main/contracts/init/loan-app-id/10113505?generateName=false HTTP/1.1
Нет описанных параметров
Ответ
{
"status": "ok",
"timestamp": 1548256174894,
"data": {
"id": null,
"name": "002086",
"creationDate": "2019-01-23",
"donorId": 101091,
"branchId": 101306,
"subdivisionId": 101791,
"clientId": 101322927,
"currencyId": 101011,
"loanAmount": 9988,
"loanCategoryId": null,
"loanApplicationId": 101133126,
"loanStage": 1,
"issuePlanDate": "2019-01-23",
"firstRepaymentDate": "2019-02-22",
"repaymentPlanDate": "2019-05-23",
"comment": "",
"creditOfficerId": 1010824,
"documentsReceived": false,
"forIssue": false,
"underCourt": false,
"underCourtDate": null,
"institutionDate": null,
"determinationDate": null,
"underCourtAmount": 0,
"captive": false,
"contractAgentId": null,
"ofertaCode": "",
"insurancePolicy": "",
"loadingDate": null,
"prevProlongationsQty": null,
"definedIntForepaymentAmount": 0,
"msfoReserveRate": 0,
"barcode": null,
"merchantCommissionRate": 0,
"creditProductId": 10133178,
"creditProductName": "21% капитал",
"creditFieldReq": {
"id": null,
"dateCalcMethodId": 101232,
"allowHolidaysPayment": true,
"shortTermControl": false,
"shiftFirstRepaymentDate": false,
"interestChargeMethodId": 101863,
"interestCalcMethodId": 101223,
"repaymentNorm": 0,
"calcIntOnIssueDate": false,
"calcInterestOnDelinqBalance": true,
"calcArrearInterest": false,
"arrearInterestFirstDay": 0,
"arrearInterestLastDay": 0,
"principalDistribMethodId": 101351,
"forepaymentConsiderationMethodId": 101591,
"creditLineId": null,
"trancheDuration": 30,
"interestForTranche": 1.93,
"delinquencyIntRate": 0,
"delinqIntRateDelay": 0,
"useDelinqIntRateTillNextTranche": true,
"keepUsingDelinqIntRate": false,
"interestRateTypeId": 101123,
"chargeExtraInterest": true,
"interestLgotPeriod": 0,
"interestLgotRate": 0,
"interestGracePeriod": 0,
"trancheCount": 4,
"repaymentSequenceId": 101204,
"mandatoryChargePeriod": 30,
"allowPrepayment": true,
"prolongationPeriod": 20,
"earlyProlongationFromCurrentDate": true,
"prolongationOnNewSchedule": false,
"prolongedIntToLastTranche": true,
"penaltyTypeId": 101272,
"calendarDaysPenalty": true,
"firstWeekendWithoutPenalty": false,
"stopPenaltyOnClose": false,
"qtyDaysStopPenaltyOnClose": 0,
"fixedDelayPenalty": 1000,
"delayPenaltyDay": 10,
"inviteAmountPct": 0,
"inviteDiscountPerFriend": 0,
"inviteMinIntRate": 0,
"scheduleRecalcEnabled": false,
"fullScheduleDatesRecalc": false,
"useDelinqIntRateForPsk": false,
"discountingEnabled": true,
"useEirForDiscounting": false,
"fees": [],
"principalParts": [
{
"id": null,
"trancheNo": 1,
"part": 25
},
{
"id": null,
"trancheNo": 2,
"part": 25
},
{
"id": null,
"trancheNo": 3,
"part": 25
},
{
"id": null,
"trancheNo": 4,
"part": 25
}
],
"penaltyRates": [
{
"id": null,
"periodBegin": 1,
"periodEnd": 50,
"principalRate": 4,
"interestRate": 0,
"feeRate": 0,
"keyRateCB": null,
"keyRateCBTypeId": null
}
],
"qtyTranchesFirstPeriod": 0,
"intRateFirstPeriod": 0,
"qtyTranchesSecondPeriod": 0,
"intRateSecondPeriod": 0,
"qtyTranchesRepNormSecondPeriod": 0,
"interestOnLoanAmount": false
},
"contractCollectorId": null,
"repaymentNorm": 0,
"additional": false,
"joinFee": 0,
"fixedJoinFee": 0,
"insuranceFee": 0,
"fixedInsuranceFee": 0,
"estimateFee": 0,
"fixedEstimateFee": 0,
"insurance": false,
"insurancePremiumRate": 0,
"insurancePremiumAmount": 0
}
}
Описание параметров
| Параметр | Обязателен | Тип данных | Описание |
| id | R | [int][20] | Идентификатор контракта (при создании нового контракта - его указывать не нужно) |
| name | R | [string][50] | Номер контракта |
| creationDate | R | [date] | Дата создания в формате YYYY-MM-DD |
| donorId | R | [int][20] | Источник финансирования |
| branchId | R | [int] | Идентификатор филиала |
| subdivisionId | R | [int] | Идентификатор подразделения |
| clientId | R | [int] | Идентификатор клиента |
| currencyId | R | [int] | Идентификатор валюты |
| loanAmount | R | [float] | Сумма займа |
| loanCategoryId | R | [int] | Идентификатор категории займа |
| loanApplicationId | R | [int] | Идентификатор заявки на займ |
| loanStage | R | [int] | Ступень займа. Механизм проставления loanStage следующий: |
| issuePlanDate | R | [date] | Дата плановой выдачи в формате YYYY-MM-DD |
| firstRepaymentDate | R | [date] | Дата первого погашения в формате YYYY-MM-DD |
| repaymentPlanDate | R | [date] | Дата планового погашения в формате YYYY-MM-DD |
| comment | R | [string][50] | Комментарий |
| creditOfficerId | R | [int] | Идентификатор специалиста по займам |
| documentReceived | R | [bool] | Оригиналы документов получены |
| forIssue | R | [bool] | Флаг "К выдаче" |
| underCourt | R | [bool] | Флаг Судебник |
| underCourtDate | R | [date] | Дата обращения в суд |
| institutionDate | R | [date] | Дата поставления о возбуждении |
| determitionDate | R | [date] | Дата поставления об удержании |
| underCourtAmount | R | [float] | Исковая сумма задолженности |
| captive | R | [bool] | Каптивный |
| contractAgentId | R | [int] | Идентификатор агента |
| ofertaCode | R | [string][25] | Код оферты |
| insurancePolicy | R | [string][50] | Страховой полис |
| loadingDate | R | [date] | Дата загрузки (если контракт был перенесён из сторонней системы ведения учета). Дата загрузки в данное поле автоматически записывается дата миграции контракта. При этом поле Дата загрузки = дате на которую грузим остатки. Все расчеты по контракту будут начинаться с этой даты. Если контракт был создан в BS (не мигрирован), то в поле будет значение NULL. |
| prevProlongationsQty | R | [int][11] | |
| definedIntForepaymentAmount | R | [float] | Заданная сумма для распределения предоплаты по процентам |
| msfoReserveRate | R | [float] | |
| creditProductId | R | [int] | Идентификатор кредитного продукта |
| creditProductName | R | [string][250] | Наименование кредитного продукта |
| creditFieldReq | R | [object] | Условия кредита |
| creditFieldReq.id | R | [int] | Идентификатор кредитного продукта |
| creditFieldReq.dateCalcMethodId | R | [int] | Метод расчета дат |
| creditFieldReq.allowHolidaysPayment | R | [bool] | Не переносить с праздников и выходных |
| creditFieldReq.shortTermControl | R | [bool] | Контроль краткосрочности займа |
| creditFieldReq.interestChargeMethodId | R | [int] | Метод начисления процентов |
| creditFieldReq.interestCalcMethodId | О | [int][20] | |
| creditFieldReq.repaymentNorm | R | [float] | Норма погашения |
| creditFieldReq.calcIntOnIssueDate | R | [bool] | Начислять проценты в день выдачи контракта (в этом случае проценты начисляются и на первый и на последний день транша) |
| creditFieldReq.calcInterestOnDelinqBalance | R | [bool] | Начислять процента на просроченную ОС |
| creditFieldReq.calcArrearInterest | R | [bool] | Начислять доп. проценты на просроченную ОС (отдельным видом суммы) |
| creditFieldReq.arrearInterestFirstDay | R | [int] | первый день начисления доп.процентов на просроченную ОС |
| creditFieldReq.arrearInterestLastDay | R | [int] | последний день начисления доп.процентов на просроченную ОС |
| creditFieldReq.principalDistribMethodId | О | [int][20] | |
| creditFieldReq.forepaymentConsiderationMethodId | R | [int] | Метод зачета предоплаты |
| creditFieldReq.creditLineId | R | [int] | Тип кредитной линии |
| creditFieldReq.trancheDuration | R | [int] | Длительность периода между погашениями |
| creditFieldReq.interestForTranche | R | [float] | Процентная ставка |
| creditFieldReq.delinquencyIntRate | R | [float] | Процентная ставка при просрочке |
| creditFieldReq.delinqIntRateDelay | R | [int][11] | Кол-во дней до перехода на ставку при просрочке. Если в поле delinqIntRateDelay значение 0 - то процентная ставка при просрочке используется с первого дня начисления процентов на транш (если по предыдущим траншам есть просрочка), иначе - обычная процентная ставка будет продолжать действовать с начала транша указанное кол-во дней. |
| creditFieldReq.useDelinqIntRateTillNextTranche | R | [bool] | Возвращение к регулярной процентной ставке со следующего транша после погашения просрочки. Если поле useDelinqIntRateTillNextTranche = ДА (true), то возврат к обычной ставке после погашения просрочки будет с начала следующего транша, если НЕТ (false) - со следующего дня после погашения просрочки. |
| creditFieldReq.keepUsingDelinqIntRate | R | [bool] | Продолжать применять ставку при просрочке после выхода из просрочки. В случае, если это поле проставлено, то ставка при просрочке будет использоваться для расчета процентов после возникновения первой просрочки и до конца контракта. Важно, что наличие предыдущих просрочек определяется по наличию соответствующих статусов контракта (Просроченный, Реструктурированный просроченный). |
| creditFieldReq.interestRateTypeId | R | [int] | Тип процентной ставки |
| creditFieldReq.chargeExtraInterest | R | [bool] | Начислять проценты по окончанию срока кредита |
| creditFieldReq.interestFreePeriod | R | [int] | Беспроцентный период в днях |
| creditFieldReq.interestGracePeriod | R | [int] | Беспроцентный льготный период (в днях) |
| creditFieldReq.trancheCount | R | [int] | Количество траншей |
| creditFieldReq.repaymentSequenceId | R | [int] | Порядок погашения |
| creditFieldReq.verticalSequenceForDelinqOnly | R | [bool] | Погашать вертикально только просроченные транши |
| creditFieldReq.mandatoryChargePeriod | R | [int] | Период обязательного начисления процентов |
| creditFieldReq.allowPrepayment | R | [bool] | Возможно погашение до срока при автоакцепте |
| creditFieldReq.ProlongationPeriod | R | [int] | Срок пролонгации |
| creditFieldReq.earlyProlongationFromCurrentDate | R | [bool] | Досрочная пролонгация с текущей даты (иначе пролонгация с даты окончания текущего транша) |
| creditFieldReq.prolongationOnNewSchedule | R | [bool] | Создавать новый график при пролонгации (иначе добавляются новые транши к существующему). Возможность добавлена как опция (для обратной совместимости). |
| creditFieldReq.prolongedIntToLastTranche | R | [bool] | Переносить проценты по пролонгированным контрактам на последний транш. Для того чтобы проценты не переносились как отсроченные после пролонгации - в контракте в этом поле должно быть значение false. |
| creditFieldReq.penaltyTypeId | R | [int] | Вид начисления штрафов |
| creditFieldReq.calendarDaysPenalty | R | [bool] | Штраф по календарным дням |
| creditFieldReq.firstWeekendWithoutPenalty | R | [bool] | Первые выходные штрафы не начислять. При установке в кредитном продукте "Первые выходные штрафы не начислять" - "true" штрафы будут начисляться в первый рабочий день после выходных или праздников, если в этот день не будет произведено уплаты. По умолчанию значение этого параметра равно "false". Например: Дата планового погашения 4 января 2018. При ежедневной обработке штрафы не должны начисляться до 9-го января 2018 (9 января первый рабочий день). Если 9 января не было произведено погашения, то при ежедневной обработке начиная с 9 января будут начисляться штрафы. А с 4 января по 9 января котракт будет иметь статус "просрочен". |
| creditFieldReq.stopPenaltyOnClose | R | [bool] | Останавливать штрафы после окончания графика |
| creditFieldReq.qtyDaysStopPenaltyOnClose | R | [int] | Кол-во дней после окончания графика до остановки штрафов |
| creditFieldReq.fixedDelayPenalty | R | [float] | Штраф за опоздание (Фиксированная сумма) |
| creditFieldReq.delayPenaltyDay | R | [int] | День просрочки для начисления штрафа за опоздание |
| creditFieldReq.inviteAmountPct | R | [float] | Процент от суммы выдачи (по которому определяем считать ли другом) |
| creditFieldReq.inviteDiscountPerFriend | R | [float] | Снижение процентной ставки за каждого друга |
| creditFieldReq.inviteMinIntRate | R | [float] | Минимальная процентная ставка |
| creditFieldReq.scheduleRecalcEnabled | R | [bool] | Перерасчет графика в дату планового платежа |
| creditFieldReq.fullScheduleDatesRecalc | R | [bool] | Полное смещение графика от фактической даты выдачи |
| creditFieldReq.useDelinqIntRateForPsk | R | [bool] | Использовать процентную ставку при просрочке для расчета ПСК. Если по контракту в этом поле проставлено ДА, а также процентная ставка при просрочке не нулевая, то при расчете ПСК по контракту создаётся график с учетом процентной ставки при просрочке и ПСК рассчитывается от этого графика. |
| creditFieldReq.discountingEnabled | R | [bool] | Дисконтирование активировано |
| creditFieldReq.fees | R | [collection] | Сборы |
| creditFieldReq.fees._.id | R | [int] | Идентификатор |
| creditFieldReq.fees._.amountTypeId | О | [int][20] | |
| creditFieldReq.fees._.chargeMomentId | R | [int] | Момент начисления |
| creditFieldReq.fees._.valueTypeId | R | [int] | Вид сбора |
| creditFieldReq.fees._.chargeBaseId | R | [int] | База начисления |
| creditFieldReq.fees._.value | R | [float] | Значение |
| creditFieldReq.fees._.compositeValue | R | [string][100] | Составная ставка |
| creditFieldReq.fees._.chargePenalty | R | [bool] | Штраф за просрочку |
| creditFieldReq.fees._.notForCharge | R | [bool] | Не начислять |
| creditFieldReq.fees._.notForRepayment | R | [bool] | Не погашать |
| creditFieldReq.fees._.involvedInFullCostCalc | R | [bool] | Участвует в расчете ПСК |
| creditFieldReq.principalParts | R | [collection] | Части основной суммы |
| creditFieldReq.principalParts._.id | R | [int] | Идентификатор транша |
| creditFieldReq.principalParts._.trancheNo | R | [int] | Порядковый номер транша |
| creditFieldReq.principalParts._.part | R | [float] | Доля основной суммы в процентах |
| creditFieldReq.penaltyRates | R | [collection] | Ставки штрафа |
| creditFieldReq.penaltyRates._.id | R | [int] | Идентификатор ставки |
| creditFieldReq.penaltyRates._.periodBegin | R | [int] | Начало периода начисления штрафов |
| creditFieldReq.penaltyRates._.periodEnd | R | [int] | Конец периода начисления штрафов |
| creditFieldReq.penaltyRates._.principalRate | R | [float] | Ставка на ОС |
| creditFieldReq.penaltyRates._.interestRate | R | [float] | Ставка на проценты |
| creditFieldReq.penaltyRates._.feeRate | R | [float] | Ставка на сбор |
| creditFieldReq.qtyTranchesFirstPeriod | R | [int] | Кол-во траншей в 1-м периоде |
| creditFieldReq.intRateFirstPeriod | R | [float] | Процентная ставка в 1-м периоде |
| creditFieldReq.qtyTranchesSecondPeriod | R | [int] | Кол-во траншей в 2-м периоде |
| creditFieldReq.intRateSecondPeriod | R | [float] | Процентная ставка в 2-м периоде |
| creditFieldReq.interestOnLoanAmount | R | [bool] | Рассчитывать проценты от суммы в контракте |
| creditFieldReq.qtyTranchesRepNormSecondPeriod | О | [int][11] | Количество траншей для расчета нормы погашения второго периода. Это поле сейчас имеет смысл отображать только при выборе метода расчета процентов (параметр interestCalcMethodId) Остаточный с двумя ставками (101226). Если это поле больше нуля, то при расчете графика для второго периода рассчитывается норма погашения исходя из указанного кол-ва траншей, рассчитанная норма погашения сохраняется в контракте. |
| contractCollectorId | R | [int] | Идентификатор коллектора |
| repaymentNorm | R | [float] | Норма погашения |
| additional | R | [bool] | Дополнительный |
| joinFee | R | [float] | Вступительный взнос (Ставка) |
| fixedJoinFee | R | [float] | Фиксированный вступительный взнос (Сумма) |
| insuranceFee | R | [float] | Страховочный взнос (Ставка) |
| fixedInsuranceFee | R | [float] | Фиксированный страховочный взнос (Сумма) |
| estimateFee | R | [float] | Сметный взнос (Ставка) |
| fixedEstimateFee | R | [float] | Фиксированный сметный взнос (Сумма) |
| insurance | R | [bool] | Страхование |
| insurancePremiumRate | R | [float] | Ставка страховой премии |
| insurancePremiumAmount | R | [float] | Сумма страховой премии |