License

Copyright 2022 Apache Foundation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Preface

© 2015-2022

Apache Fineract
Website: fineract.apache.org
Email: dev@fineract.apache.org

Version: 0.0.0-2b9de03b

Date: 2022-10-28

Table 1. Authors
Name Email

Michael Vorburger

mike@vorburger.ch

Aleksandar Vidakovic

aleks@apache.org

Arnold Galovics

arnold@apache.org

Adam Saghy

adam.saghy@dpc.hu

Table 2. History
Authors Description Date Version

Aleksandar Vidakovic

Initial version

2020-10-26

1.4.0

Arnold Galovics

Database architecture section

2022-03-11

1.7.0

Aleksandar Vidakovic

Module section

2022-03-23

1.7.0

Aleksandar Vidakovic

Release section, file re-organisation

2022-04-18

1.7.0

Arnold Galovics

Spring Batch

2022-03-11

1.7.0

Aleksandar Vidakovic

AsciiDoc cheatsheet

2022-05-09

1.7.0

Adam Saghy

Business data

2022-06-13

1.7.0

Aleksandar Vidakovic

Custom modules and extensions

2022-10-29

1.8.0

Introduction

Platform for Digital Financial Services

Apache Fineract (\’fīn-,ә-,rakt\) is open source software for financial services.

Fineract provides a reliable, robust, and affordable solution for entrepreneurs, financial institutions, and service providers to offer financial services to the world’s 2 billion underbanked and unbanked. Fineract is aimed at innovative mobile and cloud-based solutions, and enables digital transaction accounts for all.

Fineract 1.x is a mature platform with open APIs, while Fineract CN is a cloud native, microservice architecture also supporting open banking APIs.

About

Apache Fineract can be deployed in any environment: cloud or on-premise. It can support front end interfaces on or offline, mobile or PC. It’s extensible enough to support any organizational type or delivery channel, and flexible enough to support any product, service, or lending methodology. For any organization, big or small, it provides the client data management, loan and savings portfolio management, integrated real time accounting, and social and financial reporting needed to bring digital financial services to a modern connected world.

Fineract 1.x compares well to other core banking systems and draws from requirements in credit unions, microfinance institutions, and small non-banking financial institutions. Features include flexible product configuration, KYC documentation support, business rule sets, payment transactions, and portfolio management. It includes an open API that dates to 2011 and is deployed in relatively high transaction volume environments.

Fineract CN operates on the principle that financial services are an innovative space and so each fineract microservice encapsulates a domain that can be combined with other microservices to create new platform offerings. Fineract CN microservices can be combined to create new software platforms for digital financial service providers. Fineract CN is still in its early days, but preliminary tests have shown that a simple single-instance laptop deployment of Fineract CN can process over 1000 transactions/second. Fineract CN also includes a fully Apache-licensed backoffice UI.

Fineract 1.x began incubation at Apache in December 2015 and is used by an active community of companies who build solutions for both financial inclusion and fintech innovation.

Contribute

The Apache Fineract community welcomes contributors who want to support the Fineract technology. Our community builds everything from this website, to the Fineract code to documentation and best practices information.

We especially welcome additions and corrections to the documentation, wiki, and website to improve the user experience. Bug reports and fixes and additions to the Apache Fineract code are welcome. Helping users learn best practices also earns good karma in our community.

Mailing Lists

Users & Developers

If you use, build on top of, deploy or are building contributions and modifications to Apache Fineract, this is the list for you.
To subscribe, send a blank email to dev-subscribe@fineract.apache.org.
To unsubscribe later, just send a blank email to dev-unsubscribe@fineract.apache.org.
You can also read the archives on lists.apache.org or on MarkMail.org.
Commits

This list receives an email whenever new code is contributed to Apache Fineract.
To subscribe, send a blank email to commits-subscribe@fineract.apache.org.
You can also read the archives.

Deployment

Plugins

Apache Fineract is extensible through plugin JARs (FINERACT-1177; based on
Spring Boot’s support). To launch Fineract with plugin JARs in libs/*.jar, use:

java -Dloader.path=libs/ -jar fineract-provider.jar

The Fineract "Docker" container image’s ENTRYPOINT uses this, see our Dockerfile. You could therefore build your customized Fineract distribution container image with your own Dockerfile using e.g. FROM apache/fineract:latest and then drop some plugin JARs into /app/libs/.

The WAR distribution does not directly support such plugins, but one could "explode" the WAR and drop JARs into WEB-INF/lib; if you know what you are doing, and feel nostalgic of the 1990s still using WARs, instead of the recommended modern Spring Boot distribution.

Here is a list of known 3rd-party plugin projects which can be dropped into libs/:

The reporting module became our first module experiment out of necessity. We are currently developing a strategy to split up even more internals of Fineract into proper modules. Those that have an incompatible license will be hosted in a separate Git repository (probably on Github under the Mifos organisation). We’ll send out an announcement as soon as we have more to say on this topic.

HTTPS

Because Apache Fineract deals with customer sensitive personally identifiable information (PII), it very strongly encourages all developers, implementors and end-users to always only use HTTPS. This is why it does not run on HTTP even for local development and enforces use of HTTPS.

For this purpose, Fineract includes a built-in default SSL certificate. This cert is intended for development on localhost, only. It is not trusted by your browser (because it’s self signed).

For production deployments, we recommend running Fineract behind a modern managed cloud native web proxy which includes SSL termination with automatically rotating SSL certificates, either using your favourite cloud provider’s respective solution, or locally setting up the equivalent using e.g. something like NGINX combined with Let’s Encrypt.

Such products, when correctly configured, add the conventional X-Forwarded-For and X-Forwarded-Proto HTTP headers, which Fineract (or rather the Spring Framework really) correctly respects since FINERACT-914 was fixed.

Alternatively, you could replace the built-in default SSL certificate with one you obtained from a Certificate Authority. We currently do not document how to do this, because we do not recommend this approach, as its cumbersome to configure and support and less secure than a managed auto rotating solution.

The Fineract API client supports an insecure mode (FineractClient.Builder#insecure()), and API users such as mobile apps may expose Settings to let end-users accept the self signed certificate. This should always be used for testing only, never in production.

Docker Compose

TBD

Application Server

Tomcat

TBD

Undertow

TBD

Jetty

TBD

JBoss

TBD

Weblogic

TBD

Payara

TBD

Fineract Instance types

In cases where Fineract has to deal with high load, it can cause a performance problem for a single Fineract instance.
To overcome this problem, Fineract instances can be started in different instance types for better scalability and performance in a multi-instance environment:

Fineract instance types
  • Read instance

  • Write instance

  • Batch instance

Each instance type comes with different restrictions. The specifics can be found in the table below.

Table 3. Instance types
Read instance Write instance Batch instance

Using only read-only DB connection

Yes

No

No

Batch jobs are automatically scheduled or startable via API

No

No

Yes

Can receive events (business events, hook template events)

No

Yes

No

Can send events (business events, hook template events)

No

Yes

Yes

Read APIs supported

Yes

Yes

No

Write APIs supported

No

Yes

No

Batch job APIs supported

No

No

Yes

Liquibase migration initiated upon startup

No

Yes

No

Configuring instance types in single instance setup

If Fineract is running as a single instance, then all of the 3 instance types should be enabled. In this case, there is no need to worry about the configuration, because this is the default behavior.

single instance diagram

Configuring instance types in multi-instance setup

A common solution to dealing with the high load is to deploy 1 write and 1 batch instances and deploy multiple read instances with read replicas of the Fineract database.
In this case, the write instance and the database will be freed from part of the load, because read request will use the separated read instance and its read replica database.

multiple read instances diagram

Also a common scenario when Close of Business jobs are running and Fineract has to deal with a high amount of processes.
(In a future release) Fineract (will be) is able to run this CoB jobs in batches.
In multi-instances environment these CoB jobs can run on multiple batch instances and they don’t have any impact on the performance of the read and write processes.
The best practice is to deploy 1 master batch instance and multiple worker batch instances.

multiple batch instances diagram

These soultions can be mixed with each other, based on the load of the Fineract deployment.

Configuring instance type via environment variables

The Fineract instance type is configurable via environment variables for the following 3 values:

Table 4. Environment variables
Instance type Environment variable

Read instance

FINERACT_READ_MODE_ENABLED

Write instance

FINERACT_WRITE_MODE_ENABLED

Batch instance

FINERACT_BATCH_MODE_ENABLED

The environment variable values are booleans (true/false). The Fineract instance can be configured in any combination of these instance types, although if all 3 configurations are false, startup will fail. The default value for all 3 values is true.

The configured Fineract instance types are easily accessible via a single Spring bean, named FineractProperties.FineractModeProperties that has 4 methods: isReadMode(), isWriteMode(), isBatchMode(), isReadOnlyMode()

Liquibase Database Migration

Liquibase data migration is allowed only for write instances

APIs

Read APIs are allowed only for read and write instances

A Fineract instance is ONLY able to serve read API calls when it’s configured as a read or write instance. In batch instance mode, it won’t serve read API calls.
If it’s a read or write instance, the read APIs will be served.
If it’s a batch instance, the read APIs won’t be served and a proper HTTP status code will be returned.
The distinction whether something is a read API can be decided based on the HTTP request method. If it’s a GET, we can assume it’s a read call.

Write APIs are allowed only for write instances

A Fineract instance is ONLY able to serve write API calls when it’s configured as a write instance. In read or batch instance mode, it won’t serve write API calls.
If the write APIs won’t be served and a proper HTTP status code will be returned.
If it’s a write instance, the write APIs will be served except the ones related to batch jobs.
The distinction whether something is a write API can be decided based on the HTTP request method. If it’s non-GET, we can assume it’s a write call. Also, the write APIs related to batch jobs (starting/stopping jobs) will not be served either.

Batch job APIs are allowed only for batch instances

A Fineract instance is ONLY able to serve batch API calls when it’s configured as a batch instance. In read or write instance mode, it won’t serve batch API calls.
If the batch APIs won’t be served and and a proper HTTP status code will be returned.
If it’s a batch instance, the batch APIs will be served.

Batch jobs

Batch job scheduling is allowed only for batch instances

Batch jobs are scheduled only if the Fineract instance running as a batch instance

Read-only instance type restrictions

If the read mode is enabled, but the write mode and batch mode are disabled, Fineract instance runs in read-only mode.

Events are disabled for read-only instances

When a Fineract instance is running in read-only mode, all event receiving/sending will be disabled.

Read-only tenant connection support

With read separation, there’s a possibility to use read-only database connections for read-only instances.
If the instance is read-only , the DataSource connection used for the tenant will be read-only.
If the instance is read-only and the configuration for the read-only datasource is not set, the application startup will fail.

Batch-only instance type restrictions

If the batch mode is enabled, but the read mode and write mode are disabled, Fineract instance runs in batch-only mode.

Receiving events is disabled for batch-only instances

When a Fineract instance is running as batch, event receiving will be disabled while sending events will be still possible since the batch jobs are potentially generating business events.

Kubernetes

TBD

AWS

TBD

Google Cloud

The www.fineract.dev demo server runs on Google Cloud.

The Running Fineract.dev, SRE style presentation given at ApacheCon 2020 has some related background.

Apache Software Foundation Infrastructure

We can order a server from Apache’s infrastructure team and deploy a demo instance…​

TBD

Architecture

This document captures the major architectural decisions in platform. The purpose of the document is to provide a guide to the overall structure of the platform; where it fits in the overall context of an MIS solution and its internals so that contributors can more effectively understand how changes that they are considering can be made, and the consequences of those changes.

The target audience for this report is both system integrators (who will use the document to gain an understanding of the structure of the platform and its design rationale) and platform contributors who will use the document to reason about future changes and who will update the document as the system evolves.

History

The Idea

Fineract was an idea born out of a wish to create and deploy technology that allows the microfinance industry to scale. The goal is to:

  • Produce a gold standard management information system suitable for microfinance operations

  • Acts as the basis of a platform for microfinance

  • Open source, owned and driven by member organisations in the community

  • Enabling potential for eco-system of providers located near to MFIs

Timeline

  • 2006: Project intiated by Grameen Foundation

  • Late 2011: Grameen Foundation handed over full responsibility to open source community.

  • 2012: Mifos X platform started. Previous members of project come together under the name of Community for Open Source Microfinance (COSM / OpenMF)

  • 2013: COSM / OpenMF officially rebranded to Mifos Initiative and receive US 501c3 status.

  • 2016: Fineract 1.x began incubation at Apache

System Overview

platform systemview
Figure 1. Platform System Overview

Financial institutions deliver their services to customers through a variety of means today.

  • Customers can call direct into branches (teller model)

  • Customers can organise into groups (or centers) and agree to meetup at a location and time with FI staff (traditional microfinance).

  • An FI might have a public facing information portal that customers can use for variety of reasons including account management (online banking).

  • An FI might be integrated into a ATM/POS/Card services network that the customer can use.

  • An FI might be integrated with a mobile money operator and support mobile money services for customer (present/future microfinance).

  • An FI might use third party agents to sell on products/services from other banks/FIs.

As illustrated in the above diagram, the various stakeholders leverage business apps to perform specific customer or FI related actions. The functionality contained in these business apps can be bundled up and packaged in any way. In the diagram, several of the apps may be combined into one app or any one of the blocks representing an app could be further broken up as needed.

The platform is the core engine of the MIS. It hides alot of the complexity that exists in the business and technical domains needed for an MIS in FIs behind a relatively simple API. It is this API that frees up app developers to innovate and produce apps that can be as general or as bespoke as FIs need them to be.

Functional Overview

As ALL capabilities of the platform are exposed through an API, The API docs are the best place to view a detailed breakdown of what the platform does. See online API Documentation.

platform categories
Figure 2. Platform Functional Overview

At a higher level though we see the capabilities fall into the following categories:

  • Infrastructure

    • Codes

    • Extensible Data Tables

    • Reporting

  • User Administration

    • Users

    • Roles

    • Permissions

  • Organisation Modelling

    • Offices

    • Staff

    • Currency

  • Product Configuration

    • Charges

    • Loan Products

    • Deposit Products

  • Client Data

    • Know Your Client (KYC)

  • Portfolio Management

    • Loan Accounts

    • Deposit Accounts

    • Client/Groups

  • GL Account Management

    • Chart of Accounts

    • General Ledger

Principles

RESTful API

The platform exposes all its functionality via a practically-RESTful API, that communicates using JSON.

We use the term practically-RESTful in order to make it clear we are not trying to be fully REST compliant but still maintain important RESTful attributes like:

  • Stateless: platform maintains no conversational or session-based state. The result of this is ability to scale horizontally with ease.

  • Resource-oriented: API is focussed around set of resources using HTTP vocabulary and conventions e.g GET, PUT, POST, DELETE, HTTP status codes. This results in a simple and consistent API for clients.

See online API Documentation for more detail.

Multi-tenanted

The Fineract platform has been developed with support for multi-tenancy at the core of its design. This means that it is just as easy to use the platform for Software-as-a-Service (SaaS) type offerings as it is for local installations.

The platform uses an approach that isolates an FIs data per database/schema (See Separate Databases and Shared Database, Separate Schemas).

Extensible

Whilst each tenant will have a set of core tables, the platform tables can be extended in different ways for each tenant through the use of Data tables functionality.

Command Query Seperation

We seperate commands (that change data) from queries (that read data).

Why? There are numerous reasons for choosing this approach which at present is not an attempt at full blown CQRS. The main advantages at present are:

  • State changing commands are persisted providing an audit of all state changes.

  • Used to support a general approach to maker-checker.

  • State changing commands use the Object-Oriented paradign (and hence ORM) whilst querys can stay in the data paradigm.

Maker-Checker

Also known as four-eyes principal. Enables apps to support a maker-checker style workflow process. Commands that pass validation will be persisted. Maker-checker can be enabled/disabled at fine-grained level for any state changing API.
Fine grained access control

A fine grained permission is associated with each API. Administrators have fine grained control over what roles or users have access to.

Package Structure

The intention is for platform code to be packaged in a vertical slice way (as opposed to layers).
Source code starts from github.com/apache/fineract/tree/develop/fineract-provider/src/main/java/org/apache/fineract

  • accounting

  • useradministration

  • infrastructure

  • portfolio

    • charge

    • client

    • fund

    • loanaccount

  • accounting

Within each vertical slice is some common packaging structure:

  • api - XXXApiResource.java - REST api implementation files

  • handler - XXXCommandHandler.java - specific handlers invoked

  • service - contains read + write services for functional area

  • domain - OO concepts for the functional area

  • data - Data concepts for the area

  • serialization - ability to convert from/to API JSON for functional area

Design Overview

The implementation of the platform code to process commands through handlers whilst supporting maker-checker and authorisation checks is a little bit convoluted at present and is an area pin-pointed for clean up to make it easier to on board new platform developers. In the mean time below content is used to explain its workings at present.
command query
Figure 3. CQRS

Taking into account example shown above for the users resource.

  • Query: GET /users

  • HTTPS API: retrieveAll method on org.apache.fineract.useradministration.api.UsersApiResource invoked

  • UsersApiResource.retrieveAll: Check user has permission to access this resources data.

  • UsersApiResource.retrieveAll: Use 'read service' to fetch all users data ('read services' execute simple SQL queries against Database using JDBC)

  • UsersApiResource.retrieveAll: Data returned to coverted into JSON response

  • Command: POST /users (Note: data passed in request body)

  • HTTPS API: create method on org.apache.fineract.useradministration.api.UsersApiResource invoked

UsersApiResource.create
    @POST
    @Operation(summary = "Create a User", description = "Adds new application user.\n" + "\n"
            + "Note: Password information is not required (or processed). Password details at present are auto-generated and then sent to the email account given (which is why it can take a few seconds to complete).\n"
            + "\n" + "Mandatory Fields: \n" + "username, firstname, lastname, email, officeId, roles, sendPasswordToEmail\n" + "\n"
            + "Optional Fields: \n" + "staffId,passwordNeverExpires,isSelfServiceUser,clients")
    @RequestBody(required = true, content = @Content(schema = @Schema(implementation = UsersApiResourceSwagger.PostUsersRequest.class)))
    @ApiResponses({
            @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = UsersApiResourceSwagger.PostUsersResponse.class))) })
    @Consumes({ MediaType.APPLICATION_JSON })
    @Produces({ MediaType.APPLICATION_JSON })
    public String create(@Parameter(hidden = true) final String apiRequestBodyAsJson) {

        final CommandWrapper commandRequest = new CommandWrapperBuilder() //
                .createUser() //
                .withJson(apiRequestBodyAsJson) //
                .build();

        final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);

        return this.toApiJsonSerializer.serialize(result);
Create a CommandWrapper object that represents this create user command and JSON request body. Pass off responsiblity for processing to PortfolioCommandSourceWritePlatformService.logCommandSource
                                        // been maker-checker enabled by
                                        // accident.
        } else {
            // if not user changing their own details - check user has
            // permission to perform specific task.
            this.context.authenticatedUser(wrapper).validateHasPermissionTo(wrapper.getTaskPermissionName());
        }
        validateIsUpdateAllowed();

        final String json = wrapper.getJson();
        CommandProcessingResult result = null;
        JsonCommand command;
        int numberOfRetries = 0;
        int maxNumberOfRetries = ThreadLocalContextUtil.getTenant().getConnection().getMaxRetriesOnDeadlock();
        int maxIntervalBetweenRetries = ThreadLocalContextUtil.getTenant().getConnection().getMaxIntervalBetweenRetries();
        final JsonElement parsedCommand = this.fromApiJsonHelper.parse(json);
        command = JsonCommand.from(json, parsedCommand, this.fromApiJsonHelper, wrapper.getEntityName(), wrapper.getEntityId(),
                wrapper.getSubentityId(), wrapper.getGroupId(), wrapper.getClientId(), wrapper.getLoanId(), wrapper.getSavingsId(),
                wrapper.getTransactionId(), wrapper.getHref(), wrapper.getProductId(), wrapper.getCreditBureauId(),
                wrapper.getOrganisationCreditBureauId(), wrapper.getJobName());
        while (numberOfRetries <= maxNumberOfRetries) {
            try {
                result = this.processAndLogCommandService.executeCommand(wrapper, command, isApprovedByChecker);
                numberOfRetries = maxNumberOfRetries + 1;
            } catch (CannotAcquireLockException | ObjectOptimisticLockingFailureException exception) {
                log.debug("The following command {} has been retried  {} time(s)", command.json(), numberOfRetries);
                /***
                 * Fail if the transaction has been retired for maxNumberOfRetries
                 **/
                if (numberOfRetries >= maxNumberOfRetries) {
                    log.warn("The following command {} has been retried for the max allowed attempts of {} and will be rolled back",
                            command.json(), numberOfRetries);
                    throw exception;
                }
                /***
                 * Else sleep for a random time (between 1 to 10 seconds) and continue
                 **/
                try {
                    int randomNum = RANDOM.nextInt(maxIntervalBetweenRetries + 1);
                    Thread.sleep(1000 + (randomNum * 1000));
                    numberOfRetries = numberOfRetries + 1;
                } catch (InterruptedException e) {
                    throw exception;
                }
            } catch (final RollbackTransactionAsCommandIsNotApprovedByCheckerException e) {
                numberOfRetries = maxNumberOfRetries + 1;
                result = this.processAndLogCommandService.logCommand(e.getCommandSourceResult());
            }
        }

        return result;
    }

    @Override
    public CommandProcessingResult approveEntry(final Long makerCheckerId) {

        final CommandSource commandSourceInput = validateMakerCheckerTransaction(makerCheckerId);
        validateIsUpdateAllowed();

        final CommandWrapper wrapper = CommandWrapper.fromExistingCommand(makerCheckerId, commandSourceInput.getActionName(),
                commandSourceInput.getEntityName(), commandSourceInput.resourceId(), commandSourceInput.subresourceId(),
Check user has permission for this action. if ok, a) parse the json request body, b) create a JsonCommand object to wrap the command details, c) use CommandProcessingService to handle command
        } catch (Throwable t) {
            publishHookErrorEvent(wrapper, command, t);
            throw t;
        }

        final AppUser maker = context.authenticatedUser(wrapper);

        CommandSource commandSourceResult;
        if (command.commandId() != null) {
            commandSourceResult = commandSourceRepository.findById(command.commandId())
                    .orElseThrow(() -> new CommandNotFoundException(command.commandId()));
            commandSourceResult.markAsChecked(maker);
        } else {
            String requestIdempotencyKey = null;
            RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
            if (requestAttributes != null) {
                if (requestAttributes instanceof ServletRequestAttributes) {
                    requestIdempotencyKey = ((ServletRequestAttributes) requestAttributes).getRequest()
                            .getHeader(fineractProperties.getIdempotencyKeyHeaderName());
                }
            }

            commandSourceResult = CommandSource.fullEntryFrom(wrapper, command, maker,
                    wrapper.getIdempotencyKey() == null
                            ? (requestIdempotencyKey == null ? idempotencyKeyGenerator.create() : requestIdempotencyKey)
                            : wrapper.getIdempotencyKey());
        }
        commandSourceResult.updateResourceId(result.getResourceId());
        commandSourceResult.updateForAudit(result.getOfficeId(), result.getGroupId(), result.getClientId(), result.getLoanId(),
                result.getSavingsId(), result.getProductId(), result.getTransactionId());

        String changesOnlyJson;
        boolean rollBack = (rollbackTransaction || result.isRollbackTransaction()) && !isApprovedByChecker;
        if (result.hasChanges() && !rollBack) {
            changesOnlyJson = toApiJsonSerializer.serializeResult(result.getChanges());
            commandSourceResult.updateJsonTo(changesOnlyJson);
        }

        if (!result.hasChanges() && wrapper.isUpdateOperation() && !wrapper.isUpdateDatatable()) {
            commandSourceResult.updateJsonTo(null);
        }

        if (commandSourceResult.hasJson()) {
            commandSourceRepository.save(commandSourceResult);
        }

        if ((rollbackTransaction || result.isRollbackTransaction()) && !isApprovedByChecker) {
            /*
             * JournalEntry will generate a new transactionId every time. Updating the transactionId with old
             * transactionId, because as there are no entries are created with new transactionId, will throw an error
             * when checker approves the transaction
             */
            commandSourceResult.updateTransaction(command.getTransactionId());
            /*
             * Update CommandSource json data with JsonCommand json data, line 77 and 81 may update the json data
             */
            commandSourceResult.updateJsonTo(command.json());
            throw new RollbackTransactionAsCommandIsNotApprovedByCheckerException(commandSourceResult);
        }
        result.setRollbackTransaction(null);

        publishHookEvent(wrapper.entityName(), wrapper.actionName(), command, result);

        return result;
    }

    @Transactional
if a RollbackTransactionAsCommandIsNotApprovedByCheckerException occurs at this point. The original transaction will of been aborted and we only log an entry for the command in the audit table setting its status as 'Pending'.
  • Check that if maker-checker configuration enabled for this action. If yes and this is not a 'checker' approving the command - rollback at the end. We rollback at the end in order to test if the command will pass 'domain validation' which requires commit to database for full check.

  • findCommandHandler - Find the correct Hanlder to process this command.

  • Process command using handler (In transactional scope).

  • CommandSource object created/updated with all details for logging to 'm_portfolio_command_source' table.

  • In update scenario, we check to see if there where really any changes/updates. If so only JSON for changes is stored in audit log.

Persistence

TBD

Database support

Fineract supports multiple databases:

  • MySQL compatible databases (e.g. MariaDB)

  • PostgreSQL

The platform differentiates between these database types in certain cases when there’s a need to use some database specific tooling. To do so, the platform examines the JDBC driver used for running the platform and tries to determine which database is being used.

The currently supported JDBC driver and corresponding mappings can be found below.

JDBC driver class name

Resolved database type

org.mariadb.jdbc.Driver

MySQL

com.mysql.jdbc.Driver

MySQL

org.postgresql.Driver

PostgreSQL

The actual code can be found in the DatabaseTypeResolver class.

Data-access layer

The data-access layer of Fineract is implemented by using JPA (Java Persistence API) with the EclipseLink provider.
Despite the fact that JPA is used quite extensively in the system, there are cases where the performance is a key element for an operation therefore you can easily find native SQLs as well.

The data-access layer of Fineract is compatible with different databases. Since a lot of the native queries are using specific database functions, a wrapper class - DatabaseSpecificSQLGenerator - has been introduced to handle these database specifics. Whenever there’s a need to rely on new database level functions, make sure to extend this class and implement the specific functions provided by the database.

Fineract has been developed for 10+ years by the community and unfortunately there are places where entity relationships are configured with EAGER fetching strategy. This must not confuse anybody. The long-term goal is to use the LAZY fetching strategy for every single relationship. If you’re about to introduce a new one, make sure to use LAZY as a fetching strategy, otherwise your PR will be rejected.

Database schema migration

As for every system, the database structure will and need to evolve over time. Fineract is no different. Originally for Fineract, Flyway was used until Fineract 1.6.x.

After 1.6.x, PostgreSQL support was added to the platform hence there was a need to make the data-access layer and the schema migration as database independent as possible. Becuase of that, from Fineract 1.7.0, Flyway is not used anymore but Liquibase is.

Some of the changesets in the Liquibase changelogs have database specifics into it but they only run for the relevant databases. This is controller by Liquibase contexts.

The currently available Liquibase contexts are:

  • mysql - only set when the database is a MySQL compatible database (e.g. MariaDB)

  • postgresql - only set when the database is a PostgreSQL database

  • configured Spring active profiles

  • tenant_store_db - only set when the database migration runs the Tenant Store upgrade

  • tenant_db - only set when the database migration runs the Tenant upgrade

  • initial_switch - this is a technical context and should NOT be used

The switch from Flyway (1.6.x) to Liquibase (1.7.x) was planned to be as smooth as possible so there’s no need for manual work hence the behavior is described as following:

  • If the database is empty, Liquibase will create the database schema from scratch

  • If the database contains the latest Fineract 1.6.x database structure which was previously migrated with Flyway. Liquibase will seamlessly upgrade it to the latest version. Note: the Flyway related 2 database tables are left as they are and are not deleted.

  • If the database contains an earlier version of the database structure than Fineract 1.6.x. Liquibase will NOT do anything and will fail the application during startup. The proper approach in this case is to first upgrade your application version to the latest Fineract 1.6.x so that the latest Flyway changes are executed and then upgrade to the newer Fineract version where Liquibase will seamlessly take over the database upgrades.

Troubleshooting
  1. During upgrade from Fineract 1.5.0 to 1.6.0, Liquibase fails

After dropping the flyway migrations table (schema_version), Liquibase runs it’s
own migrations which fails (in recreating tables which already exisit) because
we are aiming to re-use DB with existing data from Fineract 1.5.0.

Solution: The latest release version (1.6.0) doesn’t have Liquibase at all, it
still runs Flyway migrations. Only the develop branch (later to be 1.7.0) got
sqitched to Liquibase. Do not pull the develop before upgrading your instance.

Make sure first you upgrade your instance (aka database schema with Fineract 1.6.0).
Then upgrade with the current develop branch. Check if some migration scripts
did not run which led to some operations failing due to slight differences in
schema. Try with running the missing migrations manually.

Note: develop is considered unstable until released.

  1. Upgrading database from MySQL 5.7 as advised to Maria DB 10.6, fails. If we
    use data from version 18.03.01 it fails to migrate the data. If we use databases
    running on 1.5.0 release it completes the startup but the system login fails.

Solution: A database upgrade is separate thing to take care of.

  1. We are getting ScehmaUpgradeNeededException: Make sure to upgrade to Fineract
    1.6 first and then to a newer version
    error while upgrading to tag 1.6.

1.6 version shouldn’t include Liquibase. It will only be released after 1.6.
Make sure Liquibase is dropping schema_version table, as there is no Flyway
it is not required. Drop Flyway and use Liquibase for both migrations and
database independence. In case, if you still get errors, you can use git SHA
746c589a6e809b33d68c0596930fcaa7338d5270 and Flyway migration will be done to
the latest.

TENANT_LATEST_FLYWAY_VERSION = 392;
TENANT_LATEST_FLYWAY_SCRIPT_NAME =
"V392__interest_recovery_conf_for_rescedule.sql";
TENANT_LATEST_FLYWAY_SCRIPT_CHECKSUM = 1102395052;

Validation

Programmatic

Use the DataValidatorBuilder, e.g. like so:

new DataValidatorBuilder().resource("fileUpload")
    .reset().parameter("Content-Length").value(contentLength).notBlank().integerGreaterThanNumber(0)
    .reset().parameter("FormDataContentDisposition").value(fileDetails).notNull()
    .throwValidationErrors();

Such code is often encapsulated in *Validator classes (if more than a few lines, and/or reused from several places; avoid copy/paste), like so:

public class YourThingValidator {

    public void validate(YourThing thing) {
        new DataValidatorBuilder().resource("yourThing")
        ...
        .throwValidationErrors();
    }
}

Declarative

[FINERACT-1229](issues.apache.org/jira/browse/FINERACT-1229) is an open issue about adopting Bean Validation for declarative instead of programmatic (as above) validation. Contributions welcome!

Batch execution and jobs

Just like any financial system, Fineract also has batch jobs to achieve some processing on the data that’s stored in the system.

The batch jobs in Fineract are implemented using Spring Batch. In addition to the Spring Batch ecosystem, the automatic scheduling is done by the Quartz Scheduler but it’s also possible to trigger batch jobs via regular APIs.

Glossary

Job

A Job is an object that encapsulates an entire batch process.

Step

A Step is an object that encapsulates an independent phase of a Job.

Chunk oriented processing

Chunk oriented processing refers to reading the data one at a time and creating 'chunks' that are written out within a transaction boundary.

Partitioning

Partitioning refers to the high-level idea of dividing your data into so called partitions and distributing the individual partitions among Workers. The splitting of data and pushing work to Workers is done by a Manager.

Remote partitioning

Remote partitioning is a specialized partitioning concept. It refers to the idea of distributing the partitions among multiple JVMs mainly by using a messaging middleware.

Manager node

The Manager node is one of the objects taking a huge part when using partitioning. The Manager node is responsible for dividing the dataset into partitions and keeping track of all the divided partitions' Worker execution. When all Workers nodes are done with their partitions, the Manager will mark the corresponding Job as completed.

Worker node

A Worker node is the other important party in the context of partitioning. The Worker node is the one executing the work needed for a single partition.

Batch jobs in Fineract

Types of jobs

The jobs in Fineract can be divided into 2 categories:

  • Normal batch jobs

  • Partitionable batch jobs

Most of the jobs are normal batch jobs with limited scalability because Fineract is still passing through the evolution on making most of them capable to process a high-volume of data.

List of jobs

Job name

Active by default

Partitionable

Description

LOAN_CLOSE_OF_BUSINESS

No

Yes

TBD

Batch job execution

State management

State management for the batch jobs is done by the Spring Batch provided state management. The data model consists of the following database structure:

batch jobs state management

The corresponding database migration scripts are shipped with the Spring Batch core module under the org.springframework.batch.core package. They are only available as native scripts and are named as schema-.sql where is the short name of the database platform. For MySQL it’s called schema-mysql.sql and for PostgreSQL it’s called schema-postgresql.sql.
When Fineract is started, the database dependent schema SQL script will be picked up according to the datasource configurations.

Chunk oriented processing

Chunking data has not been easier. Spring Batch does a really good job at providing this capability.

In order to save resources when starting/committing/rollbacking transactions for every single processed item, chunking shall be used. That way, it’s possible to mark the transaction boundaries for a single processed chunk instead of a single item processing. The image below describes the flow with a very simplistic example.

batch jobs chunking

In addition to not opening a lot of transactions, the processing could also benefit from JDBC batching. The last step - writing the result into the database - collects all the processed items and then writes it to the database; both for MySQL and PostgreSQL (the databases supported by Fineract) are capable of grouping multiple DML (INSERT/UPDATE/DELETE) statements and sending them in one round-trip, optimizing the data being sent over the network and granting the possibility to the underlying database engine to enhance the processing.

Remote partitioning

Spring Batch provides a really nice way to do remote partitioning. The 2 type of objects in this setup is a manager node - who splits and distributes the work - and a number of worker nodes - who picks up the work.

In remote partitioning, the worker instances are receiving the work via a messaging system as soon as the manager splits up the work into smaller pieces.

Remote partitioning could be done 2 ways in terms of keeping the job state up-to-date. The main difference between the two is how the manager is notified about partition completions.

One way is that they share the same database. When the worker does something to a partition - for example picks it up for processing - it updates the state of that partition in the database. In the meantime, the manager regularly polls the database until all partitions are processed. This is visualized in the below diagram.

batch jobs remote partitioning

An alternative approach to this - when the database is not intended to be shared between manager and workers - is to use a messaging system (could be the same as for distributing the work) and the workers could send back a message to the manager instance, therefore notifying it about failure/completion. Then the manager can simply keep the database state up-to-date.

Even though the alternative solution decouples the workers even better, we thought it’s not necessary to add the complexity of handling reply message channel to the manager.

Also, please note that the partitioned job execution is multitenant meaning that the workers will receive which tenant it should do the processing for.

Supported message channels

For remote partitioning, the following message channels are supported by Fineract:

  • Any JMS compatible message channels (ActiveMQ, Amazon MQ, etc)

Fault-tolerance scenarios

There are multiple fault tolerance use-cases that this solution must and will support:

  1. If the manager fails during partitioning

  2. If the manager completes the partitioning and the partition messages are sent to the broker but while the manager is waiting for the workers to finish, the manager fails

  3. If the manager runs properly and during a partition processing a worker instance fails

In case of scenario 1), the simple solution is to re-trigger the job via API or via the Quartz scheduler.

In case of scenario 2), there’s no out-of-the-box solution by Spring Batch. Although there’s a custom mechanism in place that’ll resume the job upon restarting the manager. There are 2 cases in the context of this scenario:

  • If all the partitions have been successfully processed by workers

  • If not all the partitions have been processed by the workers

In the first case, we’ll simply mark the stuck job as FAILED along with it’s partitioning step and instruct Spring Batch to restart the job. The behavior in this case will be that Spring Batch will spawn a new job execution but will notice that the partitions have all been completed so it’s not going to execute them once more.

In the latter case, the same will happen as for the first one but before marking the job execution as FAILED, we’ll wait until all partitions have been completed.

Diagram

In case of scenario 3), another worker instance will take over the partition since it hasn’t been finished.

Configurable batch jobs

There’s another type of distinction on the batch jobs. Some of them are configurable in terms of their behavior.

The currently supported configurable batch jobs are the following:

  • LOAN_CLOSE_OF_BUSINESS

The behavior of these batch jobs are configurable. There’s a new terminology we’re introducing called business steps.

Business steps

Business steps are a smaller unit of work than regular Spring Batch Steps and the two are not meant to be mixed up because there’s a large difference between them.

A Spring Batch Step’s main purpose is to decompose a bigger work into smaller ones and making sure that these smaller Steps are properly handled within a single database transaction.

In case of a business step, it’s a smaller unit of work. Business steps live within a Spring Batch Step. Fundamentally, they are simple classes that are implementing an interface with a single method that contains the business logic.

Here’s a very simple example:

public class MyCustomBusinessStep implements BusinessStep<Loan> {
    @Override
    public Loan process(Loan loan) {
        // do something
    }
}
public class LoanCOBItemProcessor implements ItemProcessor<Loan, Loan> {
    @Override
    public Loan process(Loan loan) {
        List<BusinessStep<Loan>> bSteps = getBusinessSteps();
        Loan result = loan;
        for (BusinessStep<Loan> bStep : bSteps) {
            result = bStep.process(result);
        }
        return result;
    }
}
Business step configuration

The business steps are configurable for certain jobs. The reason for that is because we want to allow the possibility for Fineract users to configure their very own business logic for generic jobs, like the Loan Close Of Business job where we want to do a formal "closing" of the loans at the end of the day.

All countries are different with a different set of regulations. However in terms of behavior, there’s no all size fits all for loan closing.

For example in the United States of America, you might need the following logic for a day closing:

  1. Close fully repaid loan accounts

  2. Apply penalties

  3. Invoke IRS API for regulatory purposes

While in Germany it should be:

  1. Close fully repaid loan accounts

  2. Apply penalties

  3. Do some fraud detection on the account using an external service

  4. Invoke local tax authority API for regulatory purposes

These are just examples, but you get the idea.

The business steps are configurable through APIs:

Retrieving the configuration for a job:

GET /fineract-provider/api/v1/jobs/{jobName}/steps?tenantIdentifier={tenantId}
HTTP 200

{
  "jobName": "LOAN_CLOSE_OF_BUSINESS",
  "businessSteps": [
    {
      "stepName": "APPLY_PENALTY_FOR_OVERDUE_LOANS",
      "order": 1
    },
    {
      "stepName": "LOAN_TAGGING",
      "order": 2
    }
  ]
}

Updating the business step configuration for a job:

PUT /fineract-provider/api/v1/jobs/{jobName}/steps?tenantIdentifier={tenantId}

{
  "businessSteps": [
    {
      "stepName": "LOAN_TAGGING",
      "order": 1
    },
    {
      "stepName": "APPLY_PENALTY_FOR_OVERDUE_LOANS",
      "order": 2
    }
  ]
}

The business step configuration for jobs are tracked within the database in the m_batch_business_steps table.

Loan account locking

Keeping a consistent state of loan accounts become quite important when we start talking about doing a business day closing each day for loans.

There are 2 concepts for loan account locking:

  1. Soft-locking loan accounts

  2. Hard-locking loan accounts

Soft-locking simply means that when the Loan COB has been kicked off but workers not yet processing the chunk of loan accounts (i.e. the partition is waiting in the queue to be picked up) and during this time a real-time write request (e.g. a repayment/disbursement) comes in through the API, we simply do an "inlined" version of the Loan COB for that loan account. From a practical standpoint this will mean that before doing the actual repayment/disbursement on the loan account on the API, we execute the Loan COB for that loan account, kind of like prioritizing it.

Hard-locking means that when a worker picks up the loan account in the chunk, real-time write requests on those loan accounts will be simply rejected with an HTTP 409.

The locking is strictly tied to the Loan COB job’s execution but there could be other processes in the future which might want to introduce new type of locks for loans.

The loan account locking is solved by maintaining a database table which stores the locked accounts, it’s called m_loan_account_locks.

When a loan account is present in the table above, it simply means there’s a lock applied to it and whether it’s a soft or hard lock can be determined by the lock_owner column.

And when a loan account is locked, loan related write API calls will be either rejected or will trigger an inline Loan COB execution. There could be a corner case here when the Loan COB fails to process some loan accounts (due to a bug, inconsistency, etc) and the loan accounts stay locked. This is an intended behavior to mark loans which are not supposed to be used until they are "fixed".

Since the fixing might involve making changes to the loan account via API (for example doing a repayment to fix the loan account’s inconsistent state), we need to allow those API calls. Hence, the lock table includes a bypass_enabled column which disables the lock checks on the loan write APIs.

Technology

TBD

Modules

TBD

Introducing Business Date into Fineract - Community version

Business date as a concept does not exist as of now in Fineract. It would be business critical to add such a functionality to support various banking functionalities like “Closing of Business day”, “Having Closing of Business day relevant jobs”, “Supporting logical date management”.

Glossary

*COB

Close of Business; concept of closing a business day

*Business day

Timeframe that logically group together actions on a particular business date

*Business date

Logical date; its value is not tied to the physical calendar. Represents a business day

*Cob date

Logical date; Represents the business date for actions during COB job execution

*Created date

When the transaction was created (audit purposes). Date + time

*Last modified date

When the transaction was last modified (audit purposes). Date + time

*Submitted on date / Posting date

When the transaction was posted. Tenant date or business date (depends on whether the logical date concept was introduced or not)

*Transaction date / Value date

The date on which the transaction occurred or to be accounted for

Current behaviour

  • Fineract support 3 types of dates:

    • System date

      • Physical/System date of the running environment

    • Tenant date

      • Timezoned version of the above system date

    • User-provided date

      • Based on the provided date (as string) and the provided date format

  • There is no support of logical date concept

    • Independent from the system / tenant date

  • Jobs are scheduled against system date (CRON), but aligned with the tenant timezone.

  • During the job execution all the data and transactions are using the actual tenant date

    • It could happen some transactions are written for 17th of May and other for 18th of May, if the job was executed around midnight

  • There is no support of COB

    • No backdated transactions by jobs

    • There is no support to logically group together transactions and store them with the same transaction date which is independent of the physical calendar of the tenant

  • All the transactions and business logic are tied to a physical calendar

Business date

business date
Design

By introducing the business day concept we are not tied anymore to the physical calendar of the system or the tenant. We got the ability to define our own business day boundaries which might end 15 minutes before midnight and any incoming transactions after the cutoff will be accounted for the following business day.

It is a logical date which makes it possible to separate the business day from the physical calendar:

  • Close a business day before midnight

  • Close a business day at midnight

  • Close a business day after midnight

Closing a Business Day could be a longer process (see COB jobs) meanwhile some processes shall still be able to create transactions for that business day (COB jobs), but others are meant to create the transactions for the next (incoming transactions): Business date concept is there to sort that out.

Business date concept is essential when:

  • Having COB jobs:

    • When the COB was triggered:

      • All the jobs which processing the data must still accounted for actual business day

      • All the incoming transactions must be accounted to the next business day

  • Business day is ending before / after midnight (tenant date / system date)

  • Testing purposes:

    • Since the transactions and job execution is not tied anymore to a physical calendar, we can easily test a whole loan lifecycle by altering the business date

  • Handling disruption of service: For any unseen reason the system goes down or there are any disruption in the workflow, the “missed days” can easily be processed one by one as nothing happened

    • There is a disruption at 2022-06-02

    • The issue is fixed by 2022-06-05

    • The COB flow can be executed for 2022-06-03 and when it is finished for 2022-06-04 and after when the time arrives for 2022-06-05

This logical date is manageable via:

  • Job

  • API

To maintain such separation from physical calendar we need to introduce the following new dates:

  • Business date

  • COB date

    • Can be calculated based on the actual business date

      • Depend on COB date strategy (see below)

Business date

The - logical - date of the actual business day, eg: 2022-05-06

  • It does not support time parts

  • It can be managed manually (via API call) or automatically (via scheduled job)

  • All business actions during the business day shall use this date:

    • Posting / submitted on date of transactions

    • Submitted on date of actions

    • (Regular) jobs

  • It will be used in every situation where the transaction date / value date is not provided by the user or the user provided date shall be validated.

    • Opening date

    • Closing date

    • Disbursal date

    • Transaction/Value date

    • Posting/Submitted date

    • Reversal date

  • Will not be use for audit purposes:

    • Created on date

    • Updated on date

COB date

The - logical - date of the business day for job execution, eg: 2022-05-05

  • It can be calculated based on the the business date

    • COB date = business date - 1 day

    • Automatically modified alongside with the business date change

  • It does not support time parts

  • It is automatically managed by business date change

    • Configurable

  • It is used only via COB job execution

    • When we create / modify any business data during the COB job execution, the COB date is to be used:

      • Posting date of transactions

      • Submitted on date of actions

      • Transaction / value date of any actions

Some basic example
Apply for a loan
#1

Tenant date: 2022-05-23 14:22:12

Business date: 2022-05-22

Submitted on date: 2022-05-23

Outcome: FAIL

Message: The date on which a loan is submitted cannot be in the future.

Reason: Even the tenant date is 2022-05-23, but the business date was 2022-05-22 which means anything further that date must be considered as a future date.

#2

Tenant date: 2022-05-23 14:22:12

Business date: 2022-05-22

Submitted on date: 2022-05-22

Outcome: SUCCESS

Loan application details:

  • Submitted on date: 2022-05-22

Repayment for a loan
#1

Tenant date: 2022-05-25 11:22:12

Business date: 2022-05-24

Transaction date: 2022-05-25

Outcome: FAIL

Message: The transaction date cannot be in the future.

Reason: Even the physical date is 2022-05-25, but the business date was 2022-05-24 which means anything further that date must be considered as a future date.

#2

Tenant date: 2022-05-25 11:22:12

Business date: 2022-05-24

Transaction date: 2022-05-23

Outcome: SUCCESS

Loan transaction details:

  • Submitted on date: 2022-05-24

  • Transaction date: 2022-05-23

  • Created on date: 2022-05-25 11:22:12

Changes in Fineract

We shall modify at all the relevant places where the tenant date was used:

  • With very limited exceptions all places where the tenant date is used we need to modify to use the business date.

  • Replace system date with tenant date or business date (exceptions may apply)

  • Add missing Value dates and Posting dates to entities

  • Having a generic naming conventions for JPA fields and DB fields

  • Renaming the fields accordingly

  • Evaluate value date (transaction date) and posting date (submitted on date), created on date usages

  • Jobs to be checked and modified accordingly

  • Native queries to be checked and modified accordingly

  • Reports to be checked and modified accordingly

  • Every table where update is supported the AbstractAuditableCustom should be implemented

  • Amend Transactions and Journal entries date handling to fit for business date concept

  • For audit fields we shall introduce timezoned datetimes and store them in database accordingly

    • Storing DATETIME fields without Timezone is potential problem due to the daylight savings

    • Also some external libs (like Quartz) are using system timezone and Fineract will using Tenant timezone for audit fields. To be able to distinct them in DB we shall use DATETIME with TIMESTAMP column types and use timezoned java time objects in the application

Reliable event framework

Fineract is capable of generating and raising events for external consumers in a reliable way. This section is going to describe all the details on that front with examples.

Framework capabilities

ACID (transactional) guarantee

The event framework must support ACID guarantees on the business operation level.

Let’s see a simple use-case:

  1. A client applies to a loan on the UI

  2. The loan is created on the server

  3. A loan creation event is raised

What happens if step 3 fails? Shall it fail the original loan creation process?

What happens if step 2 fails but step 3 still gets executed? We’re raising an event for a loan that hasn’t been created in reality.

Therefore, raising an event is tied to the original business transaction to ensure the data that’s getting written into the database along with the respective events are saved in an all-or-nothing fashion.

Messaging integration

The system is able to send the raised events to downstream message channels. The current implementation supports the following message channels:

  • ActiveMQ

Ordering guarantee

The events that are raised will be sent to the downstream message channels in the same order as they were raised.

Delivery guarantee

The framework supports the at-least-once delivery guarantee for the raised events.

Reliability and fault-tolerance

In terms of reliability and fault-tolerance, the event framework is able to handle the cases when the downstream message channel is not able to accept events. As soon as the message channel is back to operational, the events will be sent again.

Selective event producing

Whether or not an event must be sent to downstream message channels for a particular Fineract instance is configurable through the UI and API.

Standardized format

All the events sent to downstream message channels are conforming a standardized format using Avro schemas.

Extendability and customizations

The event framework is capable of being easily extended with new events for additional business operations or customizing existing events.

Ability to send events in bulk

The event framework makes it possible to sort of queue events until they are ready to be sent and send them as a single message instead of sending each event as a separate, individual one.

For example during the COB process, there might be events raised in separate business steps which needs to be sent out but they only need to be sent out at the end of the COB execution process instead of one-by-one.

Architecture

Intro

On a high-level, the concept looks the following. An event gets raised in a business operation. The event data gets saved to the database - to ensure ACID guarantees. An asynchronous process takes the saved events from the database and puts them onto a message channel.

The flow can be seen in the following diagram:

reliable event framework hla
Foundational business events

The whole framework is built upon an existing infrastructure in Fineract; the Business Events.

As a quick recap, Business Events are Fineract events that can be raised at any place in a business operation using the BusinessEventNotifierService. Callbacks can be registered when a certain type of Business Event is raised and other business operations can be done. For example when a Loan gets disbursed, there’s an interested party doing the Loan Arrears Aging recalculation using the Business Event communication.

The nice thing about the Business Events is that they are tied to the original transaction which means if any of the processing on the subscriber’s side fail, the entire original transaction will be rolled back. This was one of the requirements for the Reliable event framework.

Event database integration

The database plays a crucial part in the framework since to ensure transactionality, - without doing proper transaction synchronization between different message channels and the database - the framework is going to save all the raised events into the same relational database that Fineract is using.

Database structure

The database structure looks the following

Name

Type

Description

Example

id

number

Auto incremented ID.

Not null.

1

type

text

The event type as a string.

Not null.

LoanApprovedBusinessEvent

schema

text

The fully qualified name of the schema that was used for the data serialization, as a string.

Not null.

org.apache.fineract.avro.loan.v1.LoanAccountDataV1

data

BLOB (MySQL/MariaDB), BYTEA (PostgreSQL)

The event payload as Avro binary.

Not null.

created_at

timestamp

UTC timestamp when the event was raised.

Not null.

2022-09-06 14:20:10.148627 +00:00

status

text

Enum text representing the status of the external event.

Not null, indexed.

TO_BE_SENT, SENT

sent_at

timestamp

UTC timestamp when the event was sent.

2022-09-06 14:30:10.148627 +00:00

idempotency_key

text

Randomly generated UUID upon inserting a row into the table for idempotency purposes.

Not null.

68aed085-8235-4722-b27d-b38674c19445

business_date

date

The business date to when the event was generated.

Not null, indexed.

2022-09-05

The above database table contains the unsent events which later on will be sent by an asynchronous event processor.

Upon successfully sending an event, the corresponding statuses will be updated.

Avro schemas

For serializing events, Fineract is using Apache Avro. There are 2 reasons for that:

  • More compact storage since Avro is a binary format

  • The Avro schemas are published with Fineract as a separate JAR so event consumers can directly map the events into POJOs

There are 3 different levels of Avro schemas used in Fineract for the Reliable event framework which are described below.

Standard event schema

The standard event schema is for the regular events. These schemas are used when saving a raised event into the database and using the Avro schema to serialize the event data into a binary format.

For example the OfficeDataV1 Avro schema looks the following:

OfficeDataV1.avsc
{
    "name": "OfficeDataV1",
    "namespace": "org.apache.fineract.avro.office.v1",
    "type": "record",
    "fields": [
        {
            "default": null,
            "name": "id",
            "type": [
                "null",
                "long"
            ]
        },
        {
            "default": null,
            "name": "name",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "nameDecorated",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "externalId",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "openingDate",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "hierarchy",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "parentId",
            "type": [
                "null",
                "long"
            ]
        },
        {
            "default": null,
            "name": "parentName",
            "type": [
                "null",
                "string"
            ]
        },
        {
            "default": null,
            "name": "allowedParents",
            "type": [
                "null",
                {
                    "type": "array",
                    "items": "org.apache.fineract.avro.office.v1.OfficeDataV1"
                }
            ]
        }
    ]
}
Event message schema

The event message schema is just a wrapper around the standard event schema with extra metadata for the event consumers.

Since Avro is strongly typed, the event content needs to be first serialized into a byte sequence and that needs to be wrapped around.

This implies that for putting a single event message onto a message queue for external consumption, data needs to be serialized 2 times; this is the 2-level serialization.

  1. Serializing the event

  2. Serializing the already serialized event into an event message using the message wrapper

The message schema looks the following:

MessageV1.avsc
{
    "name": "MessageV1",
    "namespace": "org.apache.fineract.avro",
    "type": "record",
    "fields": [
        {
            "name": "id",
            "doc": "The ID of the message to be sent",
            "type": "int"
        },
        {
            "name": "source",
            "doc": "A unique identifier of the source service",
            "type": "string"
        },
        {
            "name": "type",
            "doc": "The type of event the payload refers to. For example LoanApprovedBusinessEvent",
            "type": "string"
        },
        {
            "name": "category",
            "doc": "The category of event the payload refers to. For example LOAN",
            "type": "string"
        },
        {
            "name": "createdAt",
            "doc": "The UTC time of when the event has been raised; in ISO_LOCAL_DATE_TIME format. For example 2011-12-03T10:15:30",
            "type": "string"
        },
        {
            "name": "businessDate",
            "doc": "The business date when the event has been raised; in ISO_LOCAL_DATE format. For example 2011-12-03",
            "type": "string"
        },
        {
            "name": "tenantId",
            "doc": "The tenantId that the event has been sent from. For example default",
            "type": "string"
        },
        {
            "name": "idempotencyKey",
            "doc": "The idempotency key for this particular event for consumer de-duplication",
            "type": "string"
        },
        {
            "name": "dataschema",
            "doc": "The fully qualified name of the schema of the event payload. For example org.apache.fineract.avro.loan.v1.LoanAccountDataV1",
            "type": "string"
        },
        {
            "name": "data",
            "doc": "The payload data serialized into Avro bytes",
            "type": "bytes"
        }
    ]
}
Bulk event schema

The bulk event schema is used when multiple events are supposed to be sent together. This schema is used also when serializing the data for the database storing but the idea is quite simple. Have an array of other event schemas embedded into it.

Since Avro is strongly typed, the array within the bulk event schema is an array of MessageV1 schemas. That way the consumers can decide which events they want to deserialize and which don’t.

This elevates the regular 2-level serialization/deserialization concept up to a 3-level one:

  1. Serializing the standard events

  2. Serializing the standard events into a bulk event

  3. Serializing the bulk event into an event message

Versioning

Avro is quite strict with changes to an existing schema and there are a number of compatibility modes available.

Fineract keeps it simple though. Version numbers - in the package names and in the schema names - are increased with each published modification; meaning that if the OfficeDataV1 schema needs a new field and the OfficeDataV1 schema has been published officially with Fineract, a new OfficeDataV2 has to be created with the new field instead of modifying the existing schema.

This pattern ensures that a certain event is always deserialized with the appropriate schema definition, otherwise the deserialization could fail.

Code generation

The Avro schemas are described as JSON documents. That’s hardly usable directly with Java hence Fineract generates Java POJOs from the Avro schemas. The good thing about these POJOs is the fact that they can be serialized/deserialized in themselves without any magic since they have a toByteBuffer and fromByteBuffer method.

From POJO to ByteBuffer:

LoanAccountDataV1 avroDto = ...
ByteBuffer buffer = avroDto.toByteBuffer();

From ByteBuffer to POJO:

ByteBuffer buffer = ...
LoanAccountDataV1 avroDto = LoanAccountDataV1.fromByteBuffer(buffer);
The ByteBuffer is a stateful container and needs to be handled carefully. Therefore Fineract has a built-in ByteBuffer to byte array converter; ByteBufferConverter.
Downstream event consumption

When consuming events on the other side of the message channel, it’s critical to know which events the system is interested in. With the multi-level serialization, it’s possible to deserialize only parts of the message and decide based on that whether it makes sense for a particular system to deserialize the event payload more.

Whether events are important can be decided based on:

  • the type attribute in the message

  • the category attribute in the message

  • the dataschema attribute in the message

These are the main attributes in the message wrapper one can use to decide whether an event message is useful.

If the event needs to be deserialized, the next step is to find the corresponding schema definition. That’s going to be sent in the dataschema attribute within the message wrapper. Since the attribute contains the fully-qualified name of the respective schema, it can be easily resolved to a Class object. Based on that class, the payload data can be easily deserialized using the fromByteBuffer method on every generated schema POJO.

Message ordering

One of the requirements for the framework is to provide ordering guarantees. All the events have to conform a happens-before relation.

For the downstream consumers, this can be verified by the id attribute within the messages. Since it’s going to be a strictly-monotonic numeric sequence, it can be used for ordering purposes.

Event categorization

For easier consumption, the terminology event category is introduced. This is nothing else but the bounded context an event is related to.

For example the LoanApprovedBusinessEvent and the LoanWaiveInterestBusinessEvent are both related to the Loan bounded contexts.

The category in which an event resides in is included in the message under the category attribute.

The existing event categories can be found under the Event categories section.

Asynchronous event processor

The events stored in the database will be picked up and sent by a regularly executed job.

This job is a Fineract job, scheduled to run for every minute and will pick a number of events in order. Those events will be put onto the downstream message channel in the same order as they were raised.

Purging events

The events database table is going to grow continuously. That’s why Fineract has a purging functionality in place that’s gonna delete old and already sent events.

It’s implemented as a Fineract job and is disabled by default. It’s called TBD.

Usage

Using the event framework is quite simple. First, it has to be enabled through properties or environment variable.

The respective options are the following:

  • the fineract.events.external.enabled property

  • the FINERACT_EXTERNAL_EVENTS_ENABLED environment variable

These configurations accept a boolean value; true or false.

The key component to interact with is the BusinessEventNotifierService#notifyPostBusinessEvent method.

Raising events

Raising events is really easy. An instance of a BusinessEvent interface is needed, that’s going to be the event. There are plenty of them available already in the Fineract codebase.

And that’s pretty much it. Everything else is taken care of in terms of event data persisting and later on putting it onto a message channel.

An example of event raising:

@Override
public CommandProcessingResult createClient(final JsonCommand command) {
    ...
    businessEventNotifierService.notifyPostBusinessEvent(new ClientCreateBusinessEvent(newClient));
    ...
    return ...;
}
The above code is copied from the ClientWritePlatformServiceJpaRepositoryImpl class.
Example event message content

Since the message is serialized into binary format, it’s hard to represent in the documentation therefore here’s a JSON representation of the data, just as an example.

{
    "id": 121,
    "source": "a65d759d-04f9-4ddf-ac52-34fa5d1f5a25",
    "type": "LoanApprovedBusinessEvent",
    "category": "Loan",
    "createdAt": "2022-09-05T10:15:30",
    "tenantId": "default",
    "idempotencyKey": "abda146d-68b5-48ca-b527-16d2b7c5daef",
    "dataschema": "org.apache.fineract.avro.loan.v1.LoanAccountDataV1",
    "data": "..."
}
The source attribute refers to an ID that’s identifying the producer service. Fineract will regenerate this ID upon each application startup.
Raising bulk events

Raising bulk events is really easy as well. The 2 key methods are:

  • BusinessEventNotifierService#startExternalEventRecording

  • BusinessEventNotifierService#stopExternalEventRecording

First, you have to start recording your events. This recording will be applied for the current thread. And then you can raise as many events as you want with the regular BusinessEventNotifierService#notifyPostBusinessEvent method, but they won’t get saved to the database immediately. They’ll get "recorded" into an internal buffer.

When you stop recording using the method above, all the recorded events will be saved as a bulk event to the database; and serialized appropriately.

From then on, the bulk event works just like any of the event. It’ll be picked up by the processor to send it to a message channel.

Event categories

TBD

Selective event producing

TBD

Customizations

The framework provides a number of customization options:

  • Creating new events (that’s already given by the Business Events)

  • Creating new Avro schemas

  • Customizing what data gets serialized for existing events

In the upcoming sections, that’s what going to be discussed.

Creating new events

Creating new events is super easy. Just create an implementation of the BusinessEvent interface and that’s it.

From then on, you can raise those events in the system, although you can’t publish them to an external message channel. If you have the event framework enabled, it’s going to fail with not finding the appropriate serializer for your business event.

There are existing serializers which might be able to handle your new event. For example the LoanBusinessEventSerializer is capable of handling all LoanBusinessEvent subclasses so there’s no need to create a brand new serializer.

The interface looks the following:

BusinessEvent.java
public interface BusinessEvent<T> {

    T get();

    String getType();

    String getCategory();
}

Quite simple. The get method should return the data you want to pass within the event instance. The getType method returns the name of the business event that’s gonna be saved as the type into the database.

Creating a new business event only means that it can be used for raising an event. To make it compatible with the event framework and to be sent to a message channel, some extra work is needed which are described below.
Creating new Avro schemas and serializers

First let’s talk about the event serializers because that’s what’s needed to make a new event compatible with the framework.

The serializer has a special interface, BusinessEventSerializer.

BusinessEventSerializer.java
public interface BusinessEventSerializer {

    <T> boolean canSerialize(BusinessEvent<T> event);

    <T> byte[] serialize(BusinessEvent<T> rawEvent) throws IOException;

    Class<? extends GenericContainer> getSupportedSchema();
}

An implementation of this interface shall be registered as a Spring bean, and it’ll be picked up automatically by the framework.

You can look at the existing serializers for implementation ideas.

New Avro schemas can be easily created. Just create a new Avro schema file in the fineract-avro-schemas project under the respective bounded context folder, and it will be picked up automatically by the code generator.

BigDecimal support in Avro schemas

Apache Avro by default doesn’t support complex types like a BigDecimal. It has to be implemented using a custom snippet like this:

{
    "logicalType": "decimal",
    "precision": 20,
    "scale": 8,
    "type": "bytes"
}

It’s a 20 precision and 8 scale BigDecimal.

Obviously it’s quite challenging to copy-paste this snippet to every single BigDecimal field, so there’s a customization in place for Fineract.
The type bigdecimal is supported natively, and you’re free to use it like this:

{
    "default": null,
    "name": "principal",
    "type": [
        "null",
        "bigdecimal"
    ]
}
This bigdecimal type will be simple replaced with the BigDecimal snippet showed above during the compilation process.
Custom data serialization for existing events

In case there’s a need some extra bit of information within the event message that the default serializers are not providing, you can override this behavior by registering a brand-new custom serializer (as shown above).

Since there’s a priority order of serializers, the only thing the custom serializer need to do is to be annotated by the @Order annotation or to implement the Ordered interface.

An example custom serializer with priority looks the following:

@Component
@RequiredArgsConstructor
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CustomLoanBusinessEventSerializer implements BusinessEventSerializer {
    ...

    @Override
    public <T> boolean canSerialize(BusinessEvent<T> event) {
        return ...;
    }

    @Override
    public <T> byte[] serialize(BusinessEvent<T> rawEvent) throws IOException {
        ...
        ByteBuffer buffer = avroDto.toByteBuffer();
        return byteBufferConverter.convert(buffer);
    }

    @Override
    public Class<? extends GenericContainer> getSupportedSchema() {
        return ...;
    }
}
All the default serializers are having Ordered.LOWEST_PRECEDENCE.

Appendix A: Properties and environment variables

Property name Environment variable Default value Description

fineract.events.external.enabled

FINERACT_EXTERNAL_EVENTS_ENABLED

false

Whether the external event sending is enabled or disabled.

Fineract Development Environment

TBD

Git

TBD

GPG

TBD

Committers

Please make sure to provide your GPG fingerprint in your Apache committer profile at id.apache.org.

Docker

TBD

Docker Compose

TBD

Podman

TBD

Rancher Docker Desktop

TBD

Gradle

TBD

IDE

TBD

IntelliJ

TBD

Eclipse

TBD

VSCode

TBD

Kubernetes

TBD

Minikube

TBD

Microk8s

TBD

K3d

TBD

Helm Charts

TBD

Tools

TBD

SDKMAN

We recommend using SKDMAN to manage the following developer tools:

  • JDK

  • Spring Boot CLI

  • Gradle (if you need a global installation)

  • AsciidoctorJ

TBD

Brew

MacOS

TBD

Linux

TBD

Custom Modules

Currently modules are a proof of concept feature in Fineract.

Introduction

Creating customizations for Fineract services is easy. The method described here will work both with our future module guidelines (aka "clean room" modules) and with the intermediary solution we will put in place to avoid major refactorings.

The folder structure for modules is based on a convention that ensures that your extensions don’t clash with Fineract’s internals. This is to make sure that your downstream forks of Fineract are easy to sync. In the past we had all kinds of strategies to add custom code - including editing existing sources in fineract-provider. This is not recommended.

At the moment the only service(s) we prepared to be overridden/replaced are org.apache.fineract.portfolio.note.service.NoteReadPlatformService and org.apache.fineract.portfolio.note.service.NoteWritePlatformService. Please reach out on the developer mailing list if you need other services.

The recommended folder structure is very simple. If you follow this recommendation you’ll get some additional benefits, e. g. you don’t even have to edit settings.gradle to include your new custom modules. Your modules will also be automatically included in a custom Fineract Docker image build that you can use for your production deployments.

Let’s assume your company/org is called "ACME Inc." and you are trying to (fully/partially) replace an existing Fineract service, let’s say those in org.apache.fineract.portfolio.note. The recommended folder structure would then look something like this:

Diagram

As soon as we can publish Fineract module JARs to Maven Central you’ll have more freedom to setup your projects (including to setup separate Git repos). But for now please follow these instructions:

  1. Create a folder under custom and name it according to your company/organisation (e. g. acme if your company is ACME Inc.); this way your custom modules can’t clash even with other companies' modules

  2. Under your company folder create a folder for the category or domain your module is targeting; e. g. "loan", "client", "account" etc.

  3. Finally, setup library folders for the actual modules you want to create; usually that will be to replace/extend some existing service, so there could be a service folder, maybe even a core folder, e. g. if you want to add additional DTOs etc.; we have also an example for COB business steps

  4. Per category/domain you should have a starter library; means: a Spring Boot auto-configuration setup that makes including your module in Fineract easier ("hands-free"); the necessary parts for a auto-configuration library are a Spring Java configuration class (annotated with @Configuration) and a text file at META-INF/spring.factories in your starter resource folder:

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    com.acme.fineract.portfolio.note.starter.AcmeNoteAutoConfiguration

    Please make sure that your module libraries have proper build.gradle files:

    description = 'ACME Corp.: Fineract Note Service'
    
    group = 'com.acme.fineract.portfolio.note'
    
    archivesBaseName = 'acme-fineract-note-service'
    
    apply from: 'dependencies.gradle'
    You don’t need to edit settings.gradle to add your modules/libraries. If you follow above convention they’ll get included automatically.
  5. The dependency.gradle file could look something like this:

dependencies {
    implementation(project(':fineract-provider'))
    compileOnly('org.springframework.boot:spring-boot-autoconfigure')
}
We’ve included by default some basic and useful dependencies for all custom modules, like Slf4j, Lombok, the usual testing frameworks (JUnit, Cucumber, Mockito etc.)
Do not include your custom module in `fineract-provider’s dependency.gradle file. This creates a circular dependency and will fail your build.

Custom Services

We are still trying to figure out which internal services make most sense to be pluggable. Please join the discussion and let us know if you have a specific requirement.

Note Service

The Note service is responsible for …​ TBD

We chose the note service because it’s interface is very simple and has not many cross dependencies.
Interfaces
Note Read Service Interface
package org.apache.fineract.portfolio.note.service;

import java.util.Collection;
import org.apache.fineract.portfolio.note.data.NoteData;

public interface NoteReadPlatformService {

    NoteData retrieveNote(Long noteId, Long resourceId, Integer noteTypeId);

    Collection<NoteData> retrieveNotesByResource(Long resourceId, Integer noteTypeId);
}
Note Write Service Interface
package org.apache.fineract.portfolio.note.service;

import java.util.Collection;
import org.apache.fineract.portfolio.note.data.NoteData;

public interface NoteReadPlatformService {

    NoteData retrieveNote(Long noteId, Long resourceId, Integer noteTypeId);

    Collection<NoteData> retrieveNotesByResource(Long resourceId, Integer noteTypeId);
}
Auto Start Configuration

The rules to replace the Note services are very simple. If you provide an alternative implementation of the services then the default implementations will not be loaded.

Note Auto Starter Configuration
package org.apache.fineract.portfolio.note.starter;

import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
import org.apache.fineract.portfolio.group.domain.GroupRepository;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepositoryWrapper;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
import org.apache.fineract.portfolio.note.domain.NoteRepository;
import org.apache.fineract.portfolio.note.serialization.NoteCommandFromApiJsonDeserializer;
import org.apache.fineract.portfolio.note.service.NoteReadPlatformService;
import org.apache.fineract.portfolio.note.service.NoteReadPlatformServiceImpl;
import org.apache.fineract.portfolio.note.service.NoteWritePlatformService;
import org.apache.fineract.portfolio.note.service.NoteWritePlatformServiceJpaRepositoryImpl;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;

@Configuration
public class NoteAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public NoteReadPlatformService noteReadPlatformService(JdbcTemplate jdbcTemplate) {
        return new NoteReadPlatformServiceImpl(jdbcTemplate);
    }

    @Bean
    @ConditionalOnMissingBean
    public NoteWritePlatformService noteWritePlatformService(NoteRepository noteRepository, ClientRepositoryWrapper clientRepository,
            GroupRepository groupRepository, LoanRepositoryWrapper loanRepository, LoanTransactionRepository loanTransactionRepository,
            NoteCommandFromApiJsonDeserializer fromApiJsonDeserializer) {
        return new NoteWritePlatformServiceJpaRepositoryImpl(noteRepository, clientRepository, groupRepository, loanRepository,
                loanTransactionRepository, fromApiJsonDeserializer);
    }
}

Custom Business Steps

It very easy to add your own business steps to Fineract’s default steps:

  1. Create a custom module (e. g. custom/acme/steps, follow the instructions on how to create a custom module)

  2. Create a class that implements interace org.apache.fineract.cob.COBBusinessStep

  3. Provide the custom database migration to add the necessary information about your business step in table m_batch_business_steps

Business Step Interface
package org.apache.fineract.cob;

import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;

public interface COBBusinessStep<T extends AbstractPersistableCustom> {

    T execute(T input);

    String getEnumStyledName();

    String getHumanReadableName();
}

Business Step Implementation

Custom Business Step Implementation Example
package com.acme.fineract.loan.cob;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.cob.loan.LoanCOBBusinessStep;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanAccountDomainService;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

@Slf4j
@Component
@RequiredArgsConstructor
public class AcmeNoopBusinessStep implements LoanCOBBusinessStep, InitializingBean {

    private static final String ENUM_STYLED_NAME = "ACME_LOAN_NOOP";

    private static final String HUMAN_READABLE_NAME = "ACME Loan Noop";

    // NOTE: just to demonstrate that dependency injection is working
    private final LoanAccountDomainService loanAccountDomainService;

    @Override
    public void afterPropertiesSet() throws Exception {
        log.warn("Acme COB Loan: '{}'", getClass().getCanonicalName());
    }

    @Override
    public Loan execute(Loan input) {
        return input;
    }

    @Override
    public String getEnumStyledName() {
        return ENUM_STYLED_NAME;
    }

    @Override
    public String getHumanReadableName() {
        return HUMAN_READABLE_NAME;
    }
}

As you can see this implementation is very simple and doesn’t do much. There are some simple conventions though that you should follow implementing your own business steps:

  1. Make sure the value returned by method getEnumStyledName() is unique; it’s a good idea to choose a prefix that reflects the name of your organization (in this example ACME_)

  2. You have more freedom for the value returned by getHumanReadableName(), but it’s a good idea to keep this value as unique as possible

Business Step Database Migration

Business Step Database Migration Example
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
    <changeSet author="acme" id="1">
        <insert tableName="m_batch_business_steps">
            <column name="job_name" value="LOAN_CLOSE_OF_BUSINESS"/>
            <column name="step_name" value="ACME_LOAN_NOOP"/>
            <column name="step_order" value="5"/>
        </insert>
    </changeSet>
</databaseChangeLog>
See also chapter about batch jobs in this documentation.

Custom Loan Transaction Processors

Fineract has 7 built-in loan transaction processors:

  1. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.CreocoreLoanRepaymentScheduleTransactionProcessor

  2. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.EarlyPaymentLoanRepaymentScheduleTransactionProcessor

  3. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.FineractStyleLoanRepaymentScheduleTransactionProcessor

  4. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.HeavensFamilyLoanRepaymentScheduleTransactionProcessor

  5. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.InterestPrincipalPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor

  6. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.PrincipalInterestPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor

  7. org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.RBILoanRepaymentScheduleTransactionProcessor

Default Loan Transaction Processor configuration
    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.creocore.enabled")
    public CreocoreLoanRepaymentScheduleTransactionProcessor creocoreLoanRepaymentScheduleTransactionProcessor() {
        return new CreocoreLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.early-repayment.enabled")
    public EarlyPaymentLoanRepaymentScheduleTransactionProcessor earlyPaymentLoanRepaymentScheduleTransactionProcessor() {
        return new EarlyPaymentLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.mifos-standard.enabled")
    public FineractStyleLoanRepaymentScheduleTransactionProcessor fineractStyleLoanRepaymentScheduleTransactionProcessor() {
        return new FineractStyleLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.heavensfamily.enabled")
    public HeavensFamilyLoanRepaymentScheduleTransactionProcessor heavensFamilyLoanRepaymentScheduleTransactionProcessor() {
        return new HeavensFamilyLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.interest-principal-penalties-fees.enabled")
    public InterestPrincipalPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor interestPrincipalPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor() {
        return new InterestPrincipalPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.principal-interest-penalties-fees.enabled")
    public PrincipalInterestPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor principalInterestPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor() {
        return new PrincipalInterestPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor();
    }

    @Bean
    @ConditionalOnProperty("fineract.loan.transactionprocessor.rbi-india.enabled")
    public RBILoanRepaymentScheduleTransactionProcessor rbiLoanRepaymentScheduleTransactionProcessor() {
        return new RBILoanRepaymentScheduleTransactionProcessor();
    }

All default processor implementations are enabled by default, but can also be prevented from being loaded into memory by a simple configuration in application.properties. Use the environment variables you see below in your Kubernetes and Docker Compose deployments to override the default behavior.

Default Loan Transaction Processor Application Properties
fineract.loan.transactionprocessor.creocore.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_CREOCORE_ENABLED:true}
fineract.loan.transactionprocessor.early-repayment.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_EARLY_REPAYMENT_ENABLED:true}
fineract.loan.transactionprocessor.mifos-standard.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_MIFOS_STANDARD_ENABLED:true}
fineract.loan.transactionprocessor.heavensfamily.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_HEAVENSFAMILY_ENABLED:true}
fineract.loan.transactionprocessor.interest-principal-penalties-fees.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_INTEREST_PRINCIPAL_PENALTIES_FEES_ENABLED:true}
fineract.loan.transactionprocessor.principal-interest-penalties-fees.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_PRINCIPAL_INTEREST_PENALTIES_FEES_ENABLED:true}
fineract.loan.transactionprocessor.rbi-india.enabled=${FINERACT_LOAN_TRANSACTIONPROCESSOR_RBI_INDIA_ENABLED:true}

Implement Processors

Loan Transaction Processor Interface
package org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor;

import java.time.LocalDate;
import java.util.List;
import java.util.Set;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.portfolio.loanaccount.domain.ChangedTransactionDetail;
import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;

public interface LoanRepaymentScheduleTransactionProcessor {

    String getCode();

    String getName();

    boolean accept(String s);

    void handleTransaction(LoanTransaction loanTransaction, MonetaryCurrency currency, List<LoanRepaymentScheduleInstallment> installments,
            Set<LoanCharge> charges);

    ChangedTransactionDetail handleTransaction(LocalDate disbursementDate, List<LoanTransaction> repaymentsOrWaivers,
            MonetaryCurrency currency, List<LoanRepaymentScheduleInstallment> repaymentScheduleInstallments, Set<LoanCharge> charges);

    void handleWriteOff(LoanTransaction loanTransaction, MonetaryCurrency loanCurrency,
            List<LoanRepaymentScheduleInstallment> repaymentScheduleInstallments);

    Money handleRepaymentSchedule(List<LoanTransaction> transactionsPostDisbursement, MonetaryCurrency currency,
            List<LoanRepaymentScheduleInstallment> installments);

    /**
     * Used in interest recalculation to introduce new interest only installment.
     */
    boolean isInterestFirstRepaymentScheduleTransactionProcessor();

    void handleRefund(LoanTransaction loanTransaction, MonetaryCurrency currency, List<LoanRepaymentScheduleInstallment> installments,
            Set<LoanCharge> charges);

    void handleChargeback(LoanTransaction loanTransaction, MonetaryCurrency currency, Money overpaidAmount,
            List<LoanRepaymentScheduleInstallment> installments);

    void processTransactionsFromDerivedFields(List<LoanTransaction> transactionsPostDisbursement, MonetaryCurrency currency,
            List<LoanRepaymentScheduleInstallment> installments, Set<LoanCharge> charges);

}
Custom Loan Transaction Processor Example
package com.acme.fineract.loan.processor;

import org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.FineractStyleLoanRepaymentScheduleTransactionProcessor;
import org.springframework.stereotype.Component;

@Component
public class AcmeLoanRepaymentScheduleTransactionProcessor extends FineractStyleLoanRepaymentScheduleTransactionProcessor {

    private static final String STRATEGY_CODE = "acme-standard-strategy";

    private static final String STRATEGY_NAME = "ACME Corp.: standard loan transaction processing strategy";

    @Override
    public String getCode() {
        return STRATEGY_CODE;
    }

    @Override
    public String getName() {
        return STRATEGY_NAME;
    }

}

The example implementation doesn’t do much. We are just overriding one of the default processor implementations org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.impl.FineractStyleLoanRepaymentScheduleTransactionProcessor and give the custom processor it’s own lookup code and name (descriptive text for display in UIs, e. g. when configuring a loan product). As usual it is a good idea to follow some simple conventions:

  1. Make sure the value returned by getCode() is unique. Prefixing it with characters that reflect your organization name (here acme-) is a good idea.

  2. You have more freedom for the descriptive test returned by getName(), but it is still a good idea to keep the value unique to avoid confusion.

Method getCode()

Lookup value that is used to pick a loan transaction processor (see processor factory).

Method getName()

Descriptive text about the loan transaction processor that is mostly used in user interfaces.

Method handleTransaction()

TBD

Method handleWriteOff()

TBD

Method handleRepaymentSchedule()

TBD

Method isInterestFirstRepaymentScheduleTransactionProcessor()

TBD

Method handleRefund()

TBD

Method handleChargeback()

TBD

Method processTransactionsFromDerivedFields()

TBD

Override Processor Factory

The processor factory has no reference to any specific implementation of the loan transaction processor interface. All avaible implementations will be injected here (internal default and custom implementations). Processor instances can be looked up via method determineProcessor(). You can pass either the code of the processor or the processor’s name to look it up. If a matching processor can’t be found then the factory function will either return the default instance or fails with an exception depending on the configuration in application.properties.

It is preferable to use the processor code to lookup processor instances. Lookups via processor names are only done in the import service via Excel sheets (should be fixed).
Loan Transaction Processor Factory Implementation
package org.apache.fineract.portfolio.loanaccount.domain;

import java.util.List;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.LoanRepaymentScheduleTransactionProcessor;
import org.apache.fineract.portfolio.loanaccount.exception.LoanTransactionProcessingStrategyNotFoundException;
import org.apache.fineract.portfolio.loanproduct.data.TransactionProcessingStrategyData;
import org.springframework.beans.factory.annotation.Value;

@Slf4j
@RequiredArgsConstructor
public class LoanRepaymentScheduleTransactionProcessorFactory {

    private final LoanRepaymentScheduleTransactionProcessor defaultLoanRepaymentScheduleTransactionProcessor;

    private final List<LoanRepaymentScheduleTransactionProcessor> processors;

    @Value("${fineract.loan.transactionprocessor.error-not-found-fail}")
    private Boolean errorNotFoundFail;

    public LoanRepaymentScheduleTransactionProcessor determineProcessor(final String transactionProcessingStrategy) {

        Optional<LoanRepaymentScheduleTransactionProcessor> processor = processors.stream()
                .filter(p -> p.accept(transactionProcessingStrategy)).findFirst();

        if (processor.isEmpty() && Boolean.TRUE.equals(errorNotFoundFail)) {
            throw new LoanTransactionProcessingStrategyNotFoundException(transactionProcessingStrategy);
        } else {
            return processor.orElse(defaultLoanRepaymentScheduleTransactionProcessor);
        }
    }

    public List<TransactionProcessingStrategyData> getStrategies() {
        return processors.stream().map(p -> new TransactionProcessingStrategyData(null, p.getCode(), p.getName())).toList();
    }
}

This is the default factory auto-configuration.

Loan Transaction Processor Factory Auto-Configuration
    @Bean
    @ConditionalOnMissingBean(LoanRepaymentScheduleTransactionProcessorFactory.class)
    public LoanRepaymentScheduleTransactionProcessorFactory loanRepaymentScheduleTransactionProcessorFactory(
            PrincipalInterestPenaltyFeesOrderLoanRepaymentScheduleTransactionProcessor defaultLoanRepaymentScheduleTransactionProcessor,
            List<LoanRepaymentScheduleTransactionProcessor> processors) {
        return new LoanRepaymentScheduleTransactionProcessorFactory(defaultLoanRepaymentScheduleTransactionProcessor, processors);
    }

If you need then you can override this, e.g. because you want to set a different default processor then you can do so in your custom module’s auto-configuration.

Custom Loan Transaction Processor Factory Auto-Configuration Example
    @Bean
    public LoanRepaymentScheduleTransactionProcessorFactory loanRepaymentScheduleTransactionProcessorFactory(
            AcmeLoanRepaymentScheduleTransactionProcessor defaultLoanRepaymentScheduleTransactionProcessor,
            List<LoanRepaymentScheduleTransactionProcessor> processors) {
        return new LoanRepaymentScheduleTransactionProcessorFactory(defaultLoanRepaymentScheduleTransactionProcessor, processors);
    }
Processor Lookup Failure Configuration Property
fineract.loan.transactionprocessor.error-not-found-fail=${FINERACT_LOAN_TRANSACTIONPROCESSOR_ERROR_NOT_FOUND_FAIL:true}

Custom Database Migration

If database migrations are needed as part of your customizations then you can add your own migration scripts. This is again based on conventions:

  1. Create folders db/custom-changelog in one of your resources folders; we recommend using the resources folder in your starter library, but actually any of your custom libs will do.

  2. Under db/custom-changelog create an XML changelog file, e. g. changelog-acme-note.xml; you are free to choose a name for this file, but we recommend being consistent to avoid classpath conflicts.

  3. Under db/custom-changelog create a folder parts for your specific changelogs

Diagram

And here an example migration script:

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
    <changeSet author="acme" id="1">
        <createTable tableName="acme_note_dummy">
            <column autoIncrement="true" name="id" type="BIGINT">
                <constraints nullable="false" primaryKey="true"/>
            </column>
            <column name="name" type="VARCHAR(100)">
                <constraints unique="true"/>
            </column>
            <column name="description" type="VARCHAR(500)"/>
        </createTable>
    </changeSet>
</databaseChangeLog>
By default, custom database migration changelogs are executed in context tenant_db. That makes sure your changes will be applied to the tenant database (read: main database and not the tenant store database). In theory you could also target the tenant configuration database, but it’s not recommended to do that.

Deploying Custom Modules

Custom modules (better: the JAR files) only need to be dropped in Fineract’s libs folder if you run Fineract from the Spring Boot JAR file. Dynamic loading of external JARs is provided since Fineract version 1.5.0. For your convenience we’ve created a separate Docker image module that automatically includes your custom modules (see custom/docker). You can build this Docker image with

./gradlew :custom:docker:jibDockerBuild

The Docker image with included custom modules is called fineract-custom.

We’ll provide soon a way to customize the Docker image parameters (image name, JVM implementation, JVM args, ports etc.).

Outlook

If this proof of concept is accepted we could prepare more of Fineract’s internal services to be replaceable. This approach works already very well even if we don’t have proper JAR libraries published on Maven Central. It’s an important goal to separate customized code from Fineract’s internals to have soon real modules.

Security

TBD

OAuth

Fineract has a (basic) OAuth2 support based on Spring Boot Security. Here’s how to use it:

Build

You must re-build the distribution JAR (or WAR) using the special -Psecurity=oauth flag:

./gradlew bootRun -Psecurity=oauth

Downloads from fineract.apache.org, or using e.g. the hub.docker.com/r/apache/fineract container image, or on www.fineract.dev, this will not work, because they have not been built using this flag.

Previous versions of Fineract included a built-in authorisation server for issuing OAuth tokens. However, as the spring-security-oauth2 package was deprecated and replaced by built-in OAuth support in Spring Security, this is no longer supported as part of the package. Instead, you need to run a separate OAuth authorization server (e.g. github.com/spring-projects/spring-authorization-server) or use a 3rd-party OAuth authorization provider (en.wikipedia.org/wiki/List_of_OAuth_providers)

This instruction describes how to get Fineract OAuth working with a Keycloak (keycloak.org) based authentication provider running in a Docker container. The steps required for other OAuth providers will be similar.

Set up Keycloak

  1. From terminal, run: 'docker run -p 9000:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2'

  2. Go to URL 'http://localhost:9000/auth/admin' and login with admin/admin

  3. Hover your mouse over text "Master" and click on "Add realm"

  4. Enter name "fineract" for your realm

  5. Click on tab "Users" on the left, then "Add user" and create user with username "mifos"

  6. Click on tab "Credentials" at the top, and set password to "password", turning "temporary" setting to off

  7. Click on tab "Clients" on the left, and create client with ID 'community-app'

  8. In settings tab, set 'access-type' to 'confidential' and enter 'localhost' in the valid redirect URIs.

  9. In credentials tab, copy string in field 'secret' as this will be needed in the step to request the access token

Finally we need to change Keycloak configuration so that it uses the username as a subject of the token:

  1. Choose client 'community-app' in the tab 'Clients'

  2. Go to tab 'Mappers' and click on 'Create'

  3. Enter 'usernameInSub' as 'Name'

  4. Choose mapper type 'User Property'

  5. Enter 'username' into the field 'Property' and 'sub' into the field 'Token Claim Name'. Choose 'String' as 'Claim JSON Type'

You are now ready to test out OAuth:

Retrieve an access token from Keycloak

curl --location --request POST \
'http://localhost:9000/auth/realms/fineract/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=mifos' \
--data-urlencode 'password=password' \
--data-urlencode 'client_id=community-app' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'client_secret=<enter the client secret from credentials tab>'

The reply should contain a field 'access_token'. Copy the field’s value and use it in the API call below:

Invoke APIs and pass Authorization: bearer …​ header

curl --location --request GET \
'https://localhost:8443/fineract-provider/api/v1/offices' \
--header 'Fineract-Platform-TenantId: default' \
--header 'Authorization: bearer <enter the value of the access_token field>'

Testing

TBD

Cucumber

TBD

Cucumber Cheatsheet

Cucumber is a test framework based on Behavior-Driven Development (BDD). Tests are written in plain text with very basic syntax rules. These rules form a mini language that is called Gherkin.

A specification resembles spoken language. This makes it ideal for use with non-technical people that have domain specific knowledge. The emphasis of Cucumber lies on finding examples to describe your test cases. The few keywords and language rules are easy to explain to anyone (compared JUnit for example).

Keywords

The Gherkin language has the following keywords:

  • Feature

  • Rule

  • Scenario Outline or Scenario Template

  • Example or Scenario

  • Examples or Scenarios

  • Background

  • Given

  • And

  • But

  • When

  • Then

There are a couple of additional signs used in Gherkin:

  • | is as column delimiters in Examples tables

  • with @ you can assign any kind of tags to categorize the specs (or e.g. relate them to certain Jira tickets)

  • # is used to indicate line comments

The tag @ignore is used to skip tests. This is a somewhat arbitrary choice (we could use any other tag to indicate temporarily disabled tests).

Each non-empty line of a test specification needs to start with one of these keywords. The text blocks that follows the keywords are mapped to so called step definitions that contain the actual test code.

A typical Cucumber test specification written in Gherkin looks like this:

Feature: Template Service

  @template
  Scenario Outline: Verify that mustache templates have expected results
    Given A mustache template file <template>
    Given A JSON data file <json>
    When The user merges the template with data
    Then The result should match the content of file <result>

    Examples:
      | template             | json       | result          |
      | hello.mustache       | hello.json | hello.txt       |
      | loan.mustache        | loan.json  | loan.html       |
      | array.loop.mustache  | array.json | array.loop.txt  |
      | array.index.mustache | array.json | array.index.txt |

The corresponding step definitions would look like this:

package org.apache.fineract.template.service;

import static org.junit.jupiter.api.Assertions.assertEquals;

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import io.cucumber.java8.En;
import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.apache.fineract.template.domain.Template;
import org.apache.fineract.template.domain.TemplateMapper;

public class TemplateServiceStepDefinitions implements En {

    private TemplateMergeService tms = new TemplateMergeService();

    private String template;

    private Map<String, Object> data;

    private String result;

    public TemplateServiceStepDefinitions() {
        Given("/^A mustache template file (.*)$/", (String file) -> {
            template = IOUtils.resourceToString("templates/" + file, StandardCharsets.UTF_8,
                    TemplateServiceStepDefinitions.class.getClassLoader());
        });

        Given("/^A JSON data file (.*)$/", (String file) -> {
            data = parse(IOUtils.resourceToString("templates/" + file, StandardCharsets.UTF_8,
                    TemplateServiceStepDefinitions.class.getClassLoader()));
        });

        When("The user merges the template with data", () -> {
            result = compile(template, data);
        });

        Then("/^The result should match the content of file (.*)$/", (String file) -> {
            String expected = IOUtils.resourceToString("results/" + file, StandardCharsets.UTF_8,
                    TemplateServiceStepDefinitions.class.getClassLoader());
            assertEquals(expected, result);
        });
    }

    private String compile(String templateText, Map<String, Object> scope) throws IOException {
        List<TemplateMapper> mappers = new ArrayList<>();
        Template template = new Template("TemplateName", templateText, null, null, mappers);
        return tms.compile(template, scope);
    }

    private Map<String, Object> parse(String data) {
        Gson gson = new Gson();
        Type ssMap = new TypeToken<Map<String, Object>>() {}.getType();
        JsonElement json = JsonParser.parseString(data);
        return gson.fromJson(json, ssMap);
    }
}
This example is an actual test specification that you can find in the fineract-provider module.
Feature

This keyword is used to group scenarios and to group related scenarios. All Gherkin specifications must start with the word Feature.

Descriptions

A description is any non-empty line that doesn’t start with a keyword. Descriptions can be placed under the keywords:

  • Feature

  • Rule

  • Background

  • Example/Scenario

  • Scenario Outline

Rule

Rule is used to group multiple related scenarios together.

Example/Scenario

This is the important part of the specification as it should describe the business logic in more detail with the usage of steps (usually Given, When, Then)

Steps

TBD

Given

TBD

When

TBD

Then

TBD

And, But

TBD

Background

TBD

Scenario Outline

TBD

Examples/Tables

TBD

Outlook

As a proof of concept we’ve converted all unit tests in fineract-provider into Cucumber tests. The more interesting part starts when we’ll attack the integration tests with over 400 mostly business logic related tests. These tests fit very well in Cucumber’s test specification structure (a lot of if-then-else or in Gherkin: Given-When-Then). Migrating all tests will take a while, but we would already recommend trying to implement tests as Cucumber specifications. It should be relatively easy to convert these tests into the new syntax.

Hopefully this will motivate even more people from the broader Fineract community to participate in the project by sharing their domain specific knowledge as Cucumber specifications. Specifications are written in Englisch (although not a technical requirement).

Have a look at the specifications in fineract-provider for an initial inspiration. For more information please see cucumber.io/docs

Unit Testing

TBD

Integration Testing

TBD

Fineract Documentation Guide

TBD

File and Folder Layout

The general rules are
  • keep things as flat as possible (avoid sub-folders as much as possible)

  • DRY (don’t repeat yourself): don’t copy and paste code pieces, use AsciiDoc’s include feature and reference files/-sections from the project folder

  • images are located in fineract-doc/src/docs/en/images (or sub-folders)

  • diagrams are located in fineract-doc/src/docs/en/diagrams (or sub-folders)

  • specific chapters are located in fineract-doc/src/docs/en/chapters

  • every chapter has its own folder and at least one index.adoc file

  • it’s recommended to keep the chapters flat (i. e. no sub-folders in the chapter folders)

  • it’s recommended to create one file per chapter section; like that you can re-arrange sections very easily in the index.adoc file

These rules are not entirely set in stone and could be modified if necessary. If you see any issues then please report them on the mailing list or open a Jira ticket.

AsciiDoc

Cheatsheet

You can find the definitive manual on AsciiDoc syntax at AsciiDoc documentation. To help people get started, however, here is a simpler cheat sheet.

AsciiDoc vs Asciidoctor (format vs tool)

When we refer to AsciiDoc then we mean the language or format that this documentation is written in. AsciiDoc is a markup language similar to Markdown (but more powerful and expressive) designed for technical documentation. You don’t need necessarily any specialized editors or tools to write your documentation in AsciiDoc, a plain text editor will do, but there are plenty of choices that give you a better experience (in this documentation we describe the basic usage with AsciiDoc plugins for IntelliJ, Eclipse and VSCode).

Asciidoctor on the other hand is the command line tool we use to transform documents written in AsciiDoc into HTML and PDF (Epub3 and Docbook are also available). There are three variants available:

  • Asciidoctor (written in Ruby)

  • Asciidoctor.js (written in JavaScript, often used for browser previews)

  • AsciidoctorJ (Java lib that integrates the Ruby implementation via JRuby, e. g. the Asciidoctor Gradle plugin is based on that)

Sometimes you will still find documentation related to the original incarnation of AsciiDoc/tor (written in Python). The format evolved quite a bit since then and the tools try to maintain a certain degree of backward compatibility, but there is no guarantee. We prefer to use the latest language specs as documented here.
Basic AsciiDoc Syntax
Bold

Put asterisks around text to make it bold.

Italics

Use underlines on either side of a string to put text into italics.

Headings

Equal signs (=) are used for heading levels. Each equal sign is a level. Each page can only have one top level (i.e., only one section with a single =).

Levels should be appropriately nested. During the build, validation occurs to ensure that level 3s are preceded by level 2s, level 4s are preceded by level 3s, etc. Including out-of-sequence heading levels (such as a level 3 then a level 5) will not fail the build, but will produce an error.

Code Examples

Use backticks ` for text that should be monospaced, such as code or a class name in the body of a paragraph.

Longer code examples can be separated from text with source blocks.
These allow defining the syntax being used so the code is properly highlighted.

Example Source Block
[source,xml]
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

If your code block will include line breaks, put 4 hyphens (----) before and after the entire block.

Source Block Syntax Highlighting

The HTML output uses Rouge to add syntax highlighting to code examples. This is done by adding the language of the code block after the source, as shown in the above example source block (xml in that case).

Rouge has a long selection of lexers available. You can see the full list at github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers. Use one of the valid short names to get syntax highlighting for that language.

Ideally, we will have an appropriate lexer to use for all source blocks, but that’s not possible.
When in doubt, choose text, or leave it blank.

Importing Code Snippets from Other Files

The build system has the ability to "include" snippets located in other files — even non-AsciiDoc files such as *.java source code files.

We’ve configured a global attribute called {rootdir} that you can use to reference these files consistently from Fineract’s project root folder.

Snippets are bounded by tag comments placed at the start and end of the section you would like to import. Opening tags look like: // tag::snippetName[]. Closing tags follow the format: // end::snippetName[].

Snippets can be inserted into an .adoc file using an include directive, following the format: include::{rootdir}/<directory-under-root-folder>/<file-name>[tag=snippetName].

You could also use relative paths to reference include files, but it is preferred to always use the root folder as a starting point. Like this you can be sure that the preview in your editor of choice works.

For example, if we wanted to highlight a specific section of the following Cucumber test definition (more on that in section Cucumber Testing) ClasspathDuplicatesStepDefinitions.java file located under fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/.

[source,java,indent=0]
----
include::{rootdir}/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/ClasspathDuplicatesStepDefinitions.java[tag=then]
----

For more information on the include directive, see the documentation at docs.asciidoctor.org/asciidoc/latest/directives/include.

Block Titles

Titles can be added to most blocks (images, source blocks, tables, etc.) by simply prefacing the title with a period (.). For example, to add a title to the source block example above:

.Example ID field
[source,xml]
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

When converting content to HTML, Asciidoctor will automatically render many link types (such as http: and mailto:) without any additional syntax. However, you can add a name to a link by adding the URI followed by square brackets:

http://fineract.apache.org/[Fineract Website]

A warning up front, linking to other pages can be a little painful. There are slightly different rules depending on the type of link you want to create, and where you are linking from. The build process includes a validation for internal or inter-page links, so if you can build the docs locally, you can use that to verify you constructed your link properly. With all the below examples, you can add text to display as the link title by putting the display text in brackets after the link, as in:

xref:indexing-guide:schema-api.adoc#modify-the-schema[Modify the Schema]

You can also use the title of the Page or Section you are linking to by using an empty display text.
This is useful in case the title of the page or section changes. In that case you won’t need to change the display text for every link that refers to that page/section.

See an example below:

xref:indexing-guide:schema-api.adoc#modify-the-schema[]
Link to a Section on the Same Page

To link to an anchor (or section title) on the same page, you can simply use double angle brackets (<< >>) around the anchor/heading/section title you want to link to. Any section title (a heading that starts with equal signs) automatically becomes an anchor during conversion and is available for deep linking.

Example

If I have a section on a page that looks like this (from process.adoc):

== Steps

Common parameters for all steps are:

To link to this section from another part of the same process.adoc page, I simply need to put the section title in double angle brackets, as in:

See also the <<Steps>> section.

The section title will be used as the display text; to customize that add a comma after the the section title, then the text you want used for display.

Link to a Section with an Anchor ID

When linking to any section (on the same page or another one), you must also be aware of any pre-defined anchors that may be in use (these will be in double brackets, like [[ ]]).
When the page is converted, those will be the references your link needs to point to.

Example

Take this example from configsets-api.adoc:

[[configsets-create]]
== Create a ConfigSet

To link to this section, there are two approaches depending on where you are linking from:

  • From the same page, simply use the anchor name: <<configsets-create>>.

  • From another page, use the page name and the anchor name: xref:configuration-guide:configsets-api.adoc#configsets-create[].

Link to Another Page

To link to another page or a section on another page, you must refer to the full filename and refer to the section you want to link to.

When you want to refer the reader to another page without deep-linking to a section, Asciidoctor allows this by merely omitting the # and section id.

Example

To construct a link to the process.adoc page, we need to refer to the file name (process.adoc), as well as the module that the file resides in (release/).

It’s preferred to also always use the page name to give the reader better context for where the link goes.
As in:

For more about upgrades, see xref:release:process.adoc[Fineract Release Process].
Link to Another Page in the same folder

If the page that contains the link and the page being linked to reside in the same module, there is no need to include the module name after xref:

Example

To construct a link to the process-step01.adoc page from process.adoc page, we do not need to include the module name because they both reside in the upgrade-notes module.

For more information on the first step of the release process, see the section \xref:process-step01.adoc[].
Link to a Section on Another Page

Linking to a section is the same conceptually as linking to the top of a page, you just need to take a little extra care to format the anchor ID in your link reference properly.

When you link to a section on another page, you must make a simple conversion of the title into the format of the section ID that will be created during the conversion. These are the rules that transform the sections:

Example

TBD

Ordered and Unordered Lists

AsciiDoc supports three types of lists:

  • Unordered lists

  • Ordered lists

  • Labeled lists

Each type of list can be mixed with the other types. So, you could have an ordered list inside a labeled list if necessary.

Unordered Lists

Simple bulleted lists need each line to start with an asterisk (*). It should be the first character of the line, and be followed by a space.

Ordered Lists

Numbered lists need each line to start with a period (.). It should be the first character of the line, and be followed by a space. This style is preferred over manually numbering your list.

Description Lists

These are like question & answer lists or glossary definitions.
Each line should start with the list item followed by double colons (::), then a space or new line. Labeled lists can be nested by adding an additional colon (such as :::, etc.). If your content will span multiple paragraphs or include source blocks, etc., you will want to add a plus sign (+) to keep the sections together for your reader.

We prefer this style of list for parameters because it allows more freedom in how you present the details for each parameter. For example, it supports ordered or unordered lists inside it automatically, and you can include multiple paragraphs and source blocks without trying to cram them into a smaller table cell.
Images

There are two ways to include an image: inline or as a block. Inline images are those where text will flow around the image. Block images are those that appear on their own line, set off from any other text on the page. Both approaches use the image tag before the image filename, but the number of colons after image define if it is inline or a block. Inline images use one colon (image:), while block images use two colons (image::). Block images automatically include a caption label and a number (such as Figure 1). If a block image includes a title, it will be included as the text of the caption. Optional attributes allow you to set the alt text, the size of the image, if it should be a link, float and alignment. We have defined a global attribute {imagesdir} to standardize the location for all images (fineract-doc/src/docs/en/images).

Tables

Tables can be complex, but it is pretty easy to make a basic table that fits most needs.

Basic Tables

The basic structure of a table is similar to Markdown, with pipes (|) delimiting columns between rows:

|===
| col 1 row 1 | col 2 row 1|
| col 1 row 2 | col 2 row 2|
|===

Note the use of |=== at the start and end. For basic tables that’s not exactly required, but it does help to delimit the start and end of the table in case you accidentally introduce (or maybe prefer) spaces between the rows.

Header Rows

To add a header to a table, you need only set the header attribute at the start of the table:

[options="header"]
|===
| header col 1 | header col 2|
| col 1 row 1 | col 2 row 1|
| col 1 row 2 | col 2 row 2|
|===
Defining Column Styles

If you need to define specific styles to all rows in a column, you can do so with the attributes.

This example will center all content in all rows:

[cols="2*^" options="header"]
|===
| header col 1 | header col 2|
| col 1 row 1 | col 2 row 1|
| col 1 row 2 | col 2 row 2|
|===

Alignments or any other styles can be applied only to a specific column. For example, this would only center the last column of the table:

[cols="2*,^" options="header"]
|===
| header col 1 | header col 2|
| col 1 row 1 | col 2 row 1|
| col 1 row 2 | col 2 row 2|
|===
More Options

Tables can also be given footer rows, borders, and captions. You can determine the width of columns, or the width of the table as a whole.

CSV or DSV can also be used instead of formatting the data in pipes.

Admonitions (Notes, Warnings)

AsciiDoc supports several types of callout boxes, called "admonitions":

  • NOTE

  • TIP

  • IMPORTANT

  • CAUTION

  • WARNING

It is enough to start a paragraph with one of these words followed by a colon (such as NOTE:). When it is converted to HTML, those sections will be formatted properly - indented from the main text and showing an icon inline.

You can add titles to admonitions by making it an admonition block. The structure of an admonition block is like this:

.Title of Note
[NOTE]
====
Text of note
====

In this example, the type of admonition is included in square brackets ([NOTE]), and the title is prefixed with a period. Four equal signs give the start and end points of the note text (which can include new lines, lists, code examples, etc.).

STEM Notation Support

We have set up the Ref Guide to be able to support STEM notation whenever it’s needed.

The AsciiMath syntax is supported by default, but LaTeX syntax is also available.

To insert a mathematical formula inline with your text, you can simply write:

stem:[a//b]

MathJax.js will render the formula as proper mathematical notation when a user loads the page. When the above example is converted to HTML, it will look like this to a user: \$a//b\$

To insert LaTeX, preface the formula with latexmath instead of stem:

latexmath:[tp \leq 1 - (1 - sim^{rows})^{bands}]

Long formulas, or formulas which should to be set off from the main text, can use the block syntax prefaced by stem or latexmath:

[stem]
++++
sqrt(3x-1)+(1+x)^2 < y
++++

or for LaTeX:

[latexmath]
++++
[tp \leq 1 - (1 - sim^{rows})^{bands}]
++++

Antora

TBD

Releases

How to Release Apache Fineract documents the process how we make the source code that is available here in this Git repository into a binary release tar.gz available on fineract.apache.org.

Diagram
Figure 4. Release Schedule

Configuration

Before you can start using the Fineract release plugin to create releases you have to configure and setup a couple of things first.

  • All official communication concerning releases happens on the mailing list. Every release manager needs to be a member of and engaging on the mailing list for credibility.

  • Make sure you have edit permissions on the Apache Confluence Wiki

  • You need full permissions on Apache JIRA to be able to move issues to the next release

  • Git committer privileges to be allowed to create tags and the release branch

  • Familiarity with building Fineract locally and creating release distributions is required

  • You need to be a member of the PMC to be able to upload release artifacts; this task can be delegated though

  • A general Familiarity with PGP/GPG is recommended (at least to setup your keypairs), but the release plugin does most of the heavy lifting

  • Make sure to read the release plugin documentation for troubleshooting

Secrets

TBD

Infrastructure Team

A couple of secrets for third party services are automatically configured by the infrastructure team at The Apache Foundation for the Fineract Github account. At the moment this includes environment variables for:

  • Github token (e. g. to publish Github Pages, use the Github API in Github Actions)

  • Docker Hub token (to publish our Docker images)

  • Sonar Cloud token (for our code quality reports)

See also:

Lastpass

It seems that Apache has some kind of org account or similar. Popped up a couple of times in the infrastructure documentation.

TBD

1Password

Other Fineract development related secrets, e. g. for deployments of demo systems on Google Cloud, AWS etc. are managed in a team account at 1Password. At the moment the following committers are members of the 1Password team account:

If you need access or have any questions related to those secrets then please reach out to one of the team members.

GPG

Generate GPG key pairs if you don’t already have them and publish them. Please use your Apache email address when creating your GPG keypair. If you already have configured GPG and associated your keypair with a non-Apache email address then please consider creating a separate one just for all things related to Fineract (or Apache in general).

Instructions:

  1. Check your GPG version:

    Input GPG version
    gpg --version
    Output GPG version
    gpg (GnuPG) 2.2.27
    libgcrypt 1.9.4
    Copyright (C) 2021 Free Software Foundation, Inc.
    License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    Home: /home/aleks/.gnupg
    Supported algorithms:
    Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
    Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
            CAMELLIA128, CAMELLIA192, CAMELLIA256
    Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
    Compression: Uncompressed, ZIP, ZLIB, BZIP2
    The insecure hash algorithm SHA1 is still supported in version 2.2.27. SHA1 is obsolete and you don’t want to use it to generate your signature.
  2. Generate your GPG key pair:

    Input generate GPG key pair
    gpg --full-gen-key
    Output generate GPG key pair (step 1: key type selection)
    gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    Please select what kind of key you want:
       (1) RSA and RSA (default)
       (2) DSA and Elgamal
       (3) DSA (sign only)
       (4) RSA (sign only)
      (14) Existing key from card
    Your selection?

    There are four options. The default is to use RSA to create the key pair. Good enough for us.

    Output generate GPG key pair (step 2: key length selection)
    RSA keys may be between 1024 and 4096 bits long.
    What keysize do you want? (2048)

    The default key length is 2048 bits. 1024 is obsolete and a longer 4096 RSA key will not provide more security than 2048 RSA key. Use the default.

    Output generate GPG key pair (step 3: validity selection)
    Requested keysize is 2048 bits
    Please specify how long the key should be valid.
     0 = key does not expire
     <n> = key expires in n days
     <n>w = key expires in n weeks
     <n>m = key expires in n months
     <n>y = key expires in n years
    Key is valid for? (0)2y

    2 years for the validity of your keys should be fine. You can always update the expiration time later on.

    Output generate GPG key pair (step 4: confirmation)
    Key expires at Sun 16 Apr 2024 08:10:24 PM UTC
    Is this correct? (y/N)y

    Confirm if everything is correct.

    Output generate GPG key pair (step 5: provide user details)
    GnuPG needs to construct a user ID to identify your key.
    Real name: Aleksandar Vidakovic
    Email address: aleks@apache.org
    Comment:

    Provide your user details for the key. This is important because this information will be included in our key. It’s one way of indicating who is owner of this key. The email address is a unique identifier for a person. You can leave Comment blank.

    Output generate GPG key pair (step 6: user ID selection)
    You selected this USER-ID:
    "Aleksandar Vidakovic <aleks@apache.org>"
    Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

    Select Okay.

    After the selection of your user ID GPG will ask for a passphrase to protect your private key. Maybe time to open your password manager and generate a secure one and save it in your vault. Once you’ve confirmed your password GPG will start to generate your keys.

    Don’t lose your private key password. You won’t be able to unlock and use your private key without it.
    Output generate GPG key pair (step 7: gpg key pair generation)
    We need to generate a lot of random bytes. It is a good idea to perform
    some other action (type on the keyboard, move the mouse, utilize the
    disks) during the prime generation; this gives the random number
    generator a better chance to gain enough entropy.

    Generating the GPG keys will take a while.

    Output generate GPG key pair (step 8: gpg key pair finished)
    gpg: key 7890ABCD marked as ultimately trusted (1)
    gpg: directory '/home/aleks/.gnupg/openpgp-revocs.d' created
    gpg: revocation certificate stored as '/home/aleks/.gnupg/openpgp-revocs.d/ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCD.rev' (2)
    public and secret key created and signed.
    
    gpg: checking the trustdb
    gpg: marginals needed: 3 completes needed: 1 trust model: PGP
    gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
    gpg: next trustdb check due at 2024-04-16
    pub rsa2048/7890ABCD 2022-04-16 [S] [expires: 2024-04-16] (3)
    Key fingerprint = ABCD EFGH IJKL MNOP QRST UVWX YZ12 3456 7890 ABCD (4)
    uid     [ultimate] Aleksandar Vidakovic <aleks@apache.org> (5)
    sub rsa2048/4FGHIJ56 2022-04-16 [] [expires: 2024-04-16]
    1 GPG created a unique identifier in HEX format for your public key. When someone wants to download your public key, they can refer to it either with your email address or this HEX value.
    2 GPG created a revocation certificate and its directory. You should never share your private key. If your private key is compromised, you need to use your revocation certificate to revoke your key.
    3 The public key is 2048 bits using RSA algorithm and shows the expiration date of 16 Apr 2024. The public key ID 7890ABCD matches the last 8 bits of key fingerprint.
    4 The key fingerprint (ABCD EFGH IJKL MNOP QRST UVWX YZ12 3456 7890 ABCD) is a hash of your public key.
    5 Your name and your email address are shown with information about the subkey.

    Now you can find that there are two files created under ~/.gnupg/private-keys-v1.d/ directory. These two files are binary files with .key extension.

  3. Export your public key:

    gpg --armor --export aleks@apache.org > pubkey.asc
  4. Export Your Private Key:

    gpg --export-secret-keys --armor aleks@apache.org > privkey.asc
  5. Protect Your Private Key and Revocation Certificate

    Your private key should be kept in a safe place, like an encrypted flash drive. Treat it like your house key. Only you can have it and don’t lose it. And you must remember your passphrase, otherwise you can’t unlock your private key.

    You should protect your revocation certificate. Anyone in posession of your revocation certificate, could immediately revoke your public/private key pair and generate fake ones.

Please contact a PMC member to add your GPG public key in Fineract’s Subversion repository. This is necessary to be able to validate published releases.
  1. Upload your GPG key to a keyserver:

    gpg --send-keys ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCD

    Before doing this, make sure that your default keyserver is hkp://keyserver.ubuntu.com/. You can do this by changing the default keyserver in ~/.gnupg/dirmngr.conf:

    keyserver hkp://keyserver.ubuntu.com/

    Alternatively you can provide the keyserver whith the send command:

    gpg --keyserver 'hkp://keyserver.ubuntu.com:11371' --send-keys ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCD

    Another option to publish your key is to submit an armored public key directly at keyserver.ubuntu.com/. You can create the necessary data with this command by providing the email address that you used when you created your key pair:

    gpg --armor --export aleks@apache.org

    Output:

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBF8iGq0BEADGRqeSsOoNDc1sV3L9sQ34KhmoQrACnMYGztx33TD98aWplul+
    jm8uGtMmBus4DJJJap1bVQ1oMehw2mscmDHpfJjLNZ/q+vUqbExx1/CER7XvLryN
    <--- snip --->
    2nHBuBftxDRpDHQ+O5XYwSDSTDMmthPjx0vJGBH4K1kO8XK99e01A6/oYLV2SMKp
    gXXeWjafxBmHT1cM8hoBZBYzgTu9nK5UnllWunfaHXiCBG4oQQ==
    =85/F
    -----END PGP PUBLIC KEY BLOCK-----

    = Email

Official communication related to releases needs to be done with an Apache email address. The Apache Foundation doesn’t provide any real email inboxes anymore and just relays emails to your configured private account (GMail etc.).

At the moment we are supporting only GMail accounts. Please let us know if you have other configuration recipes for other email providers.
GMail

You can configure your GMail account and add another profile to use the Apache relay server if you need to send official messages. Please follow these instructions:

TBD.

To be able to send emails via SMTP with your GMail account you probably need to create an app password. Please follow these instructions:

  1. Go to your Google Account.

  2. Select Security.

  3. Under "Signing in to Google," select App Passwords. You may need to sign in. If you don’t have this option, it might be because:

  4. 2-Step Verification is not set up for your account.

  5. 2-Step Verification is only set up for security keys.

  6. Your account is through work, school, or other organization.

  7. You turned on Advanced Protection.

  8. At the bottom, choose Select app and choose the app you using and then Select device and choose the device you’re using and then Generate.

  9. Follow the instructions to enter the App Password. The App Password is the 16-character code in the yellow bar on your device.

  10. Tap Done.

See also: Google Support: Sign in with App Passwords for more details.

Gradle

TBD

User Properties

There are a couple of properties that contain committer/release manager related secrets. Please add the following properties to your personal global Gradle properties (you will find them at ~/.gradle/gradle.properties in your home folder).

fineract.config.gnupg.keyName=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCD(1)
fineract.config.gnupg.password=******
fineract.config.gnupg.publicKeyring=~/.gnupg/pubring.kbx(2)
fineract.config.gnupg.secretKeyring=~/.gnupg/secring.gpg
fineract.config.smtp.username=aleks@gmail.com (3)
fineract.config.smtp.password=******
fineract.config.name=Aleksandar Vidakovic
fineract.config.email=aleks@apache.org
fineract.config.username=aleks (4)
fineract.config.password=******
1 Make sure you use the full GPG key name (you can list yours via gpg --list-secret-keys --keyid-format=long)
2 GnuPG has it’s own kbx format to store the public key ring. At the moment we are only supporting this format
3 Currently we only have instructions for GMail
4 Apache committer credentials
Never add any personal secrets in the project gradle.properties. Double check that you are not accidentally committing them to Git!
Release Plugin

Creating Apache Fineract releases was a very manual and tedious procedure before we created the Gradle release plugin. It was easy - even with documentation - to forget a detail. Some ideas are borrowed from the excellent JReleaser tool. Unfortunately at the moment we can’t use it for the full release process. Being an Apache project we have certain requirements that are not fully covered by JReleaser.

Release Plugin Configuration
    config {
        username = "${findProperty('fineract.config.username')}"
        password = "${findProperty('fineract.config.password')}"

        doc {
            url = 'git@github.com:apache/fineract-site.git'
            directory = "${System.getProperty("java.io.tmpdir")}/fineract-site"
            branch = "asf-site"
        }
        git {
            dir = "${projectDir.absolutePath}/.git"
            sections = [
                [
                    section: "user",
                    name: "name",
                    value: "${findProperty('fineract.config.name')}",
                ],
                [
                    section: "user",
                    name: "email",
                    value: "${findProperty('fineract.config.email')}",
                ],
                [
                    section: "user",
                    name: "signingkey",
                    value: "${findProperty('fineract.config.gnupg.keyName')}",
                ],
                [
                    section: "commit",
                    name: "gpgsign",
                    value: "true",
                ],
            ]
        }
        template {
            templateDir = "${projectDir}/buildSrc/src/main/resources"
        }
        gpg {
            keyName = "${findProperty('fineract.config.gnupg.keyName')}"
            publicKeyring = "${findProperty('fineract.config.gnupg.publicKeyring')}"
            secretKeyring = "${findProperty('fineract.config.gnupg.secretKeyring')}"
            password = "${findProperty('fineract.config.gnupg.password')}"
        }
        smtp {
            host = 'smtp.gmail.com'
            username = "${findProperty('fineract.config.smtp.username')}"
            password = "${findProperty('fineract.config.smtp.password')}"
            tls = true
            ssl = true
        }
        subversion {
            username = "${findProperty('fineract.config.username')}"
            password = "${findProperty('fineract.config.password')}"
            revision = 'HEAD'
        }
        jira {
            url = 'https://issues.apache.org/jira/rest/api/2/'
            username = "${findProperty('fineract.config.username')}"
            password = "${findProperty('fineract.config.password')}"
        }
        confluence {
            url = 'https://cwiki.apache.org/confluence/rest/api/'
            username = "${findProperty('fineract.config.username')}"
            password = "${findProperty('fineract.config.password')}"
        }
    }

Release Process

TODO:

  • create "Jira anchor ticket" with all issues linked that are going into this release.

  • maintenance: continuously update the "Jira anchor ticket" to make sure we catch all ticket changes

  • maintenance: list tickets that have discrepancies, e. g. tickets still open while associated PR merged, ticket on wrong version (i. e. associated PR already merged before with another release).

TBD

Consider the Gradle plugin commands an experimental feature!
Diagram
Figure 5. Release Process Diagram

Step 1: Heads-Up Email

Description

The RM should, if one doesn’t already exist, first create a new release umbrella issue in JIRA. This issue is dedicated to tracking (a summary of) any discussion related to the planned new release. An example of such an issue is FINERACT-873 - Release Apache Fineract v1.4.0 RESOLVED.

The RM then creates an list of resolved issues & features through an initial check in JIRA for already resolved issues for the release, and then setup a timeline for release branch point. The time for the day the issue list is created to the release branch point must be at least two weeks in order to give the community a chance to prioritize and commit any last minute features and issues they would like to see in the upcoming release.

The RM must then send the pointer to the umbrella issue along with the tentative timeline for branch point to the developer lists. Any work identified as release related that needs to be completed should be added as a sub tasks of the umbrella issue to allow all developers and users to see the overall release progress in one place. The umbrella issue shall also link to any issues still requiring clarification whether or not they will make it into the release.

The RM should then inform users when the git branch is planned to be created, by sending an email based on this template:

[FINERACT] [PROPOSAL] 📦 New release ${project['fineract.release.version']}

Hello everyone,

... based on our "How to Release Apache Fineract" process documented at https://cwiki.apache.org/confluence/x/DRwIB:

I will create a ${project['fineract.release.version']} branch off develop in our git repository at https://github.com/apache/fineract on ${project['fineract.release.date']}.

The release tracking umbrella issue for tracking all activity in JIRA is FINERACT-${project['fineract.release.issue']!'0000'} (https://issues.apache.org/jira/browse/FINERACT-${project['fineract.release.issue']!'0000'}) for this Fineract ${project['fineract.release.version']}.

If you have any work in progress that you would like to see included in this release, please add "blocking" links to the release JIRA issue.

I am the release manager for this release.

Cheers,

${project['fineract.config.name']}



🎉 Powered by Fineract Release Plugin 🎊
Gradle Task
Command
% ./gradlew fineractReleaseStep1 -Pfineract.release.issue=1234 -Pfineract.release.date="Monday, April 25, 2022" -Pfineract.release.version=0.0.0-2b9de03b

Step 2: Clean Up JIRA

Description

Before a release is done, make sure that any issues that are fixed have their fix version setup correctly.

project = FINERACT and resolution = fixed and fixVersion is empty

Move all unresolved JIRA issues which have this release as Fix Version to the next release

project = FINERACT and fixVersion = 0.0.0-2b9de03b and status not in ( Resolved, Done, Accepted, Closed )

You can also run the following query to make sure that the issues fixed for the to-be-released version look accurate:

project = FINERACT and fixVersion = 0.0.0-2b9de03b

Finally, check out the output of the JIRA release note tool to see which tickets are included in the release, in order to do a sanity check.

Gradle Task
Command
% ./gradlew fineractReleaseStep2 -Pfineract.release.version=0.0.0-2b9de03b
This task is not yet automated!

Step 3: Create Release Branch

Description

Communicate with the community. You do not need to start a new email thread on the developer mailing list to notify that you are about to branch, just do it ca. 2 weeks after the initial email, or later, based on the discussion on the initial email.

You do not need to ask committers to hold off any commits until you have branched finished, as it’s always possible to fast-forward the branch to latest develop, or cherry-pick last minute changes to it. People should be able to continue working on the develop branch on bug fixes and great new features for the next release while the release process for the current release is being worked through.

  1. Clone fresh repository copy

    % git clone git@github.com:apache/fineract.git
    % cd fineract
  2. Check that current HEAD points to commit on which you want to base new release branch. Checkout a particular earlier commit if not.

    % git log (1)
    1 Check current branch history. HEAD should point to commit that you want to be base for your release branch
  3. Create a new release branch with name "$Version"

    % git checkout -b 0.0.0-2b9de03b
  4. Push new branch to Apache Fineract repository

    % git push origin 0.0.0-2b9de03b
  5. Add new release notes in Release Folders. The change list can be swiped from the JIRA release note tool (use the "text" format for the change log). See JIRA Cleanup above to ensure that the release notes generated by this tool are what you are expecting.

  6. Send en email announcing the new release branch on the earlier email thread

    [FINERACT] [ANNOUNCE] 🔀 ${project['fineract.release.version']} release branch
    
    Hello everyone,
    
    ... as previously announced, I've just created the release branch for our upcoming ${project['fineract.release.version']} release.
    
    You can continue working and merging PRs to the develop branch for future releases, as always.
    
    The DRAFT release notes are on https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract.  Does anyone see anything missing?
    
    Does anyone have any last minutes changes they would like to see cherry-picked to branch ${project['fineract.release.version']}, or are we good go and actually cut the release based on this branch as it is?
    
    I'll initiate the final stage of actually creating the release on ${project['fineract.release.date']} if nobody objects.
    
    Cheers,
    
    ${project['fineract.config.name']}
Gradle Task
Command
% ./gradlew fineractReleaseStep3 -Pfineract.release.date="Monday, May 10, 2022" -Pfineract.release.version=0.0.0-2b9de03b

Step 4: Freeze JIRA

Description

You first need to close the release in JIRA so that the about to be released version cannot be used as "fixVersion" for new bugs anymore. Go to JIRA "Administer project" page and follow "Versions" in left menu. Table with list of all releases should appear, click on additional menu on the right of your release and choose "Release" option. Submit release date and you’re done.

Gradle Task
Command
% ./gradlew fineractReleaseStep4
This task is not yet automated!

Step 5: Create Release Tag

Description

Next, you create a git tag from the HEAD of the release’s git branch.

% git checkout 0.0.0-2b9de03b
% ./gradlew clean integrationTests (1)
% git tag -a 0.0.0-2b9de03b -m "Fineract 0.0.0-2b9de03b release"
% git push origin 0.0.0-2b9de03b
1 Run additonally manual tests with the community app.
It is important to create so called annotated tags (vs. lightweight) for releases.
Gradle Task
Command
% ./gradlew fineractReleaseStep5 -Pfineract.release.version=0.0.0-2b9de03b

Step 6: Create Distribution

Description

Create source and binary artifacts. Make sure to do some sanity checks. The tar and the release branch should match.

% cd /fineract-release-preparations (1)
% tar -xvf apache-fineract-0.0.0-2b9de03b-src.tar.gz
% git clone git-wip-us.apache.org/repos/asf/fineract.git
% cd fineract/
% git checkout tags/0.0.0-2b9de03b
% cd ..
% diff -r fineract apache-fineract-0.0.0-2b9de03b-src
1 Do a fresh clone of the tag.

Make sure code compiles and tests pass on the uncompressed source.

% cd apache-fineract-0.0.0-2b9de03b-src/fineract-provider (1)
% gradlew clean integrationTest (2)
% gradlew clean build (3)
% gradlew rat (4)
1 Make sure prerequisites are met before running these commands.
2 For running integration tests
3 For building deploy able war
4 For RAT checks
Gradle Task
Command
% ./gradlew fineractReleaseStep6

Step 7: Sign Distribution

Description

All release artifacts must be signed. In order to sign a release you will need a PGP key. You should get your key signed by a few other people. You will also need to receive their keys from a public key server. See the Apache release signing page for more details. Please follow the steps defined in Release Sign.

% gpg --armor --output apache-fineract-0.0.0-2b9de03b-src.tar.gz.asc --detach-sig apache-fineract-0.0.0-2b9de03b-src.tar.gz
% gpg --print-md MD5 apache-fineract-0.0.0-2b9de03b-src.tar.gz > apache-fineract-0.0.0-2b9de03b-src.tar.gz.md5
% gpg --print-md SHA512 apache-fineract-0.0.0-2b9de03b-src.tar.gz > apache-fineract-0.0.0-2b9de03b-src.tar.gz.sha512
% gpg --armor --output apache-fineract-0.0.0-2b9de03b--binary.tar.gz.asc --detach-sig apache-fineract-0.0.0-2b9de03b-binary.tar.gz
% gpg --print-md MD5 apache-fineract-0.0.0-2b9de03b-binary.tar.gz > apache-fineract-0.0.0-2b9de03b-binary.tar.gz.md5
% gpg --print-md SHA512 apache-fineract-0.0.0-2b9de03b-binary.tar.gz > apache-fineract-0.0.0-2b9de03b-binary.tar.gz.sha512
Gradle Task
Command
% ./gradlew fineractReleaseStep7

Step 8: Upload Distribution Staging

Description

Finally create a directory with release name (0.0.0-2b9de03b in this example) in dist.apache.org/repos/dist/dev/fineract and add the following files in this new directory:

  • apache-fineract-0.0.0-2b9de03b-binary.tar.gz.sha

  • apache-fineract-0.0.0-2b9de03b-binary.tar.gz

  • apache-fineract-0.0.0-2b9de03b-binary.tar.gz.asc

  • apache-fineract-0.0.0-2b9de03b-binary.tar.gz.md5

  • apache-fineract-0.0.0-2b9de03b-src.tar.gz.sha

  • apache-fineract-0.0.0-2b9de03b-src.tar.gz

  • apache-fineract-0.0.0-2b9de03b-src.tar.gz.asc

  • apache-fineract-0.0.0-2b9de03b-src.tar.gz.md5

Upload binary and source archives to ASF’s distribution dev (staging) area:

% svn co dist.apache.org/repos/dist/dev/fineract/ fineract-dist-dev
% mkdir fineract-dist-dev/0.0.0-2b9de03b
% cp fineract/build/distributions/* fineract-dist-dev/0.0.0-2b9de03b/
% svn commit
You will need your ASF Committer credentials to be able to access the Subversion host dist.apache.org via.
Gradle Task
Command
% ./gradlew fineractReleaseStep8 -Pfineract.release.version=0.0.0-2b9de03b

Step 9: Verify Distribution Staging

Description

Following are the typical things we need to verify before voting on a release candidate. And the release manager should verify them too before calling out a vote.

Make sure release artifacts are hosted at dist.apache.org/repos/dist/dev/fineract

  • Release candidates should be in format apache-fineract-0.0.0-2b9de03b-binary.tar.gz

  • Verify signatures and hashes. You may have to import the public key of the release manager to verify the signatures. (gpg --recv-key <key id>)

  • Git tag matches the released bits (diff -rf)

  • Can compile successfully from source

  • Verify DISCLAIMER, NOTICE and LICENSE (year etc)

  • All files have correct headers (Rat check should be clean - gradlew rat)

  • No jar files in the source artifacts

  • Integration tests should work

Gradle Task
Command
% ./gradlew fineractReleaseStep9 -Pfineract.release.version=0.0.0-2b9de03b
This task is not yet automated!

Step 10: Start Vote

Description

Voting has to be done on dev@fineract.apache.org. You can close the vote after voting period expires (72 hours) and you accumulate sufficient votes (minimum 3 x +1 PMC votes).

[FINERACT] [VOTE] 🗳️ ${project['fineract.release.version']} for release

Hello everyone,

... we have created Apache Fineract ${project['fineract.release.version']} release, with the artifacts below up for a vote.

It fixes the following issues: https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract

Source & Binary files : https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']}/

Tag to be voted on (rc#): https://gitbox.apache.org/repos/asf?p=fineract.git;a=commit;h=refs/heads/${project['fineract.release.version']}

Fineract's KEYS containing the PGP key we used to sign the release: https://dist.apache.org/repos/dist/dev/fineract/KEYS

Note that this release contains source and binary artifacts.

This vote will be open for 72 hours:

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

Cheers,

${project['fineract.config.name']}
Gradle Task
Command
% ./gradlew fineractReleaseStep10 -Pfineract.release.version=0.0.0-2b9de03b

Step 11: Finish Vote

Description

Upon receiving 3 x +1 from the PMC, or after 72 hours (whichever one comes first), reply to the voting thread and add the prefix "[RESULT]" to the subject line with the results, as follows:

[FINERACT] [VOTE] [RESULT] 🧾️ ${project['fineract.release.version']} for release

<#if (project['fineract.vote'].approve.binding?size + project['fineract.vote'].approve.nonBinding?size > project['fineract.vote'].disapprove.binding?size + project['fineract.vote'].disapprove.nonBinding?size)>
Voting is now closed and has passed with the following tally,

Binding +1s: ${project['fineract.vote'].approve.binding?size}
Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}
<#else>
Voting is now closed and has not passed with the following tally,

Binding +1s: ${project['fineract.vote'].approve.binding?size}
Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}

Binding -1s: ${project['fineract.vote'].disapprove.binding?size}
Non binding -1s: ${project['fineract.vote'].disapprove.nonBinding?size}
</#if>

Here are the detailed results:

<#list project['fineract.vote'].approve.binding>
Binding +1s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>


<#list project['fineract.vote'].approve.nonBinding>
Non binding +1s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>


<#list project['fineract.vote'].disapprove.binding>
Binding -1s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>

<#list project['fineract.vote'].disapprove.nonBinding>
Non binding -1s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>


<#list project['fineract.vote'].noOpinion.binding>
Binding +0s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>

<#list project['fineract.vote'].noOpinion.nonBinding>
Non binding +0s:
    <#items as item>
- ${item.name} (${item.email})
    </#items>
</#list>

<#if (project['fineract.vote'].approve.binding?size + project['fineract.vote'].approve.nonBinding?size > project['fineract.vote'].disapprove.binding?size + project['fineract.vote'].disapprove.nonBinding?size)>
Thanks to everyone who voted! I'll now continue with the rest of the release process.
<#else>
Thanks to everyone who voted! Looks like we have to repeat the vote.
</#if>

${project['fineract.config.name']}
Gradle Task
Command
% ./gradlew fineractReleaseStep11 -Pfineract.release.version=0.0.0-2b9de03b

Step 12: Upload Distribution Release

Description

In order to release you have to checkout release repository located on dist.apache.org/repos/dist/release/fineract and add release artifacts there.

% svn co dist.apache.org/repos/dist/release/fineract fineract-release
% mkdir fineract-release/0.0.0-2b9de03b/
% cp fineract-dist-dev/0.0.0-2b9de03b/* fineract-release/0.0.0-2b9de03b/
% svn add fineract-release/0.0.0-2b9de03b/
% svn commit -m "Fineract Release 0.0.0-2b9de03b" fineract-release/0.0.0-2b9de03b/

You will now get an automated email from the Apache Reporter Service (no-reply@reporter.apache.org), subject "Please add your release data for 'fineract'" to add the release data (version and date) to the database on reporter.apache.org/addrelease.html?fineract (requires PMC membership).

Gradle Task
Command
% ./gradlew fineractReleaseStep12 -Pfineract.release.version=0.0.0-2b9de03b

Step 13: Close Release Branch

Description

As discussed in FINERACT-1154, now that everything is final, please do the following to remove the release branch (and just keep the tag), and make sure that everything on the release tag is merged to develop and that e.g. git describe works:

% git checkout develop
% git branch -D 0.0.0-2b9de03b
% git push origin :0.0.0-2b9de03b
% git checkout develop
% git checkout -b merge-0.0.0-2b9de03b
% git merge -s recursive -Xignore-all-space 0.0.0-2b9de03b  (1)
% git commit
% git push $USER
% hub pull-request
1 Manually resolve merge conflicts, if any
Gradle Task
Command
% ./gradlew fineractReleaseStep13 -Pfineract.release.version=0.0.0-2b9de03b
This task is not yet automated!

Step 14: Update website

Description

Finally update the fineract.apache.org website with the latest release details. The website’s HTML source code is available at github.com/apache/fineract-site.

This step is not yet updated. We are working on a static site generator setup.
Gradle Task
Command
% ./gradlew fineractReleaseStep14 (1)
1 Currently doing nothing. Will trigger in the future the static site generator and publish on Github.
This task is not yet automated!

Step 15: Announcement Email

Description

Send an email to announce@apache.org (sender address must be @apache.org):

[ANNOUNCE] Apache Fineract ${project['fineract.release.version']} Release

The Apache Fineract project is pleased to announce
the release of Apache Fineract ${project['fineract.release.version']}.
The release is available for download from
https://fineract.apache.org/#downloads

Fineract provides a reliable, robust, and affordable solution for entrepreneurs,
financial institutions, and service providers to offer financial services to the
world’s 2 billion underbanked and unbanked. Fineract is aimed at innovative mobile
and cloud-based solutions, and enables digital transaction accounts for all.

This release addressed ${project['fineract.release.issues']?size} issues.

Readme: https://github.com/apache/fineract/blob/${project['fineract.release.version']}/README.md

Release page: https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract

List of fixed issues:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=${project['fineract.release.versionId']}&styleName=Html&projectId=${project['fineract.release.projectId']}

For more information on Apache Fineract please visit
project home page: https://fineract.apache.org

The Apache Fineract Team
Gradle Task
Command
% ./gradlew fineractReleaseStep15 -Pfineract.release.version=0.0.0-2b9de03b

Maintenance Release Process

This is a first attempt to introduce maintenance releases. Some details might change as soon as we get more experience with the process and feedback from the community. The numbers here are still more or less arbitrary, and we’ll adapt as necessary.

Rules

  • hotfix releases are reserved for critical (BLOCKER) bugs and security issues. Probably we’ll have some kind of voting process in place, e. g. "minimum 3 x +1 votes from PMC members"

  • we will support (for now to start) two minor versions back counting from the last release; this would mean that once 1.8.0 is out we would support 1.8.x and 1.7.x, but not 1.6.x and older; this rule is tentative, we’ll see then what we do in the future when we have more feedback.

  • guaranteed backward compatibility with the last minor release; i. e. "1.6.1" is a drop-in replacement for "1.6.0"

  • NO new features, tables, data, REST endpoints

  • NO major (or "minor" framework upgrades); i. e. if we used Spring Boot "2.6.1" in version "1.6.0" of Fineract we can upgrade dependencies to "2.6.10" (unless it breaks something of course), but not to "2.7.2" of Spring Boot

The rest of the release process is the same as for normal releases. In the future we might have smaller time windows for reviews.

Publish Release Artifacts

Requirements

You need to have your GPG keypairs properly set up. The JAR release artifacts (currently only fineract-client) are signed with a Gradle plugin just before being uploaded to the Maven repository. Please make sure that the following properties are set in your private gradle.properties file in your home folder:

signing.keyId=7890ABCD
signing.password=*****
signing.secretKeyRingFile=~/.gnupg/secring.gpg

This is quite similiar to the Fineract release plugin properties for GPG. In one of the next release we’ll merge these two setups to avoid this duplicated configuration.

Maven Repository

We are using the ASF’s official Nexus Maven repository to publish our snapshot and release artifacts.

NPM Registry

For convenience we will be using Github Packages to publish Fineract’s Typescript API client.

TBD

Docker Hub

TBD

Fineract SDKs

TBD

Generate Apache Fineract API Client

Apache Fineract supports client code generation using OpenAPI Generator. It uses OpenAPI Specification Version 3.0.3.

Fineract SDK Java API Client

The fineract-client.jar will eventually be available on Maven Central (watch FINERACT-1102). Until it is, you can quite easily build the latest and greatest version locally from source, see below.

The FineractClient is the entry point to the Fineract SDK Java API Client. Calls is a convenient and recommended utility to simplify the use of the retrofit2.Call type which all API operations return. This permits you to use the API like the FineractClientDemo illustrates:

import org.apache.fineract.client.util.FineractClient;
import static org.apache.fineract.client.util.Calls.ok;

        FineractClient fineract = FineractClient.builder().baseURL("https://demo.fineract.dev/fineract-provider/api/v1/").tenant("default")
                .basicAuth("mifos", "password").build();
        List<RetrieveOneResponse> staff = Calls.ok(fineract.staff.retrieveAll16(1L, true, false, "ACTIVE"));
        String name = staff.get(0).getDisplayName();

Generate API Client

The API client is built as part of the standard overall Fineract Gradle build. The client JAR can be found in fineract-client/build/libs as fineract-client.jar.

If you need to save time to incrementally work on making small changes to Swagger annotations in an IDE, you can execute e.g. the following line in root directory of the project to exclude non-require Gradle tasks:

./gradlew -x compileJava -x compileTest -x spotlessJava -x enhance resolve prepareInputYaml :fineract-client:buildJavaSdk

Validate OpenAPI Spec File

The resolve task in build.gradle file will generate the OpenAPI Spec File for the project. To make sure Swagger Codegen generates a correct library, it is important for the OpenAPI Spec file to be valid. Validation is done automatically by the OpenAPI code generator Gradle plugin. If you still have problems during code generation please use Swagger OpenAPI Validator to validate the spec file.

Fineract Client Documentation

Details

= Apache Fineract REST API

Abstract
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. The reference app (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation. Until we complete the new REST API documentation you still have the legacy documentation available here. Please check the Fineract documentation for more information.

== Access

  • HTTP Basic Authentication basicAuth

  • APIKey KeyParamName: fineract-platform-tenantid, KeyInQuery: false, KeyInHeader: true

== Endpoints

=== AccountNumberFormat

==== POST /accountnumberformats

Operation Id

create

Create an Account number format

===== Description

Note: You may associate a single Account number format for a given account type Mandatory Fields for Account number formats accountType

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAccountNumberFormatsRequest

[PostAccountNumberFormatsRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 5. http response codes
Code Message Datatype

200

OK

[PostAccountNumberFormatsResponse]

===== Samples

==== DELETE /accountnumberformats/{accountNumberFormatId}

Operation Id

delete

Delete an Account number format

===== Description

Note: Account numbers created while this format was active would remain unchanged.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountNumberFormatId

accountNumberFormatId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 6. http response codes
Code Message Datatype

200

OK

[DeleteAccountNumberFormatsResponse]

===== Samples

==== GET /accountnumberformats

Operation Id

retrieveAll3

List Account number formats

===== Description

Example Requests: accountnumberformats accountnumberformats?fields=accountType,prefixType

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 7. http response codes
Code Message Datatype

200

OK

List[[GetAccountNumberFormatsIdResponse]]

===== Samples

==== GET /accountnumberformats/{accountNumberFormatId}

Operation Id

retrieveOne

Retrieve an Account number format

===== Description

Example Requests: accountnumberformats/1 accountnumberformats/1?template=true accountnumberformats/1?fields=accountType,prefixType

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountNumberFormatId

accountNumberFormatId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 8. http response codes
Code Message Datatype

200

OK

[GetAccountNumberFormatsIdResponse]

===== Samples

==== GET /accountnumberformats/template

Operation Id

retrieveTemplate2

Retrieve Account number format Template

===== Description

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 Value Lists Example Request: accountnumberformats/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 9. http response codes
Code Message Datatype

200

OK

[GetAccountNumberFormatsResponseTemplate]

===== Samples

==== PUT /accountnumberformats/{accountNumberFormatId}

Operation Id

update1

Update an Account number format

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountNumberFormatId

accountNumberFormatId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutAccountNumberFormatsRequest

[PutAccountNumberFormatsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 10. http response codes
Code Message Datatype

200

OK

[PutAccountNumberFormatsResponse]

===== Samples

=== AccountTransfers

==== POST /accounttransfers

Operation Id

create4

Create new Transfer

===== Description

Ability to create new transfer of monetary funds from one account to another.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAccountTransfersRequest

[PostAccountTransfersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 11. http response codes
Code Message Datatype

200

OK

[PostAccountTransfersResponse]

===== Samples

==== GET /accounttransfers

Operation Id

retrieveAll18

List account transfers

===== Description

Lists account’s transfers Example Requests: accounttransfers

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

accountDetailId

accountDetailId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 12. http response codes
Code Message Datatype

200

OK

[GetAccountTransfersResponse]

===== Samples

==== GET /accounttransfers/{transferId}

Operation Id

retrieveOne9

Retrieve account transfer

===== Description

Retrieves account transfer Example Requests : accounttransfers/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transferId

transferId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 13. http response codes
Code Message Datatype

200

OK

[GetAccountTransfersPageItems]

===== Samples

==== GET /accounttransfers/template

Operation Id

template5

Retrieve Account Transfer Template

===== Description

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 Value Lists Example Requests: accounttransfers/template?fromAccountType=2&fromOfficeId=1 accounttransfers/template?fromAccountType=2&fromOfficeId=1&fromClientId=1 accounttransfers/template?fromClientId=1&fromAccountType=2&fromAccountId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

fromOfficeId

fromOfficeId

-

null

fromClientId

fromClientId

-

null

fromAccountId

fromAccountId

-

null

fromAccountType

fromAccountType

-

null

toOfficeId

toOfficeId

-

null

toClientId

toClientId

-

null

toAccountId

toAccountId

-

null

toAccountType

toAccountType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 14. http response codes
Code Message Datatype

200

OK

[GetAccountTransfersTemplateResponse]

===== Samples

==== GET /accounttransfers/templateRefundByTransfer

Operation Id

templateRefundByTransfer

Retrieve Refund of an Active Loan by Transfer Template

===== Description

Retrieves Refund of an Active Loan by Transfer TemplateExample Requests : accounttransfers/templateRefundByTransfer?fromAccountId=2&fromAccountType=1& toAccountId=1&toAccountType=2&toClientId=1&toOfficeId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

fromOfficeId

fromOfficeId

-

null

fromClientId

fromClientId

-

null

fromAccountId

fromAccountId

-

null

fromAccountType

fromAccountType

-

null

toOfficeId

toOfficeId

-

null

toClientId

toClientId

-

null

toAccountId

toAccountId

-

null

toAccountType

toAccountType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 15. http response codes
Code Message Datatype

200

OK

[GetAccountTransfersTemplateRefundByTransferResponse]

===== Samples

==== POST /accounttransfers/refundByTransfer

Operation Id

templateRefundByTransferPost

Refund of an Active Loan by Transfer

===== Description

Ability to refund an active loan by transferring to a savings account.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAccountTransfersRefundByTransferRequest

[PostAccountTransfersRefundByTransferRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 16. http response codes
Code Message Datatype

200

OK

[PostAccountTransfersRefundByTransferResponse]

===== Samples

=== AccountingClosure

==== POST /glclosures

Operation Id

createGLClosure

Create an Accounting Closure

===== Description

Mandatory Fields officeId,closingDate

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostGlClosuresRequest

[PostGlClosuresRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 17. http response codes
Code Message Datatype

200

OK

[PostGlClosuresResponse]

===== Samples

==== DELETE /glclosures/{glClosureId}

Operation Id

deleteGLClosure

Delete an accounting closure

===== Description

Note: Only the latest accounting closure associated with a branch may be deleted.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glClosureId

glclosureId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 18. http response codes
Code Message Datatype

200

OK

[DeleteGlClosuresResponse]

===== Samples

==== GET /glclosures/{glClosureId}

Operation Id

retreiveClosure

Retrieve an Accounting Closure

===== Description

Example Requests: glclosures/1 /glclosures/1?fields=officeName,closingDate

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glClosureId

glClosureId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 19. http response codes
Code Message Datatype

200

OK

[GetGlClosureResponse]

===== Samples

==== GET /glclosures

Operation Id

retrieveAllClosures

List Accounting closures

===== Description

Example Requests: glclosures

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 20. http response codes
Code Message Datatype

200

OK

List[[GetGlClosureResponse]]

===== Samples

==== PUT /glclosures/{glClosureId}

Operation Id

updateGLClosure

Update an Accounting closure

===== Description

Once an accounting closure is created, only the comments associated with it may be edited

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glClosureId

glClosureId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutGlClosuresRequest

[PutGlClosuresRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 21. http response codes
Code Message Datatype

200

OK

[PutGlClosuresResponse]

===== Samples

=== AccountingRules

==== POST /accountingrules

Operation Id

createAccountingRule

Create/Define a Accounting rule

===== Description

Define a new Accounting rule. Mandatory Fields name, officeId, accountToDebit OR debitTags, accountToCredit OR creditTags. Optional Fields description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAccountingRulesRequest

[PostAccountingRulesRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 22. http response codes
Code Message Datatype

200

OK

[PostAccountingRulesResponse]

===== Samples

==== DELETE /accountingrules/{accountingRuleId}

Operation Id

deleteAccountingRule

Delete a Accounting Rule

===== Description

Deletes a Accounting rule.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountingRuleId

accountingRuleId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 23. http response codes
Code Message Datatype

200

OK

[DeleteAccountingRulesResponse]

===== Samples

==== GET /accountingrules/{accountingRuleId}

Operation Id

retreiveAccountingRule

Retrieve a Accounting rule

===== Description

Returns the details of a defined Accounting rule. Example Requests: accountingrules/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountingRuleId

accountingRuleId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 24. http response codes
Code Message Datatype

200

OK

[AccountingRuleData]

===== Samples

==== GET /accountingrules

Operation Id

retrieveAllAccountingRules

Retrieve Accounting Rules

===== Description

Returns the list of defined accounting rules. Example Requests: accountingrules

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 25. http response codes
Code Message Datatype

200

OK

List[[GetAccountRulesResponse]]

===== Samples

==== GET /accountingrules/template

Operation Id

retrieveTemplate1

Retrieve Accounting Rule Details Template

===== Description

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 Value Lists Example Request: accountingrules/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 26. http response codes
Code Message Datatype

200

OK

[GetAccountRulesTemplateResponse]

===== Samples

==== PUT /accountingrules/{accountingRuleId}

Operation Id

updateAccountingRule

Update a Accounting Rule

===== Description

Updates the details of a Accounting rule.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountingRuleId

accountingRuleId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutAccountingRulesRequest

[PutAccountingRulesRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 27. http response codes
Code Message Datatype

200

OK

[PutAccountingRulesResponse]

===== Samples

=== AdhocQueryApi

==== POST /adhocquery

Operation Id

createAdHocQuery

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 28. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /adhocquery/{adHocId}

Operation Id

deleteAdHocQuery

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

adHocId

adHocId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 29. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /adhocquery/{adHocId}

Operation Id

retrieveAdHocQuery

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

adHocId

adHocId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 30. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /adhocquery

Operation Id

retrieveAll2

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 31. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /adhocquery/template

Operation Id

template

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 32. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /adhocquery/{adHocId}

Operation Id

update

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

adHocId

adHocId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 33. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Audits

==== GET /audits

Operation Id

retrieveAuditEntries

List Audits

===== Description

Get a 200 list of audits that match the criteria supplied and sorted by audit id in descending order, and are within the requestors' data scope. Also it supports pagination and sorting Example Requests: audits audits?fields=madeOnDate,maker,processingResult audits?makerDateTimeFrom=2013-03-25 08:00:00&makerDateTimeTo=2013-04-04 18:00:00 audits?officeId=1 audits?officeId=1&includeJson=true

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

actionName

actionName

-

null

entityName

entityName

-

null

resourceId

resourceId

-

null

makerId

makerId

-

null

makerDateTimeFrom

makerDateTimeFrom

-

null

makerDateTimeTo

makerDateTimeTo

-

null

checkerId

checkerId

-

null

checkerDateTimeFrom

checkerDateTimeFrom

-

null

checkerDateTimeTo

checkerDateTimeTo

-

null

processingResult

processingResult

-

null

officeId

officeId

-

null

groupId

groupId

-

null

clientId

clientId

-

null

loanid

loanid

-

null

savingsAccountId

savingsAccountId

-

null

paged

paged

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 34. http response codes
Code Message Datatype

200

OK

List[[GetMakerCheckerResponse]]

===== Samples

==== GET /audits/{auditId}

Operation Id

retrieveAuditEntry

Retrieve an Audit Entry

===== Description

Example Requests: audits/20 audits/20?fields=madeOnDate,maker,processingResult

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

auditId

auditId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 35. http response codes
Code Message Datatype

200

OK

[GetMakerCheckerResponse]

===== Samples

==== GET /audits/searchtemplate

Operation Id

retrieveAuditSearchTemplate

Audit Search Template

===== Description

This is a convenience resource. It can be useful when building an Audit Search UI. \"appUsers\" are data scoped to the office/branch the requestor is associated with. Example Requests: audits/searchtemplate audits/searchtemplate?fields=actionNames

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 36. http response codes
Code Message Datatype

200

OK

[GetMakerCheckersSearchTemplateResponse]

===== Samples

=== AuthenticationHTTPBasic

==== POST /authentication

Operation Id

authenticate

Verify authentication

===== Description

Authenticates the credentials provided and returns the set roles and permissions allowed.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAuthenticationRequest

[PostAuthenticationRequest]

X

====== Query Parameters

Name Description Required Default Pattern

returnClientList

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 37. http response codes
Code Message Datatype

200

OK

[PostAuthenticationResponse]

400

Unauthenticated. Please login

<<>>

===== Samples

=== BatchAPI

==== POST /batches

Operation Id

handleBatchRequests

Batch requests in a single transaction

===== Description

The Apache Fineract Batch API is also capable of executing all the requests in a single transaction, by setting a Query Parameter, \"enclosingTransaction=true\". So, if one or more of the requests in a batch returns an erroneous response all of the Data base transactions made by other successful requests will be rolled back. If there has been a rollback in a transaction then a single response will be provided, with a '400' status code and a body consisting of the error details of the first failed request.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

BatchRequest

[BatchRequest]

X

====== Query Parameters

Name Description Required Default Pattern

enclosingTransaction

enclosingTransaction

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 38. http response codes
Code Message Datatype

200

Success

List[[BatchResponse]]

===== Samples

=== BulkImport

==== GET /imports/downloadOutputTemplate

Operation Id

getOutputTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

importDocumentId

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 39. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /imports

Operation Id

retrieveImportDocuments

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

entityType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 40. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /imports/getOutputTemplateLocation

Operation Id

retriveOutputTemplateLocation

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

importDocumentId

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 41. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== BulkLoans

==== POST /loans/loanreassignment

Operation Id

loanReassignment

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 42. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/loanreassignment/template

Operation Id

loanReassignmentTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

fromLoanOfficerId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 43. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== BusinessDateManagement

==== GET /businessdate/{type}

Operation Id

getBusinessDate

Retrieve a specific Business date

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 44. http response codes
Code Message Datatype

200

OK

[BusinessDateResponse]

===== Samples

==== GET /businessdate

Operation Id

getBusinessDates

List all business dates

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 45. http response codes
Code Message Datatype

200

OK

List[[BusinessDateResponse]]

===== Samples

==== POST /businessdate

Operation Id

updateBusinessDate

Update Business Date

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

BusinessDateRequest

[BusinessDateRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 46. http response codes
Code Message Datatype

200

OK

[BusinessDateResponse]

===== Samples

=== BusinessStepConfiguration

==== GET /jobs/{jobName}/available-steps

Operation Id

retrieveAllAvailableBusinessStep

List Business Step Configurations for a Job

===== Description

Returns the available Business Steps for a job

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobName

jobName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 47. http response codes
Code Message Datatype

200

OK

List[[GetBusinessStepConfigResponse]]

===== Samples

==== GET /jobs/names

Operation Id

retrieveAllConfiguredBusinessJobs

List Business Jobs

===== Description

Returns the configured Business Jobs

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 48. http response codes
Code Message Datatype

200

OK

List[[GetBusinessJobConfigResponse]]

===== Samples

==== GET /jobs/{jobName}/steps

Operation Id

retrieveAllConfiguredBusinessStep

List Business Step Configurations for a Job

===== Description

Returns the configured Business Steps for a job

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobName

jobName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 49. http response codes
Code Message Datatype

200

OK

List[[GetBusinessStepConfigResponse]]

===== Samples

==== PUT /jobs/{jobName}/steps

Operation Id

updateJobBusinessStepConfig

List Business Step Configurations for a Job

===== Description

Updates the Business steps execution order for a job

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobName

jobName

X

null

====== Body Parameter

Name Description Required Default Pattern

UpdateBusinessStepConfigRequest

[UpdateBusinessStepConfigRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 50. http response codes
Code Message Datatype

204

OK

List[[GetBusinessStepConfigResponse]]

===== Samples

=== Cache

==== GET /caches

Operation Id

retrieveAll4

Retrieve Cache Types

===== Description

Returns the list of caches. Example Requests: caches

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 51. http response codes
Code Message Datatype

200

OK

List[[GetCachesResponse]]

===== Samples

==== PUT /caches

Operation Id

switchCache

Switch Cache

===== Description

Switches the cache to chosen one.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutCachesRequest

[PutCachesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 52. http response codes
Code Message Datatype

200

OK

[PutCachesResponse]

===== Samples

=== Calendar

==== POST /{entityType}/{entityId}/calendars

Operation Id

createCalendar

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 53. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /{entityType}/{entityId}/calendars/{calendarId}

Operation Id

deleteCalendar

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

calendarId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 54. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/calendars/{calendarId}

Operation Id

retrieveCalendar

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

calendarId

X

null

entityType

X

null

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 55. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/calendars

Operation Id

retrieveCalendarsByEntity

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

====== Query Parameters

Name Description Required Default Pattern

calendarType

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 56. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/calendars/template

Operation Id

retrieveNewCalendarDetails

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 57. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /{entityType}/{entityId}/calendars/{calendarId}

Operation Id

updateCalendar

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

calendarId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 58. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== CashierJournals

==== GET /cashiersjournal

Operation Id

getJournalData1

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

tellerId

-

null

cashierId

-

null

dateRange

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 59. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Cashiers

==== GET /cashiers

Operation Id

getCashierData

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

tellerId

-

null

staffId

-

null

date

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 60. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Centers

==== POST /centers/{centerId}

Operation Id

activate2

Activate a Center | Generate Collection Sheet | Save Collection Sheet | Close a Center | Associate Groups | Disassociate Groups

===== Description

Activate a Center: Centers can be created in a Pending state. This API exists to enable center activation. If the center happens to be already active, this API will result in an error. Close a Center: Centers can be closed if they don’t have any non-closed groups or saving accounts. If the Center has any active groups or savings accounts, this API will result in an error. Associate Groups: This API allows associating existing groups to a center. The groups are listed from the office to which the center is associated. If group(s) is already associated with a center, this API will result in an error. Disassociate Groups: This API allows to disassociate groups from a center. Generate Collection Sheet: This Api retrieves repayment details of all jlg loans under a center as on a specified meeting date. Save Collection Sheet: This Api allows the loan officer to perform bulk repayments of JLG loans for a center on a given meeting date. Showing Request/Response for Close a Center

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

centerId

centerId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostCentersCenterIdRequest

[PostCentersCenterIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 61. http response codes
Code Message Datatype

200

OK

[PostCentersCenterIdResponse]

===== Samples

==== POST /centers

Operation Id

create7

Create a Center

===== Description

Creates a Center Mandatory Fields: name, officeId, active, activationDate (if active=true) Optional Fields: externalId, staffId, groupMembers

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostCentersRequest

[PostCentersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 62. http response codes
Code Message Datatype

200

OK

[PostCentersResponse]

===== Samples

==== DELETE /centers/{centerId}

Operation Id

delete10

Delete a Center

===== Description

A Center can be deleted if it is in pending state and has no association - groups, loans or savings

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

centerId

centerId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 63. http response codes
Code Message Datatype

200

OK

[DeleteCentersCenterIdResponse]

===== Samples

==== GET /centers/downloadtemplate

Operation Id

getCentersTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 64. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /centers/uploadtemplate

Operation Id

postCentersTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 65. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /centers

Operation Id

retrieveAll23

List Centers

===== Description

The default implementation supports pagination and sorting with the default pagination size set to 200 records. The parameter limit with description -1 will return all entries. Example Requests: centers centers?fields=name,officeName,joinedDate centers?offset=10&limit=50 centers?orderBy=name&sortOrder=DESC

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

staffId

staffId

-

null

externalId

externalId

-

null

name

name

-

null

underHierarchy

underHierarchy

-

null

paged

paged

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

meetingDate

meetingDate

-

null

dateFormat

dateFormat

-

null

locale

locale

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 66. http response codes
Code Message Datatype

200

OK

[GetCentersResponse]

===== Samples

==== GET /centers/{centerId}/accounts

Operation Id

retrieveGroupAccount

Retrieve Center accounts overview

===== Description

An example of how a savings summary for a Center can be provided. This is requested in a specific use case of the reference application. It is quite reasonable to add resources like this to simplify User Interface development. Example Requests: centers/9/accounts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

centerId

centerId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 67. http response codes
Code Message Datatype

200

OK

[GetCentersCenterIdAccountsResponse]

===== Samples

==== GET /centers/{centerId}

Operation Id

retrieveOne13

Retrieve a Center

===== Description

Retrieves a Center Example Requests: centers/1 centers/1?associations=groupMembers

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

centerId

centerId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 68. http response codes
Code Message Datatype

200

OK

[GetCentersCenterIdResponse]

===== Samples

==== GET /centers/template

Operation Id

retrieveTemplate6

Retrieve a Center Template

===== Description

Retrieves a Center Template Example Requests: centers/template centers/template?officeId=2

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

officeId

officeId

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 69. http response codes
Code Message Datatype

200

OK

[GetCentersTemplateResponse]

===== Samples

==== PUT /centers/{centerId}

Operation Id

update11

Update a Center

===== Description

Updates a Center

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

centerId

centerId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutCentersCenterIdRequest

[PutCentersCenterIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 70. http response codes
Code Message Datatype

200

OK

[PutCentersCenterIdResponse]

===== Samples

=== Charges

==== POST /charges

Operation Id

createCharge

Create/Define a Charge

===== Description

Define a new charge that can later be associated with loans and savings through their respective product definitions or directly on each account instance.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostChargesRequest

[PostChargesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 71. http response codes
Code Message Datatype

200

OK

[PostChargesResponse]

===== Samples

==== DELETE /charges/{chargeId}

Operation Id

deleteCharge

Delete a Charge

===== Description

Deletes a Charge.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 72. http response codes
Code Message Datatype

200

OK

[DeleteChargesChargeIdResponse]

===== Samples

==== GET /charges

Operation Id

retrieveAllCharges

Retrieve Charges

===== Description

Returns the list of defined charges. Example Requests: charges

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 73. http response codes
Code Message Datatype

200

OK

List[[GetChargesResponse]]

===== Samples

==== GET /charges/{chargeId}

Operation Id

retrieveCharge

Retrieve a Charge

===== Description

Returns the details of a defined Charge. Example Requests: charges/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 74. http response codes
Code Message Datatype

200

OK

[GetChargesResponse]

===== Samples

==== GET /charges/template

Operation Id

retrieveNewChargeDetails

Retrieve Charge Template

===== Description

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 Request: charges/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 75. http response codes
Code Message Datatype

200

OK

[GetChargesTemplateResponse]

===== Samples

==== PUT /charges/{chargeId}

Operation Id

updateCharge

Update a Charge

===== Description

Updates the details of a Charge.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chargeId

chargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutChargesChargeIdRequest

[PutChargesChargeIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 76. http response codes
Code Message Datatype

200

OK

[PutChargesChargeIdResponse]

===== Samples

=== Client

==== POST /clients/{clientId}

Operation Id

activate1

Activate a Client | Close a Client | Reject a Client | Withdraw a Client | Reactivate a Client | UndoReject a Client | UndoWithdraw a Client | Assign a Staff | Unassign a Staff | Update Default Savings Account | Propose a Client Transfer | Withdraw a Client Transfer | Reject a Client Transfer | Accept a Client Transfer | Propose and Accept a Client Transfer

===== Description

Activate a Client: Clients can be created in a Pending state. This API exists to enable client activation (for when a client becomes an approved member of the financial Institution). If the client happens to be already active this API will result in an error. Close a Client: Clients can be closed if they do not have any non-closed loans/savingsAccount. This API exists to close a client . If the client have any active loans/savingsAccount this API will result in an error. Reject a Client: Clients can be rejected when client is in pending for activation status. If the client is any other status, this API throws an error. Mandatory Fields: rejectionDate, rejectionReasonId Withdraw a Client: Client applications can be withdrawn when client is in a pending for activation status. If the client is any other status, this API throws an error. Mandatory Fields: withdrawalDate, withdrawalReasonId Reactivate a Client: Clients can be reactivated after they have been closed. Trying to reactivate a client in any other state throws an error. Mandatory Fields: reactivationDate UndoReject a Client: Clients can be reactivated after they have been rejected. Trying to reactivate a client in any other state throws an error. Mandatory Fields: reopenedDateUndoWithdraw a Client: Clients can be reactivated after they have been withdrawn. Trying to reactivate a client in any other state throws an error. Mandatory Fields: reopenedDate Assign a Staff: Allows you to assign a Staff for existed Client. The selected Staff should belong to the same office (or an officer higher up in the hierarchy) as the Client he manages. Unassign a Staff: Allows you to unassign the Staff assigned to a Client. Update Default Savings Account: Allows you to modify or assign a default savings account for an existing Client. The selected savings account should be one among the existing savings account for a particular customer. Propose a Client Transfer: Allows you to propose the transfer of a Client to a different Office. Withdraw a Client Transfer: Allows you to withdraw the proposed transfer of a Client to a different Office. Withdrawal can happen only if the destination Branch (to which the transfer was proposed) has not already accepted the transfer proposal Reject a Client Transfer: Allows the Destination Branch to reject the proposed Client Transfer. Accept a Client Transfer: Allows the Destination Branch to accept the proposed Client Transfer. The destination branch may also choose to link this client to a group (in which case, any existing active JLG loan of the client is rescheduled to match the meeting frequency of the group) and loan Officer at the time of accepting the transfer Propose and Accept a Client Transfer: Abstraction over the Propose and Accept Client Transfer API’s which enable a user with Data Scope over both the Target and Destination Branches to directly transfer a Client to the destination Office. Showing request/response for 'Reject a Client Transfer'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientsClientIdRequest

[PostClientsClientIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 77. http response codes
Code Message Datatype

200

OK

[PostClientsClientIdResponse]

===== Samples

==== POST /clients

Operation Id

create6

Create a Client

===== Description

Note: 1. You can enter either:firstname/middlename/lastname - for a person (middlename is optional) OR fullname - for a business or organisation (or person known by one name). 2.If address is enable(enable-address=true), then additional field called address has to be passed. Mandatory Fields: firstname and lastname OR fullname, officeId, active=true and activationDate OR active=false, if(address enabled) address Optional Fields: groupId, externalId, accountNo, staffId, mobileNo, savingsProductId, genderId, clientTypeId, clientClassificationId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostClientsRequest

[PostClientsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 78. http response codes
Code Message Datatype

200

OK

[PostClientsResponse]

===== Samples

==== DELETE /clients/{clientId}

Operation Id

delete9

Delete a Client

===== Description

If a client is in Pending state, you are allowed to Delete it. The delete is a 'hard delete' and cannot be recovered from. Once clients become active or have loans or savings associated with them, you cannot delete the client but you may Close the client if they have left the program.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 79. http response codes
Code Message Datatype

200

OK

[DeleteClientsClientIdResponse]

===== Samples

==== GET /clients/downloadtemplate

Operation Id

getClientTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

legalFormType

-

null

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 80. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /clients/uploadtemplate

Operation Id

postClientTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

====== Query Parameters

Name Description Required Default Pattern

legalFormType

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 81. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /clients

Operation Id

retrieveAll21

List Clients

===== Description

The list capability of clients can support pagination and sorting. Example Requests: clients clients?fields=displayName,officeName,timeline clients?offset=10&limit=50 clients?orderBy=displayName&sortOrder=DESC

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

officeId

officeId

-

null

externalId

externalId

-

null

displayName

displayName

-

null

firstName

firstName

-

null

lastName

lastName

-

null

status

status

-

null

underHierarchy

underHierarchy

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

orphansOnly

orphansOnly

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 82. http response codes
Code Message Datatype

200

OK

[GetClientsResponse]

===== Samples

==== GET /clients/{clientId}/accounts

Operation Id

retrieveAssociatedAccounts

Retrieve client accounts overview

===== Description

An example of how a loan portfolio summary can be provided. This is requested in a specific use case of the community application. It is quite reasonable to add resources like this to simplify User Interface development. Example Requests: clients/1/accounts clients/1/accounts?fields=loanAccounts,savingsAccounts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 83. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdAccountsResponse]

400

Bad Request

<<>>

===== Samples

==== GET /clients/{clientId}/obligeedetails

Operation Id

retrieveObligeeDetails

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 84. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /clients/{clientId}

Operation Id

retrieveOne11

Retrieve a Client

===== Description

Example Requests: clients/1 clients/1?template=true clients/1?fields=id,displayName,officeName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 85. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdResponse]

===== Samples

==== GET /clients/template

Operation Id

retrieveTemplate5

Retrieve Client Details Template

===== Description

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 Value Lists Example Request: clients/template

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

commandParam

commandParam

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 86. http response codes
Code Message Datatype

200

OK

[GetClientsTemplateResponse]

===== Samples

==== GET /clients/{clientId}/transferproposaldate

Operation Id

retrieveTransferTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 87. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /clients/{clientId}

Operation Id

update10

Update a Client

===== Description

Note: You can update any of the basic attributes of a client (but not its associations) using this API. Changing the relationship between a client and its office is not supported through this API. An API specific to handling transfers of clients between offices is available for the same. The relationship between a client and a group must be removed through the Groups API.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutClientsClientIdRequest

[PutClientsClientIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 88. http response codes
Code Message Datatype

200

OK

[PutClientsClientIdResponse]

===== Samples

=== ClientCharges

==== POST /clients/{clientId}/charges

Operation Id

applyClientCharge

Add Client Charge

===== Description

This API associates a Client charge with an implicit Client account Mandatory Fields :  chargeId and dueDate   Optional Fields :  amount

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientsClientIdChargesRequest

[PostClientsClientIdChargesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 89. http response codes
Code Message Datatype

200

OK

[PostClientsClientIdChargesResponse]

===== Samples

==== DELETE /clients/{clientId}/charges/{chargeId}

Operation Id

deleteClientCharge

Delete a Client Charge

===== Description

Deletes a Client Charge on which no transactions have taken place (either payments or waivers).

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 90. http response codes
Code Message Datatype

200

OK

[DeleteClientsClientIdChargesChargeIdResponse]

===== Samples

==== POST /clients/{clientId}/charges/{chargeId}

Operation Id

payOrWaiveClientCharge

Pay a Client Charge | Waive a Client Charge

===== Description

Pay a Client Charge: Mandatory Fields:transactionDate and amount \"Pay either a part of or the entire due amount for a charge.(command=paycharge) Waive a Client Charge: This API provides the facility of waiving off the remaining amount on a client charge (command=waive) Showing request/response for 'Pay a Client Charge'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

chargeId

chargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientsClientIdChargesChargeIdRequest

[PostClientsClientIdChargesChargeIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 91. http response codes
Code Message Datatype

200

OK

[PostClientsClientIdChargesChargeIdResponse]

===== Samples

==== GET /clients/{clientId}/charges

Operation Id

retrieveAllClientCharges

List Client Charges

===== Description

The list capability of client charges supports pagination.Example Requests: clients/1/charges clients/1/charges?offset=0&limit=5

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

chargeStatus

chargeStatus

-

all

pendingPayment

pendingPayment

-

null

limit

limit

-

null

offset

offset

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 92. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdChargesResponse]

===== Samples

==== GET /clients/{clientId}/charges/{chargeId}

Operation Id

retrieveClientCharge

Retrieve a Client Charge

===== Description

Example Requests: clients/1/charges/1 clients/1/charges/1?fields=name,id

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 93. http response codes
Code Message Datatype

200

OK

[GetClientsChargesPageItems]

===== Samples

==== GET /clients/{clientId}/charges/template

Operation Id

retrieveTemplate4

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 94. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== ClientCollateralManagement

==== POST /clients/{clientId}/collaterals

Operation Id

addCollateral

Add New Collateral For a Client

===== Description

Add New Collateral For a Client

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientCollateralRequest

[PostClientCollateralRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 95. http response codes
Code Message Datatype

200

OK

[PostClientCollateralResponse]

===== Samples

==== DELETE /clients/{clientId}/collaterals/{collateralId}

Operation Id

deleteCollateral1

Delete Client Collateral

===== Description

Delete Client Collateral

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 96. http response codes
Code Message Datatype

200

OK

[DeleteClientCollateralResponse]

===== Samples

==== GET /clients/{clientId}/collaterals

Operation Id

getClientCollateral

Get Clients Collateral Products

===== Description

Get Collateral Product of a Client

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

prodId

prodId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 97. http response codes
Code Message Datatype

200

OK

List[[object]]

===== Samples

==== GET /clients/{clientId}/collaterals/{clientCollateralId}

Operation Id

getClientCollateralData

Get Client Collateral Data

===== Description

Get Client Collateral Data

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

clientCollateralId

clientCollateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 98. http response codes
Code Message Datatype

200

OK

[Object]

===== Samples

==== GET /clients/{clientId}/collaterals/template

Operation Id

getClientCollateralTemplate

Get Client Collateral Template

===== Description

Get Client Collateral Template

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 99. http response codes
Code Message Datatype

200

OK

List[[GetLoanCollateralManagementTemplate]]

===== Samples

==== PUT /clients/{clientId}/collaterals/{collateralId}

Operation Id

updateCollateral1

Update New Collateral of a Client

===== Description

Update New Collateral of a Client

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

collateralId

collateralId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutClientCollateralRequest

[PutClientCollateralRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 100. http response codes
Code Message Datatype

200

OK

[PutClientCollateralResponse]

===== Samples

=== ClientFamilyMember

==== POST /clients/{clientId}/familymembers

Operation Id

addClientFamilyMembers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 101. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /clients/{clientId}/familymembers/{familyMemberId}

Operation Id

deleteClientFamilyMembers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

familyMemberId

X

null

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 102. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /clients/{clientId}/familymembers/{familyMemberId}

Operation Id

getFamilyMember

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

familyMemberId

X

null

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 103. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /clients/{clientId}/familymembers

Operation Id

getFamilyMembers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 104. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /clients/{clientId}/familymembers/template

Operation Id

getTemplate2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 105. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /clients/{clientId}/familymembers/{familyMemberId}

Operation Id

updateClientFamilyMembers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

familyMemberId

X

null

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 106. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== ClientIdentifier

==== POST /clients/{clientId}/identifiers

Operation Id

createClientIdentifier

Create an Identifier for a Client

===== Description

Mandatory Fields documentKey, documentTypeId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientsClientIdIdentifiersRequest

[PostClientsClientIdIdentifiersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 107. http response codes
Code Message Datatype

200

OK

[PostClientsClientIdIdentifiersResponse]

===== Samples

==== DELETE /clients/{clientId}/identifiers/{identifierId}

Operation Id

deleteClientIdentifier

Delete a Client Identifier

===== Description

Deletes a Client Identifier

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

identifierId

identifierId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 108. http response codes
Code Message Datatype

200

OK

[DeleteClientsClientIdIdentifiersIdentifierIdResponse]

===== Samples

==== GET /clients/{clientId}/identifiers/template

Operation Id

newClientIdentifierDetails

Retrieve Client Identifier Details Template

===== Description

This is a convenience resource useful for building maintenance user interface screens for client applications. The template data returned consists of any or all of: Field Defaults Allowed description Lists Example Request: clients/1/identifiers/template

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 109. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdIdentifiersTemplateResponse]

===== Samples

==== GET /clients/{clientId}/identifiers

Operation Id

retrieveAllClientIdentifiers

List all Identifiers for a Client

===== Description

Example Requests: clients/1/identifiers clients/1/identifiers?fields=documentKey,documentType,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 110. http response codes
Code Message Datatype

200

OK

List[[GetClientsClientIdIdentifiersResponse]]

===== Samples

==== GET /clients/{clientId}/identifiers/{identifierId}

Operation Id

retrieveClientIdentifiers

Retrieve a Client Identifier

===== Description

Example Requests: clients/1/identifier/2 clients/1/identifier/2?template=true clients/1/identifiers/2?fields=documentKey,documentType,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

identifierId

identifierId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 111. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdIdentifiersResponse]

===== Samples

==== PUT /clients/{clientId}/identifiers/{identifierId}

Operation Id

updateClientIdentifer

Update a Client Identifier

===== Description

Updates a Client Identifier

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

identifierId

identifierId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutClientsClientIdIdentifiersIdentifierIdRequest

[PutClientsClientIdIdentifiersIdentifierIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 112. http response codes
Code Message Datatype

200

OK

[PutClientsClientIdIdentifiersIdentifierIdResponse]

===== Samples

=== ClientTransaction

==== GET /clients/{clientId}/transactions

Operation Id

retrieveAllClientTransactions

List Client Transactions

===== Description

The list capability of client transaction can support pagination. Example Requests: clients/189/transactions clients/189/transactions?offset=10&limit=50

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 113. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdTransactionsResponse]

===== Samples

==== GET /clients/{clientId}/transactions/{transactionId}

Operation Id

retrieveClientTransaction

Retrieve a Client Transaction

===== Description

Example Requests: clients/1/transactions/1 clients/1/transactions/1?fields=id,officeName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

transactionId

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 114. http response codes
Code Message Datatype

200

OK

[GetClientsClientIdTransactionsTransactionIdResponse]

===== Samples

==== POST /clients/{clientId}/transactions/{transactionId}

Operation Id

undoClientTransaction

Undo a Client Transaction

===== Description

Undoes a Client Transaction

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

transactionId

transactionId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 115. http response codes
Code Message Datatype

200

OK

[PostClientsClientIdTransactionsTransactionIdResponse]

===== Samples

=== ClientsAddress

==== POST /client/{clientid}/addresses

Operation Id

addClientAddress

Create an address for a Client

===== Description

Mandatory Fields : type and clientId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientid

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostClientClientIdAddressesRequest

[PostClientClientIdAddressesRequest]

X

====== Query Parameters

Name Description Required Default Pattern

type

type

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 116. http response codes
Code Message Datatype

200

OK

[PostClientClientIdAddressesResponse]

===== Samples

==== GET /client/{clientid}/addresses

Operation Id

getAddresses1

List all addresses for a Client

===== Description

Example Requests: client/1/addresses clients/1/addresses?status=false,true&&type=1,2,3

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientid

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

status

status

-

null

type

type

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 117. http response codes
Code Message Datatype

200

OK

List[[GetClientClientIdAddressesResponse]]

===== Samples

==== GET /client/addresses/template

Operation Id

getAddressesTemplate

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 118. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /client/{clientid}/addresses

Operation Id

updateClientAddress

Update an address for a Client

===== Description

All the address fields can be updated by using update client address API Mandatory Fields type and addressId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientid

clientId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutClientClientIdAddressesRequest

[PutClientClientIdAddressesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 119. http response codes
Code Message Datatype

200

OK

[PutClientClientIdAddressesResponse]

===== Samples

=== CodeValues

==== POST /codes/{codeId}/codevalues

Operation Id

createCodeValue

Create a Code description

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostCodeValuesDataRequest

[PostCodeValuesDataRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 120. http response codes
Code Message Datatype

200

OK

[PostCodeValueDataResponse]

===== Samples

==== DELETE /codes/{codeId}/codevalues/{codeValueId}

Operation Id

deleteCodeValue

Delete a Code description

===== Description

Deletes a code description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

codeValueId

codeValueId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 121. http response codes
Code Message Datatype

200

OK

[DeleteCodeValueDataResponse]

===== Samples

==== GET /codes/{codeId}/codevalues

Operation Id

retrieveAllCodeValues

List Code Values

===== Description

Returns the list of Code Values for a given Code Example Requests: codes/1/codevalues

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 122. http response codes
Code Message Datatype

200

A List of code values for a given code

List[[GetCodeValuesDataResponse]]

===== Samples

==== GET /codes/{codeId}/codevalues/{codeValueId}

Operation Id

retrieveCodeValue

Retrieve a Code description

===== Description

Returns the details of a Code Value Example Requests: codes/1/codevalues/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeValueId

codeValueId

X

null

codeId

codeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 123. http response codes
Code Message Datatype

200

OK

[GetCodeValuesDataResponse]

===== Samples

==== PUT /codes/{codeId}/codevalues/{codeValueId}

Operation Id

updateCodeValue

Update a Code description

===== Description

Updates the details of a code description.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

codeValueId

codeValueId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutCodeValuesDataRequest

[PutCodeValuesDataRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 124. http response codes
Code Message Datatype

200

OK

[PutCodeValueDataResponse]

===== Samples

=== Codes

==== POST /codes

Operation Id

createCode

Create a Code

===== Description

Creates a code. Codes created through api are always 'user defined' and so system defined is marked as false.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostCodesRequest

[PostCodesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 125. http response codes
Code Message Datatype

200

OK

[PostCodesResponse]

===== Samples

==== DELETE /codes/{codeId}

Operation Id

deleteCode

Delete a Code

===== Description

Deletes a code if it is not system defined.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 126. http response codes
Code Message Datatype

200

OK

[DeleteCodesResponse]

===== Samples

==== GET /codes/{codeId}

Operation Id

retrieveCode

Retrieve a Code

===== Description

Returns the details of a Code. Example Requests: codes/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 127. http response codes
Code Message Datatype

200

OK

[GetCodesResponse]

===== Samples

==== GET /codes

Operation Id

retrieveCodes

Retrieve Codes

===== Description

Returns the list of codes. Example Requests: codes

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 128. http response codes
Code Message Datatype

200

OK

List[[GetCodesResponse]]

===== Samples

==== PUT /codes/{codeId}

Operation Id

updateCode

Update a Code

===== Description

Updates the details of a code if it is not system defined.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

codeId

codeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutCodesRequest

[PutCodesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 129. http response codes
Code Message Datatype

200

OK

[PutCodesResponse]

===== Samples

=== CollateralManagement

==== POST /collateral-management

Operation Id

createCollateral1

Create a new collateral

===== Description

Collateral Creation

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostCollateralManagementProductRequest

[PostCollateralManagementProductRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 130. http response codes
Code Message Datatype

200

OK

[PostCollateralManagementProductResponse]

===== Samples

==== DELETE /collateral-management/{collateralId}

Operation Id

deleteCollateral2

Delete a Collateral

===== Description

Delete Collateral

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 131. http response codes
Code Message Datatype

200

OK

[DeleteCollateralProductResponse]

===== Samples

==== GET /collateral-management

Operation Id

getAllCollaterals

Get All Collaterals

===== Description

Fetch all Collateral Products

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 132. http response codes
Code Message Datatype

200

OK

List[[GetCollateralManagementsResponse]]

===== Samples

==== GET /collateral-management/{collateralId}

Operation Id

getCollateral

Get Collateral

===== Description

Fetch Collateral

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 133. http response codes
Code Message Datatype

200

OK

[GetCollateralManagementsResponse]

===== Samples

==== GET /collateral-management/template

Operation Id

getCollateralTemplate

Get Collateral Template

===== Description

Get Collateral Template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 134. http response codes
Code Message Datatype

200

OK

List[[GetCollateralProductTemplate]]

===== Samples

==== PUT /collateral-management/{collateralId}

Operation Id

updateCollateral2

Update Collateral

===== Description

Update Collateral

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

collateralId

collateralId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutCollateralProductRequest

[PutCollateralProductRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 135. http response codes
Code Message Datatype

200

OK

[PutCollateralProductResponse]

===== Samples

=== CollectionSheet

==== POST /collectionsheet

Operation Id

generateCollectionSheet

Generate Individual Collection Sheet | Save Collection Sheet

===== Description

Generate Individual Collection Sheet: This Api retrieves repayment details of all individual loans under a office as on a specified meeting date. Save Collection Sheet: This Api allows the loan officer to perform bulk repayments of individual loans and deposit of mandatory savings on a given meeting date.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostCollectionSheetRequest

[PostCollectionSheetRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 136. http response codes
Code Message Datatype

200

OK

[PostCollectionSheetResponse]

===== Samples

=== CreditBureauConfiguration

==== POST /CreditBureauConfiguration/organisationCreditBureau/{organisationCreditBureauId}

Operation Id

addOrganisationCreditBureau

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

organisationCreditBureauId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 137. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /CreditBureauConfiguration/configuration/{creditBureauId}

Operation Id

createCreditBureauConfiguration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

creditBureauId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 138. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /CreditBureauConfiguration/mappings/{organisationCreditBureauId}

Operation Id

createCreditBureauLoanProductMapping

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

organisationCreditBureauId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 139. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration/loanProduct

Operation Id

fetchLoanProducts

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 140. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration/loanProduct/{loanProductId}

Operation Id

fetchMappingByLoanProductId

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanProductId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 141. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration/config/{organisationCreditBureauId}

Operation Id

getConfiguration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

organisationCreditBureauId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 142. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration

Operation Id

getCreditBureau

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 143. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration/mappings

Operation Id

getCreditBureauLoanProductMapping

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 144. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /CreditBureauConfiguration/organisationCreditBureau

Operation Id

getOrganisationCreditBureau

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 145. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /CreditBureauConfiguration/organisationCreditBureau

Operation Id

updateCreditBureau

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 146. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /CreditBureauConfiguration/configuration/{configurationId}

Operation Id

updateCreditBureauConfiguration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

configurationId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 147. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /CreditBureauConfiguration/mappings

Operation Id

updateCreditBureauLoanProductMapping

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 148. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Currency

==== GET /currencies

Operation Id

retrieveCurrencies

Retrieve Currency Configuration

===== Description

Returns the list of currencies permitted for use AND the list of currencies not selected (but available for selection). Example Requests: currencies currencies?fields=selectedCurrencyOptions

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 149. http response codes
Code Message Datatype

200

OK

[GetCurrenciesResponse]

===== Samples

==== PUT /currencies

Operation Id

updateCurrencies

Update Currency Configuration

===== Description

Updates the list of currencies permitted for use.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutCurrenciesRequest

[PutCurrenciesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 150. http response codes
Code Message Datatype

200

OK

[PutCurrenciesResponse]

===== Samples

=== DataTables

==== POST /datatables

Operation Id

createDatatable

Create Data Table

===== Description

Create a new data table and registers it with the Apache Fineract Core application table. Field Descriptions Mandatory - datatableName : The name of the Data Table. Mandatory - apptableName Application table name. Must be one of the following: m_client m_group m_loan m_office m_saving_account m_product_loan m_savings_product Mandatory - columns An array of columns in the new Data Table. Optional - multiRow Allows to create multiple entries in the Data Table. Optional, defaults to false. If this property is not provided Data Table will allow only one entry. Field Descriptions - columns Mandatory - name Name of the created column. Can contain only alphanumeric characters, underscores and spaces, but cannot start with a number. Cannot start or end with an underscore or space. Mandatory - type Column type. Must be one of the following: Boolean Date DateTime Decimal Dropdown Number String Text Mandatory [type = Dropdown] - code Used in Code description fields. Column name becomes: code_cd_name. Mandatory if using type Dropdown, otherwise an error is returned. Optional - mandatory Determines whether this column must have a value in every entry. Optional, defaults to false. Mandatory [type = String] - length Length of the text field. Mandatory if type String is used, otherwise an error is returned.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostDataTablesRequest

[PostDataTablesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 151. http response codes
Code Message Datatype

200

OK

[PostDataTablesResponse]

===== Samples

==== POST /datatables/{datatable}/{apptableId}

Operation Id

createDatatableEntry

Create Entry in Data Table

===== Description

Adds a row to the data table. Note that the default datatable UI functionality converts any field name containing spaces to underscores when using the API. This means the field name \"Business Description\" is considered the same as \"Business_Description\". So you shouldn’t have both \"versions\" in any data table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

{ &quot;BusinessDescription&quot;: &quot;Livestock sales&quot;, &quot;Comment&quot;: &quot;First comment made&quot;, &quot;Education_cv&quot;: &quot;Primary&quot;, &quot;Gender_cd&quot;: 6, &quot;HighestRatePaid&quot;: 8.5, &quot;NextVisit&quot;: &quot;01 October 2012&quot;, &quot;YearsinBusiness&quot;: 5, &quot;dateFormat&quot;: &quot;dd MMMM yyyy&quot;, &quot;locale&quot;: &quot;en&quot; } [string]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 152. http response codes
Code Message Datatype

200

OK

[PostDataTablesAppTableIdResponse]

===== Samples

==== DELETE /datatables/{datatableName}

Operation Id

deleteDatatable

Delete Data Table

===== Description

Deletes a data table and deregisters it from the Apache Fineract Core application table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatableName

datatableName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 153. http response codes
Code Message Datatype

200

OK

[DeleteDataTablesResponse]

===== Samples

==== DELETE /datatables/{datatable}/{apptableId}

Operation Id

deleteDatatableEntries

Delete Entry(s) in Data Table

===== Description

Deletes the entry (if it exists) for data tables that are one-to-one with the application table. Deletes the entries (if they exist) for data tables that are one-to-many with the application table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 154. http response codes
Code Message Datatype

200

OK

[DeleteDataTablesDatatableAppTableIdResponse]

===== Samples

==== DELETE /datatables/{datatable}/{apptableId}/{datatableId}

Operation Id

deleteDatatableEntries1

Delete Entry in Datatable (One to Many)

===== Description

Deletes the entry (if it exists) for data tables that are one to many with the application table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

datatableId

datatableId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 155. http response codes
Code Message Datatype

200

OK

[DeleteDataTablesDatatableAppTableIdDatatableIdResponse]

===== Samples

==== POST /datatables/deregister/{datatable}

Operation Id

deregisterDatatable

Deregister Data Table

===== Description

Deregisters a data table. It will no longer be available through the API.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 156. http response codes
Code Message Datatype

200

OK

[PutDataTablesResponse]

===== Samples

==== GET /datatables/{datatable}

Operation Id

getDatatable

Retrieve Data Table Details

===== Description

Lists a registered data table details and the Apache Fineract Core application table they are registered to.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 157. http response codes
Code Message Datatype

200

OK

[GetDataTablesResponse]

===== Samples

==== GET /datatables/{datatable}/{apptableId}

Operation Id

getDatatable1

Retrieve Entry(s) from Data Table

===== Description

Gets the entry (if it exists) for data tables that are one to one with the application table. Gets the entries (if they exist) for data tables that are one to many with the application table. Note: The 'fields' parameter is not available for datatables. ARGUMENTS orderoptional Specifies the order in which data is returned.genericResultSetoptional, defaults to false If 'true' an optimised JSON format is returned suitable for tabular display of data. This format is used by the default data tables UI functionality. Example Requests: datatables/extra_client_details/1 datatables/extra_family_details/1?order=Date of Birth desc datatables/extra_client_details/1?genericResultSet=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

====== Query Parameters

Name Description Required Default Pattern

order

order

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 158. http response codes
Code Message Datatype

200

OK

[String]

===== Samples

==== GET /datatables/{datatable}/{apptableId}/{datatableId}

Operation Id

getDatatableManyEntry

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

X

null

apptableId

X

null

datatableId

X

null

====== Query Parameters

Name Description Required Default Pattern

order

-

null

genericResultSet

Optional flag to format the response

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 159. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /datatables

Operation Id

getDatatables

List Data Tables

===== Description

Lists registered data tables and the Apache Fineract Core application table they are registered to. ARGUMENTS apptable - optional The Apache Fineract core application table. Example Requests: datatables?apptable=m_client datatables

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

apptable

apptable

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 160. http response codes
Code Message Datatype

200

OK

List[[GetDataTablesResponse]]

===== Samples

==== GET /datatables/{datatable}/query

Operation Id

queryValues

Query Data Table values

===== Description

Query values from a registered data table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

====== Query Parameters

Name Description Required Default Pattern

columnFilter

columnFilter

-

null

valueFilter

valueFilter

-

null

resultColumns

resultColumns

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 161. http response codes
Code Message Datatype

200

OK

[String]

===== Samples

==== POST /datatables/register/{datatable}/{apptable}

Operation Id

registerDatatable

Register Data Table

===== Description

Registers a data table with the Apache Fineract Core application table. This allows the data table to be maintained through the API. In case the datatable is a PPI (survey table), a parameter category should be pass along with the request. The API currently support one category (200)

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptable

apptable

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 162. http response codes
Code Message Datatype

200

OK

[PutDataTablesResponse]

===== Samples

==== PUT /datatables/{datatableName}

Operation Id

updateDatatable

Update Data Table

===== Description

Modifies fields of a data table. If the apptableName parameter is passed, data table is deregistered and registered with the new application table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatableName

datatableName

X

null

====== Body Parameter

Name Description Required Default Pattern

PutDataTablesRequest

[PutDataTablesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 163. http response codes
Code Message Datatype

200

OK

[PutDataTablesResponse]

===== Samples

==== PUT /datatables/{datatable}/{apptableId}/{datatableId}

Operation Id

updateDatatableEntryOneToMany

Update Entry in Data Table (One to Many)

===== Description

Updates the row (if it exists) of the data table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

datatableId

datatableId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 164. http response codes
Code Message Datatype

200

OK

[PutDataTablesAppTableIdDatatableIdResponse]

===== Samples

==== PUT /datatables/{datatable}/{apptableId}

Operation Id

updateDatatableEntryOnetoOne

Update Entry in Data Table (One to One)

===== Description

Updates the row (if it exists) of the data table.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

datatable

datatable

X

null

apptableId

apptableId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 165. http response codes
Code Message Datatype

200

OK

[PutDataTablesAppTableIdResponse]

===== Samples

=== Default

==== POST /email/campaign/{resourceId}

Operation Id

activate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 166. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /creditBureauIntegration/addCreditReport

Operation Id

addCreditReport

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

====== Query Parameters

Name Description Required Default Pattern

creditBureauId

creditBureauId

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 167. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /{entity}/{entityId}/images

Operation Id

addNewClientImage1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entity

X

null

entityId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

====== Header Parameters

Name Description Required Default Pattern

Content-Length

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 168. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /email

Operation Id

create1

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 169. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /email/campaign

Operation Id

createCampaign

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 170. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /smscampaigns

Operation Id

createCampaign1

Create a SMS Campaign

===== Description

Mandatory Fields campaignName, campaignType, triggerType, providerId, runReportId, message Mandatory Fields for Cash based on selected report id paramValue in json format

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

CommandWrapper

[CommandWrapper]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 171. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

==== DELETE /email/{resourceId}

Operation Id

delete1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 172. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /email/campaign/{resourceId}

Operation Id

delete2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 173. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /smscampaigns/{campaignId}

Operation Id

delete3

Delete a SMS Campaign

===== Description

Note: Only closed SMS Campaigns can be deleted

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

campaignId

X

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 174. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

==== DELETE /officetransactions/{transactionId}

Operation Id

delete8

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 175. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /{entity}/{entityId}/images

Operation Id

deleteClientImage

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entity

X

null

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 176. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /creditBureauIntegration/deleteCreditReport/{creditBureauId}

Operation Id

deleteCreditReport

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

creditBureauId

creditBureauId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 177. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /creditBureauIntegration/creditReport

Operation Id

fetchCreditReport

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

request_body

[object]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 178. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /echo

Operation Id

get

===== Description

===== Parameters

===== Return Type

===== Content Type

  • text/plain

===== Responses

Table 179. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /internal/client/{clientId}/audit

Operation Id

getClientAuditFields

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 180. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /application.wadl/{path}

Operation Id

getExternalGrammar

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

path

X

null

===== Return Type

-

===== Content Type

  • application/xml

===== Responses

Table 181. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /internal/loan/{loanId}/audit

Operation Id

getLoanAuditFields

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 182. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /internal/loan/{loanId}/transaction/{transactionId}/audit

Operation Id

getLoanTransactionAuditFields

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 183. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /creditBureauIntegration/creditReport/{creditBureauId}

Operation Id

getSavedCreditReport

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

creditBureauId

creditBureauId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 184. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /application.wadl

Operation Id

getWadl

===== Description

===== Parameters

===== Return Type

-

===== Content Type

  • application/vnd.sun.wadl+xml

  • application/xml

===== Responses

Table 185. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /smscampaigns/{campaignId}

Operation Id

handleCommands

SMS Campaign

===== Description

Activates | Deactivates | Reactivates

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

campaignId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 186. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

==== GET /officetransactions/template

Operation Id

newOfficeTransactionDetails

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 187. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /email/campaign/preview

Operation Id

preview

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 188. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /smscampaigns/preview

Operation Id

preview1

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 189. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/configuration

Operation Id

retrieveAll5

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 190. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /twofactor/configure

Operation Id

retrieveAll9

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 191. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/campaign

Operation Id

retrieveAllCampaign

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 192. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/messageByStatus

Operation Id

retrieveAllEmailByStatus

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

-

null

offset

-

null

limit

-

null

status

-

null

orderBy

-

null

sortOrder

-

null

fromDate

-

null

toDate

-

null

locale

-

null

dateFormat

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 193. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email

Operation Id

retrieveAllEmails

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 194. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /smscampaigns

Operation Id

retrieveAllEmails1

List SMS Campaigns

===== Description

Example Requests: smscampaigns

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 195. http response codes
Code Message Datatype

200

OK

[SmsCampaignData]

===== Samples

==== GET /smscampaigns/{resourceId}

Operation Id

retrieveCampaign

Retrieve a SMS Campaign

===== Description

Example Requests: smscampaigns/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 196. http response codes
Code Message Datatype

200

OK

[SmsCampaignData]

===== Samples

==== GET /email/failedEmail

Operation Id

retrieveFailedEmail

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 197. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entity}/{entityId}/images

Operation Id

retrieveImage

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entity

X

null

entityId

X

null

====== Header Parameters

Name Description Required Default Pattern

Accept

-

null

====== Query Parameters

Name Description Required Default Pattern

maxWidth

-

null

maxHeight

-

null

output

-

null

===== Return Type

-

===== Content Type

  • /

===== Responses

Table 198. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /officetransactions

Operation Id

retrieveOfficeTransactions

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 199. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/{resourceId}

Operation Id

retrieveOne1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 200. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/campaign/{resourceId}

Operation Id

retrieveOneCampaign

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 201. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/campaign/template/{resourceId}

Operation Id

retrieveOneTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 202. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/pendingEmail

Operation Id

retrievePendingEmail

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 203. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/sentEmail

Operation Id

retrieveSentEmail

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 204. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /creditBureauIntegration/saveCreditReport

Operation Id

saveCreditReport

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

creditBureauId

creditBureauId

-

null

nationalId

nationalId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 205. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /email/campaign/template

Operation Id

template1

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 206. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /smscampaigns/template

Operation Id

template2

Retrieve a SMS Campaign

===== Description

Example Requests: smscampaigns/1 smscampaigns/1?template=true smscampaigns/template

===== Parameters

===== Return Type

===== Content Type

  • /

===== Responses

Table 207. http response codes
Code Message Datatype

200

OK

[SmsCampaignData]

===== Samples

==== POST /officetransactions

Operation Id

transferMoneyFrom

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 208. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /email/{resourceId}

Operation Id

update2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 209. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /email/campaign/{resourceId}

Operation Id

updateCampaign

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 210. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /smscampaigns/{campaignId}

Operation Id

updateCampaign1

Update a Campaign

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

campaignId

X

null

====== Body Parameter

Name Description Required Default Pattern

CommandWrapper

[CommandWrapper]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 211. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

==== PUT /{entity}/{entityId}/images

Operation Id

updateClientImage1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entity

X

null

entityId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

====== Header Parameters

Name Description Required Default Pattern

Content-Length

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 212. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /email/configuration

Operation Id

updateConfiguration

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 213. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /twofactor/configure

Operation Id

updateConfiguration3

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 214. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== DelinquencyRangeAndBucketsManagement

==== POST /delinquency/buckets

Operation Id

createDelinquencyBucket

Create Delinquency Bucket

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyBucketRequest

[PostDelinquencyBucketRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 215. http response codes
Code Message Datatype

200

OK

[PostDelinquencyBucketResponse]

===== Samples

==== POST /delinquency/ranges

Operation Id

createDelinquencyRange

Create Delinquency Range

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyRangeRequest

[PostDelinquencyRangeRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 216. http response codes
Code Message Datatype

200

OK

[PostDelinquencyRangeResponse]

===== Samples

==== DELETE /delinquency/buckets/{delinquencyBucketId}

Operation Id

deleteDelinquencyBucket

Delete Delinquency Bucket based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyBucketId

delinquencyBucketId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyBucketRequest

[PostDelinquencyBucketRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 217. http response codes
Code Message Datatype

200

OK

[DeleteDelinquencyBucketResponse]

===== Samples

==== DELETE /delinquency/ranges/{delinquencyRangeId}

Operation Id

deleteDelinquencyRange

Update Delinquency Range based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyRangeId

delinquencyRangeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyRangeRequest

[PostDelinquencyRangeRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 218. http response codes
Code Message Datatype

200

OK

[DeleteDelinquencyRangeResponse]

===== Samples

==== GET /delinquency/buckets/{delinquencyBucketId}

Operation Id

getDelinquencyBucket

Retrieve a specific Delinquency Bucket based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyBucketId

delinquencyBucketId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 219. http response codes
Code Message Datatype

200

OK

[GetDelinquencyBucketsResponse]

===== Samples

==== GET /delinquency/buckets

Operation Id

getDelinquencyBuckets

List all Delinquency Buckets

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 220. http response codes
Code Message Datatype

200

OK

List[[GetDelinquencyBucketsResponse]]

===== Samples

==== GET /delinquency/ranges/{delinquencyRangeId}

Operation Id

getDelinquencyRange

Retrieve a specific Delinquency Range based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyRangeId

delinquencyRangeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 221. http response codes
Code Message Datatype

200

OK

[GetDelinquencyRangesResponse]

===== Samples

==== GET /delinquency/ranges

Operation Id

getDelinquencyRanges

List all Delinquency Ranges

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 222. http response codes
Code Message Datatype

200

OK

List[[GetDelinquencyRangesResponse]]

===== Samples

==== PUT /delinquency/buckets/{delinquencyBucketId}

Operation Id

updateDelinquencyBucket

Update Delinquency Bucket based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyBucketId

delinquencyBucketId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyBucketRequest

[PostDelinquencyBucketRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 223. http response codes
Code Message Datatype

200

OK

[PutDelinquencyBucketResponse]

===== Samples

==== PUT /delinquency/ranges/{delinquencyRangeId}

Operation Id

updateDelinquencyRange

Update Delinquency Range based on the Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

delinquencyRangeId

delinquencyRangeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostDelinquencyRangeRequest

[PostDelinquencyRangeRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 224. http response codes
Code Message Datatype

200

OK

[PutDelinquencyRangeResponse]

===== Samples

=== DepositAccountOnHoldFundTransactions

==== GET /savingsaccounts/{savingsId}/onholdtransactions

Operation Id

retrieveAll28

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsId

X

null

====== Query Parameters

Name Description Required Default Pattern

guarantorFundingId

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 225. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== DeviceRegistration

==== DELETE /self/device/registration/{id}

Operation Id

delete5

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 226. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /self/device/registration

Operation Id

registerDevice

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 227. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/device/registration

Operation Id

retrieveAllDeviceRegistrations

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 228. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/device/registration/{id}

Operation Id

retrieveDeviceRegiistration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 229. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/device/registration/client/{clientId}

Operation Id

retrieveDeviceRegistrationByClientId

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 230. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /self/device/registration/{id}

Operation Id

updateDeviceRegistration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 231. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Documents

==== POST /{entityType}/{entityId}/documents

Operation Id

createDocument

Create a Document

===== Description

Note: A document is created using a Multi-part form upload Body Parts name : Name or summary of the document description : Description of the document file : The file to be uploaded Mandatory Fields : file and description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

description

[string]

-

null

locale

[string]

-

null

name

[string]

-

null

uploadedInputStream

[file]

-

null

====== Header Parameters

Name Description Required Default Pattern

Content-Length

Content-Length

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 232. http response codes
Code Message Datatype

200

Not Shown (multi-part form data)

[PostEntityTypeEntityIdDocumentsResponse]

===== Samples

==== DELETE /{entityType}/{entityId}/documents/{documentId}

Operation Id

deleteDocument

Remove a Document

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

documentId

documentId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 233. http response codes
Code Message Datatype

200

OK

[DeleteEntityTypeEntityIdDocumentsResponse]

===== Samples

==== GET /{entityType}/{entityId}/documents/{documentId}/attachment

Operation Id

downloadFile

Retrieve Binary File associated with Document

===== Description

Request used to download the file associated with the document Example Requests: clients/1/documents/1/attachment loans/1/documents/1/attachment

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

documentId

documentId

X

null

===== Return Type

-

===== Responses

Table 234. http response codes
Code Message Datatype

200

Not Shown: The corresponding Binary file

<<>>

===== Samples

==== GET /{entityType}/{entityId}/documents/{documentId}

Operation Id

getDocument

Retrieve a Document

===== Description

Example Requests: clients/1/documents/1 loans/1/documents/1 client_identifiers/1/documents/1?fields=name,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

documentId

documentId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 235. http response codes
Code Message Datatype

200

OK

[GetEntityTypeEntityIdDocumentsResponse]

===== Samples

==== GET /{entityType}/{entityId}/documents

Operation Id

retrieveAllDocuments

List documents

===== Description

Example Requests: clients/1/documents client_identifiers/1/documents loans/1/documents?fields=name,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 236. http response codes
Code Message Datatype

200

OK

List[[GetEntityTypeEntityIdDocumentsResponse]]

===== Samples

==== PUT /{entityType}/{entityId}/documents/{documentId}

Operation Id

updateDocument

Update a Document

===== Description

Note: A document is updated using a Multi-part form upload Body Parts name Name or summary of the document description Description of the document file The file to be uploaded

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

entityType

X

null

entityId

entityId

X

null

documentId

documentId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

description

[string]

-

null

locale

[string]

-

null

name

[string]

-

null

uploadedInputStream

[file]

-

null

====== Header Parameters

Name Description Required Default Pattern

Content-Length

Content-Length

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 237. http response codes
Code Message Datatype

200

Not Shown (multi-part form data)

[PutEntityTypeEntityIdDocumentsResponse]

===== Samples

=== EntityDataTable

==== POST /entityDatatableChecks

Operation Id

createEntityDatatableCheck

Create Entity-Datatable Checks

===== Description

Mandatory Fields : entity, status, datatableName Non-Mandatory Fields : productId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostEntityDatatableChecksTemplateRequest

[PostEntityDatatableChecksTemplateRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 238. http response codes
Code Message Datatype

200

OK

[PostEntityDatatableChecksTemplateResponse]

===== Samples

==== DELETE /entityDatatableChecks/{entityDatatableCheckId}

Operation Id

deleteDatatable1

Delete Entity-Datatable Checks

===== Description

Deletes an existing Entity-Datatable Check

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityDatatableCheckId

entityDatatableCheckId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 239. http response codes
Code Message Datatype

200

OK

[DeleteEntityDatatableChecksTemplateResponse]

===== Samples

==== GET /entityDatatableChecks/template

Operation Id

getTemplate

Retrieve Entity-Datatable Checks Template

===== Description

This is a convenience resource useful for building maintenance user interface screens for Entity-Datatable Checks applications. The template data returned consists of: Allowed description Lists Example Request: entityDatatableChecks/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 240. http response codes
Code Message Datatype

200

OK

[GetEntityDatatableChecksTemplateResponse]

===== Samples

==== GET /entityDatatableChecks

Operation Id

retrieveAll6

List Entity-Datatable Checks

===== Description

The list capability of Entity-Datatable Checks can support pagination. OPTIONAL ARGUMENTS offset Integer optional, defaults to 0 Indicates the result from which pagination startslimit Integer optional, defaults to 200 Restricts the size of results returned. To override the default and return all entries you must explicitly pass a non-positive integer value for limit e.g. limit=0, or limit=-1 Example Request: entityDatatableChecks?offset=0&limit=15

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

status

status

-

null

entity

entity

-

null

productId

productId

-

null

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 241. http response codes
Code Message Datatype

200

OK

List[[GetEntityDatatableChecksResponse]]

===== Samples

=== EntityFieldConfiguration

==== GET /fieldconfiguration/{entity}

Operation Id

getAddresses

Retrieves the Entity Field Configuration

===== Description

It retrieves all the Entity Field Configuration

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entity

entity

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 242. http response codes
Code Message Datatype

200

OK

List[[GetFieldConfigurationEntityResponse]]

===== Samples

=== ExternalEventConfiguration

==== GET /externalevents/configuration

Operation Id

retrieveExternalEventConfiguration

List all external event configurations

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 243. http response codes
Code Message Datatype

200

List of all external event configurations

[GetExternalEventConfigurationsResponse]

===== Samples

==== PUT /externalevents/configuration

Operation Id

updateExternalEventConfigurationsDetails

Enable/Disable external events posting

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutExternalEventConfigurationsRequest

[PutExternalEventConfigurationsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 244. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

=== ExternalServices

==== GET /externalservice/{servicename}

Operation Id

retrieveOne2

Retrieve External Services Configuration

===== Description

Returns a external Service configurations based on the Service Name. Service Names supported are S3 and SMTP. Example Requests: externalservice/SMTP

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

servicename

servicename

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 245. http response codes
Code Message Datatype

200

OK

[ExternalServicesPropertiesData]

===== Samples

==== PUT /externalservice/{servicename}

Operation Id

updateExternalServiceProperties

Update External Service

===== Description

Updates the external Service Configuration for a Service Name. Example: externalservice/S3

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

servicename

servicename

X

null

====== Body Parameter

Name Description Required Default Pattern

PutExternalServiceRequest

[PutExternalServiceRequest]

X

===== Return Type

-

===== Responses

Table 246. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

=== FetchAuthenticatedUserDetails

==== GET /userdetails

Operation Id

fetchAuthenticatedUserData

Fetch authenticated user details

===== Description

checks the Authentication and returns the set roles and permissions allowed.

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 247. http response codes
Code Message Datatype

200

OK

[GetUserDetailsResponse]

===== Samples

=== FineractEntity

==== POST /entitytoentitymapping/{relId}

Operation Id

createMap

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

relId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 248. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /entitytoentitymapping/{mapId}

Operation Id

delete4

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mapId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 249. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /entitytoentitymapping/{mapId}/{fromId}/{toId}

Operation Id

getEntityToEntityMappings

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mapId

X

null

fromId

X

null

toId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 250. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /entitytoentitymapping

Operation Id

retrieveAll7

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 251. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /entitytoentitymapping/{mapId}

Operation Id

retrieveOne4

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mapId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 252. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /entitytoentitymapping/{mapId}

Operation Id

updateMap

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mapId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 253. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== FixedDepositAccount

==== GET /fixeddepositaccounts/{accountId}/template

Operation Id

accountClosureTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 254. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /fixeddepositaccounts/{accountId}

Operation Id

delete14

Delete a fixed deposit application

===== Description

At present we support hard delete of fixed deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the fixed deposit account.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 255. http response codes
Code Message Datatype

200

OK

[DeleteFixedDepositAccountsAccountIdResponse]

===== Samples

==== GET /fixeddepositaccounts/downloadtemplate

Operation Id

getFixedDepositTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 256. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /fixeddepositaccounts/transaction/downloadtemplate

Operation Id

getFixedDepositTransactionTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 257. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /fixeddepositaccounts/{accountId}

Operation Id

handleCommands4

Approve fixed deposit application | Undo approval fixed deposit application | Reject fixed deposit application | Withdraw fixed deposit application | Activate a fixed deposit account | Close a fixed deposit account | Premature Close a fixed deposit account | Calculate Premature amount on Fixed deposit account | Calculate Interest on Fixed Deposit Account | Post Interest on Fixed Deposit Account

===== Description

Approve fixed deposit application: Approves fixed deposit application so long as its in 'Submitted and pending approval' state. Undo approval fixed deposit application: Will move 'approved' fixed deposit application back to 'Submitted and pending approval' state. Reject fixed deposit application: Rejects fixed deposit application so long as its in 'Submitted and pending approval' state. Withdraw fixed deposit application: Used when an applicant withdraws from the fixed deposit application. It must be in 'Submitted and pending approval' state. Close a fixed deposit account: Results in a Matured fixed deposit account being converted into a 'closed' fixed deposit account. Premature Close a fixed deposit account: Results in an Active fixed deposit account being converted into a 'Premature Closed' fixed deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.) Calculate Premature amount on Fixed deposit account: Calculate premature amount on fixed deposit account till premature close date. Premature amount is calculated based on interest chart and penal interest applicable. Calculate Interest on Fixed Deposit Account: Calculates interest earned on a fixed deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process. Post Interest on Fixed Deposit Account: Calculates and Posts interest earned on a fixed deposit account based on today’s date and whether an interest posting or crediting event is due. Showing request/response for Calculate Interest on Fixed Deposit Account

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 258. http response codes
Code Message Datatype

200

OK

[PostFixedDepositAccountsAccountIdResponse]

===== Samples

==== POST /fixeddepositaccounts/uploadtemplate

Operation Id

postFixedDepositTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 259. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /fixeddepositaccounts/transaction/uploadtemplate

Operation Id

postFixedDepositTransactionTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 260. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /fixeddepositaccounts

Operation Id

retrieveAll29

List Fixed deposit applications/accounts

===== Description

Lists Fixed Deposit Accounts Example Requests: fixeddepositaccounts fixeddepositaccounts?fields=name

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

paged

paged

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 261. http response codes
Code Message Datatype

200

OK

List[[GetFixedDepositAccountsResponse]]

===== Samples

==== GET /fixeddepositaccounts/{accountId}

Operation Id

retrieveOne18

Retrieve a fixed deposit application/account

===== Description

Retrieves a fixed deposit application/account Example Requests : fixeddepositaccounts/1 fixeddepositaccounts/1?associations=all

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 262. http response codes
Code Message Datatype

200

OK

[GetFixedDepositAccountsAccountIdResponse]

===== Samples

==== POST /fixeddepositaccounts

Operation Id

submitApplication

Submit new fixed deposit application

===== Description

Submits a new fixed deposit applicationMandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostFixedDepositAccountsRequest

[PostFixedDepositAccountsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 263. http response codes
Code Message Datatype

200

OK

[PostFixedDepositAccountsResponse]

===== Samples

==== GET /fixeddepositaccounts/template

Operation Id

template12

Retrieve Fixed Deposit Account Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for fixed deposit applications. The template data returned consists of any or all of: Field Defaults Allowed Value ListsExample Requests: fixeddepositaccounts/template?clientId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

groupId

groupId

-

null

productId

productId

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 264. http response codes
Code Message Datatype

200

OK

[GetFixedDepositAccountsTemplateResponse]

===== Samples

==== PUT /fixeddepositaccounts/{accountId}

Operation Id

update15

Modify a fixed deposit application

===== Description

Fixed deposit 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. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutFixedDepositAccountsAccountIdRequest

[PutFixedDepositAccountsAccountIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 265. http response codes
Code Message Datatype

200

OK

[PutFixedDepositAccountsAccountIdResponse]

===== Samples

=== FixedDepositAccountTransactions

==== POST /fixeddepositaccounts/{fixedDepositAccountId}/transactions/{transactionId}

Operation Id

adjustTransaction

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fixedDepositAccountId

X

null

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 266. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /fixeddepositaccounts/{fixedDepositAccountId}/transactions/{transactionId}

Operation Id

retrieveOne17

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fixedDepositAccountId

X

null

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 267. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /fixeddepositaccounts/{fixedDepositAccountId}/transactions/template

Operation Id

retrieveTemplate13

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fixedDepositAccountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 268. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /fixeddepositaccounts/{fixedDepositAccountId}/transactions

Operation Id

transaction

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fixedDepositAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 269. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== FixedDepositProduct

==== POST /fixeddepositproducts

Operation Id

create11

Create a Fixed Deposit Product

===== Description

Creates a Fixed Deposit Product Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minDepositTerm, minDepositTermTypeId, accountingRule Optional Fields: lockinPeriodFrequency, lockinPeriodFrequencyType, maxDepositTerm, maxDepositTermTypeId, inMultiplesOfDepositTerm, inMultiplesOfDepositTermTypeId, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, charts, , withHoldTax, taxGroupId Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostFixedDepositProductsRequest

[PostFixedDepositProductsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 270. http response codes
Code Message Datatype

200

OK

[PostFixedDepositProductsResponse]

===== Samples

==== DELETE /fixeddepositproducts/{productId}

Operation Id

delete15

Delete a Fixed Deposit Product

===== Description

Deletes a Fixed Deposit Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 271. http response codes
Code Message Datatype

200

OK

[DeleteFixedDepositProductsProductIdResponse]

===== Samples

==== GET /fixeddepositproducts

Operation Id

retrieveAll30

List Fixed Deposit Products

===== Description

Lists Fixed Deposit Products Example Requests: fixeddepositproducts fixeddepositproducts?fields=name

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 272. http response codes
Code Message Datatype

200

OK

List[[GetFixedDepositProductsResponse]]

===== Samples

==== GET /fixeddepositproducts/{productId}

Operation Id

retrieveOne19

Retrieve a Fixed Deposit Product

===== Description

Retrieves a Fixed Deposit Product Example Requests: fixeddepositproducts/1 fixeddepositproducts/1?template=true fixeddepositproducts/1?fields=name,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 273. http response codes
Code Message Datatype

200

OK

[GetFixedDepositProductsProductIdResponse]

===== Samples

==== GET /fixeddepositproducts/template

Operation Id

retrieveTemplate14

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 274. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /fixeddepositproducts/{productId}

Operation Id

update16

Update a Fixed Deposit Product

===== Description

Updates a Fixed Deposit Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutFixedDepositProductsProductIdRequest

[PutFixedDepositProductsProductIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 275. http response codes
Code Message Datatype

200

OK

[PutFixedDepositProductsProductIdResponse]

===== Samples

=== FloatingRates

==== POST /floatingrates

Operation Id

createFloatingRate

Create a new Floating Rate

===== Description

Creates a new Floating Rate Mandatory Fields: name Optional Fields: isBaseLendingRate, isActive, ratePeriods

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostFloatingRatesRequest

[PostFloatingRatesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 276. http response codes
Code Message Datatype

200

OK

[PostFloatingRatesResponse]

===== Samples

==== GET /floatingrates

Operation Id

retrieveAll22

List Floating Rates

===== Description

Lists Floating Rates

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 277. http response codes
Code Message Datatype

200

OK

List[[GetFloatingRatesResponse]]

===== Samples

==== GET /floatingrates/{floatingRateId}

Operation Id

retrieveOne12

Retrieve Floating Rate

===== Description

Retrieves Floating Rate

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

floatingRateId

floatingRateId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 278. http response codes
Code Message Datatype

200

OK

[GetFloatingRatesFloatingRateIdResponse]

===== Samples

==== PUT /floatingrates/{floatingRateId}

Operation Id

updateFloatingRate

Update Floating Rate

===== Description

Updates new Floating Rate. Rate Periods in the past cannot be modified. All the future rateperiods would be replaced with the new ratePeriods data sent.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

floatingRateId

floatingRateId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutFloatingRatesFloatingRateIdRequest

[PutFloatingRatesFloatingRateIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 279. http response codes
Code Message Datatype

200

OK

[PutFloatingRatesFloatingRateIdResponse]

===== Samples

=== Funds

==== POST /funds

Operation Id

createFund

Create a Fund

===== Description

Creates a Fund

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostFundsRequest

[PostFundsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 280. http response codes
Code Message Datatype

200

OK

[PostFundsResponse]

===== Samples

==== GET /funds/{fundId}

Operation Id

retreiveFund

Retrieve a Fund

===== Description

Returns the details of a Fund. Example Requests: funds/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fundId

fundId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 281. http response codes
Code Message Datatype

200

OK

[GetFundsResponse]

===== Samples

==== GET /funds

Operation Id

retrieveFunds

Retrieve Funds

===== Description

Returns the list of funds. Example Requests: funds

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 282. http response codes
Code Message Datatype

200

OK

List[[GetFundsResponse]]

===== Samples

==== PUT /funds/{fundId}

Operation Id

updateFund

Update a Fund

===== Description

Updates the details of a fund.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

fundId

fundId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutFundsFundIdRequest

[PutFundsFundIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 283. http response codes
Code Message Datatype

200

OK

[PutFundsFundIdResponse]

===== Samples

=== GeneralLedgerAccount

==== POST /glaccounts

Operation Id

createGLAccount1

Create a General Ledger Account

===== Description

Note: You may optionally create Hierarchical Chart of Accounts by using the \"parentId\" property of an Account Mandatory Fields: name, glCode, type, usage and manualEntriesAllowed

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostGLAccountsRequest

[PostGLAccountsRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 284. http response codes
Code Message Datatype

200

OK

[PostGLAccountsResponse]

===== Samples

==== DELETE /glaccounts/{glAccountId}

Operation Id

deleteGLAccount1

Delete a GL Account

===== Description

Deletes a GL Account

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glAccountId

glAccountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 285. http response codes
Code Message Datatype

200

OK

[DeleteGLAccountsRequest]

===== Samples

==== GET /glaccounts/downloadtemplate

Operation Id

getGlAccountsTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 286. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /glaccounts/uploadtemplate

Operation Id

postGlAccountsTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 287. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /glaccounts/{glAccountId}

Operation Id

retreiveAccount

Retrieve a General Ledger Account

===== Description

Example Requests: glaccounts/1 glaccounts/1?template=true glaccounts/1?fields=name,glCode glaccounts/1?fetchRunningBalance=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glAccountId

glAccountId

X

null

====== Query Parameters

Name Description Required Default Pattern

fetchRunningBalance

fetchRunningBalance

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 288. http response codes
Code Message Datatype

200

OK

[GetGLAccountsResponse]

===== Samples

==== GET /glaccounts

Operation Id

retrieveAllAccounts

List General Ledger Accounts

===== Description

ARGUMENTS type Integer optional manualEntriesAllowed boolean optional usage Integer optional disabled boolean optional parentId Long optional tagId Long optional Example Requests: glaccounts glaccounts?type=1&manualEntriesAllowed=true&usage=1&disabled=false glaccounts?fetchRunningBalance=true

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

type

type

-

null

searchParam

searchParam

-

null

usage

usage

-

null

manualEntriesAllowed

manualEntriesAllowed

-

null

disabled

disabled

-

null

fetchRunningBalance

fetchRunningBalance

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 289. http response codes
Code Message Datatype

200

OK

List[[GetGLAccountsResponse]]

===== Samples

==== GET /glaccounts/template

Operation Id

retrieveNewAccountDetails

Retrieve GL Accounts Template

===== Description

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 Value Lists Example Request: glaccounts/template glaccounts/template?type=1 type is optional and integer value from 1 to 5. 1.Assets 2.Liabilities 3.Equity 4.Income 5.Expenses

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

type

type

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 290. http response codes
Code Message Datatype

200

OK

[GetGLAccountsTemplateResponse]

===== Samples

==== PUT /glaccounts/{glAccountId}

Operation Id

updateGLAccount1

Update a GL Account

===== Description

Updates a GL Account

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glAccountId

glAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutGLAccountsRequest

[PutGLAccountsRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 291. http response codes
Code Message Datatype

200

OK

[PutGLAccountsResponse]

===== Samples

=== GlobalConfiguration

==== GET /configurations

Operation Id

retrieveConfiguration

Retrieve Global Configuration | Retrieve Global Configuration for surveys

===== Description

Returns the list global enable/disable configurations. Example Requests: configurations Returns the list global enable/disable survey configurations. Example Requests: configurations/survey

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

survey

survey

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 292. http response codes
Code Message Datatype

200

List of example \\n response \\nsurveys response \\ngiven below

[GetGlobalConfigurationsResponse]

===== Samples

==== GET /configurations/{configId}

Operation Id

retrieveOne3

Retrieve Global Configuration

===== Description

Returns a global enable/disable configurations. Example Requests: configurations/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

configId

configId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 293. http response codes
Code Message Datatype

200

OK

[GetGlobalConfigurationsResponse]

===== Samples

==== GET /configurations/name/{name}

Operation Id

retrieveOneByName

Retrieve Global Configuration

===== Description

Returns a global enable/disable configuration. Example Requests: configurations/name/Enable-Address

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

name

name

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 294. http response codes
Code Message Datatype

200

OK

[GlobalConfigurationPropertyData]

===== Samples

==== PUT /configurations/{configId}

Operation Id

updateConfiguration1

Update Global Configuration

===== Description

Updates an enable/disable global configuration item.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

configId

configId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutGlobalConfigurationsRequest

[PutGlobalConfigurationsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 295. http response codes
Code Message Datatype

200

OK

[PutGlobalConfigurationsResponse]

===== Samples

=== Groups

==== POST /groups/{groupId}

Operation Id

activateOrGenerateCollectionSheet

Activate a Group | Associate Clients | Disassociate Clients | Transfer Clients across groups | Generate Collection Sheet | Save Collection Sheet | Unassign a Staff | Assign a Staff | Close a Group | Unassign a Role | Update a Role

===== Description

Activate a Group: Groups can be created in a Pending state. This API exists to enable group activation. If the group happens to be already active this API will result in an error. Mandatory Fields: activationDate Associate Clients: This API allows to associate existing clients to a group. The clients are listed from the office to which the group is associated. If client(s) is already associated with group then API will result in an error. Mandatory Fields: clientMembers Disassociate Clients: This API allows to disassociate clients from a group. Disassociating a client with active joint liability group loans results in an error. Mandatory Fields: clientMembers Transfer Clients across groups: This API allows to transfer clients from one group to another Mandatory Fields: destinationGroupId and clients Optional Fields: inheritDestinationGroupLoanOfficer (defaults to true) and transferActiveLoans (defaults to true) Generate Collection Sheet: This API retrieves repayment details of all jlg loans of all members of a group on a specified meeting date. Mandatory Fields: calendarId and transactionDate Save Collection Sheet: This api allows the loan officer to perform bulk repayments of JLG loans for a group on its meeting date. Mandatory Fields: calendarId, transactionDate, actualDisbursementDate Optional Fields: clientsAttendance, bulkRepaymentTransaction, bulkDisbursementTransactions Unassign a Staff: Allows you to unassign the Staff. Mandatory Fields: staffId Assign a Staff: Allows you to assign Staff to an existing Group. The selected Staff should be belong to the same office (or an office higher up in the hierarchy) as this groupMandatory Fields: staffId Optional Fields: inheritStaffForClientAccounts (Optional: Boolean if true all members of the group (i.e all clients with active loans and savings ) will inherit the staffId) Close a Group: This API exists to close a group. Groups can be closed if they don’t have any non-closed clients/loans/savingsAccounts. If the group has any active clients/loans/savingsAccount, this API will result in an error.Assign a Role: Allows you to assign a Role to an existing member of a group. We can define the different roles applicable to group members by adding code values to the pre-defined system code GROUPROLE. Example:Group leader etc. Mandatory Fields: clientId, role Unassign a Role: Allows you to unassign Roles associated tp Group members. Update a Role: Allows you to update the member Role. Mandatory Fields: role Showing request/response for Transfer Clients across groups

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostGroupsGroupIdRequest

[PostGroupsGroupIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

roleId

roleId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 296. http response codes
Code Message Datatype

200

OK

[PostGroupsGroupIdResponse]

===== Samples

==== POST /groups

Operation Id

create8

Create a Group

===== Description

Creates a Group Mandatory Fields: name, officeId, active, activationDate (if active=true) Optional Fields: externalId, staffId, clientMembers

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostGroupsRequest

[PostGroupsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 297. http response codes
Code Message Datatype

200

OK

[PostGroupsResponse]

===== Samples

==== DELETE /groups/{groupId}

Operation Id

delete11

Delete a Group

===== Description

A group can be deleted if it is in pending state and has no associations - clients, loans or savings

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 298. http response codes
Code Message Datatype

200

OK

[DeleteGroupsGroupIdResponse]

===== Samples

==== GET /groups/downloadtemplate

Operation Id

getGroupsTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 299. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /groups/uploadtemplate

Operation Id

postGroupTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 300. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /groups/{groupId}/accounts

Operation Id

retrieveAccounts

Retrieve Group accounts overview

===== Description

Retrieves details of all Loan and Savings accounts associated with this group. Example Requests: groups/1/accounts groups/1/accounts?fields=loanAccounts,savingsAccounts,memberLoanAccounts, memberSavingsAccounts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 301. http response codes
Code Message Datatype

200

OK

[GetGroupsGroupIdAccountsResponse]

===== Samples

==== GET /groups

Operation Id

retrieveAll24

List Groups

===== Description

The default implementation of listing Groups returns 200 entries with support for pagination and sorting. Using the parameter limit with description -1 returns all entries. Example Requests: groups groups?fields=name,officeName,joinedDate groups?offset=10&limit=50 groups?orderBy=name&sortOrder=DESC

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

staffId

staffId

-

null

externalId

externalId

-

null

name

name

-

null

underHierarchy

underHierarchy

-

null

paged

paged

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

orphansOnly

orphansOnly

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 302. http response codes
Code Message Datatype

200

OK

[GetGroupsResponse]

===== Samples

==== GET /groups/{groupId}/gsimaccounts

Operation Id

retrieveGsimAccounts

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

X

null

====== Query Parameters

Name Description Required Default Pattern

parentGSIMAccountNo

-

null

parentGSIMId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 303. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /groups/{groupId}

Operation Id

retrieveOne14

Retrieve a Group

===== Description

Retrieve group information. Example Requests: groups/1 groups/1?associations=clientMembers

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

roleId

roleId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 304. http response codes
Code Message Datatype

200

OK

[GetGroupsGroupIdResponse]

===== Samples

==== GET /groups/template

Operation Id

retrieveTemplate7

Retrieve Group Template

===== Description

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 Value Lists Example Requests: groups/template groups/template?officeId=2 groups/template?centerId=1 groups/template?centerId=1&staffInSelectedOfficeOnly=true

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

center

center

-

null

centerId

centerId

-

null

command

command

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 305. http response codes
Code Message Datatype

200

OK

[GetGroupsTemplateResponse]

===== Samples

==== GET /groups/{groupId}/glimaccounts

Operation Id

retrieveglimAccounts

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

X

null

====== Query Parameters

Name Description Required Default Pattern

parentLoanAccountNo

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 306. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /groups/{groupId}/command/unassign_staff

Operation Id

unassignLoanOfficer

Unassign a Staff

===== Description

Allows you to unassign the Staff. Mandatory Fields: staffId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostGroupsGroupIdCommandUnassignStaffRequest

[PostGroupsGroupIdCommandUnassignStaffRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 307. http response codes
Code Message Datatype

200

OK

[PostGroupsGroupIdCommandUnassignStaffResponse]

===== Samples

==== PUT /groups/{groupId}

Operation Id

update12

Update a Group

===== Description

Updates a Group

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

groupId

groupId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutGroupsGroupIdRequest

[PutGroupsGroupIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 308. http response codes
Code Message Datatype

200

OK

[PutGroupsGroupIdResponse]

===== Samples

=== GroupsLevel

==== GET /grouplevels

Operation Id

retrieveAllGroups

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 309. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Guarantors

==== GET /loans/{loanId}/guarantors/accounts/template

Operation Id

accountsTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 310. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /loans/{loanId}/guarantors

Operation Id

createGuarantor

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 311. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /loans/{loanId}/guarantors/{guarantorId}

Operation Id

deleteGuarantor

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

guarantorId

X

null

====== Query Parameters

Name Description Required Default Pattern

guarantorFundingId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 312. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/{loanId}/guarantors/downloadtemplate

Operation Id

getGuarantorTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 313. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /loans/{loanId}/guarantors/template

Operation Id

newGuarantorTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 314. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /loans/{loanId}/guarantors/uploadtemplate

Operation Id

postGuarantorTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 315. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/{loanId}/guarantors

Operation Id

retrieveGuarantorDetails

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 316. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/{loanId}/guarantors/{guarantorId}

Operation Id

retrieveGuarantorDetails1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

guarantorId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 317. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /loans/{loanId}/guarantors/{guarantorId}

Operation Id

updateGuarantor

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

guarantorId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 318. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Holidays

==== POST /holidays

Operation Id

createNewHoliday

Create a Holiday

===== Description

Mandatory Fields: name, description, fromDate, toDate, repaymentsRescheduledTo, offices

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostHolidaysRequest

[PostHolidaysRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 319. http response codes
Code Message Datatype

200

OK

[PostHolidaysResponse]

===== Samples

==== DELETE /holidays/{holidayId}

Operation Id

delete7

Delete a Holiday

===== Description

This API allows to delete a holiday. This is a soft delete the deleted holiday status is marked as deleted.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

holidayId

holidayId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 320. http response codes
Code Message Datatype

200

OK

[DeleteHolidaysHolidayIdResponse]

===== Samples

==== POST /holidays/{holidayId}

Operation Id

handleCommands1

Activate a Holiday

===== Description

Always Holidays are created in pending state. This API allows to activate a holiday. Only the active holidays are considered for rescheduling the loan repayment.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

holidayId

holidayId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 321. http response codes
Code Message Datatype

200

OK

[PostHolidaysHolidayIdResponse]

===== Samples

==== GET /holidays

Operation Id

retrieveAllHolidays

List Holidays

===== Description

Example Requests: holidays?officeId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

fromDate

fromDate

-

null

toDate

toDate

-

null

locale

locale

-

null

dateFormat

dateFormat

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 322. http response codes
Code Message Datatype

200

OK

List[[GetHolidaysResponse]]

===== Samples

==== GET /holidays/{holidayId}

Operation Id

retrieveOne7

Retrieve a Holiday

===== Description

Example Requests: holidays/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

holidayId

holidayId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 323. http response codes
Code Message Datatype

200

OK

[GetHolidaysResponse]

===== Samples

==== GET /holidays/template

Operation Id

retrieveRepaymentScheduleUpdationTyeOptions

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 324. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /holidays/{holidayId}

Operation Id

update6

Update a Holiday

===== Description

If a holiday is in pending state (created and not activated) then all fields are allowed to modify. Once holidays become active only name and descriptions are allowed to modify.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

holidayId

holidayId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutHolidaysHolidayIdRequest

[PutHolidaysHolidayIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 325. http response codes
Code Message Datatype

200

OK

[PutHolidaysHolidayIdResponse]

===== Samples

=== Hooks

==== POST /hooks

Operation Id

createHook

Create a Hook

===== Description

The following parameters can be passed for the creation of a hook :- name - string - Required. The name of the template that is being called. (See /hooks/template for the list of valid hook names.) isActive - boolean - Determines whether the hook is actually triggered. events - array - Determines what events the hook is triggered for. config - hash - Required. Key/value pairs to provide settings for this hook. These settings vary between the templates. templateId - Optional. The UGD template ID associated with the same entity (client or loan).

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostHookRequest

[PostHookRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 326. http response codes
Code Message Datatype

200

OK

[PostHookResponse]

===== Samples

==== DELETE /hooks/{hookId}

Operation Id

deleteHook

Delete a Hook

===== Description

Deletes a hook.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

hookId

hookId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 327. http response codes
Code Message Datatype

200

OK

[DeleteHookResponse]

===== Samples

==== GET /hooks/{hookId}

Operation Id

retrieveHook

Retrieve a Hook

===== Description

Returns the details of a Hook. Example Requests: hooks/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

hookId

hookId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 328. http response codes
Code Message Datatype

200

OK

[GetHookResponse]

===== Samples

==== GET /hooks

Operation Id

retrieveHooks

Retrieve Hooks

===== Description

Returns the list of hooks. Example Requests: hooks

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 329. http response codes
Code Message Datatype

200

OK

List[[GetHookResponse]]

===== Samples

==== GET /hooks/template

Operation Id

template3

Retrieve Hooks Template

===== Description

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 Request: hooks/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 330. http response codes
Code Message Datatype

200

OK

[GetHookTemplateResponse]

===== Samples

==== PUT /hooks/{hookId}

Operation Id

updateHook

Update a Hook

===== Description

Updates the details of a hook.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

hookId

hookId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutHookRequest

[PutHookRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 331. http response codes
Code Message Datatype

200

OK

[PutHookResponse]

===== Samples

=== InlineJob

==== POST /jobs/{jobName}/inline

Operation Id

executeInlineJob

Starts an inline Job

===== Description

Starts an inline Job

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobName

jobName

X

null

====== Body Parameter

Name Description Required Default Pattern

InlineJobRequest

[InlineJobRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 332. http response codes
Code Message Datatype

200

OK

[InlineJobResponse]

===== Samples

=== InstanceMode

==== PUT /instance-mode

Operation Id

changeMode

Changes the Fineract instance mode

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

ChangeInstanceModeRequest

[ChangeInstanceModeRequest]

X

===== Return Type

-

===== Responses

Table 333. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

=== InterOperation

==== POST /interoperation/quotes

Operation Id

createQuote

Calculate Interoperation Quote

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

InteropQuoteRequestData

[InteropQuoteRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 334. http response codes
Code Message Datatype

200

OK

[InteropQuoteResponseData]

===== Samples

==== POST /interoperation/requests

Operation Id

createTransactionRequest

Allow Interoperation Transaction Request

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

InteropTransactionRequestData

[InteropTransactionRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 335. http response codes
Code Message Datatype

200

OK

[InteropTransactionRequestResponseData]

===== Samples

==== DELETE /interoperation/parties/{idType}/{idValue}

Operation Id

deleteAccountIdentifier

Allow Interoperation Identifier registration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

====== Body Parameter

Name Description Required Default Pattern

InteropIdentifierRequestData

[InteropIdentifierRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 336. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

==== DELETE /interoperation/parties/{idType}/{idValue}/{subIdOrType}

Operation Id

deleteAccountIdentifier1

Allow Interoperation Identifier registration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

subIdOrType

subIdOrType

X

null

====== Body Parameter

Name Description Required Default Pattern

InteropIdentifierRequestData

[InteropIdentifierRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 337. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

==== POST /interoperation/transactions/{accountId}/disburse

Operation Id

disburseLoan

Disburse Loan by Account Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 338. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /interoperation/parties/{idType}/{idValue}

Operation Id

getAccountByIdentifier

Query Interoperation Account by secondary identifier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 339. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

==== GET /interoperation/parties/{idType}/{idValue}/{subIdOrType}

Operation Id

getAccountByIdentifier1

Query Interoperation Account by secondary identifier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

subIdOrType

subIdOrType

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 340. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

==== GET /interoperation/accounts/{accountId}

Operation Id

getAccountDetails

Query Interoperation Account details

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 341. http response codes
Code Message Datatype

200

OK

[InteropAccountData]

===== Samples

==== GET /interoperation/accounts/{accountId}/identifiers

Operation Id

getAccountIdentifiers

Query Interoperation secondary identifiers by Account Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 342. http response codes
Code Message Datatype

200

OK

[InteropIdentifiersResponseData]

===== Samples

==== GET /interoperation/accounts/{accountId}/transactions

Operation Id

getAccountTransactions

Query transactions by Account Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

debit

debit

-

true

credit

credit

-

false

fromBookingDateTime

fromBookingDateTime

-

null

toBookingDateTime

toBookingDateTime

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 343. http response codes
Code Message Datatype

200

OK

[InteropTransactionsData]

===== Samples

==== GET /interoperation/accounts/{accountId}/kyc

Operation Id

getClientKyc

Query KYC by Account Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 344. http response codes
Code Message Datatype

200

OK

[InteropKycResponseData]

===== Samples

==== GET /interoperation/transactions/{transactionCode}/quotes/{quoteCode}

Operation Id

getQuote

Query Interoperation Quote

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transactionCode

transactionCode

X

null

quoteCode

quoteCode

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 345. http response codes
Code Message Datatype

200

OK

[InteropQuoteResponseData]

===== Samples

==== GET /interoperation/transactions/{transactionCode}/requests/{requestCode}

Operation Id

getTransactionRequest

Query Interoperation Transaction Request

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transactionCode

transactionCode

X

null

requestCode

requestCode

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 346. http response codes
Code Message Datatype

200

OK

[InteropTransactionRequestResponseData]

===== Samples

==== GET /interoperation/transactions/{transactionCode}/transfers/{transferCode}

Operation Id

getTransfer

Query Interoperation Transfer

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transactionCode

transactionCode

X

null

transferCode

transferCode

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 347. http response codes
Code Message Datatype

200

OK

[InteropTransferResponseData]

===== Samples

==== GET /interoperation/health

Operation Id

health

Query Interoperation Health Request

===== Description

===== Parameters

===== Return Type

-

===== Responses

Table 348. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== POST /interoperation/transfers

Operation Id

performTransfer

Prepare Interoperation Transfer

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

InteropTransferRequestData

[InteropTransferRequestData]

X

====== Query Parameters

Name Description Required Default Pattern

action

action

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 349. http response codes
Code Message Datatype

200

OK

[InteropTransferResponseData]

===== Samples

==== POST /interoperation/parties/{idType}/{idValue}

Operation Id

registerAccountIdentifier

Interoperation Identifier registration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

====== Body Parameter

Name Description Required Default Pattern

InteropIdentifierRequestData

[InteropIdentifierRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 350. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

==== POST /interoperation/parties/{idType}/{idValue}/{subIdOrType}

Operation Id

registerAccountIdentifier1

Interoperation Identifier registration

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

idType

idType

X

null

idValue

idValue

X

null

subIdOrType

subIdOrType

X

null

====== Body Parameter

Name Description Required Default Pattern

InteropIdentifierRequestData

[InteropIdentifierRequestData]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 351. http response codes
Code Message Datatype

200

OK

[InteropIdentifierAccountResponseData]

===== Samples

=== InterestRateChart

==== POST /interestratecharts

Operation Id

create10

Create a Chart

===== Description

Creates a new chart which can be attached to a term deposit products (FD or RD).

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostInterestRateChartsRequest

[PostInterestRateChartsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 352. http response codes
Code Message Datatype

200

OK

[PostInterestRateChartsResponse]

===== Samples

==== DELETE /interestratecharts/{chartId}

Operation Id

delete13

Delete a Chart

===== Description

It deletes the chart

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 353. http response codes
Code Message Datatype

200

OK

[DeleteInterestRateChartsChartIdResponse]

===== Samples

==== GET /interestratecharts

Operation Id

retrieveAll26

Retrieve all Charts

===== Description

Retrieve list of charts associated with a term deposit product(FD or RD). Example Requests: interestratecharts?productId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

productId

productId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 354. http response codes
Code Message Datatype

200

OK

List[[GetInterestRateChartsResponse]]

===== Samples

==== GET /interestratecharts/{chartId}

Operation Id

retrieveOne16

Retrieve a Chart

===== Description

It retrieves the Interest Rate Chart Example Requests: interestratecharts/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 355. http response codes
Code Message Datatype

200

OK

[GetInterestRateChartsResponse]

===== Samples

==== GET /interestratecharts/template

Operation Id

template9

Retrieve Chart Details Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for creating a chart. The template data returned consists of any or all of: Field Defaults Allowed Value Lists Example Request: interestratecharts/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 356. http response codes
Code Message Datatype

200

OK

[GetInterestRateChartsTemplateResponse]

===== Samples

==== PUT /interestratecharts/{chartId}

Operation Id

update14

Update a Chart

===== Description

It updates the chart

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutInterestRateChartsChartIdRequest

[PutInterestRateChartsChartIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 357. http response codes
Code Message Datatype

200

OK

[PutInterestRateChartsChartIdResponse]

===== Samples

=== InterestRateSlabAKAInterestBands

==== POST /interestratecharts/{chartId}/chartslabs

Operation Id

create9

Create a Slab

===== Description

Creates a new interest rate slab for an interest rate chart. Mandatory Fields periodType, fromPeriod, annualInterestRate Optional Fields toPeriod and description Example Requests: interestratecharts/1/chartslabs

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostInterestRateChartsChartIdChartSlabsRequest

[PostInterestRateChartsChartIdChartSlabsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 358. http response codes
Code Message Datatype

200

OK

[PostInterestRateChartsChartIdChartSlabsResponse]

===== Samples

==== DELETE /interestratecharts/{chartId}/chartslabs/{chartSlabId}

Operation Id

delete12

Delete a Slab

===== Description

Delete a Slab from a chart

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

chartSlabId

chartSlabId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 359. http response codes
Code Message Datatype

200

OK

[DeleteInterestRateChartsChartIdChartSlabsResponse]

===== Samples

==== GET /interestratecharts/{chartId}/chartslabs

Operation Id

retrieveAll25

Retrieve all Slabs

===== Description

Retrieve list of slabs associated with a chart Example Requests: interestratecharts/1/chartslabs

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 360. http response codes
Code Message Datatype

200

OK

List[[GetInterestRateChartsChartIdChartSlabsResponse]]

===== Samples

==== GET /interestratecharts/{chartId}/chartslabs/{chartSlabId}

Operation Id

retrieveOne15

Retrieve a Slab

===== Description

Retrieve a slab associated with an Interest rate chart Example Requests: interestratecharts/1/chartslabs/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

chartSlabId

chartSlabId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 361. http response codes
Code Message Datatype

200

OK

[GetInterestRateChartsChartIdChartSlabsResponse]

===== Samples

==== GET /interestratecharts/{chartId}/chartslabs/template

Operation Id

template8

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 362. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /interestratecharts/{chartId}/chartslabs/{chartSlabId}

Operation Id

update13

Update a Slab

===== Description

It updates the Slab from chart

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

chartId

chartId

X

null

chartSlabId

chartSlabId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutInterestRateChartsChartIdChartSlabsChartSlabIdRequest

[PutInterestRateChartsChartIdChartSlabsChartSlabIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 363. http response codes
Code Message Datatype

200

OK

[PutInterestRateChartsChartIdChartSlabsChartSlabIdResponse]

===== Samples

=== JournalEntries

==== POST /journalentries

Operation Id

createGLJournalEntry

Create \"Balanced\" Journal Entries

===== Description

Note: A Balanced (simple) Journal entry would have atleast one \"Debit\" and one \"Credit\" entry whose amounts are equal Compound Journal entries may have \"n\" debits and \"m\" credits where both \"m\" and \"n\" are greater than 0 and the net sum or all debits and credits are equal Mandatory Fields officeId, transactionDate credits- glAccountId, amount, comments debits- glAccountId, amount, comments Optional Fields paymentTypeId, accountNumber, checkNumber, routingCode, receiptNumber, bankNumber

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

JournalEntryCommand

[JournalEntryCommand]

-

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 364. http response codes
Code Message Datatype

200

OK

[PostJournalEntriesResponse]

===== Samples

==== POST /journalentries/{transactionId}

Operation Id

createReversalJournalEntry

Update Running balances for Journal Entries

===== Description

This API calculates the running balances for office. If office ID not provided this API calculates running balances for all offices. Mandatory Fields officeId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

transactionId

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostJournalEntriesTransactionIdRequest

[PostJournalEntriesTransactionIdRequest]

-

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 365. http response codes
Code Message Datatype

200

OK

[PostJournalEntriesTransactionIdResponse]

===== Samples

==== GET /journalentries/downloadtemplate

Operation Id

getJournalEntriesTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 366. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /journalentries/uploadtemplate

Operation Id

postJournalEntriesTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 367. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /journalentries

Operation Id

retrieveAll1

List Journal Entries

===== Description

The list capability of journal entries can support pagination and sorting. Example Requests: journalentries journalentries?transactionId=PB37X8Y21EQUY4S journalentries?officeId=1&manualEntriesOnly=true&fromDate=1 July 2013&toDate=15 July 2013&dateFormat=dd MMMM yyyy&locale=en journalentries?fields=officeName,glAccountName,transactionDate journalentries?offset=10&limit=50 journalentries?orderBy=transactionId&sortOrder=DESC journalentries?runningBalance=true journalentries?transactionDetails=true journalentries?loanId=12 journalentries?savingsId=24

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

glAccountId

glAccountId

-

null

manualEntriesOnly

manualEntriesOnly

-

null

fromDate

fromDate

-

null

toDate

toDate

-

null

submittedOnDateFrom

submittedOnDateFrom

-

null

submittedOnDateTo

submittedOnDateTo

-

null

transactionId

transactionId

-

null

entityType

entityType

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

locale

locale

-

null

dateFormat

dateFormat

-

null

loanId

loanId

-

null

savingsId

savingsId

-

null

runningBalance

runningBalance

-

null

transactionDetails

transactionDetails

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 368. http response codes
Code Message Datatype

200

OK

List[[JournalEntryData]]

===== Samples

==== GET /journalentries/provisioning

Operation Id

retrieveJournalEntries

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

offset

-

null

limit

-

null

entryId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 369. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /journalentries/{journalEntryId}

Operation Id

retrieveJournalEntryById

Retrieve a single Entry

===== Description

Example Requests: journalentries/1 journalentries/1?fields=officeName,glAccountId,entryType,amount journalentries/1?runningBalance=true journalentries/1?transactionDetails=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

journalEntryId

journalEntryId

X

null

====== Query Parameters

Name Description Required Default Pattern

runningBalance

runningBalance

-

null

transactionDetails

transactionDetails

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 370. http response codes
Code Message Datatype

200

OK

[JournalEntryData]

===== Samples

==== GET /journalentries/openingbalance

Operation Id

retrieveOpeningBalance

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

currencyCode

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 371. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Likelihood

==== GET /likelihood/{ppiName}/{likelihoodId}

Operation Id

retrieve

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

likelihoodId

X

null

ppiName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 372. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /likelihood/{ppiName}

Operation Id

retrieveAll11

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

ppiName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 373. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /likelihood/{ppiName}/{likelihoodId}

Operation Id

update4

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

likelihoodId

X

null

ppiName

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 374. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== ListReportMailingJobHistory

==== GET /reportmailingjobrunhistory

Operation Id

retrieveAllByReportMailingJobId

List Report Mailing Job History

===== Description

The list capability of report mailing job history can support pagination and sorting. Example Requests: reportmailingjobrunhistory/1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

reportMailingJobId

reportMailingJobId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 375. http response codes
Code Message Datatype

200

OK

[ReportMailingJobRunHistoryData]

===== Samples

=== LoanAccountLock

==== GET /loans/locked

Operation Id

retrieveLockedAccounts

List locked loan accounts

===== Description

Returns the locked loan IDs

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

page

-

null

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 376. http response codes
Code Message Datatype

200

OK

List[[GetLoanAccountLockResponse]]

===== Samples

=== LoanCharges

==== DELETE /loans/{loanId}/charges/{chargeId}

Operation Id

deleteLoanCharge

Delete a Loan Charge

===== Description

Note: Currently, A Loan Charge may only be removed from Loans that are not yet approved.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 377. http response codes
Code Message Datatype

200

OK

[DeleteLoansLoanIdChargesChargeIdResponse]

===== Samples

==== POST /loans/{loanId}/charges

Operation Id

executeLoanCharge

Create a Loan Charge

===== Description

It Creates a Loan Charge

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdChargesRequest

[PostLoansLoanIdChargesRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 378. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdChargesResponse]

===== Samples

==== POST /loans/{loanId}/charges/{chargeId}

Operation Id

executeLoanCharge1

Pay Loan Charge

===== Description

Loan Charge will be paid if the loan is linked with a savings account

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

chargeId

chargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdChargesChargeIdRequest

[PostLoansLoanIdChargesChargeIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 379. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdChargesChargeIdResponse]

===== Samples

==== GET /loans/{loanId}/charges

Operation Id

retrieveAllLoanCharges

List Loan Charges

===== Description

It lists all the Loan Charges specific to a Loan Example Requests: loans/1/charges loans/1/charges?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 380. http response codes
Code Message Datatype

200

OK

List[[GetLoansLoanIdChargesChargeIdResponse]]

===== Samples

==== GET /loans/{loanId}/charges/{chargeId}

Operation Id

retrieveLoanCharge

Retrieve a Loan Charge

===== Description

Retrieves Loan Charge according to the Loan ID and Charge IDExample Requests: /loans/1/charges/1 /loans/1/charges/1?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 381. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdChargesChargeIdResponse]

===== Samples

==== GET /loans/{loanId}/charges/template

Operation Id

retrieveTemplate8

Retrieve Loan Charges Template

===== Description

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 Request: loans/1/charges/template

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 382. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdChargesTemplateResponse]

===== Samples

==== PUT /loans/{loanId}/charges/{chargeId}

Operation Id

updateLoanCharge

Update a Loan Charge

===== Description

Currently Loan Charges may be updated only if the Loan is not yet approved

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

chargeId

chargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutLoansLoanIdChargesChargeIdRequest

[PutLoansLoanIdChargesChargeIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 383. http response codes
Code Message Datatype

200

OK

[PutLoansLoanIdChargesChargeIdResponse]

===== Samples

=== LoanCollateral

==== POST /loans/{loanId}/collaterals

Operation Id

createCollateral

Create a Collateral

===== Description

Note: Currently, Collaterals may be added only before a Loan is approved

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdCollateralsRequest

[PostLoansLoanIdCollateralsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 384. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdCollateralsResponse]

===== Samples

==== DELETE /loans/{loanId}/collaterals/{collateralId}

Operation Id

deleteCollateral

Remove a Collateral

===== Description

Note: A collateral can only be removed from Loans that are not yet approved.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 385. http response codes
Code Message Datatype

200

OK

[DeleteLoansLoanIdCollateralsCollateralIdResponse]

===== Samples

==== GET /loans/{loanId}/collaterals/template

Operation Id

newCollateralTemplate

Retrieve Collateral Details Template

===== Description

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 Value Lists Example Request: loans/1/collaterals/template

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 386. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdCollateralsTemplateResponse]

===== Samples

==== GET /loans/{loanId}/collaterals

Operation Id

retrieveCollateralDetails

List Loan Collaterals

===== Description

Example Requests: loans/1/collaterals loans/1/collaterals?fields=value,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 387. http response codes
Code Message Datatype

200

OK

List[[GetLoansLoanIdCollateralsResponse]]

===== Samples

==== GET /loans/{loanId}/collaterals/{collateralId}

Operation Id

retrieveCollateralDetails1

Retrieve a Collateral

===== Description

Example Requests: /loans/1/collaterals/1 /loans/1/collaterals/1?fields=description,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 388. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdCollateralsResponse]

===== Samples

==== PUT /loans/{loanId}/collaterals/{collateralId}

Operation Id

updateCollateral

Update a Collateral

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

collateralId

collateralId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutLoansLoandIdCollateralsCollateralIdRequest

[PutLoansLoandIdCollateralsCollateralIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 389. http response codes
Code Message Datatype

200

OK

[PutLoansLoanIdCollateralsCollateralIdResponse]

===== Samples

=== LoanCollateralManagement

==== DELETE /loan-collateral-management/{id}

Operation Id

deleteLoanCollateral

Delete Loan Collateral

===== Description

Delete Loan Collateral

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

id

loan collateral id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 390. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loan-collateral-management/{collateralId}

Operation Id

getLoanCollateral

Get Loan Collateral Details

===== Description

Get Loan Collateral Details

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

collateralId

collateralId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 391. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== LoanDisbursementDetails

==== PUT /loans/{loanId}/disbursements/editDisbursements

Operation Id

addAndDeleteDisbursementDetail

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 392. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/{loanId}/disbursements/{disbursementId}

Operation Id

retriveDetail

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

disbursementId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 393. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /loans/{loanId}/disbursements/{disbursementId}

Operation Id

updateDisbursementDate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

disbursementId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 394. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== LoanProducts

==== POST /loanproducts

Operation Id

createLoanProduct

Create a Loan Product

===== Description

Depending of the Accounting Rule (accountingRule) selected, additional fields with details of the appropriate Ledger Account identifiers would need to be passed in. Refer MifosX Accounting Specs Draft for more details regarding the significance of the selected accounting rule Mandatory Fields: name, shortName, currencyCode, digitsAfterDecimal, inMultiplesOf, principal, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, interestRateFrequencyType, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyCode, accountingRule, isInterestRecalculationEnabled, daysInYearType, daysInMonthType Optional Fields: inArrearsTolerance, graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, graceOnArrearsAgeing, charges, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, includeInBorrowerCycle, useBorrowerCycle,principalVariationsForBorrowerCycle, numberOfRepaymentVariationsForBorrowerCycle, interestRateVariationsForBorrowerCycle, multiDisburseLoan,maxTrancheCount, outstandingLoanBalance,overdueDaysForNPA,holdGuaranteeFunds, principalThresholdForLastInstalment, accountMovesOutOfNPAOnlyOnArrearsCompletion, canDefineInstallmentAmount, installmentAmountInMultiplesOf, allowAttributeOverrides, allowPartialPeriodInterestCalcualtion Additional Mandatory Fields for Cash(2) based accounting: fundSourceAccountId, loanPortfolioAccountId, interestOnLoanAccountId, incomeFromFeeAccountId, incomeFromPenaltyAccountId, writeOffAccountId, transfersInSuspenseAccountId, overpaymentLiabilityAccountId Additional Mandatory Fields for periodic (3) and upfront (4)accrual accounting: fundSourceAccountId, loanPortfolioAccountId, interestOnLoanAccountId, incomeFromFeeAccountId, incomeFromPenaltyAccountId, writeOffAccountId, receivableInterestAccountId, receivableFeeAccountId, receivablePenaltyAccountId, transfersInSuspenseAccountId, overpaymentLiabilityAccountId Additional Mandatory Fields if interest recalculation is enabled(true): interestRecalculationCompoundingMethod, rescheduleStrategyMethod, recalculationRestFrequencyType Additional Optional Fields if interest recalculation is enabled(true): isArrearsBasedOnOriginalSchedule, preClosureInterestCalculationStrategy Additional Optional Fields if interest recalculation is enabled(true) and recalculationRestFrequencyType is not same as repayment period: recalculationRestFrequencyInterval, recalculationRestFrequencyDate Additional Optional Fields if interest recalculation is enabled(true) and interestRecalculationCompoundingMethod is enabled: recalculationCompoundingFrequencyType Additional Optional Fields if interest recalculation is enabled(true) and interestRecalculationCompoundingMethod is enabled and recalculationCompoundingFrequencyType is not same as repayment period: recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate Additional Mandatory Fields if Hold Guarantee funds is enabled(true): mandatoryGuarantee Additional Optional Fields if Hold Guarantee funds is enabled(true): minimumGuaranteeFromOwnFunds,minimumGuaranteeFromGuarantor

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostLoanProductsRequest

[PostLoanProductsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 395. http response codes
Code Message Datatype

200

OK

[PostLoanProductsResponse]

===== Samples

==== GET /loanproducts

Operation Id

retrieveAllLoanProducts

List Loan Products

===== Description

Lists Loan Products Example Requests: loanproducts loanproducts?fields=name,description,interestRateFrequencyType,amortizationType

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 396. http response codes
Code Message Datatype

200

OK

List[[GetLoanProductsResponse]]

===== Samples

==== GET /loanproducts/{productId}

Operation Id

retrieveLoanProductDetails

Retrieve a Loan Product

===== Description

Retrieves a Loan Product Example Requests: loanproducts/1 loanproducts/1?template=true loanproducts/1?fields=name,description,numberOfRepayments

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 397. http response codes
Code Message Datatype

200

OK

[GetLoanProductsProductIdResponse]

===== Samples

==== GET /loanproducts/template

Operation Id

retrieveTemplate10

Retrieve Loan Product Details Template

===== Description

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 Request: loanproducts/template

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

isProductMixTemplate

isProductMixTemplate

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 398. http response codes
Code Message Datatype

200

OK

[GetLoanProductsTemplateResponse]

===== Samples

==== PUT /loanproducts/{productId}

Operation Id

updateLoanProduct

Update a Loan Product

===== Description

Updates a Loan Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutLoanProductsProductIdRequest

[PutLoanProductsProductIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 399. http response codes
Code Message Datatype

200

OK

[PutLoanProductsProductIdResponse]

===== Samples

=== LoanRescheduling

==== POST /loans/{loanId}/schedule

Operation Id

calculateLoanScheduleOrSubmitVariableSchedule

Calculate loan repayment schedule based on Loan term variations | Updates loan repayment schedule based on Loan term variations | Updates loan repayment schedule by removing Loan term variations

===== Description

Calculate loan repayment schedule based on Loan term variations: Mandatory Fields: exceptions,locale,dateFormat Updates loan repayment schedule based on Loan term variations: Mandatory Fields: exceptions,locale,dateFormat Updates loan repayment schedule by removing Loan term variations: It updates the loan repayment schedule by removing Loan term variations Showing request/response for 'Updates loan repayment schedule by removing Loan term variations'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 400. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdScheduleResponse]

===== Samples

=== LoanTransactions

==== POST /loans/{loanId}/transactions/{transactionId}

Operation Id

adjustLoanTransaction

Adjust a Transaction

===== Description

Note: there is no need to specify command={transactionType} parameter. Mandatory Fields: transactionDate, transactionAmount

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

transactionId

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdTransactionsTransactionIdRequest

[PostLoansLoanIdTransactionsTransactionIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 401. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdTransactionsTransactionIdResponse]

===== Samples

==== POST /loans/{loanId}/transactions

Operation Id

executeLoanTransaction

Significant Loan Transactions

===== Description

This API covers the major loan transaction functionality Example Requests: loans/1/transactions?command=repayment | Make a Repayment | loans/1/transactions?command=merchantIssuedRefund | Merchant Issued Refund | loans/1/transactions?command=payoutRefund | Payout Refund | loans/1/transactions?command=goodwillCredit | Goodwil Credit | loans/1/transactions?command=chargeRefund | Charge Refund | loans/1/transactions?command=waiveinterest | Waive Interest | loans/1/transactions?command=writeoff | Write-off Loan | loans/1/transactions?command=close-rescheduled | Close Rescheduled Loan | loans/1/transactions?command=close | Close Loan | loans/1/transactions?command=undowriteoff | Undo Loan Write-off | loans/1/transactions?command=recoverypayment | Make Recovery Payment | loans/1/transactions?command=refundByCash | Make a Refund of an Active Loan by Cash | loans/1/transactions?command=foreclosure | Foreclosure of an Active Loan | loans/1/transactions?command=creditBalanceRefund | Credit Balance Refund |

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdTransactionsRequest

[PostLoansLoanIdTransactionsRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 402. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdTransactionsResponse]

===== Samples

==== GET /loans/{loanId}/transactions/{transactionId}

Operation Id

retrieveTransaction

Retrieve a Transaction Details

===== Description

Retrieves a Transaction Details Example Request: loans/5/transactions/3

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

transactionId

transactionId

X

null

====== Query Parameters

Name Description Required Default Pattern

fields

Optional Loan Transaction attribute list to be in the response

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 403. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdTransactionsTransactionIdResponse]

===== Samples

==== GET /loans/{loanId}/transactions/template

Operation Id

retrieveTransactionTemplate

Retrieve Loan Transaction Template

===== Description

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 Value Lists Example Requests: loans/1/transactions/template?command=repaymentloans/1/transactions/template?command=merchantIssuedRefundloans/1/transactions/template?command=payoutRefundloans/1/transactions/template?command=goodwillCredit loans/1/transactions/template?command=waiveinterest loans/1/transactions/template?command=writeoff loans/1/transactions/template?command=close-rescheduled loans/1/transactions/template?command=close loans/1/transactions/template?command=disburse loans/1/transactions/template?command=disburseToSavings loans/1/transactions/template?command=recoverypayment loans/1/transactions/template?command=prepayLoan loans/1/transactions/template?command=refundbycash loans/1/transactions/template?command=refundbytransfer loans/1/transactions/template?command=foreclosure loans/1/transactions/template?command=creditBalanceRefund (returned 'amount' field will have the overpaid value)

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

dateFormat

dateFormat

-

null

transactionDate

transactionDate

-

null

locale

locale

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 404. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdTransactionsTemplateResponse]

===== Samples

==== PUT /loans/{loanId}/transactions/{transactionId}

Operation Id

undoWaiveCharge

Undo a Waive Charge Transaction

===== Description

Undo a Waive Charge Transaction

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

transactionId

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutChargeTransactionChangesRequest

[PutChargeTransactionChangesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 405. http response codes
Code Message Datatype

200

OK

[PutChargeTransactionChangesResponse]

===== Samples

=== Loans

==== POST /loans

Operation Id

calculateLoanScheduleOrSubmitLoanApplication

Calculate loan repayment schedule | Submit a new Loan Application

===== Description

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, transactionProcessingStrategyCode, 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

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostLoansRequest

[PostLoansRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 406. http response codes
Code Message Datatype

200

OK

[PostLoansResponse]

===== Samples

==== DELETE /loans/{loanId}

Operation Id

deleteLoanApplication

Delete a Loan Application

===== Description

Note: Only loans in \"Submitted and awaiting approval\" status can be deleted.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 407. http response codes
Code Message Datatype

200

OK

[DeleteLoansLoanIdResponse]

===== Samples

==== GET /loans/{loanId}/delinquencytags

Operation Id

getDelinquencyTagHistory

Retrieve the Loan Delinquency Tag history using the Loan Id

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 408. http response codes
Code Message Datatype

200

OK

[GetDelinquencyTagHistoryResponse]

===== Samples

==== GET /loans/glimAccount/{glimId}

Operation Id

getGlimRepaymentTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glimId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 409. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/repayments/downloadtemplate

Operation Id

getLoanRepaymentTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 410. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /loans/downloadtemplate

Operation Id

getLoansTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 411. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /loans/glimAccount/{glimId}

Operation Id

glimStateTransitions

Approve GLIM Application | Undo GLIM Application Approval | Reject GLIM Application | Disburse Loan Disburse Loan To Savings Account | Undo Loan Disbursal

===== Description

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

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

glimId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdRequest

[PostLoansLoanIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 412. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdResponse]

===== Samples

==== PUT /loans/{loanId}

Operation Id

modifyLoanApplication

Modify a loan application

===== Description

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.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutLoansLoanIdRequest

[PutLoansLoanIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 413. http response codes
Code Message Datatype

200

OK

[PutLoansLoanIdResponse]

===== Samples

==== POST /loans/repayments/uploadtemplate

Operation Id

postLoanRepaymentTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 414. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /loans/uploadtemplate

Operation Id

postLoanTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 415. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans

Operation Id

retrieveAll27

List Loans

===== Description

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

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

accountNo

accountNo

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 416. http response codes
Code Message Datatype

200

OK

[GetLoansResponse]

===== Samples

==== GET /loans/{loanId}/template

Operation Id

retrieveApprovalTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Query Parameters

Name Description Required Default Pattern

templateType

templateType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 417. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loans/{loanId}

Operation Id

retrieveLoan

Retrieve a Loan

===== Description

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

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

associations

Loan object relations to be included in the response

-

all

exclude

Optional Loan object relation list to be filtered in the response

-

null

fields

Optional Loan attribute list to be in the response

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 418. http response codes
Code Message Datatype

200

OK

[GetLoansLoanIdResponse]

===== Samples

==== POST /loans/{loanId}

Operation Id

stateTransitions

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

===== Description

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

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostLoansLoanIdRequest

[PostLoansLoanIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 419. http response codes
Code Message Datatype

200

OK

[PostLoansLoanIdResponse]

===== Samples

==== GET /loans/template

Operation Id

template10

Retrieve Loan Details Template

===== Description

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

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

groupId

groupId

-

null

productId

productId

-

null

templateType

templateType

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

activeOnly

activeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 420. http response codes
Code Message Datatype

200

OK

[GetLoansTemplateResponse]

===== Samples

=== MakerCheckerOr4EyeFunctionality

==== POST /makercheckers/{auditId}

Operation Id

approveMakerCheckerEntry

Approve Maker Checker Entry | Reject Maker Checker Entry

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

auditId

auditId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 421. http response codes
Code Message Datatype

200

OK

[PostMakerCheckersResponse]

===== Samples

==== DELETE /makercheckers/{auditId}

Operation Id

deleteMakerCheckerEntry

Delete Maker Checker Entry

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

auditId

auditId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 422. http response codes
Code Message Datatype

200

OK

[PostMakerCheckersResponse]

===== Samples

==== GET /makercheckers/searchtemplate

Operation Id

retrieveAuditSearchTemplate1

Maker Checker Search Template

===== Description

This is a convenience resource. It can be useful when building a Checker Inbox UI. \"appUsers\" are data scoped to the office/branch the requestor is associated with. \"actionNames\" and \"entityNames\" returned are those that the requestor has Checker approval permissions for. Example Requests: makercheckers/searchtemplate makercheckers/searchtemplate?fields=entityNames

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 423. http response codes
Code Message Datatype

200

OK

[GetMakerCheckersSearchTemplateResponse]

===== Samples

==== GET /makercheckers

Operation Id

retrieveCommands

List Maker Checker Entries

===== Description

Get a list of entries that can be checked by the requestor that match the criteria supplied. Example Requests: makercheckers makercheckers?fields=madeOnDate,maker,processingResult makercheckers?makerDateTimeFrom=2013-03-25 08:00:00&makerDateTimeTo=2013-04-04 18:00:00 makercheckers?officeId=1 makercheckers?officeId=1&includeJson=true

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

actionName

actionName

-

null

entityName

entityName

-

null

resourceId

resourceId

-

null

makerId

makerId

-

null

makerDateTimeFrom

makerDateTimeFrom

-

null

makerDateTimeTo

makerDateTimeTo

-

null

officeId

officeId

-

null

groupId

groupId

-

null

clientId

clientId

-

null

loanid

loanid

-

null

savingsAccountId

savingsAccountId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 424. http response codes
Code Message Datatype

200

OK

List[[GetMakerCheckerResponse]]

===== Samples

=== MappingFinancialActivitiesToAccounts

==== POST /financialactivityaccounts

Operation Id

createGLAccount

Create a new Financial Activity to Accounts Mapping

===== Description

Mandatory Fields financialActivityId, glAccountId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostFinancialActivityAccountsRequest

[PostFinancialActivityAccountsRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 425. http response codes
Code Message Datatype

200

OK

[PostFinancialActivityAccountsResponse]

===== Samples

==== DELETE /financialactivityaccounts/{mappingId}

Operation Id

deleteGLAccount

Delete a Financial Activity to Account Mapping

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mappingId

mappingId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 426. http response codes
Code Message Datatype

200

OK

[DeleteFinancialActivityAccountsResponse]

===== Samples

==== GET /financialactivityaccounts/{mappingId}

Operation Id

retreive

Retrieve a Financial Activity to Account Mapping

===== Description

Example Requests: financialactivityaccounts/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mappingId

mappingId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 427. http response codes
Code Message Datatype

200

OK

[GetFinancialActivityAccountsResponse]

===== Samples

==== GET /financialactivityaccounts

Operation Id

retrieveAll

List Financial Activities to Accounts Mappings

===== Description

Example Requests: financialactivityaccounts

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 428. http response codes
Code Message Datatype

200

OK

List[[GetFinancialActivityAccountsResponse]]

===== Samples

==== GET /financialactivityaccounts/template

Operation Id

retrieveTemplate

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 429. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /financialactivityaccounts/{mappingId}

Operation Id

updateGLAccount

Update a Financial Activity to Account Mapping

===== Description

the API updates the Ledger account linked to a Financial Activity

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

mappingId

mappingId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostFinancialActivityAccountsRequest

[PostFinancialActivityAccountsRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 430. http response codes
Code Message Datatype

200

OK

[PutFinancialActivityAccountsResponse]

===== Samples

=== Meetings

==== POST /{entityType}/{entityId}/meetings

Operation Id

createMeeting

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 431. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /{entityType}/{entityId}/meetings/{meetingId}

Operation Id

deleteMeeting

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

meetingId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 432. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /{entityType}/{entityId}/meetings/{meetingId}

Operation Id

performMeetingCommands

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

meetingId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 433. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/meetings/{meetingId}

Operation Id

retrieveMeeting

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

meetingId

X

null

entityType

X

null

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 434. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/meetings

Operation Id

retrieveMeetings

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

====== Query Parameters

Name Description Required Default Pattern

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 435. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /{entityType}/{entityId}/meetings/template

Operation Id

template11

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

====== Query Parameters

Name Description Required Default Pattern

calendarId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 436. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /{entityType}/{entityId}/meetings/{meetingId}

Operation Id

updateMeeting

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityType

X

null

entityId

X

null

meetingId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 437. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== MixMapping

==== GET /mixmapping

Operation Id

retrieveTaxonomyMapping

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 438. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /mixmapping

Operation Id

updateTaxonomyMapping

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 439. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== MixReport

==== GET /mixreport

Operation Id

retrieveXBRLReport

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

startDate

-

null

endDate

-

null

currency

-

null

===== Return Type

===== Content Type

  • application/xml

===== Responses

Table 440. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== MixTaxonomy

==== GET /mixtaxonomy

Operation Id

retrieveAll14

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 441. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Notes

==== POST /{resourceType}/{resourceId}/notes

Operation Id

addNewNote

Add a Resource Note

===== Description

Adds a new note to a supported resource. Example Requests: clients/1/notes groups/1/notes

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceType

resourceType

X

null

resourceId

resourceId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostResourceTypeResourceIdNotesRequest

[PostResourceTypeResourceIdNotesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 442. http response codes
Code Message Datatype

200

OK

[PostResourceTypeResourceIdNotesResponse]

===== Samples

==== DELETE /{resourceType}/{resourceId}/notes/{noteId}

Operation Id

deleteNote

Delete a Resource Note

===== Description

Deletes a Resource Note

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceType

resourceType

X

null

resourceId

resourceId

X

null

noteId

noteId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 443. http response codes
Code Message Datatype

200

OK

[DeleteResourceTypeResourceIdNotesNoteIdResponse]

===== Samples

==== GET /{resourceType}/{resourceId}/notes/{noteId}

Operation Id

retrieveNote

Retrieve a Resource Note

===== Description

Retrieves a Resource Note Example Requests: clients/1/notes/76 groups/1/notes/20 clients/1/notes/76?fields=note,createdOn,createdByUsername groups/1/notes/20?fields=note,createdOn,createdByUsername

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceType

resourceType

X

null

resourceId

resourceId

X

null

noteId

noteId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 444. http response codes
Code Message Datatype

200

OK

[GetResourceTypeResourceIdNotesNoteIdResponse]

===== Samples

==== GET /{resourceType}/{resourceId}/notes

Operation Id

retrieveNotesByResource

Retrieve a Resource’s description

===== Description

Retrieves a Resource’s Notes Note: Notes are returned in descending createOn order. Example Requests: clients/2/notes groups/2/notes?fields=note,createdOn,createdByUsername

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceType

resourceType

X

null

resourceId

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 445. http response codes
Code Message Datatype

200

OK

List[[GetResourceTypeResourceIdNotesResponse]]

===== Samples

==== PUT /{resourceType}/{resourceId}/notes/{noteId}

Operation Id

updateNote

Update a Resource Note

===== Description

Updates a Resource Note

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceType

resourceType

X

null

resourceId

resourceId

X

null

noteId

noteId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutResourceTypeResourceIdNotesNoteIdRequest

[PutResourceTypeResourceIdNotesNoteIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 446. http response codes
Code Message Datatype

200

OK

[PutResourceTypeResourceIdNotesNoteIdResponse]

===== Samples

=== Notification

==== GET /notifications

Operation Id

getAllNotifications

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

orderBy

orderBy

-

null

limit

limit

-

null

offset

offset

-

null

sortOrder

sortOrder

-

null

isRead

isRead

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 447. http response codes
Code Message Datatype

200

OK

[GetNotificationsResponse]

===== Samples

==== PUT /notifications

Operation Id

update5

===== Description

===== Parameters

===== Return Type

-

===== Content Type

  • application/json

===== Responses

Table 448. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

=== Offices

==== POST /offices

Operation Id

createOffice

Create an Office

===== Description

Mandatory Fields name, openingDate, parentId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostOfficesRequest

[PostOfficesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 449. http response codes
Code Message Datatype

200

OK

[PostOfficesResponse]

===== Samples

==== GET /offices/downloadtemplate

Operation Id

getOfficeTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 450. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /offices/uploadtemplate

Operation Id

postOfficeTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 451. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /offices/{officeId}

Operation Id

retreiveOffice

Retrieve an Office

===== Description

Example Requests: offices/1 offices/1?template=true offices/1?fields=id,name,parentName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

officeId

officeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 452. http response codes
Code Message Datatype

200

OK

[GetOfficesResponse]

===== Samples

==== GET /offices/template

Operation Id

retrieveOfficeTemplate1

Retrieve Office Details Template

===== Description

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 Request: offices/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 453. http response codes
Code Message Datatype

200

OK

[GetOfficesTemplateResponse]

===== Samples

==== GET /offices

Operation Id

retrieveOffices

List Offices

===== Description

Example Requests: offices offices?fields=id,name,openingDate

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

includeAllOffices

includeAllOffices

-

false

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 454. http response codes
Code Message Datatype

200

OK

List[[GetOfficesResponse]]

===== Samples

==== PUT /offices/{officeId}

Operation Id

updateOffice

Update Office

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

officeId

officeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutOfficesOfficeIdRequest

[PutOfficesOfficeIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 455. http response codes
Code Message Datatype

200

OK

[PutOfficesOfficeIdResponse]

===== Samples

=== PasswordPreferences

==== GET /passwordpreferences

Operation Id

retrieve1

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 456. http response codes
Code Message Datatype

200

OK

[GetPasswordPreferencesTemplateResponse]

===== Samples

==== GET /passwordpreferences/template

Operation Id

template21

List Application Password validation policies

===== Description

ARGUMENTS Example Requests: passwordpreferences

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 457. http response codes
Code Message Datatype

200

OK

List[[GetPasswordPreferencesTemplateResponse]]

===== Samples

==== PUT /passwordpreferences

Operation Id

update23

Update password preferences

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutPasswordPreferencesTemplateRequest

[PutPasswordPreferencesTemplateRequest]

X

===== Return Type

-

===== Responses

Table 458. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

=== PaymentType

==== POST /paymenttypes

Operation Id

createPaymentType

Create a Payment Type

===== Description

Creates a new Payment type Mandatory Fields: name Optional Fields: Description, isCashPayment,Position

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostPaymentTypesRequest

[PostPaymentTypesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 459. http response codes
Code Message Datatype

200

OK

[PostPaymentTypesResponse]

===== Samples

==== DELETE /paymenttypes/{paymentTypeId}

Operation Id

deleteCode1

Delete a Payment Type

===== Description

Deletes payment type

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

paymentTypeId

paymentTypeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 460. http response codes
Code Message Datatype

200

OK

[DeletePaymentTypesPaymentTypeIdResponse]

===== Samples

==== GET /paymenttypes

Operation Id

getAllPaymentTypes

Retrieve all Payment Types

===== Description

Retrieve list of payment types

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

onlyWithCode

onlyWithCode

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 461. http response codes
Code Message Datatype

200

OK

List[[GetPaymentTypesResponse]]

===== Samples

==== GET /paymenttypes/{paymentTypeId}

Operation Id

retrieveOnePaymentType

Retrieve a Payment Type

===== Description

Retrieves a payment type

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

paymentTypeId

paymentTypeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 462. http response codes
Code Message Datatype

200

OK

[GetPaymentTypesPaymentTypeIdResponse]

===== Samples

==== PUT /paymenttypes/{paymentTypeId}

Operation Id

updatePaymentType

Update a Payment Type

===== Description

Updates a Payment Type

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

paymentTypeId

paymentTypeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutPaymentTypesPaymentTypeIdRequest

[PutPaymentTypesPaymentTypeIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 463. http response codes
Code Message Datatype

200

OK

[PutPaymentTypesPaymentTypeIdResponse]

===== Samples

=== PeriodicAccrualAccounting

==== POST /runaccruals

Operation Id

executePeriodicAccrualAccounting

Executes Periodic Accrual Accounting

===== Description

Mandatory Fields tillDate

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostRunaccrualsRequest

[PostRunaccrualsRequest]

X

===== Return Type

-

===== Responses

Table 464. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

=== Permissions

==== GET /permissions

Operation Id

retrieveAllPermissions

List Application Permissions

===== Description

ARGUMENTS makerCheckerableoptional, Values are true, false. Default is false. If makerCheckerable=false or not supplied then a list of application permissions is returned. The \"selected\" attribute is always true in this case. If makerCheckerable=true then the \"selected\" attribute shows whether the permission is enabled for Maker Check functionality. Note: Each Apache Fineract transaction is associated with a permission. Example Requests: permissions permissions?makerCheckerable=true permissions?fields=grouping,code

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 465. http response codes
Code Message Datatype

200

OK

List[[GetPermissionsResponse]]

===== Samples

==== PUT /permissions

Operation Id

updatePermissionsDetails

Enable/Disable Permissions for Maker Checker

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutPermissionsRequest

[PutPermissionsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 466. http response codes
Code Message Datatype

200

OK

[CommandProcessingResult]

===== Samples

=== Pocket

==== POST /self/pockets

Operation Id

handleCommands7

Link/delink accounts to/from pocket

===== Description

Pockets behave as favourites. An user can link his/her Loan, Savings and Share accounts to pocket for faster access. In a similar way linked accounts can be delinked from the pocket. Example Requests: self/pockets?command=linkAccounts self/pockets?command=delinkAccounts

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 467. http response codes
Code Message Datatype

200

OK

[PostLinkDelinkAccountsToFromPocketResponse]

===== Samples

==== GET /self/pockets

Operation Id

retrieveAll37

Retrieve accounts linked to pocket

===== Description

All linked loan Example Requests: self/pockets

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 468. http response codes
Code Message Datatype

200

OK

[GetAccountsLinkedToPocketResponse]

===== Samples

=== PovertyLine

==== GET /povertyLine/{ppiName}

Operation Id

retrieveAll12

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

ppiName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 469. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /povertyLine/{ppiName}/{likelihoodId}

Operation Id

retrieveAll13

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

ppiName

X

null

likelihoodId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 470. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== ProductMix

==== POST /loanproducts/{productId}/productmix

Operation Id

createProductMix

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 471. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /loanproducts/{productId}/productmix

Operation Id

deleteProductMix

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 472. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /loanproducts/{productId}/productmix

Operation Id

retrieveTemplate11

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 473. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /loanproducts/{productId}/productmix

Operation Id

updateProductMix

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 474. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== Products

==== POST /products/{type}

Operation Id

createProduct

Create a Share Product

===== Description

Creates a Share Product Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, locale, totalShares, unitPrice, nominalShares,allowDividendCalculationForInactiveClients,accountingRule Mandatory Fields for Cash based accounting (accountingRule = 2): shareReferenceId, shareSuspenseId, shareEquityId, incomeFromFeeAccountId Optional Fields: sharesIssued, minimumShares, maximumShares, minimumActivePeriodForDividends, minimumactiveperiodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType, marketPricePeriods, chargesSelected

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Body Parameter

Name Description Required Default Pattern

PostProductsTypeRequest

[PostProductsTypeRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 475. http response codes
Code Message Datatype

200

OK

[PostProductsTypeResponse]

===== Samples

==== POST /products/{type}/{productId}

Operation Id

handleCommands3

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

productId

productId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 476. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /products/{type}

Operation Id

retrieveAllProducts

List Share Products

===== Description

Lists Share Products Mandatory Fields: limit, offset Example Requests: shareproducts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 477. http response codes
Code Message Datatype

200

OK

[GetProductsTypeResponse]

===== Samples

==== GET /products/{type}/{productId}

Operation Id

retrieveProduct

Retrieve a Share Product

===== Description

Retrieves a Share Product Example Requests: products/share/1 products/share/1?template=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

type

type

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 478. http response codes
Code Message Datatype

200

OK

[GetProductsTypeProductIdResponse]

===== Samples

==== GET /products/{type}/template

Operation Id

retrieveTemplate12

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 479. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /products/{type}/{productId}

Operation Id

updateProduct

Update a Share Product

===== Description

Updates a Share Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

productId

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutProductsTypeProductIdRequest

[PutProductsTypeProductIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 480. http response codes
Code Message Datatype

200

OK

[PutProductsTypeProductIdResponse]

===== Samples

=== ProvisioningCategory

==== POST /provisioningcategory

Operation Id

createProvisioningCategory

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 481. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /provisioningcategory/{categoryId}

Operation Id

deleteProvisioningCategory

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

categoryId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 482. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /provisioningcategory

Operation Id

retrieveAll15

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 483. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /provisioningcategory/{categoryId}

Operation Id

updateProvisioningCategory

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

categoryId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 484. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== ProvisioningCriteria

==== POST /provisioningcriteria

Operation Id

createProvisioningCriteria

Create a new Provisioning Criteria

===== Description

Creates a new Provisioning Criteria Mandatory Fields: criteriaName provisioningcriteria Optional Fields: loanProducts

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostProvisioningCriteriaRequest

[PostProvisioningCriteriaRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 485. http response codes
Code Message Datatype

200

OK

[PostProvisioningCriteriaResponse]

===== Samples

==== DELETE /provisioningcriteria/{criteriaId}

Operation Id

deleteProvisioningCriteria

Deletes Provisioning Criteria

===== Description

Deletes Provisioning Criteria

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

criteriaId

criteriaId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 486. http response codes
Code Message Datatype

200

OK

[DeleteProvisioningCriteriaResponse]

===== Samples

==== GET /provisioningcriteria

Operation Id

retrieveAllProvisioningCriterias

Retrieves all created Provisioning Criterias

===== Description

Retrieves all created Provisioning Criterias

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 487. http response codes
Code Message Datatype

200

OK

List[[GetProvisioningCriteriaResponse]]

===== Samples

==== GET /provisioningcriteria/{criteriaId}

Operation Id

retrieveProvisioningCriteria

Retrieves a Provisioning Criteria

===== Description

Retrieves a Provisioning Criteria

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

criteriaId

criteriaId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 488. http response codes
Code Message Datatype

200

OK

[GetProvisioningCriteriaCriteriaIdResponse]

===== Samples

==== GET /provisioningcriteria/template

Operation Id

retrieveTemplate3

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 489. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /provisioningcriteria/{criteriaId}

Operation Id

updateProvisioningCriteria

Updates a new Provisioning Criteria

===== Description

Updates a new Provisioning Criteria Optional Fields criteriaName, loanProducts, provisioningcriteria

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

criteriaId

criteriaId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutProvisioningCriteriaRequest

[PutProvisioningCriteriaRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 490. http response codes
Code Message Datatype

200

OK

[PutProvisioningCriteriaResponse]

===== Samples

=== ProvisioningEntries

==== POST /provisioningentries

Operation Id

createProvisioningEntries

Create new Provisioning Entries

===== Description

Creates a new Provisioning Entries Mandatory Fields date dateFormat locale Optional Fields createjournalentries

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostProvisioningEntriesRequest

[PostProvisioningEntriesRequest]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 491. http response codes
Code Message Datatype

200

OK

[PostProvisioningEntriesResponse]

===== Samples

==== POST /provisioningentries/{entryId}

Operation Id

modifyProvisioningEntry

Recreates Provisioning Entry

===== Description

Recreates Provisioning Entry | createjournalentry.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entryId

entryId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutProvisioningEntriesRequest

[PutProvisioningEntriesRequest]

-

====== Query Parameters

Name Description Required Default Pattern

command

command=createjournalentry command=recreateprovisioningentry

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 492. http response codes
Code Message Datatype

200

OK

[PutProvisioningEntriesResponse]

===== Samples

==== GET /provisioningentries

Operation Id

retrieveAllProvisioningEntries

List all Provisioning Entries

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 493. http response codes
Code Message Datatype

200

OK

List[[ProvisioningEntryData]]

===== Samples

==== GET /provisioningentries/entries

Operation Id

retrieveProviioningEntries

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

entryId

-

null

offset

-

null

limit

-

null

officeId

-

null

productId

-

null

categoryId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 494. http response codes
Code Message Datatype

200

OK

[LoanProductProvisioningEntryData]

===== Samples

==== GET /provisioningentries/{entryId}

Operation Id

retrieveProvisioningEntry

Retrieves a Provisioning Entry

===== Description

Returns the details of a generated Provisioning Entry.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entryId

entryId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 495. http response codes
Code Message Datatype

200

OK

[ProvisioningEntryData]

===== Samples

=== Rate

==== POST /rates

Operation Id

createRate

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 496. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /rates

Operation Id

getAllRates

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 497. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /rates/{rateId}

Operation Id

retrieveRate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

rateId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 498. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /rates/{rateId}

Operation Id

updateRate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

rateId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 499. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== RecurringDepositAccount

==== GET /recurringdepositaccounts/{accountId}/template

Operation Id

accountClosureTemplate1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 500. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /recurringdepositaccounts/{accountId}

Operation Id

delete16

Delete a recurring deposit application

===== Description

At present we support hard delete of recurring deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 501. http response codes
Code Message Datatype

200

OK

[DeleteRecurringDepositAccountsResponse]

===== Samples

==== GET /recurringdepositaccounts/downloadtemplate

Operation Id

getRecurringDepositTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 502. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /recurringdepositaccounts/transactions/downloadtemplate

Operation Id

getRecurringDepositTransactionTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 503. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /recurringdepositaccounts/{accountId}

Operation Id

handleCommands5

Approve recurring deposit application | Undo approval recurring deposit application | Reject recurring deposit application | Withdraw recurring deposit application | Activate a recurring deposit account | Update the recommended deposit amount for a recurring deposit account | Close a recurring deposit account | Premature Close a recurring deposit account | Calculate Premature amount on Recurring deposit account | Calculate Interest on recurring Deposit Account | Post Interest on recurring Deposit Account

===== Description

Approve recurring deposit application: Approves recurring deposit application so long as its in 'Submitted and pending approval' state. Undo approval recurring deposit application: Will move 'approved' recurring deposit application back to 'Submitted and pending approval' state. Reject recurring deposit application Rejects recurring deposit application so long as its in 'Submitted and pending approval' state. Withdraw recurring deposit application: Used when an applicant withdraws from the recurring deposit application. It must be in 'Submitted and pending approval' state. Activate a recurring deposit account: Results in an approved recurring deposit application being converted into an 'active' recurring deposit account. Update the recommended deposit amount for a recurring deposit account: Updates the recommended deposit amount for a RD account as on the effective date. Close a recurring deposit account Results in a Matured recurring deposit account being converted into a 'closed' recurring deposit account. On account close allowed actions are.Premature Close a recurring deposit account: Results in an Active recurring deposit account being converted into a 'Premature Closed' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.) On account premature closure allowed actions are. Calculate Premature amount on Recurring deposit account: Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any. Calculate Interest on recurring Deposit Account: Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process. Post Interest on recurring Deposit Account: Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due. Showing request/response for 'Post Interest on recurring Deposit Account'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 504. http response codes
Code Message Datatype

200

OK

[PostRecurringDepositAccountsAccountIdResponse]

===== Samples

==== POST /recurringdepositaccounts/uploadtemplate

Operation Id

postRecurringDepositTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 505. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /recurringdepositaccounts/transactions/uploadtemplate

Operation Id

postRecurringDepositTransactionsTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 506. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /recurringdepositaccounts

Operation Id

retrieveAll31

List Recurring deposit applications/accounts

===== Description

Lists Recurring deposit applications/accounts Example Requests: recurringdepositaccounts recurringdepositaccounts?fields=name

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

paged

paged

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 507. http response codes
Code Message Datatype

200

OK

List[[GetRecurringDepositAccountsResponse]]

===== Samples

==== GET /recurringdepositaccounts/{accountId}

Operation Id

retrieveOne21

Retrieve a recurring deposit application/account

===== Description

Retrieves a recurring deposit application/account Example Requests : recurringdepositaccounts/1 recurringdepositaccounts/1?associations=all

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 508. http response codes
Code Message Datatype

200

OK

[GetRecurringDepositAccountsAccountIdResponse]

===== Samples

==== POST /recurringdepositaccounts

Operation Id

submitApplication1

Submit new recurring deposit application

===== Description

Submits new recurring deposit application Mandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account ) Inherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostRecurringDepositAccountsRequest

[PostRecurringDepositAccountsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 509. http response codes
Code Message Datatype

200

OK

[PostRecurringDepositAccountsResponse]

===== Samples

==== GET /recurringdepositaccounts/template

Operation Id

template13

Retrieve recurring Deposit Account Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of: Field Defaults Allowed Value Lists Example Requests: recurringdepositaccounts/template?clientId=1 recurringdepositaccounts/template?clientId=1&productId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

groupId

groupId

-

null

productId

productId

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 510. http response codes
Code Message Datatype

200

OK

[GetRecurringDepositAccountsTemplateResponse]

===== Samples

==== PUT /recurringdepositaccounts/{accountId}

Operation Id

update17

Modify a recurring deposit application

===== Description

Recurring deposit 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. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutRecurringDepositAccountsAccountIdRequest

[PutRecurringDepositAccountsAccountIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 511. http response codes
Code Message Datatype

200

OK

[PutRecurringDepositAccountsAccountIdResponse]

===== Samples

=== RecurringDepositAccountTransactions

==== POST /recurringdepositaccounts/{recurringDepositAccountId}/transactions/{transactionId}

Operation Id

handleTransactionCommands

Adjust Transaction | Undo transaction

===== Description

Adjust Transaction: This command modifies the given transaction. Undo transaction: This command reverses the given transaction. Showing request/response for 'Adjust Transaction'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

recurringDepositAccountId

recurringDepositAccountId

X

null

transactionId

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest

[PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 512. http response codes
Code Message Datatype

200

OK

[PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse]

===== Samples

==== GET /recurringdepositaccounts/{recurringDepositAccountId}/transactions/{transactionId}

Operation Id

retrieveOne20

Retrieve Recurring Deposit Account Transaction

===== Description

Retrieves Recurring Deposit Account Transaction Example Requests: recurringdepositaccounts/1/transactions/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

recurringDepositAccountId

recurringDepositAccountId

X

null

transactionId

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 513. http response codes
Code Message Datatype

200

OK

[GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse]

===== Samples

==== GET /recurringdepositaccounts/{recurringDepositAccountId}/transactions/template

Operation Id

retrieveTemplate15

Retrieve Recurring Deposit Account Transaction Template

===== Description

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 Value Lists Example Requests: recurringdepositaccounts/1/transactions/template?command=deposit recurringdepositaccounts/1/transactions/template?command=withdrawal

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

recurringDepositAccountId

recurringDepositAccountId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 514. http response codes
Code Message Datatype

200

OK

[GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse]

===== Samples

==== POST /recurringdepositaccounts/{recurringDepositAccountId}/transactions

Operation Id

transaction1

Deposit Transaction | Withdrawal Transaction

===== Description

Deposit Transaction: Used for a deposit transaction Withdrawal Transaction: Used for a Withdrawal Transaction Showing request/response for Deposit Transaction

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

recurringDepositAccountId

recurringDepositAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest

[PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 515. http response codes
Code Message Datatype

200

OK

[PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsResponse]

===== Samples

=== RecurringDepositProduct

==== POST /recurringdepositproducts

Operation Id

create12

Create a Recurring Deposit Product

===== Description

Creates a Recurring Deposit Product Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minDepositTerm, minDepositTermTypeId, recurringDepositFrequency, recurringDepositFrequencyTypeId, accountingRule, depositAmount Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId Optional Fields: lockinPeriodFrequency, lockinPeriodFrequencyType, maxDepositTerm, maxDepositTermTypeId, inMultiplesOfDepositTerm, inMultiplesOfDepositTermTypeId, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, charts, minDepositAmount, maxDepositAmount, withHoldTax, taxGroupId

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostRecurringDepositProductsRequest

[PostRecurringDepositProductsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 516. http response codes
Code Message Datatype

200

OK

[PostRecurringDepositProductsResponse]

===== Samples

==== DELETE /recurringdepositproducts/{productId}

Operation Id

delete17

Delete a Recurring Deposit Product

===== Description

Deletes a Recurring Deposit Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 517. http response codes
Code Message Datatype

200

OK

[DeleteRecurringDepositProductsProductIdResponse]

===== Samples

==== GET /recurringdepositproducts

Operation Id

retrieveAll32

List Recuring Deposit Products

===== Description

Lists Recuring Deposit Products Example Requests: recurringdepositproducts recurringdepositproducts?fields=name

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 518. http response codes
Code Message Datatype

200

OK

List[[GetRecurringDepositProductsResponse]]

===== Samples

==== GET /recurringdepositproducts/{productId}

Operation Id

retrieveOne22

Retrieve a Recurring Deposit Product

===== Description

Retrieves a Recurring Deposit Product Example Requests: recurringdepositproducts/1 recurringdepositproducts/1?template=true recurringdepositproducts/1?fields=name,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 519. http response codes
Code Message Datatype

200

OK

[GetRecurringDepositProductsProductIdResponse]

===== Samples

==== GET /recurringdepositproducts/template

Operation Id

retrieveTemplate16

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 520. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /recurringdepositproducts/{productId}

Operation Id

update18

Update a Recurring Deposit Product

===== Description

Updates a Recurring Deposit Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutRecurringDepositProductsRequest

[PutRecurringDepositProductsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 521. http response codes
Code Message Datatype

200

OK

[PutRecurringDepositProductsResponse]

===== Samples

=== RepaymentWithPostDatedChecks

==== DELETE /loans/{loanId}/postdatedchecks/{postDatedCheckId}

Operation Id

deletePostDatedCheck

Delete Post Dated Check

===== Description

Delete Post Dated Check

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

postDatedCheckId

postDatedCheckId

X

null

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 522. http response codes
Code Message Datatype

200

OK

List[[DeletePostDatedCheck]]

===== Samples

==== GET /loans/{loanId}/postdatedchecks/{installmentId}

Operation Id

getPostDatedCheck

Get Post Dated Check

===== Description

Get Post Dated Check

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

installmentId

installmentId

X

null

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 523. http response codes
Code Message Datatype

200

OK

List[[GetPostDatedChecks]]

===== Samples

==== GET /loans/{loanId}/postdatedchecks

Operation Id

getPostDatedChecks

Get All Post Dated Checks

===== Description

Get All Post dated Checks

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 524. http response codes
Code Message Datatype

200

OK

List[[GetPostDatedChecks]]

===== Samples

==== PUT /loans/{loanId}/postdatedchecks/{postDatedCheckId}

Operation Id

updatePostDatedChecks

Update Post Dated Check, Bounced Check

===== Description

Update Post Dated Check, Bounced Check

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

postDatedCheckId

postDatedCheckId

X

null

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

UpdatePostDatedCheckRequest

[UpdatePostDatedCheckRequest]

X

====== Query Parameters

Name Description Required Default Pattern

editType

editType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 525. http response codes
Code Message Datatype

200

OK

List[[UpdatePostDatedCheckResponse]]

===== Samples

=== ReportMailingJobs

==== POST /reportmailingjobs

Operation Id

createReportMailingJob

Create a Report Mailing Job

===== Description

Mandatory Fields: name, startDateTime, stretchyReportId, emailRecipients, emailSubject, emailMessage, emailAttachmentFileFormatId, recurrence, isActive Optional Fields: description, stretchyReportParamMap

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostReportMailingJobsRequest

[PostReportMailingJobsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 526. http response codes
Code Message Datatype

200

OK

[PostReportMailingJobsResponse]

===== Samples

==== DELETE /reportmailingjobs/{entityId}

Operation Id

deleteReportMailingJob

Delete a Report Mailing Job

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityId

entityId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[object]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 527. http response codes
Code Message Datatype

200

OK

[DeleteReportMailingJobsResponse]

===== Samples

==== GET /reportmailingjobs

Operation Id

retrieveAllReportMailingJobs

List Report Mailing Jobs

===== Description

Example Requests: reportmailingjobs

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 528. http response codes
Code Message Datatype

200

OK

List[[GetReportMailingJobsResponse]]

===== Samples

==== GET /reportmailingjobs/{entityId}

Operation Id

retrieveReportMailingJob

Retrieve a Report Mailing Job

===== Description

Example Requests: reportmailingjobs/1 reportmailingjobs/1?template=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityId

entityId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 529. http response codes
Code Message Datatype

200

OK

[GetReportMailingJobsResponse]

===== Samples

==== GET /reportmailingjobs/template

Operation Id

retrieveReportMailingJobTemplate

Retrieve Report Mailing Job Details Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for report mailing job applications. The template data returned consists of any or all of: Field Defaults Allowed description Lists Example Request: reportmailingjobs/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 530. http response codes
Code Message Datatype

200

OK

[GetReportMailingJobsTemplate]

===== Samples

==== PUT /reportmailingjobs/{entityId}

Operation Id

updateReportMailingJob

Update a Report Mailing Job

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

entityId

entityId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutReportMailingJobsRequest

[PutReportMailingJobsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 531. http response codes
Code Message Datatype

200

OK

[PutReportMailingJobsResponse]

===== Samples

=== Reports

==== POST /reports

Operation Id

createReport

Create a Report

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostRepostRequest

[PostRepostRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 532. http response codes
Code Message Datatype

200

OK

[PostReportsResponse]

===== Samples

==== DELETE /reports/{id}

Operation Id

deleteReport

Delete a Report

===== Description

Only non-core reports can be deleted.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 533. http response codes
Code Message Datatype

200

OK

[DeleteReportsResponse]

===== Samples

==== GET /reports/template

Operation Id

retrieveOfficeTemplate

Retrieve Report Template

===== Description

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 Request : reports/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 534. http response codes
Code Message Datatype

200

OK

[GetReportsTemplateResponse]

===== Samples

==== GET /reports/{id}

Operation Id

retrieveReport

Retrieve a Report

===== Description

Example Requests: reports/1 reports/1?template=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 535. http response codes
Code Message Datatype

200

OK

[GetReportsResponse]

===== Samples

==== GET /reports

Operation Id

retrieveReportList

List Reports

===== Description

Lists all reports and their parameters. Example Request: reports

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 536. http response codes
Code Message Datatype

200

OK

List[[GetReportsResponse]]

===== Samples

==== PUT /reports/{id}

Operation Id

updateReport

Update a Report

===== Description

Only the useReport description can be updated for core reports.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

id

X

null

====== Body Parameter

Name Description Required Default Pattern

PutReportRequest

[PutReportRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 537. http response codes
Code Message Datatype

200

OK

[PutReportResponse]

===== Samples

=== RescheduleLoans

==== POST /rescheduleloans

Operation Id

createLoanRescheduleRequest

Create loan reschedule request

===== Description

Create a loan reschedule request.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

{&quot;submittedOnDate&quot;: &quot;05/02/2022&quot;,&quot;rescheduleFromDate&quot;: &quot;05/02/2022&quot;,&quot;rescheduleReasonId&quot;: 67,&quot;adjustedDueDate&quot;: &quot;07/01/2022&quot;,&quot;loanId&quot;: &quot;18&quot;,&quot;dateFormat&quot;: &quot;MM/dd/yyyy&quot;,&quot;locale&quot;: &quot;en&quot;} [string]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 538. http response codes
Code Message Datatype

200

OK

[PostCreateRescheduleLoansResponse]

===== Samples

==== GET /rescheduleloans/{scheduleId}

Operation Id

readLoanRescheduleRequest

Retrieve loan reschedule request by schedule id

===== Description

Retrieve loan reschedule request by schedule id

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

scheduleId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 539. http response codes
Code Message Datatype

200

OK

[GetLoanRescheduleRequestResponse]

===== Samples

==== GET /rescheduleloans

Operation Id

retrieveAllRescheduleRequest

Retrieve all reschedule requests

===== Description

Retrieve all reschedule requests.

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 540. http response codes
Code Message Datatype

200

OK

List[[GetLoanRescheduleRequestResponse]]

===== Samples

==== GET /rescheduleloans/template

Operation Id

retrieveTemplate9

Retrieve all reschedule loan reasons

===== Description

Retrieve all reschedule loan reasons as a template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 541. http response codes
Code Message Datatype

200

OK

[GetRescheduleReasonsTemplateResponse]

===== Samples

==== POST /rescheduleloans/{scheduleId}

Operation Id

updateLoanRescheduleRequest

Update loan reschedule request

===== Description

Update a loan reschedule request by either approving/rejecting it.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

scheduleId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

{&quot;approvedOnDate&quot;: &quot;05/02/2022&quot;,&quot;dateFormat&quot;: &quot;MM/dd/yyyy&quot;,&quot;locale&quot;: &quot;en&quot;} [string]

X

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 542. http response codes
Code Message Datatype

200

OK

[PostUpdateRescheduleLoansResponse]

===== Samples

=== Roles

==== POST /roles/{roleId}

Operation Id

actionsOnRoles

Enable Role | Disable Role

===== Description

Description : Enable role in case role is disabled. | Disable the role in case role is not associated with any users. Example Request: DomainName/api/v1/roles/{roleId}?command=enable DomainName/api/v1/roles/{roleId}?command=disable

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 543. http response codes
Code Message Datatype

200

OK

[PostRolesRoleIdResponse]

===== Samples

==== POST /roles

Operation Id

createRole

Create a New Role

===== Description

Mandatory Fields name, description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostRolesRequest

[PostRolesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 544. http response codes
Code Message Datatype

200

OK

[PostRolesResponse]

===== Samples

==== DELETE /roles/{roleId}

Operation Id

deleteRole

Delete a Role

===== Description

Description : Delete the role in case role is not associated with any users.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 545. http response codes
Code Message Datatype

200

OK

[DeleteRolesRoleIdResponse]

===== Samples

==== GET /roles

Operation Id

retrieveAllRoles

List Roles

===== Description

Example Requests: roles roles?fields=name

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 546. http response codes
Code Message Datatype

200

OK

List[[GetRolesResponse]]

===== Samples

==== GET /roles/{roleId}

Operation Id

retrieveRole

Retrieve a Role

===== Description

Example Requests: roles/1 roles/1?fields=name

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 547. http response codes
Code Message Datatype

200

OK

[GetRolesRoleIdResponse]

===== Samples

==== GET /roles/{roleId}/permissions

Operation Id

retrieveRolePermissions

Retrieve a Role’s Permissions

===== Description

Example Requests: roles/1/permissions

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 548. http response codes
Code Message Datatype

200

OK

[GetRolesRoleIdPermissionsResponse]

===== Samples

==== PUT /roles/{roleId}

Operation Id

updateRole

Update a Role

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutRolesRoleIdRequest

[PutRolesRoleIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 549. http response codes
Code Message Datatype

200

OK

[PutRolesRoleIdResponse]

===== Samples

==== PUT /roles/{roleId}/permissions

Operation Id

updateRolePermissions

Update a Role’s Permissions

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

roleId

roleId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutRolesRoleIdPermissionsRequest

[PutRolesRoleIdPermissionsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 550. http response codes
Code Message Datatype

200

OK

[PutRolesRoleIdPermissionsResponse]

===== Samples

=== RunReports

==== GET /runreports/{reportName}

Operation Id

runReport

Running a Report

===== Description

This resource allows you to run and receive output from pre-defined Apache Fineract reports. Reports can also be used to provide data for searching and workflow functionality. The default output is a JSON formatted \"Generic Resultset\". The Generic Resultset contains Column Heading as well as Data information. However, you can export to CSV format by simply adding \"&exportCSV=true\" to the end of your URL. If Pentaho reports have been pre-defined, they can also be run through this resource. Pentaho reports can return HTML, PDF or CSV formats. The Apache Fineract reference application uses a JQuery plugin called stretchy reporting which, itself, uses this reports resource to provide a pretty flexible reporting User Interface (UI). Example Requests: runreports/Client%20Listing?R_officeId=1 runreports/Client%20Listing?R_officeId=1&exportCSV=true runreports/OfficeIdSelectOne?R_officeId=1&parameterType=true runreports/OfficeIdSelectOne?R_officeId=1&parameterType=true&exportCSV=true runreports/Expected%20Payments%20By%20Date%20-%20Formatted?R_endDate=2013-04-30&R_loanOfficerId=-1&R_officeId=1&R_startDate=2013-04-16&output-type=HTML&R_officeId=1 runreports/Expected%20Payments%20By%20Date%20-%20Formatted?R_endDate=2013-04-30&R_loanOfficerId=-1&R_officeId=1&R_startDate=2013-04-16&output-type=XLS&R_officeId=1 runreports/Expected%20Payments%20By%20Date%20-%20Formatted?R_endDate=2013-04-30&R_loanOfficerId=-1&R_officeId=1&R_startDate=2013-04-16&output-type=CSV&R_officeId=1 runreports/Expected%20Payments%20By%20Date%20-%20Formatted?R_endDate=2013-04-30&R_loanOfficerId=-1&R_officeId=1&R_startDate=2013-04-16&output-type=PDF&R_officeId=1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

reportName

reportName

X

null

====== Query Parameters

Name Description Required Default Pattern

isSelfServiceUserReport

isSelfServiceUserReport

-

false

===== Return Type

===== Content Type

  • application/json

  • application/pdf

  • application/vnd.ms-excel

  • text/csv

  • text/html

===== Responses

Table 551. http response codes
Code Message Datatype

200

OK

[RunReportsResponse]

===== Samples

=== SCHEDULERJOB

==== POST /jobs/{jobId}

Operation Id

executeJob

Run a Job

===== Description

Manually Execute Specific Job.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobId

jobId

X

null

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

-

===== Responses

Table 552. http response codes
Code Message Datatype

200

POST: jobs/1?command=executeJob

<<>>

===== Samples

==== GET /jobs

Operation Id

retrieveAll8

Retrieve Scheduler Jobs

===== Description

Returns the list of jobs. Example Requests: jobs

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 553. http response codes
Code Message Datatype

200

OK

List[[GetJobsResponse]]

===== Samples

==== GET /jobs/{jobId}/runhistory

Operation Id

retrieveHistory

Retrieve Job Run History

===== Description

Example Requests: jobs/5/runhistory?offset=0&limit=200

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobId

jobId

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 554. http response codes
Code Message Datatype

200

OK

[GetJobsJobIDJobRunHistoryResponse]

===== Samples

==== GET /jobs/{jobId}

Operation Id

retrieveOne5

Retrieve a Job

===== Description

Returns the details of a Job. Example Requests: jobs/5

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobId

jobId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 555. http response codes
Code Message Datatype

200

OK

[GetJobsResponse]

===== Samples

==== PUT /jobs/{jobId}

Operation Id

updateJobDetail

Update a Job

===== Description

Updates the details of a job.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

jobId

jobId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutJobsJobIDRequest

[PutJobsJobIDRequest]

X

===== Return Type

-

===== Responses

Table 556. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

=== SMS

==== POST /sms

Operation Id

create2

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 557. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /sms/{resourceId}

Operation Id

delete6

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 558. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /sms

Operation Id

retrieveAll10

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 559. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /sms/{campaignId}/messageByStatus

Operation Id

retrieveAllSmsByStatus

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

campaignId

X

null

====== Query Parameters

Name Description Required Default Pattern

status

-

null

fromDate

-

null

toDate

-

null

locale

-

null

dateFormat

-

null

sqlSearch

-

null

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 560. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /sms/{resourceId}

Operation Id

retrieveOne6

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 561. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /sms/{resourceId}

Operation Id

update3

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

resourceId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 562. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SPMAPILookUpTable

==== POST /surveys/{surveyId}/lookuptables

Operation Id

createLookupTable

Create a Lookup Table entry

===== Description

Add a new entry to a survey. Mandatory Fields key, score, validFrom, validTo

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

====== Body Parameter

Name Description Required Default Pattern

LookupTableData

[LookupTableData]

-

===== Return Type

-

===== Responses

Table 563. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== GET /surveys/{surveyId}/lookuptables

Operation Id

fetchLookupTables

List all Lookup Table entries

===== Description

List all Lookup Table entries for a survey.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 564. http response codes
Code Message Datatype

200

OK

List[[LookupTableData]]

===== Samples

==== GET /surveys/{surveyId}/lookuptables/{key}

Operation Id

findLookupTable

Retrieve a Lookup Table entry

===== Description

Retrieve a Lookup Table entry for a survey.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

key

Enter key

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 565. http response codes
Code Message Datatype

200

OK

[LookupTableData]

===== Samples

=== SavingsAccount

==== DELETE /savingsaccounts/{accountId}

Operation Id

delete18

Delete a savings application

===== Description

At present we support hard delete of savings application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the savings account.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 566. http response codes
Code Message Datatype

200

OK

[DeleteSavingsAccountsAccountIdResponse]

===== Samples

==== GET /savingsaccounts/downloadtemplate

Operation Id

getSavingsTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 567. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /savingsaccounts/transactions/downloadtemplate

Operation Id

getSavingsTransactionTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 568. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /savingsaccounts/{accountId}

Operation Id

handleCommands6

Approve savings application | Undo approval savings application | Assign Savings Officer | Unassign Savings Officer | Reject savings application | Withdraw savings application | Activate a savings account | Close a savings account | Calculate Interest on Savings Account | Post Interest on Savings Account | Block Savings Account | Unblock Savings Account | Block Savings Account Credit transactions | Unblock Savings Account Credit transactions | Block Savings Account Debit transactions | Unblock Savings Account debit transactions

===== Description

Approve savings application: Approves savings application so long as its in 'Submitted and pending approval' state. Undo approval savings application: Will move 'approved' savings application back to 'Submitted and pending approval' state. Assign Savings Officer: Allows you to assign Savings Officer for existing Savings Account. Unassign Savings Officer: Allows you to unassign the Savings Officer. Reject savings application: Rejects savings application so long as its in 'Submitted and pending approval' state. Withdraw savings application: Used when an applicant withdraws from the savings application. It must be in 'Submitted and pending approval' state. Activate a savings account: Results in an approved savings application being converted into an 'active' savings account. Close a savings account: Results in an Activated savings application being converted into an 'closed' savings account. closedOnDate is closure date of savings account withdrawBalance is a boolean description, true value of this field performs a withdrawal transaction with account’s running balance. Mandatory Fields: dateFormat,locale,closedOnDate Optional Fields: note, withdrawBalance, paymentTypeId, accountNumber, checkNumber, routingCode, receiptNumber, bankNumber Calculate Interest on Savings Account: Calculates interest earned on a savings account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process. Post Interest on Savings Account: Calculates and Posts interest earned on a savings account based on today’s date and whether an interest posting or crediting event is due. Block Savings Account: Blocks Savings account from all types of credit and debit transactions Unblock Savings Account: Unblock a blocked account. On unblocking account, user can perform debit and credit transactions Block Savings Account Credit transactions: Savings account will be blocked from all types of credit transactions. Unblock Savings Account Credit transactions: It unblocks the Saving account’s credit operations. Now all types of credits can be transacted to Savings account Block Savings Account Debit transactions: All types of debit operations from Savings account wil be blocked Unblock Savings Account debit transactions: It unblocks the Saving account’s debit operations. Now all types of debits can be transacted from Savings account Showing request/response for 'Unassign Savings Officer'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountsAccountIdRequest

[PostSavingsAccountsAccountIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 569. http response codes
Code Message Datatype

200

OK

[PostSavingsAccountsAccountIdResponse]

===== Samples

==== POST /savingsaccounts/gsimcommands/{parentAccountId}

Operation Id

handleGSIMCommands

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

parentAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 570. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /savingsaccounts/uploadtemplate

Operation Id

postSavingsTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 571. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /savingsaccounts/transactions/uploadtemplate

Operation Id

postSavingsTransactionTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 572. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /savingsaccounts

Operation Id

retrieveAll33

List savings applications/accounts

===== Description

Lists savings applications/accounts Example Requests: savingsaccounts savingsaccounts?fields=name

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 573. http response codes
Code Message Datatype

200

OK

[GetSavingsAccountsResponse]

===== Samples

==== GET /savingsaccounts/{accountId}

Operation Id

retrieveOne24

Retrieve a savings application/account

===== Description

Retrieves a savings application/account Example Requests : savingsaccounts/1 savingsaccounts/1?associations=all

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 574. http response codes
Code Message Datatype

200

OK

[GetSavingsAccountsAccountIdResponse]

===== Samples

==== POST /savingsaccounts

Operation Id

submitApplication2

Submit new savings application

===== Description

Submits new savings application Mandatory Fields: clientId or groupId, productId, submittedOnDate Optional Fields: accountNo, externalId, fieldOfficerId Inherited from Product (if not provided): nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, allowOverdraft, overdraftLimit, withHoldTax Additional Mandatory Field if Entity-Datatable Check is enabled for the entity of type Savings: datatables

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountsRequest

[PostSavingsAccountsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 575. http response codes
Code Message Datatype

200

OK

[PostSavingsAccountsResponse]

===== Samples

==== POST /savingsaccounts/gsim

Operation Id

submitGSIMApplication

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 576. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /savingsaccounts/template

Operation Id

template14

Retrieve Savings Account Template

===== Description

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 Value Lists Example Requests: savingsaccounts/template?clientId=1 savingsaccounts/template?clientId=1&productId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

groupId

groupId

-

null

productId

productId

-

null

staffInSelectedOfficeOnly

staffInSelectedOfficeOnly

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 577. http response codes
Code Message Datatype

200

OK

[GetSavingsAccountsTemplateResponse]

===== Samples

==== PUT /savingsaccounts/{accountId}

Operation Id

update19

Modify a savings application | Modify savings account withhold tax applicability

===== Description

Modify a savings application: Savings 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. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc Modify savings account withhold tax applicability: Savings application’s withhold tax can be modified when in 'Active' state. Once the application is activated, can modify the account withhold tax to post tax or vice-versaShowing request/response for 'Modify a savings application'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutSavingsAccountsAccountIdRequest

[PutSavingsAccountsAccountIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 578. http response codes
Code Message Datatype

200

OK

[PutSavingsAccountsAccountIdResponse]

===== Samples

==== PUT /savingsaccounts/gsim/{parentAccountId}

Operation Id

updateGsim

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

parentAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 579. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SavingsAccountTransactions

==== POST /savingsaccounts/{savingsId}/transactions/{transactionId}

Operation Id

adjustTransaction1

Undo/Reverse/Modify/Release Amount transaction API

===== Description

Undo/Reverse/Modify/Release Amount transaction API Example Requests: savingsaccounts/{savingsId}/transactions/{transactionId}?command=reverse Accepted command = undo, reverse, modify, releaseAmount

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsId

X

null

transactionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountBulkReversalTransactionsRequest

[PostSavingsAccountBulkReversalTransactionsRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 580. http response codes
Code Message Datatype

200

OK

List[[PostSavingsAccountBulkReversalTransactionsRequest]]

===== Samples

==== GET /savingsaccounts/{savingsId}/transactions/{transactionId}

Operation Id

retrieveOne23

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsId

X

null

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 581. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /savingsaccounts/{savingsId}/transactions/template

Operation Id

retrieveTemplate18

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 582. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /savingsaccounts/{savingsId}/transactions

Operation Id

transaction2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountTransactionsRequest

[PostSavingsAccountTransactionsRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 583. http response codes
Code Message Datatype

200

OK

[PostSavingsAccountTransactionsResponse]

===== Samples

=== SavingsCharges

==== POST /savingsaccounts/{savingsAccountId}/charges

Operation Id

addSavingsAccountCharge

Create a Savings account Charge

===== Description

Creates a Savings account Charge Mandatory Fields for Savings account Charges: chargeId, amount chargeId, amount, dueDate, dateFormat, locale chargeId, amount, feeOnMonthDay, monthDayFormat, locale

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountsSavingsAccountIdChargesRequest

[PostSavingsAccountsSavingsAccountIdChargesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 584. http response codes
Code Message Datatype

200

OK

[PostSavingsAccountsSavingsAccountIdChargesResponse]

===== Samples

==== DELETE /savingsaccounts/{savingsAccountId}/charges/{savingsAccountChargeId}

Operation Id

deleteSavingsAccountCharge

Delete a Savings account Charge

===== Description

Note: Currently, A Savings account Charge may only be removed from Savings that are not yet approved.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

savingsAccountChargeId

savingsAccountChargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 585. http response codes
Code Message Datatype

200

OK

[DeleteSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse]

===== Samples

==== POST /savingsaccounts/{savingsAccountId}/charges/{savingsAccountChargeId}

Operation Id

payOrWaiveSavingsAccountCharge

Pay a Savings account Charge | Waive off a Savings account Charge | Inactivate a Savings account Charge

===== Description

Pay a Savings account Charge: An active charge will be paid when savings account is active and having sufficient balance. Waive off a Savings account Charge: Outstanding charge amount will be waived off. Inactivate a Savings account Charge: A charge will be allowed to inactivate when savings account is active and not having any dues as of today. If charge is overpaid, corresponding charge payment transactions will be reversed. Showing request/response for 'Pay a Savings account Charge'

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

savingsAccountChargeId

savingsAccountChargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

[PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 586. http response codes
Code Message Datatype

200

OK

[PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse]

===== Samples

==== GET /savingsaccounts/{savingsAccountId}/charges

Operation Id

retrieveAllSavingsAccountCharges

List Savings Charges

===== Description

Lists Savings Charges Example Requests: savingsaccounts/1/charges savingsaccounts/1/charges?chargeStatus=all savingsaccounts/1/charges?chargeStatus=inactive savingsaccounts/1/charges?chargeStatus=active savingsaccounts/1/charges?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

====== Query Parameters

Name Description Required Default Pattern

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 587. http response codes
Code Message Datatype

200

OK

List[[GetSavingsAccountsSavingsAccountIdChargesResponse]]

===== Samples

==== GET /savingsaccounts/{savingsAccountId}/charges/{savingsAccountChargeId}

Operation Id

retrieveSavingsAccountCharge

Retrieve a Savings account Charge

===== Description

Retrieves a Savings account Charge Example Requests: /savingsaccounts/1/charges/5 /savingsaccounts/1/charges/5?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

savingsAccountChargeId

savingsAccountChargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 588. http response codes
Code Message Datatype

200

OK

[GetSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse]

===== Samples

==== GET /savingsaccounts/{savingsAccountId}/charges/template

Operation Id

retrieveTemplate17

Retrieve Savings Charges Template

===== Description

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 Request: savingsaccounts/1/charges/template

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 589. http response codes
Code Message Datatype

200

OK

[GetSavingsAccountsSavingsAccountIdChargesTemplateResponse]

===== Samples

==== PUT /savingsaccounts/{savingsAccountId}/charges/{savingsAccountChargeId}

Operation Id

updateSavingsAccountCharge

Update a Savings account Charge

===== Description

Currently Savings account Charges may be updated only if the Savings account is not yet approved.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

savingsAccountId

savingsAccountId

X

null

savingsAccountChargeId

savingsAccountChargeId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

[PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 590. http response codes
Code Message Datatype

200

OK

[PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse]

===== Samples

=== SavingsProduct

==== POST /savingsproducts

Operation Id

create13

Create a Savings Product

===== Description

Creates a Savings Product Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType,accountingRule Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId Optional Fields: minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, allowOverdraft, overdraftLimit, minBalanceForInterestCalculation,withHoldTax,taxGroupId,accountMapping, lienAllowed, maxAllowedLienLimit

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostSavingsProductsRequest

[PostSavingsProductsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 591. http response codes
Code Message Datatype

200

OK

[PostSavingsProductsResponse]

===== Samples

==== DELETE /savingsproducts/{productId}

Operation Id

delete19

Delete a Savings Product

===== Description

Deletes a Savings Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 592. http response codes
Code Message Datatype

200

OK

[DeleteSavingsProductsProductIdResponse]

===== Samples

==== GET /savingsproducts

Operation Id

retrieveAll34

List Savings Products

===== Description

Lists Savings Products Example Requests: savingsproducts savingsproducts?fields=name

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 593. http response codes
Code Message Datatype

200

OK

List[[GetSavingsProductsResponse]]

===== Samples

==== GET /savingsproducts/{productId}

Operation Id

retrieveOne25

Retrieve a Savings Product

===== Description

Retrieves a Savings Product Example Requests: savingsproducts/1 savingsproducts/1?template=true savingsproducts/1?fields=name,description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 594. http response codes
Code Message Datatype

200

OK

[GetSavingsProductsProductIdResponse]

===== Samples

==== GET /savingsproducts/template

Operation Id

retrieveTemplate19

Retrieve Savings Product Template

===== Description

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 Request: Account Mapping: savingsproducts/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 595. http response codes
Code Message Datatype

200

OK

[GetSavingsProductsTemplateResponse]

===== Samples

==== PUT /savingsproducts/{productId}

Operation Id

update20

Update a Savings Product

===== Description

Updates a Savings Product

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutSavingsProductsProductIdRequest

[PutSavingsProductsProductIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 596. http response codes
Code Message Datatype

200

OK

[PutSavingsProductsProductIdResponse]

===== Samples

=== Scheduler

==== POST /scheduler

Operation Id

changeSchedulerStatus

Activate Scheduler Jobs | Suspend Scheduler Jobs

===== Description

Activates the scheduler job service. | Suspends the scheduler job service.

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

-

===== Responses

Table 597. http response codes
Code Message Datatype

200

POST : scheduler?command=start POST : scheduler?command=stop

<<>>

===== Samples

==== GET /scheduler

Operation Id

retrieveStatus

Retrieve Scheduler Status

===== Description

Returns the scheduler status. Example Requests: scheduler

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 598. http response codes
Code Message Datatype

200

OK

[GetSchedulerResponse]

===== Samples

=== ScoreCard

==== POST /surveys/scorecards/{surveyId}

Operation Id

createScorecard1

Create a Scorecard entry

===== Description

Add a new entry to a survey. Mandatory Fields clientId, createdOn, questionId, responseId, staffId

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

====== Body Parameter

Name Description Required Default Pattern

ScorecardData

scorecardData [ScorecardData]

-

===== Return Type

-

===== Responses

Table 599. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== GET /surveys/scorecards/clients/{clientId}

Operation Id

findByClient1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 600. http response codes
Code Message Datatype

0

default response

List[[ScorecardData]]

===== Samples

==== GET /surveys/scorecards/{surveyId}

Operation Id

findBySurvey

List all Scorecard entries

===== Description

List all Scorecard entries for a survey.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

===== Return Type

array[[Scorecard]]

===== Content Type

  • application/json

===== Responses

Table 601. http response codes
Code Message Datatype

200

OK

List[[Scorecard]]

===== Samples

==== GET /surveys/scorecards/{surveyId}/clients/{clientId}

Operation Id

findBySurveyAndClient

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

Enter surveyId

X

null

clientId

Enter clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 602. http response codes
Code Message Datatype

0

default response

List[[ScorecardData]]

===== Samples

=== SearchAPI

==== POST /search/advance

Operation Id

advancedSearch

Adhoc query search

===== Description

AdHocQuery search has more search options, it is a POST request, it uses request body to send search parameters Mandatory fields:entities Optional fields:loanStatus, loanProducts, offices, loanDateOption, loanFromDate, loanToDate, includeOutStandingAmountPercentage, outStandingAmountPercentageCondition, minOutStandingAmountPercentage and maxOutStandingAmountPercentage OR outStandingAmountPercentage, includeOutstandingAmount, outstandingAmountCondition, minOutstandingAmount and maxOutstandingAmount OR outstandingAmount

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostAdhocQuerySearchRequest

[PostAdhocQuerySearchRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 603. http response codes
Code Message Datatype

200

OK

List[[PostAdhocQuerySearchResponse]]

===== Samples

==== GET /search/template

Operation Id

retrieveAdHocSearchQueryTemplate

Retrive Adhoc Search query template

===== Description

Mandatory Fields search?query=000000001

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 604. http response codes
Code Message Datatype

200

OK

[GetSearchResponse]

===== Samples

==== GET /search

Operation Id

searchData

Search Resources

===== Description

Example Requests: search?query=000000001 search?query=Petra&resource=clients,groups search?query=Petra&resource=clients,groups&exactMatch=true

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

query

query

-

null

resource

resource

-

null

exactMatch

exactMatch

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 605. http response codes
Code Message Datatype

200

OK

List[[GetSearchResponse]]

===== Samples

=== SelfAccountTransfer

==== POST /self/accounttransfers

Operation Id

create14

Create new Transfer

===== Description

Ability to create new transfer of monetary funds from one account to another. Example Requests: self/accounttransfers/

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

type

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 606. http response codes
Code Message Datatype

200

OK

List[[PostNewTransferResponse]]

===== Samples

==== GET /self/accounttransfers/template

Operation Id

template15

Retrieve Account Transfer Template

===== Description

Returns list of loan/savings accounts that can be used for account transfer Example Requests: self/accounttransfers/template

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

type

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 607. http response codes
Code Message Datatype

200

OK

List[[GetAccountTransferTemplateResponse]]

===== Samples

=== SelfAuthentication

==== POST /self/authentication

Operation Id

authenticate1

Verify authentication

===== Description

Authenticates the credentials provided and returns the set roles and permissions allowed. Please visit this link for more info - fineract.apache.org/legacy-docs/apiLive.htm#selfbasicauth

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 608. http response codes
Code Message Datatype

200

OK

[PostSelfAuthenticationResponse]

===== Samples

=== SelfClient

==== POST /self/clients/{clientId}/images

Operation Id

addNewClientImage2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

====== Header Parameters

Name Description Required Default Pattern

Content-Length

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 609. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /self/clients/{clientId}/images

Operation Id

deleteClientImage1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 610. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/clients

Operation Id

retrieveAll36

List Clients associated to the user

===== Description

The list capability of clients can support pagination and sorting. Example Requests: self/clients self/clients?fields=displayName,officeName self/clients?offset=10&limit=50 self/clients?orderBy=displayName&sortOrder=DESC

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

displayName

displayName

-

null

firstName

firstName

-

null

lastName

lastName

-

null

offset

offset

-

null

status

status

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 611. http response codes
Code Message Datatype

200

OK

[GetSelfClientsResponse]

===== Samples

==== GET /self/clients/{clientId}/charges

Operation Id

retrieveAllClientCharges1

List Client Charges

===== Description

The list capability of client charges supports pagination. Example Requests: self/clients/1/charges self/clients/1/charges?offset=0&limit=5

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

chargeStatus

chargeStatus

-

all

pendingPayment

pendingPayment

-

null

limit

limit

-

null

offset

offset

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 612. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdChargesResponse]

===== Samples

==== GET /self/clients/{clientId}/transactions

Operation Id

retrieveAllClientTransactions1

List Client Transactions

===== Description

The list capability of client transaction can support pagination. Example Requests: self/clients/189/transactions self/clients/189/transactions?offset=10&limit=50

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 613. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdTransactionsResponse]

===== Samples

==== GET /self/clients/{clientId}/accounts

Operation Id

retrieveAssociatedAccounts1

Retrieve client accounts overview

===== Description

An example of how a loan portfolio summary can be provided. This is requested in a specific use case of the community application. It is quite reasonable to add resources like this to simplify User Interface development. Example Requests: self/clients/1/accounts self/clients/1/accounts?fields=loanAccounts,savingsAccounts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 614. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdAccountsResponse]

===== Samples

==== GET /self/clients/{clientId}/charges/{chargeId}

Operation Id

retrieveClientCharge1

Retrieve a Client Charge

===== Description

Retrieves a Client Charge Example Requests: self/clients/1/charges/1 self/clients/1/charges/1?fields=name,id

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 615. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdChargesChargeIdResponse]

===== Samples

==== GET /self/clients/{clientId}/transactions/{transactionId}

Operation Id

retrieveClientTransaction1

Retrieve a Client Transaction

===== Description

Retrieves a Client TransactionExample Requests: self/clients/1/transactions/1 self/clients/1/transactions/1?fields=id,officeName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

transactionId

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 616. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdTransactionsTransactionIdResponse]

===== Samples

==== GET /self/clients/{clientId}/images

Operation Id

retrieveImage1

Retrieve Client Image

===== Description

Optional arguments are identical to those of Get Image associated with an Entity (Binary file) Example Requests: self/clients/1/images

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

====== Query Parameters

Name Description Required Default Pattern

maxWidth

-

null

maxHeight

-

null

output

-

null

===== Return Type

-

===== Responses

Table 617. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== GET /self/clients/{clientId}/obligeedetails

Operation Id

retrieveObligeeDetails1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 618. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/clients/{clientId}

Operation Id

retrieveOne26

Retrieve a Client

===== Description

Retrieves a Client Example Requests: self/clients/1 self/clients/1?fields=id,displayName,officeName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 619. http response codes
Code Message Datatype

200

OK

[GetSelfClientsClientIdResponse]

===== Samples

=== SelfDividend

==== POST /shareproduct/{productId}/dividend

Operation Id

createDividendDetail

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 620. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== DELETE /shareproduct/{productId}/dividend/{dividendId}

Operation Id

deleteDividendDetail

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

dividendId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 621. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /shareproduct/{productId}/dividend

Operation Id

retrieveAll39

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

status

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 622. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /shareproduct/{productId}/dividend/{dividendId}

Operation Id

retrieveDividendDetails

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

dividendId

X

null

productId

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

-

null

limit

-

null

orderBy

-

null

sortOrder

-

null

accountNo

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 623. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /shareproduct/{productId}/dividend/{dividendId}

Operation Id

updateDividendDetail

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

dividendId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 624. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfLoanProducts

==== GET /self/loanproducts

Operation Id

retrieveAllLoanProducts1

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 625. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/loanproducts/{productId}

Operation Id

retrieveLoanProductDetails1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 626. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfLoans

==== POST /self/loans

Operation Id

calculateLoanScheduleOrSubmitLoanApplication1

Calculate Loan Repayment Schedule | Submit a new Loan Application

===== Description

Calculate Loan Repayment Schedule: Calculates Loan Repayment Schedule Mandatory Fields: productId, principal, loanTermFrequency, loanTermFrequencyType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, expectedDisbursementDate, transactionProcessingStrategyCode Submit a new Loan Application: Mandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyCode, expectedDisbursementDate, submittedOnDate, loanType 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 Optional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true) Showing request/response for 'Submit a new Loan Application'

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostSelfLoansRequest

[PostSelfLoansRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 627. http response codes
Code Message Datatype

200

OK

[PostSelfLoansResponse]

===== Samples

==== PUT /self/loans/{loanId}

Operation Id

modifyLoanApplication1

Update a Loan Application

===== Description

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.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutSelfLoansLoanIdRequest

[PutSelfLoansLoanIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 628. http response codes
Code Message Datatype

200

OK

[PutSelfLoansLoanIdResponse]

===== Samples

==== GET /self/loans/{loanId}/charges

Operation Id

retrieveAllLoanCharges1

List Loan Charges

===== Description

Lists loan Charges Example Requests: self/loans/1/charges self/loans/1/charges?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 629. http response codes
Code Message Datatype

200

OK

List[[GetSelfLoansLoanIdChargesResponse]]

===== Samples

==== GET /self/loans/{loanId}/guarantors

Operation Id

retrieveGuarantorDetails2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 630. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/loans/{loanId}

Operation Id

retrieveLoan1

Retrieve a Loan

===== Description

Retrieves a Loan Example Requests: self/loans/1 self/loans/1?fields=id,principal,annualInterestRate self/loans/1?fields=id,principal,annualInterestRate&associations=repaymentSchedule,transactions

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 631. http response codes
Code Message Datatype

200

OK

[GetSelfLoansLoanIdResponse]

===== Samples

==== GET /self/loans/{loanId}/charges/{chargeId}

Operation Id

retrieveLoanCharge1

Retrieve a Loan Charge

===== Description

Retrieves a Loan Charge Example Requests: self/loans/1/charges/1 self/loans/1/charges/1?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

chargeId

chargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 632. http response codes
Code Message Datatype

200

OK

[GetSelfLoansLoanIdChargesResponse]

===== Samples

==== GET /self/loans/{loanId}/transactions/{transactionId}

Operation Id

retrieveTransaction1

Retrieve a Loan Transaction Details

===== Description

Retrieves a Loan Transaction DetailsExample Request: self/loans/5/transactions/3

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

transactionId

transactionId

X

null

====== Query Parameters

Name Description Required Default Pattern

fields

Optional Loan Transaction attribute list to be in the response

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 633. http response codes
Code Message Datatype

200

OK

[GetSelfLoansLoanIdTransactionsTransactionIdResponse]

===== Samples

==== POST /self/loans/{loanId}

Operation Id

stateTransitions1

Applicant Withdraws from Loan Application

===== Description

Applicant Withdraws from Loan Application Mandatory Fields: withdrawnOnDate

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

loanId

loanId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSelfLoansLoanIdRequest

[PostSelfLoansLoanIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 634. http response codes
Code Message Datatype

200

OK

[PostSelfLoansLoanIdResponse]

===== Samples

==== GET /self/loans/template

Operation Id

template17

Retrieve Loan Details Template

===== Description

Retrieves Loan Details Template 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: self/loans/template?templateType=individual&clientId=1 self/loans/template?templateType=individual&clientId=1&productId=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

productId

productId

-

null

templateType

templateType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 635. http response codes
Code Message Datatype

200

OK

[GetSelfLoansTemplateResponse]

===== Samples

=== SelfRunReport

==== GET /self/runreports/{reportName}

Operation Id

runReport1

Running A Report

===== Description

Example Requests: self/runreports/Client%20Details?R_officeId=1 self/runreports/Client%20Details?R_officeId=1&exportCSV=true

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

reportName

reportName

X

null

===== Return Type

===== Content Type

  • application/json

  • application/pdf

  • application/vnd.ms-excel

  • text/csv

  • text/html

===== Responses

Table 636. http response codes
Code Message Datatype

200

OK

[GetRunReportResponse]

===== Samples

=== SelfSavingsAccount

==== PUT /self/savingsaccounts/{accountId}

Operation Id

modifySavingsAccountApplication

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 637. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/savingsaccounts/{accountId}/charges

Operation Id

retrieveAllSavingsAccountCharges1

List Savings Charges

===== Description

Lists Savings Charges Example Requests: self/savingsaccounts/1/charges self/savingsaccounts/1/charges?chargeStatus=inactive self/savingsaccounts/1/charges?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 638. http response codes
Code Message Datatype

200

OK

List[[GetSelfSavingsAccountsAccountIdChargesResponse]]

===== Samples

==== GET /self/savingsaccounts/{accountId}

Operation Id

retrieveSavings

Retrieve a savings account

===== Description

Retrieves a savings account Example Requests : self/savingsaccounts/1 self/savingsaccounts/1?associations=transactions

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

====== Query Parameters

Name Description Required Default Pattern

chargeStatus

chargeStatus

-

all

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 639. http response codes
Code Message Datatype

200

OK

[GetSelfSavingsAccountsResponse]

===== Samples

==== GET /self/savingsaccounts/{accountId}/charges/{savingsAccountChargeId}

Operation Id

retrieveSavingsAccountCharge1

Retrieve a Savings account Charge

===== Description

Retrieves a Savings account Charge Example Requests: self/savingsaccounts/1/charges/5 self/savingsaccounts/1/charges/5?fields=name,amountOrPercentage

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

savingsAccountChargeId

savingsAccountChargeId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 640. http response codes
Code Message Datatype

200

OK

[GetSelfSavingsAccountsAccountIdChargesSavingsAccountChargeIdResponse]

===== Samples

==== GET /self/savingsaccounts/{accountId}/transactions/{transactionId}

Operation Id

retrieveSavingsTransaction

Retrieve Savings Account Transaction

===== Description

Retrieves Savings Account Transaction Example Requests: self/savingsaccounts/1/transactions/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

transactionId

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 641. http response codes
Code Message Datatype

200

OK

[GetSelfSavingsAccountsAccountIdTransactionsTransactionIdResponse]

===== Samples

==== POST /self/savingsaccounts

Operation Id

submitSavingsAccountApplication

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 642. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/savingsaccounts/template

Operation Id

template18

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

productId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 643. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfSavingsProducts

==== GET /self/savingsproducts

Operation Id

retrieveAll38

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 644. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/savingsproducts/{productId}

Operation Id

retrieveOne27

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 645. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfScoreCard

==== POST /self/surveys/scorecards/{surveyId}

Operation Id

createScorecard

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyId

X

null

====== Body Parameter

Name Description Required Default Pattern

ScorecardData

[ScorecardData]

-

===== Return Type

-

===== Content Type

  • application/json

===== Responses

Table 646. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== GET /self/surveys/scorecards/clients/{clientId}

Operation Id

findByClient

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 647. http response codes
Code Message Datatype

0

default response

List[[ScorecardData]]

===== Samples

=== SelfServiceRegistration

==== POST /self/registration

Operation Id

createSelfServiceRegistrationRequest

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 648. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /self/registration/user

Operation Id

createSelfServiceUser

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 649. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfShareAccounts

==== POST /self/shareaccounts

Operation Id

createAccount1

Submit new share application

===== Description

Mandatory fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate Optional Fields accountNo, externalId Inherited from Product (if not provided) minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 650. http response codes
Code Message Datatype

200

OK

List[[PostNewShareApplicationResponse]]

===== Samples

==== GET /self/shareaccounts/{accountId}

Operation Id

retrieveShareAccount

Retrieve a share application/account

===== Description

Example Requests:  self/shareaccounts/12

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 651. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/shareaccounts/template

Operation Id

template19

Retrieve Share Account Template

===== Description

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 Value Lists Arguments clientId:Integer mandatory productId:Integer optionalIf entered, productId, productName and selectedProduct fields are returned. Example Requests: self/shareaccounts/template?clientId=14 self/shareaccounts/template?clientId=14&productId=3

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

productId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 652. http response codes
Code Message Datatype

200

OK

List[[GetShareAccountsClientIdProductIdResponse]]

===== Samples

=== SelfShareProducts

==== GET /self/products/share

Operation Id

retrieveAllProducts1

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

offset

-

null

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 653. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /self/products/share/{productId}

Operation Id

retrieveProduct1

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

productId

X

null

type

X

null

====== Query Parameters

Name Description Required Default Pattern

clientId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 654. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== SelfSpm

==== GET /self/surveys

Operation Id

fetchAllSurveys

===== Description

===== Parameters

===== Return Type

array[[SurveyData]]

===== Content Type

  • application/json

===== Responses

Table 655. http response codes
Code Message Datatype

0

default response

List[[SurveyData]]

===== Samples

=== SelfThirdPartyTransfer

==== POST /self/beneficiaries/tpt

Operation Id

add

Add TPT Beneficiary

===== Description

Api to add third party beneficiary linked to current user. Parameter Definitions name : Nick name for beneficiary, should be unique for an self service user officeName : Office Name of beneficiary(not id) accountNumber : Account Number of beneficiary(not id) transferLimit : Each transfer initiated to this account will not exceed this amount Example Requests: /self/beneficiaries/tpt Mandatory Fields: name, officeName, accountNumber, accountType Optional Fields: transferLimit

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostSelfBeneficiariesTPTRequest

[PostSelfBeneficiariesTPTRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 656. http response codes
Code Message Datatype

200

OK

[PostSelfBeneficiariesTPTResponse]

===== Samples

==== DELETE /self/beneficiaries/tpt/{beneficiaryId}

Operation Id

delete20

Delete TPT Beneficiary

===== Description

Api to delete third party beneficiary linked to current user. Example Requests: /self/beneficiaries/tpt/{beneficiaryId}

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

beneficiaryId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 657. http response codes
Code Message Datatype

200

OK

[DeleteSelfBeneficiariesTPTBeneficiaryIdResponse]

===== Samples

==== GET /self/beneficiaries/tpt

Operation Id

retrieveAll35

Get All TPT Beneficiary

===== Description

Api to get all third party beneficiary linked to current user. Example Requests: /self/beneficiaries/tpt

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 658. http response codes
Code Message Datatype

200

OK

List[[GetSelfBeneficiariesTPTResponse]]

===== Samples

==== GET /self/beneficiaries/tpt/template

Operation Id

template16

Beneficiary Third Party Transfer Template

===== Description

Returns Account Type enumerations. Self User is expected to know office name and account number to be able to add beneficiary. Example Requests: /self/beneficiaries/tpt/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 659. http response codes
Code Message Datatype

200

OK

[GetSelfBeneficiariesTPTTemplateResponse]

===== Samples

==== PUT /self/beneficiaries/tpt/{beneficiaryId}

Operation Id

update21

Update TPT Beneficiary

===== Description

Api to update third party beneficiary linked to current user. Example Requests: /self/beneficiaries/tpt/{beneficiaryId} Optional Fields: name, transferLimit

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

beneficiaryId

beneficiaryId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutSelfBeneficiariesTPTBeneficiaryIdRequest

[PutSelfBeneficiariesTPTBeneficiaryIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 660. http response codes
Code Message Datatype

200

OK

[PutSelfBeneficiariesTPTBeneficiaryIdResponse]

===== Samples

=== SelfUser

==== PUT /self/user

Operation Id

update22

Update User

===== Description

This API can be used by Self Service user to update their own user information. Currently, \"password\" and \"repeatPassword\" are the only parameters accepted.

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutSelfUserRequest

[PutSelfUserRequest]

X

===== Return Type

===== Content Type

  • /

===== Responses

Table 661. http response codes
Code Message Datatype

200

OK

[PutSelfUserResponse]

===== Samples

=== SelfUserDetails

==== GET /self/userdetails

Operation Id

fetchAuthenticatedUserData1

Fetch authenticated user details

===== Description

Checks the Authentication and returns the set roles and permissions allowed For more info visit this link - fineract.apache.org/legacy-docs/apiLive.htm#selfoauth

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 662. http response codes
Code Message Datatype

200

OK

[GetSelfUserDetailsResponse]

===== Samples

=== ShareAccount

==== POST /accounts/{type}

Operation Id

createAccount

Submit new share application

===== Description

Submits new share application Mandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate Optional Fields: accountNo, externalId Inherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Body Parameter

Name Description Required Default Pattern

PostAccountsTypeRequest

[PostAccountsTypeRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 663. http response codes
Code Message Datatype

200

OK

[PostAccountsTypeResponse]

===== Samples

==== GET /accounts/{type}/downloadtemplate

Operation Id

getSharedAccountsTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 664. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /accounts/{type}/{accountId}

Operation Id

handleCommands2

Approve share application | Undo approval share application | Reject share application | Activate a share account | Close a share account | Apply additional shares on a share account | Approve additional shares request on a share account | Reject additional shares request on a share account | Redeem shares on a share account

===== Description

Approve share application: Approves share application so long as its in 'Submitted and pending approval' state. Undo approval share application: Will move 'approved' share application back to 'Submitted and pending approval' state. Reject share application: Rejects share application so long as its in 'Submitted and pending approval' state. Activate a share account: Results in an approved share application being converted into an 'active' share account. Close a share account: Results in an Activated share application being converted into an 'closed' share account. closedDate is closure date of share account Mandatory Fields: dateFormat,locale,closedDate Apply additional shares on a share account: requestedDate is requsted date of share purchase requestedShares is number of shares to be purchase Mandatory Fields: dateFormat,locale,requestedDate, requestedShares Approve additional shares request on a share account requestedShares is Share purchase transaction ids Mandatory Fields: requestedShares Reject additional shares request on a share account: requestedShares is Share purchase transaction ids Mandatory Fields: requestedShares Redeem shares on a share account: Results redeem some/all shares from share account. requestedDate is requsted date of shares redeem requestedShares is number of shares to be redeemed Mandatory Fields: dateFormat,locale,requestedDate,requestedShares Showing request/response for 'Reject additional shares request on a share account' For more info visit this link - fineract.apache.org/legacy-docs/apiLive.htm#shareaccounts

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostAccountsTypeAccountIdRequest

[PostAccountsTypeAccountIdRequest]

X

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 665. http response codes
Code Message Datatype

200

OK

[PostAccountsTypeAccountIdResponse]

===== Samples

==== POST /accounts/{type}/uploadtemplate

Operation Id

postSharedAccountsTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 666. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /accounts/{type}/{accountId}

Operation Id

retrieveAccount

Retrieve a share application/account

===== Description

Retrieves a share application/account Example Requests : shareaccount/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

accountId

accountId

X

null

type

type

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 667. http response codes
Code Message Datatype

200

OK

[GetAccountsTypeAccountIdResponse]

===== Samples

==== GET /accounts/{type}

Operation Id

retrieveAllAccounts1

List share applications/accounts

===== Description

Lists share applications/accounts Example Requests: shareaccount

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Query Parameters

Name Description Required Default Pattern

offset

offset

-

null

limit

limit

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 668. http response codes
Code Message Datatype

200

OK

[GetAccountsTypeResponse]

===== Samples

==== GET /accounts/{type}/template

Operation Id

template7

Retrieve Share Account Template

===== Description

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 Value Lists Example Requests: accounts/share/template?clientId=1 accounts/share/template?clientId=1&productId=1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

====== Query Parameters

Name Description Required Default Pattern

clientId

clientId

-

null

productId

productId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 669. http response codes
Code Message Datatype

200

OK

[GetAccountsTypeTemplateResponse]

===== Samples

==== PUT /accounts/{type}/{accountId}

Operation Id

updateAccount

Modify a share application

===== Description

Share 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. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

type

type

X

null

accountId

accountId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutAccountsTypeAccountIdRequest

[PutAccountsTypeAccountIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 670. http response codes
Code Message Datatype

200

OK

[PutAccountsTypeAccountIdResponse]

===== Samples

=== SpmSurveys

==== POST /surveys/{id}

Operation Id

activateOrDeactivateSurvey

Deactivate Survey

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

X

null

====== Query Parameters

Name Description Required Default Pattern

command

-

null

===== Return Type

-

===== Responses

Table 671. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== POST /surveys

Operation Id

createSurvey

Create a Survey

===== Description

Adds a new survey to collect client related data. Mandatory Fields countryCode, key, name, questions, responses, sequenceNo, text, description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

SurveyData

Create survey [SurveyData]

-

===== Return Type

-

===== Responses

Table 672. http response codes
Code Message Datatype

200

OK

<<>>

===== Samples

==== PUT /surveys/{id}

Operation Id

editSurvey

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

X

null

====== Body Parameter

Name Description Required Default Pattern

SurveyData

[SurveyData]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 673. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /surveys

Operation Id

fetchAllSurveys1

List all Surveys

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

isActive

-

null

===== Return Type

array[[SurveyData]]

===== Content Type

  • application/json

===== Responses

Table 674. http response codes
Code Message Datatype

200

OK

List[[SurveyData]]

===== Samples

==== GET /surveys/{id}

Operation Id

findSurvey

Retrieve a Survey

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

id

Enter id

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 675. http response codes
Code Message Datatype

200

OK

[SurveyData]

===== Samples

=== Staff

==== POST /staff

Operation Id

create3

Create a staff member

===== Description

Creates a staff member. Mandatory Fields: officeId, firstname, lastname Optional Fields: isLoanOfficer, isActive

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostStaffRequest

[PostStaffRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 676. http response codes
Code Message Datatype

200

OK

[CreateStaffResponse]

===== Samples

==== GET /staff/downloadtemplate

Operation Id

getTemplate1

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 677. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /staff/uploadtemplate

Operation Id

postTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 678. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /staff

Operation Id

retrieveAll16

Retrieve Staff

===== Description

Returns the list of staff members. Example Requests: staff Retrieve a Staff by status Returns the details of a Staff based on status. By default it Returns all the ACTIVE Staff. If status=INACTIVE, then it returns all INACTIVE Staff. and for status=ALL, it Returns both ACTIVE and INACTIVE Staff. Example Requests: staff?status=active

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

staffInOfficeHierarchy

staffInOfficeHierarchy

-

false

loanOfficersOnly

loanOfficersOnly

-

false

status

status

-

active

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 679. http response codes
Code Message Datatype

200

OK

List[[RetrieveOneResponse]]

===== Samples

==== GET /staff/{staffId}

Operation Id

retrieveOne8

Retrieve a Staff Member

===== Description

Returns the details of a Staff Member. Example Requests: staff/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

staffId

staffId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 680. http response codes
Code Message Datatype

200

OK

[RetrieveOneResponse]

===== Samples

==== PUT /staff/{staffId}

Operation Id

update7

Update a Staff Member

===== Description

Updates the details of a staff member.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

staffId

staffId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutStaffRequest

[PutStaffRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 681. http response codes
Code Message Datatype

200

OK

[UpdateStaffResponse]

===== Samples

=== StandingInstructions

==== POST /standinginstructions

Operation Id

create5

Create new Standing Instruction

===== Description

Ability to create new instruction for transfer of monetary funds from one account to another

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostStandingInstructionsRequest

[PostStandingInstructionsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 682. http response codes
Code Message Datatype

200

OK

[PostStandingInstructionsResponse]

===== Samples

==== GET /standinginstructions

Operation Id

retrieveAll19

List Standing Instructions

===== Description

Example Requests: standinginstructions

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

transferType

transferType

-

null

clientName

clientName

-

null

clientId

clientId

-

null

fromAccountId

fromAccountId

-

null

fromAccountType

fromAccountType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 683. http response codes
Code Message Datatype

200

OK

[GetStandingInstructionsResponse]

===== Samples

==== GET /standinginstructions/{standingInstructionId}

Operation Id

retrieveOne10

Retrieve Standing Instruction

===== Description

Example Requests : standinginstructions/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

standingInstructionId

standingInstructionId

X

null

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 684. http response codes
Code Message Datatype

200

OK

[GetStandingInstructionsStandingInstructionIdResponse]

===== Samples

==== GET /standinginstructions/template

Operation Id

template6

Retrieve Standing Instruction Template

===== Description

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 Value Lists Example Requests: standinginstructions/template?fromAccountType=2&fromOfficeId=1 standinginstructions/template?fromAccountType=2&fromOfficeId=1&fromClientId=1&transferType=1 standinginstructions/template?fromClientId=1&fromAccountType=2&fromAccountId=1&transferType=1

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

fromOfficeId

fromOfficeId

-

null

fromClientId

fromClientId

-

null

fromAccountId

fromAccountId

-

null

fromAccountType

fromAccountType

-

null

toOfficeId

toOfficeId

-

null

toClientId

toClientId

-

null

toAccountId

toAccountId

-

null

toAccountType

toAccountType

-

null

transferType

transferType

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 685. http response codes
Code Message Datatype

200

OK

[GetStandingInstructionsTemplateResponse]

===== Samples

==== PUT /standinginstructions/{standingInstructionId}

Operation Id

update9

Update Standing Instruction | Delete Standing Instruction

===== Description

Ability to modify existing instruction for transfer of monetary funds from one account to another. PUT DomainName/api/v1/standinginstructions/1?command=update Ability to modify existing instruction for transfer of monetary funds from one account to another. PUT DomainName/api/v1/standinginstructions/1?command=delete

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

standingInstructionId

standingInstructionId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutStandingInstructionsStandingInstructionIdRequest

[PutStandingInstructionsStandingInstructionIdRequest]

-

====== Query Parameters

Name Description Required Default Pattern

command

command

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 686. http response codes
Code Message Datatype

200

OK

[PutStandingInstructionsStandingInstructionIdResponse]

===== Samples

=== StandingInstructionsHistory

==== GET /standinginstructionrunhistory

Operation Id

retrieveAll20

Standing Instructions Logged History

===== Description

The list capability of history can support pagination and sorting Example Requests : standinginstructionrunhistory standinginstructionrunhistory?orderBy=name&sortOrder=DESC standinginstructionrunhistory?offset=10&limit=50

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

sqlSearch

sqlSearch

-

null

externalId

externalId

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

transferType

transferType

-

null

clientName

clientName

-

null

clientId

clientId

-

null

fromAccountId

fromAccountId

-

null

fromAccountType

fromAccountType

-

null

locale

locale

-

null

dateFormat

dateFormat

-

null

fromDate

fromDate

-

null

toDate

toDate

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 687. http response codes
Code Message Datatype

200

OK

[GetStandingInstructionRunHistoryResponse]

===== Samples

=== Survey

==== POST /survey/{surveyName}/{apptableId}

Operation Id

createDatatableEntry1

Create an entry in the survey table

===== Description

Insert and entry in a survey table (full fill the survey). Refer Link for sample Body: [ fineract.apache.org/legacy-docs/apiLive.htm#survey_create ]

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

surveyName

X

null

apptableId

apptableId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostSurveySurveyNameApptableIdRequest

[PostSurveySurveyNameApptableIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 688. http response codes
Code Message Datatype

200

OK

[PostSurveySurveyNameApptableIdResponse]

===== Samples

==== DELETE /survey/{surveyName}/{clientId}/{fulfilledId}

Operation Id

deleteDatatableEntries2

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

X

null

clientId

X

null

fulfilledId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 689. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /survey/{surveyName}/{clientId}

Operation Id

getClientSurveyOverview

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

X

null

clientId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 690. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /survey/{surveyName}/{clientId}/{entryId}

Operation Id

getSurveyEntry

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

X

null

clientId

X

null

entryId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 691. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /survey/register/{surveyName}/{apptable}

Operation Id

register

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

X

null

apptable

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 692. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /survey/{surveyName}

Operation Id

retrieveSurvey

Retrieve survey

===== Description

Lists a registered survey table details and the Apache Fineract Core application table they are registered to.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

surveyName

surveyName

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 693. http response codes
Code Message Datatype

200

OK

[GetSurveyResponse]

===== Samples

==== GET /survey

Operation Id

retrieveSurveys

Retrieve surveys

===== Description

Retrieve surveys. This allows to retrieve the list of survey tables registered .

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 694. http response codes
Code Message Datatype

200

OK

List[[GetSurveyResponse]]

===== Samples

=== TaxComponents

==== POST /taxes/component

Operation Id

createTaxCompoent

Create a new Tax Component

===== Description

Creates a new Tax Component Mandatory Fields: name, percentage Optional Fields: debitAccountType, debitAcountId, creditAccountType, creditAcountId, startDate

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostTaxesComponentsRequest

[PostTaxesComponentsRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 695. http response codes
Code Message Datatype

200

OK

[PostTaxesComponentsResponse]

===== Samples

==== GET /taxes/component

Operation Id

retrieveAllTaxComponents

List Tax Components

===== Description

List Tax Components

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 696. http response codes
Code Message Datatype

200

OK

List[[GetTaxesComponentsResponse]]

===== Samples

==== GET /taxes/component/{taxComponentId}

Operation Id

retrieveTaxComponent

Retrieve Tax Component

===== Description

Retrieve Tax Component

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

taxComponentId

taxComponentId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 697. http response codes
Code Message Datatype

200

OK

[GetTaxesComponentsResponse]

===== Samples

==== GET /taxes/component/template

Operation Id

retrieveTemplate20

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 698. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /taxes/component/{taxComponentId}

Operation Id

updateTaxCompoent

Update Tax Component

===== Description

Updates Tax component. Debit and credit account details cannot be modified. All the future tax components would be replaced with the new percentage.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

taxComponentId

taxComponentId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutTaxesComponentsTaxComponentIdRequest

[PutTaxesComponentsTaxComponentIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 699. http response codes
Code Message Datatype

200

OK

[PutTaxesComponentsTaxComponentIdResponse]

===== Samples

=== TaxGroup

==== POST /taxes/group

Operation Id

createTaxGroup

Create a new Tax Group

===== Description

Create a new Tax Group Mandatory Fields: name and taxComponents Mandatory Fields in taxComponents: taxComponentId Optional Fields in taxComponents: id, startDate and endDate

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostTaxesGroupRequest

[PostTaxesGroupRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 700. http response codes
Code Message Datatype

200

OK

[PostTaxesGroupResponse]

===== Samples

==== GET /taxes/group

Operation Id

retrieveAllTaxGroups

List Tax Group

===== Description

List Tax Group

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 701. http response codes
Code Message Datatype

200

OK

List[[GetTaxesGroupResponse]]

===== Samples

==== GET /taxes/group/{taxGroupId}

Operation Id

retrieveTaxGroup

Retrieve Tax Group

===== Description

Retrieve Tax Group

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

taxGroupId

taxGroupId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 702. http response codes
Code Message Datatype

200

OK

[GetTaxesGroupResponse]

===== Samples

==== GET /taxes/group/template

Operation Id

retrieveTemplate21

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 703. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== PUT /taxes/group/{taxGroupId}

Operation Id

updateTaxGroup

Update Tax Group

===== Description

Updates Tax Group. Only end date can be up-datable and can insert new tax components.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

taxGroupId

taxGroupId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutTaxesGroupTaxGroupIdRequest

[PutTaxesGroupTaxGroupIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 704. http response codes
Code Message Datatype

200

OK

[PutTaxesGroupTaxGroupIdResponse]

===== Samples

=== TellerCashManagement

==== POST /tellers/{tellerId}/cashiers/{cashierId}/allocate

Operation Id

allocateCashToCashier

Allocate Cash To Cashier

===== Description

Mandatory Fields: Date, Amount, Currency, Notes/Comments

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostTellersTellerIdCashiersCashierIdAllocateRequest

[PostTellersTellerIdCashiersCashierIdAllocateRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 705. http response codes
Code Message Datatype

200

OK

[PostTellersTellerIdCashiersCashierIdAllocateResponse]

===== Samples

==== POST /tellers/{tellerId}/cashiers

Operation Id

createCashier

Create Cashiers

===== Description

Mandatory Fields: Cashier/staff, Fromm Date, To Date, Full Day or From time and To time Optional Fields: Description/Notes

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostTellersTellerIdCashiersRequest

[PostTellersTellerIdCashiersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 706. http response codes
Code Message Datatype

200

OK

[PostTellersTellerIdCashiersResponse]

===== Samples

==== POST /tellers

Operation Id

createTeller

Create teller

===== Description

Mandatory Fields Teller name, OfficeId, Description, Start Date, Status Optional Fields End Date

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostTellersRequest

[PostTellersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 707. http response codes
Code Message Datatype

200

OK

[PostTellersResponse]

===== Samples

==== DELETE /tellers/{tellerId}/cashiers/{cashierId}

Operation Id

deleteCashier

Delete Cashier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 708. http response codes
Code Message Datatype

200

OK

[DeleteTellersTellerIdCashiersCashierIdResponse]

===== Samples

==== DELETE /tellers/{tellerId}

Operation Id

deleteTeller

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 709. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /tellers/{tellerId}/cashiers/{cashierId}

Operation Id

findCashierData

Retrieve a cashier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 710. http response codes
Code Message Datatype

200

OK

[GetTellersTellerIdCashiersCashierIdResponse]

===== Samples

==== GET /tellers/{tellerId}

Operation Id

findTeller

Retrieve tellers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 711. http response codes
Code Message Datatype

200

OK

[GetTellersResponse]

===== Samples

==== GET /tellers/{tellerId}/transactions/{transactionId}

Operation Id

findTransactionData

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

transactionId

transactionId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 712. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /tellers/{tellerId}/cashiers

Operation Id

getCashierData1

List Cashiers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

====== Query Parameters

Name Description Required Default Pattern

fromdate

fromdate

-

null

todate

todate

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 713. http response codes
Code Message Datatype

200

OK

[GetTellersTellerIdCashiersResponse]

===== Samples

==== GET /tellers/{tellerId}/cashiers/template

Operation Id

getCashierTemplate

Find Cashiers

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 714. http response codes
Code Message Datatype

200

OK

[GetTellersTellerIdCashiersTemplateResponse]

===== Samples

==== GET /tellers/{tellerId}/cashiers/{cashierId}/transactions/template

Operation Id

getCashierTxnTemplate

Retrieve Cashier Transaction Template

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 715. http response codes
Code Message Datatype

200

OK

[GetTellersTellerIdCashiersCashiersIdTransactionsTemplateResponse]

===== Samples

==== GET /tellers/{tellerId}/journals

Operation Id

getJournalData

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

====== Query Parameters

Name Description Required Default Pattern

cashierId

cashierId

-

null

dateRange

dateRange

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 716. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /tellers

Operation Id

getTellerData

List all tellers

===== Description

Retrieves list tellers

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

officeId

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 717. http response codes
Code Message Datatype

200

OK

List[[GetTellersResponse]]

===== Samples

==== GET /tellers/{tellerId}/transactions

Operation Id

getTransactionData

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

====== Query Parameters

Name Description Required Default Pattern

dateRange

dateRange

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 718. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /tellers/{tellerId}/cashiers/{cashierId}/transactions

Operation Id

getTransactionsForCashier

Retrieve Cashier Transaction

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

====== Query Parameters

Name Description Required Default Pattern

currencyCode

currencyCode

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 719. http response codes
Code Message Datatype

200

OK

List[[GetTellersTellerIdCashiersCashiersIdTransactionsResponse]]

===== Samples

==== GET /tellers/{tellerId}/cashiers/{cashierId}/summaryandtransactions

Operation Id

getTransactionsWtihSummaryForCashier

Transactions Wtih Summary For Cashier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

====== Query Parameters

Name Description Required Default Pattern

currencyCode

currencyCode

-

null

offset

offset

-

null

limit

limit

-

null

orderBy

orderBy

-

null

sortOrder

sortOrder

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 720. http response codes
Code Message Datatype

200

OK

[GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse]

===== Samples

==== POST /tellers/{tellerId}/cashiers/{cashierId}/settle

Operation Id

settleCashFromCashier

Settle Cash From Cashier

===== Description

Mandatory Fields Date, Amount, Currency, Notes/Comments

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

====== Body Parameter

Name Description Required Default Pattern

PostTellersTellerIdCashiersCashierIdSettleRequest

[PostTellersTellerIdCashiersCashierIdSettleRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 721. http response codes
Code Message Datatype

200

OK

[PostTellersTellerIdCashiersCashierIdSettleResponse]

===== Samples

==== PUT /tellers/{tellerId}/cashiers/{cashierId}

Operation Id

updateCashier

Update Cashier

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

cashierId

cashierId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutTellersTellerIdCashiersCashierIdRequest

[PutTellersTellerIdCashiersCashierIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 722. http response codes
Code Message Datatype

200

OK

[PutTellersTellerIdCashiersCashierIdResponse]

===== Samples

==== PUT /tellers/{tellerId}

Operation Id

updateTeller

Update teller

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

tellerId

tellerId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutTellersRequest

[PutTellersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 723. http response codes
Code Message Datatype

200

OK

[PutTellersResponse]

===== Samples

=== TwoFactor

==== GET /twofactor

Operation Id

getOTPDeliveryMethods

===== Description

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 724. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /twofactor

Operation Id

requestToken

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

deliveryMethod

-

null

extendedToken

-

false

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 725. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /twofactor/invalidate

Operation Id

updateConfiguration2

===== Description

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 726. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /twofactor/validate

Operation Id

validate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

token

-

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 727. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

=== UserGeneratedDocuments

==== POST /templates

Operation Id

createTemplate

Add a UGD

===== Description

Adds a new UGD. Mandatory Fields name Example Requests: templates/1

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostTemplatesRequest

[PostTemplatesRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 728. http response codes
Code Message Datatype

200

OK

[PostTemplatesResponse]

===== Samples

==== DELETE /templates/{templateId}

Operation Id

deleteTemplate

Delete a UGD

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

templateId

templateId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 729. http response codes
Code Message Datatype

200

OK

[DeleteTemplatesTemplateIdResponse]

===== Samples

==== GET /templates/{templateId}/template

Operation Id

getTemplateByTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

templateId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 730. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== POST /templates/{templateId}

Operation Id

mergeTemplate

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

templateId

X

null

====== Body Parameter

Name Description Required Default Pattern

body

[string]

-

===== Return Type

===== Content Type

  • text/html

===== Responses

Table 731. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /templates

Operation Id

retrieveAll40

Retrieve all UGDs

===== Description

Example Requests: templates It is also possible to get specific UGDs by entity and type: templates?type=0&entity=0 [Entity: Id] client: 0, loan: 1 [Type: Id] Document: 0, E-Mail (not yet): 1, SMS: 2

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

typeId

typeId

-

-1

entityId

entityId

-

-1

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 732. http response codes
Code Message Datatype

200

OK

[GetTemplatesResponse]

===== Samples

==== GET /templates/{templateId}

Operation Id

retrieveOne28

Retrieve a UGD

===== Description

Example Requests: templates/1

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

templateId

templateId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 733. http response codes
Code Message Datatype

200

OK

[GetTemplatesTemplateIdResponse]

===== Samples

==== PUT /templates/{templateId}

Operation Id

saveTemplate

Update a UGD

===== Description

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

templateId

templateId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutTemplatesTemplateIdRequest

[PutTemplatesTemplateIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 734. http response codes
Code Message Datatype

200

OK

[PutTemplatesTemplateIdResponse]

===== Samples

==== GET /templates/template

Operation Id

template20

Retrieve UGD Details Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for UGDs. The UGD data returned consists of any or all of: ARGUMENTS name String entity String type String text String optional mappers Mapper optional Example Request: templates/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 735. http response codes
Code Message Datatype

200

OK

[GetTemplatesTemplateResponse]

===== Samples

=== Users

==== POST /users

Operation Id

create15

Create a User

===== Description

Adds new application user. Note: Password information is not required (or processed). Password details at present are auto-generated and then sent to the email account given (which is why it can take a few seconds to complete). Mandatory Fields: username, firstname, lastname, email, officeId, roles, sendPasswordToEmail Optional Fields: staffId,passwordNeverExpires,isSelfServiceUser,clients

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PostUsersRequest

[PostUsersRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 736. http response codes
Code Message Datatype

200

OK

[PostUsersResponse]

===== Samples

==== DELETE /users/{userId}

Operation Id

delete21

Delete a User

===== Description

Removes the user and the associated roles and permissions.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

userId

userId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 737. http response codes
Code Message Datatype

200

OK

[DeleteUsersUserIdResponse]

===== Samples

==== GET /users/downloadtemplate

Operation Id

getUserTemplate

===== Description

===== Parameters

====== Query Parameters

Name Description Required Default Pattern

officeId

-

null

staffId

-

null

dateFormat

-

null

===== Return Type

-

===== Content Type

  • application/vnd.ms-excel

===== Responses

Table 738. http response codes
Code Message Datatype

0

default response

<<>>

===== Samples

==== POST /users/uploadtemplate

Operation Id

postUsersTemplate

===== Description

===== Parameters

====== Form Parameters

Name Description Required Default Pattern

dateFormat

[string]

-

null

locale

[string]

-

null

uploadedInputStream

[file]

-

null

===== Return Type

===== Content Type

  • /

===== Responses

Table 739. http response codes
Code Message Datatype

0

default response

[String]

===== Samples

==== GET /users

Operation Id

retrieveAll41

Retrieve list of users

===== Description

Example Requests: users users?fields=id,username,email,officeName

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 740. http response codes
Code Message Datatype

200

OK

List[[GetUsersResponse]]

===== Samples

==== GET /users/{userId}

Operation Id

retrieveOne29

Retrieve a User

===== Description

Example Requests: users/1 users/1?template=true users/1?fields=username,officeName

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

userId

userId

X

null

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 741. http response codes
Code Message Datatype

200

OK

[GetUsersUserIdResponse]

===== Samples

==== GET /users/template

Operation Id

template22

Retrieve User Details Template

===== Description

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 Request: users/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 742. http response codes
Code Message Datatype

200

OK

[GetUsersTemplateResponse]

===== Samples

==== PUT /users/{userId}

Operation Id

update24

Update a User

===== Description

When updating a password you must provide the repeatPassword parameter also.

===== Parameters

====== Path Parameters

Name Description Required Default Pattern

userId

userId

X

null

====== Body Parameter

Name Description Required Default Pattern

PutUsersUserIdRequest

[PutUsersUserIdRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 743. http response codes
Code Message Datatype

200

OK

[PutUsersUserIdResponse]

===== Samples

=== WorkingDays

==== GET /workingdays

Operation Id

retrieveAll17

List Working days

===== Description

Example Requests: workingdays

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 744. http response codes
Code Message Datatype

200

OK

List[[GetWorkingDaysResponse]]

===== Samples

==== GET /workingdays/template

Operation Id

template4

Working Days Template

===== Description

This is a convenience resource. It can be useful when building maintenance user interface screens for working days. Example Request: workingdays/template

===== Parameters

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 745. http response codes
Code Message Datatype

200

OK

[GetWorkingDaysTemplateResponse]

===== Samples

==== PUT /workingdays

Operation Id

update8

Update a Working Day

===== Description

Mandatory Fields recurrence,repaymentRescheduleType,extendTermForDailyRepayments,locale

===== Parameters

====== Body Parameter

Name Description Required Default Pattern

PutWorkingDaysRequest

[PutWorkingDaysRequest]

X

===== Return Type

===== Content Type

  • application/json

===== Responses

Table 746. http response codes
Code Message Datatype

200

OK

[PutWorkingDaysResponse]

===== Samples

== Models

=== AccountTransferData

Field Name Required Type Description Format

currency

CurrencyData

fromAccount

PortfolioAccountData

fromAccountOptions

List of [PortfolioAccountData]

fromAccountType

EnumOptionData

fromAccountTypeOptions

List of [EnumOptionData]

fromClient

ClientData

fromClientOptions

List of [ClientData]

fromOffice

OfficeData

fromOfficeOptions

List of [OfficeData]

id

Long

int64

reversed

Boolean

toAccount

PortfolioAccountData

toAccountOptions

List of [PortfolioAccountData]

toAccountType

EnumOptionData

toAccountTypeOptions

List of [EnumOptionData]

toClient

ClientData

toClientOptions

List of [ClientData]

toOffice

OfficeData

toOfficeOptions

List of [OfficeData]

transferAmount

BigDecimal

transferDate

date

date

transferDescription

String

=== AccountingRuleData

Field Name Required Type Description Format

allowMultipleCreditEntries

Boolean

allowMultipleDebitEntries

Boolean

allowedAccounts

List of [GLAccountData]

allowedCreditTagOptions

List of [CodeValueData]

allowedDebitTagOptions

List of [CodeValueData]

allowedOffices

List of [OfficeData]

creditAccounts

List of [GLAccountDataForLookup]

creditTags

List of [AccountingTagRuleData]

debitAccounts

List of [GLAccountDataForLookup]

debitTags

List of [AccountingTagRuleData]

description

String

id

Long

int64

name

String

officeId

Long

int64

officeName

String

systemDefined

Boolean

=== AccountingTagRuleData

Field Name Required Type Description Format

id

Long

int64

tag

CodeValueData

transactionType

EnumOptionData

=== AllowAttributeOverrides

Field Name Required Type Description Format

amortizationType

Boolean

graceOnArrearsAgeing

Boolean

graceOnPrincipalAndInterestPayment

Boolean

inArrearsTolerance

Boolean

interestCalculationPeriodType

Boolean

interestType

Boolean

repaymentEvery

Boolean

transactionProcessingStrategyCode

Boolean

=== AppUser

Field Name Required Type Description Format

accountNonExpired

Boolean

accountNonLocked

Boolean

appUserClientMappings

Set of [AppUserClientMapping]

authorities

List of [GrantedAuthority]

credentialsNonExpired

Boolean

deleted

Boolean

displayName

String

email

String

enabled

Boolean

firstname

String

id

Long

int64

lastTimePasswordUpdated

date

date

lastname

String

new

Boolean

notEnabled

Boolean

office

Office

password

String

passwordNeverExpires

Boolean

roles

Set of [Role]

selfServiceUser

Boolean

staff

Staff

staffDisplayName

String

staffId

Long

int64

systemUser

Boolean

username

String

=== AppUserClientMapping

Field Name Required Type Description Format

appUser

AppUser

client

Client

id

Long

int64

new

Boolean

=== AppUserData

Field Name Required Type Description Format

clients

Set of [ClientData]

rowIndex

Integer

int32

selfServiceUser

Boolean

=== BatchRequest

Field Name Required Type Description Format

body

String

headers

Set of [Header]

method

String

reference

Long

int64

relativeUrl

String

requestId

Long

int64

=== BatchResponse

Field Name Required Type Description Format

body

String

headers

Set of [Header]

requestId

Long

int64

statusCode

Integer

int32

=== BodyPart

Field Name Required Type Description Format

contentDisposition

ContentDisposition

entity

Object

headers

Map of [array]

mediaType

BodyPart_mediaType

messageBodyWorkers

Object

parameterizedHeaders

Map of [array]

parent

MultiPart

providers

Object

=== BodyPartMediaType

Field Name Required Type Description Format

parameters

Map of [string]

subtype

String

type

String

wildcardSubtype

Boolean

wildcardType

Boolean

=== BusinessDateRequest

BusinessDateRequest

Field Name Required Type Description Format

date

String

dateFormat

String

locale

String

type

String

=== BusinessDateResponse

BusinessDateResponse

Field Name Required Type Description Format

date

date

date

description

String

type

String

=== BusinessStep

BusinessStep

Field Name Required Type Description Format

order

Long

int64

stepName

String

=== CalendarData

Field Name Required Type Description Format

calendarInstanceId

Long

int64

calendarTypeOptions

List of [EnumOptionData]

centerId

String

createdByUserId

Long

int64

createdByUsername

String

createdDate

Date

date-time

dateFormat

String

description

String

duration

Integer

int32

endDate

date

date

entityId

Long

int64

entityType

EnumOptionData

entityTypeOptions

List of [EnumOptionData]

firstReminder

Integer

int32

frequency

EnumOptionData

frequencyNthDayTypeOptions

List of [EnumOptionData]

frequencyOptions

List of [EnumOptionData]

humanReadable

String

id

Long

int64

interval

Integer

int32

lastUpdatedByUserId

Long

int64

lastUpdatedByUsername

String

lastUpdatedDate

Date

date-time

locale

String

location

String

meetingTime

LocalTime

nextTenRecurringDates

List of [date]

date

recentEligibleMeetingDate

date

date

recurrence

String

recurringDates

List of [date]

date

remindBy

EnumOptionData

remindByOptions

List of [EnumOptionData]

repeating

Boolean

repeatsOnDay

EnumOptionData

repeatsOnDayOfMonth

Integer

int32

repeatsOnDayOptions

List of [EnumOptionData]

repeatsOnNthDayOfMonth

EnumOptionData

rowIndex

Integer

int32

secondReminder

Integer

int32

startDate

date

date

title

String

type

EnumOptionData

typeId

String

=== CashierData

Field Name Required Type Description Format

description

String

endDate

date

date

endTime

String

fullDay

Boolean

id

Long

int64

officeId

Long

int64

officeName

String

staffId

Long

int64

staffName

String

startDate

date

date

startTime

String

tellerId

Long

int64

tellerName

String

=== CashierTransactionData

Field Name Required Type Description Format

cashierData

CashierData

cashierId

Long

int64

cashierName

String

createdDate

Date

date-time

endDate

date

date

entityId

Long

int64

entityType

String

id

Long

int64

officeId

Long

int64

officeName

String

startDate

date

date

tellerId

Long

int64

tellerName

String

txnAmount

BigDecimal

txnDate

date

date

txnNote

String

txnType

CashierTxnType

=== CashierTxnType

Field Name Required Type Description Format

id

Integer

int32

value

String

=== CenterData

Field Name Required Type Description Format

accountNo

String

collectionMeetingCalendar

CalendarData

datatables

List of [DatatableData]

hierarchy

String

id

Long

int64

name

String

officeName

String

rowIndex

Integer

int32

staffName

String

=== ChangeInstanceModeRequest

ChangeInstanceModeRequest

Field Name Required Type Description Format

batchManagerEnabled

X

Boolean

batchWorkerEnabled

X

Boolean

readEnabled

X

Boolean

writeEnabled

X

Boolean

=== Changes

Field Name Required Type Description Format

amount

String

=== Charge

Field Name Required Type Description Format

account

GLAccount

active

Boolean

allowedClientChargeCalculationType

Boolean

allowedClientChargeTime

Boolean

allowedLoanChargeTime

Boolean

allowedSavingsChargeCalculationType

Boolean

allowedSavingsChargeTime

Boolean

amount

BigDecimal

annualFee

Boolean

chargeCalculation

Integer

int32

chargePaymentMode

Integer

int32

chargeTimeType

Integer

int32

clientCharge

Boolean

currencyCode

String

deleted

Boolean

disbursementCharge

Boolean

enableFreeWithdrawal

Boolean

enablePaymentType

Boolean

feeInterval

Integer

int32

feeOnMonthDay

Charge_feeOnMonthDay

frequencyFreeWithdrawalCharge

Integer

int32

id

Long

int64

incomeAccountId

Long

int64

loanCharge

Boolean

maxCap

BigDecimal

minCap

BigDecimal

monthlyFee

Boolean

name

String

new

Boolean

overdueInstallment

Boolean

paymentType

PaymentType

penalty

Boolean

percentageOfApprovedAmount

Boolean

percentageOfDisbursementAmount

Boolean

restartFrequency

Integer

int32

restartFrequencyEnum

Integer

int32

savingsCharge

Boolean

taxGroup

TaxGroup

=== ChargeData

Field Name Required Type Description Format

id

Long

int64

=== ChargeFeeOnMonthDay

Field Name Required Type Description Format

dayOfMonth

Integer

int32

month

String

Enum: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER,

monthValue

Integer

int32

=== ChargeToGLAccountMapper

Field Name Required Type Description Format

charge

ChargeData

incomeAccount

GLAccountData

=== Client

Field Name Required Type Description Format

accountNumberRequiresAutoGeneration

Boolean

activationLocalDate

date

date

active

Boolean

closed

Boolean

closureDate

date

date

createdBy

Long

int64

createdDate

Date

date-time

displayName

String

emailAddress

String

externalId

String

firstname

String

groups

Set of [Group]

id

Long

int64

image

Image

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

lastname

String

legalForm

Integer

int32

middlename

String

mobileNo

String

new

Boolean

notActive

Boolean

notPending

Boolean

notStaff

Boolean

office

Office

officeJoiningLocalDate

date

date

pending

Boolean

proposedTransferDate

date

date

rejected

Boolean

rejectedDate

date

date

reopenedDate

date

date

staff

Staff

status

Integer

int32

submittedOnDate

date

date

transferInProgress

Boolean

transferInProgressOrOnHold

Boolean

transferOnHold

Boolean

transferToOffice

Office

withdrawalDate

date

date

withdrawn

Boolean

=== ClientCollateralManagementData

Field Name Required Type Description Format

id

Long

int64

name

String

pctToBase

BigDecimal

quantity

BigDecimal

total

BigDecimal

totalCollateral

BigDecimal

unitPrice

BigDecimal

=== ClientData

Field Name Required Type Description Format

accountNo

String

activationDate

date

date

active

Boolean

address

List of [object]

clientClassification

CodeValueData

clientClassificationId

Long

int64

clientClassificationOptions

List of [CodeValueData]

clientCollateralManagements

Set of [ClientCollateralManagementData]

clientLegalFormOptions

List of [EnumOptionData]

clientNonPersonConstitutionOptions

List of [CodeValueData]

clientNonPersonDetails

Object

clientNonPersonMainBusinessLineOptions

List of [CodeValueData]

clientType

CodeValueData

clientTypeId

Long

int64

clientTypeOptions

List of [CodeValueData]

datatables

List of [DatatableData]

dateFormat

String

dateOfBirth

date

date

displayName

String

emailAddress

String

externalId

String

familyMemberOptions

ClientFamilyMembersData

firstname

String

fullname

String

gender

CodeValueData

genderId

Long

int64

genderOptions

List of [CodeValueData]

groups

List of [GroupGeneralData]

id

Long

int64

imageId

Long

int64

imagePresent

Boolean

isAddressEnabled

Boolean

isStaff

Boolean

lastname

String

legalForm

EnumOptionData

legalFormId

Long

int64

locale

String

middlename

String

mobileNo

String

narrations

List of [CodeValueData]

officeId

Long

int64

officeName

String

officeOptions

List of [OfficeData]

rowIndex

Integer

int32

savingAccountOptions

List of [SavingsAccountData]

savingProductOptions

List of [SavingsProductData]

savingsAccountId

Long

int64

savingsProductId

Long

int64

savingsProductName

String

staffId

Long

int64

staffName

String

staffOptions

List of [StaffData]

status

EnumOptionData

subStatus

CodeValueData

submittedOnDate

date

date

timeline

ClientTimelineData

transferToOfficeId

Long

int64

transferToOfficeName

String

=== ClientFamilyMembersData

Field Name Required Type Description Format

age

Long

int64

clientId

Long

int64

dateOfBirth

date

date

firstName

String

gender

String

genderId

Long

int64

id

Long

int64

isDependent

Boolean

lastName

String

maritalStatus

String

maritalStatusId

Long

int64

middleName

String

mobileNumber

String

profession

String

professionId

Long

int64

qualification

String

relationship

String

relationshipId

Long

int64

=== ClientTimelineData

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

closedByFirstname

String

closedByLastname

String

closedByUsername

String

closedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== Code

Field Name Required Type Description Format

id

Long

int64

name

String

new

Boolean

systemDefined

Boolean

values

Set of [CodeValue]

=== CodeValue

Field Name Required Type Description Format

active

Boolean

code

Code

description

String

id

Long

int64

label

String

mandatory

Boolean

new

Boolean

position

Integer

int32

=== CodeValueData

Field Name Required Type Description Format

active

Boolean

description

String

id

Long

int64

mandatory

Boolean

name

String

position

Integer

int32

=== CommandProcessingResult

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

transactionId

String

=== CommandWrapper

Field Name Required Type Description Format

cacheResource

Boolean

clientId

Long

int64

create

Boolean

createDatatable

Boolean

creditBureauId

Long

int64

currencyResource

Boolean

datatableResource

Boolean

delete

Boolean

deleteDatatable

Boolean

deleteMultiple

Boolean

deleteOneToOne

Boolean

deleteOperation

Boolean

entityId

Long

int64

entityName

String

fullFilSurvey

Boolean

groupId

Long

int64

href

String

idempotencyKey

String

jobName

String

json

String

loanDisburseDetailResource

Boolean

loanId

Long

int64

noteResource

Boolean

organisationCreditBureauId

Long

int64

passwordPreferencesResource

Boolean

permissionResource

Boolean

productId

Long

int64

registerDatatable

Boolean

registerSurvey

Boolean

savingsId

Long

int64

subentityId

Long

int64

surveyResource

Boolean

taskPermissionName

String

transactionId

String

update

Boolean

updateDatatable

Boolean

updateDisbursementDate

Boolean

updateMultiple

Boolean

updateOneToOne

Boolean

updateOperation

Boolean

userResource

Boolean

workingDaysResource

Boolean

=== Component

Field Name Required Type Description Format

description

String

id

Long

int64

key

String

new

Boolean

sequenceNo

Integer

int32

survey

Survey

text

String

=== ComponentData

Field Name Required Type Description Format

description

String

id

Long

int64

key

String

sequenceNo

Integer

int32

text

String

=== ContentDisposition

Field Name Required Type Description Format

creationDate

Date

date-time

fileName

String

modificationDate

Date

date-time

parameters

Map of [string]

readDate

Date

date-time

size

Long

int64

type

String

=== CreateStaffResponse

PostStaffResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== CreditDebit

Field Name Required Type Description Format

amount

BigDecimal

glAccountId

Long

int64

=== CurrencyData

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== DatatableData

Field Name Required Type Description Format

registeredTableName

String

=== DeleteAccountNumberFormatsResponse

DeleteAccountNumberFormatsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteAccountingRulesResponse

DeleteAccountingRulesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteCentersCenterIdResponse

DeleteCentersCenterIdResponse

Field Name Required Type Description Format

changes

Object

resourceId

Integer

int32

=== DeleteChargesChargeIdResponse

DeleteChargesChargeIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteClientCollateralResponse

DeleteClientCollateralResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteClientsClientIdChargesChargeIdResponse

DeleteClientsClientIdChargesChargeIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteClientsClientIdIdentifiersIdentifierIdResponse

DeleteClientsClientIdIdentifiersIdentifierIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteClientsClientIdResponse

DeleteClientsClientIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteCodeValueDataResponse

DeleteCodeValueDataResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteCodesResponse

DeleteCodesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteCollateralProductResponse

DeleteCollateralProductResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteDataTablesDatatableAppTableIdDatatableIdResponse

DeleteDataTablesDatatableAppTableIdDatatableIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteDataTablesDatatableAppTableIdResponse

DeleteDataTablesDatatableAppTableIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteDataTablesResponse

DeleteDataTablesResponse

Field Name Required Type Description Format

resourceIdentifier

String

=== DeleteDelinquencyBucketResponse

DeleteDelinquencyBucketResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteDelinquencyRangeResponse

DeleteDelinquencyRangeResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteEntityDatatableChecksTemplateResponse

DeleteEntityDatatableChecksTemplateResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteEntityTypeEntityIdDocumentsResponse

DeleteEntityTypeEntityIdDocumentsResponse

Field Name Required Type Description Format

changes

Object

resourceId

Long

int64

resourceIdentifier

String

=== DeleteFinancialActivityAccountsResponse

DeleteFinancialActivityAccountsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteFixedDepositAccountsAccountIdResponse

DeleteFixedDepositAccountsAccountIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteFixedDepositProductsProductIdResponse

DeleteFixedDepositProductsProductIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteGLAccountsRequest

DeleteGLAccountsRequest

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteGlClosuresResponse

DeleteGlClosuresResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== DeleteGroupsGroupIdResponse

DeleteGroupsGroupIdResponse

Field Name Required Type Description Format

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteHolidaysHolidayIdResponse

DeleteHolidaysHolidayIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteHookResponse

DeleteHookResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteInterestRateChartsChartIdChartSlabsResponse

DeleteInterestRateChartsChartIdChartSlabsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteInterestRateChartsChartIdResponse

DeleteInterestRateChartsChartIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteLoansLoanIdChargesChargeIdResponse

DeleteLoansLoanIdChargesChargeIdResponse

Field Name Required Type Description Format

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Integer

int32

=== DeleteLoansLoanIdCollateralsCollateralIdResponse

DeleteLoansLoanIdCollateralsCollateralIdResponse

Field Name Required Type Description Format

loanId

Integer

int32

resourceId

Integer

int32

=== DeleteLoansLoanIdResponse

DeleteLoansLoanIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeletePaymentTypesPaymentTypeIdResponse

DeletePaymentTypesPaymentTypeIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeletePostDatedCheck

DeletePostDatedCheck

Field Name Required Type Description Format

loanId

Long

int64

resourceId

Long

int64

=== DeleteProvisioningCriteriaResponse

DeleteProvisioningCriteriaResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteRecurringDepositAccountsResponse

DeleteRecurringDepositAccountsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteRecurringDepositProductsProductIdResponse

DeleteRecurringDepositProductsProductIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteReportMailingJobsResponse

DeleteReportMailingJobsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteReportsResponse

DeleteReportsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteResourceTypeResourceIdNotesNoteIdResponse

DeleteResourceTypeResourceIdNotesNoteIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteRolesRoleIdResponse

DeleteRolesRoleIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteSavingsAccountsAccountIdResponse

DeleteSavingsAccountsAccountIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== DeleteSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

DeleteSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== DeleteSavingsProductsProductIdResponse

DeleteSavingsProductsProductIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteSelfBeneficiariesTPTBeneficiaryIdResponse

DeleteSelfBeneficiariesTPTBeneficiaryIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== DeleteTellersTellerIdCashiersCashierIdResponse

DeleteTellersTellerIdCashiersCashierIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteTemplatesTemplateIdResponse

DeleteTemplatesTemplateIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== DeleteUsersUserIdResponse

DeleteUsersUserIdResponse

Field Name Required Type Description Format

changes

Object

officeId

Long

int64

resourceId

Long

int64

=== DelinquencyBucket

Field Name Required Type Description Format

createdBy

Long

int64

createdDate

Date

date-time

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

name

String

new

Boolean

ranges

List of [DelinquencyRange]

version

Long

int64

=== DelinquencyBucketData

Field Name Required Type Description Format

id

Long

int64

name

String

ranges

List of [DelinquencyRangeData]

=== DelinquencyRange

Field Name Required Type Description Format

classification

String

createdBy

Long

int64

createdDate

Date

date-time

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

maximumAgeDays

Integer

int32

minimumAgeDays

Integer

int32

new

Boolean

version

Long

int64

=== DelinquencyRangeData

Field Name Required Type Description Format

classification

String

id

Long

int64

maximumAgeDays

Integer

int32

minimumAgeDays

Integer

int32

=== Entity

Field Name Required Type Description Format

actions

List of [string]

name

String

=== EnumOptionData

Field Name Required Type Description Format

code

String

id

Long

int64

value

String

=== Event

Field Name Required Type Description Format

actionName

String

entityName

String

=== ExtensionData

Field Name Required Type Description Format

key

X

String

value

String

=== ExternalEventConfigurationItemData

Field Name Required Type Description Format

enabled

Boolean

type

String

=== ExternalServicesPropertiesData

Field Name Required Type Description Format

name

String

value

String

=== Field

Field Name Required Type Description Format

fieldName

String

fieldType

String

fieldValue

String

optional

Boolean

placeholder

String

=== FinancialActivityData

Field Name Required Type Description Format

id

Integer

int32

mappedGLAccountType

String

Enum: ASSET, LIABILITY, EQUITY, INCOME, EXPENSE,

name

String

=== FloatingRate

Field Name Required Type Description Format

active

Boolean

baseLendingRate

Boolean

createdBy

Long

int64

createdDate

Date

date-time

floatingRatePeriods

List of [FloatingRatePeriod]

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

name

String

new

Boolean

=== FloatingRateData

Field Name Required Type Description Format

active

Boolean

baseLendingRate

Boolean

createdBy

String

createdOn

Date

date-time

id

Long

int64

modifiedBy

String

modifiedOn

Date

date-time

name

String

ratePeriods

List of [FloatingRatePeriodData]

=== FloatingRatePeriod

Field Name Required Type Description Format

active

Boolean

createdBy

Long

int64

createdDate

Date

date-time

differentialToBaseLendingRate

Boolean

floatingRate

FloatingRate

fromDate

date

date

id

Long

int64

interestRate

BigDecimal

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

new

Boolean

=== FloatingRatePeriodData

Field Name Required Type Description Format

active

Boolean

createdBy

String

createdOn

Date

date-time

differentialToBaseLendingRate

Boolean

fromDate

date

date

fromDateAsLocalDate

date

date

id

Long

int64

interestRate

BigDecimal

modifiedBy

String

modifiedOn

Date

date-time

=== FormDataBodyPart

Field Name Required Type Description Format

contentDisposition

ContentDisposition

entity

Object

formDataContentDisposition

FormDataContentDisposition

headers

Map of [array]

mediaType

BodyPart_mediaType

messageBodyWorkers

Object

name

String

parameterizedHeaders

Map of [array]

parent

MultiPart

providers

Object

simple

Boolean

value

String

=== FormDataContentDisposition

Field Name Required Type Description Format

creationDate

Date

date-time

fileName

String

modificationDate

Date

date-time

name

String

parameters

Map of [string]

readDate

Date

date-time

size

Long

int64

type

String

=== FundData

Field Name Required Type Description Format

id

Long

int64

name

String

=== GLAccount

Field Name Required Type Description Format

children

List of [GLAccount]

description

String

detailAccount

Boolean

disabled

Boolean

glCode

String

headerAccount

Boolean

hierarchy

String

id

Long

int64

manualEntriesAllowed

Boolean

name

String

new

Boolean

parent

GLAccount

tagId

CodeValue

type

Integer

int32

usage

Integer

int32

=== GLAccountData

Field Name Required Type Description Format

accountTypeOptions

List of [EnumOptionData]

allowedAssetsTagOptions

List of [CodeValueData]

allowedEquityTagOptions

List of [CodeValueData]

allowedExpensesTagOptions

List of [CodeValueData]

allowedIncomeTagOptions

List of [CodeValueData]

allowedLiabilitiesTagOptions

List of [CodeValueData]

assetHeaderAccountOptions

List of [GLAccountData]

description

String

disabled

Boolean

equityHeaderAccountOptions

List of [GLAccountData]

expenseHeaderAccountOptions

List of [GLAccountData]

glCode

String

id

Long

int64

incomeHeaderAccountOptions

List of [GLAccountData]

liabilityHeaderAccountOptions

List of [GLAccountData]

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Long

int64

parentId

Long

int64

rowIndex

Integer

int32

tagId

CodeValueData

type

EnumOptionData

usage

EnumOptionData

usageOptions

List of [EnumOptionData]

=== GLAccountDataForLookup

Field Name Required Type Description Format

glCode

String

id

Long

int64

name

String

=== GeoCodeData

Field Name Required Type Description Format

latitude

X

String

longitude

X

String

=== GetAccountNumberFormatsIdResponse

GetAccountNumberFormatsIdResponse

Field Name Required Type Description Format

accountType

EnumOptionData

id

Long

int64

prefixType

EnumOptionData

=== GetAccountNumberFormatsResponseTemplate

GetAccountNumberFormatsResponseTemplate

Field Name Required Type Description Format

accountTypeOptions

List of [EnumOptionData]

prefixTypeOptions

Map of [array]

=== GetAccountOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountRulesResponse

GetAccountRulesResponse

Field Name Required Type Description Format

allowMultipleCreditEntries

Boolean

allowMultipleDebitEntries

Boolean

creditTags

List of [AccountingTagRuleData]

debitTags

List of [AccountingTagRuleData]

description

String

id

Long

int64

name

String

officeId

Long

int64

officeName

String

systemDefined

Boolean

=== GetAccountRulesTemplateResponse

GetAccountRulesTemplateResponse

Field Name Required Type Description Format

allowedAccounts

List of [GLAccountData]

allowedOffices

List of [OfficeData]

systemDefined

Boolean

=== GetAccountTransferTemplateResponse

GetAccountTransferTemplateResponse

Field Name Required Type Description Format

accountTypeOptions

Set of [GetAccountOptions]

fromAccountTypeOptions

Set of [GetFromAccountOptions]

toAccountTypeOptions

Set of [GetFromAccountOptions]

=== GetAccountTransfersFromAccountType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountTransfersFromAccountTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountTransfersFromClientOptions

Field Name Required Type Description Format

displayName

String

id

Integer

int32

officeId

Integer

int32

officeName

String

=== GetAccountTransfersFromOffice

Field Name Required Type Description Format

externalId

Integer

int32

hierarchy

String

id

Integer

int32

name

String

nameDecorated

String

openingDate

date

date

=== GetAccountTransfersFromOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetAccountTransfersPageItems

Field Name Required Type Description Format

currency

GetAccountTransfersPageItemsCurrency

fromAccount

GetAccountTransfersPageItemsFromAccount

fromAccountType

GetAccountTransfersFromAccountType

fromClient

GetAccountTransfersFromClientOptions

fromOffice

GetAccountTransfersPageItemsFromOffice

id

Integer

int32

reversed

Boolean

toAccount

GetAccountTransfersPageItemsFromAccount

toAccountType

GetAccountTransfersPageItemsToAccountType

toClient

GetAccountTransfersFromClientOptions

toOffice

GetAccountTransfersPageItemsFromOffice

transferAmount

Float

float

transferDate

date

date

transferDescription

String

=== GetAccountTransfersPageItemsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetAccountTransfersPageItemsFromAccount

Field Name Required Type Description Format

accountNo

Long

int64

id

Integer

int32

=== GetAccountTransfersPageItemsFromOffice

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetAccountTransfersPageItemsToAccountType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountTransfersResponse

GetAccountTransfersResponse

Field Name Required Type Description Format

pageItems

Set of [GetAccountTransfersPageItems]

totalFilteredRecords

Integer

int32

=== GetAccountTransfersStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountTransfersTemplateRefundByTransferCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetAccountTransfersTemplateRefundByTransferFromAccount

Field Name Required Type Description Format

accountNo

Long

int64

amtForTransfer

Float

float

clientId

Integer

int32

clientName

String

currency

GetAccountTransfersTemplateRefundByTransferCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

productId

Integer

int32

productName

String

=== GetAccountTransfersTemplateRefundByTransferFromAccountOptions

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetAccountTransfersTemplateRefundByTransferCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

productId

Integer

int32

productName

String

=== GetAccountTransfersTemplateRefundByTransferFromClient

Field Name Required Type Description Format

accountNo

Long

int64

activationDate

date

date

active

Boolean

clientClassification

Object

clientType

Object

displayName

String

firstname

String

gender

Object

groups

Object

id

Integer

int32

lastname

String

officeId

Integer

int32

officeName

String

status

GetAccountTransfersStatus

timeline

GetAccountTransfersTimeline

=== GetAccountTransfersTemplateRefundByTransferFromClientOptions

Field Name Required Type Description Format

displayName

String

id

Integer

int32

officeId

Integer

int32

officeName

String

=== GetAccountTransfersTemplateRefundByTransferFromOffice

Field Name Required Type Description Format

externalId

Integer

int32

hierarchy

String

id

Integer

int32

name

String

nameDecorated

String

openingDate

date

date

=== GetAccountTransfersTemplateRefundByTransferFromOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetAccountTransfersTemplateRefundByTransferResponse

GetAccountTransfersTemplateRefundByTransferResponse

Field Name Required Type Description Format

currency

GetAccountTransfersTemplateRefundByTransferCurrency

fromAccount

GetAccountTransfersTemplateRefundByTransferFromAccount

fromAccountOptions

Set of [GetAccountTransfersTemplateRefundByTransferFromAccountOptions]

fromAccountType

GetAccountTransfersPageItemsToAccountType

fromAccountTypeOptions

Set of [GetAccountTransfersFromAccountType]

fromClient

GetAccountTransfersTemplateRefundByTransferFromClient

fromClientOptions

Set of [GetAccountTransfersTemplateRefundByTransferFromClientOptions]

fromOffice

GetAccountTransfersTemplateRefundByTransferFromOffice

fromOfficeOptions

Set of [GetAccountTransfersTemplateRefundByTransferFromOfficeOptions]

toAccount

GetAccountTransfersTemplateRefundByTransferToAccount

toAccountOptions

Set of [GetAccountTransfersTemplateRefundByTransferToAccount]

toAccountType

GetAccountTransfersFromAccountType

toAccountTypeOptions

Set of [GetAccountTransfersFromAccountType]

toClient

GetAccountTransfersTemplateRefundByTransferToClient

toClientOptions

Set of [GetAccountTransfersTemplateRefundByTransferFromClientOptions]

toOffice

GetAccountTransfersTemplateRefundByTransferFromOffice

toOfficeOptions

Set of [GetAccountTransfersTemplateRefundByTransferFromOfficeOptions]

transferAmount

Float

float

transferDate

date

date

=== GetAccountTransfersTemplateRefundByTransferToAccount

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetAccountTransfersTemplateRefundByTransferCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

productId

Integer

int32

productName

String

=== GetAccountTransfersTemplateRefundByTransferToClient

Field Name Required Type Description Format

displayName

String

id

Integer

int32

officeId

Integer

int32

officeName

String

=== GetAccountTransfersTemplateResponse

GetAccountTransfersTemplateResponse

Field Name Required Type Description Format

fromAccountType

GetAccountTransfersFromAccountType

fromAccountTypeOptions

Set of [GetAccountTransfersFromAccountTypeOptions]

fromClientOptions

Set of [GetAccountTransfersFromClientOptions]

fromOffice

GetAccountTransfersFromOffice

fromOfficeOptions

Set of [GetAccountTransfersFromOfficeOptions]

toAccountTypeOptions

Set of [GetAccountTransfersToAccountTypeOptions]

toOfficeOptions

Set of [GetAccountTransfersToOfficeOptions]

transferAmount

Long

int64

transferDate

date

date

=== GetAccountTransfersTimeline

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetAccountTransfersToAccountTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountTransfersToOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetAccountsChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountsChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountsCharges

Field Name Required Type Description Format

accountId

Integer

int32

amount

Float

float

amountOrPercentage

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountPercentageAppliedTo

Double

double

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetAccountsChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetAccountsChargeTimeType

currency

GetAccountsChargesCurrency

id

Integer

int32

isActive

Boolean

name

String

percentage

Double

double

=== GetAccountsChargesCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetAccountsLinkedToPocketResponse

GetAccountsLinkedToPocketResponse

Field Name Required Type Description Format

loanAccounts

Set of [GetPocketLoanAccounts]

savingAccounts

Set of [GetPocketSavingAccounts]

shareAccounts

Set of [object]

=== GetAccountsLockPeriodTypeEnum

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountsPageItems

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetAccountsChargesCurrency

id

Integer

int32

productId

Integer

int32

productName

String

purchasedShares

Set of [GetAccountsTypePurchasedShares]

status

GetAccountsTypeStatus

summary

GetAccountsTypeSummary

timeline

GetAccountsTypeTimeline

=== GetAccountsPurchasedShares

Field Name Required Type Description Format

accountId

Integer

int32

amount

Double

double

amountPaid

Double

double

chargeAmount

Double

double

id

Integer

int32

numberOfShares

Integer

int32

purchasedDate

date

date

purchasedPrice

Double

double

status

GetAccountsPurchasedSharesStatus

type

GetAccountsPurchasedSharesType

=== GetAccountsPurchasedSharesStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountsPurchasedSharesType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetAccountsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

=== GetAccountsSummary

Field Name Required Type Description Format

accountNo

Long

int64

currency

GetAccountsCurrency

id

Integer

int32

productId

Integer

int32

productName

String

status

GetAccountsStatus

timeline

GetAccountsTimeline

totalApprovedShares

Integer

int32

totalPendingForApprovalShares

Integer

int32

=== GetAccountsTimeline

Field Name Required Type Description Format

activatedDate

date

date

approvedByFirstname

String

approvedByLastname

String

approvedByUsername

String

approvedDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetAccountsTypeAccountIdResponse

GetAccountsTypeAccountIdResponse

Field Name Required Type Description Format

accountNo

Long

int64

allowDividendCalculationForInactiveClients

Boolean

charges

Set of [GetAccountsCharges]

clientId

Integer

int32

clientName

String

currency

GetAccountsCurrency

currentMarketPrice

Integer

int32

dividends

List of [string]

id

Integer

int32

lockPeriodTypeEnum

GetAccountsLockPeriodTypeEnum

lockinPeriod

Integer

int32

minimumActivePeriod

Integer

int32

minimumActivePeriodTypeEnum

GetAccountsLockPeriodTypeEnum

productId

Integer

int32

productName

String

purchasedShares

Set of [GetAccountsPurchasedShares]

savingsAccountId

Integer

int32

savingsAccountNumber

Long

int64

status

GetAccountsStatus

summary

GetAccountsSummary

timeline

GetAccountsTimeline

=== GetAccountsTypeProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

shortName

String

totalShares

Long

int64

=== GetAccountsTypePurchasedShares

Field Name Required Type Description Format

id

Integer

int32

numberOfShares

Integer

int32

purchasedDate

String

purchasedPrice

Integer

int32

=== GetAccountsTypeResponse

GetAccountsTypeResponse

Field Name Required Type Description Format

pageItems

Set of [GetAccountsPageItems]

totalFilteredRecords

Integer

int32

=== GetAccountsTypeStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

=== GetAccountsTypeSummary

Field Name Required Type Description Format

currency

GetAccountsChargesCurrency

=== GetAccountsTypeTemplateResponse

GetAccountsTypeTemplateResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

productOptions

Set of [GetAccountsTypeProductOptions]

=== GetAccountsTypeTimeline

Field Name Required Type Description Format

submittedOnDate

date

date

=== GetAssetType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetBusinessJobConfigResponse

GetBusinessJobConfigResponse

Field Name Required Type Description Format

businessJobs

List of [string]

=== GetBusinessStepConfigResponse

GetBusinessStepConfigResponse

Field Name Required Type Description Format

businessSteps

List of [BusinessStep]

jobName

String

=== GetCachesResponse

GetCachesResponse

Field Name Required Type Description Format

cacheType

EnumOptionData

enabled

Boolean

=== GetCentersAccountType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetCentersCenterIdAccountsResponse

GetCentersCenterIdAccountsResponse

Field Name Required Type Description Format

savingsAccounts

Set of [GetCentersSavingsAccounts]

=== GetCentersCenterIdCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetCentersCenterIdResponse

GetCentersCenterIdResponse

Field Name Required Type Description Format

active

Boolean

hierarchy

String

id

Integer

int32

name

String

officeId

Integer

int32

officeName

String

status

GetCentersStatus

=== GetCentersCenterIdStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

prematureClosed

Boolean

rejected

Boolean

submittedAndPendingApproval

Boolean

transferInProgress

Boolean

transferOnHold

Boolean

withdrawnByApplicant

Boolean

=== GetCentersDepositType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetCentersOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetCentersPageItems

Field Name Required Type Description Format

active

Boolean

hierarchy

String

id

Integer

int32

name

String

officeId

Integer

int32

officeName

String

status

GetCentersStatus

=== GetCentersResponse

GetCentersResponse

Field Name Required Type Description Format

pageItems

Set of [GetCentersPageItems]

totalFilteredRecords

Integer

int32

=== GetCentersSavingsAccounts

Field Name Required Type Description Format

accountNo

Long

int64

accountType

GetCentersAccountType

currency

GetCentersCenterIdCurrency

depositType

GetCentersDepositType

id

Integer

int32

productId

Integer

int32

productName

String

status

GetCentersCenterIdStatus

timeline

GetCentersTimeline

=== GetCentersStaffOptions

Field Name Required Type Description Format

displayName

String

id

Integer

int32

=== GetCentersStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetCentersTemplateResponse

GetCentersTemplateResponse

Field Name Required Type Description Format

activationDate

date

date

active

Boolean

officeId

Integer

int32

officeOptions

Set of [GetCentersOfficeOptions]

staffOptions

Set of [GetCentersStaffOptions]

=== GetCentersTimeline

Field Name Required Type Description Format

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetChargeAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargePaymentMode

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesAppliesToResponse

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesCalculationTypeResponse

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetChargesCurrencyResponse

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetChargesPaymentModeResponse

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesResponse

GetChargesResponse

Field Name Required Type Description Format

active

String

amount

Float

float

chargeAppliesTo

GetChargesAppliesToResponse

chargeCalculationType

GetChargesCalculationTypeResponse

chargePaymentMode

GetChargesPaymentModeResponse

chargeTimeType

GetChargesTimeTypeResponse

currency

GetChargesCurrencyResponse

id

Long

int64

name

String

penalty

String

=== GetChargesTemplateFeeFrequencyOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesTemplateLoanChargeCalculationTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesTemplateLoanChargeTimeTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetChargesTemplateResponse

GetChargesTemplateResponse

Field Name Required Type Description Format

active

String

chargeAppliesToOptions

Set of [GetChargesAppliesToResponse]

chargeCalculationTypeOptions

Set of [GetChargesCalculationTypeResponse]

chargePaymentModeOptions

Set of [GetChargesPaymentModeResponse]

chargeTimeTypeOptions

Set of [GetChargesTimeTypeResponse]

currencyOptions

Set of [GetChargesCurrencyResponse]

feeFrequencyOptions

Set of [GetChargesTemplateFeeFrequencyOptions]

loanChargeCalculationTypeOptions

Set of [GetChargesTemplateLoanChargeCalculationTypeOptions]

loanChargeTimeTypeOptions

Set of [GetChargesTemplateLoanChargeTimeTypeOptions]

penalty

String

savingsChargeCalculationTypeOptions

Set of [GetChargesTemplateLoanChargeCalculationTypeOptions]

savingsChargeTimeTypeOptions

Set of [GetChargesTemplateLoanChargeTimeTypeOptions]

=== GetChargesTimeTypeResponse

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientChargeCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetClientChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientClientIdAddressesResponse

GetClientClientIdAddressesResponse

Field Name Required Type Description Format

addressId

Integer

int32

addressLine1

String

addressLine2

String

addressLine3

String

addressType

String

addressTypeId

Integer

int32

city

String

client_id

Long

int64

countryId

Integer

int32

countryName

String

countyDistrict

String

createdBy

String

isActive

Boolean

postalCode

Long

int64

stateName

String

stateProvinceId

Integer

int32

street

String

townVillage

String

updatedBy

String

=== GetClientIdProductIdAccountingMappings

Field Name Required Type Description Format

ShareEquityId

GetShareAccountsShareEquityId

incomeFromFeeAccountId

GetShareAccountsIncomeFromFeeAccountId

shareReferenceId

GetShareAccountsShareReferenceId

shareSuspenseId

GetShareAccountsShareSuspenseId

=== GetClientIdProductIdChargeOptions

Field Name Required Type Description Format

chargeOptions

GetShareAccountsChargeOptions

=== GetClientIdProductIdLockinPeriodFrequencyTypeOptions

Field Name Required Type Description Format

code

String

description

Integer

int32

id

Integer

int32

=== GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions

Field Name Required Type Description Format

code

String

description

Integer

int32

id

Integer

int32

=== GetClientIdProductIdProductOptions

Field Name Required Type Description Format

accountingMappingOptions

Object

accountingMappings

GetClientIdProductIdAccountingMappings

accountingRule

GetShareAccountsClientIdProductIdAccountingRule

allowDividendCalculationForInactiveClients

Boolean

chargeOptions

GetShareAccountsChargeOptions

charges

String

currency

GetShareAccountsCurrency

currencyOptions

GetShareAccountsCurrency

description

String

id

Integer

int32

lockinPeriod

Integer

int32

lockinPeriodEnum

GetShareAccountsClientIdProductIdLockPeriodTypeEnum

lockinPeriodFrequencyTypeOptions

GetClientIdProductIdLockinPeriodFrequencyTypeOptions

marketPrice

String

maximumShares

Integer

int32

minimumActivePeriod

Integer

int32

minimumActivePeriodForDividendsTypeEnum

GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum

minimumActivePeriodFrequencyTypeOptions

GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions

minimumShares

Integer

int32

name

String

norminalShares

Integer

int32

shareCapital

Integer

int32

shortName

String

totalShares

Integer

int32

totalSharesIssued

Integer

int32

unitPrice

Integer

int32

=== GetClientStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientTransactionsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetClientsAllowedDocumentTypes

Field Name Required Type Description Format

id

Integer

int32

name

String

position

Integer

int32

=== GetClientsChargesPageItems

Field Name Required Type Description Format

amount

BigDecimal

amountOutstanding

BigDecimal

amountPaid

BigDecimal

amountWaived

BigDecimal

amountWrittenOff

BigDecimal

chargeCalculationType

GetClientChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetClientChargeTimeType

clientId

Integer

int32

currency

GetClientChargeCurrency

dueDate

date

date

id

Integer

int32

isActive

Boolean

isPaid

Boolean

isWaived

Boolean

name

String

penalty

Boolean

=== GetClientsClientIdAccountsResponse

GetClientsClientIdAccountsResponse

Field Name Required Type Description Format

loanAccounts

Set of [GetClientsLoanAccounts]

savingsAccounts

Set of [GetClientsSavingsAccounts]

=== GetClientsClientIdChargesResponse

GetClientsClientIdChargesResponse

Field Name Required Type Description Format

pageItems

Set of [GetClientsChargesPageItems]

totalFilteredRecords

Integer

int32

=== GetClientsClientIdIdentifiersResponse

GetClientsClientIdIdentifiersResponse

Field Name Required Type Description Format

clientId

Integer

int32

description

String

documentKey

String

documentType

GetClientsDocumentType

id

Integer

int32

=== GetClientsClientIdIdentifiersTemplateResponse

GetClientsClientIdIdentifiersTemplateResponse

Field Name Required Type Description Format

allowedDocumentTypes

Set of [GetClientsAllowedDocumentTypes]

=== GetClientsClientIdResponse

GetClientsClientIdResponse

Field Name Required Type Description Format

accountNo

String

activationDate

date

date

active

Boolean

displayName

String

emailAddress

String

firstname

String

groups

List of [GetClientsGroups]

id

Integer

int32

lastname

String

officeId

Integer

int32

officeName

String

savingsProductId

Integer

int32

savingsProductName

String

status

GetClientsClientIdStatus

timeline

GetClientsTimeline

=== GetClientsClientIdStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientsClientIdTransactionsResponse

GetClientsClientIdTransactionsResponse

Field Name Required Type Description Format

pageItems

Set of [GetClientsPageItems]

totalFilteredRecords

Integer

int32

=== GetClientsClientIdTransactionsTransactionIdResponse

GetClientsClientIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

amount

BigDecimal

currency

GetClientTransactionsCurrency

date

date

date

id

Integer

int32

officeId

Integer

int32

officeName

String

reversed

Boolean

submittedOnDate

date

date

type

GetClientsClientIdTransactionsType

=== GetClientsClientIdTransactionsType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientsColumnHeaderData

Field Name Required Type Description Format

columnDisplayType

String

columnLength

Integer

int32

columnName

String

columnType

String

columnValues

List of [string]

isColumnNullable

Boolean

isColumnPrimaryKey

Boolean

=== GetClientsDataTables

Field Name Required Type Description Format

applicationTableName

String

columnHeaderData

Set of [GetClientsColumnHeaderData]

registeredTableName

String

=== GetClientsDocumentType

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetClientsGroups

Field Name Required Type Description Format

accountNo

String

externalId

Long

int64

id

Long

int64

name

String

=== GetClientsLoanAccounts

Field Name Required Type Description Format

accountNo

String

externalId

Integer

int32

id

Integer

int32

loanCycle

Integer

int32

loanType

GetClientsLoanAccountsType

productId

Integer

int32

productName

String

status

GetClientsLoanAccountsStatus

=== GetClientsLoanAccountsStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== GetClientsLoanAccountsType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetClientsOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetClientsPageItems

Field Name Required Type Description Format

amount

Double

double

currency

GetClientTransactionsCurrency

date

date

date

id

Integer

int32

officeId

Integer

int32

officeName

String

reversed

Boolean

submittedOnDate

date

date

type

GetClientsClientIdTransactionsType

=== GetClientsPageItemsResponse

Field Name Required Type Description Format

accountNo

String

active

Boolean

displayName

String

emailAddress

String

fullname

String

id

Long

int64

officeId

Integer

int32

officeName

String

status

GetClientStatus

=== GetClientsResponse

GetClientsResponse

Field Name Required Type Description Format

pageItems

Set of [GetClientsPageItemsResponse]

totalFilteredRecords

Integer

int32

=== GetClientsSavingProductOptions

Field Name Required Type Description Format

allowOverdraft

Boolean

id

Integer

int32

name

String

withdrawalFeeForTransfers

Boolean

=== GetClientsSavingsAccounts

Field Name Required Type Description Format

accountNo

String

currency

GetClientsSavingsAccountsCurrency

depositType

GetClientsSavingsAccountsDepositType

id

Integer

int32

productId

Integer

int32

productName

String

shortProductName

String

status

GetClientsSavingsAccountsStatus

=== GetClientsSavingsAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetClientsSavingsAccountsDepositType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetClientsSavingsAccountsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

id

Integer

int32

matured

Boolean

prematureClosed

Boolean

rejected

Boolean

submittedAndPendingApproval

Boolean

transferInProgress

Boolean

transferOnHold

Boolean

value

String

withdrawnByApplicant

Boolean

=== GetClientsStaffOptions

Field Name Required Type Description Format

displayName

String

firstname

String

id

Integer

int32

isActive

Boolean

isLoanOfficer

Boolean

lastname

String

officeId

Integer

int32

officeName

String

=== GetClientsTemplateResponse

GetClientsTemplateResponse

Field Name Required Type Description Format

activationDate

date

date

datatables

Set of [GetClientsDataTables]

officeId

Integer

int32

officeOptions

Set of [GetClientsOfficeOptions]

savingProductOptions

Set of [GetClientsSavingProductOptions]

staffOptions

Set of [GetClientsStaffOptions]

=== GetClientsTimeline

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetCodeValuesDataResponse

GetCodeValuesDataResponse

Field Name Required Type Description Format

description

String

id

Long

int64

name

String

position

Integer

int32

=== GetCodesResponse

GetCodesResponse

Field Name Required Type Description Format

id

Long

int64

name

String

systemDefined

Boolean

=== GetCollateralCurrencyResponse

Field Name Required Type Description Format

code

String

=== GetCollateralManagementsResponse

GetCollateralManagementsResponse

Field Name Required Type Description Format

basePrice

BigDecimal

currency

GetCollateralCurrencyResponse

id

Long

int64

name

String

pctToBase

BigDecimal

unitType

String

=== GetCollateralProductTemplate

GetCollateralProductTemplate

Field Name Required Type Description Format

currency

GetCurrencyData

=== GetCollateralTypeResponse

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetCollateralsTemplateAllowedTypes

Field Name Required Type Description Format

id

Integer

int32

name

String

position

Integer

int32

=== GetCurrenciesResponse

GetCurrenciesResponse

Field Name Required Type Description Format

currencyOptions

List of [CurrencyData]

selectedCurrencyOptions

List of [CurrencyData]

=== GetCurrencyData

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetDataTablesResponse

GetDataTablesResponse

Field Name Required Type Description Format

applicationTableName

String

columnHeaderData

List of [ResultsetColumnHeaderData]

registeredTableName

String

=== GetDelinquencyBucketsResponse

GetDelinquencyBucketsResponse

Field Name Required Type Description Format

id

Integer

int32

name

String

ranges

List of [GetDelinquencyRangesResponse]

=== GetDelinquencyRangesResponse

GetDelinquencyRangesResponse

Field Name Required Type Description Format

classification

String

id

Integer

int32

maximumAgeDays

Long

int64

minimumAgeDays

Long

int64

=== GetDelinquencyTagHistoryResponse

GetDelinquencyTagHistoryResponse

Field Name Required Type Description Format

addedOnDate

date

date

delinquencyRange

GetDelinquencyRangesResponse

id

Integer

int32

liftedOnDate

date

date

loanId

Long

int64

=== GetEntityDatatableChecksResponse

GetEntityDatatableChecksResponse

Field Name Required Type Description Format

datatableName

String

entity

String

id

Long

int64

order

Long

int64

productId

Long

int64

productName

String

status

EnumOptionData

systemDefined

Boolean

=== GetEntityDatatableChecksTemplateResponse

GetEntityDatatableChecksTemplateResponse

Field Name Required Type Description Format

datatables

List of [object]

entities

List of [string]

loanProductDatas

List of [LoanProductData]

savingsProductDatas

List of [SavingsProductData]

statusClient

List of [object]

statusGroup

List of [object]

statusLoans

List of [object]

statusSavings

List of [object]

=== GetEntityTypeEntityIdDocumentsResponse

GetEntityTypeEntityIdDocumentsResponse

Field Name Required Type Description Format

description

String

fileName

String

id

Long

int64

location

String

name

String

parentEntityId

Long

int64

parentEntityType

String

size

Long

int64

storageType

Integer

int32

type

String

=== GetEquityType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetExternalEventConfigurationsResponse

GetExternalEventConfigurationsResponse

Field Name Required Type Description Format

externalEventConfiguration

List of [ExternalEventConfigurationItemData]

=== GetFieldConfigurationEntityResponse

GetFieldConfigurationEntityResponse

Field Name Required Type Description Format

entity

String

field

String

fieldConfigurationId

Integer

int32

is_enabled

String

is_mandatory

String

subentity

String

validation_regex

String

=== GetFinancialActivityAccountsResponse

GetFinancialActivityAccountsResponse

Field Name Required Type Description Format

financialActivityData

FinancialActivityData

glAccountData

GLAccountData

id

Long

int64

=== GetFixedDepositAccountsAccountChart

Field Name Required Type Description Format

accountId

Integer

int32

accountNumber

Long

int64

chartSlabs

Set of [GetFixedDepositAccountsChartSlabs]

fromDate

date

date

id

Integer

int32

periodTypes

Set of [GetFixedDepositAccountsPeriodTypes]

=== GetFixedDepositAccountsAccountChartCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetFixedDepositAccountsAccountIdCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetFixedDepositAccountsAccountIdResponse

GetFixedDepositAccountsAccountIdResponse

Field Name Required Type Description Format

accountChart

GetFixedDepositAccountsAccountChart

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetFixedDepositAccountsAccountIdCurrency

depositAmount

Float

float

depositPeriod

Integer

int32

depositPeriodFrequency

GetFixedDepositAccountsDepositPeriodFrequency

externalId

String

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetFixedDepositAccountsInterestCalculationDaysInYearType

interestCalculationType

GetFixedDepositAccountsInterestCalculationType

interestCompoundingPeriodType

GetFixedDepositAccountsInterestCompoundingPeriodType

interestFreePeriodApplicable

Boolean

interestPostingPeriodType

GetFixedDepositAccountsInterestPostingPeriodType

maturityAmount

Float

float

maturityDate

date

date

maxDepositTerm

Integer

int32

maxDepositTermType

GetFixedDepositAccountsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetFixedDepositAccountsMinDepositTermType

preClosurePenalApplicable

Boolean

savingsProductId

Integer

int32

savingsProductName

String

status

GetFixedDepositAccountsStatus

summary

GetFixedDepositAccountsAccountIdSummary

timeline

GetFixedDepositAccountsTimeline

=== GetFixedDepositAccountsAccountIdSummary

Field Name Required Type Description Format

accountBalance

Float

float

currency

GetFixedDepositAccountsAccountIdCurrency

=== GetFixedDepositAccountsChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

currency

GetFixedDepositAccountsAccountChartCurrency

fromPeriod

Integer

int32

id

Integer

int32

periodType

GetFixedDepositAccountsPeriodType

toPeriod

Integer

int32

=== GetFixedDepositAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetFixedDepositAccountsDepositPeriodFrequency

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsInterestCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsPeriodTypes

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositAccountsProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetFixedDepositAccountsResponse

GetFixedDepositAccountsResponse

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetFixedDepositAccountsCurrency

depositAmount

Float

float

depositPeriod

Integer

int32

depositPeriodFrequency

GetFixedDepositAccountsDepositPeriodFrequency

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetFixedDepositAccountsInterestCalculationDaysInYearType

interestCalculationType

GetFixedDepositAccountsInterestCalculationType

interestCompoundingPeriodType

GetFixedDepositAccountsInterestCompoundingPeriodType

interestFreePeriodApplicable

Boolean

interestPostingPeriodType

GetFixedDepositAccountsInterestPostingPeriodType

maturityAmount

Float

float

maturityDate

date

date

maxDepositTerm

Integer

int32

maxDepositTermType

GetFixedDepositAccountsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetFixedDepositAccountsMinDepositTermType

preClosurePenalApplicable

Boolean

savingsProductId

Integer

int32

savingsProductName

String

status

GetFixedDepositAccountsStatus

summary

GetFixedDepositAccountsSummary

timeline

GetFixedDepositAccountsTimeline

=== GetFixedDepositAccountsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

prematureClosed

Boolean

rejected

Boolean

submittedAndPendingApproval

Boolean

transferInProgress

Boolean

transferOnHold

Boolean

withdrawnByApplicant

Boolean

=== GetFixedDepositAccountsSummary

Field Name Required Type Description Format

accountBalance

Float

float

currency

GetFixedDepositAccountsCurrency

=== GetFixedDepositAccountsTemplateResponse

GetFixedDepositAccountsTemplateResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

productOptions

Set of [GetFixedDepositAccountsProductOptions]

=== GetFixedDepositAccountsTimeline

Field Name Required Type Description Format

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetFixedDepositProductsAccountingRule

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetFixedDepositProductsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsInterestCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdAccountingMappings

Field Name Required Type Description Format

incomeFromFeeAccount

GetFixedDepositProductsProductIdIncomeFromFeeAccount

incomeFromPenaltyAccount

GetFixedDepositProductsProductIdIncomeFromPenaltyAccount

interestOnSavingsAccount

GetFixedDepositProductsProductIdInterestOnSavingsAccount

savingsControlAccount

GetFixedDepositProductsProductIdSavingsControlAccount

savingsReferenceAccount

GetFixedDepositProductsProductIdSavingsReferenceAccount

transfersInSuspenseAccount

GetFixedDepositProductsProductIdTransfersInSuspenseAccount

=== GetFixedDepositProductsProductIdActiveChart

Field Name Required Type Description Format

chartSlabs

Set of [GetFixedDepositProductsProductIdChartSlabs]

fromDate

date

date

id

Integer

int32

periodTypes

Set of [GetFixedDepositProductsProductIdPeriodType]

savingsProductId

Integer

int32

savingsProductName

String

=== GetFixedDepositProductsProductIdChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

currency

GetFixedDepositProductsProductIdCurrency

description

String

fromPeriod

Integer

int32

id

Integer

int32

periodType

GetFixedDepositProductsProductIdPeriodType

toPeriod

Integer

int32

=== GetFixedDepositProductsProductIdCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetFixedDepositProductsProductIdFeeToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetFixedDepositProductsProductIdFeeToIncomeAccountMappingsCharge

incomeAccount

GetFixedDepositProductsProductIdFeeToIncomeAccountMappingsIncomeAccount

=== GetFixedDepositProductsProductIdFeeToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetFixedDepositProductsProductIdFeeToIncomeAccountMappingsIncomeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdIncomeFromFeeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdIncomeFromPenaltyAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdInterestOnSavingsAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdPenaltyToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetFixedDepositProductsProductIdPenaltyToIncomeAccountMappingsCharge

incomeAccount

GetFixedDepositProductsProductIdIncomeFromPenaltyAccount

=== GetFixedDepositProductsProductIdPenaltyToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetFixedDepositProductsProductIdPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdPreClosurePenalInterestOnType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFixedDepositProductsProductIdResponse

GetFixedDepositProductsProductIdResponse

Field Name Required Type Description Format

accountingMappings

GetFixedDepositProductsProductIdAccountingMappings

activeChart

GetFixedDepositProductsProductIdActiveChart

currency

GetFixedDepositProductsProductIdCurrency

description

String

feeToIncomeAccountMappings

Set of [GetFixedDepositProductsProductIdFeeToIncomeAccountMappings]

id

Integer

int32

interestCalculationDaysInYearType

GetFixedDepositProductsInterestCalculationDaysInYearType

interestCalculationType

GetFixedDepositProductsInterestCalculationType

interestCompoundingPeriodType

GetFixedDepositProductsProductIdInterestCompoundingPeriodType

interestPostingPeriodType

GetFixedDepositProductsInterestPostingPeriodType

maxDepositTerm

Integer

int32

maxDepositTermType

GetFixedDepositProductsProductIdMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetFixedDepositProductsProductIdMinDepositTermType

name

String

penaltyToIncomeAccountMappings

Set of [GetFixedDepositProductsProductIdPenaltyToIncomeAccountMappings]

preClosurePenalApplicable

Boolean

preClosurePenalInterest

Double

double

preClosurePenalInterestOnType

GetFixedDepositProductsProductIdPreClosurePenalInterestOnType

shortName

String

=== GetFixedDepositProductsProductIdSavingsControlAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdSavingsReferenceAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsProductIdTransfersInSuspenseAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetFixedDepositProductsResponse

GetFixedDepositProductsResponse

Field Name Required Type Description Format

accountingRule

GetFixedDepositProductsAccountingRule

currency

GetFixedDepositProductsCurrency

description

String

id

Integer

int32

interestCalculationDaysInYearType

GetFixedDepositProductsInterestCalculationDaysInYearType

interestCalculationType

GetFixedDepositProductsInterestCalculationType

interestCompoundingPeriodType

GetFixedDepositProductsInterestCompoundingPeriodType

interestPostingPeriodType

GetFixedDepositProductsInterestPostingPeriodType

maxDepositTerm

Integer

int32

maxDepositTermType

GetFixedDepositProductsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetFixedDepositProductsMinDepositTermType

name

String

nominalAnnualInterestRate

Double

double

preClosurePenalApplicable

Boolean

shortName

String

=== GetFloatingRatesFloatingRateIdResponse

GetFloatingRatesFloatingRateIdResponse

Field Name Required Type Description Format

createdBy

String

createdOn

String

id

Integer

int32

isActive

Boolean

isBaseLendingRate

Boolean

modifiedBy

String

modifiedOn

String

name

String

ratePeriods

Set of [GetFloatingRatesRatePeriods]

=== GetFloatingRatesRatePeriods

Field Name Required Type Description Format

createdBy

String

createdOn

String

fromDate

String

id

Integer

int32

interestRate

Double

double

isActive

Boolean

isDifferentialToBaseLendingRate

Boolean

modifiedBy

String

modifiedOn

String

=== GetFloatingRatesResponse

GetFloatingRatesResponse

Field Name Required Type Description Format

createdBy

String

createdOn

String

id

Integer

int32

isActive

Boolean

isBaseLendingRate

Boolean

modifiedBy

String

modifiedOn

String

name

String

=== GetFromAccountOptions

Field Name Required Type Description Format

accountId

Integer

int32

accountNo

Integer

int32

accountType

GetAccountOptions

clientId

Integer

int32

clientName

String

officeId

Integer

int32

officeName

String

=== GetFromAccountStandingInstructionSwagger

Field Name Required Type Description Format

accountNo

Long

int64

id

Long

int64

productId

Long

int64

productName

String

=== GetFromAccountTypeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetFromAccountTypeResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetFromAccountTypeStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetFromClientOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

displayName

String

id

Long

int64

officeId

Long

int64

officeName

String

=== GetFromClientStandingInstructionSwagger

Field Name Required Type Description Format

displayName

String

id

Long

int64

officeId

Long

int64

officeName

String

=== GetFromOfficeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

id

Long

int64

name

String

nameDecorated

String

=== GetFromOfficeResponseStandingInstructionSwagger

Field Name Required Type Description Format

decoratedName

String

externalId

Integer

int32

hierarchy

String

id

Long

int64

name

String

openingDate

date

date

=== GetFromOfficeStandingInstructionSwagger

Field Name Required Type Description Format

id

Long

int64

name

String

=== GetFundsResponse

GetFundsResponse

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetGLAccountsResponse

GetGLAccountsResponse

Field Name Required Type Description Format

description

String

disabled

Boolean

glCode

String

id

Long

int64

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Long

int64

parentId

Long

int64

tagId

CodeValueData

type

EnumOptionData

usage

EnumOptionData

=== GetGLAccountsTemplateResponse

GetGLAccountsTemplateResponse

Field Name Required Type Description Format

accountTypeOptions

List of [EnumOptionData]

allowedAssetsTagOptions

List of [CodeValueData]

allowedEquityTagOptions

List of [CodeValueData]

allowedExpensesTagOptions

List of [CodeValueData]

allowedIncomeTagOptions

List of [CodeValueData]

allowedLiabilitiesTagOptions

List of [CodeValueData]

assetHeaderAccountOptions

List of [GLAccountData]

disabled

Boolean

equityHeaderAccountOptions

List of [GLAccountData]

expenseHeaderAccountOptions

List of [GLAccountData]

liabilityHeaderAccountOptions

List of [GLAccountData]

manualEntriesAllowed

Boolean

type

EnumOptionData

usage

EnumOptionData

usageOptions

List of [EnumOptionData]

=== GetGlClosureResponse

GetGLClosureResponse

Field Name Required Type Description Format

closingDate

date

date

comments

String

createdByUserId

Long

int64

createdByUsername

String

createdDate

date

date

deleted

Boolean

id

Long

int64

lastUpdatedByUserId

Long

int64

lastUpdatedByUsername

String

lastUpdatedDate

date

date

officeId

Long

int64

officeName

String

=== GetGlobalConfigurationsResponse

GetGlobalConfigurationsResponse

Field Name Required Type Description Format

globalConfiguration

List of [GlobalConfigurationPropertyData]

=== GetGroupsGroupIdAccountsLoanAccounts

Field Name Required Type Description Format

accountNo

Long

int64

id

Integer

int32

loanType

GetGroupsGroupIdAccountsLoanType

productId

Integer

int32

productName

String

status

GetGroupsGroupIdAccountsStatus

=== GetGroupsGroupIdAccountsLoanType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetGroupsGroupIdAccountsMemberLoanAccounts

Field Name Required Type Description Format

accountNo

Long

int64

id

Integer

int32

loanType

GetGroupsGroupIdAccountsMemberLoanType

productId

Integer

int32

productName

String

status

GetGroupsGroupIdAccountsMemberLoanStatus

=== GetGroupsGroupIdAccountsMemberLoanStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== GetGroupsGroupIdAccountsMemberLoanType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetGroupsGroupIdAccountsMemberSavingsAccounts

Field Name Required Type Description Format

accountNo

Long

int64

accountType

GetGroupsGroupIdAccountsMemberLoanType

currency

GetGroupsGroupIdAccountsSavingCurrency

id

Integer

int32

productId

Integer

int32

productName

String

status

GetGroupsGroupIdAccountsSavingStatus

=== GetGroupsGroupIdAccountsResponse

GetGroupsGroupIdAccountsResponse

Field Name Required Type Description Format

loanAccounts

Set of [GetGroupsGroupIdAccountsLoanAccounts]

memberLoanAccounts

Set of [GetGroupsGroupIdAccountsMemberLoanAccounts]

memberSavingsAccounts

Set of [GetGroupsGroupIdAccountsMemberSavingsAccounts]

savingsAccounts

Set of [GetGroupsGroupIdAccountsSavingAccounts]

=== GetGroupsGroupIdAccountsSavingAccountType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetGroupsGroupIdAccountsSavingAccounts

Field Name Required Type Description Format

accountNo

Long

int64

accountType

GetGroupsGroupIdAccountsSavingAccountType

currency

GetGroupsGroupIdAccountsSavingCurrency

id

Integer

int32

productId

Integer

int32

productName

String

status

GetGroupsGroupIdAccountsSavingStatus

=== GetGroupsGroupIdAccountsSavingCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetGroupsGroupIdAccountsSavingStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

withdrawnByApplicant

Boolean

=== GetGroupsGroupIdAccountsStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== GetGroupsGroupIdResponse

GetGroupsGroupIdResponse

Field Name Required Type Description Format

externalId

String

hierarchy

String

id

Integer

int32

name

String

officeId

Integer

int32

officeName

String

timeline

GetGroupsGroupIdTimeline

=== GetGroupsGroupIdTimeline

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

=== GetGroupsPageItems

Field Name Required Type Description Format

active

Boolean

hierarchy

String

id

Integer

int32

name

String

officeId

Integer

int32

officeName

String

status

GetGroupsStatus

=== GetGroupsResponse

GetGroupsResponse

Field Name Required Type Description Format

pageItems

Set of [GetGroupsPageItems]

totalFilteredRecords

Integer

int32

=== GetGroupsStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetGroupsTemplateClientOptions

Field Name Required Type Description Format

displayName

String

id

Integer

int32

officeId

Integer

int32

officeName

String

=== GetGroupsTemplateColumnHeaderData

Field Name Required Type Description Format

columnDisplayType

String

columnLength

Integer

int32

columnName

String

columnType

String

columnValues

Set of [object]

isColumnNullable

Boolean

isColumnPrimaryKey

Boolean

=== GetGroupsTemplateDatatables

Field Name Required Type Description Format

applicationTableName

String

columnHeaderData

Set of [GetGroupsTemplateColumnHeaderData]

registeredTableName

String

=== GetGroupsTemplateOfficeOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetGroupsTemplateResponse

GetGroupsTemplateResponse

Field Name Required Type Description Format

clientOptions

Set of [GetGroupsTemplateClientOptions]

datatables

Set of [GetGroupsTemplateDatatables]

officeId

Integer

int32

officeOptions

Set of [GetGroupsTemplateOfficeOptions]

staffOptions

Set of [GetGroupsTemplateStaffOptions]

=== GetGroupsTemplateStaffOptions

Field Name Required Type Description Format

displayName

String

id

Integer

int32

=== GetHolidaysResponse

GetHolidaysResponse

Field Name Required Type Description Format

fromDate

date

date

id

Long

int64

name

String

officeId

Long

int64

repaymentsRescheduledTo

date

date

status

EnumOptionData

toDate

date

date

=== GetHookResponse

GetHookResponse

Field Name Required Type Description Format

config

List of [Field]

createdAt

date

date

displayName

String

events

List of [Event]

id

Long

int64

isActive

Boolean

name

String

templateId

Long

int64

templateName

String

updatedAt

date

date

=== GetHookTemplateResponse

GetHookTemplateResponse

Field Name Required Type Description Format

groupings

List of [Grouping]

templates

List of [HookTemplateData]

=== GetIncomeFromFeeAccountId

Field Name Required Type Description Format

glCode

String

id

Integer

int32

name

String

=== GetIncomeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetInstructionTypeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetInstructionTypeStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetInterestRateChartsChartIdChartSlabsAttributeName

Field Name Required Type Description Format

code

Integer

int32

description

Integer

int32

id

Integer

int32

=== GetInterestRateChartsChartIdChartSlabsConditionType

Field Name Required Type Description Format

code

Integer

int32

description

Integer

int32

id

Integer

int32

=== GetInterestRateChartsChartIdChartSlabsEntityType

Field Name Required Type Description Format

code

Integer

int32

description

Integer

int32

id

Integer

int32

=== GetInterestRateChartsChartIdChartSlabsIncentiveType

Field Name Required Type Description Format

code

Integer

int32

description

Integer

int32

id

Integer

int32

=== GetInterestRateChartsChartIdChartSlabsIncentives

Field Name Required Type Description Format

amount

Float

float

attributeName

GetInterestRateChartsChartIdChartSlabsAttributeName

attributeValue

Integer

int32

attributeValueDesc

String

conditionType

GetInterestRateChartsChartIdChartSlabsConditionType

entityType

GetInterestRateChartsChartIdChartSlabsEntityType

id

Integer

int32

incentiveType

GetInterestRateChartsChartIdChartSlabsIncentiveType

=== GetInterestRateChartsChartIdChartSlabsResponse

GetInterestRateChartsChartIdChartSlabsResponse

Field Name Required Type Description Format

annualInterestRate

Double

double

currency

GetInterestRateChartsCurrency

description

String

fromPeriod

Integer

int32

id

Integer

int32

incentives

Set of [GetInterestRateChartsChartIdChartSlabsIncentives]

periodTypes

GetInterestRateChartsTemplatePeriodTypes

toPeriod

Integer

int32

=== GetInterestRateChartsChartSlabs

Field Name Required Type Description Format

annualInterestRate

Integer

int32

currency

GetInterestRateChartsCurrency

fromPeriod

Integer

int32

id

Integer

int32

periodTypes

GetInterestRateChartsTemplatePeriodTypes

=== GetInterestRateChartsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetInterestRateChartsResponse

GetInterestRateChartsResponse

Field Name Required Type Description Format

chartSlabs

Set of [GetInterestRateChartsChartSlabs]

fromDate

date

date

id

Integer

int32

savingsProductId

Integer

int32

savingsProductName

String

=== GetInterestRateChartsTemplatePeriodTypes

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetInterestRateChartsTemplateResponse

GetInterestRateChartsTemplateResponse

Field Name Required Type Description Format

periodTypes

Set of [GetInterestRateChartsTemplatePeriodTypes]

=== GetJobsJobIDJobRunHistoryResponse

GetJobsJobIDJobRunHistoryResponse

Field Name Required Type Description Format

pageItems

List of [JobDetailHistoryDataSwagger]

totalFilteredRecords

Integer

int32

=== GetJobsResponse

GetJobsResponse

Field Name Required Type Description Format

active

Boolean

cronExpression

String

currentlyRunning

Boolean

displayName

String

initializingError

String

jobId

Long

int64

lastRunHistory

JobDetailHistoryData

nextRunTime

Date

date-time

=== GetLoanAccountLockResponse

GetLoanAccountLockResponse

Field Name Required Type Description Format

content

List of [LoanAccountLock]

limit

Integer

int32

page

Integer

int32

=== GetLoanAccountingMappings

Field Name Required Type Description Format

fundSourceAccount

GetLoanFundSourceAccount

incomeFromFeeAccount

GetLoanIncomeFromFeeAccount

incomeFromPenaltyAccount

GetLoanIncomeFromPenaltyAccount

interestOnLoanAccount

GetLoanInterestOnLoanAccount

loanPortfolioAccount

GetLoanPortfolioAccount

overpaymentLiabilityAccount

GetLoanOverpaymentLiabilityAccount

transfersInSuspenseAccount

GetLoanTransfersInSuspenseAccount

writeOffAccount

GetLoanWriteOffAccount

=== GetLoanCharge

Field Name Required Type Description Format

active

Boolean

id

Long

int64

name

String

penalty

Boolean

=== GetLoanChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanChargeCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetLoanChargeTemplateChargeAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoanChargeTemplateChargeOptions

Field Name Required Type Description Format

active

Boolean

amount

Double

double

chargeAppliesTo

GetLoanChargeTemplateChargeAppliesTo

chargeCalculationType

GetLoanChargeCalculationType

chargeTimeType

GetLoanChargeTemplateChargeTimeType

currency

GetLoanChargeCurrency

id

Integer

int32

name

String

penalty

Boolean

=== GetLoanChargeTemplateChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoanChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanCollateralManagementTemplate

GetLoanCollateralManagementTemplate

Field Name Required Type Description Format

basePrice

BigDecimal

collateralId

Long

int64

name

String

pctToBase

BigDecimal

quantity

BigDecimal

=== GetLoanCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetLoanFeeToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetLoanCharge

incomeAccount

GetLoanIncomeFromFeeAccount

=== GetLoanFundSourceAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanIncomeFromFeeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanIncomeFromPenaltyAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanInterestOnLoanAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanOverpaymentLiabilityAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanPaymentChannelToFundSourceMappings

Field Name Required Type Description Format

fundSourceAccountId

Long

int64

paymentTypeId

Long

int64

=== GetLoanPortfolioAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanProductsAccountingMappingOptions

Field Name Required Type Description Format

assetAccountOptions

Set of [GetLoanProductsAssetAccountOptions]

expenseAccountOptions

Set of [GetLoanProductsExpenseAccountOptions]

incomeAccountOptions

Set of [GetLoanProductsIncomeAccountOptions]

liabilityAccountOptions

Set of [GetLoanProductsLiabilityAccountOptions]

=== GetLoanProductsAccountingRule

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsAmortizationType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsAssetAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Long

int64

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Integer

int32

tagId

GetLoanProductsLiabilityTagId

type

GetLoanProductsLiabilityType

usage

GetLoanProductsLiabilityUsage

=== GetLoanProductsChargeAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsChargeOptions

Field Name Required Type Description Format

active

Boolean

amount

Long

int64

chargeAppliesTo

GetLoanProductsChargeAppliesTo

chargeCalculationType

GetLoanChargeCalculationType

chargePaymentMode

GetLoansChargePaymentMode

chargeTimeType

GetLoanChargeTimeType

currency

GetLoanProductsCurrencyOptions

id

Long

int64

name

String

penalty

Boolean

=== GetLoanProductsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetLoanProductsCurrencyOptions

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetLoanProductsDaysInYearTemplateType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsExpenseAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Long

int64

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Integer

int32

tagId

GetLoanProductsLiabilityTagId

type

GetLoanProductsExpenseType

usage

GetLoanProductsLiabilityUsage

=== GetLoanProductsExpenseType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsIncomeAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Long

int64

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Integer

int32

tagId

GetLoanProductsLiabilityTagId

type

GetLoanProductsIncomeType

usage

GetLoanProductsLiabilityUsage

=== GetLoanProductsIncomeType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestRateFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestRateTemplateFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestRecalculationCompoundingFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestRecalculationCompoundingType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestRecalculationData

Field Name Required Type Description Format

id

Long

int64

interestRecalculationCompoundingFrequencyType

GetLoanProductsInterestRecalculationCompoundingFrequencyType

interestRecalculationCompoundingType

GetLoanProductsInterestRecalculationCompoundingType

isArrearsBasedOnOriginalSchedule

Boolean

preClosureInterestCalculationStrategy

GetLoanProductsPreClosureInterestCalculationStrategy

productId

Long

int64

recalculationRestFrequencyType

GetLoanProductsInterestRecalculationCompoundingFrequencyType

rescheduleStrategyType

GetLoanProductsRescheduleStrategyType

=== GetLoanProductsInterestRecalculationTemplateData

Field Name Required Type Description Format

interestRecalculationCompoundingType

GetLoanProductsInterestRecalculationCompoundingType

preClosureInterestCalculationStrategy

GetLoanProductsPreClosureInterestCalculationStrategy

rescheduleStrategyType

GetLoanProductsRescheduleStrategyType

=== GetLoanProductsInterestTemplateType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsInterestType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsLiabilityAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Long

int64

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

organizationRunningBalance

Integer

int32

tagId

GetLoanProductsLiabilityTagId

type

GetLoanProductsLiabilityType

usage

GetLoanProductsLiabilityUsage

=== GetLoanProductsLiabilityTagId

Field Name Required Type Description Format

id

Long

int64

=== GetLoanProductsLiabilityType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsLiabilityUsage

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsParamType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsPaymentTypeOptions

Field Name Required Type Description Format

id

Long

int64

name

String

position

Integer

int32

=== GetLoanProductsPreClosureInterestCalculationStrategy

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsPrincipalVariationsForBorrowerCycle

Field Name Required Type Description Format

borrowerCycleNumber

Integer

int32

defaultValue

Double

double

id

Long

int64

maxValue

Double

double

minValue

Double

double

paramType

GetLoanProductsParamType

valueConditionType

GetLoanProductsValueConditionType

=== GetLoanProductsProductIdResponse

GetLoanProductsProductIdResponse

Field Name Required Type Description Format

accountingMappings

GetLoanAccountingMappings

accountingRule

GetLoanProductsAccountingRule

amortizationType

GetLoanProductsAmortizationType

annualInterestRate

Double

double

charges

List of [integer]

int32

currency

GetLoanProductsCurrency

delinquencyBucket

GetDelinquencyBucketsResponse

disallowExpectedDisbursements

Boolean

feeToIncomeAccountMappings

Set of [GetLoanFeeToIncomeAccountMappings]

fixedPrincipalPercentagePerInstallment

BigDecimal

id

Long

int64

includeInBorrowerCycle

Boolean

interestCalculationPeriodType

GetLoansProductsInterestCalculationPeriodType

interestRateFrequencyType

GetLoanProductsInterestRateFrequencyType

interestRatePerPeriod

Double

double

interestRateVariationsForBorrowerCycle

List of [integer]

int32

interestType

GetLoanProductsInterestTemplateType

maxPrincipal

Double

double

maxTrancheCount

Integer

int32

minPrincipal

Double

double

multiDisburseLoan

Boolean

name

String

numberOfRepaymentVariationsForBorrowerCycle

List of [integer]

int32

numberOfRepayments

Integer

int32

outstandingLoanBalance

Double

double

overdueDaysForNPA

Integer

int32

paymentChannelToFundSourceMappings

Set of [GetLoanPaymentChannelToFundSourceMappings]

principal

Double

double

principalThresholdForLastInstalment

Integer

int32

productsPrincipalVariationsForBorrowerCycle

Set of [GetLoanProductsPrincipalVariationsForBorrowerCycle]

repaymentEvery

Integer

int32

repaymentFrequencyType

GetLoanProductsRepaymentFrequencyType

shortName

String

status

String

transactionProcessingStrategyCode

String

transactionProcessingStrategyName

String

useBorrowerCycle

Boolean

=== GetLoanProductsRepaymentFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsRepaymentTemplateFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsRescheduleStrategyType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsResponse

GetLoanProductsResponse

Field Name Required Type Description Format

accountingRule

GetLoanProductsAccountingRule

amortizationType

GetLoanProductsAmortizationType

annualInterestRate

Double

double

currency

GetLoanProductsCurrency

daysInMonthType

GetLoansProductsDaysInMonthType

daysInYearType

GetLoansProductsDaysInYearType

endDate

date

date

fixedPrincipalPercentagePerInstallment

BigDecimal

id

Long

int64

includeInBorrowerCycle

Boolean

interestCalculationPeriodType

GetLoansProductsInterestCalculationPeriodType

interestRateFrequencyType

GetLoanProductsInterestRateFrequencyType

interestRatePerPeriod

Double

double

interestRateVariationsForBorrowerCycle

List of [integer]

int32

interestRecalculationData

GetLoanProductsInterestRecalculationData

interestType

GetLoanProductsInterestType

isInterestRecalculationEnabled

Boolean

maxNumberOfRepayments

Integer

int32

maxPrincipal

Double

double

minNumberOfRepayments

Integer

int32

minPrincipal

Double

double

name

String

numberOfRepaymentVariationsForBorrowerCycle

List of [integer]

int32

numberOfRepayments

Integer

int32

principal

Double

double

principalThresholdForLastInstalment

Integer

int32

principalVariationsForBorrowerCycle

List of [integer]

int32

repaymentEvery

Integer

int32

repaymentFrequencyType

GetLoanProductsRepaymentFrequencyType

shortName

String

startDate

date

date

status

String

transactionProcessingStrategy

String

transactionProcessingStrategyName

String

useBorrowerCycle

Boolean

=== GetLoanProductsTemplateCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetLoanProductsTemplateResponse

GetLoanProductsTemplateResponse

Field Name Required Type Description Format

accountingMappingOptions

GetLoanProductsAccountingMappingOptions

accountingRule

GetLoanProductsAccountingRule

accountingRuleOptions

Set of [GetLoanProductsAccountingRule]

amortizationType

GetLoanProductsAmortizationType

amortizationTypeOptions

Set of [GetLoanProductsAmortizationType]

chargeOptions

Set of [GetLoanProductsChargeOptions]

currency

GetLoanProductsTemplateCurrency

currencyOptions

Set of [GetLoanProductsCurrencyOptions]

daysInMonthType

GetLoansProductsDaysInMonthTemplateType

daysInMonthTypeOptions

Set of [GetLoansProductsDaysInMonthTemplateType]

daysInYearType

GetLoanProductsDaysInYearTemplateType

daysInYearTypeOptions

Set of [GetLoanProductsInterestTemplateType]

includeInBorrowerCycle

Boolean

interestCalculationPeriodType

GetLoansProductsInterestCalculationPeriodType

interestCalculationPeriodTypeOptions

Set of [GetLoansProductsInterestCalculationPeriodType]

interestRateFrequencyType

GetLoanProductsInterestRateTemplateFrequencyType

interestRateFrequencyTypeOptions

Set of [GetLoanProductsInterestRateTemplateFrequencyType]

interestRateVariationsForBorrowerCycle

List of [integer]

int32

interestRecalculationCompoundingTypeOptions

Set of [GetLoanProductsInterestRecalculationCompoundingType]

interestRecalculationData

GetLoanProductsInterestRecalculationTemplateData

interestRecalculationFrequencyTypeOptions

Set of [GetLoanProductsInterestRecalculationCompoundingFrequencyType]

interestType

GetLoanProductsInterestTemplateType

interestTypeOptions

Set of [GetLoanProductsInterestTemplateType]

isInterestRecalculationEnabled

Boolean

numberOfRepaymentVariationsForBorrowerCycle

List of [integer]

int32

paymentTypeOptions

Set of [GetLoanProductsPaymentTypeOptions]

preClosureInterestCalculationStrategyOptions

Set of [GetLoanProductsPreClosureInterestCalculationStrategy]

principalVariationsForBorrowerCycle

List of [integer]

int32

repaymentFrequencyType

GetLoanProductsRepaymentTemplateFrequencyType

repaymentFrequencyTypeOptions

Set of [GetLoanProductsRepaymentTemplateFrequencyType]

rescheduleStrategyTypeOptions

Set of [GetLoanProductsRescheduleStrategyType]

transactionProcessingStrategyOptions

Set of [GetLoanProductsTransactionProcessingStrategyOptions]

useBorrowerCycle

Boolean

valueConditionTypeOptions

Set of [GetLoanProductsValueConditionTypeOptions]

=== GetLoanProductsTransactionProcessingStrategyOptions

Field Name Required Type Description Format

code

String

id

Long

int64

name

String

=== GetLoanProductsValueConditionType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanProductsValueConditionTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoanRescheduleRequestResponse

GetLoanRescheduleRequestResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

id

Integer

int32

loanAccountNumber

String

loanId

Integer

int32

loanTermVariationsData

Set of [LoanTermVariationsData]

recalculateInterest

Boolean

rescheduleFromDate

date

date

rescheduleFromInstallment

Integer

int32

rescheduleReasonCodeValue

RescheduleReasonsCodeValue

rescheduleReasonComment

String

statusEnum

GetLoanRescheduleRequestStatus

timeline

RescheduleReasonsTimeline

=== GetLoanRescheduleRequestStatus

Field Name Required Type Description Format

approved

Boolean

code

String

id

Integer

int32

pendingApproval

Boolean

rejected

Boolean

value

String

=== GetLoanTransactionRelation

Field Name Required Type Description Format

fromLoanTransaction

Long

int64

toLoanTransaction

Long

int64

=== GetLoanTransfersInSuspenseAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoanWriteOffAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Long

int64

name

String

=== GetLoansChargePaymentMode

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoansCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetLoansLoanIdAmortizationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdChargePaymentMode

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdChargesChargeIdResponse

GetLoansLoanIdChargesChargeIdResponse

Field Name Required Type Description Format

amount

Double

double

amountOrPercentage

Double

double

amountOutstanding

Double

double

amountPaid

Double

double

amountPercentageAppliedTo

Double

double

amountWaived

Double

double

amountWrittenOff

Double

double

chargeCalculationType

GetLoanChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetLoanChargeTimeType

currency

GetLoanChargeCurrency

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

submittedOnDate

date

date

=== GetLoansLoanIdChargesTemplateResponse

GetLoansLoanIdChargesTemplateResponse

Field Name Required Type Description Format

amountPaid

Double

double

amountWaived

Double

double

amountWrittenOff

Double

double

chargeOptions

Set of [GetLoanChargeTemplateChargeOptions]

penalty

Boolean

=== GetLoansLoanIdCodeValueData

List of GetLoansLoanIdCodeValueData

Field Name Required Type Description Format

active

Boolean

description

String

id

Long

int64

mandatory

Boolean

name

String

position

Integer

int32

=== GetLoansLoanIdCollateralsResponse

GetLoansLoanIdCollateralsResponse

Field Name Required Type Description Format

currency

GetCollateralCurrencyResponse

description

String

id

Integer

int32

type

GetCollateralTypeResponse

value

Long

int64

=== GetLoansLoanIdCollateralsTemplateResponse

GetLoansLoanIdCollateralsTemplateResponse

Field Name Required Type Description Format

allowedCollateralTypes

Set of [GetCollateralsTemplateAllowedTypes]

=== GetLoansLoanIdCollectionData

Delinquent data

Field Name Required Type Description Format

availableDisbursementAmount

Double

double

delinquentAmount

Double

double

delinquentDate

date

date

delinquentDays

Integer

int32

lastPaymentAmount

Double

double

lastPaymentDate

date

date

nextPaymentDueDate

date

date

pastDueDays

Integer

int32

=== GetLoansLoanIdCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetLoansLoanIdDisbursementDetails

Field Name Required Type Description Format

actualDisbursementDate

date

date

approvedPrincipal

Float

float

chargeAmount

Double

double

dateFormat

String

expectedDisbursementDate

date

date

id

Integer

int32

loanChargeId

String

locale

String

netDisbursalAmount

Double

double

note

String

principal

Double

double

waivedChargeAmount

Double

double

=== GetLoansLoanIdEnumOptionData

Enum option data

Field Name Required Type Description Format

code

String

id

Long

int64

value

String

=== GetLoansLoanIdFeeFrequency

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdInterestCalculationPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdInterestRateFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdInterestType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdLinkedAccount

Field Name Required Type Description Format

accountNo

Long

int64

id

Integer

int32

=== GetLoansLoanIdLoanChargeData

Set of charges

Field Name Required Type Description Format

amount

Double

double

amountOrPercentage

Double

double

amountOutstanding

Double

double

amountPaid

Double

double

amountPercentageAppliedTo

Double

double

amountWaived

Double

double

amountWrittenOff

Double

double

chargeCalculationType

GetLoansLoanIdEnumOptionData

chargeId

Long

int64

chargePayable

Boolean

chargePaymentMode

GetLoansLoanIdEnumOptionData

chargeTimeType

GetLoansLoanIdEnumOptionData

currency

GetLoansLoanIdCurrency

dueDate

date

date

id

Long

int64

installmentChargeData

List of [GetLoansLoanIdLoanInstallmentChargeData]

List of GetLoansLoanIdLoanInstallmentChargeData

loanId

Long

int64

maxCap

Double

double

minCap

Double

double

name

String

paid

Boolean

penalty

Boolean

percentage

Double

double

waived

Boolean

=== GetLoansLoanIdLoanChargePaidByData

List of GetLoansLoanIdLoanChargePaidByData

Field Name Required Type Description Format

amount

Double

double

chargeId

Long

int64

id

Long

int64

installmentNumber

Integer

int32

name

String

transactionId

Long

int64

=== GetLoansLoanIdLoanInstallmentChargeData

List of GetLoansLoanIdLoanInstallmentChargeData

Field Name Required Type Description Format

amount

Double

double

amountAccrued

Double

double

amountOutstanding

Double

double

amountUnrecognized

Double

double

amountWaived

Double

double

dueDate

date

date

installmentNumber

Integer

int32

paid

Boolean

waived

Boolean

=== GetLoansLoanIdLoanRepaymentScheduleInstallmentData

List of GetLoansLoanIdLoanRepaymentScheduleInstallmentData

Field Name Required Type Description Format

amount

BigDecimal

date

date

date

id

Long

int64

installmentId

Integer

int32

=== GetLoansLoanIdLoanTransactionEnumData

Transaction type

Field Name Required Type Description Format

accrual

Boolean

approveTransfer

Boolean

chargePayment

Boolean

code

String

contra

Boolean

creditBalanceRefund

Boolean

disbursement

Boolean

goodwillCredit

Boolean

id

Long

int64

initiateTransfer

Boolean

merchantIssuedRefund

Boolean

payoutRefund

Boolean

recoveryRepayment

Boolean

refund

Boolean

refundForActiveLoans

Boolean

rejectTransfer

Boolean

repayment

Boolean

repaymentAtDisbursement

Boolean

value

String

waiveCharges

Boolean

waiveInterest

Boolean

withdrawTransfer

Boolean

writeOff

Boolean

=== GetLoansLoanIdLoanType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdOverdueCharges

Field Name Required Type Description Format

active

Boolean

amount

Float

float

chargeAppliesTo

GetLoanChargeTemplateChargeAppliesTo

chargeCalculationType

GetLoansLoanIdChargeCalculationType

chargePaymentMode

GetLoansLoanIdChargePaymentMode

chargeTimeType

GetLoansLoanIdChargeTimeType

currency

GetLoanCurrency

feeFrequency

GetLoansLoanIdFeeFrequency

feeInterval

Integer

int32

id

Integer

int32

name

String

penalty

Boolean

=== GetLoansLoanIdPaymentDetailData

Payment detail

Field Name Required Type Description Format

accountNumber

String

bankNumber

String

checkNumber

String

id

Integer

int32

paymentType

GetLoansLoanIdPaymentType

receiptNumber

String

routingCode

String

=== GetLoansLoanIdPaymentType

List of GetLoansLoanIdPaymentType

Field Name Required Type Description Format

description

String

id

Integer

int32

isCashPayment

Boolean

name

String

position

Long

int64

=== GetLoansLoanIdRepaymentFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdRepaymentPeriod

Field Name Required Type Description Format

complete

Boolean

daysInPeriod

Long

int64

dueDate

date

date

feeChargesDue

Double

double

feeChargesOutstanding

Double

double

feeChargesPaid

Double

double

feeChargesWaived

Double

double

feeChargesWrittenOff

Double

double

fromDate

date

date

interestDue

Double

double

interestOriginalDue

Double

double

interestOutstanding

Double

double

interestPaid

Double

double

interestWaived

Double

double

interestWrittenOff

Double

double

obligationsMetOnDate

date

date

penaltyChargesDue

Double

double

penaltyChargesOutstanding

Double

double

penaltyChargesPaid

Double

double

penaltyChargesWaived

Double

double

penaltyChargesWrittenOff

Double

double

period

Integer

int32

principalDue

Double

double

principalLoanBalanceOutstanding

Double

double

principalOriginalDue

Double

double

principalOutstanding

Double

double

principalPaid

Double

double

principalWrittenOff

Double

double

totalActualCostOfLoanForPeriod

Double

double

totalCredits

Double

double

totalDueForPeriod

Double

double

totalInstallmentAmountForPeriod

Double

double

totalOriginalDueForPeriod

Double

double

totalOutstandingForPeriod

Double

double

totalPaidForPeriod

Double

double

totalPaidInAdvanceForPeriod

Double

double

totalPaidLateForPeriod

Double

double

totalWaivedForPeriod

Double

double

totalWrittenOffForPeriod

Double

double

=== GetLoansLoanIdRepaymentSchedule

Field Name Required Type Description Format

currency

GetLoansLoanIdCurrency

loanTermInDays

Long

int64

periods

Set of [GetLoansLoanIdRepaymentPeriod]

totalFeeChargesCharged

Double

double

totalInterestCharged

Double

double

totalOutstanding

Double

double

totalPaidInAdvance

Double

double

totalPaidLate

Double

double

totalPenaltyChargesCharged

Double

double

totalPrincipalDisbursed

Double

double

totalPrincipalExpected

Double

double

totalPrincipalPaid

Double

double

totalRepaymentExpected

Double

double

totalWaived

Double

double

totalWrittenOff

Double

double

=== GetLoansLoanIdResponse

GetLoansLoanIdResponse

Field Name Required Type Description Format

accountNo

Long

int64

amortizationType

GetLoansLoanIdAmortizationType

annualInterestRate

Integer

int32

approvedPrincipal

Double

double

charges

Set of [GetLoansLoanIdLoanChargeData]

Set of charges

clientId

Integer

int32

clientName

String

clientOfficeId

Integer

int32

currency

GetLoansLoanIdCurrency

delinquencyRange

GetDelinquencyRangesResponse

delinquent

GetLoansLoanIdCollectionData

disallowExpectedDisbursements

Boolean

disbursementDetails

Set of [GetLoansLoanIdDisbursementDetails]

Set of GetLoansLoanIdDisbursementDetails

fixedPrincipalPercentagePerInstallment

BigDecimal

fraud

Boolean

id

Long

int64

interestCalculationPeriodType

GetLoansLoanIdInterestCalculationPeriodType

interestRateFrequencyType

GetLoansLoanIdInterestRateFrequencyType

interestRatePerPeriod

Integer

int32

interestType

GetLoansLoanIdInterestType

loanOfficerId

Integer

int32

loanOfficerName

String

loanProductDescription

String

loanProductId

Integer

int32

loanProductName

String

loanPurposeId

Integer

int32

loanPurposeName

String

loanType

GetLoansLoanIdLoanType

netDisbursalAmount

Double

double

numberOfRepayments

Integer

int32

principal

BigDecimal

repaymentEvery

Integer

int32

repaymentFrequencyType

GetLoansLoanIdRepaymentFrequencyType

repaymentSchedule

GetLoansLoanIdRepaymentSchedule

status

GetLoansLoanIdStatus

summary

GetLoansLoanIdSummary

termFrequency

Integer

int32

termPeriodFrequencyType

GetLoansLoanIdTermPeriodFrequencyType

timeline

GetLoansLoanIdTimeline

transactionProcessingStrategyCode

String

transactions

Set of [GetLoansLoanIdTransactions]

Set of GetLoansLoanIdTransactions

=== GetLoansLoanIdStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== GetLoansLoanIdSummary

Field Name Required Type Description Format

canDisburse

Boolean

currency

GetLoansLoanIdCurrency

disbursementDetails

Set of [GetLoansLoanIdDisbursementDetails]

emiAmountVariations

Set of [object]

feeChargesCharged

Double

double

feeChargesDueAtDisbursementCharged

Double

double

feeChargesOutstanding

Double

double

feeChargesOverdue

Double

double

feeChargesPaid

Double

double

feeChargesWaived

Double

double

feeChargesWrittenOff

Double

double

fixedEmiAmount

Double

double

inArrears

Boolean

interestCharged

Double

double

interestOutstanding

Double

double

interestOverdue

Double

double

interestPaid

Double

double

interestWaived

Double

double

interestWrittenOff

Double

double

isNPA

Boolean

linkedAccount

GetLoansLoanIdLinkedAccount

maxOutstandingLoanBalance

Double

double

overdueCharges

Set of [GetLoansLoanIdOverdueCharges]

overdueSinceDate

date

date

penaltyChargesCharged

Double

double

penaltyChargesOutstanding

Double

double

penaltyChargesOverdue

Double

double

penaltyChargesPaid

Double

double

penaltyChargesWaived

Double

double

penaltyChargesWrittenOff

Double

double

principalAdjustments

Double

double

principalDisbursed

Double

double

principalOutstanding

Double

double

principalOverdue

Double

double

principalPaid

Double

double

principalWrittenOff

Double

double

totalCostOfLoan

Double

double

totalExpectedCostOfLoan

Double

double

totalExpectedRepayment

Double

double

totalOutstanding

Double

double

totalOverdue

Double

double

totalRepayment

Double

double

totalWaived

Double

double

totalWrittenOff

Double

double

=== GetLoansLoanIdTermPeriodFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansLoanIdTimeline

Field Name Required Type Description Format

actualDisbursementDate

date

date

approvedByFirstname

String

approvedByLastname

String

approvedByUsername

String

approvedOnDate

date

date

closedOnDate

date

date

disbursedByFirstname

String

disbursedByLastname

String

disbursedByUsername

String

expectedDisbursementDate

date

date

expectedMaturityDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetLoansLoanIdTransactions

Set of GetLoansLoanIdTransactions

Field Name Required Type Description Format

accountId

Long

int64

accountNumber

String

amount

Double

double

bankNumber

Integer

int32

checkNumber

Integer

int32

currency

GetLoansLoanIdCurrency

date

date

date

dateFormat

String

externalId

String

feeChargesPortion

Double

double

fixedEmiAmount

Double

double

id

Long

int64

interestPortion

Double

double

loanChargePaidByList

List of [GetLoansLoanIdLoanChargePaidByData]

List of GetLoansLoanIdLoanChargePaidByData

loanRepaymentScheduleInstallments

List of [GetLoansLoanIdLoanRepaymentScheduleInstallmentData]

List of GetLoansLoanIdLoanRepaymentScheduleInstallmentData

locale

String

manuallyReversed

Boolean

netDisbursalAmount

Double

double

numberOfRepayments

Integer

int32

officeId

Long

int64

officeName

String

outstandingLoanBalance

Double

double

overpaymentPortion

Double

double

paymentDetailData

GetLoansLoanIdPaymentDetailData

paymentTypeId

Long

int64

paymentTypeOptions

List of [GetLoansLoanIdPaymentType]

List of GetLoansLoanIdPaymentType

penaltyChargesPortion

Double

double

possibleNextRepaymentDate

date

date

principalPortion

Double

double

receiptNumber

Integer

int32

reversalExternalId

String

reversedOnDate

date

date

routingCode

Integer

int32

submittedOnDate

date

date

transactionAmount

Double

double

transactionDate

date

date

transactionType

String

type

GetLoansLoanIdLoanTransactionEnumData

unrecognizedIncomePortion

Double

double

writeOffReasonOptions

List of [GetLoansLoanIdCodeValueData]

List of GetLoansLoanIdCodeValueData

=== GetLoansLoanIdTransactionsTemplateResponse

GetLoansLoanIdTransactionsTemplateResponse

Field Name Required Type Description Format

date

date

date

total

GetLoansTotal

transactionType

GetLoansTransactionType

=== GetLoansLoanIdTransactionsTransactionIdResponse

GetLoansLoanIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

amount

Double

double

currency

GetLoansCurrency

date

date

date

feeChargesPortion

Double

double

id

Integer

int32

interestPortion

Double

double

manuallyReversed

Boolean

netDisbursalAmount

Double

double

outstandingLoanBalance

Double

double

overpaymentPortion

Double

double

penaltyChargesPortion

Double

double

possibleNextRepaymentDate

date

date

principalPortion

Double

double

reversalExternalId

String

reversedOnDate

date

date

submittedOnDate

date

date

transactionRelations

Set of [GetLoanTransactionRelation]

type

GetLoansType

unrecognizedIncomePortion

Double

double

=== GetLoansProductsDaysInMonthTemplateType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoansProductsDaysInMonthType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoansProductsDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoansProductsInterestCalculationPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Long

int64

=== GetLoansResponse

GetLoansResponse

Field Name Required Type Description Format

pageItems

Set of [GetLoansLoanIdResponse]

totalFilteredRecords

Integer

int32

=== GetLoansTemplateProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetLoansTemplateResponse

GetLoansTemplateResponse

Field Name Required Type Description Format

clientId

Long

int64

clientName

String

clientOfficeId

Integer

int32

productOptions

Set of [GetLoansTemplateProductOptions]

timeline

GetLoansTemplateTimeline

=== GetLoansTemplateTimeline

Field Name Required Type Description Format

expectedDisbursementDate

date

date

=== GetLoansTotal

Field Name Required Type Description Format

amount

Float

float

currencyCode

String

defaultName

String

digitsAfterDecimal

Integer

int32

displaySymbol

String

displaySymbolValue

String

greaterThanZero

Boolean

inMultiplesOf

Integer

int32

nameCode

String

zero

Boolean

=== GetLoansTransactionType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetLoansType

Field Name Required Type Description Format

code

String

contra

Boolean

description

String

disbursement

Boolean

id

Integer

int32

recoveryRepayment

Boolean

repayment

Boolean

repaymentAtDisbursement

Boolean

waiveCharges

Boolean

waiveInterest

Boolean

writeOff

Boolean

=== GetLockPeriodTypeEnum

Field Name Required Type Description Format

description

String

id

Integer

int32

=== GetMakerCheckerResponse

GetMakerCheckerResponse

Field Name Required Type Description Format

actionName

String

checkedOnDate

Date

date-time

checker

String

clientId

Long

int64

clientName

String

commandAsJson

String

entityName

String

groupLevelName

String

groupName

String

id

Long

int64

loanAccountNo

String

loanId

Long

int64

madeOnDate

Date

date-time

maker

String

officeName

String

processingResult

String

resourceId

Long

int64

savingsAccountNo

String

subresourceId

Long

int64

url

String

=== GetMakerCheckersSearchTemplateResponse

GetMakerCheckersSearchTemplateResponse

Field Name Required Type Description Format

actionNames

List of [string]

appUsers

List of [AppUserData]

entityNames

List of [string]

processingResults

List of [ProcessingResultLookup]

=== GetNotesNoteType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetNotification

Field Name Required Type Description Format

action

String

actorId

Long

int64

content

String

createdAt

String

id

Long

int64

isRead

Boolean

isSystemGenerated

Boolean

objectId

Long

int64

objectType

String

officeId

Long

int64

tenantIdentifier

String

userIds

List of [long]

int64

=== GetNotificationsResponse

GetNotificationsResponse

Field Name Required Type Description Format

pageItems

List of [GetNotification]

totalFilteredRecords

Integer

int32

=== GetOfficesResponse

GetOfficesResponse

Field Name Required Type Description Format

externalId

String

hierarchy

String

id

Long

int64

name

String

nameDecorated

String

openingDate

date

date

=== GetOfficesTemplateResponse

GetOfficesTemplateResponse

Field Name Required Type Description Format

allowedParents

List of [GetOfficesResponse]

openingDate

date

date

=== GetPageItemsStandingInstructionSwagger

Field Name Required Type Description Format

accountDetailId

Long

int64

amount

Float

float

fromAccount

GetFromAccountStandingInstructionSwagger

fromAccountType

GetFromAccountTypeStandingInstructionSwagger

fromClient

GetFromClientStandingInstructionSwagger

fromOffice

GetFromOfficeStandingInstructionSwagger

id

Long

int64

instructionType

GetInstructionTypeStandingInstructionSwagger

name

String

priority

GetPriorityStandingInstructionSwagger

recurrenceFrequency

GetRecurrenceFrequencyStandingInstructionSwagger

recurrenceInterval

Integer

int32

recurrenceOnMonthDay

date

date

recurrenceType

GetRecurrenceTypeStandingInstructionSwagger

status

GetStatusStandingInstructionSwagger

toAccount

GetToAccountStandingInstructionSwagger

toAccountType

GetToAccountTypeStandingInstructionSwagger

toClient

GetToClientStandingInstructionSwagger

toOffice

GetToOfficeStandingInstructionSwagger

transferType

GetTransferTypeStandingInstructionSwagger

validFrom

date

date

=== GetPasswordPreferencesTemplateResponse

GetPasswordPreferencesTemplateResponse

Field Name Required Type Description Format

active

Boolean

description

String

id

Long

int64

key

String

=== GetPaymentTypesPaymentTypeIdResponse

GetPaymentTypesPaymentTypeIdResponse

Field Name Required Type Description Format

codeName

String

description

String

id

Integer

int32

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

position

Integer

int32

=== GetPaymentTypesResponse

GetPaymentTypesResponse

Field Name Required Type Description Format

codeName

String

description

String

id

Integer

int32

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

position

Integer

int32

=== GetPermissionsResponse

GetPermissionsResponse

Field Name Required Type Description Format

actionName

String

code

String

entityName

String

grouping

String

selected

Boolean

=== GetPocketData

Field Name Required Type Description Format

row

String

=== GetPocketLoanAccounts

Field Name Required Type Description Format

accountId

Integer

int32

accountNumber

Integer

int32

accountType

Integer

int32

id

Integer

int32

pocketId

Integer

int32

=== GetPocketSavingAccounts

Field Name Required Type Description Format

accountId

Integer

int32

accountNumber

Integer

int32

accountType

Integer

int32

id

Integer

int32

pocketId

Integer

int32

=== GetPostDatedChecks

GetPostDatedChecks

Field Name Required Type Description Format

accountNo

Long

int64

amount

BigDecimal

date

date

date

id

Long

int64

installmentId

Integer

int32

name

String

=== GetPriorityOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetPriorityStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetProductsAccountingMappingOptions

Field Name Required Type Description Format

assetAccountOptions

Set of [GetProductsAssetAccountOptions]

equityAccountOptions

Set of [GetProductsEquityAccountOptions]

incomeAccountOptions

Set of [GetProductsIncomeAccountOptions]

liabilityAccountOptions

Set of [GetProductsLiabilityAccountOptions]

=== GetProductsAccountingMappings

Field Name Required Type Description Format

incomeFromFeeAccountId

GetIncomeFromFeeAccountId

shareEquityId

GetShareEquityId

shareReferenceId

GetShareReferenceId

shareSuspenseId

GetShareSuspenseId

=== GetProductsAccountingRule

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetProductsAssetAccountOptions

Field Name Required Type Description Format

description

String

disabled

Boolean

glCode

String

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

tagId

GetProductsTagId

type

GetAssetType

usage

GetProductsLiabilityUsage

=== GetProductsCharges

Field Name Required Type Description Format

active

Boolean

amount

Integer

int32

chargeAppliesTo

GetChargeAppliesTo

chargeCalculationType

GetChargeCalculationType

chargePaymentMode

GetChargePaymentMode

chargeTimeType

GetChargeTimeType

currency

GetChargesCurrency

id

Integer

int32

name

String

penalty

Boolean

=== GetProductsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetProductsEquityAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

String

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

tagId

GetProductsTagId

type

GetEquityType

usage

GetProductsLiabilityUsage

=== GetProductsIncomeAccountOptions

Field Name Required Type Description Format

description

String

disabled

Boolean

glCode

String

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

tagId

GetProductsTagId

type

GetIncomeType

usage

GetProductsLiabilityUsage

=== GetProductsLiabilityAccountOptions

Field Name Required Type Description Format

description

String

disabled

Boolean

glCode

String

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

tagId

GetProductsTagId

type

GetProductsLiabilityType

usage

GetProductsLiabilityUsage

=== GetProductsLiabilityType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetProductsLiabilityUsage

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetProductsMarketPrice

Field Name Required Type Description Format

fromDate

String

id

Integer

int32

shareValue

Integer

int32

=== GetProductsMinimumActivePeriodFrequencyTypeOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetProductsPageItems

Field Name Required Type Description Format

id

Integer

int32

name

String

shortName

String

totalShares

Integer

int32

=== GetProductsTagId

Field Name Required Type Description Format

id

Integer

int32

isActive

Boolean

=== GetProductsTypeProductIdResponse

GetProductsTypeProductIdResponse

Field Name Required Type Description Format

accountingMappingOptions

GetProductsAccountingMappingOptions

accountingMappings

GetProductsAccountingMappings

accountingRule

GetProductsAccountingRule

allowDividendCalculationForInactiveClients

Boolean

chargeOptions

Set of [GetProductsCharges]

charges

Set of [GetProductsCharges]

currency

GetProductsCurrency

currencyOptions

Set of [GetChargesCurrency]

description

String

id

Integer

int32

lockPeriodTypeEnum

GetLockPeriodTypeEnum

lockinPeriod

Integer

int32

lockinPeriodFrequencyTypeOptions

Set of [GetProductsMinimumActivePeriodFrequencyTypeOptions]

marketPrice

Set of [GetProductsMarketPrice]

maximumShares

Integer

int32

minimumActivePeriod

Integer

int32

minimumActivePeriodForDividendsTypeEnum

GetLockPeriodTypeEnum

minimumActivePeriodFrequencyTypeOptions

Set of [GetProductsMinimumActivePeriodFrequencyTypeOptions]

minimumShares

Integer

int32

name

String

nominalShares

Integer

int32

shareCapital

Integer

int32

shortName

String

totalShares

Integer

int32

totalSharesIssued

Integer

int32

unitPrice

Integer

int32

=== GetProductsTypeResponse

GetProductsTypeResponse

Field Name Required Type Description Format

pageItems

Set of [GetProductsPageItems]

totalFilteredRecords

Integer

int32

=== GetProvisioningCriteriaCriteriaIdResponse

GetProvisioningCriteriaCriteriaIdResponse

Field Name Required Type Description Format

createdBy

String

criteriaId

Long

int64

criteriaName

String

loanProducts

List of [LoanProductData]

provisioningcriteria

List of [ProvisioningCriteriaDefinitionData]

=== GetProvisioningCriteriaResponse

GetProvisioningCriteriaResponse

Field Name Required Type Description Format

createdBy

String

criteriaId

Long

int64

criteriaName

String

=== GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurrenceFrequencyStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurrenceTypeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurrenceTypeStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetRecurringDepositAccountsAccountChart

Field Name Required Type Description Format

accountId

Integer

int32

accountNumber

Long

int64

chartSlabs

Set of [GetRecurringDepositAccountsChartSlabs]

fromDate

date

date

id

Integer

int32

periodTypes

Set of [GetRecurringDepositAccountsPeriodTypes]

=== GetRecurringDepositAccountsAccountChartCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetRecurringDepositAccountsAccountIdResponse

GetRecurringDepositAccountsAccountIdResponse

Field Name Required Type Description Format

accountChart

GetRecurringDepositAccountsAccountChart

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetRecurringDepositAccountsCurrency

depositPeriod

Integer

int32

depositPeriodFrequency

GetRecurringDepositAccountsDepositPeriodFrequency

expectedFirstDepositOnDate

date

date

externalId

String

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetRecurringDepositAccountsInterestCalculationDaysInYearType

interestCalculationType

GetRecurringDepositAccountsInterestCalculationType

interestCompoundingPeriodType

GetRecurringDepositAccountsInterestCompoundingPeriodType

interestPostingPeriodType

GetRecurringDepositAccountsInterestPostingPeriodType

maxDepositTerm

Integer

int32

maxDepositTermType

GetRecurringDepositAccountsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetRecurringDepositAccountsMinDepositTermType

preClosurePenalApplicable

Boolean

recurringDepositAmount

Integer

int32

recurringDepositFrequency

Integer

int32

recurringDepositFrequencyType

GetRecurringDepositAccountsRecurringDepositFrequencyType

savingsProductId

Integer

int32

savingsProductName

String

status

GetRecurringDepositAccountsStatus

summary

GetRecurringDepositAccountsSummary

timeline

GetRecurringDepositAccountsTimeline

=== GetRecurringDepositAccountsChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

currency

GetRecurringDepositAccountsAccountChartCurrency

fromPeriod

Integer

int32

id

Integer

int32

periodType

GetRecurringDepositAccountsPeriodType

toPeriod

Integer

int32

=== GetRecurringDepositAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetRecurringDepositAccountsDepositPeriodFrequency

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsInterestCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsPeriodTypes

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse

GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse

Field Name Required Type Description Format

accountId

Integer

int32

accountNo

String

amount

BigDecimal

currency

GetRecurringCurrency

date

date

date

id

Integer

int32

paymentTypeOptions

List of [integer]

int32

reversed

Boolean

transactionType

GetRecurringTransactionType

=== GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse

GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

accountId

Integer

int32

accountNo

String

amount

Float

float

currency

GetRecurringTransactionsCurrency

date

date

date

id

Integer

int32

paymentDetailData

GetRecurringPaymentDetailData

reversed

Boolean

runningBalance

Integer

int32

transactionType

GetRecurringTransactionsTransactionType

=== GetRecurringDepositAccountsRecurringDepositFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositAccountsResponse

GetRecurringDepositAccountsResponse

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetRecurringDepositAccountsCurrency

depositAmount

Float

float

depositPeriod

Integer

int32

depositPeriodFrequency

GetRecurringDepositAccountsDepositPeriodFrequency

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetRecurringDepositAccountsInterestCalculationDaysInYearType

interestCalculationType

GetRecurringDepositAccountsInterestCalculationType

interestCompoundingPeriodType

GetRecurringDepositAccountsInterestCompoundingPeriodType

interestPostingPeriodType

GetRecurringDepositAccountsInterestPostingPeriodType

maturityAmount

Float

float

maturityDate

date

date

maxDepositTerm

Integer

int32

maxDepositTermType

GetRecurringDepositAccountsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetRecurringDepositAccountsMinDepositTermType

preClosurePenalApplicable

Boolean

recurringDepositAmount

Integer

int32

recurringDepositFrequency

Integer

int32

recurringDepositFrequencyType

GetRecurringDepositAccountsRecurringDepositFrequencyType

savingsProductId

Integer

int32

savingsProductName

String

status

GetRecurringDepositAccountsStatus

summary

GetRecurringDepositAccountsSummary

timeline

GetRecurringDepositAccountsTimeline

=== GetRecurringDepositAccountsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

prematureClosed

Boolean

rejected

Boolean

submittedAndPendingApproval

Boolean

transferInProgress

Boolean

transferOnHold

Boolean

withdrawnByApplicant

Boolean

=== GetRecurringDepositAccountsSummary

Field Name Required Type Description Format

accountBalance

Float

float

currency

GetRecurringDepositAccountsCurrency

=== GetRecurringDepositAccountsTemplateResponse

GetRecurringDepositAccountsTemplateResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

productOptions

Set of [GetRecurringProductOptions]

=== GetRecurringDepositAccountsTimeline

Field Name Required Type Description Format

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetRecurringDepositProductsAccountingRule

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetRecurringDepositProductsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsInterestCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdAccountingMappings

Field Name Required Type Description Format

incomeFromFeeAccount

GetRecurringDepositProductsProductIdIncomeFromFeeAccount

incomeFromPenaltyAccount

GetRecurringDepositProductsProductIdIncomeFromPenaltyAccount

interestOnSavingsAccount

GetRecurringDepositProductsProductIdInterestOnSavingsAccount

savingsControlAccount

GetRecurringDepositProductsProductIdSavingsControlAccount

savingsReferenceAccount

GetRecurringDepositProductsProductIdSavingsReferenceAccount

transfersInSuspenseAccount

GetRecurringDepositProductsProductIdTransfersInSuspenseAccount

=== GetRecurringDepositProductsProductIdActiveChart

Field Name Required Type Description Format

chartSlabs

Set of [GetRecurringDepositProductsProductIdChartSlabs]

fromDate

date

date

id

Integer

int32

periodTypes

Set of [GetRecurringDepositProductsProductIdPeriodType]

savingsProductId

Integer

int32

savingsProductName

String

=== GetRecurringDepositProductsProductIdChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

currency

GetRecurringDepositProductsProductIdCurrency

description

String

fromPeriod

Integer

int32

id

Integer

int32

periodType

GetRecurringDepositProductsProductIdPeriodType

toPeriod

Integer

int32

=== GetRecurringDepositProductsProductIdCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetRecurringDepositProductsProductIdFeeToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetRecurringDepositProductsProductIdFeeToIncomeAccountMappingsCharge

incomeAccount

GetRecurringDepositProductsProductIdFeeToIncomeAccountMappingsIncomeAccount

=== GetRecurringDepositProductsProductIdFeeToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetRecurringDepositProductsProductIdFeeToIncomeAccountMappingsIncomeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdIncomeFromFeeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdIncomeFromPenaltyAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdInterestOnSavingsAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdMaxDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdMinDepositTermType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdPenaltyToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetRecurringDepositProductsProductIdPenaltyToIncomeAccountMappingsCharge

incomeAccount

GetRecurringDepositProductsProductIdIncomeFromPenaltyAccount

=== GetRecurringDepositProductsProductIdPenaltyToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetRecurringDepositProductsProductIdPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdPreClosurePenalInterestOnType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsProductIdResponse

GetRecurringDepositProductsProductIdResponse

Field Name Required Type Description Format

accountingMappings

GetRecurringDepositProductsProductIdAccountingMappings

activeChart

GetRecurringDepositProductsProductIdActiveChart

currency

GetRecurringDepositProductsProductIdCurrency

description

String

feeToIncomeAccountMappings

Set of [GetRecurringDepositProductsProductIdFeeToIncomeAccountMappings]

id

Integer

int32

interestCalculationDaysInYearType

GetRecurringDepositProductsInterestCalculationDaysInYearType

interestCalculationType

GetRecurringDepositProductsInterestCalculationType

interestCompoundingPeriodType

GetRecurringDepositProductsProductIdInterestCompoundingPeriodType

interestPostingPeriodType

GetRecurringDepositProductsInterestPostingPeriodType

maxDepositTerm

Integer

int32

maxDepositTermType

GetRecurringDepositProductsProductIdMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetRecurringDepositProductsProductIdMinDepositTermType

name

String

penaltyToIncomeAccountMappings

Set of [GetRecurringDepositProductsProductIdPenaltyToIncomeAccountMappings]

preClosurePenalApplicable

Boolean

preClosurePenalInterest

Double

double

preClosurePenalInterestOnType

GetRecurringDepositProductsProductIdPreClosurePenalInterestOnType

recurringDepositFrequency

Integer

int32

recurringDepositFrequencyType

GetRecurringDepositProductsRecurringDepositFrequencyType

shortName

String

=== GetRecurringDepositProductsProductIdSavingsControlAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdSavingsReferenceAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsProductIdTransfersInSuspenseAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetRecurringDepositProductsRecurringDepositFrequencyType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetRecurringDepositProductsResponse

GetRecurringDepositProductsResponse

Field Name Required Type Description Format

accountingRule

GetRecurringDepositProductsAccountingRule

currency

GetRecurringDepositProductsCurrency

description

String

id

Integer

int32

interestCalculationDaysInYearType

GetRecurringDepositProductsInterestCalculationDaysInYearType

interestCalculationType

GetRecurringDepositProductsInterestCalculationType

interestCompoundingPeriodType

GetRecurringDepositProductsInterestCompoundingPeriodType

interestPostingPeriodType

GetRecurringDepositProductsInterestPostingPeriodType

maxDepositTerm

Integer

int32

maxDepositTermType

GetRecurringDepositProductsMaxDepositTermType

minDepositTerm

Integer

int32

minDepositTermType

GetRecurringDepositProductsMinDepositTermType

name

String

nominalAnnualInterestRate

Double

double

preClosurePenalApplicable

Boolean

recurringDepositFrequency

Integer

int32

recurringDepositFrequencyType

GetRecurringDepositProductsRecurringDepositFrequencyType

shortName

String

=== GetRecurringPaymentDetailData

Field Name Required Type Description Format

accountNumber

Integer

int32

bankNumber

Integer

int32

checkNumber

Integer

int32

id

Integer

int32

paymentType

GetRecurringPaymentType

receiptNumber

Integer

int32

routingCode

Integer

int32

=== GetRecurringPaymentType

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetRecurringProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetRecurringTransactionType

Field Name Required Type Description Format

approveTransfer

Boolean

code

String

deposit

Boolean

description

String

feeDeduction

Boolean

id

Integer

int32

initiateTransfer

Boolean

interestPosting

Boolean

overdraftFee

Boolean

overdraftInterest

Boolean

rejectTransfer

Boolean

withdrawTransfer

Boolean

withdrawal

Boolean

writtenoff

Boolean

=== GetRecurringTransactionsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetRecurringTransactionsTransactionType

Field Name Required Type Description Format

code

String

deposit

Boolean

description

String

feeDeduction

Boolean

id

Integer

int32

interestPosting

Boolean

withdrawal

Boolean

=== GetReportMailingJobsResponse

GetReportMailingJobsResponse

Field Name Required Type Description Format

description

String

emailAttachmentFileFormat

EnumOptionData

emailMessage

String

emailRecipients

String

emailSubject

String

id

Long

int64

isActive

Boolean

name

String

nextRunDateTime

Date

date-time

numberOfRuns

Integer

int32

recurrence

String

runAsUserId

Long

int64

startDateTime

Date

date-time

stretchyReport

Object

stretchyReportParamMap

String

timeline

ReportMailingJobTimelineData

=== GetReportMailingJobsTemplate

GetReportMailingJobsTemplate

Field Name Required Type Description Format

emailAttachmentFileFormatOptions

List of [EnumOptionData]

isActive

Boolean

stretchyReportParamDateOptions

List of [EnumOptionData]

=== GetReportsResponse

GetReportsResponse

Field Name Required Type Description Format

coreReport

Boolean

description

String

id

Long

int64

reportCategory

String

reportName

String

reportParameters

List of [object]

reportSql

String

reportSubType

String

reportType

String

useReport

Boolean

=== GetReportsTemplateResponse

GetReportsTemplateResponse

Field Name Required Type Description Format

allowedParameters

List of [object]

allowedReportSubTypes

List of [string]

allowedReportTypes

List of [string]

=== GetRescheduleReasonsAllowedTypes

Field Name Required Type Description Format

active

Boolean

description

String

id

Integer

int32

mandatory

Boolean

name

String

position

Integer

int32

=== GetRescheduleReasonsTemplateResponse

GetRescheduleReasonsTemplateResponse

Field Name Required Type Description Format

rescheduleReasons

Set of [GetRescheduleReasonsAllowedTypes]

=== GetResourceTypeResourceIdNotesNoteIdResponse

GetResourceTypeResourceIdNotesNoteIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

createdById

Integer

int32

createdByUsername

String

createdOn

Date

date-time

id

Integer

int32

note

String

noteType

GetNotesNoteType

updatedById

Integer

int32

updatedByUsername

String

updatedOn

Date

date-time

=== GetResourceTypeResourceIdNotesResponse

GetResourceTypeResourceIdNotesResponse

Field Name Required Type Description Format

clientId

Integer

int32

createdById

Integer

int32

createdByUsername

String

createdOn

Date

date-time

id

Integer

int32

note

String

noteType

GetNotesNoteType

updatedById

Integer

int32

updatedByUsername

String

updatedOn

Date

date-time

=== GetRolesResponse

GetRolesResponse

Field Name Required Type Description Format

description

String

id

Long

int64

name

String

=== GetRolesRoleIdPermissionsResponse

GetRolesRoleIdPermissionsResponse

Field Name Required Type Description Format

description

String

id

Long

int64

name

String

permissionUsageData

List of [GetRolesRoleIdPermissionsResponsePermissionData]

=== GetRolesRoleIdPermissionsResponsePermissionData

Field Name Required Type Description Format

actionName

String

code

String

entityName

String

grouping

String

selected

Boolean

=== GetRolesRoleIdResponse

GetRolesRoleIdResponse

Field Name Required Type Description Format

description

String

id

Long

int64

name

String

=== GetRunReportColumnHeaders

Field Name Required Type Description Format

columnName

String

columnType

String

columnValues

String

isColumnNullable

Boolean

isColumnPrimaryKey

Boolean

=== GetRunReportResponse

GetRunReportResponse

Field Name Required Type Description Format

columnHeaders

Set of [GetRunReportColumnHeaders]

data

Set of [GetPocketData]

=== GetSavingsAccountsAccountIdResponse

GetSavingsAccountsAccountIdResponse

Field Name Required Type Description Format

accountNo

String

clientId

Integer

int32

clientName

String

currency

GetSavingsCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetSavingsInterestCalculationDaysInYearType

interestCalculationType

GetSavingsInterestCalculationType

interestCompoundingPeriodType

GetSavingsInterestCompoundingPeriodType

interestPostingPeriodType

GetSavingsInterestPostingPeriodType

nominalAnnualInterestRate

Double

double

savingsProductId

Integer

int32

savingsProductName

String

status

GetSavingsStatus

summary

GetSavingsAccountsSummary

timeline

GetSavingsTimeline

=== GetSavingsAccountsResponse

GetSavingsAccountsResponse

Field Name Required Type Description Format

pageItems

Set of [GetSavingsPageItems]

totalFilteredRecords

Integer

int32

=== GetSavingsAccountsSavingsAccountIdChargesResponse

GetSavingsAccountsSavingsAccountIdChargesResponse

Field Name Required Type Description Format

accountId

Integer

int32

amount

Float

float

amountOrPercentage

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountPercentageAppliedTo

Double

double

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetChargesChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetChargesChargeTimeType

currency

GetChargesCurrencyResponse

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

=== GetSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

GetSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

Field Name Required Type Description Format

amount

Float

float

amountOrPercentage

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountPercentageAppliedTo

Double

double

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetChargesChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetChargesChargeTimeType

currency

GetChargesCurrencyResponse

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

=== GetSavingsAccountsSavingsAccountIdChargesTemplateResponse

GetSavingsAccountsSavingsAccountIdChargesTemplateResponse

Field Name Required Type Description Format

amountPaid

Float

float

amountWaived

Float

float

amountWrittenOff

Float

float

chargeOptions

Set of [GetSavingsChargesOptions]

penalty

Boolean

=== GetSavingsAccountsSummary

Field Name Required Type Description Format

accountBalance

Integer

int32

availableBalance

Integer

int32

currency

GetSavingsCurrency

=== GetSavingsAccountsTemplateResponse

GetSavingsAccountsTemplateResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

productOptions

Set of [GetSavingsProductOptions]

=== GetSavingsAssetLiabilityType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsChargePaymentMode

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsChargesChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsChargesOptions

Field Name Required Type Description Format

active

Boolean

amount

Float

float

chargeCalculationType

GetChargesChargeCalculationType

chargeTimeType

GetSavingsChargesChargeTimeType

chargesAppliesTo

GetChargesAppliesTo

currency

GetChargesCurrencyResponse

id

Integer

int32

name

String

penalty

Boolean

=== GetSavingsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetSavingsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsInterestCalculationType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsPageItems

Field Name Required Type Description Format

accountNo

String

clientId

Integer

int32

clientName

String

currency

GetSavingsCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetSavingsInterestCalculationDaysInYearType

interestCalculationType

GetSavingsInterestCalculationType

interestCompoundingPeriodType

GetSavingsInterestCompoundingPeriodType

interestPostingPeriodType

GetSavingsInterestPostingPeriodType

nominalAnnualInterestRate

Double

double

savingsProductId

Integer

int32

savingsProductName

String

status

GetSavingsStatus

summary

GetSavingsSummary

timeline

GetSavingsTimeline

=== GetSavingsProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetSavingsProductsAccountingMappingOptions

Field Name Required Type Description Format

assetAccountOptions

Set of [GetSavingsProductsAssetAccountOptions]

expenseAccountOptions

Set of [GetSavingsProductsExpenseAccountOptions]

incomeAccountOptions

Set of [GetSavingsProductsIncomeAccountOptions]

liabilityAccountOptions

Set of [GetSavingsProductsLiabilityAccountOptions]

=== GetSavingsProductsAccountingMappings

Field Name Required Type Description Format

incomeFromFeeAccount

GetSavingsProductsIncomeFromFeeAccount

incomeFromPenaltyAccount

GetSavingsProductsIncomeFromPenaltyAccount

interestOnSavingsAccount

GetSavingsProductsInterestOnSavingsAccount

savingsControlAccount

GetSavingsProductsSavingsControlAccount

savingsReferenceAccount

GetSavingsProductsSavingsReferenceAccount

transfersInSuspenseAccount

GetSavingsProductsTransfersInSuspenseAccount

=== GetSavingsProductsAccountingRule

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsAssetAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

tagId

Object

type

GetSavingsAssetLiabilityType

usage

GetSavingsProductsLiabilityUsage

=== GetSavingsProductsChargeAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsProductsChargeOptions

Field Name Required Type Description Format

active

Boolean

amount

Long

int64

chargeAppliesTo

GetSavingsProductsChargeAppliesTo

chargeCalculationType

GetSavingsChargeCalculationType

chargePaymentMode

GetSavingsChargePaymentMode

chargeTimeType

GetSavingsChargeTimeType

currency

GetSavingsCurrency

id

Integer

int32

name

String

penalty

Boolean

=== GetSavingsProductsExpenseAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

tagId

Object

type

GetSavingsProductsExpenseType

usage

GetSavingsProductsLiabilityUsage

=== GetSavingsProductsExpenseType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsProductsFeeToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetSavingsProductsFeeToIncomeAccountMappingsCharge

incomeAccount

GetSavingsProductsFeeToIncomeAccountMappingsIncomeAccount

=== GetSavingsProductsFeeToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetSavingsProductsFeeToIncomeAccountMappingsIncomeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsFundSourceAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsIncomeAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

tagId

Object

type

GetSavingsProductsIncomeType

usage

GetSavingsProductsLiabilityUsage

=== GetSavingsProductsIncomeFromFeeAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsIncomeFromPenaltyAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsIncomeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsProductsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsInterestCalculationType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsInterestOnSavingsAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsLiabilityAccountOptions

Field Name Required Type Description Format

disabled

Boolean

glCode

Integer

int32

id

Integer

int32

manualEntriesAllowed

Boolean

name

String

nameDecorated

String

tagId

GetSavingsProductsLiabilityTagId

type

GetSavingsProductsLiabilityType

usage

GetSavingsProductsLiabilityUsage

=== GetSavingsProductsLiabilityTagId

Field Name Required Type Description Format

id

Integer

int32

=== GetSavingsProductsLiabilityType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsProductsLiabilityUsage

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSavingsProductsLockinPeriodFrequencyTypeOptions

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsPaymentChannelToFundSourceMappings

Field Name Required Type Description Format

fundSourceAccount

GetSavingsProductsFundSourceAccount

paymentType

GetSavingsProductsPaymentType

=== GetSavingsProductsPaymentType

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetSavingsProductsPaymentTypeOptions

Field Name Required Type Description Format

description

String

id

Integer

int32

isCashPayment

Boolean

name

String

position

Integer

int32

=== GetSavingsProductsPenaltyToIncomeAccountMappings

Field Name Required Type Description Format

charge

GetSavingsProductsPenaltyToIncomeAccountMappingsCharge

incomeAccount

GetSavingsProductsIncomeFromPenaltyAccount

=== GetSavingsProductsPenaltyToIncomeAccountMappingsCharge

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

name

String

penalty

Boolean

=== GetSavingsProductsProductIdResponse

GetSavingsProductsProductIdResponse

Field Name Required Type Description Format

accountingMappings

GetSavingsProductsAccountingMappings

accountingRule

GetSavingsProductsAccountingRule

charges

List of [integer]

int32

currency

GetSavingsCurrency

description

String

feeToIncomeAccountMappings

Set of [GetSavingsProductsFeeToIncomeAccountMappings]

id

Integer

int32

interestCalculationDaysInYearType

GetSavingsProductsInterestCalculationDaysInYearType

interestCalculationType

GetSavingsProductsInterestCalculationType

interestCompoundingPeriodType

GetSavingsProductsInterestCompoundingPeriodType

interestPostingPeriodType

GetSavingsProductsInterestPostingPeriodType

name

String

nominalAnnualInterestRate

BigDecimal

paymentChannelToFundSourceMappings

Set of [GetSavingsProductsPaymentChannelToFundSourceMappings]

penaltyToIncomeAccountMappings

Set of [GetSavingsProductsPenaltyToIncomeAccountMappings]

shortName

String

withdrawalFeeForTransfers

Boolean

=== GetSavingsProductsResponse

GetSavingsProductsResponse

Field Name Required Type Description Format

accountingRule

GetSavingsProductsAccountingRule

currency

GetSavingsCurrency

description

String

id

Integer

int32

interestCalculationDaysInYearType

GetSavingsProductsInterestCalculationDaysInYearType

interestCalculationType

GetSavingsProductsInterestCalculationType

interestCompoundingPeriodType

GetSavingsProductsInterestCompoundingPeriodType

interestPostingPeriodType

GetSavingsProductsInterestPostingPeriodType

name

String

nominalAnnualInterestRate

BigDecimal

shortName

String

withdrawalFeeForTransfers

Boolean

=== GetSavingsProductsSavingsControlAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsSavingsReferenceAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsTemplateAccountingRule

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsProductsTemplateResponse

GetSavingsProductsTemplateResponse

Field Name Required Type Description Format

accountMapping

GetSavingsCurrency

accountingMappingOptions

GetSavingsProductsAccountingMappingOptions

accountingRule

GetSavingsProductsTemplateAccountingRule

accountingRuleOptions

Set of [GetSavingsProductsTemplateAccountingRule]

chargeOptions

Set of [GetSavingsProductsChargeOptions]

currency

GetSavingsCurrency

currencyOptions

Set of [GetSavingsCurrency]

interestCalculationDaysInYearType

GetSavingsProductsInterestCalculationDaysInYearType

interestCalculationDaysInYearTypeOptions

Set of [GetSavingsProductsInterestCalculationDaysInYearType]

interestCalculationType

GetSavingsProductsInterestCalculationType

interestCalculationTypeOptions

Set of [GetSavingsProductsInterestCalculationType]

interestCompoundingPeriodType

GetSavingsProductsInterestCompoundingPeriodType

interestCompoundingPeriodTypeOptions

Set of [GetSavingsProductsInterestCompoundingPeriodType]

interestPostingPeriodType

GetSavingsProductsInterestPostingPeriodType

interestPostingPeriodTypeOptions

Set of [GetSavingsProductsInterestPostingPeriodType]

lockinPeriodFrequencyTypeOptions

Set of [GetSavingsProductsLockinPeriodFrequencyTypeOptions]

paymentTypeOptions

Set of [GetSavingsProductsPaymentTypeOptions]

withdrawalFeeTypeOptions

Set of [GetSavingsProductsWithdrawalFeeTypeOptions]

=== GetSavingsProductsTransfersInSuspenseAccount

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetSavingsProductsWithdrawalFeeTypeOptions

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== GetSavingsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

value

String

withdrawnByApplicant

Boolean

=== GetSavingsSummary

Field Name Required Type Description Format

accountBalance

Integer

int32

currency

GetSavingsCurrency

=== GetSavingsTimeline

Field Name Required Type Description Format

activatedOnDate

date

date

approvedByFirstname

String

approvedByLastname

String

approvedByUsername

String

approvedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetSchedulerResponse

GetSchedulerResponse

Field Name Required Type Description Format

active

Boolean

=== GetSearchResponse

GetSearchResponse

Field Name Required Type Description Format

entityAccountNo

Long

int64

entityExternalId

String

entityId

Long

int64

entityName

String

entityStatus

EnumOptionData

entityType

String

parentId

Long

int64

parentName

String

=== GetSelfBeneficiariesAccountOptions

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfBeneficiariesTPTResponse

GetSelfBeneficiariesTPTResponse

Field Name Required Type Description Format

accountNumber

Long

int64

accountType

GetSelfBeneficiariesAccountOptions

clientName

String

id

Integer

int32

name

String

officeName

String

transferLimit

Integer

int32

=== GetSelfBeneficiariesTPTTemplateResponse

GetSelfBeneficiariesTPTTemplateResponse

Field Name Required Type Description Format

accountTypeOptions

Set of [GetSelfBeneficiariesAccountOptions]

=== GetSelfClientsChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfClientsChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfClientsChargesPageItems

Field Name Required Type Description Format

amount

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetSelfClientsChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetSelfClientsChargeTimeType

clientId

Integer

int32

currency

GetSelfClientsSavingsAccountsCurrency

dueDate

date

date

id

Integer

int32

isActive

Boolean

isPaid

Boolean

isWaived

Boolean

name

String

penalty

Boolean

=== GetSelfClientsClientIdAccountsResponse

GetSelfClientsClientIdAccountsResponse

Field Name Required Type Description Format

loanAccounts

Set of [GetSelfClientsLoanAccounts]

savingsAccounts

Set of [GetSelfClientsSavingsAccounts]

=== GetSelfClientsClientIdChargesChargeIdResponse

GetSelfClientsClientIdChargesChargeIdResponse

Field Name Required Type Description Format

amount

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetSelfClientsChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetSelfClientsChargeTimeType

clientId

Integer

int32

currency

GetSelfClientsSavingsAccountsCurrency

dueDate

date

date

id

Integer

int32

isActive

Boolean

isPaid

Boolean

isWaived

Boolean

name

String

penalty

Boolean

=== GetSelfClientsClientIdChargesResponse

GetSelfClientsClientIdChargesResponse

Field Name Required Type Description Format

pageItems

Set of [GetSelfClientsChargesPageItems]

totalFilteredRecords

Integer

int32

=== GetSelfClientsClientIdResponse

GetSelfClientsClientIdResponse

Field Name Required Type Description Format

accountNo

Long

int64

activationDate

date

date

active

Boolean

displayName

String

firstname

String

groups

List of [string]

id

Integer

int32

lastname

String

officeId

Integer

int32

officeName

String

savingsProductId

Integer

int32

savingsProductName

String

status

GetSelfClientsStatus

timeline

GetSelfClientsTimeline

=== GetSelfClientsClientIdTransactionsPageItems

Field Name Required Type Description Format

amount

Double

double

currency

GetSelfClientsSavingsAccountsCurrency

date

date

date

id

Integer

int32

officeId

Integer

int32

officeName

String

reversed

Boolean

submittedOnDate

date

date

type

GetSelfClientsClientIdTransactionsType

=== GetSelfClientsClientIdTransactionsResponse

GetSelfClientsClientIdTransactionsResponse

Field Name Required Type Description Format

pageItems

Set of [GetSelfClientsClientIdTransactionsPageItems]

totalFilteredRecords

Integer

int32

=== GetSelfClientsClientIdTransactionsTransactionIdResponse

GetSelfClientsClientIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

amount

Float

float

currency

GetSelfClientsSavingsAccountsCurrency

date

date

date

id

Integer

int32

officeId

Integer

int32

officeName

String

reversed

Boolean

submittedOnDate

date

date

type

GetSelfClientsClientIdTransactionsType

=== GetSelfClientsClientIdTransactionsType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfClientsLoanAccounts

Field Name Required Type Description Format

accountNo

Long

int64

externalId

Integer

int32

id

Integer

int32

loanCycle

Integer

int32

loanType

GetSelfClientsLoanAccountsType

productId

Integer

int32

productName

String

status

GetSelfClientsLoanAccountsStatus

=== GetSelfClientsLoanAccountsStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== GetSelfClientsLoanAccountsType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfClientsPageItems

Field Name Required Type Description Format

accountNo

Long

int64

activationDate

date

date

active

Boolean

displayName

String

fullname

String

id

Integer

int32

officeId

Integer

int32

officeName

String

status

GetSelfClientsStatus

=== GetSelfClientsResponse

GetSelfClientsResponse

Field Name Required Type Description Format

pageItems

Set of [GetSelfClientsPageItems]

totalFilteredRecords

Integer

int32

=== GetSelfClientsSavingsAccounts

Field Name Required Type Description Format

accountNo

Long

int64

currency

GetSelfClientsSavingsAccountsCurrency

id

Integer

int32

productId

Integer

int32

productName

String

status

GetSelfClientsSavingsAccountsStatus

=== GetSelfClientsSavingsAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetSelfClientsSavingsAccountsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

withdrawnByApplicant

Boolean

=== GetSelfClientsStatus

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfClientsTimeline

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== GetSelfLoansChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfLoansChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfLoansLoanIdChargesResponse

GetSelfLoansLoanIdChargesResponse

Field Name Required Type Description Format

amount

Float

float

amountOrPercentage

Float

float

amountOutstanding

Float

float

amountPaid

Float

float

amountPercentageAppliedTo

Double

double

amountWaived

Float

float

amountWrittenOff

Float

float

chargeCalculationType

GetSelfLoansChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetSelfLoansChargeTimeType

currency

GetLoanCurrency

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

=== GetSelfLoansLoanIdResponse

GetSelfLoansLoanIdResponse

Field Name Required Type Description Format

accountNo

Long

int64

amortizationType

GetLoansLoanIdAmortizationType

annualInterestRate

Integer

int32

clientId

Integer

int32

clientName

String

clientOfficeId

Integer

int32

currency

GetLoansLoanIdCurrency

id

Long

int64

interestCalculationPeriodType

GetLoansLoanIdInterestCalculationPeriodType

interestRateFrequencyType

GetLoansLoanIdInterestRateFrequencyType

interestRatePerPeriod

Integer

int32

interestType

GetLoansLoanIdInterestType

loanOfficerId

Integer

int32

loanOfficerName

String

loanProductDescription

String

loanProductId

Integer

int32

loanProductName

String

loanPurposeId

Integer

int32

loanPurposeName

String

loanType

GetLoansLoanIdLoanType

numberOfRepayments

Integer

int32

principal

Long

int64

repaymentEvery

Integer

int32

repaymentFrequencyType

GetLoansLoanIdRepaymentFrequencyType

status

GetLoansLoanIdStatus

summary

GetLoansLoanIdSummary

termFrequency

Integer

int32

termPeriodFrequencyType

GetLoansLoanIdTermPeriodFrequencyType

timeline

GetLoansLoanIdTimeline

transactionProcessingStrategyCode

String

=== GetSelfLoansLoanIdTransactionsTransactionIdResponse

GetSelfLoansLoanIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

amount

Float

float

currency

GetLoanCurrency

date

date

date

id

Integer

int32

interestPortion

Float

float

manuallyReversed

Boolean

type

GetSelfLoansLoanIdTransactionsType

=== GetSelfLoansLoanIdTransactionsType

Field Name Required Type Description Format

code

String

contra

Boolean

description

String

disbursement

Boolean

id

Integer

int32

recoveryRepayment

Boolean

repayment

Boolean

repaymentAtDisbursement

Boolean

waiveCharges

Boolean

waiveInterest

Boolean

writeOff

Boolean

=== GetSelfLoansProductOptions

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetSelfLoansTemplateResponse

GetSelfLoansTemplateResponse

Field Name Required Type Description Format

clientId

Integer

int32

clientName

String

clientOfficeId

Integer

int32

productOptions

Set of [GetSelfLoansProductOptions]

timeline

GetSelfLoansTimeline

=== GetSelfLoansTimeline

Field Name Required Type Description Format

expectedDisbursementDate

date

date

=== GetSelfSavingsAccountsAccountIdChargesResponse

GetSelfSavingsAccountsAccountIdChargesResponse

Field Name Required Type Description Format

accountId

Integer

int32

amount

Integer

int32

amountOrPercentage

Integer

int32

amountOutstanding

Integer

int32

amountPaid

Integer

int32

amountPercentageAppliedTo

Double

double

amountWaived

Integer

int32

amountWrittenOff

Integer

int32

chargeCalculationType

GetSelfSavingsChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetSelfSavingsChargeTimeType

currency

GetSelfSavingsCurrency

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

=== GetSelfSavingsAccountsAccountIdChargesSavingsAccountChargeIdResponse

GetSelfSavingsAccountsAccountIdChargesSavingsAccountChargeIdResponse

Field Name Required Type Description Format

amount

Integer

int32

amountOrPercentage

Integer

int32

amountOutstanding

Integer

int32

amountPaid

Integer

int32

amountPercentageAppliedTo

Double

double

amountWaived

Integer

int32

amountWrittenOff

Integer

int32

chargeCalculationType

GetSelfSavingsChargeCalculationType

chargeId

Integer

int32

chargeTimeType

GetSelfSavingsChargeTimeType

currency

GetSelfSavingsCurrency

id

Integer

int32

name

String

penalty

Boolean

percentage

Double

double

=== GetSelfSavingsAccountsAccountIdTransactionsTransactionIdResponse

GetSelfSavingsAccountsAccountIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

accountId

Integer

int32

accountNo

Long

int64

amount

Integer

int32

currency

GetSelfSavingsTransactionCurrency

date

date

date

id

Integer

int32

paymentDetailData

GetSelfSavingsPaymentDetailData

reversed

Boolean

runningBalance

Integer

int32

transactionType

GetSelfSavingsTransactionType

=== GetSelfSavingsAccountsResponse

GetSelfSavingsAccountsResponse

Field Name Required Type Description Format

accountNo

Long

int64

clientId

Integer

int32

clientName

String

currency

GetSelfSavingsCurrency

fieldOfficerId

Integer

int32

id

Integer

int32

interestCalculationDaysInYearType

GetSelfSavingsInterestCalculationDaysInYearType

interestCalculationType

GetSelfSavingsInterestCalculationType

interestCompoundingPeriodType

GetSelfSavingsInterestCompoundingPeriodType

interestPostingPeriodType

GetSelfSavingsInterestPostingPeriodType

nominalAnnualInterestRate

Double

double

savingsProductId

Integer

int32

savingsProductName

String

status

GetSelfSavingsStatus

summary

GetSelfSavingsSummary

timeline

GetSelfSavingsTimeline

=== GetSelfSavingsChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetSelfSavingsInterestCalculationDaysInYearType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsInterestCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsInterestCompoundingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsInterestPostingPeriodType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfSavingsPaymentDetailData

Field Name Required Type Description Format

accountNumber

Integer

int32

bankNumber

Integer

int32

checkNumber

Integer

int32

id

Integer

int32

paymentType

GetSelfSavingsPaymentType

receiptNumber

Integer

int32

routingCode

Integer

int32

=== GetSelfSavingsPaymentType

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetSelfSavingsStatus

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

description

String

id

Integer

int32

rejected

Boolean

submittedAndPendingApproval

Boolean

withdrawnByApplicant

Boolean

=== GetSelfSavingsSummary

Field Name Required Type Description Format

accountBalance

Integer

int32

currency

GetSelfSavingsCurrency

=== GetSelfSavingsTimeline

Field Name Required Type Description Format

submittedOnDate

date

date

=== GetSelfSavingsTransactionCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

inMultiplesOf

Integer

int32

name

String

nameCode

String

=== GetSelfSavingsTransactionType

Field Name Required Type Description Format

code

String

deposit

Boolean

description

String

feeDeduction

Boolean

id

Integer

int32

interestPosting

Boolean

withdrawal

Boolean

=== GetSelfUserDetailsOrganisationalRole

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSelfUserDetailsResponse

GetSelfUserDetailsResponse

Field Name Required Type Description Format

authenticated

Boolean

base64EncodedAuthenticationKey

String

clients

List of [integer]

int32

isSelfServiceUser

Boolean

officeId

Integer

int32

officeName

String

organisationalRole

GetSelfUserDetailsOrganisationalRole

permissions

List of [string]

roles

Set of [GetSelfUserDetailsRoles]

staffDisplayName

String

staffId

Integer

int32

userId

Integer

int32

username

String

=== GetSelfUserDetailsRoles

Field Name Required Type Description Format

description

String

id

Integer

int32

name

String

=== GetShareAccountsChargeAppliesTo

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsChargeCalculationType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsChargeOptions

Field Name Required Type Description Format

active

Boolean

amount

Integer

int32

calculationType

GetShareAccountsChargeCalculationType

chargeAppliesTo

GetShareAccountsChargeAppliesTo

chargeTimeType

GetShareAccountsChargeTimeType

currency

GetShareAccountsCurrency

id

Integer

int32

name

String

paymentMode

GetShareAccountsChargePaymentMode

penalty

Boolean

=== GetShareAccountsChargePaymentMode

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsChargeTimeType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsClientIdProductIdAccountingRule

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsClientIdProductIdLockPeriodTypeEnum

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetShareAccountsClientIdProductIdResponse

GetShareAccountsClientIdProductIdResponse

Field Name Required Type Description Format

chargeOptions

Set of [GetClientIdProductIdChargeOptions]

productOptions

Set of [GetClientIdProductIdProductOptions]

=== GetShareAccountsCurrency

Field Name Required Type Description Format

code

String

decimalPlaces

Integer

int32

displayLabel

String

displaySymbol

String

name

String

nameCode

String

=== GetShareAccountsIncomeFromFeeAccountId

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetShareAccountsShareEquityId

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetShareAccountsShareReferenceId

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetShareAccountsShareSuspenseId

Field Name Required Type Description Format

glCode

Integer

int32

id

Integer

int32

name

String

=== GetShareEquityId

Field Name Required Type Description Format

glCode

String

id

Integer

int32

name

String

=== GetShareReferenceId

Field Name Required Type Description Format

glCode

String

id

Integer

int32

name

String

=== GetShareSuspenseId

Field Name Required Type Description Format

glCode

String

id

Integer

int32

name

String

=== GetStandingInstructionHistoryFromAccount

Field Name Required Type Description Format

accountNo

Long

int64

id

Long

int64

productId

Long

int64

productName

String

=== GetStandingInstructionHistoryPageItemsFromClient

Field Name Required Type Description Format

displayName

String

id

Long

int64

officeId

Long

int64

officeName

String

=== GetStandingInstructionHistoryPageItemsResponse

Field Name Required Type Description Format

amount

Float

float

errorLog

String

executionTime

date

date

fromAccount

GetStandingInstructionHistoryFromAccount

fromAccountType

GetFromAccountTypeStandingInstructionSwagger

fromClient

GetStandingInstructionHistoryPageItemsFromClient

fromOffice

GetFromOfficeStandingInstructionSwagger

name

String

standingInstructionId

Long

int64

status

String

toAccount

GetStandingInstructionHistoryToAccount

toAccountType

GetToAccountTypeStandingInstructionSwagger

toClient

GetStandingInstructionHistoryToClient

toOffice

GetToOfficeStandingInstructionSwagger

=== GetStandingInstructionHistoryToAccount

Field Name Required Type Description Format

accountNo

Long

int64

id

Long

int64

productId

Long

int64

productName

String

=== GetStandingInstructionHistoryToClient

Field Name Required Type Description Format

displayName

String

id

Long

int64

officeId

Long

int64

officeName

String

=== GetStandingInstructionRunHistoryResponse

GetStandingInstructionRunHistoryResponse

Field Name Required Type Description Format

pageItems

Set of [GetStandingInstructionHistoryPageItemsResponse]

totalFilteredRecords

Integer

int32

=== GetStandingInstructionsResponse

GetStandingInstructionsResponse

Field Name Required Type Description Format

pageItems

Set of [GetPageItemsStandingInstructionSwagger]

totalFilteredRecords

Integer

int32

=== GetStandingInstructionsStandingInstructionIdResponse

GetStandingInstructionsStandingInstructionIdResponse

Field Name Required Type Description Format

accountDetailId

Long

int64

amount

Float

float

fromAccount

GetFromAccountStandingInstructionSwagger

fromAccountType

GetFromAccountTypeStandingInstructionSwagger

fromClient

GetFromClientStandingInstructionSwagger

fromOffice

GetFromOfficeStandingInstructionSwagger

id

Long

int64

instructionType

GetInstructionTypeStandingInstructionSwagger

name

String

priority

GetPriorityStandingInstructionSwagger

recurrenceFrequency

GetRecurrenceFrequencyStandingInstructionSwagger

recurrenceInterval

Integer

int32

recurrenceOnMonthDay

date

date

recurrenceType

GetRecurrenceTypeStandingInstructionSwagger

status

GetStatusStandingInstructionSwagger

toAccount

GetToAccountStandingInstructionSwagger

toAccountType

GetToAccountTypeStandingInstructionSwagger

toClient

GetToClientStandingInstructionSwagger

toOffice

GetToOfficeStandingInstructionSwagger

transferType

GetTransferTypeStandingInstructionSwagger

validFrom

date

date

=== GetStandingInstructionsTemplateResponse

GetStandingInstructionsTemplateResponse

Field Name Required Type Description Format

fromAccountType

GetFromAccountTypeResponseStandingInstructionSwagger

fromAccountTypeOptions

Set of [GetFromAccountTypeOptionsResponseStandingInstructionSwagger]

fromClientOptions

Set of [GetFromClientOptionsResponseStandingInstructionSwagger]

fromOffice

GetFromOfficeResponseStandingInstructionSwagger

fromOfficeOptions

Set of [GetFromOfficeOptionsResponseStandingInstructionSwagger]

instructionTypeOptions

Set of [GetInstructionTypeOptionsResponseStandingInstructionSwagger]

priorityOptions

Set of [GetPriorityOptionsResponseStandingInstructionSwagger]

recurrenceFrequencyOptions

Set of [GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger]

recurrenceTypeOptions

Set of [GetRecurrenceTypeOptionsResponseStandingInstructionSwagger]

statusOptions

Set of [GetStatusOptionsResponseStandingInstructionSwagger]

toAccountTypeOptions

Set of [GetToAccountTypeOptionsResponseStandingInstructionSwagger]

toOfficeOptions

Set of [GetToOfficeOptionsResponseStandingInstructionSwagger]

transferTypeOptions

Set of [GetTransferTypeOptionsResponseStandingInstructionSwagger]

=== GetStatusOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetStatusStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetSurveyResponse

GetSurveyResponse

Field Name Required Type Description Format

datatableData

GetSurveyResponseDatatableData

enabled

Boolean

=== GetSurveyResponseDatatableData

Field Name Required Type Description Format

applicationTableName

String

columnHeaderData

List of [ResultsetColumnHeaderData]

registeredTableName

String

=== GetTaxesComponentsCreditAccount

Field Name Required Type Description Format

glCode

String

id

Integer

int32

name

String

=== GetTaxesComponentsCreditAccountType

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetTaxesComponentsResponse

GetTaxesComponentsResponse

Field Name Required Type Description Format

creditAccount

GetTaxesComponentsCreditAccount

creditAccountType

GetTaxesComponentsCreditAccountType

id

Integer

int32

name

String

percentage

Float

float

startDate

date

date

taxComponentsHistories

Set of [object]

=== GetTaxesGroupResponse

GetTaxesGroupResponse

Field Name Required Type Description Format

id

Integer

int32

name

String

taxAssociations

Set of [GetTaxesGroupTaxAssociations]

=== GetTaxesGroupTaxAssociations

Field Name Required Type Description Format

id

Integer

int32

startDate

date

date

taxComponent

GetTaxesGroupTaxComponent

=== GetTaxesGroupTaxComponent

Field Name Required Type Description Format

id

Integer

int32

name

String

=== GetTellersResponse

GetTellersResponse

Field Name Required Type Description Format

creditAccountId

Long

int64

debitAccountId

Long

int64

id

Long

int64

name

String

officeId

Long

int64

officeName

String

startDate

date

date

status

String

Enum: INVALID, PENDING, ACTIVE, INACTIVE, CLOSED,

=== GetTellersTellerIdCashiersCashierIdResponse

GetTellersTellerIdCashiersCashierIdResponse

Field Name Required Type Description Format

description

String

endDate

date

date

endTime

String

id

Long

int64

isFullDay

Boolean

staffId

Long

int64

staffName

String

startDate

date

date

startTime

String

tellerId

Long

int64

tellerName

String

=== GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse

GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse

Field Name Required Type Description Format

cashierId

Long

int64

cashierName

String

cashierTransactions

PageCashierTransactionData

netCash

BigDecimal

officeName

String

sumCashAllocation

BigDecimal

sumCashSettlement

BigDecimal

sumInwardCash

BigDecimal

sumOutwardCash

BigDecimal

tellerId

Long

int64

tellerName

String

=== GetTellersTellerIdCashiersCashiersIdTransactionsResponse

GetTellersTellerIdCashiersCashiersIdTransactionsResponse

Field Name Required Type Description Format

cashierId

Long

int64

cashierName

String

createdDate

Date

date-time

entityId

Long

int64

entityType

String

id

Long

int64

officeId

Long

int64

officeName

String

tellerId

Long

int64

txnAmount

BigDecimal

txnDate

date

date

txnNote

String

txnType

CashierTxnType

=== GetTellersTellerIdCashiersCashiersIdTransactionsTemplateResponse

GetTellersTellerIdCashiersCashiersIdTransactionsTemplateResponse

Field Name Required Type Description Format

cashierData

CashierData

cashierId

Long

int64

cashierName

String

currencyOptions

List of [CurrencyData]

endDate

date

date

officeName

String

startDate

date

date

tellerId

Long

int64

tellerName

String

=== GetTellersTellerIdCashiersResponse

GetTellersTellerIdCashiersResponse

Field Name Required Type Description Format

cashiers

List of [CashierData]

officeId

Long

int64

officeName

String

tellerId

Long

int64

tellerName

String

=== GetTellersTellerIdCashiersTemplateResponse

GetTellersTellerIdCashiersTemplateResponse

Field Name Required Type Description Format

officeId

Long

int64

officeName

String

staffOptions

List of [StaffData]

tellerId

Long

int64

tellerName

String

=== GetTemplatesResponse

GetTemplatesResponse

Field Name Required Type Description Format

entity

Long

int64

id

Long

int64

mappers

List of [TemplateMapper]

name

String

text

String

type

Long

int64

=== GetTemplatesTemplateIdResponse

GetTemplatesTemplateIdResponse

Field Name Required Type Description Format

entity

Long

int64

id

Long

int64

mappers

List of [TemplateMapper]

name

String

text

String

type

Long

int64

=== GetTemplatesTemplateResponse

GetTemplatesTemplateResponse

Field Name Required Type Description Format

entity

Long

int64

id

Long

int64

mappers

List of [TemplateMapper]

name

String

text

String

type

Long

int64

=== GetToAccountStandingInstructionSwagger

Field Name Required Type Description Format

accountNo

Long

int64

id

Long

int64

productId

Long

int64

productName

String

=== GetToAccountTypeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetToAccountTypeStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetToClientStandingInstructionSwagger

Field Name Required Type Description Format

displayName

String

id

Long

int64

officeId

Long

int64

officeName

String

=== GetToOfficeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

id

Integer

int32

name

String

nameDecorated

String

=== GetToOfficeStandingInstructionSwagger

Field Name Required Type Description Format

id

Long

int64

name

String

=== GetTransferTypeOptionsResponseStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetTransferTypeStandingInstructionSwagger

Field Name Required Type Description Format

code

String

description

String

id

Integer

int32

=== GetUserDetailsResponse

GetUserDetailsResponse

Field Name Required Type Description Format

accessToken

String

authenticated

Boolean

officeId

Long

int64

officeName

String

organisationalRole

EnumOptionData

permissions

List of [string]

roles

List of [RoleData]

staffDisplayName

String

staffId

Long

int64

userId

Long

int64

username

String

=== GetUsersResponse

GetUsersResponse

Field Name Required Type Description Format

email

String

firstname

String

id

Long

int64

lastname

String

officeId

Long

int64

officeName

String

passwordNeverExpires

Boolean

selectedRoles

List of [RoleData]

staff

StaffData

username

String

=== GetUsersTemplateResponse

GetUsersTemplateResponse

Field Name Required Type Description Format

allowedOffices

List of [OfficeData]

availableRoles

List of [RoleData]

selfServiceRoles

List of [RoleData]

=== GetUsersUserIdResponse

GetUsersUserIdResponse

Field Name Required Type Description Format

availableRoles

List of [RoleData]

email

String

firstname

String

id

Long

int64

lastname

String

officeId

Long

int64

officeName

String

passwordNeverExpires

Boolean

selectedRoles

List of [RoleData]

staff

StaffData

username

String

=== GetWorkingDaysResponse

GetWorkingDaysResponse

Field Name Required Type Description Format

extendTermForDailyRepayments

Boolean

id

Long

int64

recurrence

String

repaymentRescheduleType

EnumOptionData

=== GetWorkingDaysTemplateResponse

GetWorkingDaysTemplateResponse

Field Name Required Type Description Format

repaymentRescheduleOptions

List of [EnumOptionData]

=== GlobalConfigurationPropertyData

Field Name Required Type Description Format

dateValue

date

date

description

String

enabled

Boolean

id

Long

int64

name

String

stringValue

String

trapDoor

Boolean

value

Long

int64

=== GrantedAuthority

Field Name Required Type Description Format

authority

String

=== Group

Field Name Required Type Description Format

accountNumberRequiresAutoGeneration

Boolean

activationLocalDate

date

date

active

Boolean

activeClientMembers

Set of [Client]

center

Boolean

childGroup

Boolean

clientMembers

Set of [Client]

closed

Boolean

group

Boolean

groupLevel

GroupLevel

groupMembers

List of [Group]

id

Long

int64

new

Boolean

notActive

Boolean

notPending

Boolean

office

Office

parent

Group

pending

Boolean

staff

Staff

submittedOnDate

date

date

transferInProgress

Boolean

transferInProgressOrOnHold

Boolean

transferOnHold

Boolean

=== GroupGeneralData

Field Name Required Type Description Format

accountNo

String

activationDate

date

date

active

Boolean

activeClientMembers

List of [ClientData]

availableRoles

List of [CodeValueData]

calendarsData

List of [CalendarData]

centerId

Long

int64

centerName

String

centerOptions

List of [CenterData]

childGroup

Boolean

clientMembers

List of [ClientData]

clientOptions

List of [ClientData]

closureReasons

List of [CodeValueData]

collectionMeetingCalendar

CalendarData

datatables

List of [DatatableData]

dateFormat

String

externalId

String

groupLevel

String

groupRoles

List of [GroupRoleData]

hierarchy

String

id

Long

int64

locale

String

name

String

officeId

Long

int64

officeName

String

officeOptions

List of [OfficeData]

parentId

Long

int64

rowIndex

Integer

int32

selectedRole

GroupRoleData

staffId

Long

int64

staffName

String

staffOptions

List of [StaffData]

status

EnumOptionData

submittedOnDate

date

date

timeline

Object

=== GroupLevel

Field Name Required Type Description Format

center

Boolean

group

Boolean

id

Long

int64

levelName

String

new

Boolean

parentId

Long

int64

recursable

Boolean

superParent

Boolean

=== GroupRoleData

Field Name Required Type Description Format

clientId

Long

int64

clientName

String

id

Long

int64

role

CodeValueData

=== Grouping

Field Name Required Type Description Format

entities

List of [Entity]

name

String

Field Name Required Type Description Format

name

String

value

String

=== HookTemplateData

Field Name Required Type Description Format

id

Long

int64

name

String

schema

List of [Field]

=== IdDocument

Field Name Required Type Description Format

idNumber

String

idType

String

issuerCountry

String

otherIdDescription

String

=== Image

Field Name Required Type Description Format

id

Long

int64

location

String

new

Boolean

storageType

Integer

int32

=== InlineJobRequest

InlineJobRequest

Field Name Required Type Description Format

loanIds

List of [long]

int64

=== InlineJobResponse

InlineJobResponse

Field Name Required Type Description Format

loanIds

List of [long]

int64

=== InteropAccountData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

transactionId

String

=== InteropIdentifierAccountResponseData

Field Name Required Type Description Format

accountId

X

String

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

transactionId

String

=== InteropIdentifierRequestData

Field Name Required Type Description Format

accountId

X

String

idType

X

String

Enum: MSISDN, EMAIL, PERSONAL_ID, BUSINESS, DEVICE, ACCOUNT_ID, IBAN, ALIAS,

idValue

X

String

subIdOrType

String

=== InteropIdentifiersResponseData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

transactionId

String

=== InteropKycResponseData

Field Name Required Type Description Format

birthCountry

String

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

contactPhone

String

creditBureauReportData

Map of [object]

dateOfBirth

String

emailAddress

String

gender

String

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

idDocument

List of [IdDocument]

loanId

Long

int64

nationality

String

officeId

Long

int64

postalAddress

PostalAddress

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

subjectName

SubjectName

transactionId

String

=== InteropQuoteRequestData

Field Name Required Type Description Format

accountId

X

String

amount

X

MoneyData

amountType

X

String

Enum: SEND, RECEIVE,

expiration

Date

date-time

expirationLocalDate

date

date

extensionList

List of [ExtensionData]

fees

MoneyData

geoCode

GeoCodeData

note

String

quoteCode

X

String

requestCode

String

transactionCode

X

String

transactionRole

X

String

Enum: PAYER, PAYEE,

transactionType

InteropTransactionTypeData

=== InteropQuoteResponseData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

expiration

String

extensionList

List of [ExtensionData]

fspCommission

MoneyData

fspFee

MoneyData

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

quoteCode

X

String

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

state

X

String

Enum: ACCEPTED, REJECTED,

subResourceId

Long

int64

transactionCode

X

String

transactionId

String

=== InteropTransactionRequestData

Field Name Required Type Description Format

accountId

X

String

amount

X

MoneyData

expiration

Date

date-time

expirationLocalDate

date

date

extensionList

List of [ExtensionData]

geoCode

GeoCodeData

note

String

requestCode

String

transactionCode

X

String

transactionRole

X

String

Enum: PAYER, PAYEE,

transactionType

InteropTransactionTypeData

=== InteropTransactionRequestResponseData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

expiration

String

extensionList

List of [ExtensionData]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

requestCode

X

String

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

state

X

String

Enum: ACCEPTED, REJECTED,

subResourceId

Long

int64

transactionCode

X

String

transactionId

String

=== InteropTransactionTypeData

Field Name Required Type Description Format

initiator

X

String

Enum: PAYER, PAYEE,

initiatorType

X

String

Enum: CONSUMER, AGENT, BUSINESS, DEVICE,

scenario

X

String

Enum: DEPOSIT, WITHDRAWAL, TRANSFER, PAYMENT, REFUND,

subScenario

String

=== InteropTransactionsData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

creditBureauReportData

Map of [object]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

subResourceId

Long

int64

transactionId

String

=== InteropTransferRequestData

Field Name Required Type Description Format

accountId

X

String

amount

X

MoneyData

expiration

Date

date-time

expirationLocalDate

date

date

extensionList

List of [ExtensionData]

fspCommission

MoneyData

fspFee

MoneyData

geoCode

GeoCodeData

note

String

requestCode

String

transactionCode

X

String

transactionRole

X

String

Enum: PAYER, PAYEE,

transactionType

InteropTransactionTypeData

transferCode

X

String

=== InteropTransferResponseData

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

commandId

Long

int64

completedTimestamp

String

creditBureauReportData

Map of [object]

expiration

String

extensionList

List of [ExtensionData]

glimId

Long

int64

groupId

Long

int64

gsimId

Long

int64

loanId

Long

int64

officeId

Long

int64

productId

Long

int64

resourceId

Long

int64

resourceIdentifier

String

rollbackTransaction

Boolean

savingsId

Long

int64

state

X

String

Enum: ACCEPTED, REJECTED,

subResourceId

Long

int64

transactionCode

X

String

transactionId

String

transferCode

X

String

=== JobDetailHistoryData

Field Name Required Type Description Format

jobRunEndTime

Date

date-time

jobRunErrorLog

String

jobRunErrorMessage

String

jobRunStartTime

Date

date-time

status

String

triggerType

String

version

Long

int64

=== JobDetailHistoryDataSwagger

Field Name Required Type Description Format

jobRunEndTime

Date

date-time

jobRunStartTime

Date

date-time

status

String

triggerType

String

version

Long

int64

=== JournalEntryCommand

Field Name Required Type Description Format

accountNumber

String

accountingRuleId

Long

int64

amount

BigDecimal

bankNumber

String

checkNumber

String

comments

String

credits

List of [SingleDebitOrCreditEntryCommand]

currencyCode

String

debits

List of [SingleDebitOrCreditEntryCommand]

officeId

Long

int64

paymentTypeId

Long

int64

receiptNumber

String

referenceNumber

String

routingCode

String

transactionDate

date

date

=== JournalEntryData

Field Name Required Type Description Format

accountNumber

String

amount

BigDecimal

bankNumber

String

checkNumber

String

comments

String

createdByUserId

Long

int64

createdByUserName

String

createdDate

date

date

credits

List of [CreditDebit]

currency

CurrencyData

currencyCode

String

dateFormat

String

debits

List of [CreditDebit]

entityId

Long

int64

entityType

EnumOptionData

entryType

EnumOptionData

glAccountCode

String

glAccountId

Long

int64

glAccountName

String

glAccountType

EnumOptionData

id

Long

int64

locale

String

manualEntry

Boolean

officeId

Long

int64

officeName

String

officeRunningBalance

BigDecimal

organizationRunningBalance

BigDecimal

paymentTypeId

Long

int64

receiptNumber

String

referenceNumber

String

reversed

Boolean

routingCode

String

rowIndex

Integer

int32

runningBalanceComputed

Boolean

savingTransactionId

Long

int64

submittedOnDate

date

date

transactionDate

date

date

transactionDetails

TransactionDetailData

transactionId

String

=== LoanAccountLock

Field Name Required Type Description Format

error

String

loanId

Long

int64

lockOwner

String

Enum: LOAN_COB_PARTITIONING, LOAN_COB_CHUNK_PROCESSING, LOAN_INLINE_COB_PROCESSING,

lockPlacedOn

Date

date-time

newLockOwner

String

Enum: LOAN_COB_PARTITIONING, LOAN_COB_CHUNK_PROCESSING, LOAN_INLINE_COB_PROCESSING,

stacktrace

String

version

Long

int64

=== LoanProduct

Field Name Required Type Description Format

accountingDisabled

Boolean

accountingType

Integer

int32

accrualBasedAccountingEnabled

Boolean

allowApprovedDisbursedAmountsOverApplied

Boolean

arrearsBasedOnOriginalSchedule

Boolean

cashBasedAccountingEnabled

Boolean

closeDate

date

date

currency

MonetaryCurrency

delinquencyBucket

DelinquencyBucket

disallowExpectedDisbursements

Boolean

equalAmortization

Boolean

externalId

String

fixedPrincipalPercentagePerInstallment

BigDecimal

floatingRates

LoanProductFloatingRates

holdGuaranteeFundsEnabled

Boolean

id

Long

int64

includeInBorrowerCycle

Boolean

installmentAmountInMultiplesOf

Integer

int32

interestPeriodFrequencyType

String

Enum: DAYS, WEEKS, MONTHS, YEARS, WHOLE_TERM, INVALID,

interestRecalculationEnabled

Boolean

linkedToFloatingInterestRate

Boolean

loanProductCharges

List of [Charge]

loanProductConfigurableAttributes

LoanProductConfigurableAttributes

loanProductGuaranteeDetails

LoanProductGuaranteeDetails

loanProductRelatedDetail

LoanProductRelatedDetail

loanProductTrancheDetails

LoanProductTrancheDetails

maxNominalInterestRatePerPeriod

BigDecimal

maxNumberOfRepayments

Integer

int32

maxPrincipalAmount

Money

minNominalInterestRatePerPeriod

BigDecimal

minNumberOfRepayments

Integer

int32

minPrincipalAmount

Money

minimumDaysBetweenDisbursalAndFirstRepayment

Integer

int32

multiDisburseLoan

Boolean

new

Boolean

nominalInterestRatePerPeriod

BigDecimal

numberOfRepayments

Integer

int32

overAppliedCalculationType

String

overAppliedNumber

Integer

int32

periodicAccrualAccountingEnabled

Boolean

principalAmount

Money

principalThresholdForLastInstallment

BigDecimal

productInterestRecalculationDetails

LoanProductInterestRecalculationDetails

rates

List of [Rate]

repaymentStrategy

String

shortName

String

startDate

date

date

syncExpectedWithDisbursementDate

Boolean

transactionProcessingStrategyCode

String

transactionProcessingStrategyName

String

upfrontAccrualAccountingEnabled

Boolean

=== LoanProductBorrowerCycleVariationData

Field Name Required Type Description Format

borrowerCycleNumber

Integer

int32

defaultValue

BigDecimal

id

Long

int64

loanProductParamType

String

Enum: INVALID, PRINCIPAL, INTERESTRATE, REPAYMENT,

loanProductValueConditionType

String

Enum: INVALID, EQUAL, GREATERTHAN,

maxValue

BigDecimal

minValue

BigDecimal

paramType

EnumOptionData

valueConditionType

EnumOptionData

=== LoanProductConfigurableAttributes

Field Name Required Type Description Format

amortizationBoolean

Boolean

amortizationType

Boolean

arrearsToleranceBoolean

Boolean

graceOnArrearsAgeing

Boolean

graceOnArrearsAgingBoolean

Boolean

graceOnPrincipalAndInterestPayment

Boolean

graceOnPrincipalAndInterestPaymentBoolean

Boolean

id

Long

int64

inArrearsTolerance

Boolean

interestCalcPeriodBoolean

Boolean

interestCalculationPeriodType

Boolean

interestMethodBoolean

Boolean

interestType

Boolean

loanProduct

LoanProduct

new

Boolean

repaymentEvery

Boolean

repaymentEveryBoolean

Boolean

transactionProcessingStrategyBoolean

Boolean

transactionProcessingStrategyCode

Boolean

=== LoanProductData

Field Name Required Type Description Format

accountMovesOutOfNPAOnlyOnArrearsCompletion

Boolean

accountingMappingOptions

Map of [array]

accountingMappings

Map of [object]

accountingRule

EnumOptionData

accountingRuleOptions

List of [EnumOptionData]

allowApprovedDisbursedAmountsOverApplied

Boolean

allowAttributeOverrides

LoanProductConfigurableAttributes

allowPartialPeriodInterestCalculation

Boolean

allowVariableInstallments

Boolean

amortizationType

EnumOptionData

amortizationTypeOptions

List of [EnumOptionData]

annualInterestRate

BigDecimal

canDefineInstallmentAmount

Boolean

canUseForTopup

Boolean

chargeOptions

List of [ChargeData]

charges

List of [ChargeData]

closeDate

date

date

compoundingToBePostedAsTransaction

Boolean

currency

CurrencyData

currencyOptions

List of [CurrencyData]

daysInMonthType

EnumOptionData

daysInMonthTypeOptions

List of [EnumOptionData]

daysInYearType

EnumOptionData

daysInYearTypeOptions

List of [EnumOptionData]

defaultDifferentialLendingRate

BigDecimal

delinquencyBucket

DelinquencyBucketData

delinquencyBucketOptions

List of [DelinquencyBucketData]

description

String

disallowExpectedDisbursements

Boolean

equalAmortization

Boolean

externalId

String

feeToIncomeAccountMappings

List of [ChargeToGLAccountMapper]

fixedPrincipalPercentagePerInstallment

BigDecimal

floatingInterestRateCalculationAllowed

Boolean

floatingRateId

Integer

int32

floatingRateName

String

floatingRateOptions

List of [FloatingRateData]

fundId

Long

int64

fundName

String

fundOptions

List of [FundData]

graceOnArrearsAgeing

Integer

int32

graceOnInterestCharged

Integer

int32

graceOnInterestPayment

Integer

int32

graceOnPrincipalPayment

Integer

int32

holdGuaranteeFunds

Boolean

id

Long

int64

inArrearsTolerance

BigDecimal

includeInBorrowerCycle

Boolean

installmentAmountInMultiplesOf

Integer

int32

interestCalculationPeriodType

EnumOptionData

interestCalculationPeriodTypeOptions

List of [EnumOptionData]

interestRateDifferential

BigDecimal

interestRateFrequencyType

EnumOptionData

interestRateFrequencyTypeOptions

List of [EnumOptionData]

interestRatePerPeriod

BigDecimal

interestRateVariationsForBorrowerCycle

List of [LoanProductBorrowerCycleVariationData]

interestRecalculationCompoundingTypeOptions

List of [EnumOptionData]

interestRecalculationData

LoanProductInterestRecalculationData

interestRecalculationDayOfWeekTypeOptions

List of [EnumOptionData]

interestRecalculationEnabled

Boolean

interestRecalculationFrequencyTypeOptions

List of [EnumOptionData]

interestRecalculationNthDayTypeOptions

List of [EnumOptionData]

interestType

EnumOptionData

interestTypeOptions

List of [EnumOptionData]

isAllowPartialPeriodInterestCalculation

Boolean

isEqualAmortization

Boolean

isFloatingInterestRateCalculationAllowed

Boolean

isInterestRecalculationEnabled

Boolean

isLinkedToFloatingInterestRates

Boolean

isRatesEnabled

Boolean

linkedToFloatingInterestRates

Boolean

loanProductConfigurableAttributes

LoanProductConfigurableAttributes

maxDifferentialLendingRate

BigDecimal

maxInterestRatePerPeriod

BigDecimal

maxNumberOfRepayments

Integer

int32

maxPrincipal

BigDecimal

maxTrancheCount

Integer

int32

maximumGap

Integer

int32

minDifferentialLendingRate

BigDecimal

minInterestRatePerPeriod

BigDecimal

minNumberOfRepayments

Integer

int32

minPrincipal

BigDecimal

minimumDaysBetweenDisbursalAndFirstRepayment

Integer

int32

minimumGap

Integer

int32

multiDisburseLoan

Boolean

name

String

numberOfRepaymentVariationsForBorrowerCycle

List of [LoanProductBorrowerCycleVariationData]

numberOfRepayments

Integer

int32

outstandingLoanBalance

BigDecimal

overAppliedCalculationType

String

overAppliedNumber

Integer

int32

overdueDaysForNPA

Integer

int32

paymentChannelToFundSourceMappings

List of [PaymentTypeToGLAccountMapper]

paymentTypeOptions

List of [PaymentTypeData]

penaltyOptions

List of [ChargeData]

penaltyToIncomeAccountMappings

List of [ChargeToGLAccountMapper]

preClosureInterestCalculationStrategyOptions

List of [EnumOptionData]

principal

BigDecimal

principalThresholdForLastInstallment

BigDecimal

principalVariationsForBorrowerCycle

List of [LoanProductBorrowerCycleVariationData]

productGuaranteeData

LoanProductGuaranteeData

rateOptions

List of [RateData]

rates

List of [RateData]

ratesEnabled

Boolean

recurringMoratoriumOnPrincipalPeriods

Integer

int32

repaymentEvery

Integer

int32

repaymentFrequencyType

EnumOptionData

repaymentFrequencyTypeOptions

List of [EnumOptionData]

rescheduleStrategyTypeOptions

List of [EnumOptionData]

shortName

String

startDate

date

date

status

String

syncExpectedWithDisbursementDate

Boolean

transactionProcessingStrategyCode

String

transactionProcessingStrategyName

String

transactionProcessingStrategyOptions

List of [TransactionProcessingStrategyData]

useBorrowerCycle

Boolean

valueConditionTypeOptions

List of [EnumOptionData]

=== LoanProductFloatingRates

Field Name Required Type Description Format

defaultDifferentialLendingRate

BigDecimal

floatingInterestRateCalculationAllowed

Boolean

floatingRate

FloatingRate

id

Long

int64

interestRateDifferential

BigDecimal

loanProduct

LoanProduct

maxDifferentialLendingRate

BigDecimal

minDifferentialLendingRate

BigDecimal

new

Boolean

=== LoanProductGuaranteeData

Field Name Required Type Description Format

id

Long

int64

mandatoryGuarantee

BigDecimal

minimumGuaranteeFromGuarantor

BigDecimal

minimumGuaranteeFromOwnFunds

BigDecimal

productId

Long

int64

=== LoanProductGuaranteeDetails

Field Name Required Type Description Format

id

Long

int64

mandatoryGuarantee

BigDecimal

minimumGuaranteeFromGuarantor

BigDecimal

minimumGuaranteeFromOwnFunds

BigDecimal

new

Boolean

=== LoanProductInterestRecalculationData

Field Name Required Type Description Format

allowCompoundingOnEod

Boolean

arrearsBasedOnOriginalSchedule

Boolean

compoundingToBePostedAsTransaction

Boolean

id

Long

int64

interestRecalculationCompoundingType

EnumOptionData

isArrearsBasedOnOriginalSchedule

Boolean

isCompoundingToBePostedAsTransaction

Boolean

preClosureInterestCalculationStrategy

EnumOptionData

productId

Long

int64

recalculationCompoundingFrequencyInterval

Integer

int32

recalculationCompoundingFrequencyNthDay

EnumOptionData

recalculationCompoundingFrequencyOnDay

Integer

int32

recalculationCompoundingFrequencyType

EnumOptionData

recalculationCompoundingFrequencyWeekday

EnumOptionData

recalculationRestFrequencyInterval

Integer

int32

recalculationRestFrequencyNthDay

EnumOptionData

recalculationRestFrequencyOnDay

Integer

int32

recalculationRestFrequencyType

EnumOptionData

recalculationRestFrequencyWeekday

EnumOptionData

rescheduleStrategyType

EnumOptionData

=== LoanProductInterestRecalculationDetails

Field Name Required Type Description Format

arrearsBasedOnOriginalSchedule

Boolean

compoundingFrequencyNthDay

Integer

int32

compoundingFrequencyOnDay

Integer

int32

compoundingFrequencyType

String

Enum: INVALID, SAME_AS_REPAYMENT_PERIOD, DAILY, WEEKLY, MONTHLY,

compoundingFrequencyWeekday

Integer

int32

compoundingInterval

Integer

int32

id

Long

int64

interestRecalculationCompoundingMethod

Integer

int32

isCompoundingToBePostedAsTransaction

Boolean

new

Boolean

rescheduleStrategyMethod

Integer

int32

restFrequencyNthDay

Integer

int32

restFrequencyOnDay

Integer

int32

restFrequencyType

String

Enum: INVALID, SAME_AS_REPAYMENT_PERIOD, DAILY, WEEKLY, MONTHLY,

restFrequencyWeekday

Integer

int32

restInterval

Integer

int32

=== LoanProductProvisioningEntryData

Field Name Required Type Description Format

amountreserved

BigDecimal

balance

BigDecimal

categoryId

Long

int64

categoryName

String

criteriaId

Long

int64

currencyCode

String

expenseAccount

Long

int64

expenseAccountCode

String

expenseAccountName

String

historyId

Long

int64

liabilityAccountCode

String

liabilityAccountName

String

liablityAccount

Long

int64

officeId

Long

int64

officeName

String

overdueInDays

Long

int64

percentage

BigDecimal

productId

Long

int64

productName

String

=== LoanProductRelatedDetail

Field Name Required Type Description Format

allowPartialPeriodInterestCalcualtion

Boolean

amortizationMethod

String

Enum: EQUAL_PRINCIPAL, EQUAL_INSTALLMENTS, INVALID,

annualNominalInterestRate

BigDecimal

arrearsTolerance

BigDecimal

currency

MonetaryCurrency

equalAmortization

Boolean

graceOnArrearsAgeing

Integer

int32

graceOnDueDate

Integer

int32

graceOnInterestPayment

Integer

int32

graceOnPrincipalPayment

Integer

int32

inArrearsTolerance

Money

interestCalculationPeriodMethod

String

Enum: DAILY, SAME_AS_REPAYMENT_PERIOD, INVALID,

interestMethod

String

Enum: DECLINING_BALANCE, FLAT, INVALID,

interestPeriodFrequencyType

String

Enum: DAYS, WEEKS, MONTHS, YEARS, WHOLE_TERM, INVALID,

interestRecalculationEnabled

Boolean

nominalInterestRatePerPeriod

BigDecimal

numberOfRepayments

Integer

int32

principal

Money

repayEvery

Integer

int32

repaymentPeriodFrequencyType

String

Enum: DAYS, WEEKS, MONTHS, YEARS, WHOLE_TERM, INVALID,

=== LoanProductTrancheDetails

Field Name Required Type Description Format

multiDisburseLoan

Boolean

=== LoanTermTypeOptions

Field Name Required Type Description Format

code

String

id

Integer

int32

value

String

=== LoanTermVariationsData

Field Name Required Type Description Format

dateValue

date

date

decimalValue

BigDecimal

id

Integer

int32

isProcessed

Boolean

isSpecificToInstallment

Boolean

termType

LoanTermTypeOptions

termVariationApplicableFrom

date

date

=== LocalTime

Field Name Required Type Description Format

hour

Integer

int32

minute

Integer

int32

nano

Integer

int32

second

Integer

int32

=== LookupTableData

Field Name Required Type Description Format

description

String

entries

List of [LookupTableEntry]

key

String

=== LookupTableEntry

Field Name Required Type Description Format

score

Double

double

valueFrom

Integer

int32

valueTo

Integer

int32

=== MonetaryCurrency

Field Name Required Type Description Format

code

String

currencyInMultiplesOf

Integer

int32

digitsAfterDecimal

Integer

int32

=== Money

Field Name Required Type Description Format

amount

BigDecimal

amountDefaultedToNullIfZero

BigDecimal

currency

MonetaryCurrency

currencyCode

String

currencyDigitsAfterDecimal

Integer

int32

currencyInMultiplesOf

Integer

int32

greaterThanZero

Boolean

lessThanZero

Boolean

zero

Boolean

=== MoneyData

Field Name Required Type Description Format

amount

X

BigDecimal

currency

X

String

=== MultiPart

Field Name Required Type Description Format

bodyParts

List of [BodyPart]

contentDisposition

ContentDisposition

entity

Object

headers

Map of [array]

mediaType

BodyPart_mediaType

messageBodyWorkers

Object

parameterizedHeaders

Map of [array]

parent

MultiPart

providers

Object

=== NoteData

Field Name Required Type Description Format

clientId

Long

int64

createdById

Long

int64

createdByUsername

String

createdOn

Date

date-time

depositAccountId

Long

int64

groupId

Long

int64

id

Long

int64

loanId

Long

int64

loanTransactionId

Long

int64

note

String

noteType

EnumOptionData

savingAccountId

Long

int64

updatedById

Long

int64

updatedByUsername

String

updatedOn

Date

date-time

=== Office

Field Name Required Type Description Format

hierarchy

String

id

Long

int64

name

String

new

Boolean

openingLocalDate

date

date

parent

Office

=== OfficeData

Field Name Required Type Description Format

dateFormat

String

externalId

String

hierarchy

String

id

Long

int64

locale

String

name

String

nameDecorated

String

openingDate

date

date

parentId

Long

int64

parentName

String

rowIndex

Integer

int32

=== PageCashierTransactionData

Field Name Required Type Description Format

pageItems

List of [CashierTransactionData]

totalFilteredRecords

Integer

int32

=== ParameterizedHeader

Field Name Required Type Description Format

parameters

Map of [string]

value

String

=== PaymentDetailData

Field Name Required Type Description Format

accountNumber

String

bankNumber

String

checkNumber

String

id

Long

int64

paymentType

PaymentTypeData

receiptNumber

String

routingCode

String

=== PaymentType

Field Name Required Type Description Format

codeName

String

description

String

id

Long

int64

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

new

Boolean

position

Long

int64

=== PaymentTypeData

Field Name Required Type Description Format

codeName

String

description

String

id

Long

int64

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

position

Long

int64

=== PaymentTypeToGLAccountMapper

Field Name Required Type Description Format

fundSourceAccount

GLAccountData

paymentType

PaymentTypeData

=== Permission

Field Name Required Type Description Format

code

String

grouping

String

id

Long

int64

new

Boolean

=== PortfolioAccountData

Field Name Required Type Description Format

accountNo

String

amtForTransfer

BigDecimal

clientId

Long

int64

clientName

String

currency

CurrencyData

currencyCode

String

externalId

String

fieldOfficerId

Long

int64

fieldOfficerName

String

groupId

Long

int64

groupName

String

id

Long

int64

productId

Long

int64

productName

String

=== PostAccountNumberFormatsRequest

PostAccountNumberFormatsRequest

Field Name Required Type Description Format

accountType

Long

int64

prefixType

Long

int64

=== PostAccountNumberFormatsResponse

PostAccountNumberFormatsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostAccountTransfersRefundByTransferRequest

PostAccountTransfersRefundByTransferRequest

Field Name Required Type Description Format

dateFormat

String

fromAccountId

Integer

int32

fromAccountType

Integer

int32

fromClientId

Integer

int32

fromOfficeId

Integer

int32

locale

String

toAccountId

Integer

int32

toAccountType

Integer

int32

toClientId

Integer

int32

toOfficeId

Integer

int32

transferAmount

Float

float

transferDate

String

transferDescription

String

=== PostAccountTransfersRefundByTransferResponse

PostAccountTransfersRefundByTransferResponse

Field Name Required Type Description Format

resourceId

Integer

int32

savingsId

Integer

int32

=== PostAccountTransfersRequest

PostAccountTransfersRequest

Field Name Required Type Description Format

dateFormat

String

fromAccountId

Integer

int32

fromAccountType

Integer

int32

fromClientId

Integer

int32

fromOfficeId

Integer

int32

locale

String

toAccountId

Integer

int32

toAccountType

Integer

int32

toClientId

Integer

int32

toOfficeId

Integer

int32

transferAmount

Float

float

transferDate

String

transferDescription

String

=== PostAccountTransfersResponse

PostAccountTransfersResponse

Field Name Required Type Description Format

resourceId

Integer

int32

savingsId

Integer

int32

=== PostAccountingRulesRequest

PostAccountingRulesRequest

Field Name Required Type Description Format

accountToCredit

Long

int64

accountToDebit

Long

int64

description

String

name

String

officeId

Long

int64

=== PostAccountingRulesResponse

PostAccountingRulesResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== PostAccountsCharges

Field Name Required Type Description Format

amount

Integer

int32

chargeId

Integer

int32

=== PostAccountsRequestedShares

Field Name Required Type Description Format

id

Integer

int32

=== PostAccountsTypeAccountIdRequest

PostAccountsTypeAccountIdRequest

Field Name Required Type Description Format

requestedShares

Set of [PostAccountsRequestedShares]

=== PostAccountsTypeAccountIdResponse

PostAccountsTypeAccountIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostAccountsTypeRequest

PostAccountsTypeRequest

Field Name Required Type Description Format

allowDividendCalculationForInactiveClients

Boolean

applicationDate

String

charges

Set of [PostAccountsCharges]

clientId

Integer

int32

dateFormat

String

externalId

Integer

int32

locale

String

lockinPeriodFrequency

Integer

int32

lockinPeriodFrequencyType

Integer

int32

minimumActivePeriod

Integer

int32

minimumActivePeriodFrequencyType

Integer

int32

productId

Integer

int32

requestedShares

Integer

int32

savingsAccountId

Integer

int32

submittedDate

String

=== PostAccountsTypeResponse

PostAccountsTypeResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostAdhocQuerySearchRequest

PostAdhocQuerySearchRequest

Field Name Required Type Description Format

dateFormat

String

includeOutStandingAmountPercentage

Boolean

includeOutstandingAmount

Boolean

loanDateOption

String

loanFromDate

date

date

loanToDate

date

date

locale

String

maxOutstandingAmount

Long

int64

minOutstandingAmount

Long

int64

outStandingAmountPercentage

Long

int64

outStandingAmountPercentageCondition

String

outstandingAmountCondition

String

=== PostAdhocQuerySearchResponse

PostAdhocQuerySearchResponse

Field Name Required Type Description Format

loanOutStanding

Long

int64

loanProductName

String

officeName

String

percentage

Long

int64

=== PostAuthenticationRequest

PostAuthenticationRequest

Field Name Required Type Description Format

password

X

String

username

X

String

=== PostAuthenticationResponse

PostAuthenticationResponse

Field Name Required Type Description Format

authenticated

Boolean

base64EncodedAuthenticationKey

String

officeId

Long

int64

officeName

String

organisationalRole

EnumOptionData

permissions

List of [string]

roles

List of [RoleData]

staffDisplayName

String

staffId

Long

int64

userId

Long

int64

username

String

=== PostCentersCenterIdRequest

PostCentersCenterIdRequest

Field Name Required Type Description Format

closureDate

String

closureReasonId

Integer

int32

dateFormat

String

locale

String

=== PostCentersCenterIdResponse

PostCentersCenterIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostCentersRequest

PostCentersRequest

Field Name Required Type Description Format

active

Boolean

name

String

officeId

Integer

int32

=== PostCentersResponse

PostCentersResponse

Field Name Required Type Description Format

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostChargesRequest

PostChargesRequest

Field Name Required Type Description Format

active

String

amount

Float

float

chargeAppliesTo

Integer

int32

chargeCalculationType

Integer

int32

chargePaymentMode

Integer

int32

chargeTimeType

Integer

int32

currencyCode

String

locale

String

monthDayFormat

String

name

String

penalty

String

=== PostChargesResponse

PostChargesResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostClientClientIdAddressesRequest

PostClientClientIdAddressesRequest

Field Name Required Type Description Format

addressLine1

String

addressLine2

String

addressLine3

String

city

String

countryId

Integer

int32

isActive

Boolean

postalCode

Long

int64

stateProvinceId

Integer

int32

street

String

=== PostClientClientIdAddressesResponse

PostClientClientIdAddressesResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostClientCollateralRequest

PostClientCollateralRequest

Field Name Required Type Description Format

collateralId

Long

int64

locale

String

quantity

BigDecimal

=== PostClientCollateralResponse

PostClientCollateralResponse

Field Name Required Type Description Format

clientId

Integer

int32

resourceId

Integer

int32

=== PostClientsAddressRequest

Address requests

Field Name Required Type Description Format

addressLine1

String

addressLine2

String

addressLine3

String

addressTypeId

Long

int64

city

String

countryId

Integer

int32

isActive

Boolean

postalCode

Long

int64

stateProvinceId

Integer

int32

street

String

=== PostClientsClientIdChargesChargeIdRequest

PostClientsClientIdChargesChargeIdRequest

Field Name Required Type Description Format

amount

Integer

int32

dateFormat

String

locale

String

transactionDate

String

=== PostClientsClientIdChargesChargeIdResponse

PostClientsClientIdChargesChargeIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

transactionId

Integer

int32

=== PostClientsClientIdChargesRequest

PostClientsClientIdChargesRequest

Field Name Required Type Description Format

amount

Integer

int32

chargeId

Integer

int32

dateFormat

String

dueDate

String

locale

String

=== PostClientsClientIdChargesResponse

PostClientsClientIdChargesResponse

Field Name Required Type Description Format

chargeId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostClientsClientIdIdentifiersRequest

PostClientsClientIdIdentifiersRequest

Field Name Required Type Description Format

description

String

documentKey

String

documentTypeId

Integer

int32

=== PostClientsClientIdIdentifiersResponse

PostClientsClientIdIdentifiersResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostClientsClientIdRequest

PostClientsClientIdRequest

Field Name Required Type Description Format

activationDate

String

dateFormat

String

locale

String

=== PostClientsClientIdResponse

PostClientsClientIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostClientsClientIdTransactionsTransactionIdResponse

PostClientsClientIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostClientsDatatable

List of PostClientsDatatable

Field Name Required Type Description Format

data

Map of [object]

registeredTableName

String

=== PostClientsRequest

PostClientsRequest

Field Name Required Type Description Format

activationDate

String

active

Boolean

address

List of [PostClientsAddressRequest]

Address requests

datatables

List of [PostClientsDatatable]

List of PostClientsDatatable

dateFormat

String

dateOfBirth

date

date

emailAddress

String

externalId

String

firstname

String

fullname

String

groupId

Integer

int32

lastname

String

legalFormId

Integer

int32

locale

String

mobileNo

String

officeId

Integer

int32

=== PostClientsResponse

PostClientsResponse

Field Name Required Type Description Format

clientId

Long

int64

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostCodeValueDataResponse

PostCodeValueDataResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostCodeValuesDataRequest

PostCodeValuesDataRequest

Field Name Required Type Description Format

description

String

isActive

Boolean

name

String

position

Integer

int32

=== PostCodesRequest

PostCodesRequest

Field Name Required Type Description Format

name

String

=== PostCodesResponse

PostCodesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostCollateralManagementProductRequest

PostCollateralManagementProductRequest

Field Name Required Type Description Format

basePrice

BigDecimal

currency

String

name

String

pctToBase

BigDecimal

quality

String

unitType

String

=== PostCollateralManagementProductResponse

PostCollateralManagementProductResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostCollectionSheetBulkRepaymentTransactions

Field Name Required Type Description Format

loanId

Integer

int32

paymentTypeId

Integer

int32

receiptNumber

Long

int64

transactionAmount

Double

double

=== PostCollectionSheetChanges

Field Name Required Type Description Format

SavingsTransactions

List of [integer]

int32

dateFormat

String

loanTransactions

List of [integer]

int32

locale

String

=== PostCollectionSheetRequest

PostCollectionSheetRequest

Field Name Required Type Description Format

actualDisbursementDate

String

bulkDisbursementTransactions

List of [integer]

int32

bulkRepaymentTransactions

PostCollectionSheetBulkRepaymentTransactions

bulkSavingsDueTransactions

List of [integer]

int32

dateFormat

String

locale

String

transactionDate

String

=== PostCollectionSheetResponse

PostCollectionSheetResponse

Field Name Required Type Description Format

changes

PostCollectionSheetChanges

groupId

Integer

int32

resourceId

Integer

int32

=== PostColumnHeaderData

Field Name Required Type Description Format

code

String

Used in Code Value fields. Column name becomes: code_cd_name. Mandatory if using type Dropdown, otherwise an error is returned.

length

Long

Length of the text field. Mandatory if type String is used, otherwise an error is returned.

int64

mandatory

Boolean

Defaults to false

name

X

String

type

X

String

Any of them: Boolean

Date

DateTime

Decimal

Dropdown

Number

String

=== PostCreateRescheduleLoansResponse

PostCreateRescheduleLoansResponse

Field Name Required Type Description Format

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Long

int64

=== PostDataTablesAppTableIdResponse

PostDataTablesAppTableIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostDataTablesRequest

PostDataTablesRequest

Field Name Required Type Description Format

apptableName

X

String

columns

X

List of [PostColumnHeaderData]

datatableName

X

String

entitySubType

String

multiRow

Boolean

Allows to create multiple entries in the Data Table. Optional, defaults to false. If this property is not provided Data Table will allow only one entry.

=== PostDataTablesResponse

PostDataTablesResponse

Field Name Required Type Description Format

resourceIdentifier

String

=== PostDelinquencyBucketRequest

PostDelinquencyBucketRequest

Field Name Required Type Description Format

name

String

ranges

List of [long]

int64

=== PostDelinquencyBucketResponse

PostDelinquencyBucketResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostDelinquencyRangeRequest

PostDelinquencyRangeRequest

Field Name Required Type Description Format

classification

String

locale

String

maximumAgeDays

Integer

int32

minimumAgeDays

Integer

int32

=== PostDelinquencyRangeResponse

PostDelinquencyRangeResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostEntityDatatableChecksTemplateRequest

PostEntityDatatableChecksTemplateRequest

Field Name Required Type Description Format

datatableName

String

entity

String

productId

Long

int64

status

Long

int64

=== PostEntityDatatableChecksTemplateResponse

PostEntityDatatableChecksTemplateResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostEntityTypeEntityIdDocumentsResponse

PostEntityTypeEntityIdDocumentsResponse

Field Name Required Type Description Format

resourceId

Long

int64

resourceIdentifier

String

=== PostFinancialActivityAccountsRequest

PostFinancialActivityAccountsRequest

Field Name Required Type Description Format

financialActivityId

Long

int64

glAccountId

Long

int64

=== PostFinancialActivityAccountsResponse

PostFinancialActivityAccountsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostFixedDepositAccountsAccountIdResponse

PostFixedDepositAccountsAccountIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostFixedDepositAccountsRequest

PostFixedDepositAccountsRequest

Field Name Required Type Description Format

clientId

Integer

int32

dateFormat

String

depositAmount

Float

float

depositPeriod

Integer

int32

depositPeriodFrequencyId

Integer

int32

locale

String

productId

Integer

int32

submittedOnDate

String

=== PostFixedDepositAccountsResponse

PostFixedDepositAccountsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostFixedDepositProductsChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

description

String

fromPeriod

Integer

int32

periodType

Integer

int32

toPeriod

Integer

int32

=== PostFixedDepositProductsCharts

Field Name Required Type Description Format

chartSlabs

Set of [PostFixedDepositProductsChartSlabs]

dateFormat

String

fromDate

String

locale

String

=== PostFixedDepositProductsRequest

PostFixedDepositProductsRequest

Field Name Required Type Description Format

accountingRule

Integer

int32

charts

Set of [PostFixedDepositProductsCharts]

currencyCode

String

description

String

digitsAfterDecimal

Integer

int32

inMultiplesOf

Integer

int32

interestCalculationDaysInYearType

Integer

int32

interestCalculationType

Integer

int32

interestCompoundingPeriodType

Integer

int32

interestPostingPeriodType

Integer

int32

locale

String

maxDepositTerm

Integer

int32

maxDepositTermTypeId

Integer

int32

minDepositTerm

Integer

int32

minDepositTermTypeId

Integer

int32

name

String

preClosurePenalApplicable

Boolean

preClosurePenalInterest

Double

double

preClosurePenalInterestOnTypeId

Integer

int32

shortName

String

=== PostFixedDepositProductsResponse

PostFixedDepositProductsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostFloatingRatesRatePeriods

Field Name Required Type Description Format

dateFormat

String

fromDate

String

interestRate

Double

double

locale

String

=== PostFloatingRatesRequest

PostFloatingRatesRequest

Field Name Required Type Description Format

isActive

Boolean

isBaseLendingRate

Boolean

name

String

ratePeriods

Set of [PostFloatingRatesRatePeriods]

=== PostFloatingRatesResponse

PostFloatingRatesResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostFundsRequest

PostFundsRequest

Field Name Required Type Description Format

name

String

=== PostFundsResponse

PostFundsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostGLAccountsRequest

PostGLAccountsRequest

Field Name Required Type Description Format

description

String

glCode

String

manualEntriesAllowed

Boolean

name

String

parentId

Long

int64

tagId

String

type

String

usage

String

=== PostGLAccountsResponse

PostGLAccountsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostGlClosuresRequest

PostGLCLosuresRequest

Field Name Required Type Description Format

closingDate

date

date

comments

String

dateFormat

String

locale

String

officeId

Long

int64

=== PostGlClosuresResponse

PostGlClosuresResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== PostGroupsGroupIdClients

Field Name Required Type Description Format

id

Integer

int32

=== PostGroupsGroupIdCommandUnassignStaffRequest

PostGroupsGroupIdCommandUnassignStaffRequest

Field Name Required Type Description Format

staffId

Integer

int32

=== PostGroupsGroupIdCommandUnassignStaffResponse

PostGroupsGroupIdCommandUnassignStaffResponse

Field Name Required Type Description Format

changes

Object

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostGroupsGroupIdRequest

PostGroupsGroupIdRequest

Field Name Required Type Description Format

clients

Set of [PostGroupsGroupIdClients]

destinationGroupId

Integer

int32

=== PostGroupsGroupIdResponse

PostGroupsGroupIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostGroupsRequest

PostGroupsRequest

Field Name Required Type Description Format

active

Boolean

name

String

officeId

Integer

int32

=== PostGroupsResponse

PostGroupsResponse

Field Name Required Type Description Format

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostHolidaysHolidayIdResponse

PostHolidaysHolidayIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostHolidaysRequest

PostHolidaysRequest

Field Name Required Type Description Format

dateFormat

String

description

String

fromDate

date

date

locale

String

name

String

offices

List of [PostHolidaysRequestOffices]

repaymentsRescheduledTo

date

date

toDate

date

date

=== PostHolidaysRequestOffices

Field Name Required Type Description Format

officeId

Long

int64

=== PostHolidaysResponse

PostHolidaysResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostHookRequest

PostHookRequest

Field Name Required Type Description Format

config

List of [Field]

displayName

String

events

List of [Event]

isActive

Boolean

name

String

templateId

Long

int64

=== PostHookResponse

PostHookResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostInterestRateChartsChartIdChartSlabsIncentives

Field Name Required Type Description Format

amount

Float

float

attributeName

Integer

int32

attributeValue

Integer

int32

conditionType

Integer

int32

entityType

Integer

int32

incentiveType

Integer

int32

=== PostInterestRateChartsChartIdChartSlabsRequest

PostInterestRateChartsChartIdChartSlabsRequest

Field Name Required Type Description Format

annualInterestRate

Double

double

description

String

fromPeriod

Integer

int32

incentives

Set of [PostInterestRateChartsChartIdChartSlabsIncentives]

locale

String

periodType

Integer

int32

toPeriod

Integer

int32

=== PostInterestRateChartsChartIdChartSlabsResponse

PostInterestRateChartsChartIdChartSlabsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostInterestRateChartsRequest

PostInterestRateChartsRequest

Field Name Required Type Description Format

dateFormat

String

description

String

fromDate

String

locale

String

name

String

type

String

=== PostInterestRateChartsResponse

PostInterestRateChartsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostJournalEntriesResponse

PostJournalEntriesResponse

Field Name Required Type Description Format

officeId

Long

1

int64

transactionId

String

RS9MCISID4WK1ZM

=== PostJournalEntriesTransactionIdRequest

PostJournalEntriesTransactionIdRequest

Field Name Required Type Description Format

officeId

Long

1

int64

=== PostJournalEntriesTransactionIdResponse

PostJournalEntriesTransactionIdResponse

Field Name Required Type Description Format

officeId

Long

1

int64

=== PostLinkDelinkAccountsToFromPocketResponse

PostLinkDelinkAccountsToFromPocketResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostLoanChanges

Field Name Required Type Description Format

removedEntityIds

List of [integer]

int32

=== PostLoanProductsRequest

PostLoanProductsRequest

Field Name Required Type Description Format

accountMovesOutOfNPAOnlyOnArrearsCompletion

Boolean

accountingRule

Integer

int32

allowApprovedDisbursedAmountsOverApplied

Boolean

allowAttributeOverrides

AllowAttributeOverrides

allowPartialPeriodInterestCalcualtion

Boolean

allowVariableInstallments

Boolean

amortizationType

Integer

int32

canDefineInstallmentAmount

Boolean

canUseForTopup

Boolean

charges

List of [ChargeData]

closeDate

String

currencyCode

String

dateFormat

String

daysInMonthType

Integer

int32

daysInYearType

Integer

int32

delinquencyBucketId

Long

int64

description

String

digitsAfterDecimal

Integer

int32

disallowExpectedDisbursements

Boolean

feeToIncomeAccountMappings

List of [GetLoanFeeToIncomeAccountMappings]

fixedPrincipalPercentagePerInstallment

BigDecimal

fundId

Long

int64

fundSourceAccountId

Long

int64

goodwillCreditAccountId

Long

int64

graceOnArrearsAgeing

Integer

int32

graceOnInterestPayment

Integer

int32

graceOnPrincipalPayment

Integer

int32

holdGuaranteeFunds

Boolean

inArrearsTolerance

Integer

int32

inMultiplesOf

Integer

int32

includeInBorrowerCycle

Boolean

incomeFromFeeAccountId

Long

int64

incomeFromPenaltyAccountId

Long

int64

incomeFromRecoveryAccountId

Long

int64

installmentAmountInMultiplesOf

Integer

int32

interestCalculationPeriodType

Integer

int32

interestOnLoanAccountId

Long

int64

interestRateFrequencyType

Integer

int32

interestRatePerPeriod

Double

double

interestRateVariationsForBorrowerCycle

List of [integer]

int32

interestRecalculationCompoundingMethod

Integer

int32

interestType

Integer

int32

isEqualAmortization

Boolean

isInterestRecalculationEnabled

Boolean

isLinkedToFloatingInterestRates

Boolean

loanPortfolioAccountId

Long

int64

locale

String

maxInterestRatePerPeriod

Double

double

maxNumberOfRepayments

Integer

int32

maxPrincipal

Double

double

maxTrancheCount

Integer

int32

minInterestRatePerPeriod

Double

double

minNumberOfRepayments

Integer

int32

minPrincipal

Double

double

minimumDaysBetweenDisbursalAndFirstRepayment

Integer

int32

multiDisburseLoan

Boolean

name

String

numberOfRepaymentVariationsForBorrowerCycle

List of [integer]

int32

numberOfRepayments

Integer

int32

outstandingLoanBalance

Double

double

overAppliedCalculationType

String

overAppliedNumber

Integer

int32

overdueDaysForNPA

Integer

int32

overpaymentLiabilityAccountId

Long

int64

paymentChannelToFundSourceMappings

List of [GetLoanPaymentChannelToFundSourceMappings]

penaltyToIncomeAccountMappings

List of [ChargeToGLAccountMapper]

preClosureInterestCalculationStrategy

Integer

int32

principal

Double

double

principalThresholdForLastInstallment

Integer

int32

principalVariationsForBorrowerCycle

List of [integer]

int32

rates

List of [RateData]

recalculationCompoundingFrequencyType

Integer

int32

recalculationRestFrequencyType

Integer

int32

receivableFeeAccountId

Long

int64

receivableInterestAccountId

Long

int64

receivablePenaltyAccountId

Long

int64

repaymentEvery

Integer

int32

repaymentFrequencyType

Integer

int32

rescheduleStrategyMethod

Integer

int32

shortName

String

startDate

String

transactionProcessingStrategyCode

String

transfersInSuspenseAccountId

Long

int64

useBorrowerCycle

Boolean

writeOffAccountId

Long

int64

=== PostLoanProductsResponse

PostLoanProductsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostLoansDisbursementData

List of PostLoansDisbursementData

Field Name Required Type Description Format

expectedDisbursementDate

date

date

principal

Double

double

=== PostLoansLoanIdChanges

PostLoansLoanIdChanges

Field Name Required Type Description Format

approvedOnDate

String

dateFormat

String

locale

String

note

String

status

PostLoansLoanIdStatus

=== PostLoansLoanIdChargesChargeIdRequest

PostLoansLoanIdChargesChargeIdRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

transactionDate

String

=== PostLoansLoanIdChargesChargeIdResponse

PostLoansLoanIdChargesChargeIdResponse

Field Name Required Type Description Format

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Integer

int32

savingsId

Long

int64

=== PostLoansLoanIdChargesRequest

PostLoansLoanIdChargesRequest
Field Name Required Type Description Format

amount

Double

double

chargeId

Integer

int32

dateFormat

String

dueDate

String

externalId

String

locale

String

=== PostLoansLoanIdChargesResponse

PostLoansLoanIdChargesResponse
Field Name Required Type Description Format

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Integer

int32

=== PostLoansLoanIdCollateralsRequest

PostLoansLoanIdCollateralsRequest

Field Name Required Type Description Format

collateralTypeId

Integer

int32

=== PostLoansLoanIdCollateralsResponse

PostLoansLoanIdCollateralsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostLoansLoanIdDisbursementData

List of PostLoansLoanIdDisbursementData

Field Name Required Type Description Format

expectedDisbursementDate

date

date

principal

Double

double

=== PostLoansLoanIdRequest

PostLoansLoanIdRequest

Field Name Required Type Description Format

actualDisbursementDate

String

approvedLoanAmount

String

approvedOnDate

String

assignmentDate

String

dateFormat

String

disbursementData

List of [PostLoansLoanIdDisbursementData]

List of PostLoansLoanIdDisbursementData

expectedDisbursementDate

String

externalId

String

fromLoanOfficerId

Integer

int32

locale

String

note

String

paymentTypeId

Integer

int32

toLoanOfficerId

Integer

int32

transactionAmount

String

=== PostLoansLoanIdResponse

PostLoansLoanIdResponse

Field Name Required Type Description Format

changes

PostLoansLoanIdChanges

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostLoansLoanIdScheduleResponse

PostLoansLoanIdScheduleResponse

Field Name Required Type Description Format

changes

PostLoanChanges

loanId

Integer

int32

=== PostLoansLoanIdStatus

PostLoansLoanIdStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

value

String

waitingForDisbursal

Boolean

=== PostLoansLoanIdTransactionsRequest

PostLoansLoanIdTransactionsRequest

Field Name Required Type Description Format

accountNumber

String

bankNumber

String

checkNumber

String

dateFormat

String

externalId

String

locale

String

note

String

paymentTypeId

Integer

int32

receiptNumber

String

routingCode

String

transactionAmount

Double

double

transactionDate

String

=== PostLoansLoanIdTransactionsResponse

PostLoansLoanIdTransactionsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostLoansLoanIdTransactionsTransactionIdRequest

PostLoansLoanIdTransactionsTransactionIdRequest

Field Name Required Type Description Format

dateFormat

String

externalId

String

locale

String

note

String

paymentTypeId

Integer

int32

reversalExternalId

String

transactionAmount

Double

double

transactionDate

String

=== PostLoansLoanIdTransactionsTransactionIdResponse

PostLoansLoanIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostLoansRepaymentSchedulePeriods

Field Name Required Type Description Format

dueDate

date

date

feeChargesDue

Long

int64

feeChargesOutstanding

Long

int64

period

Integer

int32

principalDisbursed

Long

int64

principalLoanBalanceOutstanding

Long

int64

totalActualCostOfLoanForPeriod

Long

int64

totalDueForPeriod

Long

int64

totalOriginalDueForPeriod

Long

int64

totalOutstandingForPeriod

Long

int64

totalOverdue

Long

int64

=== PostLoansRequest

PostLoansRequest

Field Name Required Type Description Format

amortizationType

Integer

int32

clientId

Long

int64

dateFormat

String

daysInYearType

Integer

int32 Enum: null,

disbursementData

List of [PostLoansDisbursementData]

List of PostLoansDisbursementData

expectedDisbursementDate

String

externalId

String

fixedPrincipalPercentagePerInstallment

BigDecimal

interestCalculationPeriodType

Integer

int32

interestRatePerPeriod

Integer

int32

interestType

Integer

int32

loanTermFrequency

Integer

int32

loanTermFrequencyType

Integer

int32

loanType

String

locale

String

maxOutstandingLoanBalance

BigDecimal

Maximum allowed outstanding balance

numberOfRepayments

Integer

int32

principal

String

productId

Integer

int32

repaymentEvery

Integer

int32

repaymentFrequencyType

Integer

int32

submittedOnDate

String

transactionProcessingStrategyCode

String

=== PostLoansResponse

PostLoansResponse

Field Name Required Type Description Format

clientId

Integer

int32

currency

GetLoansLoanIdCurrency

loanId

Integer

int32

loanTermInDays

Integer

int32

officeId

Integer

int32

periods

Set of [PostLoansRepaymentSchedulePeriods]

resourceId

Integer

int32

totalFeeChargesCharged

Long

int64

totalInterestCharged

Double

double

totalOutstanding

Long

int64

totalPenaltyChargesCharged

Long

int64

totalPrincipalDisbursed

Long

int64

totalPrincipalExpected

Long

int64

totalPrincipalPaid

Long

int64

totalRepayment

Long

int64

totalRepaymentExpected

Double

double

totalWaived

Long

int64

totalWrittenOff

Long

int64

=== PostMakerCheckersResponse

PostMakerCheckersResponse

Field Name Required Type Description Format

auditId

Long

int64

=== PostNewShareApplicationResponse

PostNewShareApplicationResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostNewTransferResponse

PostNewTransferResponse

Field Name Required Type Description Format

resourceId

Integer

int32

savingsId

Integer

int32

=== PostOfficesRequest

PostOfficesRequest

Field Name Required Type Description Format

dateFormat

String

externalId

String

locale

String

name

String

openingDate

date

date

parentId

Long

int64

=== PostOfficesResponse

PostOfficesResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== PostPaymentTypesRequest

PostPaymentTypesRequest

Field Name Required Type Description Format

codeName

String

description

String

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

position

Integer

int32

=== PostPaymentTypesResponse

PostPaymentTypesResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostProductsChargesSelected

Field Name Required Type Description Format

id

Integer

int32

=== PostProductsMarketPricePeriods

Field Name Required Type Description Format

dateFormat

String

fromDate

String

locale

String

shareValue

Integer

int32

=== PostProductsTypeRequest

PostProductsTypeRequest

Field Name Required Type Description Format

accountingRule

Integer

int32

allowDividendCalculationForInactiveClients

Boolean

chargesSelected

Set of [PostProductsChargesSelected]

currencyCode

String

description

String

digitsAfterDecimal

Integer

int32

inMultiplesOf

Integer

int32

locale

String

lockinPeriodFrequency

Integer

int32

lockinPeriodFrequencyType

Integer

int32

marketPricePeriods

Set of [PostProductsMarketPricePeriods]

maximumShares

Integer

int32

minimumActivePeriodForDividends

Integer

int32

minimumShares

Integer

int32

minimumactiveperiodFrequencyType

Integer

int32

name

String

nominalShares

Integer

int32

sharesIssued

Integer

int32

shortName

String

totalShares

Integer

int32

unitPrice

Integer

int32

=== PostProductsTypeResponse

PostProductsTypeResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostProvisioningCriteriaRequest

PostProvisioningCriteriaRequest

Field Name Required Type Description Format

criteriaName

String

loanProducts

List of [LoanProductData]

provisioningcriteria

List of [ProvisioningCriteriaDefinitionData]

=== PostProvisioningCriteriaResponse

PostProvisioningCriteriaResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostProvisioningEntriesRequest

PostProvisioningEntriesRequest

Field Name Required Type Description Format

createjournalentries

String

date

String

dateFormat

String

entries

String

locale

String

provisioningentry

String

=== PostProvisioningEntriesResponse

PostProvisioningEntriesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostRecurringChanges

Field Name Required Type Description Format

accountNumber

String

bankNumber

String

checkNumber

String

receiptNumber

String

routingCode

String

=== PostRecurringDepositAccountsAccountIdResponse

PostRecurringDepositAccountsAccountIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest

PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsRequest

Field Name Required Type Description Format

accountNumber

String

bankNumber

String

checkNumber

String

dateFormat

String

locale

String

paymentTypeId

Integer

int32

receiptNumber

String

routingCode

String

transactionAmount

Double

double

transactionDate

String

=== PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsResponse

PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsResponse

Field Name Required Type Description Format

changes

PostRecurringChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse

PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsTransactionIdResponse

Field Name Required Type Description Format

changes

PostRecurringChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostRecurringDepositAccountsRequest

PostRecurringDepositAccountsRequest

Field Name Required Type Description Format

clientId

Integer

int32

dateFormat

String

depositAmount

Float

float

depositPeriod

Integer

int32

depositPeriodFrequencyId

Integer

int32

isCalendarInherited

Boolean

locale

String

mandatoryRecommendedDepositAmount

Long

int64

productId

Integer

int32

recurringFrequency

Integer

int32

recurringFrequencyType

Integer

int32

submittedOnDate

String

=== PostRecurringDepositAccountsResponse

PostRecurringDepositAccountsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostRecurringDepositProductsChartSlabs

Field Name Required Type Description Format

annualInterestRate

Double

double

description

String

fromPeriod

Integer

int32

periodType

Integer

int32

toPeriod

Integer

int32

=== PostRecurringDepositProductsCharts

Field Name Required Type Description Format

chartSlabs

Set of [PostRecurringDepositProductsChartSlabs]

dateFormat

String

fromDate

String

locale

String

=== PostRecurringDepositProductsRequest

PostRecurringDepositProductsRequest

Field Name Required Type Description Format

accountingRule

Integer

int32

charts

Set of [PostRecurringDepositProductsCharts]

currencyCode

String

depositAmount

Long

int64

description

String

digitsAfterDecimal

Integer

int32

inMultiplesOf

Integer

int32

interestCalculationDaysInYearType

Integer

int32

interestCalculationType

Integer

int32

interestCompoundingPeriodType

Integer

int32

interestPostingPeriodType

Integer

int32

locale

String

maxDepositAmount

Long

int64

maxDepositTerm

Integer

int32

maxDepositTermTypeId

Integer

int32

minDepositAmount

Long

int64

minDepositTerm

Integer

int32

minDepositTermTypeId

Integer

int32

name

String

preClosurePenalApplicable

Boolean

preClosurePenalInterest

Double

double

preClosurePenalInterestOnTypeId

Integer

int32

recurringDepositFrequency

Integer

int32

recurringDepositFrequencyTypeId

Integer

int32

shortName

String

=== PostRecurringDepositProductsResponse

PostRecurringDepositProductsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostReportMailingJobsRequest

PostReportMailingJobsRequest

Field Name Required Type Description Format

dateFormat

String

description

String

emailMessage

String

emailRecipients

String

emailSubject

String

isActive

Boolean

locale

String

name

String

recurrence

String

startDateTime

Date

date-time

stretchyReportId

Long

int64

stretchyReportParamMap

String

=== PostReportMailingJobsResponse

PostReportMailingJobsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostReportsResponse

PostReportsResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostRepostRequest

PostRepostRequest

Field Name Required Type Description Format

description

String

reportCategory

String

reportName

String

reportParameters

List of [object]

reportSql

String

reportSubType

String

reportType

String

=== PostResourceTypeResourceIdNotesRequest

PostResourceTypeResourceIdNotesRequest

Field Name Required Type Description Format

note

String

=== PostResourceTypeResourceIdNotesResponse

PostResourceTypeResourceIdNotesResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostRolesRequest

PostRolesRequest

Field Name Required Type Description Format

description

String

name

String

=== PostRolesResponse

PostRolesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostRolesRoleIdPermissionsResponsePermissions

Field Name Required Type Description Format

ALL_FUNCTIONS_READ

String

=== PostRolesRoleIdResponse

PostRolesRoleIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostRunaccrualsRequest

runaccrualsRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

tillDate

X

String

which specifies periodic accruals should happen till the given Date

=== PostSavingsAccountBulkReversalTransactionsRequest

PostSavingsAccountBulkReversalTransactionsRequest

Field Name Required Type Description Format

isBulk

String

=== PostSavingsAccountTransactionsRequest

PostSavingsAccountTransactionsRequest

Field Name Required Type Description Format

dateFormat

String

lienAllowed

String

locale

String

paymentTypeId

Integer

int32

reasonForBlock

String

transactionAmount

BigDecimal

transactionDate

String

=== PostSavingsAccountTransactionsResponse

PostSavingsAccountTransactionsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostSavingsAccountsAccountIdRequest

PostSavingsAccountsAccountIdRequest

Field Name Required Type Description Format

activatedOnDate

String

approvedOnDate

String

dateFormat

String

locale

String

=== PostSavingsAccountsAccountIdResponse

PostSavingsAccountsAccountIdResponse

Field Name Required Type Description Format

changes

Object

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostSavingsAccountsRequest

PostSavingsAccountsRequest

Field Name Required Type Description Format

clientId

Integer

int32

dateFormat

String

locale

String

productId

Integer

int32

submittedOnDate

String

=== PostSavingsAccountsResponse

PostSavingsAccountsResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostSavingsAccountsSavingsAccountIdChargesRequest

PostSavingsAccountsSavingsAccountIdChargesRequest

Field Name Required Type Description Format

amount

Float

float

chargeId

Integer

int32

dateFormat

String

dueDate

String

locale

String

=== PostSavingsAccountsSavingsAccountIdChargesResponse

PostSavingsAccountsSavingsAccountIdChargesResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

Field Name Required Type Description Format

amount

Float

float

dateFormat

String

dueDate

String

locale

String

=== PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

PostSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

Field Name Required Type Description Format

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PostSavingsCharges

Field Name Required Type Description Format

id

Integer

int32

=== PostSavingsProductsRequest

PostSavingsProductsRequest

Field Name Required Type Description Format

accountMappingForPayment

String

accountingRule

Integer

int32

charges

Set of [PostSavingsCharges]

currencyCode

String

description

String

digitsAfterDecimal

Integer

int32

inMultiplesOf

Integer

int32

interestCalculationDaysInYearType

Integer

int32

interestCalculationType

Integer

int32

interestCompoundingPeriodType

Integer

int32

interestPostingPeriodType

Integer

int32

locale

String

name

String

nominalAnnualInterestRate

Double

double

shortName

String

=== PostSavingsProductsResponse

PostSavingsProductsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostSelfAuthenticationResponse

PostSelfAuthenticationResponse

Field Name Required Type Description Format

authenticated

Boolean

base64EncodedAuthenticationKey

String

clients

List of [integer]

int32

isSelfServiceUser

Boolean

officeId

Integer

int32

officeName

String

organisationalRole

GetSelfUserDetailsOrganisationalRole

permissions

List of [string]

roles

Set of [GetSelfUserDetailsRoles]

staffDisplayName

String

staffId

Integer

int32

userId

Integer

int32

username

String

=== PostSelfBeneficiariesTPTRequest

PostSelfBeneficiariesTPTRequest

Field Name Required Type Description Format

accountNumber

Long

int64

accountType

Integer

int32

locale

String

name

String

officeName

String

transferLimit

Integer

int32

=== PostSelfBeneficiariesTPTResponse

PostSelfBeneficiariesTPTResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostSelfLoansData

Field Name Required Type Description Format

Activation_Date

String

dateFormat

String

locale

String

=== PostSelfLoansDatatables

Field Name Required Type Description Format

data

PostSelfLoansData

registeredTableName

String

=== PostSelfLoansDisbursementData

Field Name Required Type Description Format

approvedPrincipal

Long

int64

expectedDisbursementDate

String

principal

Long

int64

=== PostSelfLoansLoanIdChanges

Field Name Required Type Description Format

closedOnDate

String

dateFormat

String

locale

String

status

PostSelfLoansLoanIdStatus

withdrawnOnDate

String

=== PostSelfLoansLoanIdRequest

PostSelfLoansLoanIdRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

note

String

withdrawnOnDate

String

=== PostSelfLoansLoanIdResponse

PostSelfLoansLoanIdResponse

Field Name Required Type Description Format

changes

PostSelfLoansLoanIdChanges

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostSelfLoansLoanIdStatus

Field Name Required Type Description Format

active

Boolean

closed

Boolean

closedObligationsMet

Boolean

closedRescheduled

Boolean

closedWrittenOff

Boolean

code

String

description

String

id

Integer

int32

overpaid

Boolean

pendingApproval

Boolean

waitingForDisbursal

Boolean

=== PostSelfLoansRequest

PostSelfLoansRequest

Field Name Required Type Description Format

amortizationType

Integer

int32

clientId

Integer

int32

datatables

Set of [PostSelfLoansDatatables]

dateFormat

String

disbursementData

Set of [PostSelfLoansDisbursementData]

expectedDisbursementDate

String

fixedEmiAmount

Integer

int32

interestCalculationPeriodType

Integer

int32

interestRatePerPeriod

Integer

int32

interestType

Integer

int32

linkAccountId

Integer

int32

loanTermFrequency

Integer

int32

loanTermFrequencyType

Integer

int32

loanType

String

locale

String

maxOutstandingLoanBalance

Long

int64

numberOfRepayments

Integer

int32

principal

Double

double

productId

Integer

int32

repaymentEvery

Integer

int32

repaymentFrequencyType

Integer

int32

submittedOnDate

String

transactionProcessingStrategyCode

String

=== PostSelfLoansResponse

PostSelfLoansResponse

Field Name Required Type Description Format

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PostStaffRequest

PostStaffRequest

Field Name Required Type Description Format

dateFormat

String

externalId

String

firstname

String

isActive

Boolean

isLoanOfficer

Boolean

joiningDate

date

date

lastname

String

locale

String

mobileNo

String

officeId

Long

int64

=== PostStandingInstructionsRequest

PostStandingInstructionsRequest

Field Name Required Type Description Format

amount

Integer

int32

dateFormat

String

fromAccountId

Long

int64

fromAccountType

Integer

int32

fromClientId

Long

int64

fromOfficeId

Long

int64

instructionType

Integer

int32

locale

String

en

monthDayFormat

String

name

String

priority

Integer

int32

recurrenceFrequency

Integer

int32

recurrenceInterval

Integer

int32

recurrenceOnMonthDay

String

recurrenceType

Integer

int32

status

Integer

int32

toAccountId

Long

int64

toAccountType

Integer

int32

toClientId

Long

int64

toOfficeId

Long

int64

transferType

Integer

int32

validFrom

String

=== PostStandingInstructionsResponse

PostStandingInstructionsResponse

Field Name Required Type Description Format

clientId

Long

int64

resourceId

Integer

int32

=== PostSurveySurveyNameApptableIdRequest

PostSurveySurveyNameApptableIdRequest

Field Name Required Type Description Format

Date

Date

date-time

dateFormat

Date

date-time

locale

String

ppi_businessoccupation_cd_q3_businessoccupation

Long

int64

ppi_floortype_cd_q5_floortype

Long

int64

ppi_fryingpans_cd_q10_fryingpans

Long

int64

ppi_habitablerooms_cd_q4_habitablerooms

Long

int64

ppi_highestschool_cd_q2_highestschool

Long

int64

ppi_household_members_cd_q1_householdmembers

Long

int64

ppi_irons_cd_q7_irons

Long

int64

ppi_lightingsource_cd_q6_lightingsource

Long

int64

ppi_mosquitonets_cd_q8_mosquitonets

Long

int64

ppi_towels_cd_q9_towels

Long

int64

=== PostSurveySurveyNameApptableIdResponse

PostSurveySurveyNameApptableIdResponse

Field Name Required Type Description Format

clientId

Long

int64

officeId

Long

int64

resourceId

Long

int64

=== PostTaxesComponentsRequest

PostTaxesComponentsRequest

Field Name Required Type Description Format

creditAccountType

Integer

int32

creditAcountId

Integer

int32

dateFormat

String

locale

String

name

String

percentage

Float

float

startDate

String

=== PostTaxesComponentsResponse

PostTaxesComponentsResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostTaxesGroupRequest

PostTaxesGroupRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

name

String

taxComponents

Set of [PostTaxesGroupTaxComponents]

=== PostTaxesGroupResponse

PostTaxesGroupResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PostTaxesGroupTaxComponents

Field Name Required Type Description Format

startDate

String

taxComponentId

Integer

int32

=== PostTellersRequest

PostTellersRequest

Field Name Required Type Description Format

dateFormat

String

description

String

locale

String

name

String

officeId

Long

int64

startDate

date

date

status

String

Enum: INVALID, PENDING, ACTIVE, INACTIVE, CLOSED,

=== PostTellersResponse

PostTellersResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== PostTellersTellerIdCashiersCashierIdAllocateRequest

PostTellersTellerIdCashiersCashierIdAllocateRequest

Field Name Required Type Description Format

currencyCode

String

dateFormat

String

locale

String

txnAmount

BigDecimal

txnDate

date

date

txnNote

String

=== PostTellersTellerIdCashiersCashierIdAllocateResponse

PostTellersTellerIdCashiersCashierIdAllocateResponse

Field Name Required Type Description Format

resourceId

Long

int64

subResourceId

Long

int64

=== PostTellersTellerIdCashiersCashierIdSettleRequest

PostTellersTellerIdCashiersCashierIdSettleRequest

Field Name Required Type Description Format

currencyCode

String

dateFormat

String

locale

String

txnAmount

BigDecimal

txnDate

date

date

txnNote

String

=== PostTellersTellerIdCashiersCashierIdSettleResponse

PostTellersTellerIdCashiersCashierIdSettleResponse

Field Name Required Type Description Format

resourceId

Long

int64

subResourceId

Long

int64

=== PostTellersTellerIdCashiersRequest

PostTellersTellerIdCashiersRequest

Field Name Required Type Description Format

dateFormat

String

description

String

endDate

date

date

isFullDay

Boolean

locale

String

staffId

Long

int64

startDate

date

date

=== PostTellersTellerIdCashiersResponse

PostTellersTellerIdCashiersResponse

Field Name Required Type Description Format

resourceId

Long

int64

subResourceId

Long

int64

=== PostTemplatesRequest

PostTemplatesRequest

Field Name Required Type Description Format

entity

Long

int64

id

Long

int64

mappers

List of [TemplateMapper]

name

String

text

String

type

Long

int64

=== PostTemplatesResponse

PostTemplatesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PostUpdateRescheduleLoanChanges

Field Name Required Type Description Format

approvedByUserId

Long

int64

approvedOnDate

String

dateFormat

String

locale

String

=== PostUpdateRescheduleLoansResponse

PostUpdateRescheduleLoansResponse

Field Name Required Type Description Format

changes

PostUpdateRescheduleLoanChanges

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Long

int64

=== PostUsersRequest

PostUsersRequest

Field Name Required Type Description Format

email

String

firstname

String

isSelfServiceUser

Boolean

lastname

String

officeId

Long

int64

password

String

repeatPassword

String

roles

List of [string]

sendPasswordToEmail

Boolean

staffId

Long

int64

username

String

=== PostUsersResponse

PostUsersResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

=== PostalAddress

Field Name Required Type Description Format

addressLine1

String

addressLine2

String

city

String

country

String

postalCode

String

stateProvince

String

=== ProcessingResultLookup

Field Name Required Type Description Format

id

Long

int64

processingResult

String

=== ProvisioningCriteriaDefinitionData

Field Name Required Type Description Format

categoryId

Long

int64

categoryName

String

expenseAccount

Long

int64

expenseCode

String

expenseName

String

id

Long

int64

liabilityAccount

Long

int64

liabilityCode

String

liabilityName

String

maxAge

Long

int64

minAge

Long

int64

provisioningPercentage

BigDecimal

=== ProvisioningEntryData

Field Name Required Type Description Format

createdById

Long

int64

createdDate

date

date

createdUser

String

id

Long

int64

journalEntry

Boolean

modifiedById

Long

int64

modifiedUser

String

provisioningEntries

List of [LoanProductProvisioningEntryData]

reservedAmount

BigDecimal

=== PutAccountNumberFormatsRequest

PutAccountNumberFormatsRequest

Field Name Required Type Description Format

prefixType

Long

int64

=== PutAccountNumberFormatsResponse

PutAccountNumberFormatsResponse

Field Name Required Type Description Format

changes

PutAccountNumberFormatschangesSwagger

resourceId

Long

int64

=== PutAccountNumberFormatschangesSwagger

Field Name Required Type Description Format

prefixType

Long

int64

=== PutAccountingRulesRequest

PutAccountingRulesRequest

Field Name Required Type Description Format

name

String

=== PutAccountingRulesResponse

PutAccountingRulesResponse

Field Name Required Type Description Format

changes

PutAccountingRulesResponsechangesSwagger

resourceId

Long

int64

=== PutAccountingRulesResponsechangesSwagger

Field Name Required Type Description Format

name

String

=== PutAccountsChanges

Field Name Required Type Description Format

applicationDate

String

dateFormat

String

locale

String

requestedShares

Integer

int32

=== PutAccountsTypeAccountIdRequest

PutAccountsTypeAccountIdRequest

Field Name Required Type Description Format

applicationDate

String

dateFormat

String

locale

String

requestedShares

Integer

int32

=== PutAccountsTypeAccountIdResponse

PutAccountsTypeAccountIdResponse

Field Name Required Type Description Format

changes

PutAccountsChanges

resourceId

Integer

int32

=== PutCachechangesSwagger

Field Name Required Type Description Format

cacheType

Long

int64

=== PutCachesRequest

PutCachesRequest

Field Name Required Type Description Format

cacheType

Long

int64

=== PutCachesResponse

PutCachesResponse

Field Name Required Type Description Format

cacheType

PutCachechangesSwagger

=== PutCentersCenterIdRequest

PutCentersCenterIdRequest

Field Name Required Type Description Format

name

String

=== PutCentersCenterIdResponse

PutCentersCenterIdResponse

Field Name Required Type Description Format

changes

PutCentersChanges

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutCentersChanges

Field Name Required Type Description Format

name

String

=== PutChargeTransactionChangesRequest

PutChargeTransactionChangesRequest

Field Name Required Type Description Format

id

Integer

int32

loanId

Integer

int32

=== PutChargeTransactionChangesResponse

PutChargeTransactionChangesResponse

Field Name Required Type Description Format

changes

Changes

loanId

Integer

int32

resourceId

Integer

int32

=== PutChargesChargeIdRequest

PutChargesChargeIdRequest

Field Name Required Type Description Format

name

String

=== PutChargesChargeIdResponse

PutChargesChargeIdResponse

Field Name Required Type Description Format

changes

PutChargesChargeIdRequest

resourceId

Integer

int32

=== PutClientClientIdAddressesRequest

PutClientClientIdAddressesRequest

Field Name Required Type Description Format

addressId

Integer

int32

street

String

=== PutClientClientIdAddressesResponse

PutClientClientIdAddressesResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PutClientCollateralRequest

PutClientCollateralRequest

Field Name Required Type Description Format

locale

String

quantity

BigDecimal

=== PutClientCollateralResponse

PutClientCollateralResponse

Field Name Required Type Description Format

changes

PutClientCollateralRequest

clientId

Integer

int32

resourceId

Integer

int32

=== PutClientsClientIdIdentifiersIdentifierIdRequest

PutClientsClientIdIdentifiersIdentifierIdRequest

Field Name Required Type Description Format

description

String

documentKey

String

documentTypeId

Integer

int32

=== PutClientsClientIdIdentifiersIdentifierIdResponse

PutClientsClientIdIdentifiersIdentifierIdResponse

Field Name Required Type Description Format

changes

PutClientsClientIdIdentifiersIdentifierIdRequest

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutClientsClientIdRequest

PutClientsClientIdRequest

Field Name Required Type Description Format

externalId

String

=== PutClientsClientIdResponse

PutClientsClientIdResponse

Field Name Required Type Description Format

changes

PutClientsClientIdRequest

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutCodeValueDataResponse

PutCodeValueDataResponse

Field Name Required Type Description Format

changes

PutCodeValuechangesSwagger

resourceId

Long

int64

=== PutCodeValuechangesSwagger

Field Name Required Type Description Format

description

String

name

String

position

Integer

int32

=== PutCodeValuesDataRequest

PutCodeValuesDataRequest

Field Name Required Type Description Format

description

String

isActive

Boolean

name

String

position

Integer

int32

=== PutCodesApichangesSwagger

Field Name Required Type Description Format

name

String

=== PutCodesRequest

PutCodesRequest

Field Name Required Type Description Format

name

String

=== PutCodesResponse

PutCodesResponse

Field Name Required Type Description Format

changes

PutCodesApichangesSwagger

resourceId

Long

int64

=== PutCollateralProductRequest

PutCollateralProductRequest

Field Name Required Type Description Format

basePrice

BigDecimal

currency

String

name

String

pctToBase

BigDecimal

quality

String

unitType

String

=== PutCollateralProductResponse

PutCollateralProductResponse

Field Name Required Type Description Format

changes

PutCollateralProductRequest

resourceId

Integer

int32

=== PutCurrenciesRequest

PutCurrenciesRequest

Field Name Required Type Description Format

currencies

List of [string]

=== PutCurrenciesResponse

PutCurrenciesResponse

Field Name Required Type Description Format

currencies

List of [string]

=== PutDataTablesAppTableIdDatatableIdResponse

PutDataTablesAppTableIdDatatableIdResponse

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Long

int64

=== PutDataTablesAppTableIdResponse

PutDataTablesAppTableIdResponse

Field Name Required Type Description Format

changes

Map of [object]

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Long

int64

=== PutDataTablesRequest

PutDataTablesRequest

Field Name Required Type Description Format

ChangeColumns

List of [PutDataTablesRequestChangeColumns]

addColumns

List of [PutDataTablesRequestAddColumns]

appTableName

String

dropColumns

List of [PutDataTablesRequestDropColumns]

=== PutDataTablesRequestAddColumns

Field Name Required Type Description Format

code

String

mandatory

Boolean

name

String

type

String

=== PutDataTablesRequestChangeColumns

Field Name Required Type Description Format

code

String

mandatory

Boolean

name

String

newCode

String

newName

String

=== PutDataTablesRequestDropColumns

Field Name Required Type Description Format

name

String

=== PutDataTablesResponse

PutDataTablesResponse

Field Name Required Type Description Format

resourceIdentifier

String

=== PutDelinquencyBucketResponse

PutDelinquencyBucketResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PutDelinquencyRangeResponse

PutDelinquencyRangeResponse

Field Name Required Type Description Format

changes

PostDelinquencyRangeRequest

resourceId

Integer

int32

=== PutEntityTypeEntityIdDocumentsResponse

PutEntityTypeEntityIdDocumentsResponse

Field Name Required Type Description Format

changes

Object

resourceId

Long

int64

resourceIdentifier

String

=== PutExternalEventConfigurationsRequest

PutExternalEventConfigurationsRequest

Field Name Required Type Description Format

externalEventConfigurations

Map of [map]

=== PutExternalServiceRequest

PutExternalServiceRequest

Field Name Required Type Description Format

password

String

username

String

=== PutFinancialActivityAccountsResponse

PutFinancialActivityAccountsResponse

Field Name Required Type Description Format

comments

PutFinancialActivityAccountscommentsSwagger

resourceId

Long

int64

=== PutFinancialActivityAccountscommentsSwagger

Field Name Required Type Description Format

glAccountId

Long

int64

=== PutFixedDepositAccountsAccountIdRequest

PutFixedDepositAccountsAccountIdRequest

Field Name Required Type Description Format

depositAmount

Float

float

locale

String

=== PutFixedDepositAccountsAccountIdResponse

PutFixedDepositAccountsAccountIdResponse

Field Name Required Type Description Format

changes

PutFixedDepositAccountsChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PutFixedDepositAccountsChanges

Field Name Required Type Description Format

depositAmount

Float

float

locale

String

=== PutFixedDepositProductsChanges

Field Name Required Type Description Format

description

String

minDepositTerm

Integer

int32

=== PutFixedDepositProductsProductIdRequest

PutFixedDepositProductsProductIdRequest

Field Name Required Type Description Format

description

String

locale

String

minDepositTerm

Integer

int32

minDepositTermTypeId

Integer

int32

=== PutFixedDepositProductsProductIdResponse

PutFixedDepositProductsProductIdResponse

Field Name Required Type Description Format

changes

PutFixedDepositProductsChanges

resourceId

Integer

int32

=== PutFloatingRatesChanges

Field Name Required Type Description Format

ratePeriods

Set of [PostFloatingRatesRatePeriods]

=== PutFloatingRatesFloatingRateIdRequest

PutFloatingRatesFloatingRateIdRequest

Field Name Required Type Description Format

isActive

Boolean

isBaseLendingRate

Boolean

name

String

ratePeriods

Set of [PostFloatingRatesRatePeriods]

=== PutFloatingRatesFloatingRateIdResponse

PutFloatingRatesFloatingRateIdResponse

Field Name Required Type Description Format

changes

PutFloatingRatesChanges

resourceId

Integer

int32

=== PutFundsFundIdRequest

PutFundsFundIdRequest

Field Name Required Type Description Format

name

String

=== PutFundsFundIdResponse

PutFundsFundIdResponse

Field Name Required Type Description Format

changes

PutFundsFundIdRequest

resourceId

Integer

int32

=== PutGLAccountsRequest

PutGLAccountsRequest

Field Name Required Type Description Format

name

String

=== PutGLAccountsResponse

PutGLAccountsResponse

Field Name Required Type Description Format

changes

PutGLAccountsResponsechangesSwagger

resourceId

Integer

int32

=== PutGLAccountsResponsechangesSwagger

Field Name Required Type Description Format

name

String

=== PutGlClosuresRequest

PutGlClosuresRequest

Field Name Required Type Description Format

comments

String

=== PutGlClosuresResponse

PutGlClosuresResponse

Field Name Required Type Description Format

comments

String

officeId

Long

int64

resourceId

Long

int64

=== PutGlobalConfigurationsRequest

PutGlobalConfigurationsRequest

Field Name Required Type Description Format

description

Long

int64

enabled

Boolean

=== PutGlobalConfigurationsResponse

PutGlobalConfigurationsResponse

Field Name Required Type Description Format

changes

PutGlobalConfigurationsResponsechangesSwagger

resourceId

Long

int64

=== PutGlobalConfigurationsResponsechangesSwagger

Field Name Required Type Description Format

enabled

Boolean

=== PutGroupsGroupIdChanges

Field Name Required Type Description Format

name

String

=== PutGroupsGroupIdRequest

PutGroupsGroupIdRequest

Field Name Required Type Description Format

name

String

=== PutGroupsGroupIdResponse

PutGroupsGroupIdResponse

Field Name Required Type Description Format

changes

PutGroupsGroupIdChanges

groupId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutHolidaysHolidayIdRequest

PutHolidaysHolidayIdRequest

Field Name Required Type Description Format

description

String

name

String

=== PutHolidaysHolidayIdResponse

PutHolidaysHolidayIdResponse

Field Name Required Type Description Format

changes

PutHolidaysHolidayIdResponseChanges

resourceId

Long

int64

=== PutHolidaysHolidayIdResponseChanges

Field Name Required Type Description Format

description

String

name

String

=== PutHookRequest

PutHookRequest

Field Name Required Type Description Format

config

List of [Field]

displayName

String

events

List of [Event]

isActive

Boolean

name

String

templateId

Long

int64

=== PutHookResponse

PutHookResponse

Field Name Required Type Description Format

changes

PutHookResponseChangesSwagger

resourceId

Long

int64

=== PutHookResponseChangesSwagger

Field Name Required Type Description Format

config

List of [Field]

displayName

String

events

List of [Event]

=== PutInterestRateChartsChartIdChartSlabsChartSlabIdRequest

PutInterestRateChartsChartIdChartSlabsChartSlabIdRequest

Field Name Required Type Description Format

annualInterestRate

Double

double

description

String

=== PutInterestRateChartsChartIdChartSlabsChartSlabIdResponse

PutInterestRateChartsChartIdChartSlabsChartSlabIdResponse

Field Name Required Type Description Format

changes

PutInterestRateChartsChartIdChartSlabsChartSlabIdRequest

resourceId

Integer

int32

=== PutInterestRateChartsChartIdRequest

PutInterestRateChartsChartIdRequest

Field Name Required Type Description Format

description

String

name

String

=== PutInterestRateChartsChartIdResponse

PutInterestRateChartsChartIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PutJobsJobIDRequest

PutJobsJobsIDRequest

Field Name Required Type Description Format

active

Boolean

cronExpression

String

displayName

String

=== PutLoanChanges

Field Name Required Type Description Format

locale

String

principal

Double

double

=== PutLoanProductsProductIdRequest

PutLoanProductsProductIdRequest

Field Name Required Type Description Format

locale

String

principal

Double

double

=== PutLoanProductsProductIdResponse

PutLoanProductsProductIdResponse

Field Name Required Type Description Format

changes

PutLoanChanges

resourceId

Long

int64

=== PutLoansLoanIdChanges

Field Name Required Type Description Format

locale

String

principal

Long

int64

=== PutLoansLoanIdChargesChargeIdRequest

PutLoansLoanIdChargesChargeIdRequest
Field Name Required Type Description Format

amount

Double

double

dateFormat

String

dueDate

String

locale

String

=== PutLoansLoanIdChargesChargeIdResponse

PutLoansLoanIdChargesChargeIdResponse

Field Name Required Type Description Format

changes

PutLoansLoanIdChargesChargeIdRequest

clientId

Long

int64

loanId

Long

int64

officeId

Long

int64

resourceId

Integer

int32

=== PutLoansLoanIdCollateral

Field Name Required Type Description Format

clientCollateralId

Long

int64

quantity

BigDecimal

=== PutLoansLoanIdCollateralsCollateralIdResponse

PutLoansLoanIdCollateralsCollateralIdResponse

Field Name Required Type Description Format

changes

PutLoansLoandIdCollateralsCollateralIdRequest

loanId

Integer

int32

resourceId

Integer

int32

=== PutLoansLoanIdDisbursementData

Field Name Required Type Description Format

dateFormat

String

expectedDisbursementDate

String

interestType

Integer

int32

isEqualAmortization

Boolean

locale

String

netDisbursalAmount

BigDecimal

principal

BigDecimal

=== PutLoansLoanIdRequest

PutLoansLoanIdRequest

Field Name Required Type Description Format

amortizationType

Integer

int32

charges

List of [PutLoansLoanIdChanges]

clientId

Long

int64

collateral

List of [PutLoansLoanIdCollateral]

createStandingInstructionAtDisbursement

Boolean

dateFormat

String

disbursementData

List of [PutLoansLoanIdDisbursementData]

expectedDisbursementDate

String

fixedPrincipalPercentagePerInstallment

BigDecimal

fraud

Boolean

graceOnArrearsAgeing

Integer

int32

interestCalculationPeriodType

Integer

int32

interestChargedFromDate

String

interestRatePerPeriod

Integer

int32

interestType

Integer

int32

isEqualAmortization

Boolean

isTopup

Boolean

linkAccountId

Long

int64

loanIdToClose

Long

int64

loanTermFrequency

Integer

int32

loanTermFrequencyType

Integer

int32

loanType

String

locale

String

maxOutstandingLoanBalance

Long

int64

numberOfRepayments

Integer

int32

principal

Long

int64

productId

Integer

int32

repaymentEvery

Integer

int32

repaymentFrequencyDayOfWeekType

Integer

int32

repaymentFrequencyNthDayType

Integer

int32

repaymentFrequencyType

Integer

int32

repaymentsStartingFromDate

String

submittedOnDate

String

transactionProcessingStrategyCode

String

=== PutLoansLoanIdResponse

PutLoansLoanIdResponse

Field Name Required Type Description Format

changes

PutLoansLoanIdChanges

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutLoansLoandIdCollateralsCollateralIdRequest

PutLoansLoandIdCollateralsCollateralIdRequest

Field Name Required Type Description Format

description

String

=== PutNotesChanges

Field Name Required Type Description Format

note

String

=== PutOfficesOfficeIdRequest

PutOfficesOfficeIdRequest

Field Name Required Type Description Format

name

String

=== PutOfficesOfficeIdResponse

PutOfficesOfficeIdResponse

Field Name Required Type Description Format

changes

PutOfficesOfficeIdResponseChanges

officeId

Long

int64

resourceId

Long

int64

=== PutOfficesOfficeIdResponseChanges

Field Name Required Type Description Format

name

String

=== PutPasswordPreferencesTemplateRequest

PutPasswordPreferencesTemplateRequest

Field Name Required Type Description Format

validationPolicyId

Long

int64

=== PutPaymentTypesPaymentTypeIdRequest

PutPaymentTypesPaymentTypeIdRequest

Field Name Required Type Description Format

codeName

String

description

String

isCashPayment

Boolean

isSystemDefined

Boolean

name

String

position

Integer

int32

=== PutPaymentTypesPaymentTypeIdResponse

PutPaymentTypesPaymentTypeIdResponse

Field Name Required Type Description Format

resourceId

Integer

int32

=== PutPermissionsRequest

PutPermissionsRequest

Field Name Required Type Description Format

permissions

String

=== PutProductsChanges

Field Name Required Type Description Format

description

String

locale

String

unitPrice

Double

double

=== PutProductsTypeProductIdRequest

PutProductsTypeProductIdRequest

Field Name Required Type Description Format

description

String

locale

String

unitPrice

Double

double

=== PutProductsTypeProductIdResponse

PutProductsTypeProductIdResponse

Field Name Required Type Description Format

changes

PutProductsChanges

resourceId

Integer

int32

=== PutProvisioningCriteriaRequest

PutProvisioningCriteriaRequest

Field Name Required Type Description Format

criteriaName

String

loanProducts

List of [LoanProductData]

provisioningcriteria

List of [ProvisioningCriteriaDefinitionData]

=== PutProvisioningCriteriaResponse

PutProvisioningCriteriaResponse

Field Name Required Type Description Format

changes

PutProvisioningCriteriaResponseChanges

resourceId

Long

int64

=== PutProvisioningCriteriaResponseChanges

Field Name Required Type Description Format

criteriaName

String

=== PutProvisioningEntriesRequest

PutProvisioningEntriesRequest

Field Name Required Type Description Format

command

String

=== PutProvisioningEntriesResponse

PutProvisioningEntriesResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PutRecurringDepositAccountsAccountIdRequest

PutRecurringDepositAccountsAccountIdRequest

Field Name Required Type Description Format

depositAmount

Integer

int32

locale

String

=== PutRecurringDepositAccountsAccountIdResponse

PutRecurringDepositAccountsAccountIdResponse

Field Name Required Type Description Format

changes

PutRecurringDepositAccountsChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PutRecurringDepositAccountsChanges

Field Name Required Type Description Format

depositAmount

Integer

int32

locale

String

=== PutRecurringDepositProductsChanges

Field Name Required Type Description Format

description

String

minDepositTerm

Integer

int32

=== PutRecurringDepositProductsRequest

PutRecurringDepositProductsRequest

Field Name Required Type Description Format

description

String

locale

String

minDepositTerm

Integer

int32

minDepositTermTypeId

Integer

int32

=== PutRecurringDepositProductsResponse

PutRecurringDepositProductsResponse

Field Name Required Type Description Format

changes

PutRecurringDepositProductsChanges

resourceId

Integer

int32

=== PutReportMailingJobsRequest

PutReportMailingJobsRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

startDateTime

Date

date-time

=== PutReportMailingJobsResponse

PutReportMailingJobsResponse

Field Name Required Type Description Format

changes

PutReportMailingJobsResponseChanges

resourceId

Long

int64

=== PutReportMailingJobsResponseChanges

Field Name Required Type Description Format

startDateTime

Date

date-time

=== PutReportRequest

PutReportRequest

Field Name Required Type Description Format

reportName

String

reportParameters

List of [object]

=== PutReportResponse

PutReportResponse

Field Name Required Type Description Format

changes

PutReportResponseChanges

resourceId

Long

int64

=== PutReportResponseChanges

Field Name Required Type Description Format

reportName

String

reportParameters

List of [object]

=== PutResourceTypeResourceIdNotesNoteIdRequest

PutResourceTypeResourceIdNotesNoteIdRequest

Field Name Required Type Description Format

note

String

=== PutResourceTypeResourceIdNotesNoteIdResponse

PutResourceTypeResourceIdNotesNoteIdResponse

Field Name Required Type Description Format

changes

PutNotesChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutRolesRoleIdPermissionsRequest

PutRolesRoleIdPermissionsRequest

Field Name Required Type Description Format

permissions

PostRolesRoleIdPermissionsResponsePermissions

=== PutRolesRoleIdPermissionsResponse

PutRolesRoleIdPermissionsResponse

Field Name Required Type Description Format

permissions

PostRolesRoleIdPermissionsResponsePermissions

resourceId

Long

int64

=== PutRolesRoleIdRequest

PutRolesRoleIdRequest

Field Name Required Type Description Format

description

String

=== PutRolesRoleIdResponse

PutRolesRoleIdResponse

Field Name Required Type Description Format

changes

PutRolesRoleIdResponseChanges

resourceId

Long

int64

=== PutRolesRoleIdResponseChanges

Field Name Required Type Description Format

description

String

=== PutSavingsAccountsAccountIdRequest

PutSavingsAccountsAccountIdRequest

Field Name Required Type Description Format

locale

String

nominalAnnualInterestRate

Double

double

=== PutSavingsAccountsAccountIdResponse

PutSavingsAccountsAccountIdResponse

Field Name Required Type Description Format

changes

PutSavingsAccountsChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PutSavingsAccountsChanges

Field Name Required Type Description Format

locale

String

nominalAnnualInterestRate

Double

double

=== PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdRequest

Field Name Required Type Description Format

amount

Float

float

dateFormat

String

dueDate

String

locale

String

=== PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

PutSavingsAccountsSavingsAccountIdChargesSavingsAccountChargeIdResponse

Field Name Required Type Description Format

changes

PutSavingsChanges

clientId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

savingsId

Integer

int32

=== PutSavingsChanges

Field Name Required Type Description Format

description

String

interestRate

Double

double

locale

String

=== PutSavingsProductsProductIdRequest

PutSavingsProductsProductIdRequest

Field Name Required Type Description Format

description

String

interestRate

Double

double

locale

String

=== PutSavingsProductsProductIdResponse

PutSavingsProductsProductIdResponse

Field Name Required Type Description Format

changes

PutSavingsChanges

resourceId

Integer

int32

=== PutSelfBeneficiariesChanges

Field Name Required Type Description Format

name

String

transferLimit

Integer

int32

=== PutSelfBeneficiariesTPTBeneficiaryIdRequest

PutSelfBeneficiariesTPTBeneficiaryIdRequest

Field Name Required Type Description Format

name

String

transferLimit

Integer

int32

=== PutSelfBeneficiariesTPTBeneficiaryIdResponse

PutSelfBeneficiariesTPTBeneficiaryIdResponse

Field Name Required Type Description Format

changes

PutSelfBeneficiariesChanges

resourceId

Integer

int32

=== PutSelfLoansChanges

Field Name Required Type Description Format

locale

String

principal

Long

int64

=== PutSelfLoansLoanIdRequest

PutSelfLoansLoanIdRequest

Field Name Required Type Description Format

amortizationType

Integer

int32

dateFormat

String

expectedDisbursementDate

String

interestCalculationPeriodType

Integer

int32

interestRatePerPeriod

Integer

int32

interestType

Integer

int32

loanTermFrequency

Integer

int32

loanTermFrequencyType

Integer

int32

locale

String

numberOfRepayments

Integer

int32

principal

Long

int64

productId

Integer

int32

repaymentEvery

Integer

int32

repaymentFrequencyType

Integer

int32

transactionProcessingStrategyCode

String

=== PutSelfLoansLoanIdResponse

PutSelfLoansLoanIdResponse

Field Name Required Type Description Format

changes

PutSelfLoansChanges

clientId

Integer

int32

loanId

Integer

int32

officeId

Integer

int32

resourceId

Integer

int32

=== PutSelfUserChanges

Field Name Required Type Description Format

passwordEncoded

String

=== PutSelfUserRequest

PutSelfUserRequest

Field Name Required Type Description Format

password

String

repeatPassword

String

=== PutSelfUserResponse

PutSelfUserResponse

Field Name Required Type Description Format

changes

PutSelfUserChanges

officeId

Integer

int32

resourceId

Integer

int32

=== PutStaffRequest

PutStaffRequest

Field Name Required Type Description Format

externalId

String

isLoanOfficer

Boolean

=== PutStandingInstructionsStandingInstructionIdRequest

PutStandingInstructionsStandingInstructionIdRequest

Field Name Required Type Description Format

recurrenceInterval

Integer

int32

=== PutStandingInstructionsStandingInstructionIdResponse

PutStandingInstructionsStandingInstructionIdResponse

Field Name Required Type Description Format

changes

PutUpdateStandingInstructionChanges

resourceId

Integer

int32

=== PutTaxesComponentsChanges

Field Name Required Type Description Format

name

String

percentage

Float

float

startDate

date

date

=== PutTaxesComponentsTaxComponentIdRequest

PutTaxesComponentsTaxComponentIdRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

name

String

percentage

Float

float

startDate

String

=== PutTaxesComponentsTaxComponentIdResponse

PutTaxesComponentsTaxComponentIdResponse

Field Name Required Type Description Format

changes

PutTaxesComponentsChanges

resourceId

Integer

int32

=== PutTaxesGroupChanges

Field Name Required Type Description Format

addComponents

List of [integer]

int32

modifiedComponents

Set of [PutTaxesGroupModifiedComponents]

name

String

=== PutTaxesGroupModifiedComponents

Field Name Required Type Description Format

endDate

String

taxComponentId

Integer

int32

=== PutTaxesGroupTaxComponents

Field Name Required Type Description Format

endDate

String

id

Integer

int32

taxComponentId

Integer

int32

=== PutTaxesGroupTaxGroupIdRequest

PutTaxesGroupTaxGroupIdRequest

Field Name Required Type Description Format

dateFormat

String

locale

String

name

String

taxComponents

Set of [PutTaxesGroupTaxComponents]

=== PutTaxesGroupTaxGroupIdResponse

PutTaxesGroupTaxGroupIdResponse

Field Name Required Type Description Format

changes

PutTaxesGroupChanges

resourceId

Integer

int32

=== PutTellersRequest

PutTellersRequest

Field Name Required Type Description Format

dateFormat

String

description

String

endDate

date

date

locale

String

name

String

officeId

Long

int64

startDate

date

date

status

String

Enum: INVALID, PENDING, ACTIVE, INACTIVE, CLOSED,

=== PutTellersResponse

PutTellersResponse

Field Name Required Type Description Format

changes

PutTellersResponseChanges

officeId

Long

int64

resourceId

Long

int64

=== PutTellersResponseChanges

Field Name Required Type Description Format

dateFormat

String

description

String

endDate

date

date

locale

String

startDate

date

date

=== PutTellersTellerIdCashiersCashierIdRequest

PutTellersTellerIdCashiersCashierIdRequest

Field Name Required Type Description Format

dateFormat

String

description

String

endDate

date

date

isFullDay

Boolean

locale

String

staffId

Long

int64

startDate

date

date

=== PutTellersTellerIdCashiersCashierIdResponse

PutTellersTellerIdCashiersCashierIdResponse

Field Name Required Type Description Format

changes

PutTellersTellerIdCashiersCashierIdResponseChanges

resourceId

Long

int64

subResourceId

Long

int64

=== PutTellersTellerIdCashiersCashierIdResponseChanges

Field Name Required Type Description Format

dateFormat

String

description

String

endDate

date

date

locale

String

=== PutTemplatesTemplateIdRequest

PutTemplatesTemplateIdRequest

Field Name Required Type Description Format

entity

Long

int64

id

Long

int64

mappers

List of [TemplateMapper]

name

String

text

String

type

Long

int64

=== PutTemplatesTemplateIdResponse

PutTemplatesTemplateIdResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== PutUpdateStandingInstructionChanges

Field Name Required Type Description Format

recurrenceInterval

Integer

int32

=== PutUsersUserIdRequest

PutUsersUserIdRequest

Field Name Required Type Description Format

firstname

String

password

String

repeatPassword

String

=== PutUsersUserIdResponse

PutUsersUserIdResponse

Field Name Required Type Description Format

changes

PutUsersUserIdResponseChanges

officeId

Long

int64

resourceId

Long

int64

=== PutUsersUserIdResponseChanges

Field Name Required Type Description Format

firstname

String

passwordEncoded

String

=== PutWorkingDaysRequest

PutWorkingDaysRequest

Field Name Required Type Description Format

extendTermForDailyRepayments

Boolean

locale

String

recurrence

String

repaymentRescheduleType

EnumOptionData

=== PutWorkingDaysResponse

PutWorkingDaysResponse

Field Name Required Type Description Format

resourceId

Long

int64

=== Question

Field Name Required Type Description Format

componentKey

String

description

String

id

Long

int64

key

String

new

Boolean

responses

List of [Response]

sequenceNo

Integer

int32

survey

Survey

text

String

=== QuestionData

Field Name Required Type Description Format

componentKey

String

description

String

id

Long

int64

key

String

responseDatas

List of [ResponseData]

sequenceNo

Integer

int32

text

String

=== Rate

Field Name Required Type Description Format

active

Boolean

approveUser

AppUser

createdBy

Long

int64

createdDate

Date

date-time

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

name

String

new

Boolean

percentage

BigDecimal

productApply

Integer

int32

=== RateData

Field Name Required Type Description Format

active

Boolean

id

Long

int64

name

String

percentage

BigDecimal

productApply

EnumOptionData

=== ReportMailingJobRunHistoryData

Field Name Required Type Description Format

endDateTime

Date

date-time

errorLog

String

errorMessage

String

id

Long

int64

reportMailingJobId

Long

int64

startDateTime

Date

date-time

status

String

=== ReportMailingJobTimelineData

Field Name Required Type Description Format

createdByFirstname

String

createdByLastname

String

createdByUsername

String

createdOnDate

date

date

updatedByFirstname

String

updatedByLastname

String

updatedByUsername

String

updatedOnDate

date

date

=== RescheduleReasonsCodeValue

Field Name Required Type Description Format

active

Boolean

id

Integer

int32

mandatory

Boolean

name

String

=== RescheduleReasonsTimeline

Field Name Required Type Description Format

approvedByFirstname

String

approvedByLastname

String

approvedByUsername

String

approvedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

=== Response

Field Name Required Type Description Format

id

Long

int64

new

Boolean

question

Question

sequenceNo

Integer

int32

text

String

value

Integer

int32

=== ResponseData

Field Name Required Type Description Format

id

Long

int64

sequenceNo

Integer

int32

text

String

value

Integer

int32

=== ResultsetColumnHeaderData

Field Name Required Type Description Format

booleanDisplayType

Boolean

codeLookupDisplayType

Boolean

codeValueDisplayType

Boolean

columnCode

String

columnDisplayType

String

columnLength

Long

int64

columnName

String

columnType

String

columnValues

List of [object]

dateDisplayType

Boolean

dateTimeDisplayType

Boolean

decimalDisplayType

Boolean

integerDisplayType

Boolean

isColumnNullable

Boolean

isColumnPrimaryKey

Boolean

mandatory

Boolean

optional

Boolean

string

Boolean

=== ResultsetRowData

Field Name Required Type Description Format

row

List of [object]

=== RetrieveOneResponse

GetStaffResponse

Field Name Required Type Description Format

displayName

String

externalId

String

firstname

String

id

Long

int64

isActive

Boolean

isLoanOfficer

Boolean

joiningDate

date

date

lastname

String

officeId

Long

int64

officeName

String

=== Role

Field Name Required Type Description Format

disabled

Boolean

enabled

Boolean

id

Long

int64

name

String

new

Boolean

permissions

List of [Permission]

=== RoleData

Field Name Required Type Description Format

id

Long

int64

name

String

=== RunReportsResponse

Field Name Required Type Description Format

columnHeaders

List of [ResultsetColumnHeaderData]

data

List of [ResultsetRowData]

=== SavingsAccountApplicationTimelineData

Field Name Required Type Description Format

activatedByFirstname

String

activatedByLastname

String

activatedByUsername

String

activatedOnDate

date

date

approvedByFirstname

String

approvedByLastname

String

approvedByUsername

String

approvedOnDate

date

date

closedByFirstname

String

closedByLastname

String

closedByUsername

String

closedOnDate

date

date

rejectedByFirstname

String

rejectedByLastname

String

rejectedByUsername

String

rejectedOnDate

date

date

submittedByFirstname

String

submittedByLastname

String

submittedByUsername

String

submittedOnDate

date

date

withdrawnByFirstname

String

withdrawnByLastname

String

withdrawnByUsername

String

withdrawnOnDate

date

date

=== SavingsAccountChargeData

Field Name Required Type Description Format

accountId

Long

int64

amount

BigDecimal

amountOrPercentage

BigDecimal

amountOutstanding

BigDecimal

amountPaid

BigDecimal

amountPercentageAppliedTo

BigDecimal

amountWaived

BigDecimal

amountWrittenOff

BigDecimal

annualFee

Boolean

chargeCalculationType

EnumOptionData

chargeData

ChargeData

chargeId

Long

int64

chargeOptions

List of [ChargeData]

chargeTimeType

EnumOptionData

currency

CurrencyData

dueDate

date

date

feeCharge

Boolean

feeInterval

Integer

int32

feeOnMonthDay

Charge_feeOnMonthDay

freeWithdrawalChargeFrequency

Integer

int32

id

Long

int64

inactivationDate

date

date

isActive

Boolean

isFreeWithdrawal

Boolean

name

String

penalty

Boolean

percentage

BigDecimal

restartFrequency

Integer

int32

restartFrequencyEnum

Integer

int32

savingsActivation

Boolean

withdrawalFee

Boolean

=== SavingsAccountChargesPaidByData

Field Name Required Type Description Format

amount

BigDecimal

chargeId

Long

int64

feeCharge

Boolean

penaltyCharge

Boolean

savingsAccountChargeData

SavingsAccountChargeData

=== SavingsAccountData

Field Name Required Type Description Format

accountNo

String

accrualBasedAccountingEnabledOnSavingsProduct

Boolean

activatedOnDate

date

date

activationLocalDate

date

date

allowOverdraft

Boolean

annualFee

SavingsAccountChargeData

cashBasedAccountingEnabledOnSavingsProduct

Boolean

chargeOptions

List of [ChargeData]

charges

List of [SavingsAccountChargeData]

clientData

ClientData

clientId

Long

int64

clientName

String

currency

CurrencyData

datatables

List of [DatatableData]

dateFormat

String

daysToDormancy

Integer

int32

daysToEscheat

Integer

int32

daysToInactive

Integer

int32

depositType

EnumOptionData

depositTypeId

Integer

int32

enforceMinRequiredBalance

Boolean

existingReversedTransactionIds

Set of [long]

int64

existingTransactionIds

Set of [long]

int64

externalId

String

fieldOfficerId

Long

int64

fieldOfficerName

String

fieldOfficerOptions

List of [StaffData]

glAccountIdForInterestOnSavings

Long

int64

glAccountIdForSavingsControl

Long

int64

groupGeneralData

GroupGeneralData

groupId

Long

int64

groupName

String

id

Long

int64

interestCalculationDaysInYearType

EnumOptionData

interestCalculationDaysInYearTypeId

Integer

int32

interestCalculationDaysInYearTypeOptions

List of [EnumOptionData]

interestCalculationType

EnumOptionData

interestCalculationTypeId

Integer

int32

interestCalculationTypeOptions

List of [EnumOptionData]

interestCompoundingPeriodType

EnumOptionData

interestCompoundingPeriodTypeId

Integer

int32

interestCompoundingPeriodTypeOptions

List of [EnumOptionData]

interestPostingPeriodType

EnumOptionData

interestPostingPeriodTypeId

Integer

int32

interestPostingPeriodTypeOptions

List of [EnumOptionData]

isDormancyTrackingActive

Boolean

lastActiveTransactionDate

date

date

lastSavingsAccountTransaction

SavingsAccountTransactionData

lienAllowed

Boolean

locale

String

lockedInUntilDate

date

date

lockinPeriodFrequency

Integer

int32

lockinPeriodFrequencyType

EnumOptionData

lockinPeriodFrequencyTypeId

Integer

int32

lockinPeriodFrequencyTypeOptions

List of [EnumOptionData]

maxAllowedLienLimit

BigDecimal

minBalanceForInterestCalculation

BigDecimal

minOverdraftForInterestCalculation

BigDecimal

minRequiredBalance

BigDecimal

minRequiredOpeningBalance

BigDecimal

newSavingsAccountTransactionData

List of [SavingsAccountTransactionData]

nominalAnnualInterestRate

BigDecimal

nominalAnnualInterestRateOverdraft

BigDecimal

officeId

Long

int64

onHoldFunds

BigDecimal

overdraftLimit

BigDecimal

productId

Long

int64

productOptions

List of [SavingsProductData]

reasonForBlock

String

rowIndex

Integer

int32

savingsAccountSummaryData

SavingsAccountSummaryData

savingsAccountTransactionData

List of [SavingsAccountTransactionData]

savingsAccountTransactionSummaryWrapper

Object

savingsAccountTransactionsWithPivotConfig

List of [SavingsAccountTransactionData]

savingsAmountOnHold

BigDecimal

savingsHelper

Object

savingsProduct

SavingsProductData

savingsProductData

SavingsProductData

savingsProductId

Long

int64

savingsProductName

String

startInterestCalculationDate

date

date

status

SavingsAccountStatusEnumData

subStatus

SavingsAccountSubStatusEnumData

submittedOnDate

date

date

summary

SavingsAccountSummaryData

taxGroup

TaxGroupData

timeline

SavingsAccountApplicationTimelineData

transactions

List of [SavingsAccountTransactionData]

updatedTransactions

List of [SavingsAccountTransactionData]

withHoldTax

Boolean

withdrawalFee

SavingsAccountChargeData

withdrawalFeeForTransfers

Boolean

withdrawalFeeTypeOptions

List of [EnumOptionData]

=== SavingsAccountStatusEnumData

Field Name Required Type Description Format

active

Boolean

approved

Boolean

closed

Boolean

code

String

id

Long

int64

matured

Boolean

prematureClosed

Boolean

rejected

Boolean

submittedAndPendingApproval

Boolean

transferInProgress

Boolean

transferOnHold

Boolean

value

String

withdrawnByApplicant

Boolean

=== SavingsAccountSubStatusEnumData

Field Name Required Type Description Format

block

Boolean

blockCredit

Boolean

blockDebit

Boolean

code

String

dormant

Boolean

escheat

Boolean

id

Long

int64

inactive

Boolean

none

Boolean

value

String

=== SavingsAccountSummaryData

Field Name Required Type Description Format

accountBalance

BigDecimal

availableBalance

BigDecimal

currency

CurrencyData

interestNotPosted

BigDecimal

interestPostedTillDate

date

date

lastInterestCalculationDate

date

date

prevInterestPostedTillDate

date

date

runningBalanceOnInterestPostingTillDate

BigDecimal

runningBalanceOnPivotDate

BigDecimal

totalAnnualFees

BigDecimal

totalDeposits

BigDecimal

totalFeeCharge

BigDecimal

totalInterestEarned

BigDecimal

totalInterestPosted

BigDecimal

totalOverdraftInterestDerived

BigDecimal

totalPenaltyCharge

BigDecimal

totalWithdrawalFees

BigDecimal

totalWithdrawals

BigDecimal

totalWithholdTax

BigDecimal

=== SavingsAccountTransactionData

Field Name Required Type Description Format

accountId

Long

int64

accountNo

String

accountNumber

String

amount

BigDecimal

amountOnHold

Boolean

amountRelease

Boolean

annualFee

Boolean

annualFeeAndNotReversed

Boolean

balanceEndDate

date

date

balanceNumberOfDays

Integer

int32

bankNumber

String

chargeTransaction

Boolean

chargeTransactionAndNotReversed

Boolean

chargesPaidByData

Set of [SavingsAccountChargesPaidByData]

checkNumber

String

credit

Boolean

cumulativeBalance

BigDecimal

currency

CurrencyData

date

date

date

dateFormat

String

debit

Boolean

deposit

Boolean

depositAndNotReversed

Boolean

dividendPayoutAndNotReversed

Boolean

endOfBalanceLocalDate

date

date

feeCharge

Boolean

feeChargeAndNotReversed

Boolean

id

Long

int64

interestPosting

Boolean

interestPostingAndNotReversed

Boolean

interestedPostedAsOn

Boolean

isManualTransaction

Boolean

isReversal

Boolean

lienTransaction

Boolean

locale

String

manualTransaction

Boolean

modifiedId

Long

int64

notReversed

Boolean

note

String

originalTransactionId

Long

int64

outstandingChargeAmount

BigDecimal

overdraftAmount

BigDecimal

overdraftInterestAndNotReversed

Boolean

payCharge

Boolean

paymentDetailData

PaymentDetailData

paymentTypeId

Long

int64

paymentTypeOptions

List of [PaymentTypeData]

penaltyCharge

Boolean

penaltyChargeAndNotReversed

Boolean

reasonForBlock

String

receiptNumber

String

refNo

String

releaseTransactionId

Long

int64

reversalTransaction

Boolean

reversed

Boolean

routingCode

String

rowIndex

Integer

int32

runningBalance

BigDecimal

savingsAccountChargesPaid

Set of [SavingsAccountChargesPaidByData]

savingsAccountId

Long

int64

submittedByUsername

String

submittedOnDate

date

date

taxDetails

List of [TaxDetailsData]

transactionAmount

BigDecimal

transactionDate

date

date

transactionType

SavingsAccountTransactionEnumData

transfer

AccountTransferData

waiveCharge

Boolean

waiveFeeCharge

Boolean

waiveFeeChargeAndNotReversed

Boolean

waivePenaltyCharge

Boolean

waivePenaltyChargeAndNotReversed

Boolean

withHoldTaxAndNotReversed

Boolean

withdrawal

Boolean

withdrawalFeeAndNotReversed

Boolean

=== SavingsAccountTransactionEnumData

Field Name Required Type Description Format

amountHold

Boolean

amountRelease

Boolean

annualFee

Boolean

approveTransfer

Boolean

chargeTransaction

Boolean

code

String

deposit

Boolean

depositOrWithdrawal

Boolean

dividendPayout

Boolean

escheat

Boolean

feeDeduction

Boolean

id

Long

int64

incomeFromInterest

Boolean

initiateTransfer

Boolean

interestPosting

Boolean

overDraftInterestPosting

Boolean

overdraftFee

Boolean

overdraftInterest

Boolean

payCharge

Boolean

rejectTransfer

Boolean

value

String

withdrawTransfer

Boolean

withdrawal

Boolean

withdrawalFee

Boolean

withholdTax

Boolean

writtenoff

Boolean

=== SavingsProductData

Field Name Required Type Description Format

accrualBasedAccountingEnabled

Boolean

allowOverdraft

Boolean

cashBasedAccountingEnabled

Boolean

currency

CurrencyData

depositAccountType

String

id

Long

int64

interestCalculationDaysInYearType

EnumOptionData

interestCalculationType

EnumOptionData

interestCompoundingPeriodType

EnumOptionData

interestPostingPeriodType

EnumOptionData

lockinPeriodFrequency

Integer

int32

lockinPeriodFrequencyType

EnumOptionData

maxAllowedLienLimit

BigDecimal

minRequiredBalance

BigDecimal

minRequiredOpeningBalance

BigDecimal

name

String

nominalAnnualInterestRate

BigDecimal

overdraftLimit

BigDecimal

periodicAccrualAccounting

Boolean

upfrontAccrualAccounting

Boolean

withdrawalFeeForTransfers

Boolean

=== Scorecard

Field Name Required Type Description Format

appUser

AppUser

client

Client

createdOn

Date

date-time

id

Long

int64

new

Boolean

question

Question

response

Response

survey

Survey

value

Integer

int32

=== ScorecardData

Field Name Required Type Description Format

clientId

Long

int64

id

Long

int64

scorecardValues

List of [ScorecardValue]

surveyId

Long

int64

surveyName

String

userId

Long

int64

username

String

=== ScorecardValue

Field Name Required Type Description Format

createdOn

Date

date-time

questionId

Long

int64

responseId

Long

int64

value

Integer

int32

=== SingleDebitOrCreditEntryCommand

Field Name Required Type Description Format

amount

BigDecimal

comments

String

commentsChanged

Boolean

glAccountId

Long

int64

glAccountIdChanged

Boolean

glAmountChanged

Boolean

parametersPassedInRequest

Set of [string]

=== SmsCampaignData

Field Name Required Type Description Format

campaignName

String

campaignStatus

EnumOptionData

campaignType

EnumOptionData

id

Long

int64

lastTriggerDate

date

date

message

String

nextTriggerDate

Date

date-time

notification

Boolean

paramValue

String

recurrence

String

recurrenceStartDate

Date

date-time

reportName

String

runReportId

Long

int64

=== Staff

Field Name Required Type Description Format

active

Boolean

id

Long

int64

image

Image

loanOfficer

Boolean

new

Boolean

notActive

Boolean

notLoanOfficer

Boolean

=== StaffData

Field Name Required Type Description Format

displayName

String

firstname

String

id

Long

int64

joiningDate

date

date

lastname

String

officeId

Long

int64

officeName

String

rowIndex

Integer

int32

=== SubjectName

Field Name Required Type Description Format

displayName

String

firstName

String

lastName

String

middleName

String

=== Survey

Field Name Required Type Description Format

components

List of [Component]

countryCode

String

description

String

id

Long

int64

key

String

name

String

new

Boolean

questions

List of [Question]

validFrom

date

date

validTo

date

date

=== SurveyData

Field Name Required Type Description Format

componentDatas

List of [ComponentData]

countryCode

String

description

String

id

Long

int64

key

String

name

String

questionDatas

List of [QuestionData]

validFrom

date

date

validTo

date

date

=== TaxComponent

Field Name Required Type Description Format

createdBy

Long

int64

createdDate

Date

date-time

creditAccountType

Integer

int32

creditAcount

GLAccount

debitAccountType

Integer

int32

debitAcount

GLAccount

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

new

Boolean

percentage

BigDecimal

taxComponentHistories

Set of [TaxComponentHistory]

taxGroupMappings

Set of [TaxGroupMappings]

=== TaxComponentData

Field Name Required Type Description Format

creditAccount

GLAccountData

creditAccountType

EnumOptionData

debitAccount

GLAccountData

debitAccountType

EnumOptionData

glAccountOptions

Map of [array]

glAccountTypeOptions

List of [EnumOptionData]

id

Long

int64

name

String

percentage

BigDecimal

startDate

date

date

taxComponentHistories

List of [TaxComponentHistoryData]

=== TaxComponentHistory

Field Name Required Type Description Format

createdBy

Long

int64

createdDate

Date

date-time

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

new

Boolean

percentage

BigDecimal

=== TaxComponentHistoryData

Field Name Required Type Description Format

percentage

BigDecimal

=== TaxDetailsData

Field Name Required Type Description Format

amount

BigDecimal

taxComponent

TaxComponentData

=== TaxGroup

Field Name Required Type Description Format

createdBy

Long

int64

createdDate

Date

date-time

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

name

String

new

Boolean

taxGroupMappings

Set of [TaxGroupMappings]

=== TaxGroupData

Field Name Required Type Description Format

taxAssociations

List of [TaxGroupMappingsData]

=== TaxGroupMappings

Field Name Required Type Description Format

createdBy

Long

int64

createdDate

Date

date-time

endDate

date

date

id

Long

int64

lastModifiedBy

Long

int64

lastModifiedDate

Date

date-time

new

Boolean

taxComponent

TaxComponent

taxGroup

TaxGroup

=== TaxGroupMappingsData

Field Name Required Type Description Format

taxComponent

TaxComponentData

=== TemplateMapper

Field Name Required Type Description Format

id

Long

int64

mapperkey

String

mapperorder

Integer

int32

mappervalue

String

new

Boolean

=== TransactionDetailData

Field Name Required Type Description Format

noteData

NoteData

paymentDetails

PaymentDetailData

transactionId

Long

int64

transactionType

TransactionTypeEnumData

=== TransactionProcessingStrategyData

Field Name Required Type Description Format

code

String

id

Long

int64

name

String

=== TransactionTypeEnumData

Field Name Required Type Description Format

code

String

id

Long

int64

value

String

=== UpdateBusinessStepConfigRequest

UpdateBusinessStepConfigRequest

Field Name Required Type Description Format

businessSteps

List of [BusinessStep]

=== UpdateChangesResponse

Field Name Required Type Description Format

accountNo

Long

int64

amount

BigDecimal

bankName

String

date

date

date

=== UpdatePostDatedCheckRequest

UpdatePostDatedCheckRequest

Field Name Required Type Description Format

accountNo

Long

int64

amount

BigDecimal

date

date

date

dateFormat

String

locale

String

name

String

repaymentDate

date

date

=== UpdatePostDatedCheckResponse

UpdatePostDatedCheckResponse

Field Name Required Type Description Format

changes

UpdateChangesResponse

resourceId

Integer

int32

=== UpdateStaffResponse

PutStaffResponse

Field Name Required Type Description Format

officeId

Long

int64

resourceId

Long

int64

Frequently Asked Questions

TBD

Glossary

TBD

Index

TBD

Appendix A: Fineract Application Properties

TBD

Tenant Database Properties

Table 747. Tenant Database Properties
Name Env Variable Default Value Description

fineract.tenant.host

FINERACT_DEFAULT_TENANTDB_HOSTNAME

localhost

TBD

fineract.tenant.port

FINERACT_DEFAULT_TENANTDB_PORT

3306

TBD

fineract.tenant.username

FINERACT_DEFAULT_TENANTDB_UID

root

TBD

fineract.tenant.password

FINERACT_DEFAULT_TENANTDB_PWD

mysql

TBD

fineract.tenant.parameters

FINERACT_DEFAULT_TENANTDB_CONN_PARAMS

TBD

fineract.tenant.timezone

FINERACT_DEFAULT_TENANTDB_TIMEZONE

Asia/Kolkata

TBD

fineract.tenant.identifier

FINERACT_DEFAULT_TENANTDB_IDENTIFIER

default

TBD

fineract.tenant.name

FINERACT_DEFAULT_TENANTDB_NAME

fineract_default

TBD

fineract.tenant.description

FINERACT_DEFAULT_TENANTDB_DESCRIPTION

Default Demo Tenant

TBD

Hikari Connection Pool Properties

Table 748. Hikari Connection Pool Properties
Name Env Variable Default Value Description

spring.datasource.hikari.driverClassName

FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME

org.mariadb.jdbc.Driver

TBD

spring.datasource.hikari.jdbcUrl

FINERACT_HIKARI_JDBC_URL

jdbc:mariadb://localhost:3306/fineract_tenants

TBD

spring.datasource.hikari.username

FINERACT_HIKARI_USERNAME

root

TBD

spring.datasource.hikari.password

FINERACT_HIKARI_PASSWORD

mysql

TBD

spring.datasource.hikari.minimumIdle

FINERACT_HIKARI_MINIMUM_IDLE

3

TBD

spring.datasource.hikari.maximumPoolSize

FINERACT_HIKARI_MAXIMUM_POOL_SIZE

10

TBD

spring.datasource.hikari.idleTimeout

FINERACT_HIKARI_IDLE_TIMEOUT

60000

TBD

spring.datasource.hikari.connectionTimeout

FINERACT_HIKARI_CONNECTION_TIMEOUT

20000

TBD

spring.datasource.hikari.connectionTestquery

FINERACT_HIKARI_TEST_QUERY

SELECT 1

TBD

spring.datasource.hikari.autoCommit

FINERACT_HIKARI_AUTO_COMMIT

true

TBD

spring.datasource.hikari.dataSourceProperties['cachePrepStmts']

FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS

true

TBD

spring.datasource.hikari.dataSourceProperties['prepStmtCacheSize']

FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE

250

TBD

spring.datasource.hikari.dataSourceProperties['prepStmtCacheSqlLimit']

FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT

2048

TBD

spring.datasource.hikari.dataSourceProperties['useServerPrepStmts']

FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS

true

TBD

spring.datasource.hikari.dataSourceProperties['useLocalSessionState']

FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE

true

TBD

spring.datasource.hikari.dataSourceProperties['rewriteBatchedStatements']

FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS

true

TBD

spring.datasource.hikari.dataSourceProperties['cacheResultSetMetadata']

FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA

true

TBD

spring.datasource.hikari.dataSourceProperties['cacheServerConfiguration']

FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION

true

TBD

spring.datasource.hikari.dataSourceProperties['elideSetAutoCommits']

FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS

true

TBD

spring.datasource.hikari.dataSourceProperties['maintainTimeStats']

FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS

false

TBD

spring.datasource.hikari.dataSourceProperties['logSlowQueries']

FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES

true

TBD

spring.datasource.hikari.dataSourceProperties['dumpQueriesOnException']

FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION

true

TBD

SSL Properties

Table 749. SSL Properties
Name Env Variable Default Value Description

server.ssl.enabled

FINERACT_SERVER_SSL_ENABLED

true

TBD

server.ssl.protocol

FINERACT_SERVER_SSL_PROTOCOL

TLS

TBD

server.ssl.ciphers

FINERACT_SERVER_SSL_CIPHERS

TLS_RSA_WITH_AES_128_CBC_SHA256

TBD

server.ssl.enabled-protocols

FINERACT_SERVER_SSL_PROTOCOLS

TLSv1.2

TBD

server.ssl.key-store

FINERACT_SERVER_SSL_KEY_STORE

classpath:keystore.jks

TBD

server.ssl.key-store-password

FINERACT_SERVER_SSL_KEY_STORE_PASSWORD

openmf

TBD

Authentication Properties

Table 750. Authentication Properties
Name Env Variable Default Value Description

fineract.security.basicauth.enabled

FINERACT_SECURITY_BASICAUTH_ENABLED

true

TBD

fineract.security.oauth.enabled

FINERACT_SECURITY_OAUTH_ENABLED

false

TBD

fineract.security.2fa.enabled

FINERACT_SECURITY_2FA_ENABLED

false

TBD

Tomcat Properties

Table 751. Tomcat Properties
Name Env Variable Default Value Description

server.tomcat.accept-count

FINERACT_SERVER_TOMCAT_ACCEPT_COUNT

100

TBD

server.tomcat.accesslog.enabled

FINERACT_SERVER_TOMCAT_ACCESSLOG_ENABLED

false

TBD

server.tomcat.max-connections

FINERACT_SERVER_TOMCAT_MAX_CONNECTIONS

8192

TBD

server.tomcat.max-http-form-post-size

FINERACT_SERVER_TOMCAT_MAX_HTTP_FORM_POST_SIZE

2MB

TBD

server.tomcat.max-keep-alive-requests

FINERACT_SERVER_TOMCAT_MAX_KEEP_ALIVE_REQUESTS

100

TBD

server.tomcat.threads.max

FINERACT_SERVER_TOMCAT_THREADS_MAX

200

TBD

server.tomcat.threads.min-spare

FINERACT_SERVER_TOMCAT_THREADS_MIN_SPARE

10

TBD

Appendix B: Third Party Software

TBD