Skip to content

@mbanq/core-sdk-js v0.50.0


@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

typescript
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

Released under the MIT License.