Skip to content

@mbanq/core-sdk-js v0.50.0


@mbanq/core-sdk-js / commands / GetLoanById

Function: GetLoanById()

GetLoanById(params): Command<{ params: { associations?: string; exclude?: string; loanId: number; }; }, objectOutputType<{ accountNo: ZodString; allowPartialPeriodInterestCalculation: ZodOptional<ZodBoolean>; amortizationType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; annualInterestRate: ZodNumber; approvedPrincipal: ZodNumber; canDefineInstallmentAmount: ZodOptional<ZodBoolean>; canDisburse: ZodOptional<ZodBoolean>; canUseForTopup: ZodOptional<ZodBoolean>; clientAccountNo: ZodOptional<ZodString>; clientId: ZodNumber; clientName: ZodString; clientOfficeId: ZodNumber; closureLoanId: ZodOptional<ZodNumber>; createStandingInstructionAtDisbursement: ZodOptional<ZodBoolean>; currency: ZodObject<{ code: ZodString; currencyCodeInDigit: ZodOptional<ZodNumber>; decimalPlaces: ZodNumber; displayLabel: ZodOptional<ZodString>; displaySymbol: ZodString; inMultiplesOf: ZodOptional<ZodNumber>; isBaseCurrency: ZodOptional<ZodBoolean>; name: ZodString; nameCode: ZodString; }, "strip", ZodTypeAny, { code: string; currencyCodeInDigit?: number; decimalPlaces: number; displayLabel?: string; displaySymbol: string; inMultiplesOf?: number; isBaseCurrency?: boolean; name: string; nameCode: string; }, { code: string; currencyCodeInDigit?: number; decimalPlaces: number; displayLabel?: string; displaySymbol: string; inMultiplesOf?: number; isBaseCurrency?: boolean; name: string; nameCode: string; }>; daysInMonthType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; daysInYearType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; feeChargesAtDisbursementCharged: ZodOptional<ZodNumber>; fundId: ZodOptional<ZodNumber>; fundName: ZodOptional<ZodString>; id: ZodNumber; ignoreUndisbusedTranches: ZodOptional<ZodBoolean>; inArrears: ZodOptional<ZodBoolean>; inArrearsTolerance: ZodOptional<ZodNumber>; interestCalculationPeriodType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; interestRateDifferential: ZodOptional<ZodNumber>; interestRateFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; interestRatePerPeriod: ZodNumber; interestType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; isEqualAmortization: ZodOptional<ZodBoolean>; isFloatingInterestRate: ZodOptional<ZodBoolean>; isGenerateRepaymentSchedule: ZodOptional<ZodBoolean>; isInterestRecalculationEnabled: ZodOptional<ZodBoolean>; isLoanProductLinkedToFloatingRate: ZodOptional<ZodBoolean>; isNPA: ZodOptional<ZodBoolean>; isRevolving: ZodOptional<ZodBoolean>; isTopup: ZodOptional<ZodBoolean>; isVariableInstallmentsAllowed: ZodOptional<ZodBoolean>; loanOfficerId: ZodOptional<ZodNumber>; loanOfficerName: ZodOptional<ZodString>; loanProductDescription: ZodOptional<ZodString>; loanProductId: ZodNumber; loanProductName: ZodString; loanType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; maximumGap: ZodOptional<ZodNumber>; minimumGap: ZodOptional<ZodNumber>; multiDisburseLoan: ZodOptional<ZodBoolean>; numberOfRepayments: ZodNumber; overdueCharges: ZodOptional<ZodArray<ZodAny, "many">>; paidInAdvance: ZodOptional<ZodObject<{ paidInAdvance: ZodNumber; }, "strip", ZodTypeAny, { paidInAdvance: number; }, { paidInAdvance: number; }>>; prepayLoanOnDeposits: ZodOptional<ZodBoolean>; principal: ZodNumber; principalOriginalAmount: ZodOptional<ZodNumber>; proposedPrincipal: ZodOptional<ZodNumber>; repayLoanOnOverdue: ZodOptional<ZodBoolean>; repayLoanOnOverdueOnDeposit: ZodOptional<ZodBoolean>; repaymentEvery: ZodNumber; repaymentFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; status: ZodObject<{ active: ZodOptional<ZodBoolean>; closed: ZodOptional<ZodBoolean>; closedObligationsMet: ZodOptional<ZodBoolean>; closedRescheduled: ZodOptional<ZodBoolean>; closedWrittenOff: ZodOptional<ZodBoolean>; code: ZodString; id: ZodNumber; overpaid: ZodOptional<ZodBoolean>; pendingApproval: ZodOptional<ZodBoolean>; value: ZodString; waitingForDisbursal: ZodOptional<ZodBoolean>; }, "strip", ZodTypeAny, { active?: boolean; closed?: boolean; closedObligationsMet?: boolean; closedRescheduled?: boolean; closedWrittenOff?: boolean; code: string; id: number; overpaid?: boolean; pendingApproval?: boolean; value: string; waitingForDisbursal?: boolean; }, { active?: boolean; closed?: boolean; closedObligationsMet?: boolean; closedRescheduled?: boolean; closedWrittenOff?: boolean; code: string; id: number; overpaid?: boolean; pendingApproval?: boolean; value: string; waitingForDisbursal?: boolean; }>; syncDisbursementWithMeeting: ZodOptional<ZodBoolean>; termFrequency: ZodNumber; termPeriodFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; timeline: ZodOptional<ZodObject<{ actualDisbursementDate: ZodOptional<ZodArray<ZodNumber, "many">>; approvedByFirstname: ZodOptional<ZodString>; approvedByLastname: ZodOptional<ZodString>; approvedByUsername: ZodOptional<ZodString>; approvedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; closedByFirstname: ZodOptional<ZodString>; closedByLastname: ZodOptional<ZodString>; closedByUsername: ZodOptional<ZodString>; closedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; disbursedByFirstname: ZodOptional<ZodString>; disbursedByLastname: ZodOptional<ZodString>; disbursedByUsername: ZodOptional<ZodString>; expectedDisbursementDate: ZodOptional<ZodArray<ZodNumber, "many">>; expectedMaturityDate: ZodOptional<ZodArray<ZodNumber, "many">>; submittedByFirstname: ZodOptional<ZodString>; submittedByLastname: ZodOptional<ZodString>; submittedByUsername: ZodOptional<ZodString>; submittedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; writtenOffByFirstname: ZodOptional<ZodString>; writtenOffByLastname: ZodOptional<ZodString>; writtenOffByUsername: ZodOptional<ZodString>; writtenOffOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; }, "strip", ZodTypeAny, { actualDisbursementDate?: number[]; approvedByFirstname?: string; approvedByLastname?: string; approvedByUsername?: string; approvedOnDate?: number[]; closedByFirstname?: string; closedByLastname?: string; closedByUsername?: string; closedOnDate?: number[]; disbursedByFirstname?: string; disbursedByLastname?: string; disbursedByUsername?: string; expectedDisbursementDate?: number[]; expectedMaturityDate?: number[]; submittedByFirstname?: string; submittedByLastname?: string; submittedByUsername?: string; submittedOnDate?: number[]; writtenOffByFirstname?: string; writtenOffByLastname?: string; writtenOffByUsername?: string; writtenOffOnDate?: number[]; }, { actualDisbursementDate?: number[]; approvedByFirstname?: string; approvedByLastname?: string; approvedByUsername?: string; approvedOnDate?: number[]; closedByFirstname?: string; closedByLastname?: string; closedByUsername?: string; closedOnDate?: number[]; disbursedByFirstname?: string; disbursedByLastname?: string; disbursedByUsername?: string; expectedDisbursementDate?: number[]; expectedMaturityDate?: number[]; submittedByFirstname?: string; submittedByLastname?: string; submittedByUsername?: string; submittedOnDate?: number[]; writtenOffByFirstname?: string; writtenOffByLastname?: string; writtenOffByUsername?: string; writtenOffOnDate?: number[]; }>>; totalOverpaid: ZodOptional<ZodNumber>; transactionProcessingStrategyId: ZodOptional<ZodNumber>; transactionProcessingStrategyName: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>

Defined in: src/commands/rest/loan.ts:203

Retrieves detailed information about a specific loan.

Parameters

params

The parameters object

associations?

string = ...

Optional: Associations to fetch (e.g., "all", "repaymentSchedule", "transactions")

exclude?

string = ...

Optional: Associations to exclude (e.g., "collateral,guarantors")

loanId

number = ...

The ID of the loan to retrieve

Returns

Command<{ params: { associations?: string; exclude?: string; loanId: number; }; }, objectOutputType<{ accountNo: ZodString; allowPartialPeriodInterestCalculation: ZodOptional<ZodBoolean>; amortizationType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; annualInterestRate: ZodNumber; approvedPrincipal: ZodNumber; canDefineInstallmentAmount: ZodOptional<ZodBoolean>; canDisburse: ZodOptional<ZodBoolean>; canUseForTopup: ZodOptional<ZodBoolean>; clientAccountNo: ZodOptional<ZodString>; clientId: ZodNumber; clientName: ZodString; clientOfficeId: ZodNumber; closureLoanId: ZodOptional<ZodNumber>; createStandingInstructionAtDisbursement: ZodOptional<ZodBoolean>; currency: ZodObject<{ code: ZodString; currencyCodeInDigit: ZodOptional<ZodNumber>; decimalPlaces: ZodNumber; displayLabel: ZodOptional<ZodString>; displaySymbol: ZodString; inMultiplesOf: ZodOptional<ZodNumber>; isBaseCurrency: ZodOptional<ZodBoolean>; name: ZodString; nameCode: ZodString; }, "strip", ZodTypeAny, { code: string; currencyCodeInDigit?: number; decimalPlaces: number; displayLabel?: string; displaySymbol: string; inMultiplesOf?: number; isBaseCurrency?: boolean; name: string; nameCode: string; }, { code: string; currencyCodeInDigit?: number; decimalPlaces: number; displayLabel?: string; displaySymbol: string; inMultiplesOf?: number; isBaseCurrency?: boolean; name: string; nameCode: string; }>; daysInMonthType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; daysInYearType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; feeChargesAtDisbursementCharged: ZodOptional<ZodNumber>; fundId: ZodOptional<ZodNumber>; fundName: ZodOptional<ZodString>; id: ZodNumber; ignoreUndisbusedTranches: ZodOptional<ZodBoolean>; inArrears: ZodOptional<ZodBoolean>; inArrearsTolerance: ZodOptional<ZodNumber>; interestCalculationPeriodType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; interestRateDifferential: ZodOptional<ZodNumber>; interestRateFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; interestRatePerPeriod: ZodNumber; interestType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; isEqualAmortization: ZodOptional<ZodBoolean>; isFloatingInterestRate: ZodOptional<ZodBoolean>; isGenerateRepaymentSchedule: ZodOptional<ZodBoolean>; isInterestRecalculationEnabled: ZodOptional<ZodBoolean>; isLoanProductLinkedToFloatingRate: ZodOptional<ZodBoolean>; isNPA: ZodOptional<ZodBoolean>; isRevolving: ZodOptional<ZodBoolean>; isTopup: ZodOptional<ZodBoolean>; isVariableInstallmentsAllowed: ZodOptional<ZodBoolean>; loanOfficerId: ZodOptional<ZodNumber>; loanOfficerName: ZodOptional<ZodString>; loanProductDescription: ZodOptional<ZodString>; loanProductId: ZodNumber; loanProductName: ZodString; loanType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; maximumGap: ZodOptional<ZodNumber>; minimumGap: ZodOptional<ZodNumber>; multiDisburseLoan: ZodOptional<ZodBoolean>; numberOfRepayments: ZodNumber; overdueCharges: ZodOptional<ZodArray<ZodAny, "many">>; paidInAdvance: ZodOptional<ZodObject<{ paidInAdvance: ZodNumber; }, "strip", ZodTypeAny, { paidInAdvance: number; }, { paidInAdvance: number; }>>; prepayLoanOnDeposits: ZodOptional<ZodBoolean>; principal: ZodNumber; principalOriginalAmount: ZodOptional<ZodNumber>; proposedPrincipal: ZodOptional<ZodNumber>; repayLoanOnOverdue: ZodOptional<ZodBoolean>; repayLoanOnOverdueOnDeposit: ZodOptional<ZodBoolean>; repaymentEvery: ZodNumber; repaymentFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; status: ZodObject<{ active: ZodOptional<ZodBoolean>; closed: ZodOptional<ZodBoolean>; closedObligationsMet: ZodOptional<ZodBoolean>; closedRescheduled: ZodOptional<ZodBoolean>; closedWrittenOff: ZodOptional<ZodBoolean>; code: ZodString; id: ZodNumber; overpaid: ZodOptional<ZodBoolean>; pendingApproval: ZodOptional<ZodBoolean>; value: ZodString; waitingForDisbursal: ZodOptional<ZodBoolean>; }, "strip", ZodTypeAny, { active?: boolean; closed?: boolean; closedObligationsMet?: boolean; closedRescheduled?: boolean; closedWrittenOff?: boolean; code: string; id: number; overpaid?: boolean; pendingApproval?: boolean; value: string; waitingForDisbursal?: boolean; }, { active?: boolean; closed?: boolean; closedObligationsMet?: boolean; closedRescheduled?: boolean; closedWrittenOff?: boolean; code: string; id: number; overpaid?: boolean; pendingApproval?: boolean; value: string; waitingForDisbursal?: boolean; }>; syncDisbursementWithMeeting: ZodOptional<ZodBoolean>; termFrequency: ZodNumber; termPeriodFrequencyType: ZodOptional<ZodObject<{ code: ZodString; id: ZodNumber; value: ZodString; }, "strip", ZodTypeAny, { code: string; id: number; value: string; }, { code: string; id: number; value: string; }>>; timeline: ZodOptional<ZodObject<{ actualDisbursementDate: ZodOptional<ZodArray<ZodNumber, "many">>; approvedByFirstname: ZodOptional<ZodString>; approvedByLastname: ZodOptional<ZodString>; approvedByUsername: ZodOptional<ZodString>; approvedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; closedByFirstname: ZodOptional<ZodString>; closedByLastname: ZodOptional<ZodString>; closedByUsername: ZodOptional<ZodString>; closedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; disbursedByFirstname: ZodOptional<ZodString>; disbursedByLastname: ZodOptional<ZodString>; disbursedByUsername: ZodOptional<ZodString>; expectedDisbursementDate: ZodOptional<ZodArray<ZodNumber, "many">>; expectedMaturityDate: ZodOptional<ZodArray<ZodNumber, "many">>; submittedByFirstname: ZodOptional<ZodString>; submittedByLastname: ZodOptional<ZodString>; submittedByUsername: ZodOptional<ZodString>; submittedOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; writtenOffByFirstname: ZodOptional<ZodString>; writtenOffByLastname: ZodOptional<ZodString>; writtenOffByUsername: ZodOptional<ZodString>; writtenOffOnDate: ZodOptional<ZodArray<ZodNumber, "many">>; }, "strip", ZodTypeAny, { actualDisbursementDate?: number[]; approvedByFirstname?: string; approvedByLastname?: string; approvedByUsername?: string; approvedOnDate?: number[]; closedByFirstname?: string; closedByLastname?: string; closedByUsername?: string; closedOnDate?: number[]; disbursedByFirstname?: string; disbursedByLastname?: string; disbursedByUsername?: string; expectedDisbursementDate?: number[]; expectedMaturityDate?: number[]; submittedByFirstname?: string; submittedByLastname?: string; submittedByUsername?: string; submittedOnDate?: number[]; writtenOffByFirstname?: string; writtenOffByLastname?: string; writtenOffByUsername?: string; writtenOffOnDate?: number[]; }, { actualDisbursementDate?: number[]; approvedByFirstname?: string; approvedByLastname?: string; approvedByUsername?: string; approvedOnDate?: number[]; closedByFirstname?: string; closedByLastname?: string; closedByUsername?: string; closedOnDate?: number[]; disbursedByFirstname?: string; disbursedByLastname?: string; disbursedByUsername?: string; expectedDisbursementDate?: number[]; expectedMaturityDate?: number[]; submittedByFirstname?: string; submittedByLastname?: string; submittedByUsername?: string; submittedOnDate?: number[]; writtenOffByFirstname?: string; writtenOffByLastname?: string; writtenOffByUsername?: string; writtenOffOnDate?: number[]; }>>; totalOverpaid: ZodOptional<ZodNumber>; transactionProcessingStrategyId: ZodOptional<ZodNumber>; transactionProcessingStrategyName: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>

A Command that when executed returns the detailed loan information

Examples

typescript
const getLoanCmd = GetLoanById({ loanId: 1 });
const result = await getLoanCmd.execute(config);
console.log(result.accountNo); // "000000001"
console.log(result.status.value); // "Approved"
typescript
// Fetch with specific associations
const getLoanCmd = GetLoanById({ loanId: 1, associations: "repaymentSchedule,transactions" });
const result = await getLoanCmd.execute(config);

Released under the MIT License.