@mbanq/core-sdk-js / commands / CalculateLoanSchedule
Function: CalculateLoanSchedule()
CalculateLoanSchedule(
data):Command<{data: {allowPartialPeriodInterestCalculation?:boolean;amortizationType?:number;clientId?:number;dateFormat:string;disbursementData?:object[];expectedDisbursementDate?:string;inArrearsTolerance?:number;interestCalculationPeriodType?:number;interestRatePerPeriod?:number;interestType?:number;isEqualAmortization?:boolean;loanTermFrequency?:number;loanTermFrequencyType?:number;loanType?:string;locale:string;numberOfRepayments:number;principal:number;productId:number;repaymentEvery?:number;repaymentFrequencyDayOfMonth?:number;repaymentFrequencyDayOfWeekType?:number;repaymentFrequencyNthDayType?:number;repaymentFrequencyType?:number;repaymentsStartingFromDate?:string;submittedOnDate?:string;transactionProcessingStrategyId?:number; }; }, {currency: {code:string;decimalPlaces:number;displayLabel?:string;displaySymbol:string;inMultiplesOf?:number;name:string;nameCode:string; };loanTermInDays:number;periods:object[];totalFeeChargesCharged:number;totalInterestCharged:number;totalOutstanding:number;totalPaidInAdvance:number;totalPaidLate:number;totalPenaltyChargesCharged:number;totalPrincipalDisbursed:number;totalPrincipalExpected:number;totalPrincipalPaid:number;totalRepayment:number;totalRepaymentExpected:number;totalWaived:number;totalWrittenOff:number; }>
Defined in: src/commands/rest/loan.ts:412
Calculates the loan repayment schedule based on provided loan parameters. This endpoint does not create, approve, or disburse the loan; it only calculates the schedule.
Parameters
data
allowPartialPeriodInterestCalculation?
boolean = ...
amortizationType?
number = ...
clientId?
number = ...
dateFormat
string = ...
disbursementData?
object[] = ...
expectedDisbursementDate?
string = ...
inArrearsTolerance?
number = ...
interestCalculationPeriodType?
number = ...
interestRatePerPeriod?
number = ...
interestType?
number = ...
isEqualAmortization?
boolean = ...
loanTermFrequency?
number = ...
loanTermFrequencyType?
number = ...
loanType?
string = ...
locale
string = ...
numberOfRepayments
number = ...
principal
number = ...
productId
number = ...
repaymentEvery?
number = ...
repaymentFrequencyDayOfMonth?
number = ...
repaymentFrequencyDayOfWeekType?
number = ...
repaymentFrequencyNthDayType?
number = ...
repaymentFrequencyType?
number = ...
repaymentsStartingFromDate?
string = ...
submittedOnDate?
string = ...
transactionProcessingStrategyId?
number = ...
Returns
Command<{ data: { allowPartialPeriodInterestCalculation?: boolean; amortizationType?: number; clientId?: number; dateFormat: string; disbursementData?: object[]; expectedDisbursementDate?: string; inArrearsTolerance?: number; interestCalculationPeriodType?: number; interestRatePerPeriod?: number; interestType?: number; isEqualAmortization?: boolean; loanTermFrequency?: number; loanTermFrequencyType?: number; loanType?: string; locale: string; numberOfRepayments: number; principal: number; productId: number; repaymentEvery?: number; repaymentFrequencyDayOfMonth?: number; repaymentFrequencyDayOfWeekType?: number; repaymentFrequencyNthDayType?: number; repaymentFrequencyType?: number; repaymentsStartingFromDate?: string; submittedOnDate?: string; transactionProcessingStrategyId?: number; }; }, { currency: { code: string; decimalPlaces: number; displayLabel?: string; displaySymbol: string; inMultiplesOf?: number; name: string; nameCode: string; }; loanTermInDays: number; periods: object[]; totalFeeChargesCharged: number; totalInterestCharged: number; totalOutstanding: number; totalPaidInAdvance: number; totalPaidLate: number; totalPenaltyChargesCharged: number; totalPrincipalDisbursed: number; totalPrincipalExpected: number; totalPrincipalPaid: number; totalRepayment: number; totalRepaymentExpected: number; totalWaived: number; totalWrittenOff: number; }>
A Command that when executed returns the calculated loan schedule with periods and totals
Example
const calculateScheduleCmd = CalculateLoanSchedule({
productId: 102,
principal: 1000,
numberOfRepayments: 36,
locale: "en",
dateFormat: "dd MMMM yyyy",
clientId: 12624,
loanTermFrequency: 1,
loanTermFrequencyType: 2,
repaymentEvery: 1,
repaymentFrequencyType: 2,
interestRatePerPeriod: 24,
amortizationType: 1,
interestType: 0,
interestCalculationPeriodType: 1,
transactionProcessingStrategyId: 1,
expectedDisbursementDate: "2024-07-31",
submittedOnDate: "2024-07-31"
});
const result = await calculateScheduleCmd.execute(config);
console.log(result.totalRepaymentExpected); // 15034.88
console.log(result.periods.length); // 2