UNPKG

fineract_sdk

Version:

Wrapper around fineract api.

907 lines (771 loc) 80.3 kB
/* 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