fineract_sdk
Version:
Wrapper around fineract api.
907 lines (771 loc) • 80.3 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* Apache Fineract
* Apache Fineract is a secure, multi-tenanted microfinance platform The goal of the Apache Fineract API is to empower developers to build apps on top of the Apache Fineract Platform<br>The [reference app](https://cui.fineract.dev) (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation - The API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) - Find out more about Apache Fineract [here](/fineract-provider/api-docs/apiLive.htm#top) - You can [Try The API From Your Browser](/fineract-provider/api-docs/apiLive.htm#interact) - The Generic Options are available [here](/fineract-provider/api-docs/apiLive.htm#genopts) - Find out more about [Updating Dates and Numbers](/fineract-provider/api-docs/apiLive.htm#dates_and_numbers) - For the Authentication and the Basic of HTTP and HTTPS refer [here](/fineract-provider/api-docs/apiLive.htm#authentication_overview) - Check about ERROR codes [here](/fineract-provider/api-docs/apiLive.htm#errors) Please refer to the [old documentation](/fineract-provider/api-docs/apiLive.htm) for any documentation queries
*
* The version of the OpenAPI document: 1.5.0-66-gffae7d4-dirty
* Contact: dev@fineract.apache.org
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
import { Configuration } from '../configuration';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
// @ts-ignore
import { DeleteLoansLoanIdResponse } from '../models';
// @ts-ignore
import { FormDataContentDisposition } from '../models';
// @ts-ignore
import { GetLoansLoanIdResponse } from '../models';
// @ts-ignore
import { GetLoansResponse } from '../models';
// @ts-ignore
import { GetLoansTemplateResponse } from '../models';
// @ts-ignore
import { PostLoansLoanIdRequest } from '../models';
// @ts-ignore
import { PostLoansLoanIdResponse } from '../models';
// @ts-ignore
import { PostLoansRequest } from '../models';
// @ts-ignore
import { PostLoansResponse } from '../models';
// @ts-ignore
import { PutLoansLoanIdRequest } from '../models';
// @ts-ignore
import { PutLoansLoanIdResponse } from '../models';
/**
* LoansApi - axios parameter creator
* @export
*/
export const LoansApiAxiosParamCreator = function (configuration?: Configuration) {
return {
/**
* It calculates the loan repayment Schedule Submits a new loan application Mandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType Optional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true) Additional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate Additional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate Additional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables
* @summary Calculate loan repayment schedule | Submit a new Loan Application
* @param {PostLoansRequest} postLoansRequest
* @param {string} [command] command
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
calculateLoanScheduleOrSubmitLoanApplication: async (postLoansRequest: PostLoansRequest, command?: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'postLoansRequest' is not null or undefined
assertParamExists('calculateLoanScheduleOrSubmitLoanApplication', 'postLoansRequest', postLoansRequest)
const localVarPath = `/loans`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (command !== undefined) {
localVarQueryParameter['command'] = command;
}
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(postLoansRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Note: Only loans in \"Submitted and awaiting approval\" status can be deleted.
* @summary Delete a Loan Application
* @param {number} loanId loanId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
deleteLoanApplication: async (loanId: number, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'loanId' is not null or undefined
assertParamExists('deleteLoanApplication', 'loanId', loanId)
const localVarPath = `/loans/{loanId}`
.replace(`{${"loanId"}}`, encodeURIComponent(String(loanId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {number} glimId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getGlimRepaymentTemplate: async (glimId: number, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'glimId' is not null or undefined
assertParamExists('getGlimRepaymentTemplate', 'glimId', glimId)
const localVarPath = `/loans/glimAccount/{glimId}`
.replace(`{${"glimId"}}`, encodeURIComponent(String(glimId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {number} [officeId]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getLoanRepaymentTemplate: async (officeId?: number, dateFormat?: string, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans/repayments/downloadtemplate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (officeId !== undefined) {
localVarQueryParameter['officeId'] = officeId;
}
if (dateFormat !== undefined) {
localVarQueryParameter['dateFormat'] = dateFormat;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {number} [officeId]
* @param {number} [staffId]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getLoansTemplate: async (officeId?: number, staffId?: number, dateFormat?: string, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans/downloadtemplate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (officeId !== undefined) {
localVarQueryParameter['officeId'] = officeId;
}
if (staffId !== undefined) {
localVarQueryParameter['staffId'] = staffId;
}
if (dateFormat !== undefined) {
localVarQueryParameter['dateFormat'] = dateFormat;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Approve GLIM Application: Mandatory Fields: approvedOnDate Optional Fields: approvedLoanAmount and expectedDisbursementDate Approves the GLIM application Undo GLIM Application Approval: Undoes the GLIM Application Approval Reject GLIM Application: Mandatory Fields: rejectedOnDate Allows you to reject the GLIM application Disburse Loan: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the Loan Disburse Loan To Savings Account: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the loan to Saving Account Undo Loan Disbursal: Undoes the Loan Disbursal
* @summary Approve GLIM Application | Undo GLIM Application Approval | Reject GLIM Application | Disburse Loan Disburse Loan To Savings Account | Undo Loan Disbursal
* @param {number} glimId
* @param {PostLoansLoanIdRequest} postLoansLoanIdRequest
* @param {string} [command]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
glimStateTransitions: async (glimId: number, postLoansLoanIdRequest: PostLoansLoanIdRequest, command?: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'glimId' is not null or undefined
assertParamExists('glimStateTransitions', 'glimId', glimId)
// verify required parameter 'postLoansLoanIdRequest' is not null or undefined
assertParamExists('glimStateTransitions', 'postLoansLoanIdRequest', postLoansLoanIdRequest)
const localVarPath = `/loans/glimAccount/{glimId}`
.replace(`{${"glimId"}}`, encodeURIComponent(String(glimId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (command !== undefined) {
localVarQueryParameter['command'] = command;
}
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(postLoansLoanIdRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Loan application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method.
* @summary Modify a loan application
* @param {number} loanId loanId
* @param {PutLoansLoanIdRequest} putLoansLoanIdRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
modifyLoanApplication: async (loanId: number, putLoansLoanIdRequest: PutLoansLoanIdRequest, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'loanId' is not null or undefined
assertParamExists('modifyLoanApplication', 'loanId', loanId)
// verify required parameter 'putLoansLoanIdRequest' is not null or undefined
assertParamExists('modifyLoanApplication', 'putLoansLoanIdRequest', putLoansLoanIdRequest)
const localVarPath = `/loans/{loanId}`
.replace(`{${"loanId"}}`, encodeURIComponent(String(loanId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(putLoansLoanIdRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {FormDataContentDisposition} [file]
* @param {string} [locale]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
postLoanRepaymentTemplate: async (file?: FormDataContentDisposition, locale?: string, dateFormat?: string, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans/repayments/uploadtemplate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (file !== undefined) {
localVarFormParams.append('file', new Blob([JSON.stringify(file)], { type: "application/json", }));
}
if (locale !== undefined) {
localVarFormParams.append('locale', locale as any);
}
if (dateFormat !== undefined) {
localVarFormParams.append('dateFormat', dateFormat as any);
}
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = localVarFormParams;
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {FormDataContentDisposition} [file]
* @param {string} [locale]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
postLoanTemplate: async (file?: FormDataContentDisposition, locale?: string, dateFormat?: string, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans/uploadtemplate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (file !== undefined) {
localVarFormParams.append('file', new Blob([JSON.stringify(file)], { type: "application/json", }));
}
if (locale !== undefined) {
localVarFormParams.append('locale', locale as any);
}
if (dateFormat !== undefined) {
localVarFormParams.append('dateFormat', dateFormat as any);
}
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = localVarFormParams;
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* The list capability of loans can support pagination and sorting. Example Requests: loans loans?fields=accountNo loans?offset=10&limit=50 loans?orderBy=accountNo&sortOrder=DESC
* @summary List Loans
* @param {string} [sqlSearch] sqlSearch
* @param {string} [externalId] externalId
* @param {number} [offset] offset
* @param {number} [limit] limit
* @param {string} [orderBy] orderBy
* @param {string} [sortOrder] sortOrder
* @param {string} [accountNo] accountNo
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
retrieveAll27: async (sqlSearch?: string, externalId?: string, offset?: number, limit?: number, orderBy?: string, sortOrder?: string, accountNo?: string, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (sqlSearch !== undefined) {
localVarQueryParameter['sqlSearch'] = sqlSearch;
}
if (externalId !== undefined) {
localVarQueryParameter['externalId'] = externalId;
}
if (offset !== undefined) {
localVarQueryParameter['offset'] = offset;
}
if (limit !== undefined) {
localVarQueryParameter['limit'] = limit;
}
if (orderBy !== undefined) {
localVarQueryParameter['orderBy'] = orderBy;
}
if (sortOrder !== undefined) {
localVarQueryParameter['sortOrder'] = sortOrder;
}
if (accountNo !== undefined) {
localVarQueryParameter['accountNo'] = accountNo;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {number} loanId loanId
* @param {string} [templateType] templateType
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
retrieveApprovalTemplate: async (loanId: number, templateType?: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'loanId' is not null or undefined
assertParamExists('retrieveApprovalTemplate', 'loanId', loanId)
const localVarPath = `/loans/{loanId}/template`
.replace(`{${"loanId"}}`, encodeURIComponent(String(loanId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (templateType !== undefined) {
localVarQueryParameter['templateType'] = templateType;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Note: template=true parameter doesn\'t apply to this resource.Example Requests: loans/1 loans/1?fields=id,principal,annualInterestRate loans/1?associations=all loans/1?associations=all&exclude=guarantors loans/1?fields=id,principal,annualInterestRate&associations=repaymentSchedule,transactions
* @summary Retrieve a Loan
* @param {number} loanId loanId
* @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
retrieveLoan: async (loanId: number, staffInSelectedOfficeOnly?: boolean, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'loanId' is not null or undefined
assertParamExists('retrieveLoan', 'loanId', loanId)
const localVarPath = `/loans/{loanId}`
.replace(`{${"loanId"}}`, encodeURIComponent(String(loanId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (staffInSelectedOfficeOnly !== undefined) {
localVarQueryParameter['staffInSelectedOfficeOnly'] = staffInSelectedOfficeOnly;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Approve Loan Application: Mandatory Fields: approvedOnDate Optional Fields: approvedLoanAmount and expectedDisbursementDate Approves the loan application Recover Loan Guarantee: Recovers the loan guarantee Undo Loan Application Approval: Undoes the Loan Application Approval Assign a Loan Officer: Allows you to assign Loan Officer for existing Loan. Unassign a Loan Officer: Allows you to unassign the Loan Officer. Reject Loan Application: Mandatory Fields: rejectedOnDate Allows you to reject the loan application Applicant Withdraws from Loan Application: Mandatory Fields: withdrawnOnDate Allows the applicant to withdraw the loan application Disburse Loan: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the Loan Disburse Loan To Savings Account: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the loan to Saving Account Undo Loan Disbursal: Undoes the Loan Disbursal Showing request and response for Assign a Loan Officer
* @summary Approve Loan Application | Recover Loan Guarantee | Undo Loan Application Approval | Assign a Loan Officer | Unassign a Loan Officer | Reject Loan Application | Applicant Withdraws from Loan Application | Disburse Loan Disburse Loan To Savings Account | Undo Loan Disbursal
* @param {number} loanId loanId
* @param {PostLoansLoanIdRequest} postLoansLoanIdRequest
* @param {string} [command] command
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
stateTransitions: async (loanId: number, postLoansLoanIdRequest: PostLoansLoanIdRequest, command?: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'loanId' is not null or undefined
assertParamExists('stateTransitions', 'loanId', loanId)
// verify required parameter 'postLoansLoanIdRequest' is not null or undefined
assertParamExists('stateTransitions', 'postLoansLoanIdRequest', postLoansLoanIdRequest)
const localVarPath = `/loans/{loanId}`
.replace(`{${"loanId"}}`, encodeURIComponent(String(loanId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (command !== undefined) {
localVarQueryParameter['command'] = command;
}
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(postLoansLoanIdRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of: Field Defaults Allowed description Lists Example Requests: loans/template?templateType=individual&clientId=1 loans/template?templateType=individual&clientId=1&productId=1
* @summary Retrieve Loan Details Template
* @param {number} [clientId] clientId
* @param {number} [groupId] groupId
* @param {number} [productId] productId
* @param {string} [templateType] templateType
* @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
* @param {boolean} [activeOnly] activeOnly
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
template10: async (clientId?: number, groupId?: number, productId?: number, templateType?: string, staffInSelectedOfficeOnly?: boolean, activeOnly?: boolean, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/loans/template`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication basicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)
// authentication tenantid required
await setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)
if (clientId !== undefined) {
localVarQueryParameter['clientId'] = clientId;
}
if (groupId !== undefined) {
localVarQueryParameter['groupId'] = groupId;
}
if (productId !== undefined) {
localVarQueryParameter['productId'] = productId;
}
if (templateType !== undefined) {
localVarQueryParameter['templateType'] = templateType;
}
if (staffInSelectedOfficeOnly !== undefined) {
localVarQueryParameter['staffInSelectedOfficeOnly'] = staffInSelectedOfficeOnly;
}
if (activeOnly !== undefined) {
localVarQueryParameter['activeOnly'] = activeOnly;
}
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
}
};
/**
* LoansApi - functional programming interface
* @export
*/
export const LoansApiFp = function(configuration?: Configuration) {
const localVarAxiosParamCreator = LoansApiAxiosParamCreator(configuration)
return {
/**
* It calculates the loan repayment Schedule Submits a new loan application Mandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType Optional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true) Additional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate Additional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate Additional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables
* @summary Calculate loan repayment schedule | Submit a new Loan Application
* @param {PostLoansRequest} postLoansRequest
* @param {string} [command] command
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async calculateLoanScheduleOrSubmitLoanApplication(postLoansRequest: PostLoansRequest, command?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PostLoansResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.calculateLoanScheduleOrSubmitLoanApplication(postLoansRequest, command, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
* Note: Only loans in \"Submitted and awaiting approval\" status can be deleted.
* @summary Delete a Loan Application
* @param {number} loanId loanId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async deleteLoanApplication(loanId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeleteLoansLoanIdResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.deleteLoanApplication(loanId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {number} glimId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async getGlimRepaymentTemplate(glimId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getGlimRepaymentTemplate(glimId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {number} [officeId]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async getLoanRepaymentTemplate(officeId?: number, dateFormat?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getLoanRepaymentTemplate(officeId, dateFormat, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {number} [officeId]
* @param {number} [staffId]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async getLoansTemplate(officeId?: number, staffId?: number, dateFormat?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getLoansTemplate(officeId, staffId, dateFormat, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
* Approve GLIM Application: Mandatory Fields: approvedOnDate Optional Fields: approvedLoanAmount and expectedDisbursementDate Approves the GLIM application Undo GLIM Application Approval: Undoes the GLIM Application Approval Reject GLIM Application: Mandatory Fields: rejectedOnDate Allows you to reject the GLIM application Disburse Loan: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the Loan Disburse Loan To Savings Account: Mandatory Fields: actualDisbursementDate Optional Fields: transactionAmount and fixedEmiAmount Disburses the loan to Saving Account Undo Loan Disbursal: Undoes the Loan Disbursal
* @summary Approve GLIM Application | Undo GLIM Application Approval | Reject GLIM Application | Disburse Loan Disburse Loan To Savings Account | Undo Loan Disbursal
* @param {number} glimId
* @param {PostLoansLoanIdRequest} postLoansLoanIdRequest
* @param {string} [command]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async glimStateTransitions(glimId: number, postLoansLoanIdRequest: PostLoansLoanIdRequest, command?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PostLoansLoanIdResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.glimStateTransitions(glimId, postLoansLoanIdRequest, command, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
* Loan application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method.
* @summary Modify a loan application
* @param {number} loanId loanId
* @param {PutLoansLoanIdRequest} putLoansLoanIdRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async modifyLoanApplication(loanId: number, putLoansLoanIdRequest: PutLoansLoanIdRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PutLoansLoanIdResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.modifyLoanApplication(loanId, putLoansLoanIdRequest, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {FormDataContentDisposition} [file]
* @param {string} [locale]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async postLoanRepaymentTemplate(file?: FormDataContentDisposition, locale?: string, dateFormat?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.postLoanRepaymentTemplate(file, locale, dateFormat, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {FormDataContentDisposition} [file]
* @param {string} [locale]
* @param {string} [dateFormat]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async postLoanTemplate(file?: FormDataContentDisposition, locale?: string, dateFormat?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.postLoanTemplate(file, locale, dateFormat, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
* The list capability of loans can support pagination and sorting. Example Requests: loans loans?fields=accountNo loans?offset=10&limit=50 loans?orderBy=accountNo&sortOrder=DESC
* @summary List Loans
* @param {string} [sqlSearch] sqlSearch
* @param {string} [externalId] externalId
* @param {number} [offset] offset
* @param {number} [limit] limit
* @param {string} [orderBy] orderBy
* @param {string} [sortOrder] sortOrder
* @param {string} [accountNo] accountNo
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async retrieveAll27(sqlSearch?: string, externalId?: string, offset?: number, limit?: number, orderBy?: string, sortOrder?: string, accountNo?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetLoansResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveAll27(sqlSearch, externalId, offset, limit, orderBy, sortOrder, accountNo, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {number} loanId loanId
* @param {string} [templateType] templateType
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async retrieveApprovalTemplate(loanId: number, te