@crediblex.io/fineract-api-client
Version:
TypeScript client for Fineract APIs
195 lines • 5.91 kB
TypeScript
/**
* Interface for the loan repayment schedule calculation request payload.
* Used with the getRepaymentSchedule method in FineractLoansAccountsApi.
*/
export interface CalculateLoanRepaymentScheduleRequest {
productId: number;
loanOfficerId?: string;
loanPurposeId?: string;
fundId?: string;
submittedOnDate: string;
expectedDisbursementDate: string;
externalId?: string;
linkAccountId?: string;
createStandingInstructionAtDisbursement?: boolean;
loanTermFrequency: number;
loanTermFrequencyType: number;
numberOfRepayments: number;
repaymentEvery: number;
repaymentFrequencyType: number;
repaymentFrequencyNthDayType?: string;
repaymentFrequencyDayOfWeekType?: string;
repaymentsStartingFromDate?: string | null;
interestChargedFromDate?: string | null;
interestType: number;
isEqualAmortization?: boolean;
amortizationType: number;
interestCalculationPeriodType: number;
loanIdToClose?: string;
isTopup?: string;
transactionProcessingStrategyCode: string;
interestRateFrequencyType?: number;
interestRatePerPeriod: number;
charges?: any[];
collateral?: any[];
dateFormat: string;
locale: string;
clientId: number;
loanType: string;
principal?: number;
allowPartialPeriodInterestCalcualtion?: boolean;
}
/**
* Interface for the loan repayment schedule calculation response.
* Returned by the getRepaymentSchedule method in FineractLoansAccountsApi.
*/
export interface CalculateLoanRepaymentScheduleResponse {
currency: {
code: string;
name: string;
decimalPlaces: number;
inMultiplesOf: number;
displaySymbol: string;
nameCode: string;
displayLabel: string;
};
loanTermInDays: number;
totalPrincipalDisbursed: number;
totalPrincipalExpected: number;
totalPrincipalPaid: number;
totalInterestCharged: number;
totalFeeChargesCharged: number;
totalPenaltyChargesCharged: number;
totalRepaymentExpected: number;
totalOutstanding: number;
totalCredits: number;
periods: LoanRepaymentPeriod[];
}
/**
* Interface for individual loan repayment periods in the schedule.
*/
export interface LoanRepaymentPeriod {
period?: number;
fromDate?: [number, number, number];
dueDate: [number, number, number];
daysInPeriod?: number;
principalOriginalDue?: number;
principalDue?: number;
principalOutstanding?: number;
principalDisbursed?: number;
principalLoanBalanceOutstanding: number;
interestOriginalDue?: number;
interestDue?: number;
interestOutstanding?: number;
feeChargesDue: number;
feeChargesOutstanding: number;
penaltyChargesDue?: number;
penaltyChargesOutstanding?: number;
totalOriginalDueForPeriod: number;
totalDueForPeriod: number;
totalOutstandingForPeriod: number;
totalOverdue?: number;
totalActualCostOfLoanForPeriod: number;
totalInstallmentAmountForPeriod?: number;
downPaymentPeriod: boolean;
}
/**
* Interface for creating a new loan account in Fineract.
*/
export interface CreateLoanAccountRequest {
productId: number;
loanOfficerId?: string;
loanPurposeId?: string;
fundId?: string;
submittedOnDate: string;
expectedDisbursementDate: string;
externalId?: string;
linkAccountId?: string;
createStandingInstructionAtDisbursement?: boolean;
loanTermFrequency: number;
loanTermFrequencyType: number;
numberOfRepayments: number;
repaymentEvery: number;
repaymentFrequencyType: number;
repaymentFrequencyNthDayType?: string;
repaymentFrequencyDayOfWeekType?: string;
repaymentsStartingFromDate?: string | null;
interestChargedFromDate?: string | null;
interestType: number;
isEqualAmortization?: boolean;
amortizationType: number;
interestCalculationPeriodType: number;
loanIdToClose?: string;
isTopup?: string;
transactionProcessingStrategyCode: string;
interestRateFrequencyType?: number;
interestRatePerPeriod: number;
charges?: any[];
collateral?: any[];
dateFormat: string;
locale: string;
clientId: number;
loanType: string;
principal: number | string;
allowPartialPeriodInterestCalcualtion?: boolean;
datatables?: {
registeredTableName: string;
data: {
locale: string;
remitter_name: string;
dp_name: string;
};
}[];
}
/**
* Interface for the response when creating a new loan account in Fineract.
*/
export interface CreateLoanAccountResponse {
officeId: number;
clientId: number;
loanId: number;
resourceId: number;
}
/**
* Interface for approving a loan account in Fineract.
*/
export interface ApproveLoanAccountRequest {
approvedOnDate: string;
expectedDisbursementDate: string;
approvedLoanAmount: number;
note?: string;
dateFormat: string;
locale: string;
}
/**
* Interface for the response when approving a loan account in Fineract.
*/
export interface ApproveLoanAccountResponse {
officeId: number;
clientId: number;
loanId: number;
resourceId: number;
changes: {
principal: number;
expectedDisbursementDate: [number, number, number];
dateFormat: string;
approvedOnDate: string;
netDisbursalAmount: number;
locale: string;
approvedLoanAmount: number;
status: {
id: number;
code: string;
value: string;
pendingApproval: boolean;
waitingForDisbursal: boolean;
active: boolean;
closedObligationsMet: boolean;
closedWrittenOff: boolean;
closedRescheduled: boolean;
closed: boolean;
overpaid: boolean;
};
};
}
//# sourceMappingURL=loansaccounts.d.ts.map