@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
const getLoanCmd = GetLoanById({ loanId: 1 });
const result = await getLoanCmd.execute(config);
console.log(result.accountNo); // "000000001"
console.log(result.status.value); // "Approved"// Fetch with specific associations
const getLoanCmd = GetLoanById({ loanId: 1, associations: "repaymentSchedule,transactions" });
const result = await getLoanCmd.execute(config);