NAV Navigation

Welcome

This documentation was last updated on Tue Aug 22 08:16:32 UTC 2023 and covers Mambu Version v9.147.2

Welcome to the Mambu API v1 Reference documentation.

About Mambu API v1

Scroll down for operations, schemas, example requests and responses.

Mambu API v1 is a fully compliant REST API and in this API Reference we provide you with all the necessary information to work with it.

Base URLs

The base URL for API requests is:

To make API requests to your tenant's sandbox, use the following base URL:

For more information, see the Sandbox section.

HTTP Verbs

Standard HTTP verbs are used to indicate the API request method.

VerbFunction
GETTo retrieve a resource or a collection of resources
POSTTo create a resource
PATCHTo modify an existing resource
PUTTo replace an existing resource
DELETETo delete a resource

Authentication

Mambu supports two methods for authenticating API requests:

Basic Authentication

Example using curl

curl --location --request GET 'https://TENANT_NAME.mambu.com/api/users' \
--header 'Authorization: Basic U29tZVVzZXI6T3BlblNlc2FtZQ=='

For basic authorization, provide your username and password directly via the Authorization header in the format Basic {base64-encoded-string}, where base64-encoded-string is the base-64-encoded value of your username and password separated by a colon ':'.

For example, a user with the username SomeUser and the password OpenSesame would take the value SomeUser:OpenSesame and base-64 encode it, yielding U29tZVVzZXI6T3BlblNlc2FtZQ==. They would then provide an Authorization header for their request with the value Basic U29tZVVzZXI6T3BlblNlc2FtZQ==.

See the example GET requests to the /users endpoint using curl.

Note that the login credentials must be for an account with API access permissions. For more information, see Creating a User - Access Rights in our User Guide.

API Keys

API keys are tokens that you provide in an apiKey header to authenticate requests. They are generated by API consumers, which are an abstraction similar to an OAuth client.

API consumers are currently an Early Access Feature. If you would like to request access to this feature, please get in touch with your Mambu Customer Success Manager to discuss your requirements.

For more information on API consumers and keys, see API Consumers in our User Guide.

Payloads

Mambu API v1 has endpoints that usually accept and return only application/json. When making a POST, PUT, or PATCH request that sends data through a JSON body, you must set the Content-Type header to application/json. When making a POST request that sends data through query parameters, the Content-Type header must not be set.

Requests

API requests (also known as API calls) to the Mambu API identify who the requester is and exactly what information they wish to retrieve or which action they wish to perform.

To put together an API Request you will need to combine:

Responses

Error Response

{
  "errorCode":"4",
  "errorSource":"Property scheduleSettings.repaymentInstallments may not be null",
  "errorReason":"INVALID_PARAMETERS"
}

Single Resource - JSON object

{
  "field": "value"
}

Collection of Resources - JSON array

[
  {
    "field": "value"
  },
  {
    "field": "value"
  }
]

The response to a request will contain either the JSON-formatted payload or an error response.

Error response

An error response will consist of:

FieldTypeAvailabilityContent
errorCodenumberAlways presentA unique error code. For more information, see API Responses and Error Codes.
errorSourcestringSometimes presentA human-readable message capturing unsatisfied constraints.
errorReasonstringAlways presentA human-readable message stating the general category of the failure.

Sandbox

The sandbox tenant (also known as sandbox environment) is independent from the production tenant, and any changes you make in the sandbox will not affect the data in your production tenant. For more information, see Sandbox in our User Guide.

To make requests to your tenant's sandbox, use the following base URL:

The sandbox is generally one version ahead of the production tenant. As such, it may include changes that are currently in, or may soon be in, the production environment. For more information, see Mambu Release Cycle.

Sandbox management

To manage your sandbox go to the Customer Service Portal. For more information and instructions, see Customer Service Portal - Sandbox Management.

Pagination

To customize the response, the offset and limit parameters can be adjusted from their default values.

limit

The default limit for responses is 50. A value of up to 1,000 can be specified with limit.

offset

offset determines how many records will be skipped before being included in the returned results. The default offset value is 0.

Detail Level

Some Mambu API v1 endpoints support two levels of detail for responses, basic details and full details. To retrieve a response in full details, you must set the fullDetails query parameter to true.

Basic details

By default, Mambu API v1 will return basic details, this includes all first level elements of an object.

Full details

Some endpoints can return full details, this includes everything from basic details as well as all custom field values, any address or contact information, and any other related objects.

Audit Trail and the User-Agent Header

Error when User Agent header is not provided

{
  "errors": [
    {
      "errorCode": 4,
      "errorSource": "The user agent cannot be null when the Audit Trail feature is enabled",
      "errorReason": "INVALID_PARAMETERS"
    }
  ]
}

Audit trail tracks all activities performed in the Mambu Core Banking system via the UI or API v1 and v2. For more information, see Audit Trail in our User Guide.

When the audit trail feature is enabled, you must provide a User-Agent header for all requests to any endpoint, or the request will fail with the error message The user agent cannot be null when the Audit Trail feature is enabled.

Note that if you are using a REST client like Postman or Curl, this header is probably provided automatically. However, if you generate a request to the API, you must provide it yourself.

The User-Agent header provides information regarding the browser and operating system (such as the browser version), and information about the library or tool issuing the request (such as the client Java version). It is generally used to assist with debugging problems.

Posting Data

API requests that post data can either use URL-encoded query parameters or a JSON body to enter data. The Content-Type header must be set to application/json for the JSON request.

The examples to the right, show the two methods for posting data. Note that for some requests, much more information can be posted using the JSON input than is available with query parameters.

Using query parameters

curl -d "type=APPROVAL" https://user:pword@test.mambu.com/api/loans/4028329c3ad6c515013ad6d0f6e40006/transactions

Using JSON:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "type": "APPROVAL"} https://user:pword@test.mambu.com/api/loans/4028329c3ad6c515013ad6d0f6e40006/transactions`

Example

The example to the right makes a request using the username user, the password pword to the tenant demo to retrieve all repayments for loan account abc

Request with authorization made ...

https://user:pword@demo.mambu.com/api/loans/abc/repayments

And returns a response such as:

[
    {
        "encodedKey": "402832b4380a2d8801380a9cac860010",
        "parentAccountKey": "402832b4380a2d8801380a9cac41000f",
        "dueDate": "2012-07-28T00:00:00+0200",
        "principalDue": "190",
        "principalPaid": "0",
        "interestDue": "25.45",
        "interestPaid": "0",
        "state": "PENDING"
    },
    {
        "encodedKey": "402832b4380a2d8801380a9cac870011",
        "parentAccountKey": "402832b4380a2d8801380a9cac41000f",
        "dueDate": "2012-08-28T00:00:00+0200",
        "principalDue": "190",
        "principalPaid": "0",
        "interestDue": "26.29",
        "interestPaid": "0",
        "state": "PENDING"
    }
]

Searching and Filtering

Many entities allow you multiple ways to filter your request, either by providing fields and values as query parameters or by using the entity's /search facility. This option is available for: Clients, Groups, Loan Accounts & Loan Transactions, Savings Accounts & Savings Transactions, Notifications, General Ledger Journal Entries and Lines of Credit.

Additionally, the object search API allows you to execute the same search query across multiple types of entity, for example, both loan and savings accounts, or both users and clients, although the number of fields which will be searched is limited.

In each case you will use a POST request and provide your search parameters and sorting preference in the request body, while other constraints, such as the number of records to return, an offset to page through large result sets, or whether you would like full details or only basic data, can be provided as query parameters.

Filter Constraints

Example query with an array of filters on a standard field and a custom field definition and its value, and a sorting order

{
   "filterConstraints":[
      {
         "filterSelection":"CREATION_DATE",
         "filterElement":"BETWEEN",
         "value":"2015-01-01",
         "secondValue":"2015-06-20"
      },
      {
         "filterSelection":"MY_CUSTOM_FIELD",
         "filterElement":"EQUALS",
         "dataItemType":"CLIENT",
         "dataFieldType":"CUSTOM",
         "value":"BIG spenders"
      }
   ],
   "sortDetails":{
        "sortingColumn":"lastModifiedDate",
        "sortingOrder":"DESCENDING"
    }
}

filterContraints array

ParameterValue
filterSelectionThe field on which the constraint will be applied. For custom fields, the custom field definition encoded key must be provided.
filterElementThe constraint operator. Available filter elements can be found below.
valueThe constraint value. Required for filter elements with one or two values.
secondValueThe constraint second value. Required for filter elements with two values.
dataItemTypeThe entity where the field on which to apply the constraint is located. If the field is located in the same entity with the entity being searched, this field is optional. Possible values:
  • CLIENT - can be used for client/loans/savings/transactions endpoints
  • GROUP - can be used for group/loans/savings/transactions endpoints
  • LOANS - can be used for loans/transactions endpoints
  • TRANCHE - can be used for loans endpoint
  • DISBURSEMENT_DETAILS - can be used for loans/transactions endpoints
  • SAVINGS - can be used savings/transactions endpoints
  • TRANSACTION - cab be used for transactions/gljournalentries endpoint
  • JOURNAL_ENTRY - can be used for gljournalentries endpoint
  • NOTIFICATION_MESSAGE - can be used only for notification messages
dataFieldTypeNATIVE(default)/CUSTOM for custom field definition searches

sortDetails object

ParameterValue
sortingColumnThe name of the column on which the order is going to take place
sortingOrderThe order in which your results should be presented, either ASCENDING or DESCENDING

Filter Elements

The table below contains a list of filters available for your search and which types of data you can use them with.

Filter ElementNumber Of affected valuesAvailable for
EQUALSONE_VALUEBIG_DECIMAL,BOOLEAN,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY
MORE_THANONE_VALUEBIG_DECIMAL,NUMBER,MONEY
LESS_THANONE_VALUEBIG_DECIMAL,NUMBER,MONEY
BETWEENTWO_VALUESBIG_DECIMAL,NUMBER,MONEY,DATE,DATE_UTC
ONONE_VALUEDATE,DATE_UTC
AFTERONE_VALUEDATE,DATE_UTC
BEFOREONE_VALUEDATE,DATE_UTC
STARTS_WITHONE_VALUESTRING
INLISTENUM - When using the filter in Mambu default selection fields (for example, ACCOUNT_STATE) the names of the options (e.g. ACTIVE or APPROVED) may be used. KEY - When using the filter in custom field definitions, the encoded key of the custom field definition must be used and the names of the available options cannot be used.
TODAYNO_VALUEDATE,DATE_UTC
THIS_WEEKNO_VALUEDATE,DATE_UTC
THIS_MONTHNO_VALUEDATE,DATE_UTC
THIS_YEARNO_VALUEDATE,DATE_UTC
LAST_DAYSONE_VALUENUMBER
EMPTYNO_VALUEBIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_UTC
NOT_EMPTYNO_VALUEBIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_UTC

Data Types and Examples

Clients

Get all loan transactions for a specific client

POST /api/clients/search
{
   "filterConstraints":[
      {
         "filterSelection":"ID",
         "filterElement":"EQUALS",
         "dataItemType":"CLIENT",
         "value":"197495342"
      }
   ],
   "sortDetails":{
      "sortingColumn":"ID",
      "sortingOrder":"DESCENDING"
   }
}
Filter Selection ParameterData Type
CREDIT_OFFICER_KEYKEY
CLIENT_ROLE_KEYKEY
BRANCH_KEYKEY
CENTRE_KEYKEY
GROUP_KEYKEY
ENCODED_KEYKEY
FULL_NAMESTRING
FIRST_NAMESTRING
MIDDLE_NAMESTRING
LAST_NAMESTRING
CREATION_DATEDATE_UTC
LAST_MODIFIED_DATEDATE_UTC
IDSTRING
DEPOSITS_BALANCEMONEY
LOANS_BALANCEMONEY
PENDING_LOAN_AMOUNTMONEY
APPROVED_LOAN_AMOUNTMONEY
TOTAL_BALANCEMONEY
TOTAL_DUEMONEY
HOME_PHONE_NUMBERSTRING
MOBILE_PHONE_NUMBERSTRING
EMAIL_ADDRESSSTRING
CLIENT_ADDRESSSTRING
BIRTHDATEDATE
GENDERENUM
LOAN_CYCLENUMBER
GROUP_LOAN_CYCLENUMBER
CLIENT_STATEENUM
PORTAL_STATEENUM
PREFERRED_LANGUAGEENUM
GROUP_IDSTRING

Groups

Get all groups created in specific date range

POST /api/groups/search
{
   "filterConstraints":[
      {
         "filterSelection":"CREATION_DATE",
         "filterElement":"BETWEEN",
         "value":"2015-01-01",
         "secondValue":"2015-06-20"
      }
   ]
}

Get all groups that have the custom field definition with the encoded key 8afac14a34d69cd00134d70c0abe00d3 and custom field value test

POST /api/groups/search
{
   "filterConstraints":[
      {
         "filterSelection":"8afac14a34d69cd00134d70c0abe00d3",
         "filterElement":"EQUALS",
         "value":"test",
         "dataFieldType":"CUSTOM"
      }
   ]
}
Filter Selection ParameterData Type
CLIENT_ROLE_KEYKEY
BRANCH_KEYKEY
CENTRE_KEYKEY
CREDIT_OFFICER_KEYKEY
ENCODED_KEYKEY
GROUP_NAMESTRING
CREATION_DATEDATE_UTC
LAST_MODIFIED_DATEDATE_UTC
IDSTRING
PREFERRED_LANGUAGEENUM
DEPOSITS_BALANCEMONEY
LOANS_BALANCEMONEY
TOTAL_BALANCEMONEY
NUMBER_OF_MEMBERSNUMBER
LOAN_CYCLENUMBER

Loan Accounts

Get all loans that are in two different products

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"PRODUCT_KEY",
         "filterElement":"IN",
         "values":[
            "ff8080814eaa832d014eaa88e24d034c",
            "ad8080814eaa832d014eaa88e252034e"
         ]
      }
   ]
}

Get all loan accounts created within a date range

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"CREATION_DATE",
         "filterElement":"BETWEEN",
         "value":"2015-06-15",
         "secondValue":"2015-06-20"
      }
   ]
}

Get all loan accounts that have the custom field value test. This custom field definition is of type string and it belongs to a loan entity

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"8a808085507f02b901507f02f59700ea",
         "filterElement":"EQUALS",
         "value":"test"
      },
      {
         "filterSelection":"CREATION_DATE",
         "dataItemType":"CLIENT",
         "filterElement":"ON",
         "value":"2015-10-19"
      }
   ]
}
Filter Selection ParameterData Type
ACCOUNT_HOLDER_KEYKEY
PRODUCT_KEYKEY
LOAN_RISK_LEVEL_KEYKEY
ENCODED_KEYKEY
LOAN_NAMESTRING
ACCOUNT_IDSTRING
ACCOUNT_HOLDER_IDSTRING
RECIPIENTSTRING
CREATION_DATEDATE_UTC
APPROVAL_DATEDATE
LAST_MODIFIED_DATEDATE_UTC
LAST_SET_TO_ARREARS_DATEDATE
LAST_LOCKED_DATEDATE
CLOSED_DATEDATE
DAYS_IN_ARREARSNUMBER
DAYS_LATENUMBER
ACCOUNT_SUB_STATEENUM
ACCOUNT_STATEENUM
LOAN_AMOUNTMONEY
DISBURSED_TRANCHES_AMOUNTMONEY
NUM_INSTALLMENTSNUMBER
PRINCIPAL_DUEMONEY
PRINCIPAL_PAIDMONEY
PRINCIPAL_BALANCEMONEY
INTEREST_DUEMONEY
INTEREST_PAIDMONEY
INTEREST_BALANCEMONEY
INTEREST_ACCRUEDMONEY
FEES_DUEMONEY
FEES_BALANCEMONEY
FEES_PAIDMONEY
PENALTY_CALCULATION_METHODENUM
PENALTY_DUEMONEY
PENALTY_PAIDMONEY
PENALTY_BALANCEMONEY
PENALTY_ACCRUEDMONEY
PENALTY_RATEBIG_DECIMAL
ARREARS_TOLERANCE_PERIODNUMBER
INTEREST_RATEBIG_DECIMAL
INTEREST_SPREADBIG_DECIMAL
TOTAL_PAIDMONEY
TOTAL_BALANCEMONEY
TOTAL_DUEMONEY
FIRST_REPAYMENT_DATEDATE
LAST_PAYMENT_DATEDATE
LAST_PAYMENT_AMOUNTMONEY
EXPECTED_MATURITY_DATEDATE
RESCHEDULED_ACCOUNT_IDSTRING
REFINANCED_ACCOUNT_IDSTRING
ORIGINAL_ACCOUNT_IDSTRING
TAX_RATEBIG_DECIMAL
TAX_PAIDMONEY
TAX_DUEMONEY
HAS_SETTLEMENT_ACCOUNTBOOLEAN
INTEREST_COMMISSIONBIG_DECIMAL
FUNDS_AMOUNTMONEY
FUNDING_PERCENTAGEBIG_DECIMAL
NUMBER_OF_FUNDSNUMBER
FUNDS_ENABLEDBOOLEAN
AVAILABLE_AMOUNTMONEY
WAS_RESCHEDULEDBOOLEAN
WAS_REFINANCEDBOOLEAN
PREPAYMENTS_RECALCULATIONENUM
APPLY_INTEREST_ON_PREPAYMENT_METHODENUM
LATE_PAYMENT_RECALCULATION_METHODENUM
REDRAW_BALANCEMONEY
EXPECTED_PRINCIPAL_REDRAWMONEY

Tranches

Get all loan accounts where loan disbursement tranches have been defined but not yet disbursed

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"DISBURSEMENT_TRANSACTION_KEY",
         "dataItemType":"TRANCHE",
         "filterElement":"EMPTY"
      }
   ]
}

Get all loan accounts with a loan disbursement tranche where the amount is 100

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"AMOUNT",
         "dataItemType":"TRANCHE",
         "filterElement":"EQUALS",
         "value":"100"
      }
   ]
}
Filter Selection ParameterData Type
ENCODED_KEYKEY
PARENT_ACCOUNT_KEYKEY
DISBURSEMENT_TRANSACTION_KEYKEY
AMOUNTMONEY
EXPECTED_DISRBUSEMENT_DATEDATE

Disbursement Details

Get all loans disbursed during March 2021

POST /api/loans/search
{
   "filterConstraints":[
      {
         "filterSelection":"DISBURSEMENT_DATE",
         "dataItemType":"DISBURSEMENT_DETAILS",
         "filterElement":"BETWEEN",
         "value":"2021-03-01",
         "secondValue":"2021-03-30"
      }
   ]
}
Filter Selection ParameterData Type
EXPECTED_DISBURSEMENT_DATEDATE
DISBURSEMENT_DATEDATE

Savings Accounts

Get all APPROVED and PENDING_APPROVAL savings accounts

POST /api/savings/search
{
   "filterConstraints":[
      {
         "filterSelection":"ACCOUNT_STATE",
         "filterElement":"IN",
         "values":[
            "PENDING_APPROVAL",
            "APPROVED"
         ]
      }
   ]
}
Filter Selection ParameterData Type
ACCOUNT_HOLDER_KEYKEY
PRODUCT_KEYKEY
CURRENCY_CODEKEY
OVERDRAFT_RISK_LEVEL_KEYKEY
ENCODED_KEYKEY
ACCOUNT_IDSTRING
ACCOUNT_HOLDER_IDSTRING
RECIPIENTSTRING
CREATION_DATEDATE_UTC
APPROVAL_DATEDATE
ACTIVATION_DATEDATE
LAST_MODIFIED_DATEDATE_UTC
MATURITY_DATEDATE
CLOSED_DATEDATE
ACCOUNT_STATEENUM
ACCOUNT_NAMESTRING
RECOMENDED_DEPOSIT_AMOUNTMONEY
DEPOSIT_AMOUNTMONEY
MAX_WITHDRAWAL_AMOUNTMONEY
TARGET_AMOUNTMONEY
BALANCEMONEY
MAX_BALANCEMONEY
ACCRUED_INTERESTMONEY
INTEREST_RATEBIG_DECIMAL
OVERDRAFT_INTEREST_ACCRUEDMONEY
OVERDRAFT_AMOUNTMONEY
OVERDRAFT_EXPIRY_DATEDATE
LAST_SET_TO_ARREARS_DATEDATE
OVERDRAFT_INTEREST_RATEBIG_DECIMAL
OVERDRAFT_INTEREST_SPREADBIG_DECIMAL
OVERDRAFT_LIMITMONEY
OVERDRAFT_AVAILABLE_LIMITMONEY
OVERDRAFT_IN_ARREARSMONEY
OVERDRAFT_DAYS_IN_ARREARSNUMBER
INTEREST_DUEMONEY
FEES_DUEMONEY
LENGTH_IN_DAYSNUMBER
ACCOUNT_TYPEENUM
CURRENT_INTEREST_TIER_INDEXNUMBER
CURRENT_INTEREST_TIER_STARTING_BALANCEMONEY
CURRENT_INTEREST_TIER_ENDING_BALANCEMONEY
CURRENT_INTEREST_TIER_RATEBIG_DECIMAL
CURRENT_OVERDRAFT_INTEREST_TIER_INDEXNUMBER
CURRENT_OVERDRAFT_INTEREST_TIER_STARTING_BALANCEMONEY
CURRENT_OVERDRAFT_INTEREST_TIER_ENDING_BALANCEMONEY
CURRENT_OVERDRAFT_INTEREST_TIER_RATEBIG_DECIMAL
TAX_APPLIEDMONEY
TAX_RATEBIG_DECIMAL

Transactions

Get the repayments transactions for loans that are more than 10 days in arrears

POST /api/loans/transactions/search
{
   "filterConstraints":[
      {
         "filterSelection":"DAYS_IN_ARREARS",
         "filterElement":"MORE_THAN",
         "dataItemType":"LOANS",
         "value":"10"
      },
      {
         "filterSelection":"EVENT",
         "filterElement":"EQUALS",
         "dataItemType":"LOAN_TRANSACTION",
         "value":"REPAYMENT"
      }
   ]
}
Filter Selection ParameterData Type
PARENT_ACCOUNT_KEYKEY
PRODUCT_TYPE_KEYKEY
USER_KEYKEY
BRANCH_KEYKEY
CENTRE_KEYKEY
PARENT_ACCOUNT_HOLDER_KEYKEY
CURRENCY_CODEKEY
PRODUCT_IDSTRING
WAS_REVERSEDBOOLEAN
TYPE_IS_REVERSALBOOLEAN
INTERNAL_TRANSFERBOOLEAN
TRANSACTION_CHANNEL_KEYKEY
ENCODED_KEYKEY
TRANSACTION_IDLONG
TILL_IDSTRING
ENTRY_DATEDATE
TRANSACTION_DATEDATE_UTC
EVENTENUM
AMOUNTMONEY
ADVANCE_POSITIONMONEY
ARREARS_POSITIONMONEY
EXPECTED_PRINCIPAL_REDRAWMONEY
ORIGINAL_AMOUNTMONEY
ORIGINAL_AMOUNT_CURRENCY_CODESTRING
BALANCE (Deprecated. Use TOTAL_BALANCE)MONEY
TOTAL_BALANCEMONEY
PRINCIPAL_BALANCEMONEY
REDRAW_BALANCEMONEY
PRINCIPAL_PAIDMONEY
INTEREST_PAIDMONEY
DEFERRED_INTERESTMONEY
FEES_PAIDMONEY
FEE_KEYKEY
FEE_TYPEENUM
PENALTY_PAIDMONEY
BRANCHSTRING
CENTRESTRING
PARENT_ACCOUNTSTRING
PARENT_ACCOUNT_IDSTRING
PARENT_ACCOUNT_HOLDERSTRING
PARENT_ACCOUNT_HOLDER_IDSTRING
TAX_RATEBIG_DECIMAL
TAX_AMOUNTMONEY
INTEREST_RATEBIG_DECIMAL
PRINCIPAL_PAYMENT_FLAT_AMOUNTMONEY
PRINCIPAL_PAYMENT_PERCENTAGEBIG_DECIMAL
TOTAL_DUE_FLAT_AMOUNTMONEY
TOTAL_BALANCE_PERCENTAGEBIG_DECIMAL
OVERDRAFT_INTEREST_RATEBIG_DECIMAL
OVERDRAFT_LIMITMONEY

Notifications

Get all notification messages for LOAN_CREATED notifications

POST /api/notifications/messages/search
{
   "filterConstraints":[
      {
         "filterSelection":"EVENT",
         "filterElement":"EQUALS",
         "value":"LOAN_CREATED"
      }
   ]
}
Filter Selection ParameterData Type
SENDER_KEYKEY
RECIPIENT_CLIENT_KEYKEY
RECIPIENT_GROUP_KEYKEY
RECIPIENT_USER_KEYKEY
ENCODED_KEYKEY
CREATION_DATEDATE_UTC
SENT_DATEDATE_UTC
STATEENUM
FAILURE_REASONENUM
DESTINATIONSTRING
TYPEENUM
EVENTENUM

General Ledger Journal Entries

Get the journal entry with entry id 1, posted by the user with the encoded key 8a8080a254a9659b0154a965a69a0004

POST /api/gljournalentries/search
{
     "filterConstraints":[
        {
           "filterSelection":"USER_KEY",
           "filterElement":"EQUALS",
           "value":"8a8080a254a9659b0154a965a69a0004"
        },
        {
           "filterSelection":"ENTRY_ID",
           "filterElement":"EQUALS",
           "value":"1"
        }
    ]
}
Filter Selection ParameterData Type
PRODUCT_TYPEENUM
GL_ACCOUNT_KEYKEY
USER_KEYKEY
ENCODED_KEYSTRING
ENTRY_IDNUMBER
DATEDATE
CREATION_DATEDATE
TRANSACTION_IDSTRING
GL_ACCOUNT_IDSTRING
GL_ACCOUNT_TYPEENUM
SOURCEENUM
DEBITMONEY
CREDITMONEY

Lines of Credit

Get all lines of credit identified by state CLOSED

POST /api/linesofcredit/search
{
   "filterConstraints":[
      {
         "filterSelection":"STATE",
         "filterElement":"IN",
         "values":[
            "CLOSED"
         ]
      }
   ]
}

Get all lines of credit identified by exposure limit types APPROVED_AMOUNT and OUTSTANDING_AMOUNT

POST /api/linesofcredit/search
{
   "filterConstraints":[
      {
         "filterSelection":"EXPOSURE_LIMIT_TYPE",
         "filterElement":"IN",
         "values":[
            "APPROVED_AMOUNT","OUTSTANDING_AMOUNT"
         ]
      }
   ]
}
Filter Selection ParameterData Type
IDSTRING
START_DATEDATE
EXPIRY_DATEDATE
APPROVAL_DATEDATE
STATEENUM
SUBSTATEENUM
EXPOSURE_LIMIT_TYPEENUM

Search through all object types for the object that might contain john

GET /api/search?query=john&type=[CLIENT,USER]&limit=10

{
  "CLIENT": [
    {
      "selectionType": "CLIENT",
      "displayString": "John Demo",
      "resultID": "517706810",
      "resultKey": "8a42711a4428c1f101442a1bbcbc0009"
    },
    {
      "selectionType": "CLIENT",
      "displayString": "John Master",
      "resultID": "603117506",
      "resultKey": "8a42711a4428c1f101442a1ee710001b"
    }
  ],
  "CREDIT_OFFICER": [
    {
      "selectionType": "CREDIT_OFFICER",
      "displayString": "johnty billingsworth",
      "resultID": "johntybilling",
      "resultKey": "8a19dab474909bc8017490f2fb9006a8"
    }
  ],
  "USER": [
    {
      "selectionType": "USER",
      "displayString": "John Doe",
      "resultID": "61",
      "resultKey": "8a54e5b44449337f01444b03efa3000e"
    }
  ],
  "SAVINGS_ACCOUNT": [],
  "CUSTOM_FIELD_SELECTION": [],
  "CENTRE": [],
  "FILTER_CUSTOM_FIELD_SELECTION": [],
  "BRANCH": [],
  "LOAN_ACCOUNT": [],
  "GROUP": [],
  "LINE_OF_CREDIT": []
}
Object typeKeyword fields
CLIENTfirst name, middle name, last name, id
GROUPgroup name, id
LOAN_ACCOUNTaccount id
SAVINGS_ACCOUNTaccount id
USERfirst name, last name, username
BRANCHbranch name, branch id
CENTREcentre name, centre id

Custom View Filtering

Custom views are used to define and display specific groups or subsets of clients, users, loan accounts, and other entities. Examples of custom views include:

Custom views may be used to configure tabs and reports in the Mambu UI. Once they are defined, they may also be used to filter requests with the Mambu v1 API. Several GET requests allow filtering the returned results with the criteria defined by an existing custom view. This can be a quick and convenient way to easily filter requests.

For more information on using custom views to filter requests, see Custom Views and API v1 in our User Guide. For general infromation, see Custom Views.

Timezone Offsets

Here is how we handle timezone offsets in API v1 calls:

Example

Each Mambu tenant has one timezone. Let’s take for example tenants in the East European time zone (UTC+02:00).

Date and time of requestWhat is saved in the database
2021-03-09T13:37:502021-03-09 13:37:50
2021-03-09T13:37:50+02:002021-03-09 11:37:50

Activities

Allows you to retrieve the activity feed items.

Get all Activities

GET /activities

Get activities

Allows retrieving a list of activities entries within a date range that can be fitered by entity key.

Parameters

NameTypeDescriptionIn
from (required)stringFrom (start) date to retreive activities from.query
to (required)stringTo (end) date to retreive the activities from.query
clientIDstringThe client key to filter activities on.query
groupIDstringThe group key to filter activities on.query
centreIDstringThe centre key to filter activities on.query
branchIDstringThe branch key to filter activities on.query
loanProductIDstringThe loan product key to filter activities on.query
savingsProductIDstringThe savings product key to filter activities on.query
loanAccountIDstringThe loan account key to filter activities on.query
savingsAccountIDstringThe savings account key to filter activities on.query
userIDstringThe user key to filter activities on.query
offsetintegerDetermines how many records will be skipped before being included in the returned results. The default offset value is 0.query
limitintegerThe maximum number of records to return.query

Example Responses

200 : OK
An array of activities

[
  {
    "activity": {
      "encodedKey": "8a54e5b444441eba014445e18c640021",
      "transactionID": 1656,
      "timestamp": "2014-02-18T16:43:33+0000",
      "type": "TASK_DELETED",
      "branchKey": "8a33ae49441c4fe101441c713b36000e",
      "userKey": "8a33ae49441c4fe101441c5fe42f0005",
      "assignedUserKey": "8a33ae49441c4fe101441c5fe42f0005",
      "notes": "Disburse your first loan",
      "fieldChanges": []
    },
    "branchName": "Matola City",
    "userName": "Max Power"
  },
  {
    "activity": {
      "encodedKey": "8a54e5b444441eba0144477140920028",
      "transactionID": 1657,
      "timestamp": "2014-02-19T00:00:08+0000",
      "type": "LOAN_ACCOUNT_SET_TO_IN_ARREARS",
      "clientKey": "8a33ae49441c4fe101441c7149e00102",
      "loanProductKey": "8a33ae494420ac160144210c0be50152",
      "loanAccountKey": "8a42711a4430587d0144307a352d0001",
      "notes": "",
      "fieldChanges": []
    },
    "clientName": "Kwemto Akobundu",
    "loanProductName": "dynamic dbei horizontal",
    "loanAccountName": "dynamic dbei horizontal"
  },
  {
    "activity": {
      "encodedKey": "8a54e5b44449337f014449337f130000",
      "transactionID": 1661,
      "timestamp": "2014-02-19T08:11:54+0000",
      "type": "USER_LOGGED_IN",
      "branchKey": "8a33ae49441c4fe101441c713b36000e",
      "userKey": "8a33ae49441c4fe101441c5fe42f0005",
      "assignedUserKey": "8a33ae49441c4fe101441c5fe42f0005",
      "notes": "",
      "fieldChanges": []
    },
    "branchName": "Matola City",
    "userName": "Max Power"
  },
  {
    "activity": {
      "encodedKey": "8a54e5b44449337f0144498ce4430004",
      "transactionID": 1665,
      "timestamp": "2014-02-19T09:49:34+0000",
      "type": "USER_LOGGED_IN",
      "branchKey": "8a33ae49441c4fe101441c713b36000e",
      "userKey": "8a33ae49441c4fe101441c5fe42f0005",
      "assignedUserKey": "8a33ae49441c4fe101441c5fe42f0005",
      "notes": "",
      "fieldChanges": []
    },
    "branchName": "Matola City",
    "userName": "Max Power"
  },
  {
    "activity": {
      "encodedKey": "8a54e5b44449337f014449a978650005",
      "transactionID": 1666,
      "timestamp": "2014-02-19T10:20:47+0000",
      "type": "CLIENT_EDITED",
      "clientKey": "8a33ae49441c4fe101441c71497200e3",
      "userKey": "8a33ae49441c4fe101441c5fe42f0005",
      "notes": "",
      "fieldChanges": [
        {
          "id": 331,
          "fieldChangeName": "NAME",
          "originalValue": "Adaoha Samuel",
          "newValue": "Adaoha z Samuel"
        }
      ]
    },
    "clientName": "Adaoha z Samuel",
    "userName": "Max Power"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[activity][an activity is an action that has taken place, either initiated by a user or the mambu system]none
» activityactivityan activity is an action that has taken place, either initiated by a user or the mambu systemnone
»» activityobjectan object containing details about the activitynone
»»» activityChanges[any]nonenone
»»» assignedCentreKeystringthe encoded key of the centre an account associated with this activity is assigned tonone
»»» assignedUserKeystringthe encoded key of the user assigned to a task or account associated with this activitynone
»»» branchKeystringthe encoded key fo the branch associated with this activitynone
»»» centreKeystringthe encoded key of the centre associated with this activitynone
»»» clientKeystringthe key for the client associated with this activitynone
»»» encodedKey (required)stringa unique key for this activitynone
»»» fieldChanges[object]an array of field changes detailing any fields which were updated or created by this activitynone
»»»» fieldChangeNamestringThe name of the field which changed, note that if the field is a custom field definition this field will indicate CUSTOM_FIELD_VALUE, in this case the name of the custom field definition will be given on the fieldDetailName key.none
»»»» fieldDetailKeystringthe encoded key of the custom field definition which changednone
»»»» fieldDetailNamestringthe name of the custom field definition that changednone
»»»» idintegeran ID for this changenone
»»»» newValuestringthe new value of the fieldnone
»»»» originalValuestringthe previous value of the fieldnone
»»» glAccountKeystringthe encoded key of the general ledger account associated with this activitynone
»»» glAccountsClosureKeystringthe encoded key of the accounting closure associated with this activitynone
»»» groupKeystringthe encoded key of the group associated with this activitynone
»»» lineOfCreditKeystringthe encoded key of the line of credit associated with this activitynone
»»» loanAccountKeystringthe encoded key of the loan account associated with this activitynone
»»» loanProductKeystringthe encoded key of the loan product associated with this activitynone
»»» notesstringsome notes about the activitynone
»»» savingsAccountKeystringthe encoded key of the savings account assoicated with this activitynone
»»» savingsProductKeystringthe encoded key of the savings product associated with this activitynone
»»» taskKeystringthe encoded key of the task associated with this activitynone
»»» timestamp (required)string(timestamp)the time at which the activity took placenone
»»» transactionIDintegeran ID for this activitynone
»»» type (required)activityTypeThe types of activity which are recorded by the systemnone
»»» userKeystringthe encoded key of the Mambu user associated with this activitynone
»» branchNamestringthe name of the branch the activity concernsnone
»» centreNamestringthe name of the centre the activity concernsnone
»» clientNamestringthe name of the client the activity concernsnone
»» groupNamestringthe name of the group the activity concernsnone
»» loanAccountNamestringthe name of the loan account the activity concernsnone
»» loanProductNamestringthe name of the loan product the activity concernsnone
»» savingsAccountNamestringthe name of the savings account the activity concernsnone
»» savingsProductNamestringthe name of the savings product the activity concernsnone
»» taskNamestringthe name of the task the activity concernsnone
»» userNamestringthe name of the user the activity concernsnone

Enumerated Values

PropertyValue
typeBRANCH_CREATED
typeBRANCH_COMMENT_ADDED
typeBRANCH_COMMENT_EDITED
typeBRANCH_COMMENT_DELETED
typeBRANCH_EDITED
typeBRANCH_DELETED
typeCENTRE_CREATED
typeCENTRE_COMMENT_ADDED
typeCENTRE_COMMENT_EDITED
typeCENTRE_COMMENT_DELETED
typeCENTRE_EDITED
typeCENTRE_DELETED
typeCLIENT_CREATED
typeCLIENT_COMMENT_ADDED
typeCLIENT_COMMENT_EDITED
typeCLIENT_COMMENT_DELETED
typeCLIENT_EDITED
typeCLIENT_DELETED
typeCLIENT_BRANCH_ASSIGNMENT
typeCLIENT_BRANCH_UNASSIGNMENT
typeCLIENT_CENTRE_ASSIGNMENT
typeCLIENT_CENTRE_UNASSIGNMENT
typeCLIENT_CREDIT_OFFICER_ASSIGNMENT
typeCLIENT_CREDIT_OFFICER_UNASSIGNMENT
typeCLIENT_SET_TO_PENDING
typeCLIENT_SET_TO_ACTIVE
typeCLIENT_SET_TO_INACTIVE
typeCLIENT_SET_TO_BLACKLISTED
typeCLIENT_SET_TO_REJECTED
typeCLIENT_SET_TO_EXITED
typeDATA_IMPORTED
typeDATA_IMPORT_APPROVED
typeDATA_IMPORT_REVERTED
typeDOCUMENT_CREATED
typeDOCUMENT_EDITED
typeDOCUMENT_DELETED
typePRODUCT_DOCUMENT_TEMPLATE_CREATED
typePRODUCT_DOCUMENT_TEMPLATE_DELETED
typePRODUCT_DOCUMENT_TEMPLATE_EDITED
typeFEDERATED_AUTHENTICATION_SETTINGS_EDITED
typeENTITY_CREATED
typeENTITY_EDITED
typeENTITY_DELETED
typeGLACCOUNT_CREATED
typeGLACCOUNT_EDITED
typeGLACCOUNT_DELETED
typeGLACCOUNTSCLOSURE_EXECUTED
typeGLACCOUNTSCLOSURE_UNDONE
typeCLIENT_JOINED_GROUP
typeCLIENT_LEFT_GROUP
typeGROUP_CREATED
typeGROUP_COMMENT_ADDED
typeGROUP_COMMENT_EDITED
typeGROUP_COMMENT_DELETED
typeGROUP_EDITED
typeGROUP_DELETED
typeGROUP_BRANCH_ASSIGNMENT
typeGROUP_BRANCH_UNASSIGNMENT
typeGROUP_CENTRE_ASSIGNMENT
typeGROUP_CENTRE_UNASSIGNMENT
typeGROUP_CREDIT_OFFICER_ASSIGNMENT
typeGROUP_CREDIT_OFFICER_UNASSIGNMENT
typeGROUP_SMS_MESSAGE_SENT
typeGROUP_EMAIL_MESSAGE_SENT
typeHOLIDAY_SETTINGS_CHANGED
typeLINE_OF_CREDIT_CREATED
typeLINE_OF_CREDIT_EDITED
typeLINE_OF_CREDIT_DELETED
typeACCOUNT_ADDED_TO_LINE_OF_CREDIT
typeACCOUNT_REMOVED_FROM_LINE_OF_CREDIT
typeLINE_OF_CREDIT_CLOSED
typeLINE_OF_CREDIT_REOPENED
typeLINE_OF_CREDIT_APPROVED
typeLINE_OF_CREDIT_SET_TO_PENDING_APPROVAL
typeLINE_OF_CREDIT_WITHDRAW
typeLINE_OF_CREDIT_REJECT
typeLOAN_ACCOUNT_CREATED
typeLOAN_ACCOUNT_COMMENT_ADDED
typeLOAN_ACCOUNT_COMMENT_EDITED
typeLOAN_ACCOUNT_COMMENT_DELETED
typeLOAN_ACCOUNT_EDITED
typeLOAN_ACCOUNT_SET_TO_PARTIAL
typeLOAN_ACCOUNT_SET_TO_PENDING_APPROVAL
typeLOAN_ACCOUNT_SET_TO_APPROVED
typeLOAN_ACCOUNT_SET_TO_CLOSED_CANCELLED
typeLOAN_ACCOUNT_SET_TO_CLOSED_REJECTED
typeLOAN_ACCOUNT_SET_TO_CLOSED_REFINANCED
typeLOAN_ACCOUNT_SET_TO_CLOSED_RESCHEDULED
typeLOAN_ACCOUNT_SET_TO_CLOSED_WRITTEN_OFF
typeLOAN_ACCOUNT_SET_TO_ACTIVE
typeLOAN_ACCOUNT_DISBURSED
typeTRANCHE_DISBURSED
typeTRANCHE_REVERSED
typeLOAN_ACCOUNT_SET_TO_IN_ARREARS
typeLOAN_ACCOUNT_DELETED
typeLOAN_GROUP_DELETED
typeLINKED_LOAN_ACCOUNT
typeUNLINKED_LOAN_ACCOUNT
typeLOAN_ACCOUNT_PAYED_OFF
typeLOAN_ACCOUNT_LOCKED
typeLOAN_ACCOUNT_UNLOCKED
typeLOAN_ACCOUNT_LOCKED_OPERATIONS_EDITED
typeLOAN_ACCOUNT_LOCKED_CAPPING
typeLOAN_ACCOUNT_BRANCH_ASSIGNMENT
typeLOAN_ACCOUNT_BRANCH_UNASSIGNMENT
typeLOAN_ACCOUNT_CENTRE_ASSIGNMENT
typeLOAN_ACCOUNT_CENTRE_UNASSIGNMENT
typeLOAN_ACCOUNT_CREDIT_OFFICER_ASSIGNMENT
typeLOAN_ACCOUNT_CREDIT_OFFICER_UNASSIGNMENT
typeLOAN_ACCOUNT_SET_TO_CLOSED_OBLIGATIONS_MET
typeLOAN_SCHEDULE_EDITED
typeLOAN_PRODUCT_CREATED
typeLOAN_PRODUCT_COMMENT_ADDED
typeLOAN_PRODUCT_COMMENT_EDITED
typeLOAN_PRODUCT_COMMENT_DELETED
typeLOAN_PRODUCT_EDITED
typeLOAN_PRODUCT_DEACTIVATED
typeLOAN_PRODUCT_ACTIVATED
typeLOAN_PRODUCT_DELETED
typeORGANIZATION_SETTINGS_CHANGED
typePORTAL_ACTIVATED
typePORTAL_DEACTIVATED
typePORTAL_EDITED
typeSAVINGS_PRODUCT_CREATED
typeSAVINGS_PRODUCT_COMMENT_ADDED
typeSAVINGS_PRODUCT_COMMENT_EDITED
typeSAVINGS_PRODUCT_COMMENT_DELETED
typeSAVINGS_PRODUCT_EDITED
typeSAVINGS_PRODUCT_ACTIVATED
typeSAVINGS_PRODUCT_DEACTIVATED
typeSAVINGS_PRODUCT_DELETED
typeSAVING_ACCOUNT_CREATED
typeSAVINGS_ACCOUNT_COMMENT_ADDED
typeSAVINGS_ACCOUNT_COMMENT_EDITED
typeSAVINGS_ACCOUNT_COMMENT_DELETED
typeSAVING_ACCOUNT_EDITED
typeSAVINGS_ACCOUNT_APPROVED
typeSAVINGS_ACCOUNT_ACTIVATED
typeSAVINGS_ACCOUNT_CLOSED_WITHDRAWN
typeSAVINGS_ACCOUNT_CLOSED_REJECTED
typeSAVINGS_ACCOUNT_CLOSED
typeSAVINGS_ACCOUNT_MATURED
typeSAVINGS_ACCOUNT_SET_TO_PENDING
typeSAVINGS_ACCOUNT_MATURITY_SET
typeSAVINGS_ACCOUNT_MATURITY_UNSET
typeSAVINGS_ACCOUNT_SET_TO_ARREARS
typeSAVINGS_ACCOUNT_WRITEN_OFF
typeSAVINGS_ACCOUNT_SET_TO_LOCKED
typeSAVINGS_ACCOUNT_DELETED
typeSAVINGS_ACCOUNT_SET_TO_DORMANT
typeSAVINGS_ACCOUNT_UNDO_DORMANT
typeSMS_MESSAGE_SENT
typeCLIENT_EMAIL_MESSAGE_SENT
typeTASK_CREATED
typeTASK_EDITED
typeTASK_DELETED
typeTASK_COMPLETED
typeTASK_UNCOMPLETED
typeLOAN_TRANSACTION_EDITED
typeSAVINGS_TRANSACTION_EDITED
typeUSER_CREATED
typeUSER_EDITED
typeUSER_DELETED
typeUSER_COMMENT_ADDED
typeUSER_COMMENT_EDITED
typeUSER_COMMENT_DELETED
typeUSER_LOGGED_IN
typeUSER_BRANCH_ASSIGNMENT
typeUSER_BRANCH_UNASSIGNMENT
typeUSER_LOCKED

Branches

Allows you to retrieve branches which are being used by an organization. For information about custom field definitions and custom fields sets in branches see Custom Fields API documentation.

Get all Branches

GET /branches

Get all branches

Allows retrieving branches via a paginated list or by using the branch id/key. While using the branch id/key the full details of the branch can be retreived(address, custom field values, holidays). The custom field values can be changed using patch or delete methods.

Parameters

NameTypeDescriptionIn
offsetintegerStart at index x, for example, if limit is set to 10 and offset is set to 10, you will essentially get page 2 of all records.query
limitintegerMax number of records to return.query
fullDetailsbooleanWhether to load all the nested fields for the branch as well.query

Example Responses

200 : ok
an array of branches with full details

[
  {
    "encodedKey": "8a193c26722b51b701722d779e7122de",
    "id": "demoBranchId",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-09-07T10:44:32+0000",
    "name": "Maputo Downtown",
    "state": "ACTIVE",
    "phoneNumber": "",
    "emailAddress": "",
    "notes": "Is located in the surroundings of the local market with a <i>lot of potential</i> to reach new clients.",
    "branchHolidays": [
      {
        "encodedKey": "8a19df6972b787fc0172b8c473c00b9c",
        "keyId": 12,
        "name": "only maputo holiday day",
        "dayOfMonth": 30,
        "monthOfYear": 7,
        "year": 2020,
        "isAnnualyRecurring": true,
        "creationDate": "2020-06-15T16:17:01+0000"
      }
    ],
    "customFieldValues": [
      {
        "encodedKey": "8a19cd6f74674df9017467f25aab02c6",
        "parentKey": "8a193c26722b51b701722d779e7122de",
        "customFieldKey": "8a19cd6f74674df9017467ef8e6802af",
        "customField": {
          "encodedKey": "8a19cd6f74674df9017467ef8e6802af",
          "id": "cf_branch",
          "creationDate": "2020-09-07T09:42:33+0000",
          "lastModifiedDate": "2020-09-07T09:42:33+0000",
          "name": "Example Custom Field Definition",
          "type": "BRANCH_INFO",
          "dataType": "CHECKBOX",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "an example of a checkbox custom field definition",
          "customFieldSet": {
            "encodedKey": "8a19cd6f74674df9017467ef8e6802ae",
            "id": "_example_branch_custom_field_set",
            "name": "example branch custom field set",
            "notes": "example custom field set",
            "createdDate": "2020-09-07T09:41:50+0000",
            "lastModifiedDate": "2020-09-07T09:41:50+0000",
            "indexInList": 2,
            "type": "BRANCH_INFO",
            "usage": "SINGLE"
          },
          "indexInList": 0,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19cd6f74674df9017467ef8e6802b0",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19cd6f74674df9017467ef8e6802b1",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "TRUE",
        "indexInList": -1,
        "customFieldID": "cf_branch",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19cd6f74674df9017468019ac00310",
        "parentKey": "8a193c26722b51b701722d779e7122de",
        "customFieldKey": "8a19cd6f74674df9017467f25aab02c9",
        "customField": {
          "encodedKey": "8a19cd6f74674df9017467f25aab02c9",
          "id": "cf_group_field_1",
          "creationDate": "2020-09-07T09:58:33+0000",
          "lastModifiedDate": "2020-09-07T09:58:33+0000",
          "name": "cf group field 1",
          "type": "BRANCH_INFO",
          "dataType": "STRING",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "",
          "customFieldSet": {
            "encodedKey": "8a19cd6f74674df9017467f25aab02c8",
            "id": "_branches_grouped_cf_set",
            "name": "Custom Field Group for Branch",
            "notes": "",
            "createdDate": "2020-09-07T09:47:03+0000",
            "lastModifiedDate": "2020-09-07T09:47:03+0000",
            "indexInList": 3,
            "type": "BRANCH_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 0,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19cd6f74674df9017467f25aab02ca",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19cd6f74674df901746800bdb10307",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "group field 1",
        "indexInList": -1,
        "customFieldID": "cf_group_field_1",
        "customFieldSetGroupIndex": 0
      },
      {
        "encodedKey": "8a19cd6f74674df90174681f214103cf",
        "parentKey": "8a193c26722b51b701722d779e7122de",
        "customFieldKey": "8a19cd6f74674df901746800bdb10308",
        "customField": {
          "encodedKey": "8a19cd6f74674df901746800bdb10308",
          "id": "cf_group_field_2",
          "creationDate": "2020-09-07T09:59:02+0000",
          "lastModifiedDate": "2020-09-07T09:59:02+0000",
          "name": "cf group field 2",
          "type": "BRANCH_INFO",
          "dataType": "NUMBER",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "",
          "customFieldSet": {
            "encodedKey": "8a19cd6f74674df9017467f25aab02c8",
            "id": "_branches_grouped_cf_set",
            "name": "Custom Field Group for Branch",
            "notes": "",
            "createdDate": "2020-09-07T09:47:03+0000",
            "lastModifiedDate": "2020-09-07T09:47:03+0000",
            "indexInList": 3,
            "type": "BRANCH_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19cd6f74674df901746800bdb10309",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19cd6f74674df901746800bdb1030a",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "2",
        "indexInList": -1,
        "customFieldID": "cf_group_field_2",
        "customFieldSetGroupIndex": 0
      },
      {
        "encodedKey": "8a19cd6f74674df90174681f214103d1",
        "parentKey": "8a193c26722b51b701722d779e7122de",
        "customFieldKey": "8a19cd6f74674df901746800bdb10308",
        "customField": {
          "encodedKey": "8a19cd6f74674df901746800bdb10308",
          "id": "cf_group_field_2",
          "creationDate": "2020-09-07T09:59:02+0000",
          "lastModifiedDate": "2020-09-07T09:59:02+0000",
          "name": "cf group field 2",
          "type": "BRANCH_INFO",
          "dataType": "NUMBER",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "",
          "customFieldSet": {
            "encodedKey": "8a19cd6f74674df9017467f25aab02c8",
            "id": "_branches_grouped_cf_set",
            "name": "Custom Field Group for Branch",
            "notes": "",
            "createdDate": "2020-09-07T09:47:03+0000",
            "lastModifiedDate": "2020-09-07T09:47:03+0000",
            "indexInList": 3,
            "type": "BRANCH_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19cd6f74674df901746800bdb10309",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19cd6f74674df901746800bdb1030a",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "500",
        "indexInList": -1,
        "customFieldID": "cf_group_field_2",
        "customFieldSetGroupIndex": 1
      }
    ]
  },
  {
    "encodedKey": "8a193c26722b51b701722d779e7122df",
    "id": "2",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-10-08T09:21:51+0000",
    "name": "Matola City",
    "state": "ACTIVE",
    "phoneNumber": "+7534987676",
    "emailAddress": "matola@BofAlg.es",
    "notes": "Is currently under construction to add an extra room that can be used for the meetings.<p></p>Have <b>six new computers</b> for their staff.",
    "branchHolidays": [
      {
        "encodedKey": "8a19df6972b787fc0172b8c50bdb0ba1",
        "keyId": 13,
        "name": "joe matola only day",
        "dayOfMonth": 26,
        "monthOfYear": 8,
        "year": 2020,
        "isAnnualyRecurring": true,
        "creationDate": "2020-06-15T16:17:19+0000"
      }
    ],
    "address": {
      "encodedKey": "8a19aa09750726e001750782ef6f017d",
      "parentKey": "8a193c26722b51b701722d779e7122df",
      "line1": "1 Bank Street",
      "line2": "Old Town",
      "city": "Matola City",
      "region": "Matola",
      "postcode": "10775",
      "country": "Bankistan",
      "indexInList": -1
    },
    "customFieldValues": []
  }
]

200 : ok
an array of branches with basic details

[
  {
    "encodedKey": "402832b43809601c01380963908b0009",
    "id": "2",
    "creationDate": "2012-06-20T12:15:16+0200",
    "lastModifiedDate": "2012-06-20T12:15:16+0200",
    "name": "Matola City"
  },
  {
    "encodedKey": "402832b43809601c01380963907c0008",
    "id": "demoBranchId",
    "creationDate": "2012-06-20T12:15:16+0200",
    "lastModifiedDate": "2012-06-20T12:15:16+0200",
    "name": "Maputo Downtown"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[BranchFullDetailsApiV1]nonenone
» addressAddressApiV1nonenone
»» addressTypestringthe type of the address, eg. home, office. Deprecated.none
»» citystringthe citynone
»» countrystringthe countrynone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListintegerthe index of this address when there are multiple addresses assigned for a single entitynone
»» latitudenumberthe latitude of the address pointnone
»» line1stringthe first line of the addressnone
»» line2stringthe second line of the addressnone
»» longitudenumberthe longitude of the address pointnone
»» parentKeystringthe encoded key of the entity to whom this address belongs, for example, the client of groupnone
»» postcodestringthe postal (zip) code of the addressnone
»» regionstringthe region of the addressnone
»» toBeDeletedbooleanwhether this address is marked to be deletednone
» branchHolidays[HolidayApiV1]a list of holidays specific to this branchnone
»» creationDatestringthe date and time when this holdiay was creatednone
»» dayOfMonthnumberthe day of the month on which this holiday fallsnone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» isAnnualyRecurringbooleanwhether this holiday takes place every yearnone
»» keyIdnumbernonenone
»» monthOfYearnumberthe month of the year in which this holiday takes placenone
»» namestringthe name of this holidaynone
»» yearnumberthe year in which this holiday takes placenone
» creationDatestringthe date on which this branch was creatednone
» customFieldValues[CustomFieldValueApiV1]nonenone
»» amountnumbernonenone
»» customFieldCustomFieldApiV1nonenone
»»» amountsobjectused when options available for a custom field definition translate to predefined amounts, for example, when the custom field value is used to generate a scorenone
»»»» additionalPropertiesnumbernonenone
»»» builtInCustomFieldIdstringif this field is one of the built in custom fiel definitions, this will have a value. These names are reserved and you can not use them for your own custom field definitionsnone
»»» creationDatestringthe date on which this custom field definition was creatednone
»»» customFieldProductSettings[CustomFieldLinkApiV1]nonenone
»»»» customFieldEncodedKeystringthe key to the parent custom field definitionnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isDefaultbooleanwhether this field is displayed by default when creating a new recordnone
»»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»»» linkTypestringthe type of entity this field represents a link tonone
»»»» productKeystringwhen the link type is product, this field should contain the encoded key of the linekd productnone
»»» customFieldSelectionOptions[CustomFieldSelectionApiV1][represents a possible selection for select type custom field definitions]none
»»»» constraintCustomFilterConstraintApiV1nonenone
»»»»» customFieldKeystringnonenone
»»»»» dataFieldTypestringnonenone
»»»»» dataFieldValuestringnonenone
»»»»» dataItemTypestringnonenone
»»»»» dataTypestringnonenone
»»»»» encodedKeystringnonenone
»»»»» filterElementstringnonenone
»»»»» groupNumbernumbernonenone
»»»»» indexnumbernonenone
»»»»» linkingOperatorstringnonenone
»»»»» secondValuestringnonenone
»»»»» valuestringnonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this selectable itemnone
»»»» scorenumberthe score assigned to this selectionnone
»»»» valuestringdisplay name of this optionnone
»»» customFieldSetCustomFieldSetApiV1nonenone
»»»» builtInTypestringif this set is part of the set of built-in custom field sets, its type will be shown herenone
»»»» createdDatestringthe date and time when this custom field set was creatednone
»»»» customFields[CustomFieldApiV1]an array of custom field definitions included in this custom field setnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this custom field setnone
»»»» indexInListnumberfor field sets that can be added to an entity more than once, this number represents the index in the list and is used when changing valuesnone
»»»» lastModifiedDatestringthe date on which this custom field set was last modifiednone
»»»» namestringthe name of this custom field setnone
»»»» notesstringany notes regarding this custom field setnone
»»»» typestringthe entity type that this custom field definition is attached tonone
»»»» usagestringwhether this custom field set can only be used once, or added multiple times to the same entitynone
»»» dataTypestringthe type of custom field definitionnone
»»» descriptionstringa brief description of this custom field definitionnone
»»» editRightsUsageRightsApiV1nonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isAccessibleByAllUsersbooleannonenone
»»»» roles[string]nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» idstringthe ID for this custom field definitionnone
»»» indexInListnumbernonenone
»»» isDefaultbooleanwhether this field will be included by default on new recordsnone
»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»» lastModifiedDatestringthe date on which this custom field definition was last modifiednone
»»» namestringthe name of this custom field definitionnone
»»» statestringwhether this field is available for use or has been deactivatednone
»»» typestringthe type of data this custom field definition will containnone
»»» uniquebooleanwhether the data in this custom field definition needs to be a unique valuenone
»»» validationPatternstringa user-provided pattern to which data in this custom field definition must conform where @ represents numbers, # represents letters and $ is either a number or letter. Other special characters used as separators are allowed, for example @@-##-$$$none
»»» valueLengthstringwhether this field needs to support a large number of charactersnone
»»» values[string]a list of possible values when the field is a selection fieldnone
»»» viewRightsUsageRightsApiV1nonenone
»» customFieldIDstringnonenone
»» customFieldKeystringnonenone
»» customFieldSetGroupIndexnumbernonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListnumbernonenone
»» linkedEntityKeyValuestringnonenone
»» parentKeystringnonenone
»» selectionKeystringnonenone
»» valuestringnonenone
» emailAddressstringthe email address for this branchnone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» idstringthe user provided ID for this branchnone
» lastModifiedDatestringthe date on which the details for this branch were last modifiednone
» namestringthe name of this branchnone
» notesstringnotes associated with this branchnone
» phoneNumberstringthe contact telephone number for this branchnone
» statestringwether this branch is active or notnone

Enumerated Values

PropertyValue
builtInCustomFieldIdMOBILE_PHONE
builtInCustomFieldIdEMAIL_ADDRESS
builtInCustomFieldIdGENDER
builtInCustomFieldIdMIDDLE_NAME
builtInCustomFieldIdHOME_PHONE
builtInCustomFieldIdBIRTHDATE
builtInCustomFieldIdLAST_NAME
builtInCustomFieldIdFIRST_NAME
linkTypeCLIENT_ROLE
linkTypeCHANNEL
linkTypePRODUCT
dataFieldTypeNATIVE
dataFieldTypeCUSTOM
dataItemTypeWRITTEN_OFF_LOANS
dataItemTypeLINE_OF_CREDIT
dataItemTypeINVESTOR_FUND
dataItemTypeTRANSACTION_DETAILS
dataItemTypeDOCUMENT_TEMPLATE
dataItemTypePRODUCT
dataItemTypeMCC_EXPIRATION
dataItemTypeCENTRE
dataItemTypeREPAYMENT_COLLECTION
dataItemTypeTASK
dataItemTypeOUTSTANDING_PORTFOLIO_AMOUNTS
dataItemTypeREVENUE
dataItemTypeCOMPOSED_TRANSACTIONS
dataItemTypeUNION_TRANSACTIONS
dataItemTypePRINCIPAL_PAYMENT_SETTINGS
dataItemTypeLOANS
dataItemTypeDISBURSEMENT_DETAILS
dataItemTypeSAVINGS_TRANSACTION
dataItemTypeIDENTIFICATION_DOCUMENT
dataItemTypeLOAN_PRODUCT
dataItemTypeDISBURSED_LOANS
dataItemTypeLOAN_GROUP
dataItemTypeTRANSACTION_CHANNEL
dataItemTypeCUSTOM_PREDEFINED_FEE
dataItemTypeJOURNAL_ENTRY
dataItemTypeATTACHMENT
dataItemTypePREDEFINED_FEE
dataItemTypeTRANCHE
dataItemTypeTRANSACTION
dataItemTypeINDEX_RATE_SOURCE
dataItemTypeGROUP_ROLE
dataItemTypeLOAN_TRANSACTION
dataItemTypeCLIENT_ROLE
dataItemTypeGROUP
dataItemTypeNOTIFICATION_MESSAGE
dataItemTypeOUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemTypeREPAYMENT
dataItemTypeLOAN_ACCOUNT_GUARANTY
dataItemTypeBRANCH
dataItemTypeCURRENCY
dataItemTypeCARD_TRANSACTION_REVERSAL
dataItemTypeINTEREST_PRODUCT_SETTINGS
dataItemTypeCREATED_ACCOUNTS
dataItemTypeUSER
dataItemTypeSAVINGS_PRODUCT
dataItemTypeCLIENT
dataItemTypePRODUCT_ARREARS_SETTINGS
dataItemTypeSAVINGS
dataItemTypeEXPENSE
dataItemTypeINDEX_RATE
dataItemTypeNOTIFICATION_TEMPLATE
dataItemTypeCUSTOM_FIELD_SELECTION
dataItemTypeACTIVITY
dataTypeENUM
dataTypeMONEY
dataTypeNUMBER
dataTypeDATE_UTC
dataTypeJAVA_BLOB
dataTypeOBJECT
dataTypeBOOLEAN
dataTypeDATE
dataTypePERCENT
dataTypeBIG_DECIMAL
dataTypeSTRING
dataTypeKEY
dataTypeLONG
filterElementSTARTS_WITH_CASE_SENSITIVE
filterElementTHIS_WEEK
filterElementEQUALS
filterElementSTARTS_WITH
filterElementIN
filterElementTODAY
filterElementTHIS_YEAR
filterElementBETWEEN
filterElementAFTER
filterElementLESS_THAN
filterElementDIFFERENT_THAN
filterElementTHIS_MONTH
filterElementNOT_EMPTY
filterElementBEFORE
filterElementEQUALS_CASE_SENSITIVE
filterElementLAST_DAYS
filterElementMORE_THAN
filterElementEMPTY
filterElementON
linkingOperatorOR
linkingOperatorAND
builtInTypeDETAILS
builtInTypeGENERAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
usageSINGLE
usageGROUPED
dataTypeGROUP_LINK
dataTypeDATE
dataTypeNUMBER
dataTypeCHECKBOX
dataTypeCLIENT_LINK
dataTypeSTRING
dataTypeUSER_LINK
dataTypeSELECTION
stateDEACTIVATED
stateNORMAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
valueLengthSHORT
valueLengthLONG
stateACTIVE
stateINACTIVE

Get Branch by ID

GET /branches/{branchId}

Get a branch by ID

Get a specifc branch by its encoded key or ID.

Parameters

NameTypeDescriptionIn
branchId (required)stringnonepath
fullDetailsbooleannonequery

Example Responses

200 : ok
Full Details for a single branch

{
  "encodedKey": "8a33ae49441c4fe101441c713b36000e",
  "id": "2",
  "creationDate": "2014-02-10T15:36:26+0000",
  "lastModifiedDate": "2014-02-17T11:18:42+0000",
  "name": "Matola City",
  "phoneNumber": "",
  "emailAddress": "",
  "branchHolidays": [
    {
      "encodedKey": "8a54e5b4443e9c9401443fae924b0008",
      "keyId": 31,
      "name": "branch_holiday",
      "dayOfMonth": 17,
      "monthOfYear": 2,
      "year": 2014,
      "isAnnualyRecurring": true
    }
  ],
  "address": {
    "encodedKey": "8a19aa09750726e001750782ef6f017d",
    "parentKey": "8a193c26722b51b701722d779e7122df",
    "line1": "1 Bank Street",
    "line2": "Old Town",
    "city": "Matola City",
    "region": "Matola",
    "postcode": "10775",
    "country": "Bankistan",
    "indexInList": -1
  },
  "customFieldValues": [
    {
      "encodedKey": "8a42711a4428c1f101442be406d20c24",
      "parentKey": "8a33ae49441c4fe101441c713b36000e",
      "customFieldKey": "8a33ae49441c4fe101441c7156c20358",
      "customField": {
        "encodedKey": "8a33ae49441c4fe101441c7156c20358",
        "id": "Clients_Branches",
        "name": "Clients",
        "type": "BRANCH_INFO",
        "dataType": "STRING",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "customFieldSet": {
          "encodedKey": "8a33ae49441c4fe101441c71568f034c",
          "name": "Branch Organization",
          "createdDate": "2014-02-10T15:36:33+0000",
          "indexInList": 0,
          "type": "BRANCH_INFO"
        },
        "indexInList": -1,
        "state": "NORMAL"
      },
      "value": "dadsds",
      "indexInList": -1
    },
    {
      "encodedKey": "8a54e5b4443e9c9401443f91c7a20003",
      "parentKey": "8a33ae49441c4fe101441c713b36000e",
      "customFieldKey": "8a33ae49441c4fe101441c7156c5035a",
      "customField": {
        "encodedKey": "8a33ae49441c4fe101441c7156c5035a",
        "id": "Organization_Staff_Branches",
        "name": "Organization Staff",
        "type": "BRANCH_INFO",
        "dataType": "NUMBER",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "customFieldSet": {
          "encodedKey": "8a33ae49441c4fe101441c71568f034c",
          "name": "Branch Organization",
          "createdDate": "2014-02-10T15:36:33+0000",
          "indexInList": 0,
          "type": "BRANCH_INFO"
        },
        "indexInList": -1,
        "state": "NORMAL"
      },
      "value": "4",
      "indexInList": -1
    },
    {
      "encodedKey": "8a54e5b4443e9c9401443f91c7b90004",
      "parentKey": "8a33ae49441c4fe101441c713b36000e",
      "customFieldKey": "8a33ae49441c4fe101441c7156c30359",
      "customField": {
        "encodedKey": "8a33ae49441c4fe101441c7156c30359",
        "id": "Province_Branches",
        "name": "Province",
        "type": "BRANCH_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "values": [
          "Catamarca",
          "Chaco",
          "Jujuy"
        ],
        "amounts": {
          "Jujuy": "10",
          "Chaco": "1",
          "Catamarca": "0"
        },
        "customFieldSet": {
          "encodedKey": "8a33ae49441c4fe101441c71569a034d",
          "name": "Province",
          "createdDate": "2014-02-10T15:36:33+0000",
          "indexInList": 1,
          "type": "BRANCH_INFO"
        },
        "indexInList": -1,
        "state": "NORMAL"
      },
      "value": "Catamarca",
      "amount": "0",
      "indexInList": -1
    },
    {
      "encodedKey": "8a54e5b4443e9c9401443f91c7b90005",
      "parentKey": "8a33ae49441c4fe101441c713b36000e",
      "customFieldKey": "8a33ae49441c4fe101441c7156c7035b",
      "customField": {
        "encodedKey": "8a33ae49441c4fe101441c7156c7035b",
        "id": "Outside_of_province_Branches",
        "name": "Outside of province",
        "type": "BRANCH_INFO",
        "dataType": "CHECKBOX",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "customFieldSet": {
          "encodedKey": "8a33ae49441c4fe101441c71569a034d",
          "name": "Province",
          "createdDate": "2014-02-10T15:36:33+0000",
          "indexInList": 1,
          "type": "BRANCH_INFO"
        },
        "indexInList": -1,
        "state": "NORMAL"
      },
      "value": "FALSE",
      "indexInList": -1
    }
  ]
}

200 : ok
A single branch

{
  "encodedKey": "402832b43809601c01380963908b0009",
  "id": "2",
  "creationDate": "2012-06-20T12:15:16+0200",
  "lastModifiedDate": "2012-06-20T12:15:16+0200",
  "name": "Matola City"
}

Responses

StatusMeaningDescriptionSchema
200OKokBranchFullDetailsApiV1

Update Custom Info for Branch

PATCH /branches/{branchId}/custominformation

Update custom field values

Example Requests

Update a single custom field value

{
  "customInformation": [
    {
      "customFieldID": "custom_field_2",
      "value": "3"
    }
  ]
}

Update field in a group

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field",
      "value": "new value",
      "customFieldSetGroupIndex": "0"
    }
  ]
}

Update multiple custom field values

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field_2",
      "value": "3",
      "customFieldSetGroupIndex": "0"
    },
    {
      "customFieldID": "field_3",
      "value": "divorced"
    }
  ]
}

Parameters

NameTypeDescriptionIn
customInformation[object]nonebody
» customFieldID (required)stringnonebody
» value (required)stringnonebody
» customFieldSetGroupIndexstringRequired if field to update is part of a group, if the Field Set Group Index is not set, a new group will be created with the value provided.body
branchId (required)stringThe ID of the branchpath

Example Responses

200 : OK
success response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Custom Info for Branch

GET /branches/{branchId}/custominformation/{customFieldId}

Get a custom field definition for a branch

Allows retrieving a custom field definition for a given branch directly by the ID/key of the branch and the ID/key of the custom field definition.

Parameters

NameTypeDescriptionIn
branchId (required)stringThe ID of the branch.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
A custom field definition

[
  {
    "encodedKey": "8a19cd6f74674df9017467f25aab02c6",
    "parentKey": "8a193c26722b51b701722d779e7122de",
    "customFieldKey": "8a19cd6f74674df9017467ef8e6802af",
    "customField": {
      "encodedKey": "8a19cd6f74674df9017467ef8e6802af",
      "id": "cf_branch",
      "creationDate": "2020-09-07T09:42:33+0000",
      "lastModifiedDate": "2020-09-07T09:42:33+0000",
      "name": "Example Custom Field Definition",
      "type": "BRANCH_INFO",
      "dataType": "CHECKBOX",
      "valueLength": "SHORT",
      "isDefault": false,
      "isRequired": false,
      "description": "an example of a checkbox custom field definition",
      "customFieldSet": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802ae",
        "id": "_example_branch_custom_field_set",
        "name": "example branch custom field set",
        "notes": "example custom field set",
        "createdDate": "2020-09-07T09:41:50+0000",
        "lastModifiedDate": "2020-09-07T09:41:50+0000",
        "indexInList": 2,
        "type": "BRANCH_INFO",
        "usage": "SINGLE"
      },
      "indexInList": 0,
      "state": "NORMAL",
      "customFieldSelectionOptions": [],
      "viewRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b0",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "editRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b1",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "unique": false,
      "values": [],
      "amounts": {}
    },
    "value": "TRUE",
    "indexInList": -1,
    "customFieldID": "cf_branch",
    "customFieldSetGroupIndex": -1
  }
]

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCustomFieldApiV1
404Not FoundNot FoundInline

Response Schema

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Custom Field Value for Branch

PATCH /branches/{branchId}/custominformation/{customFieldId}

Update a custom field value for a branch

Update a custom field value for a branch custom field definition

Example Requests

A new custom field value

{
  "value": "New custom field value"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
branchId (required)stringThe ID of the branch.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "string"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Custom Info for Branch

DELETE /branches/{branchId}/custominformation/{customFieldId}

Delete a single custom field value

Parameters

NameTypeDescriptionIn
branchId (required)stringThe ID of the branch.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
success response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Custom Info (grouped) for Branch

PATCH /branches/{branchId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Update grouped custom field value

Update custom field value, which is part of a group

Example requests

Provide a new custom field value

{
  "value": "Some updated information"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
branchId (required)stringThe ID of the branchpath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
success response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
wrong group index provided

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
field not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Custom Info (grouped) for Branch

DELETE /branches/{branchId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Delete grouped custom field value

Delete a custom field value, which is part of a group

Parameters

NameTypeDescriptionIn
branchId (required)stringThe ID of the branchpath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Branch Comments

GET /branches/{branchId}/comments

Get all branch comments

get all comments for a branch

Parameters

NameTypeDescriptionIn
limitstringnonequery
offsetstringnonequery
branchId (required)stringthe ID of the branchpath

Example Responses

200 : OK
an array of comments

[
  {
    "encodedKey": "8a19b7057471f4af017472dc0fd80470",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "creationDate": "2020-09-09T14:24:42+0000",
    "lastModifiedDate": "2020-09-09T14:24:42+0000",
    "text": "aanother afmaefomaef<div><br /></div><div><u>aefaefaf</u></div><div><u><br /></u></div><div><u>afaef</u></div>"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c8bf25ab",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "text": "Should suggest she apply for the agriculture loan given the nature of their business"
  }
]

400 : Bad Request
bad branch ID

{
  "returnCode": 149,
  "returnStatus": "INVALID_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CommentApiV1]nonenone
» creationDatestring(date-time)the date and time at which this comment was addednone
» encodedKeystringa unique key for this commentnone
» lastModifiedDatestring(date-time)the date and time at which this comment was last modifiednone
» parentKeystringthe unique key of the parent object for this comment, for example, the client or loan account to which it relatesnone
» textstringthe text of the comment as a string, must be properly JSON escpaped if it contains special charactersnone
» userKeystringthe unique key of the user who created the commentnone

Create Branch Comment

POST /branches/{branchId}/comments

Create a branch Comment

create new comment for a branch

Example Requests

A comment

{
  "comment": "A long text field containing the comment to post. this is a comment with \" \" all kinds of : \\ / non compliant characters & = which have \n been JSON escaped"
}

Parameters

NameTypeDescriptionIn
commentstringthe comment to be added. if adding complex content make sure it is properly JSON encoded before making your requestbody
branchId (required)stringthe ID of the branchpath

Example Responses

200 : OK
a comment

{
  "encodedKey": "8a19c34574720f9e0174734a039f06e2",
  "parentKey": "8a193c26722b51b701722d77c5e423b7",
  "userKey": "8a194075720ece2c017226fced6f005e",
  "creationDate": "2020-09-09T14:39:36+0000",
  "lastModifiedDate": "2020-09-09T14:39:36+0000",
  "text": "this is a comment with \" \" all kinds of : \\ / non compliant stuff & = which has been JSON escaped"
}

400 : Bad Request
extra parameters in the request

{
  "returnCode": 27,
  "returnStatus": "PARAMETER_NOT_ALLOWED"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCommentApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Branch Documents

GET /branches/{branchId}/documents

Get documents for Branch

Get all documents for a given branch

Parameters

NameTypeDescriptionIn
offsetintegeroffset results. use with limit parameter to achieve pagingquery
limitintegermax number of records to returnquery
branchId (required)stringthe ID of the branchpath

Example Responses

200 : ok
an array of documents

[
  {
    "encodedKey": "8a19c035747bf5b901747c5bfb04014b",
    "id": 51,
    "creationDate": "2020-09-11T08:52:48+0000",
    "lastModifiedDate": "2020-09-11T08:52:48+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "BRANCH",
    "name": "covid rules",
    "type": "png",
    "fileSize": 8258,
    "originalFilename": "Screenshot_2020-04-22_at_14.31.29.png",
    "location": "BRSIDSLFBOGAYZKUUKCOGGQEDOSEOD",
    "description": "some guidelines for bank employees regarding covid",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Adrian Doonan"
  },
  {
    "encodedKey": "8a19a3337476f2d00174775b6a3001ae",
    "id": 43,
    "creationDate": "2020-09-10T09:31:54+0000",
    "lastModifiedDate": "2020-09-10T09:31:54+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "BRANCH",
    "name": "bnranch doc",
    "type": "png",
    "fileSize": 32109,
    "originalFilename": "clients_duplicate_id.png",
    "location": "JRTBQGGVXFQRQRBDGBRWQCTXJNRWXP",
    "description": "branch doc desc",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Adrian Doonan"
  }
]

400 : Bad Request
bad branch ID

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "wrong owner id"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[DocumentApiV1]nonenone
» createdByUserKeystringthe encoded key of the user who added this documentnone
» creationDatestringthe date and time when this document was creatednone
» descriptionstringa description of this documentnone
» documentHolderKeystringthe encoded key of the entity to which this document is attachednone
» documentHolderTypestringthe type of entity, eg. client, loan product, to which this document is attachednone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» fileSizenumberthe size, in bytes, of the attached documentnone
» idnumberan ID for this documentnone
» lastModifiedDatestringthe date on which this document was last modifiednone
» locationstringindicates where the document is savednone
» namestringthe display name of this documentnone
» originalFilenamestringthe name of the originally uploaded filenone
» typestringthe file type of the document, eg. png, jpeg, pdfnone
» userNamestringthe name of the user who uploaded the documentnone

Enumerated Values

PropertyValue
documentHolderTypeBRANCH
documentHolderTypeLOAN_ACCOUNT
documentHolderTypeGROUP
documentHolderTypeDEPOSIT_ACCOUNT
documentHolderTypeLINE_OF_CREDIT
documentHolderTypeLOAN_PRODUCT
documentHolderTypeGL_JOURNAL_ENTRY
documentHolderTypeSAVINGS_PRODUCT
documentHolderTypeUSER
documentHolderTypeCLIENT
documentHolderTypeCENTRE
documentHolderTypeID_DOCUMENT

Create Branch Document

POST /branches/{branchId}/documents

Attach new Document to a Branch

Attach a new document to a branch

Example Requests

a document to uplaod

{
  "document": {
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "BRANCH",
    "name": "some image",
    "type": "PNG",
    "description": "this is an image file"
  },
  "documentContent": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAF0CAYAAACudHRvAAABQGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASS=="
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new document to be attached to an entitybody
branchId (required)stringthe ID of the branchpath

Example Responses

201 : Created
uploaded document details

{
  "encodedKey": "8a19c035747bf5b901747c5bfb04014d",
  "id": 52,
  "creationDate": "2020-09-11T08:54:53+0000",
  "lastModifiedDate": "2020-09-11T08:54:53+0000",
  "documentHolderKey": "8a193c26722b51b701722d779e7122df",
  "documentHolderType": "BRANCH",
  "name": "some image",
  "type": "png",
  "fileSize": 32109,
  "originalFilename": "some_image.png",
  "location": "RCPOUIUHJFBYDRURQNNHMOGBEFIOQF",
  "description": "this is an image file",
  "createdByUserKey": "8a194075720ece2c017226fced6f005e"
}

400 : Bad Request
filetype provided does not match actual file type

{
  "returnCode": 973,
  "returnStatus": "INCONSISTENT_EXTENSION_WITH_FILE_CONTENT",
  "errorSource": "Invalid extension with file content"
}

Responses

StatusMeaningDescriptionSchema
201CreatedCreatedDocumentApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Get Branch Document by ID

GET /branches/{branchId}/documents/{documentId}

Get a Branch Document

Get a specific document attached to a branch

Parameters

NameTypeDescriptionIn
branchId (required)stringthe ID of the branchpath
documentId (required)stringthe ID of the documentpath

Example Responses

200 : OK
base64 encoded document

"iVBORw0KGgoAAAANSUhEUgAAAEAAAAA9CAYAAAAd1W/BAAAMY2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdck0cbv3dkkrACEZAR9hJFZgAZIawIAjIFUQlJIGHEmBBE3NRSBesWUZxoVUTRagWkDkSssyhu6yiKqFRqsYoLle8yoNZ+4/c9v9+993+fe+7/jNzlvQNAr5Mvk+Wj+gAUSAvlCZGhrElp6SzSI4ABU0ADtsCTL1DIOPHxMQDKUP93eX0DIKr+qpuK65/j/1UMhSKFAAAkA=="

400 : Bad Request
bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKstring
400Bad RequestBad RequestExecutionStatusApiV1

Delete Branch Document

DELETE /branches/{branchId}/documents/{documentId}

Delete a Branch Document

Delete a document attached to a branch

Parameters

NameTypeDescriptionIn
branchId (required)stringthe ID of the branchpath
documentId (required)stringthe ID of the documentpath

Example Responses

200 : OK
success response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Centres

Allows the retrieval of centres which are being used by an organisation. For information about custom field definitions and custom field sets, see Custom Fields API documentation.

Get all Centres

GET /centres

Get all centres

Allows retrieving centres via a paginated list.

Parameters

NameTypeDescriptionIn
branchIDstringnonequery
offsetintegernonequery
limitintegernonequery
fullDetailsbooleannonequery

Example Responses

200 : ok
an array of centres with basic details

[
  {
    "encodedKey": "8a193c26722b51b701722d779e7122e0",
    "id": "DT1",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-09-23T14:38:14+0000",
    "name": "Down Town",
    "state": "ACTIVE",
    "meetingDay": "FRIDAY",
    "assignedBranchKey": "8a193c26722b51b701722d779e7122de"
  },
  {
    "encodedKey": "8a193c26722b51b701722d779e7122e1",
    "id": "MP1",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-05-19T15:05:23+0000",
    "name": "Market Place",
    "state": "ACTIVE",
    "assignedBranchKey": "8a193c26722b51b701722d779e7122df"
  }
]

200 : ok
an array of centres with full details

[
  {
    "encodedKey": "8a193c26722b51b701722d779e7122e0",
    "id": "DT1",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-09-23T14:38:14+0000",
    "name": "Down Town",
    "state": "ACTIVE",
    "notes": "some rich text notes about this centre",
    "meetingDay": "FRIDAY",
    "assignedBranchKey": "8a193c26722b51b701722d779e7122de",
    "address": {
      "encodedKey": "8a19b63f74b9d6b10174bb3fea5b09b3",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "line1": "Chuffington House",
      "line2": "123 Main High Road",
      "city": "Big Town",
      "region": "Big Conglomeration",
      "postcode": "123 456",
      "country": "Countrystan",
      "indexInList": -1
    },
    "customFieldValues": [
      {
        "encodedKey": "8a19b63f74b9d6b10174bb3f856b09a6",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb3d56f20974",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb3d56f20974",
          "id": "centre_cf_1",
          "creationDate": "2020-09-23T13:53:13+0000",
          "lastModifiedDate": "2020-09-23T14:27:10+0000",
          "name": "cf 1",
          "type": "CENTRE_INFO",
          "dataType": "STRING",
          "valueLength": "LONG",
          "isDefault": false,
          "isRequired": false,
          "description": "A text custom field definition for a centre",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
            "id": "_centres_custom_field_set",
            "name": "custom field set",
            "notes": "Custom field definitions for centre",
            "createdDate": "2020-09-23T13:52:45+0000",
            "lastModifiedDate": "2020-09-23T13:52:45+0000",
            "indexInList": 0,
            "type": "CENTRE_INFO",
            "usage": "SINGLE"
          },
          "indexInList": 0,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "validationPattern": "@#$",
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3d56f20975",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3d56f20976",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": true,
          "values": [],
          "amounts": {}
        },
        "value": "custom field value for cf 1",
        "indexInList": -1,
        "customFieldID": "centre_cf_1",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19b63f74b9d6b10174bb3f856b09a8",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb3d56f20977",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb3d56f20977",
          "id": "cntr_cf_2",
          "creationDate": "2020-09-23T13:53:41+0000",
          "lastModifiedDate": "2020-09-23T13:53:41+0000",
          "name": "centre cf 2",
          "type": "CENTRE_INFO",
          "dataType": "CHECKBOX",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "a checkbox custom field definition for a centre",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
            "id": "_centres_custom_field_set",
            "name": "custom field set",
            "notes": "Custom field definitions for centre",
            "createdDate": "2020-09-23T13:52:45+0000",
            "lastModifiedDate": "2020-09-23T13:52:45+0000",
            "indexInList": 0,
            "type": "CENTRE_INFO",
            "usage": "SINGLE"
          },
          "indexInList": 1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3d56f20978",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b70979",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "FALSE",
        "indexInList": -1,
        "customFieldID": "cntr_cf_2",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19b63f74b9d6b10174bb3f856b09aa",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb3dc2b7097b",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097b",
          "id": "cntr_cf_Grp_1",
          "creationDate": "2020-09-23T13:54:31+0000",
          "lastModifiedDate": "2020-09-23T13:54:31+0000",
          "name": "cf grp 1",
          "type": "CENTRE_INFO",
          "dataType": "NUMBER",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "a number custom field definition",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
            "id": "_cntr_cf_grp",
            "name": "cf grouped",
            "notes": "grouped centre custom field definitions",
            "createdDate": "2020-09-23T13:54:05+0000",
            "lastModifiedDate": "2020-09-23T13:54:05+0000",
            "indexInList": 1,
            "type": "CENTRE_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 0,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097c",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097d",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "12",
        "indexInList": -1,
        "customFieldID": "cntr_cf_Grp_1",
        "customFieldSetGroupIndex": 0
      },
      {
        "encodedKey": "8a19b63f74b9d6b10174bb3fea5b09b1",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb3f17d10992",
          "id": "cntr_cf_grp_2",
          "creationDate": "2020-09-23T13:55:08+0000",
          "lastModifiedDate": "2020-09-23T13:57:45+0000",
          "name": "centre cf grp 2",
          "type": "CENTRE_INFO",
          "dataType": "SELECTION",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "a selection custom field definition for centres",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
            "id": "_cntr_cf_grp",
            "name": "cf grouped",
            "notes": "grouped centre custom field definitions",
            "createdDate": "2020-09-23T13:54:05+0000",
            "lastModifiedDate": "2020-09-23T13:54:05+0000",
            "indexInList": 1,
            "type": "CENTRE_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [
            {
              "encodedKey": "8a19b63f74b9d6b10174bb3f17d10995",
              "id": "1341939373",
              "value": "option 1",
              "score": "10"
            },
            {
              "encodedKey": "8a19b63f74b9d6b10174bb3f17d10996",
              "id": "414828471",
              "value": "option 2",
              "score": "-15"
            }
          ],
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3f17d10993",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb3f17d10994",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [
            "option 1",
            "option 2"
          ],
          "amounts": {
            "option 1": "10",
            "option 2": "-15"
          }
        },
        "value": "option 2",
        "amount": "-15",
        "indexInList": -1,
        "customFieldID": "cntr_cf_grp_2",
        "customFieldSetGroupIndex": 0
      },
      {
        "encodedKey": "8a19b63f74b9d6b10174bb5405830a67",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb5405830a64",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb5405830a64",
          "id": "cntr_cf_usr_lnk",
          "creationDate": "2020-09-23T14:18:00+0000",
          "lastModifiedDate": "2020-09-23T14:18:00+0000",
          "name": "user link for centre",
          "type": "CENTRE_INFO",
          "dataType": "USER_LINK",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "description": "a custom field definition linking to a specific user",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
            "id": "_centres_custom_field_set",
            "name": "custom field set",
            "notes": "Custom field definitions for centre",
            "createdDate": "2020-09-23T13:52:45+0000",
            "lastModifiedDate": "2020-09-23T13:52:45+0000",
            "indexInList": 0,
            "type": "CENTRE_INFO",
            "usage": "SINGLE"
          },
          "indexInList": 2,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb5405830a65",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb5405830a66",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "linkedEntityKeyValue": "8a19df0e730ee86f01730f4c3cf2074a",
        "indexInList": -1,
        "customFieldID": "cntr_cf_usr_lnk",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19b63f74b9d6b10174bb66462a0a7e",
        "parentKey": "8a193c26722b51b701722d779e7122e0",
        "customFieldKey": "8a19b63f74b9d6b10174bb6646250a73",
        "customField": {
          "encodedKey": "8a19b63f74b9d6b10174bb6646250a73",
          "id": "cntr_cf_slct_2",
          "creationDate": "2020-09-23T14:37:56+0000",
          "lastModifiedDate": "2020-09-23T14:37:56+0000",
          "name": "centre cf select 2",
          "type": "CENTRE_INFO",
          "dataType": "SELECTION",
          "valueLength": "LONG",
          "isDefault": false,
          "isRequired": false,
          "description": "a custom field definition in which the options available are dependent on another field",
          "customFieldSet": {
            "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
            "id": "_cntr_cf_grp",
            "name": "cf grouped",
            "notes": "grouped centre custom field definitions",
            "createdDate": "2020-09-23T13:54:05+0000",
            "lastModifiedDate": "2020-09-23T13:54:05+0000",
            "indexInList": 1,
            "type": "CENTRE_INFO",
            "usage": "GROUPED"
          },
          "indexInList": 2,
          "state": "NORMAL",
          "customFieldSelectionOptions": [
            {
              "encodedKey": "8a19b63f74b9d6b10174bb6646250a76",
              "id": "996554077",
              "value": "dep 1 a",
              "score": "12",
              "constraint": {
                "encodedKey": "8a19b63f74b9d6b10174bb6646250a77",
                "dataFieldType": "CUSTOM",
                "dataItemType": "CENTRE",
                "dataType": "STRING",
                "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
                "filterElement": "EQUALS",
                "value": "8a19b63f74b9d6b10174bb3f17d10995",
                "linkingOperator": "AND",
                "groupNumber": 0
              }
            },
            {
              "encodedKey": "8a19b63f74b9d6b10174bb6646280a78",
              "id": "656383934",
              "value": "dep 1 b",
              "score": "-3",
              "constraint": {
                "encodedKey": "8a19b63f74b9d6b10174bb6646280a79",
                "dataFieldType": "CUSTOM",
                "dataItemType": "CENTRE",
                "dataType": "STRING",
                "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
                "filterElement": "EQUALS",
                "value": "8a19b63f74b9d6b10174bb3f17d10995",
                "linkingOperator": "AND",
                "groupNumber": 0
              }
            },
            {
              "encodedKey": "8a19b63f74b9d6b10174bb6646280a7a",
              "id": "745255722",
              "value": "dep 2 a",
              "score": "10",
              "constraint": {
                "encodedKey": "8a19b63f74b9d6b10174bb6646280a7b",
                "dataFieldType": "CUSTOM",
                "dataItemType": "CENTRE",
                "dataType": "STRING",
                "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
                "filterElement": "EQUALS",
                "value": "8a19b63f74b9d6b10174bb3f17d10996",
                "linkingOperator": "AND",
                "groupNumber": 0
              }
            },
            {
              "encodedKey": "8a19b63f74b9d6b10174bb6646280a7c",
              "id": "2093285980",
              "value": "dep 2 b",
              "score": "-5",
              "constraint": {
                "encodedKey": "8a19b63f74b9d6b10174bb66462a0a7d",
                "dataFieldType": "CUSTOM",
                "dataItemType": "CENTRE",
                "dataType": "STRING",
                "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
                "filterElement": "EQUALS",
                "value": "8a19b63f74b9d6b10174bb3f17d10996",
                "linkingOperator": "AND",
                "groupNumber": 0
              }
            }
          ],
          "viewRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb6646250a74",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a19b63f74b9d6b10174bb6646250a75",
            "isAccessibleByAllUsers": false,
            "roles": []
          },
          "unique": false
        },
        "value": "dep 2 a",
        "amount": "10",
        "indexInList": -1,
        "customFieldID": "cntr_cf_slct_2",
        "customFieldSetGroupIndex": 0
      }
    ]
  },
  {
    "encodedKey": "8a193c26722b51b701722d779e7122e1",
    "id": "MP1",
    "creationDate": "2020-05-19T15:05:23+0000",
    "lastModifiedDate": "2020-05-19T15:05:23+0000",
    "name": "Market Place",
    "state": "ACTIVE",
    "notes": "All clients and officers gather in the market to discuss loans and savings situation.",
    "assignedBranchKey": "8a193c26722b51b701722d779e7122df",
    "address": {
      "encodedKey": "8a193c26722b51b701722d77c25e22e3",
      "parentKey": "8a193c26722b51b701722d779e7122e1",
      "line1": "Hegyalja út 95.",
      "city": "Debrecen",
      "postcode": "4032",
      "indexInList": -1
    },
    "customFieldValues": []
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CentreApiV1]nonenone
» addressAddressApiV1nonenone
»» addressTypestringthe type of the address, eg. home, office. Deprecated.none
»» citystringthe citynone
»» countrystringthe countrynone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListintegerthe index of this address when there are multiple addresses assigned for a single entitynone
»» latitudenumberthe latitude of the address pointnone
»» line1stringthe first line of the addressnone
»» line2stringthe second line of the addressnone
»» longitudenumberthe longitude of the address pointnone
»» parentKeystringthe encoded key of the entity to whom this address belongs, for example, the client of groupnone
»» postcodestringthe postal (zip) code of the addressnone
»» regionstringthe region of the addressnone
»» toBeDeletedbooleanwhether this address is marked to be deletednone
» assignedBranchKeystringthe encoded key of the branch associated with this centrenone
» creationDatestringthe date on which this centre was creatednone
» customFieldValues[CustomFieldValueApiV1]nonenone
»» amountnumbernonenone
»» customFieldCustomFieldApiV1nonenone
»»» amountsobjectused when options available for a custom field definition translate to predefined amounts, for example, when the custom field value is used to generate a scorenone
»»»» additionalPropertiesnumbernonenone
»»» builtInCustomFieldIdstringif this field is one of the built in custom fiel definitions, this will have a value. These names are reserved and you can not use them for your own custom field definitionsnone
»»» creationDatestringthe date on which this custom field definition was creatednone
»»» customFieldProductSettings[CustomFieldLinkApiV1]nonenone
»»»» customFieldEncodedKeystringthe key to the parent custom field definitionnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isDefaultbooleanwhether this field is displayed by default when creating a new recordnone
»»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»»» linkTypestringthe type of entity this field represents a link tonone
»»»» productKeystringwhen the link type is product, this field should contain the encoded key of the linekd productnone
»»» customFieldSelectionOptions[CustomFieldSelectionApiV1][represents a possible selection for select type custom field definitions]none
»»»» constraintCustomFilterConstraintApiV1nonenone
»»»»» customFieldKeystringnonenone
»»»»» dataFieldTypestringnonenone
»»»»» dataFieldValuestringnonenone
»»»»» dataItemTypestringnonenone
»»»»» dataTypestringnonenone
»»»»» encodedKeystringnonenone
»»»»» filterElementstringnonenone
»»»»» groupNumbernumbernonenone
»»»»» indexnumbernonenone
»»»»» linkingOperatorstringnonenone
»»»»» secondValuestringnonenone
»»»»» valuestringnonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this selectable itemnone
»»»» scorenumberthe score assigned to this selectionnone
»»»» valuestringdisplay name of this optionnone
»»» customFieldSetCustomFieldSetApiV1nonenone
»»»» builtInTypestringif this set is part of the set of built-in custom field sets, its type will be shown herenone
»»»» createdDatestringthe date and time when this custom field set was creatednone
»»»» customFields[CustomFieldApiV1]an array of custom field definitions included in this custom field setnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this custom field setnone
»»»» indexInListnumberfor field sets that can be added to an entity more than once, this number represents the index in the list and is used when changing valuesnone
»»»» lastModifiedDatestringthe date on which this custom field set was last modifiednone
»»»» namestringthe name of this custom field setnone
»»»» notesstringany notes regarding this custom field setnone
»»»» typestringthe entity type that this custom field definition is attached tonone
»»»» usagestringwhether this custom field set can only be used once, or added multiple times to the same entitynone
»»» dataTypestringthe type of custom field definitionnone
»»» descriptionstringa brief description of this custom field definitionnone
»»» editRightsUsageRightsApiV1nonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isAccessibleByAllUsersbooleannonenone
»»»» roles[string]nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» idstringthe ID for this custom field definitionnone
»»» indexInListnumbernonenone
»»» isDefaultbooleanwhether this field will be included by default on new recordsnone
»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»» lastModifiedDatestringthe date on which this custom field definition was last modifiednone
»»» namestringthe name of this custom field definitionnone
»»» statestringwhether this field is available for use or has been deactivatednone
»»» typestringthe type of data this custom field definition will containnone
»»» uniquebooleanwhether the data in this custom field definition needs to be a unique valuenone
»»» validationPatternstringa user-provided pattern to which data in this custom field definition must conform where @ represents numbers, # represents letters and $ is either a number or letter. Other special characters used as separators are allowed, for example @@-##-$$$none
»»» valueLengthstringwhether this field needs to support a large number of charactersnone
»»» values[string]a list of possible values when the field is a selection fieldnone
»»» viewRightsUsageRightsApiV1nonenone
»» customFieldIDstringnonenone
»» customFieldKeystringnonenone
»» customFieldSetGroupIndexnumbernonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListnumbernonenone
»» linkedEntityKeyValuestringnonenone
»» parentKeystringnonenone
»» selectionKeystringnonenone
»» valuestringnonenone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» idstringthe user provided ID for this centrenone
» lastModifiedDatestringthe date on which this branch was last modifiednone
» meetingDaystringthe day of the week that this centre meets. This may have an impact when calculating repayment days or arrears periods for loans associated with this centrenone
» namestringthe name of the centrenone
» notesstringnotes associated with this centrenone
» statestringwhether this centre is activenone

Enumerated Values

PropertyValue
builtInCustomFieldIdMOBILE_PHONE
builtInCustomFieldIdEMAIL_ADDRESS
builtInCustomFieldIdGENDER
builtInCustomFieldIdMIDDLE_NAME
builtInCustomFieldIdHOME_PHONE
builtInCustomFieldIdBIRTHDATE
builtInCustomFieldIdLAST_NAME
builtInCustomFieldIdFIRST_NAME
linkTypeCLIENT_ROLE
linkTypeCHANNEL
linkTypePRODUCT
dataFieldTypeNATIVE
dataFieldTypeCUSTOM
dataItemTypeWRITTEN_OFF_LOANS
dataItemTypeLINE_OF_CREDIT
dataItemTypeINVESTOR_FUND
dataItemTypeTRANSACTION_DETAILS
dataItemTypeDOCUMENT_TEMPLATE
dataItemTypePRODUCT
dataItemTypeMCC_EXPIRATION
dataItemTypeCENTRE
dataItemTypeREPAYMENT_COLLECTION
dataItemTypeTASK
dataItemTypeOUTSTANDING_PORTFOLIO_AMOUNTS
dataItemTypeREVENUE
dataItemTypeCOMPOSED_TRANSACTIONS
dataItemTypeUNION_TRANSACTIONS
dataItemTypePRINCIPAL_PAYMENT_SETTINGS
dataItemTypeLOANS
dataItemTypeDISBURSEMENT_DETAILS
dataItemTypeSAVINGS_TRANSACTION
dataItemTypeIDENTIFICATION_DOCUMENT
dataItemTypeLOAN_PRODUCT
dataItemTypeDISBURSED_LOANS
dataItemTypeLOAN_GROUP
dataItemTypeTRANSACTION_CHANNEL
dataItemTypeCUSTOM_PREDEFINED_FEE
dataItemTypeJOURNAL_ENTRY
dataItemTypeATTACHMENT
dataItemTypePREDEFINED_FEE
dataItemTypeTRANCHE
dataItemTypeTRANSACTION
dataItemTypeINDEX_RATE_SOURCE
dataItemTypeGROUP_ROLE
dataItemTypeLOAN_TRANSACTION
dataItemTypeCLIENT_ROLE
dataItemTypeGROUP
dataItemTypeNOTIFICATION_MESSAGE
dataItemTypeOUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemTypeREPAYMENT
dataItemTypeLOAN_ACCOUNT_GUARANTY
dataItemTypeBRANCH
dataItemTypeCURRENCY
dataItemTypeCARD_TRANSACTION_REVERSAL
dataItemTypeINTEREST_PRODUCT_SETTINGS
dataItemTypeCREATED_ACCOUNTS
dataItemTypeUSER
dataItemTypeSAVINGS_PRODUCT
dataItemTypeCLIENT
dataItemTypePRODUCT_ARREARS_SETTINGS
dataItemTypeSAVINGS
dataItemTypeEXPENSE
dataItemTypeINDEX_RATE
dataItemTypeNOTIFICATION_TEMPLATE
dataItemTypeCUSTOM_FIELD_SELECTION
dataItemTypeACTIVITY
dataTypeENUM
dataTypeMONEY
dataTypeNUMBER
dataTypeDATE_UTC
dataTypeJAVA_BLOB
dataTypeOBJECT
dataTypeBOOLEAN
dataTypeDATE
dataTypePERCENT
dataTypeBIG_DECIMAL
dataTypeSTRING
dataTypeKEY
dataTypeLONG
filterElementSTARTS_WITH_CASE_SENSITIVE
filterElementTHIS_WEEK
filterElementEQUALS
filterElementSTARTS_WITH
filterElementIN
filterElementTODAY
filterElementTHIS_YEAR
filterElementBETWEEN
filterElementAFTER
filterElementLESS_THAN
filterElementDIFFERENT_THAN
filterElementTHIS_MONTH
filterElementNOT_EMPTY
filterElementBEFORE
filterElementEQUALS_CASE_SENSITIVE
filterElementLAST_DAYS
filterElementMORE_THAN
filterElementEMPTY
filterElementON
linkingOperatorOR
linkingOperatorAND
builtInTypeDETAILS
builtInTypeGENERAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
usageSINGLE
usageGROUPED
dataTypeGROUP_LINK
dataTypeDATE
dataTypeNUMBER
dataTypeCHECKBOX
dataTypeCLIENT_LINK
dataTypeSTRING
dataTypeUSER_LINK
dataTypeSELECTION
stateDEACTIVATED
stateNORMAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
valueLengthSHORT
valueLengthLONG
meetingDayWEDNESDAY
meetingDayMONDAY
meetingDayTHURSDAY
meetingDaySUNDAY
meetingDayTUESDAY
meetingDayFRIDAY
meetingDaySATURDAY
stateACTIVE
stateINACTIVE

Get Centre by ID

GET /centres/{centreId}

Get a centre

get details on a specific centre by ID

Parameters

NameTypeDescriptionIn
centreId (required)stringnonepath
fullDetailsbooleannonequery

Example Responses

200 : ok
a centre with basic details

{
  "encodedKey": "8a193c26722b51b701722d779e7122e1",
  "id": "MP1",
  "creationDate": "2020-05-19T15:05:23+0000",
  "lastModifiedDate": "2020-05-19T15:05:23+0000",
  "name": "Market Place",
  "state": "ACTIVE",
  "assignedBranchKey": "8a193c26722b51b701722d779e7122df"
}

200 : ok
a centre with full details

{
  "encodedKey": "8a193c26722b51b701722d779e7122e0",
  "id": "DT1",
  "creationDate": "2020-05-19T15:05:23+0000",
  "lastModifiedDate": "2020-09-23T14:38:14+0000",
  "name": "Down Town",
  "state": "ACTIVE",
  "notes": "some rich text notes about this centre",
  "meetingDay": "FRIDAY",
  "assignedBranchKey": "8a193c26722b51b701722d779e7122de",
  "address": {
    "encodedKey": "8a19b63f74b9d6b10174bb3fea5b09b3",
    "parentKey": "8a193c26722b51b701722d779e7122e0",
    "line1": "Chuffington House",
    "line2": "123 Main High Road",
    "city": "Big Town",
    "region": "Big Conglomeration",
    "postcode": "123 456",
    "country": "Countrystan",
    "indexInList": -1
  },
  "customFieldValues": [
    {
      "encodedKey": "8a19b63f74b9d6b10174bb3f856b09a6",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb3d56f20974",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb3d56f20974",
        "id": "centre_cf_1",
        "creationDate": "2020-09-23T13:53:13+0000",
        "lastModifiedDate": "2020-09-23T14:27:10+0000",
        "name": "cf 1",
        "type": "CENTRE_INFO",
        "dataType": "STRING",
        "valueLength": "LONG",
        "isDefault": false,
        "isRequired": false,
        "description": "A text custom field definition for a centre",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
          "id": "_centres_custom_field_set",
          "name": "custom field set",
          "notes": "Custom field definitions for centre",
          "createdDate": "2020-09-23T13:52:45+0000",
          "lastModifiedDate": "2020-09-23T13:52:45+0000",
          "indexInList": 0,
          "type": "CENTRE_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 0,
        "state": "NORMAL",
        "customFieldSelectionOptions": [],
        "validationPattern": "@#$",
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3d56f20975",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3d56f20976",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": true,
        "values": [],
        "amounts": {}
      },
      "value": "custom field value for cf 1",
      "indexInList": -1,
      "customFieldID": "centre_cf_1",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19b63f74b9d6b10174bb3f856b09a8",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb3d56f20977",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb3d56f20977",
        "id": "cntr_cf_2",
        "creationDate": "2020-09-23T13:53:41+0000",
        "lastModifiedDate": "2020-09-23T13:53:41+0000",
        "name": "centre cf 2",
        "type": "CENTRE_INFO",
        "dataType": "CHECKBOX",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "a checkbox custom field definition for a centre",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
          "id": "_centres_custom_field_set",
          "name": "custom field set",
          "notes": "Custom field definitions for centre",
          "createdDate": "2020-09-23T13:52:45+0000",
          "lastModifiedDate": "2020-09-23T13:52:45+0000",
          "indexInList": 0,
          "type": "CENTRE_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 1,
        "state": "NORMAL",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3d56f20978",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b70979",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "value": "FALSE",
      "indexInList": -1,
      "customFieldID": "cntr_cf_2",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19b63f74b9d6b10174bb3f856b09aa",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb3dc2b7097b",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097b",
        "id": "cntr_cf_Grp_1",
        "creationDate": "2020-09-23T13:54:31+0000",
        "lastModifiedDate": "2020-09-23T13:54:31+0000",
        "name": "cf grp 1",
        "type": "CENTRE_INFO",
        "dataType": "NUMBER",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "a number custom field definition",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
          "id": "_cntr_cf_grp",
          "name": "cf grouped",
          "notes": "grouped centre custom field definitions",
          "createdDate": "2020-09-23T13:54:05+0000",
          "lastModifiedDate": "2020-09-23T13:54:05+0000",
          "indexInList": 1,
          "type": "CENTRE_INFO",
          "usage": "GROUPED"
        },
        "indexInList": 0,
        "state": "NORMAL",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097c",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097d",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "value": "12",
      "indexInList": -1,
      "customFieldID": "cntr_cf_Grp_1",
      "customFieldSetGroupIndex": 0
    },
    {
      "encodedKey": "8a19b63f74b9d6b10174bb3fea5b09b1",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb3f17d10992",
        "id": "cntr_cf_grp_2",
        "creationDate": "2020-09-23T13:55:08+0000",
        "lastModifiedDate": "2020-09-23T13:57:45+0000",
        "name": "centre cf grp 2",
        "type": "CENTRE_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "a selection custom field definition for centres",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
          "id": "_cntr_cf_grp",
          "name": "cf grouped",
          "notes": "grouped centre custom field definitions",
          "createdDate": "2020-09-23T13:54:05+0000",
          "lastModifiedDate": "2020-09-23T13:54:05+0000",
          "indexInList": 1,
          "type": "CENTRE_INFO",
          "usage": "GROUPED"
        },
        "indexInList": 1,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a19b63f74b9d6b10174bb3f17d10995",
            "id": "1341939373",
            "value": "option 1",
            "score": "10"
          },
          {
            "encodedKey": "8a19b63f74b9d6b10174bb3f17d10996",
            "id": "414828471",
            "value": "option 2",
            "score": "-15"
          }
        ],
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3f17d10993",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb3f17d10994",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "unique": false,
        "values": [
          "option 1",
          "option 2"
        ],
        "amounts": {
          "option 1": "10",
          "option 2": "-15"
        }
      },
      "value": "option 2",
      "amount": "-15",
      "indexInList": -1,
      "customFieldID": "cntr_cf_grp_2",
      "customFieldSetGroupIndex": 0
    },
    {
      "encodedKey": "8a19b63f74b9d6b10174bb5405830a67",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb5405830a64",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb5405830a64",
        "id": "cntr_cf_usr_lnk",
        "creationDate": "2020-09-23T14:18:00+0000",
        "lastModifiedDate": "2020-09-23T14:18:00+0000",
        "name": "user link for centre",
        "type": "CENTRE_INFO",
        "dataType": "USER_LINK",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "a custom field definition linking to a specific user",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bad54f21066c",
          "id": "_centres_custom_field_set",
          "name": "custom field set",
          "notes": "Custom field definitions for centre",
          "createdDate": "2020-09-23T13:52:45+0000",
          "lastModifiedDate": "2020-09-23T13:52:45+0000",
          "indexInList": 0,
          "type": "CENTRE_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 2,
        "state": "NORMAL",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb5405830a65",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb5405830a66",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "linkedEntityKeyValue": "8a19df0e730ee86f01730f4c3cf2074a",
      "indexInList": -1,
      "customFieldID": "cntr_cf_usr_lnk",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19b63f74b9d6b10174bb66462a0a7e",
      "parentKey": "8a193c26722b51b701722d779e7122e0",
      "customFieldKey": "8a19b63f74b9d6b10174bb6646250a73",
      "customField": {
        "encodedKey": "8a19b63f74b9d6b10174bb6646250a73",
        "id": "cntr_cf_slct_2",
        "creationDate": "2020-09-23T14:37:56+0000",
        "lastModifiedDate": "2020-09-23T14:37:56+0000",
        "name": "centre cf select 2",
        "type": "CENTRE_INFO",
        "dataType": "SELECTION",
        "valueLength": "LONG",
        "isDefault": false,
        "isRequired": false,
        "description": "a custom field definition in which the options available are dependent on another field",
        "customFieldSet": {
          "encodedKey": "8a19b63f74b9d6b10174bb3dc2b7097a",
          "id": "_cntr_cf_grp",
          "name": "cf grouped",
          "notes": "grouped centre custom field definitions",
          "createdDate": "2020-09-23T13:54:05+0000",
          "lastModifiedDate": "2020-09-23T13:54:05+0000",
          "indexInList": 1,
          "type": "CENTRE_INFO",
          "usage": "GROUPED"
        },
        "indexInList": 2,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a19b63f74b9d6b10174bb6646250a76",
            "id": "996554077",
            "value": "dep 1 a",
            "score": "12",
            "constraint": {
              "encodedKey": "8a19b63f74b9d6b10174bb6646250a77",
              "dataFieldType": "CUSTOM",
              "dataItemType": "CENTRE",
              "dataType": "STRING",
              "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
              "filterElement": "EQUALS",
              "value": "8a19b63f74b9d6b10174bb3f17d10995",
              "linkingOperator": "AND",
              "groupNumber": 0
            }
          },
          {
            "encodedKey": "8a19b63f74b9d6b10174bb6646280a78",
            "id": "656383934",
            "value": "dep 1 b",
            "score": "-3",
            "constraint": {
              "encodedKey": "8a19b63f74b9d6b10174bb6646280a79",
              "dataFieldType": "CUSTOM",
              "dataItemType": "CENTRE",
              "dataType": "STRING",
              "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
              "filterElement": "EQUALS",
              "value": "8a19b63f74b9d6b10174bb3f17d10995",
              "linkingOperator": "AND",
              "groupNumber": 0
            }
          },
          {
            "encodedKey": "8a19b63f74b9d6b10174bb6646280a7a",
            "id": "745255722",
            "value": "dep 2 a",
            "score": "10",
            "constraint": {
              "encodedKey": "8a19b63f74b9d6b10174bb6646280a7b",
              "dataFieldType": "CUSTOM",
              "dataItemType": "CENTRE",
              "dataType": "STRING",
              "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
              "filterElement": "EQUALS",
              "value": "8a19b63f74b9d6b10174bb3f17d10996",
              "linkingOperator": "AND",
              "groupNumber": 0
            }
          },
          {
            "encodedKey": "8a19b63f74b9d6b10174bb6646280a7c",
            "id": "2093285980",
            "value": "dep 2 b",
            "score": "-5",
            "constraint": {
              "encodedKey": "8a19b63f74b9d6b10174bb66462a0a7d",
              "dataFieldType": "CUSTOM",
              "dataItemType": "CENTRE",
              "dataType": "STRING",
              "customFieldKey": "8a19b63f74b9d6b10174bb3f17d10992",
              "filterElement": "EQUALS",
              "value": "8a19b63f74b9d6b10174bb3f17d10996",
              "linkingOperator": "AND",
              "groupNumber": 0
            }
          }
        ],
        "viewRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb6646250a74",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b63f74b9d6b10174bb6646250a75",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false
      },
      "value": "dep 2 a",
      "amount": "10",
      "indexInList": -1,
      "customFieldID": "cntr_cf_slct_2",
      "customFieldSetGroupIndex": 0
    }
  ]
}

Responses

StatusMeaningDescriptionSchema
200OKokCentreApiV1

Update Custom Info for Centre

PATCH /centres/{centreId}/custominformation

Update custom field values for a centre

Update custom field values

Example requests

Update a single custom field value

{
  "customInformation": [
    {
      "customFieldID": "custom_field_2",
      "value": "3"
    }
  ]
}

Update a field in a group

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field",
      "value": "new value",
      "customFieldSetGroupIndex": "0"
    }
  ]
}

Update multiple custom field values

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field_2",
      "value": "3",
      "customFieldSetGroupIndex": "0"
    },
    {
      "customFieldID": "field_3",
      "value": "divorced"
    }
  ]
}

Parameters

NameTypeDescriptionIn
customInformation[object]nonebody
» customFieldID (required)stringnonebody
» value (required)stringnonebody
» customFieldSetGroupIndexstringRequired if field to update is part of a group, if the Field Set Group Index is not set, a new group will be created with the value provided.body
centreId (required)stringThe ID of the centrepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Custom Info for Centre

GET /centres/{centreId}/custominformation/{customFieldId}

Get a custom field definition for a centre

Allows retrieving a custom field definition for a given centre directly by the ID/key of the centre and the ID/key of the custom field definition.

Parameters

NameTypeDescriptionIn
centreId (required)stringThe ID of the centre.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
A custom field definition

[
  {
    "encodedKey": "8a19cd6f74674df9017467f25aab02c6",
    "parentKey": "8a193c26722b51b701722d779e7122de",
    "customFieldKey": "8a19cd6f74674df9017467ef8e6802af",
    "customField": {
      "encodedKey": "8a19cd6f74674df9017467ef8e6802af",
      "id": "cf_centre",
      "creationDate": "2020-09-07T09:42:33+0000",
      "lastModifiedDate": "2020-09-07T09:42:33+0000",
      "name": "Example Custom Field Definition",
      "type": "BRANCH_INFO",
      "dataType": "CHECKBOX",
      "valueLength": "SHORT",
      "isDefault": false,
      "isRequired": false,
      "description": "an example of a checkbox custom field definition",
      "customFieldSet": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802ae",
        "id": "_example_centre_custom_field_set",
        "name": "example centre custom field set",
        "notes": "example custom field set",
        "createdDate": "2020-09-07T09:41:50+0000",
        "lastModifiedDate": "2020-09-07T09:41:50+0000",
        "indexInList": 2,
        "type": "BRANCH_INFO",
        "usage": "SINGLE"
      },
      "indexInList": 0,
      "state": "NORMAL",
      "customFieldSelectionOptions": [],
      "viewRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b0",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "editRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b1",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "unique": false,
      "values": [],
      "amounts": {}
    },
    "value": "TRUE",
    "indexInList": -1,
    "customFieldID": "cf_centre",
    "customFieldSetGroupIndex": -1
  }
]

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCustomFieldApiV1
404Not FoundNot FoundInline

Response Schema

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Custom Field Value for Centre

PATCH /centres/{centreId}/custominformation/{customFieldId}

Update a custom field value for a centre

Update a custom field value for a centre custom field definition

Example Requests

Update the custom field value

{
  "value": "New custom field value"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
centreId (required)stringThe ID of the centre.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Custom Field Value for Centre

DELETE /centres/{centreId}/custominformation/{customFieldId}

Delete Custom Field Value

Delete a single custom field value

Parameters

NameTypeDescriptionIn
centreId (required)stringThe ID of the centre.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Custom Info (grouped) for Centre

PATCH /centres/{centreId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Update grouped custom field value

Update custom field value, which is part of a group

Example Requests

Update custom field value

{
  "value": "New grouped custom field value"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
centreId (required)stringThe ID of the centrepath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
wrong group index provided

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
field not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Custom Info (grouped) for Centre

DELETE /centres/{centreId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Delete grouped custom field value

Delete a custom field value, which is part of a group

Parameters

NameTypeDescriptionIn
centreId (required)stringThe ID of the centrepath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Comments for Centre

GET /centres/{centreId}/comments

Get all centre comments

get all comments for a centre

Parameters

NameTypeDescriptionIn
limitstringnonequery
offsetstringnonequery
centreId (required)stringthe ID of the centrepath

Example Responses

200 : OK
an array of comments

[
  {
    "encodedKey": "8a19b7057471f4af017472dc0fd80470",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "creationDate": "2020-09-09T14:24:42+0000",
    "lastModifiedDate": "2020-09-09T14:24:42+0000",
    "text": "aanother afmaefomaef<div><br /></div><div><u>aefaefaf</u></div><div><u><br /></u></div><div><u>afaef</u></div>"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c8bf25ab",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "text": "Should suggest she apply for the agriculture loan given the nature of their business"
  }
]

400 : Bad Request
bad centre ID

{
  "returnCode": 149,
  "returnStatus": "INVALID_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CommentApiV1]nonenone
» creationDatestring(date-time)the date and time at which this comment was addednone
» encodedKeystringa unique key for this commentnone
» lastModifiedDatestring(date-time)the date and time at which this comment was last modifiednone
» parentKeystringthe unique key of the parent object for this comment, for example, the client or loan account to which it relatesnone
» textstringthe text of the comment as a string, must be properly JSON escpaped if it contains special charactersnone
» userKeystringthe unique key of the user who created the commentnone

Create Comment for Centre

POST /centres/{centreId}/comments

Create a centre Comment

create new comment for a centre

Example Requests

a comment

{
  "comment": {
    "text": "this is a comment with \" \" all kinds of : \\ / \"non compliant\" stuff & = which has been JSON escaped"
  }
}

Parameters

NameTypeDescriptionIn
commentobjectan object contining the commentbody
» textstringtext of the comment to be added. if adding complex content make sure it is properly JSON encoded before making your requestbody
centreId (required)stringthe ID of the centrepath

Example Responses

200 : OK
a comment

{
  "encodedKey": "8a19c34574720f9e0174734a039f06e2",
  "parentKey": "8a193c26722b51b701722d77c5e423b7",
  "userKey": "8a194075720ece2c017226fced6f005e",
  "creationDate": "2020-09-09T14:39:36+0000",
  "lastModifiedDate": "2020-09-09T14:39:36+0000",
  "text": "this is a comment with \" \" all kinds of : \\ / non compliant stuff & = which has been JSON escaped"
}

400 : Bad Request
extra parameters in the request

{
  "returnCode": 27,
  "returnStatus": "PARAMETER_NOT_ALLOWED"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCommentApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Documents for Centre

GET /centres/{centreId}/documents

Get documents for centre

Get all documents for a given centre

Parameters

NameTypeDescriptionIn
offsetintegeroffset results. use with limit parameter to achieve pagingquery
limitintegermax number of records to returnquery
centreId (required)stringThe Id of the centrepath

Example Responses

200 : ok
an array of documents

[
  {
    "encodedKey": "8a19c035747bf5b901747c5bfb04014b",
    "id": 51,
    "creationDate": "2020-09-11T08:52:48+0000",
    "lastModifiedDate": "2020-09-11T08:52:48+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "CENTRE",
    "name": "covid rules",
    "type": "png",
    "fileSize": 8258,
    "originalFilename": "Screenshot_2020-04-22_at_14.31.29.png",
    "location": "BRSIDSLFBOGAYZKUUKCOGGQEDOSEOD",
    "description": "some guidelines regarding covid",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "big chief"
  },
  {
    "encodedKey": "8a19a3337476f2d00174775b6a3001ae",
    "id": 43,
    "creationDate": "2020-09-10T09:31:54+0000",
    "lastModifiedDate": "2020-09-10T09:31:54+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "CENTRE",
    "name": "centre doc",
    "type": "png",
    "fileSize": 32109,
    "originalFilename": "clients_duplicate_id.png",
    "location": "JRTBQGGVXFQRQRBDGBRWQCTXJNRWXP",
    "description": "centre doc desc",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "big chief"
  }
]

400 : Bad Request
bad centre ID

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "wrong owner id"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[DocumentApiV1]nonenone
» createdByUserKeystringthe encoded key of the user who added this documentnone
» creationDatestringthe date and time when this document was creatednone
» descriptionstringa description of this documentnone
» documentHolderKeystringthe encoded key of the entity to which this document is attachednone
» documentHolderTypestringthe type of entity, eg. client, loan product, to which this document is attachednone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» fileSizenumberthe size, in bytes, of the attached documentnone
» idnumberan ID for this documentnone
» lastModifiedDatestringthe date on which this document was last modifiednone
» locationstringindicates where the document is savednone
» namestringthe display name of this documentnone
» originalFilenamestringthe name of the originally uploaded filenone
» typestringthe file type of the document, eg. png, jpeg, pdfnone
» userNamestringthe name of the user who uploaded the documentnone

Enumerated Values

PropertyValue
documentHolderTypeBRANCH
documentHolderTypeLOAN_ACCOUNT
documentHolderTypeGROUP
documentHolderTypeDEPOSIT_ACCOUNT
documentHolderTypeLINE_OF_CREDIT
documentHolderTypeLOAN_PRODUCT
documentHolderTypeGL_JOURNAL_ENTRY
documentHolderTypeSAVINGS_PRODUCT
documentHolderTypeUSER
documentHolderTypeCLIENT
documentHolderTypeCENTRE
documentHolderTypeID_DOCUMENT

Create Document for Centre

POST /centres/{centreId}/documents

Attach new Document to a centre

Attach a new document to a centre

Example Requests

a document to uplaod

{
  "document": {
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "CENTRE",
    "name": "some image",
    "type": "png",
    "description": "this is an image file"
  },
  "documentContent": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAF0CAYAAACudHRvAAABQGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASS=="
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new document to be attached to an entitybody
centreId (required)stringThe Id of the centrepath

Example Responses

201 : Created
uploaded document details

{
  "encodedKey": "8a19c035747bf5b901747c5bfb04014d",
  "id": 52,
  "creationDate": "2020-09-11T08:54:53+0000",
  "lastModifiedDate": "2020-09-11T08:54:53+0000",
  "documentHolderKey": "8a193c26722b51b701722d779e7122df",
  "documentHolderType": "CENTRE",
  "name": "some image",
  "type": "png",
  "fileSize": 32109,
  "originalFilename": "some_image.png",
  "location": "RCPOUIUHJFBYDRURQNNHMOGBEFIOQF",
  "description": "this is an image file",
  "createdByUserKey": "8a194075720ece2c017226fced6f005e"
}

400 : Bad Request
filetype provided does not match actual file type

{
  "returnCode": 973,
  "returnStatus": "INCONSISTENT_EXTENSION_WITH_FILE_CONTENT",
  "errorSource": "Invalid extension with file content"
}

Responses

StatusMeaningDescriptionSchema
201CreatedCreatedDocumentApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Get Document for Centre by ID

GET /centres/{centreId}/documents/{documentId}

Get a centre Document

Get a specific document attached to a centre

Parameters

NameTypeDescriptionIn
centreId (required)stringthe ID of the centrepath
documentId (required)stringthe ID of the documentpath

Example Responses

200 : OK
base64 encoded document

"iVBORw0KGgoAAAANSUhEUgAAAEAAAAA9CAYAAAAd1W/BAAAMY2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdck0cbv3dkkrACEZAR9hJFZgAZIawIAjIFUQlJIGHEmBBE3NRSBesWUZxoVUTRagWkDkSssyhu6yiKqFRqsYoLle8yoNZ+4/c9v9+993+fe+7/jNzlvQNAr5Mvk+Wj+gAUSAvlCZGhrElp6SzSI4ABU0ADtsCTL1DIOPHxMQDKUP93eX0DIKr+qpuK65/j/1UMhSKFAAAkA=="

400 : Bad Request
bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKstring
400Bad RequestBad RequestExecutionStatusApiV1

Delete Document for Centre

DELETE /centres/{centreId}/documents/{documentId}

Delete a centre Document

Delete a document attached to a centre

Parameters

NameTypeDescriptionIn
centreId (required)stringthe ID of the centrepath
documentId (required)stringthe ID of the documentpath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Client Types

Retrieves all the client types in the organization.

Get Client Types

GET /clienttypes

List client types

Get a list of client types in JSON format.

Parameters

NameTypeDescriptionIn
forstringFilters client types.query

Enumerated Values

ParameterValue
forCLIENTS
forGROUPS

Example Responses

200 : ok
a list of client types

[
  {
    "encodedKey": "8a3e435149cd61eb0149cd74b1cb003b",
    "name": "Client",
    "id": "client",
    "clientType": "CLIENT",
    "creationDate": "2014-11-20T13:46:57+0000",
    "canOpenAccounts": true,
    "canGuarantee": true,
    "requireID": false,
    "index": -1
  },
  {
    "encodedKey": "8a0ca02a4ba46b0d014ba74fc5a30c00",
    "name": "Power of Attorney holders",
    "id": "Power",
    "clientType": "CLIENT",
    "creationDate": "2015-02-20T14:06:38+0000",
    "createdByUserKey": "8a8603b4497abb2101497b6c59cc0b33",
    "canOpenAccounts": false,
    "canGuarantee": false,
    "requireID": false,
    "index": 2147483647
  },
  {
    "encodedKey": "8a3edf494b25cedc014b2661f6d300b9",
    "name": "Guarantor",
    "id": "Guarantor",
    "clientType": "CLIENT",
    "creationDate": "2015-01-26T13:15:29+0000",
    "createdByUserKey": "8a8603b4497abb2101497b6c59cc0b33",
    "canOpenAccounts": false,
    "canGuarantee": true,
    "requireID": true,
    "index": 2147483647
  },
  {
    "encodedKey": "8a3e435149cd61eb0149cd74b9560044",
    "name": "Group",
    "id": "group",
    "clientType": "GROUP",
    "creationDate": "2014-11-20T13:46:59+0000",
    "canOpenAccounts": true,
    "canGuarantee": false,
    "requireID": false,
    "index": -1
  }
]

400 : Bad Request
bad filter value

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "invalid for parameter"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ClientRoleFullApiV1][the type of client or group as defined in Mambu in Administration > General Settings > Client Types]none
» canGuarantee (required)booleanwhether this client type can guarantee loansnone
» canOpenAccounts (required)booleanwhether this client type can open accountsnone
» clientType (required)stringwhich entity this type is valid for, either CLIENT or GROUPnone
» createdByUserKeystringif this client type was not one of the defaults provided by Mambu the encoded key of the user who created it will be displayed herenone
» creationDate (required)string(date-time)timestamp of when this group was creatednone
» descriptionstringdescription of this client type as provided through the Mambu UInone
» encodedKey (required)stringa unique ID for this client typenone
» id (required)stringthe machine-readable ID for this client typenone
» idPatternstringthe pattern used to generate IDs for clients of this type, @ represents a random letter, # indicates a random number, $ represents a random letter or numbernone
» index (required)numberif more than one role is assigned to this client, for example, if they are members of multiple groups, this number represents the index in the listnone
» name (required)stringthe human-readable name of this client typenone
» requireID (required)booleanwhether ID is required for this client typenone
» useDefaultAddress (required)booleanwhether an address can be associated with clients of this typenone

Enumerated Values

PropertyValue
clientTypeGROUP
clientTypeCLIENT

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Clients

Allows you to view, create and update clients. Clients may have associated information such as their address, custom field values, or identification documents. It's also possible to search for clients using information such as as their names or identification documents.

Get Client's Custom Views with basic details

GET /clients?resultType=BASIC&viewfilter={viewfilter}

Get Client's Custom Views with basic details

get view filters for a client with basic details

Parameters

NameTypeDescriptionIn
branchIdstringnonequery
offsetstringnonequery
limitstringnonequery
resultTypestringnonequery
viewfilter (required)stringnonepath

Example Responses

200 Response

[
  {
    "activationDate": "string",
    "approvedDate": "string",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "string",
    "clientRole": {
      "encodedKey": "string"
    },
    "closedDate": "string",
    "creationDate": "string",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idPattern": "string",
    "lastModifiedDate": "string",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "mobilePhone1": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalPreferences": {
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "lastLoggedInDate": "string",
      "password": "string",
      "portalState": "DISABLED"
    },
    "preferredLanguage": "PORTUGESE",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ClientApiV1]nonenone
» activationDatestringthe date when the client was set to active, ie. an active account was created for themnone
» approvedDatestringthe date when the client was approvednone
» assignedBranchKeystringthe encoded key of the client's branchnone
» assignedCentreKeystringthe encoded key of the client's assigned centrenone
» assignedUserKeystringthe encoded key of the Mambu user associated with this client, eg. their credit officernone
» birthDatestringthe date of birth of this clientnone
» clientRoleClientRoleBasicApiV1the type of client or group as defined in Mambu in Administration > General Settings > Client Typesnone
»» encodedKeystringthe automatically generated encoded ID for this client or group typenone
» closedDatestringthe date when the client was exited or blacklistednone
» creationDatestringthe date on which this client record was creatednone
» emailAddressstringthe email address of the clientnone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» firstNamestringthe first name of the clientnone
» genderstringthe client's gendernone
» groupLoanCyclenumberif this client is a member of a group, this number will increase by 1 each time they successfully close a loan as fully paidnone
» homePhonestringa home contact number for this clientnone
» idstringthe ID for this clientnone
» idPatternstringthe pattern that is used to generate the client IDnone
» lastModifiedDatestringthe date on which this client record was last modifiednone
» lastNamestringthe last name of this clientnone
» loanCyclenumberthe number of loans this client has opened and closed as fully paid as an individualnone
» middleNamestringany middle names for this clientnone
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» mobilePhone1stringa mobile contact number for this clientnone
» mobilePhone2stringanother mobile contact number for this clientnone
» notesstringany rich text notes about this clientnone
» portalPreferencesPortalPreferencesApiV1nonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» lastLoggedInDatestringnonenone
»» passwordstringnonenone
»» portalStatestringnonenone
» preferredLanguagestringthe language which should be used when communicating with this clientnone
» profilePictureKeystringthe encoded key of this user's proficle picturenone
» profileSignatureKeystringthe encoded key of the digital copy of this client's signaturenone
» statestringthe current state of this clientnone

Enumerated Values

PropertyValue
genderMALE
genderFEMALE
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
portalStateDISABLED
portalStateENABLED
preferredLanguagePORTUGESE
preferredLanguageRUSSIAN
preferredLanguageROMANIAN
preferredLanguageENGLISH
preferredLanguageSPANISH
preferredLanguageGEORGIAN
preferredLanguageBURMESE
preferredLanguagePHRASE
preferredLanguageCHINESE
preferredLanguageFRENCH
preferredLanguageINDONESIAN
statePENDING_APPROVAL
stateACTIVE
stateINACTIVE
stateEXITED
stateBLACKLISTED
stateREJECTED

Get Client's Custom Views

GET /clients?resultType=FULL_DETAILS&viewfilter={viewfilter}

Get Client's Custom Views

get view filters for a client with full details

Parameters

NameTypeDescriptionIn
branchIdstringnonequery
offsetstringnonequery
limitstringnonequery
resultTypestringnonequery
viewfilter (required)stringnonepath

Example Responses

200 Response

[
  {
    "addresses": [
      {
        "addressType": "string",
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string",
        "toBeDeleted": true
      }
    ],
    "centreId": "string",
    "client": {
      "activationDate": "string",
      "approvedDate": "string",
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "birthDate": "string",
      "clientRole": {
        "encodedKey": "string"
      },
      "closedDate": "string",
      "creationDate": "string",
      "emailAddress": "string",
      "encodedKey": "string",
      "firstName": "string",
      "gender": "MALE",
      "groupLoanCycle": 0,
      "homePhone": "string",
      "id": "string",
      "idPattern": "string",
      "lastModifiedDate": "string",
      "lastName": "string",
      "loanCycle": 0,
      "middleName": "string",
      "migrationEvent": {
        "creationDate": "2019-08-24T14:15:22Z",
        "encodedKey": "string",
        "numCentresImported": 0,
        "numClientsImported": 0,
        "numGLAccountsImported": 0,
        "numGroupsImported": 0,
        "numLoanRepaymentsImported": 0,
        "numLoanTransactionsImported": 0,
        "numLoansImported": 0,
        "numSavingsImported": 0,
        "state": "REVERTED",
        "type": "IMPORT"
      },
      "mobilePhone1": "string",
      "mobilePhone2": "string",
      "notes": "string",
      "portalPreferences": {
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "lastLoggedInDate": "string",
        "password": "string",
        "portalState": "DISABLED"
      },
      "preferredLanguage": "PORTUGESE",
      "profilePictureKey": "string",
      "profileSignatureKey": "string",
      "state": "PENDING_APPROVAL"
    },
    "clientTypeId": "string",
    "customInformation": [
      {
        "amount": 0,
        "customField": {
          "amounts": {
            "property1": 0,
            "property2": 0
          },
          "builtInCustomFieldId": "MOBILE_PHONE",
          "creationDate": "string",
          "customFieldProductSettings": [
            {
              "customFieldEncodedKey": "string",
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "isDefault": true,
              "isRequired": true,
              "linkType": "CLIENT_ROLE",
              "productKey": "string"
            }
          ],
          "customFieldSelectionOptions": [
            {
              "constraint": {
                "customFieldKey": "string",
                "dataFieldType": "NATIVE",
                "dataFieldValue": "string",
                "dataItemType": "WRITTEN_OFF_LOANS",
                "dataType": "ENUM",
                "encodedKey": "string",
                "filterElement": "STARTS_WITH_CASE_SENSITIVE",
                "groupNumber": 0,
                "index": 0,
                "linkingOperator": "OR",
                "secondValue": "string",
                "value": "string"
              },
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "id": "string",
              "score": 0,
              "value": "string"
            }
          ],
          "customFieldSet": {
            "builtInType": "DETAILS",
            "createdDate": "string",
            "customFields": [
              {}
            ],
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "indexInList": 0,
            "lastModifiedDate": "string",
            "name": "string",
            "notes": "string",
            "type": "USER_INFO",
            "usage": "SINGLE"
          },
          "dataType": "GROUP_LINK",
          "description": "string",
          "editRights": {
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isAccessibleByAllUsers": true,
            "roles": [
              "string"
            ]
          },
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "id": "string",
          "indexInList": 0,
          "isDefault": true,
          "isRequired": true,
          "lastModifiedDate": "string",
          "name": "string",
          "state": "DEACTIVATED",
          "type": "USER_INFO",
          "unique": true,
          "validationPattern": "string",
          "valueLength": "SHORT",
          "values": [
            "string"
          ],
          "viewRights": {
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isAccessibleByAllUsers": true,
            "roles": [
              "string"
            ]
          }
        },
        "customFieldID": "string",
        "customFieldKey": "string",
        "customFieldSetGroupIndex": 0,
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "indexInList": 0,
        "linkedEntityKeyValue": "string",
        "parentKey": "string",
        "selectionKey": "string",
        "value": "string"
      }
    ],
    "groupKeys": [
      "string"
    ],
    "idDocuments": [
      {
        "clientKey": "string",
        "documentId": "string",
        "documentType": "string",
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "identificationDocumentTemplateKey": "string",
        "indexInList": 0,
        "issuingAuthority": "string",
        "toBeDeleted": true,
        "validUntil": "string",
        "validUntilDTOdate": {
          "dayOfMonth": 0,
          "monthOfYear": 0,
          "year": 0
        }
      }
    ],
    "notificationTemplates": [
      {
        "activated": true,
        "authorization": "NO_AUTHORIZATION",
        "contentType": "PLAIN_TEXT",
        "creationDate": "string",
        "customFilter": {
          "customConfigurationInfo": {
            "creationDate": "string",
            "dataViewType": "PORTAL_ACCOUNT_TRANSACTION",
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "indexInList": 0,
            "lastModifiedDate": "string",
            "name": "string",
            "shared": true,
            "userKey": "string"
          },
          "encodedKey": "string",
          "filterConstraints": [
            {
              "customFieldKey": "string",
              "dataFieldType": "NATIVE",
              "dataFieldValue": "string",
              "dataItemType": "WRITTEN_OFF_LOANS",
              "dataType": "ENUM",
              "encodedKey": "string",
              "filterElement": "STARTS_WITH_CASE_SENSITIVE",
              "groupNumber": 0,
              "index": 0,
              "linkingOperator": "OR",
              "secondValue": "string",
              "value": "string"
            }
          ]
        },
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "event": "LOAN_CREATED",
        "isInUse": true,
        "lastModifiedDate": "string",
        "name": "string",
        "option": "OPT_IN",
        "recipient": {
          "customField": {
            "amounts": {
              "property1": 0,
              "property2": 0
            },
            "builtInCustomFieldId": "MOBILE_PHONE",
            "creationDate": "string",
            "customFieldProductSettings": [
              {
                "customFieldEncodedKey": "string",
                "encodedKey": "8a19b7057471f4af017472dc0fd80472",
                "isDefault": true,
                "isRequired": true,
                "linkType": "CLIENT_ROLE",
                "productKey": "string"
              }
            ],
            "customFieldSelectionOptions": [
              {
                "constraint": {
                  "customFieldKey": "string",
                  "dataFieldType": "NATIVE",
                  "dataFieldValue": "string",
                  "dataItemType": "WRITTEN_OFF_LOANS",
                  "dataType": "ENUM",
                  "encodedKey": "string",
                  "filterElement": "STARTS_WITH_CASE_SENSITIVE",
                  "groupNumber": 0,
                  "index": 0,
                  "linkingOperator": "OR",
                  "secondValue": "string",
                  "value": "string"
                },
                "encodedKey": "8a19b7057471f4af017472dc0fd80472",
                "id": "string",
                "score": 0,
                "value": "string"
              }
            ],
            "customFieldSet": {
              "builtInType": "DETAILS",
              "createdDate": "string",
              "customFields": [
                {}
              ],
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "id": "string",
              "indexInList": 0,
              "lastModifiedDate": "string",
              "name": "string",
              "notes": "string",
              "type": "USER_INFO",
              "usage": "SINGLE"
            },
            "dataType": "GROUP_LINK",
            "description": "string",
            "editRights": {
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "isAccessibleByAllUsers": true,
              "roles": [
                "string"
              ]
            },
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "indexInList": 0,
            "isDefault": true,
            "isRequired": true,
            "lastModifiedDate": "string",
            "name": "string",
            "state": "DEACTIVATED",
            "type": "USER_INFO",
            "unique": true,
            "validationPattern": "string",
            "valueLength": "SHORT",
            "values": [
              "string"
            ],
            "viewRights": {
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "isAccessibleByAllUsers": true,
              "roles": [
                "string"
              ]
            }
          },
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "groupRole": {
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "name": "string"
          },
          "recipientType": "CREDIT_OFFICER"
        },
        "requestType": "HEAD",
        "subject": "string",
        "targetType": "LOANS",
        "template": "string",
        "topic": "string",
        "trigger": "AUTOMATIC",
        "triggerDays": 0,
        "type": "EVENT_STREAM",
        "url": "string",
        "username": "string"
      }
    ]
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ClientExpandedApiV1]nonenone
» addresses[AddressApiV1]addresses associated with this clientnone
»» addressTypestringthe type of the address, eg. home, office. Deprecated.none
»» citystringthe citynone
»» countrystringthe countrynone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListintegerthe index of this address when there are multiple addresses assigned for a single entitynone
»» latitudenumberthe latitude of the address pointnone
»» line1stringthe first line of the addressnone
»» line2stringthe second line of the addressnone
»» longitudenumberthe longitude of the address pointnone
»» parentKeystringthe encoded key of the entity to whom this address belongs, for example, the client of groupnone
»» postcodestringthe postal (zip) code of the addressnone
»» regionstringthe region of the addressnone
»» toBeDeletedbooleanwhether this address is marked to be deletednone
» centreIdstringthe ID of the centre this client is assigned tonone
» clientClientApiV1nonenone
»» activationDatestringthe date when the client was set to active, ie. an active account was created for themnone
»» approvedDatestringthe date when the client was approvednone
»» assignedBranchKeystringthe encoded key of the client's branchnone
»» assignedCentreKeystringthe encoded key of the client's assigned centrenone
»» assignedUserKeystringthe encoded key of the Mambu user associated with this client, eg. their credit officernone
»» birthDatestringthe date of birth of this clientnone
»» clientRoleClientRoleBasicApiV1the type of client or group as defined in Mambu in Administration > General Settings > Client Typesnone
»»» encodedKeystringthe automatically generated encoded ID for this client or group typenone
»» closedDatestringthe date when the client was exited or blacklistednone
»» creationDatestringthe date on which this client record was creatednone
»» emailAddressstringthe email address of the clientnone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» firstNamestringthe first name of the clientnone
»» genderstringthe client's gendernone
»» groupLoanCyclenumberif this client is a member of a group, this number will increase by 1 each time they successfully close a loan as fully paidnone
»» homePhonestringa home contact number for this clientnone
»» idstringthe ID for this clientnone
»» idPatternstringthe pattern that is used to generate the client IDnone
»» lastModifiedDatestringthe date on which this client record was last modifiednone
»» lastNamestringthe last name of this clientnone
»» loanCyclenumberthe number of loans this client has opened and closed as fully paid as an individualnone
»» middleNamestringany middle names for this clientnone
»» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»»» creationDatestring(date-time)the date on which the data import was madenone
»»» encodedKeystringthe encoded key of this data migration eventnone
»»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»»» typestringthe type of migration eventnone
»» mobilePhone1stringa mobile contact number for this clientnone
»» mobilePhone2stringanother mobile contact number for this clientnone
»» notesstringany rich text notes about this clientnone
»» portalPreferencesPortalPreferencesApiV1nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» lastLoggedInDatestringnonenone
»»» passwordstringnonenone
»»» portalStatestringnonenone
»» preferredLanguagestringthe language which should be used when communicating with this clientnone
»» profilePictureKeystringthe encoded key of this user's proficle picturenone
»» profileSignatureKeystringthe encoded key of the digital copy of this client's signaturenone
»» statestringthe current state of this clientnone
» clientTypeIdstringthe type of clientnone
» customInformation[CustomFieldValueApiV1]custom information attached to this client recordnone
»» amountnumbernonenone
»» customFieldCustomFieldApiV1nonenone
»»» amountsobjectused when options available for a custom field definition translate to predefined amounts, for example, when the custom field value is used to generate a scorenone
»»»» additionalPropertiesnumbernonenone
»»» builtInCustomFieldIdstringif this field is one of the built in custom fiel definitions, this will have a value. These names are reserved and you can not use them for your own custom field definitionsnone
»»» creationDatestringthe date on which this custom field definition was creatednone
»»» customFieldProductSettings[CustomFieldLinkApiV1]nonenone
»»»» customFieldEncodedKeystringthe key to the parent custom field definitionnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isDefaultbooleanwhether this field is displayed by default when creating a new recordnone
»»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»»» linkTypestringthe type of entity this field represents a link tonone
»»»» productKeystringwhen the link type is product, this field should contain the encoded key of the linekd productnone
»»» customFieldSelectionOptions[CustomFieldSelectionApiV1][represents a possible selection for select type custom field definitions]none
»»»» constraintCustomFilterConstraintApiV1nonenone
»»»»» customFieldKeystringnonenone
»»»»» dataFieldTypestringnonenone
»»»»» dataFieldValuestringnonenone
»»»»» dataItemTypestringnonenone
»»»»» dataTypestringnonenone
»»»»» encodedKeystringnonenone
»»»»» filterElementstringnonenone
»»»»» groupNumbernumbernonenone
»»»»» indexnumbernonenone
»»»»» linkingOperatorstringnonenone
»»»»» secondValuestringnonenone
»»»»» valuestringnonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this selectable itemnone
»»»» scorenumberthe score assigned to this selectionnone
»»»» valuestringdisplay name of this optionnone
»»» customFieldSetCustomFieldSetApiV1nonenone
»»»» builtInTypestringif this set is part of the set of built-in custom field sets, its type will be shown herenone
»»»» createdDatestringthe date and time when this custom field set was creatednone
»»»» customFields[CustomFieldApiV1]an array of custom field definitions included in this custom field setnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this custom field setnone
»»»» indexInListnumberfor field sets that can be added to an entity more than once, this number represents the index in the list and is used when changing valuesnone
»»»» lastModifiedDatestringthe date on which this custom field set was last modifiednone
»»»» namestringthe name of this custom field setnone
»»»» notesstringany notes regarding this custom field setnone
»»»» typestringthe entity type that this custom field definition is attached tonone
»»»» usagestringwhether this custom field set can only be used once, or added multiple times to the same entitynone
»»» dataTypestringthe type of custom field definitionnone
»»» descriptionstringa brief description of this custom field definitionnone
»»» editRightsUsageRightsApiV1nonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isAccessibleByAllUsersbooleannonenone
»»»» roles[string]nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» idstringthe ID for this custom field definitionnone
»»» indexInListnumbernonenone
»»» isDefaultbooleanwhether this field will be included by default on new recordsnone
»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»» lastModifiedDatestringthe date on which this custom field definition was last modifiednone
»»» namestringthe name of this custom field definitionnone
»»» statestringwhether this field is available for use or has been deactivatednone
»»» typestringthe type of data this custom field definition will containnone
»»» uniquebooleanwhether the data in this custom field definition needs to be a unique valuenone
»»» validationPatternstringa user-provided pattern to which data in this custom field definition must conform where @ represents numbers, # represents letters and $ is either a number or letter. Other special characters used as separators are allowed, for example @@-##-$$$none
»»» valueLengthstringwhether this field needs to support a large number of charactersnone
»»» values[string]a list of possible values when the field is a selection fieldnone
»»» viewRightsUsageRightsApiV1nonenone
»» customFieldIDstringnonenone
»» customFieldKeystringnonenone
»» customFieldSetGroupIndexnumbernonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListnumbernonenone
»» linkedEntityKeyValuestringnonenone
»» parentKeystringnonenone
»» selectionKeystringnonenone
»» valuestringnonenone
» groupKeys[string]the encoded keys of any groups this client belongs tonone
» idDocuments[IdentificationDocumentApiV1]an array of ID documents this client has providednone
»» clientKeystringthe encoded key of the client with which this ID document is associatednone
»» documentIdstringthe IDnone
»» documentTypestringthe type of document, eg. passport, ID cardnone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» identificationDocumentTemplateKeystringthe ID template associated with this kind of IDnone
»» indexInListnumberif there is more than one ID document attached to a single entity, this number represents the index in the list of this particular documentnone
»» issuingAuthoritystringthe institution who provided this ID document, eg, Her Majesty's Passport Authoritynone
»» toBeDeletedbooleanwhether this ID document is marked for deletionnone
»» validUntilstringthe last day on which this document can be usednone
»» validUntilDTOdateDateDTOApiV1nonenone
»»» dayOfMonthnumberthe day of the monthnone
»»» monthOfYearnumberthe monthnone
»»» yearnumberthe yearnone
» notificationTemplates[MessageTemplateApiV1]an array of notification templates which can be used to send messages to this client via email or smsnone
»» activatedbooleannonenone
»» authorizationstringnonenone
»» contentTypestringnonenone
»» creationDatestringthe date and time when this template was creatednone
»» customFilterCustomFilterApiV1nonenone
»»» customConfigurationInfoCustomConfigurationInfoApiV1nonenone
»»»» creationDatestringthe date on which this configuration was creatednone
»»»» dataViewTypestringthe type of entity this configuration is fornone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» indexInListnumberif more than one configuration exists for a given type, this is its index in the listnone
»»»» lastModifiedDatestringthe date on which this configuration was last modifiednone
»»»» namestringthe name for this configurationnone
»»»» sharedbooleanwhether this configuration is private or can be used by other users of the systemnone
»»»» userKeystringthe encoded key of the Mambu user who created this configurationnone
»»» encodedKeystringnonenone
»»» filterConstraints[CustomFilterConstraintApiV1]nonenone
»» encodedKeystringthe automatically generated encoded ID for this notification templatenone
»» eventstringnonenone
»» isInUsebooleannonenone
»» lastModifiedDatestringthe date on which this notification template was last modifiednone
»» namestringnonenone
»» optionstringnonenone
»» recipientMessageTemplateRecipientApiV1nonenone
»»» customFieldCustomFieldApiV1nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» groupRoleGroupRoleNameApiV1nonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» namestringthe name of this rolenone
»»» recipientTypestringnonenone
»» requestTypestringnonenone
»» subjectstringnonenone
»» targetTypestringnonenone
»» templatestringnonenone
»» topicstringnonenone
»» triggerstringnonenone
»» triggerDaysnumbernonenone
»» typestringnonenone
»» urlstringnonenone
»» usernamestringnonenone

Enumerated Values

PropertyValue
genderMALE
genderFEMALE
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
portalStateDISABLED
portalStateENABLED
preferredLanguagePORTUGESE
preferredLanguageRUSSIAN
preferredLanguageROMANIAN
preferredLanguageENGLISH
preferredLanguageSPANISH
preferredLanguageGEORGIAN
preferredLanguageBURMESE
preferredLanguagePHRASE
preferredLanguageCHINESE
preferredLanguageFRENCH
preferredLanguageINDONESIAN
statePENDING_APPROVAL
stateACTIVE
stateINACTIVE
stateEXITED
stateBLACKLISTED
stateREJECTED
builtInCustomFieldIdMOBILE_PHONE
builtInCustomFieldIdEMAIL_ADDRESS
builtInCustomFieldIdGENDER
builtInCustomFieldIdMIDDLE_NAME
builtInCustomFieldIdHOME_PHONE
builtInCustomFieldIdBIRTHDATE
builtInCustomFieldIdLAST_NAME
builtInCustomFieldIdFIRST_NAME
linkTypeCLIENT_ROLE
linkTypeCHANNEL
linkTypePRODUCT
dataFieldTypeNATIVE
dataFieldTypeCUSTOM
dataItemTypeWRITTEN_OFF_LOANS
dataItemTypeLINE_OF_CREDIT
dataItemTypeINVESTOR_FUND
dataItemTypeTRANSACTION_DETAILS
dataItemTypeDOCUMENT_TEMPLATE
dataItemTypePRODUCT
dataItemTypeMCC_EXPIRATION
dataItemTypeCENTRE
dataItemTypeREPAYMENT_COLLECTION
dataItemTypeTASK
dataItemTypeOUTSTANDING_PORTFOLIO_AMOUNTS
dataItemTypeREVENUE
dataItemTypeCOMPOSED_TRANSACTIONS
dataItemTypeUNION_TRANSACTIONS
dataItemTypePRINCIPAL_PAYMENT_SETTINGS
dataItemTypeLOANS
dataItemTypeDISBURSEMENT_DETAILS
dataItemTypeSAVINGS_TRANSACTION
dataItemTypeIDENTIFICATION_DOCUMENT
dataItemTypeLOAN_PRODUCT
dataItemTypeDISBURSED_LOANS
dataItemTypeLOAN_GROUP
dataItemTypeTRANSACTION_CHANNEL
dataItemTypeCUSTOM_PREDEFINED_FEE
dataItemTypeJOURNAL_ENTRY
dataItemTypeATTACHMENT
dataItemTypePREDEFINED_FEE
dataItemTypeTRANCHE
dataItemTypeTRANSACTION
dataItemTypeINDEX_RATE_SOURCE
dataItemTypeGROUP_ROLE
dataItemTypeLOAN_TRANSACTION
dataItemTypeCLIENT_ROLE
dataItemTypeGROUP
dataItemTypeNOTIFICATION_MESSAGE
dataItemTypeOUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemTypeREPAYMENT
dataItemTypeLOAN_ACCOUNT_GUARANTY
dataItemTypeBRANCH
dataItemTypeCURRENCY
dataItemTypeCARD_TRANSACTION_REVERSAL
dataItemTypeINTEREST_PRODUCT_SETTINGS
dataItemTypeCREATED_ACCOUNTS
dataItemTypeUSER
dataItemTypeSAVINGS_PRODUCT
dataItemTypeCLIENT
dataItemTypePRODUCT_ARREARS_SETTINGS
dataItemTypeSAVINGS
dataItemTypeEXPENSE
dataItemTypeINDEX_RATE
dataItemTypeNOTIFICATION_TEMPLATE
dataItemTypeCUSTOM_FIELD_SELECTION
dataItemTypeACTIVITY
dataTypeENUM
dataTypeMONEY
dataTypeNUMBER
dataTypeDATE_UTC
dataTypeJAVA_BLOB
dataTypeOBJECT
dataTypeBOOLEAN
dataTypeDATE
dataTypePERCENT
dataTypeBIG_DECIMAL
dataTypeSTRING
dataTypeKEY
dataTypeLONG
filterElementSTARTS_WITH_CASE_SENSITIVE
filterElementTHIS_WEEK
filterElementEQUALS
filterElementSTARTS_WITH
filterElementIN
filterElementTODAY
filterElementTHIS_YEAR
filterElementBETWEEN
filterElementAFTER
filterElementLESS_THAN
filterElementDIFFERENT_THAN
filterElementTHIS_MONTH
filterElementNOT_EMPTY
filterElementBEFORE
filterElementEQUALS_CASE_SENSITIVE
filterElementLAST_DAYS
filterElementMORE_THAN
filterElementEMPTY
filterElementON
linkingOperatorOR
linkingOperatorAND
builtInTypeDETAILS
builtInTypeGENERAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
usageSINGLE
usageGROUPED
dataTypeGROUP_LINK
dataTypeDATE
dataTypeNUMBER
dataTypeCHECKBOX
dataTypeCLIENT_LINK
dataTypeSTRING
dataTypeUSER_LINK
dataTypeSELECTION
stateDEACTIVATED
stateNORMAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
valueLengthSHORT
valueLengthLONG
authorizationNO_AUTHORIZATION
authorizationBASIC_AUTHORIZATION
contentTypePLAIN_TEXT
contentTypeAPPLICATION_JSON
contentTypeAPPLICATION_XML
dataViewTypePORTAL_ACCOUNT_TRANSACTION
dataViewTypeLOANS_AGING_ANALYSIS
dataViewTypeCLOSED_ACCOUNTS
dataViewTypeCLIENT_OVERVIEW
dataViewTypeADMIN_CENTRES
dataViewTypeUSER_NOTIFICATION_MESSAGES
dataViewTypeLINE_OF_CREDIT
dataViewTypeUSER_OVERVIEW
dataViewTypeCENTRE_OVERVIEW
dataViewTypeREPAYMENT_REPAYMENTS_COLLECTION
dataViewTypeGROUP_OVERVIEW
dataViewTypeACTIVITIES_LOOKUP
dataViewTypeTRANSACTION
dataViewTypeADMIN_BRANCHES
dataViewTypeGROUP
dataViewTypeBRANCH_OVERVIEW
dataViewTypeNOTIFICATION_MESSAGE
dataViewTypePORTFOLIO_REPORTS
dataViewTypeGROUP_NOTIFICATION_MESSAGES
dataViewTypeLOAN_ACCOUNT_SECURITIES_OVERVIEW
dataViewTypeLINE_OF_CREDIT_OVERVIEW
dataViewTypeCURRENCIES
dataViewTypeREPAYMENT
dataViewTypeTILL_TRANSACTIONS
dataViewTypeALL_TASKS
dataViewTypeCENTRE
dataViewTypeBRANCH
dataViewTypeINDEX_RATES_LIST
dataViewTypeUSER_TASKS
dataViewTypeDOCUMENT_TEMPLATES
dataViewTypeSAVINGS_TRANSACTIONS_LOOKUP
dataViewTypeLOAN_ACCOUNT_OVERVIEW
dataViewTypeDEPOSITS_COLLECTION
dataViewTypeUSER
dataViewTypeADMIN_USERS
dataViewTypeGROUP_TASKS
dataViewTypeCLIENT
dataViewTypeLOAN_TRANSACTIONS_LOOKUP
dataViewTypeLOANS
dataViewTypeLOANS_REPAYMENTS_COLLECTION
dataViewTypeCLIENT_TASKS
dataViewTypeOVERDRAFTS_AGING_ANALYSIS
dataViewTypeLOAN_ACCOUNT_FUNDING_OVERVIEW
dataViewTypeSAVINGS
dataViewTypeSAVINGS_OVERVIEW
dataViewTypeJOURNAL_ENTRY
dataViewTypeCLIENT_NOTIFICATION_MESSAGES
eventLOAN_CREATED
eventSAVINGS_ACCOUNT_REJECTION
eventSAVINGS_ACCOUNT_ACTIVATED
eventDATA_ACCESS_STATE_CHANGED
eventREPAYMENT_REMINDER
eventLOAN_ANTICIPATED_DISBURSEMENT
eventCREDIT_ARRANGEMENT_deleteD
eventSAVINGS_APPROVAL
eventPORTAL_ACTIVATED
eventSAVINGS_DEPOSIT
eventPORTAL_PASSWORD_RESET
eventCREDIT_ARRANGEMENT_REJECTED
eventLOAN_REPAYMENT_REVERSAL
eventSAVINGS_ACCOUNT_CLOSURE
eventLOAN_ACCOUNT_REJECTION
eventLOAN_ACCOUNT_RESCHEDULED
eventACCOUNT_IN_ARREARS
eventLOAN_DISBURSEMENT_REVERSAL
eventSAVINGS_DEPOSIT_REVERSAL
eventCLIENT_APPROVED
eventLOAN_REPAYMENT
eventLOAN_ACCOUNT_ACTIVITY
eventGROUP_CREATED
eventLOAN_DISBURSEMENT
eventCREDIT_ARRANGEMENT_APPROVED
eventMANUAL
eventEND_OF_DAY_PROCESSING_COMPLETED
eventCREDIT_ARRANGEMENT_ACCOUNT_ADDED
eventCLIENT_REJECTED
eventCLIENT_ACTIVITY
eventLOAN_ACCOUNT_REFINANCED
eventSAVINGS_CREATED
eventCLIENT_CREATED
eventLOAN_APPROVAL
eventGROUP_ACTIVITY
eventLOAN_ACCOUNT_CLOSURE
eventSAVINGS_WITHDRAWAL_REVERSAL
eventCREDIT_ARRANGEMENT_WITHDRAWN
eventCREDIT_ARRANGEMENT_CREATED
eventSAVINGS_WITHDRAWAL
eventSAVINGS_ACCOUNT_ACTIVITY
eventLOAN_ACCOUNT_WRITE_OFF
eventCREDIT_ARRANGEMENT_ACCOUNT_REMOVED
eventCREDIT_ARRANGEMENT_CLOSED
optionOPT_IN
optionOPT_OUT
recipientTypeCREDIT_OFFICER
recipientTypeCUSTOM_FIELD
recipientTypeGROUP_ROLE
recipientTypeCLIENT
requestTypeHEAD
requestTypedelete
requestTypepost
requestTypeget
requestTypeput
requestTypepatch
targetTypeLOANS
targetTypeGROUP
targetTypeSAVINGS
targetTypeDATA_ACCESS
targetTypeBACKGROUND_PROCESS
targetTypeCLIENT
triggerAUTOMATIC
triggerMANUAL
typeEVENT_STREAM
typeTASK
typeSMS
typeEMAIL
typeWEB_HOOK

Get Client's Custom Views Summary

GET /clients?resultType=SUMMARY&viewfilter={viewfilter}

Get Client's Custom Views Summary

get view filters for a client with a summary

Parameters

NameTypeDescriptionIn
branchIdstringnonequery
offsetstringnonequery
limitstringnonequery
resultTypestringnonequery
viewfilter (required)stringnonepath

Example Responses

200 Response

{
  "summary": {
    "count": "string",
    "totals": [
      {
        "customFieldValues": {
          "property1": {},
          "property2": {}
        },
        "dataItemType": "WRITTEN_OFF_LOANS",
        "values": {
          "property1": {},
          "property2": {}
        }
      }
    ]
  }
}

Responses

StatusMeaningDescriptionSchema
200OKokJsonCustomViewEntitiesSummaryWrapperApiV1

Get all Clients

GET /clients

List clients

Allows retrieving clients. When retrieving a client, all their associated information such as custom field values, addresses and identification documents may also be returned if requested. An empty list is returned if no clients are found.

Any combinations can be used but note that an AND search will be performed.

Please Note! Lookups by names are case sensitive. If an insensitive lookup is required please use the Objects Search API.

Example Requests

Search for a client using query parameters

GET /api/clients?firstName=Trevor&lastName=Linden

Parameters

NameTypeDescriptionIn
centreIdstringLooking up clients assigned to a centre using centre id/keyquery
branchIdstringLooking up clients assigned to a branch using branch id/keyquery
lastNamestringUsed for looking up a client by their last namequery
firstNamestringUsed for looking up a client by their first namequery
birthdatestring(date)Looking up a client by their birthdate (format: YYYY-MM-DD)query
idDocumentstringLooking up a client by their id document numberquery
statestringLooking up a client by their current statequery
creditOfficerUsernamestringLooking up a client by the assigned credit officer username (required if the user making the call has the "Credit Officer" role and the option "Can access other credit officers clients" is not activated)query

Example Responses

200 : ok
a list of clients

[
  {
    "encodedKey": "8a193c26722b51b701722d77c69e2406",
    "state": "INACTIVE",
    "id": "80",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Hyiab",
    "lastName": "Longoria",
    "homePhone": "3788731",
    "birthDate": "1972-10-07T15:05:24+0000",
    "gender": "MALE",
    "notes": "The neighbors mentioned that he is an <b>honest and hard working man.</b>",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69e2405",
    "state": "INACTIVE",
    "id": "79",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Buthayna",
    "lastName": "Simon",
    "homePhone": "2379200",
    "birthDate": "1990-08-17T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Lives with three daughters and old father. The daughters are learning how to paint so that they can sell the paintings and start helping their mother repaying the loan. ",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69e2404",
    "state": "INACTIVE",
    "id": "78",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Uros",
    "lastName": "Kamińska",
    "homePhone": "(73) 161-529",
    "birthDate": "1989-04-03T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Lives with three daughters and old father. The daughters are learning how to paint so that they can sell the paintings and start helping their mother repaying the loan. ",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69b2403",
    "state": "INACTIVE",
    "id": "77",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "اسفندیار",
    "lastName": "Czarnecki",
    "homePhone": "051-043-414",
    "birthDate": "1984-10-27T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Her business is the only source of income of the household of 4.",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69b2402",
    "state": "INACTIVE",
    "id": "76",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Gilda",
    "lastName": "Nwankwo",
    "homePhone": "(94) 524-867",
    "birthDate": "1974-04-26T15:05:24+0000",
    "gender": "MALE",
    "notes": "Lives with three daughters and old father. The daughters are learning how to paint so that they can sell the paintings and start helping their mother repaying the loan. ",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69b2401",
    "state": "INACTIVE",
    "id": "75",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Marcelina",
    "lastName": "Sawicka",
    "homePhone": "041-831-623",
    "birthDate": "1970-02-02T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Her business is the only source of income of the household of 4.",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69b2400",
    "state": "INACTIVE",
    "id": "74",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Šimica",
    "lastName": "Tomaszewska",
    "homePhone": "2102191",
    "birthDate": "1963-05-21T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "The neighbors mentioned that he is an <b>honest and hard working man.</b>",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69b23ff",
    "state": "INACTIVE",
    "id": "73",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Carina",
    "lastName": "Jaworski",
    "homePhone": "(20) 318-317",
    "birthDate": "1976-04-20T15:05:24+0000",
    "gender": "MALE",
    "notes": "Her business is the only source of income of the household of 4.",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69723fe",
    "state": "INACTIVE",
    "id": "72",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Sobiesław",
    "lastName": "Medhane",
    "homePhone": "2352426",
    "birthDate": "1961-01-26T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Lives with three daughters and old father. The daughters are learning how to paint so that they can sell the paintings and start helping their mother repaying the loan. ",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69723fd",
    "state": "INACTIVE",
    "id": "71",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Mara",
    "lastName": "Duvnjak",
    "homePhone": "051-625-096",
    "birthDate": "1974-01-01T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "Generally a very honest, open individual who exudes warmth and trust.",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69723fc",
    "state": "INACTIVE",
    "id": "70",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Mãnh",
    "lastName": "Baba",
    "homePhone": "5438282",
    "birthDate": "1976-08-18T15:05:24+0000",
    "gender": "FEMALE",
    "notes": "The neighbors mentioned that he is an <b>honest and hard working man.</b>",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c69723fb",
    "state": "INACTIVE",
    "id": "69",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "firstName": "Asztrik",
    "lastName": "Kasza",
    "homePhone": "2179544",
    "birthDate": "1965-06-10T15:05:24+0000",
    "gender": "MALE",
    "notes": "Lives with three daughters and old father. The daughters are learning how to paint so that they can sell the paintings and start helping their mother repaying the loan. ",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ClientApiV1]nonenone
» activationDatestringthe date when the client was set to active, ie. an active account was created for themnone
» approvedDatestringthe date when the client was approvednone
» assignedBranchKeystringthe encoded key of the client's branchnone
» assignedCentreKeystringthe encoded key of the client's assigned centrenone
» assignedUserKeystringthe encoded key of the Mambu user associated with this client, eg. their credit officernone
» birthDatestringthe date of birth of this clientnone
» clientRoleClientRoleBasicApiV1the type of client or group as defined in Mambu in Administration > General Settings > Client Typesnone
»» encodedKeystringthe automatically generated encoded ID for this client or group typenone
» closedDatestringthe date when the client was exited or blacklistednone
» creationDatestringthe date on which this client record was creatednone
» emailAddressstringthe email address of the clientnone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» firstNamestringthe first name of the clientnone
» genderstringthe client's gendernone
» groupLoanCyclenumberif this client is a member of a group, this number will increase by 1 each time they successfully close a loan as fully paidnone
» homePhonestringa home contact number for this clientnone
» idstringthe ID for this clientnone
» idPatternstringthe pattern that is used to generate the client IDnone
» lastModifiedDatestringthe date on which this client record was last modifiednone
» lastNamestringthe last name of this clientnone
» loanCyclenumberthe number of loans this client has opened and closed as fully paid as an individualnone
» middleNamestringany middle names for this clientnone
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» mobilePhone1stringa mobile contact number for this clientnone
» mobilePhone2stringanother mobile contact number for this clientnone
» notesstringany rich text notes about this clientnone
» portalPreferencesPortalPreferencesApiV1nonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» lastLoggedInDatestringnonenone
»» passwordstringnonenone
»» portalStatestringnonenone
» preferredLanguagestringthe language which should be used when communicating with this clientnone
» profilePictureKeystringthe encoded key of this user's proficle picturenone
» profileSignatureKeystringthe encoded key of the digital copy of this client's signaturenone
» statestringthe current state of this clientnone

Enumerated Values

PropertyValue
genderMALE
genderFEMALE
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
portalStateDISABLED
portalStateENABLED
preferredLanguagePORTUGESE
preferredLanguageRUSSIAN
preferredLanguageROMANIAN
preferredLanguageENGLISH
preferredLanguageSPANISH
preferredLanguageGEORGIAN
preferredLanguageBURMESE
preferredLanguagePHRASE
preferredLanguageCHINESE
preferredLanguageFRENCH
preferredLanguageINDONESIAN
statePENDING_APPROVAL
stateACTIVE
stateINACTIVE
stateEXITED
stateBLACKLISTED
stateREJECTED

Create or Update Client

POST /clients

Create or update a client

Mambu allows for creation and updating of client information. This includes client's personal and contact information, custom fields, identification documents and the address. The client is returned as a response.

You can provide some basic information as a request with query parameters and no body, however, if you need to create a client with more complex information, such as custom fields, we recommend posting with a JSON body.

{
    client: {
    encodedKey:"someKey"
    }
}

If the encoded key/identifier is invalid, an exception code will be returned

In order to remove all custom fields, identification documents or addresses, you can send an empty array:

{
"client": {
    "encodedKey":"abc",
    //other client information
},
"idDocuments":[],
"addresses":[],
"customInformation":[]
}

Example Requests

Create a client with minimal data using query parameters

POST /api/clients?firstName=Trevor&lastName=Linden&emailAddress=trevor.linden%40mambu.com

Create a client with minimal data using JSON

{
   "client":{
      "firstName":"Trevor",
      "lastName":"Linden",
      "middleName":"Good",
      "homePhone":"7899221665",
      "emailAddress":"trevor.linden@mambu.com",
      "mobilePhone1":"211111111",
      "mobilePhone2":"122222222",
      "gender":"MALE",
      "clientRole": {"encodedKey":"d9df8bc78a0234ccc934a845c"}
   }
}

Create a new client with ID documents, an address, and custom field values

{
  "client": {
    "firstName": "Max",
    "lastName": "Alexander",
    "middleName": "Frank",
    "homePhone": "56611235498",
    "emailAddress": "max.alexander@mambu.com",
    "mobilePhone1": "211111111",
    "gender": "MALE"
  },
  "idDocuments": [
    {
      "documentType": "CI",
      "documentId": "23453",
      "issuingAuthority": "Police",
      "validUntil": "2014-09-30T00:00:00+0000",
      "identificationDocumentTemplateKey": "9b0a97094b4cd73f014b5f5ef0e811d2"
    },
    {
      "documentType": "Passport",
      "documentId": "sss332",
      "issuingAuthority": "Passport Agency",
      "validUntil": "2014-09-30T00:00:00+0000",
      "identificationDocumentTemplateKey": "2a0a00a24b4ce72a025c4afefce821e9"
    }
  ],
  "addresses": [
    {
      "line1": "8 Howling Lane",
      "line2": "Hackney",
      "city": "London",
      "region": "London",
      "postcode": "EC1 FB12",
      "country": "United Kingdom"
    }
  ],
  "customInformation": [
    {
      "value": "1",
      "customFieldID": "Family_Members"
    },
    {
      "value": "TRUE",
      "customFieldID": "Has_children"
    },
    {
      "value": "Some Studies",
      "customFieldID": "Studies"
    }
  ]
}

Parameters

NameTypeDescriptionIn
firstName (required)stringClient's first name.query
lastName (required)stringClient's last name.query
birthDatestringThe date of birth of the client in the format YYYY-MM-DD.query
genderstringThe gender of the client, either MALE or FEMALE.query
homephonestringA home contact number for this client.query
mobilephonestringA mobile contact number for this client.query
emailstringThe email address for this client.query
notesstringAny additional rich text html notes about the clients *query
clientRolestringIf you have set up client roles, you can provide a role using this field.query
assignedUserKeystringThe encoded key of a Mmabu user assigned to this client, for example a credit officer.query
bodyCreateOrUpdateClientRequestnonebody

Detailed descriptions

notes: Any additional rich text html notes about the clients *

Example Responses

200 Response

{
  "addresses": [
    {
      "addressType": "string",
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string",
      "toBeDeleted": true
    }
  ],
  "client": {
    "activationDate": "string",
    "approvedDate": "string",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "string",
    "clientRole": {
      "encodedKey": "string"
    },
    "closedDate": "string",
    "creationDate": "string",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idPattern": "string",
    "lastModifiedDate": "string",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "mobilePhone1": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalPreferences": {
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "lastLoggedInDate": "string",
      "password": "string",
      "portalState": "DISABLED"
    },
    "preferredLanguage": "PORTUGESE",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  },
  "customInformation": [
    {
      "amount": 0,
      "customField": {
        "amounts": {
          "property1": 0,
          "property2": 0
        },
        "builtInCustomFieldId": "MOBILE_PHONE",
        "creationDate": "string",
        "customFieldProductSettings": [
          {
            "customFieldEncodedKey": "string",
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isDefault": true,
            "isRequired": true,
            "linkType": "CLIENT_ROLE",
            "productKey": "string"
          }
        ],
        "customFieldSelectionOptions": [
          {
            "constraint": {
              "customFieldKey": "string",
              "dataFieldType": "NATIVE",
              "dataFieldValue": "string",
              "dataItemType": "WRITTEN_OFF_LOANS",
              "dataType": "ENUM",
              "encodedKey": "string",
              "filterElement": "STARTS_WITH_CASE_SENSITIVE",
              "groupNumber": 0,
              "index": 0,
              "linkingOperator": "OR",
              "secondValue": "string",
              "value": "string"
            },
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "score": 0,
            "value": "string"
          }
        ],
        "customFieldSet": {
          "builtInType": "DETAILS",
          "createdDate": "string",
          "customFields": [
            {}
          ],
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "id": "string",
          "indexInList": 0,
          "lastModifiedDate": "string",
          "name": "string",
          "notes": "string",
          "type": "USER_INFO",
          "usage": "SINGLE"
        },
        "dataType": "GROUP_LINK",
        "description": "string",
        "editRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        },
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "id": "string",
        "indexInList": 0,
        "isDefault": true,
        "isRequired": true,
        "lastModifiedDate": "string",
        "name": "string",
        "state": "DEACTIVATED",
        "type": "USER_INFO",
        "unique": true,
        "validationPattern": "string",
        "valueLength": "SHORT",
        "values": [
          "string"
        ],
        "viewRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        }
      },
      "customFieldID": "string",
      "customFieldKey": "string",
      "customFieldSetGroupIndex": 0,
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "indexInList": 0,
      "linkedEntityKeyValue": "string",
      "parentKey": "string",
      "selectionKey": "string",
      "value": "string"
    }
  ],
  "groupKeys": [
    "string"
  ],
  "idDocuments": [
    {
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "toBeDeleted": true,
      "validUntil": "string",
      "validUntilDTOdate": {
        "dayOfMonth": 0,
        "monthOfYear": 0,
        "year": 0
      }
    }
  ]
}

Responses

StatusMeaningDescriptionSchema
200OKokCreateOrUpdateClientResponse

Get Lines of Credit for Client

GET /clients/{clientId}/linesofcredit

Get lines of credit for a Client

Retrieve the associated lines of credit for a client.

Parameters

NameTypeDescriptionIn
clientId (required)stringnonepath
fullDetailsbooleanGet full object including all nested fieldsquery

Example Responses

200 : ok
Lines of Credit with basic details

[
  {
    "encodedKey": "8a19b6e4746cc6ed01746cf1436c00c3",
    "id": "JRW117",
    "clientKey": "8a193c26722b51b701722d77c5e423b7",
    "startDate": "2020-09-01T00:00:00+0000",
    "expireDate": "2020-12-31T00:00:00+0000",
    "creationDate": "2020-09-08T08:59:45+0000",
    "approvedDate": "2020-09-08T10:59:45+0000",
    "lastModifiedDate": "2020-09-08T08:59:45+0000",
    "state": "APPROVED",
    "amount": "100",
    "exposureLimitType": "APPROVED_AMOUNT",
    "notes": "adf",
    "availableCreditAmount": "100"
  },
  {
    "encodedKey": "8a19c162746ce3b201746cf0ce24007a",
    "id": "FEP015",
    "clientKey": "8a193c26722b51b701722d77c5e423b7",
    "startDate": "2020-09-01T00:00:00+0000",
    "expireDate": "2020-12-31T00:00:00+0000",
    "creationDate": "2020-09-08T09:00:48+0000",
    "approvedDate": "2020-09-08T11:00:48+0000",
    "lastModifiedDate": "2020-09-08T09:00:48+0000",
    "state": "APPROVED",
    "amount": "10000",
    "exposureLimitType": "OUTSTANDING_AMOUNT",
    "notes": "some fascinating line of credit notes",
    "availableCreditAmount": "10000"
  },
  {
    "encodedKey": "8a19c162746ce3b201746cf0ce24007c",
    "id": "FEP007",
    "clientKey": "8a193c26722b51b701722d77c5e423b7",
    "startDate": "2020-09-01T00:00:00+0000",
    "expireDate": "2021-12-31T00:00:00+0000",
    "creationDate": "2020-09-08T09:01:46+0000",
    "approvedDate": "2020-09-08T11:01:46+0000",
    "lastModifiedDate": "2020-09-08T09:19:41+0000",
    "state": "APPROVED",
    "amount": "10000",
    "exposureLimitType": "OUTSTANDING_AMOUNT",
    "notes": "some fascinating line of credit notes",
    "availableCreditAmount": "10000"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokLineOfCreditFullApiV1

Search for Clients

POST /clients/search

Search for Clients

search for clients based on some criteria

Example Requests

Get all clients identifying as male and sort by birthdate

{
   "filterConstraints":[
      {
         "filterSelection":"GENDER",
         "filterElement":"EQUALS",
         "value":"MALE"
      }
   ],
   "sortDetails": {
    "sortingColumn": "BIRTHDATE",
    "sortingOrder": "DESC"
  }
}

Get all clients added this month

{
   "filterConstraints":[
      {
         "filterSelection":"CREATION_DATE",
         "filterElement":"THIS_MONTH"
      }
   ]
}

Get all clients with a birth date between a given range

{
  "filterConstraints": [
    {
      "filterSelection": "BIRTHDATE",
      "filterElement": "BETWEEN",
      "value": "1957-01-01",
      "secondValue": "1965-06-20"
    }
  ]
}

Parameters

NameTypeDescriptionIn
offsetintegernonequery
limitintegernonequery
fullDetailsbooleannonequery
bodyFilterApiV1nonebody

Example Responses

200 Response

[
  {
    "activationDate": "string",
    "approvedDate": "string",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "string",
    "clientRole": {
      "encodedKey": "string"
    },
    "closedDate": "string",
    "creationDate": "string",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idPattern": "string",
    "lastModifiedDate": "string",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "mobilePhone1": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalPreferences": {
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "lastLoggedInDate": "string",
      "password": "string",
      "portalState": "DISABLED"
    },
    "preferredLanguage": "PORTUGESE",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ClientApiV1]nonenone
» activationDatestringthe date when the client was set to active, ie. an active account was created for themnone
» approvedDatestringthe date when the client was approvednone
» assignedBranchKeystringthe encoded key of the client's branchnone
» assignedCentreKeystringthe encoded key of the client's assigned centrenone
» assignedUserKeystringthe encoded key of the Mambu user associated with this client, eg. their credit officernone
» birthDatestringthe date of birth of this clientnone
» clientRoleClientRoleBasicApiV1the type of client or group as defined in Mambu in Administration > General Settings > Client Typesnone
»» encodedKeystringthe automatically generated encoded ID for this client or group typenone
» closedDatestringthe date when the client was exited or blacklistednone
» creationDatestringthe date on which this client record was creatednone
» emailAddressstringthe email address of the clientnone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» firstNamestringthe first name of the clientnone
» genderstringthe client's gendernone
» groupLoanCyclenumberif this client is a member of a group, this number will increase by 1 each time they successfully close a loan as fully paidnone
» homePhonestringa home contact number for this clientnone
» idstringthe ID for this clientnone
» idPatternstringthe pattern that is used to generate the client IDnone
» lastModifiedDatestringthe date on which this client record was last modifiednone
» lastNamestringthe last name of this clientnone
» loanCyclenumberthe number of loans this client has opened and closed as fully paid as an individualnone
» middleNamestringany middle names for this clientnone
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» mobilePhone1stringa mobile contact number for this clientnone
» mobilePhone2stringanother mobile contact number for this clientnone
» notesstringany rich text notes about this clientnone
» portalPreferencesPortalPreferencesApiV1nonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» lastLoggedInDatestringnonenone
»» passwordstringnonenone
»» portalStatestringnonenone
» preferredLanguagestringthe language which should be used when communicating with this clientnone
» profilePictureKeystringthe encoded key of this user's proficle picturenone
» profileSignatureKeystringthe encoded key of the digital copy of this client's signaturenone
» statestringthe current state of this clientnone

Enumerated Values

PropertyValue
genderMALE
genderFEMALE
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
portalStateDISABLED
portalStateENABLED
preferredLanguagePORTUGESE
preferredLanguageRUSSIAN
preferredLanguageROMANIAN
preferredLanguageENGLISH
preferredLanguageSPANISH
preferredLanguageGEORGIAN
preferredLanguageBURMESE
preferredLanguagePHRASE
preferredLanguageCHINESE
preferredLanguageFRENCH
preferredLanguageINDONESIAN
statePENDING_APPROVAL
stateACTIVE
stateINACTIVE
stateEXITED
stateBLACKLISTED
stateREJECTED

Get Client by ID

GET /clients/{clientId}

Get Client by ID

get a client by ID or encoded key

Parameters

NameTypeDescriptionIn
fullDetailsbooleanWhether to also include custom field valuesquery
clientId (required)stringThe ID or encoded key of a clientpath

Example Responses

200 : ok
A client record with basic details

{
  "encodedKey": "8a193c26722b51b701722d77c5e423b7",
  "state": "ACTIVE",
  "id": "1",
  "creationDate": "2020-05-19T15:05:24+0000",
  "lastModifiedDate": "2021-08-02T14:22:42+0000",
  "activationDate": "2020-09-16T11:11:59+0000",
  "firstName": "Odon",
  "lastName": "Lukić",
  "profilePictureKey": "8a19a3337476f2d001747748c6250186",
  "profileSignatureKey": "8a19c19c74783436017478ad13000166",
  "homePhone": "4192425",
  "emailAddress": "odon@odonmail.com",
  "birthDate": "1989-04-29T00:00:00+0000",
  "gender": "FEMALE",
  "loanCycle": 0,
  "groupLoanCycle": 0,
  "preferredLanguage": "ENGLISH",
  "clientRole": {
    "encodedKey": "8a194075720ece2c017226fcf55e0068"
  }
}

200 : ok
A client record with full details

{
  "client": {
    "encodedKey": "8a193c26722b51b701722d77c5e423b7",
    "state": "ACTIVE",
    "id": "1",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2021-08-02T14:22:42+0000",
    "activationDate": "2020-09-16T11:11:59+0000",
    "firstName": "Odon",
    "lastName": "Lukić",
    "profilePictureKey": "8a19a3337476f2d001747748c6250186",
    "profileSignatureKey": "8a19c19c74783436017478ad13000166",
    "homePhone": "4192425",
    "emailAddress": "odon@odonmail.com",
    "birthDate": "1989-04-29T00:00:00+0000",
    "gender": "FEMALE",
    "notes": "Ideas as how to improve his business seem solid. They include selling more plumbuses ....",
    "loanCycle": 0,
    "groupLoanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf55e0068"
    }
  },
  "addresses": [
    {
      "encodedKey": "8a193c26722b51b701722d77c6ae241b",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "line1": "Ηλίου 161",
      "line2": "line 2 baby",
      "city": "ΛΑΡΝΑΚΑ",
      "region": "",
      "postcode": "6037",
      "country": "",
      "indexInList": 0
    }
  ],
  "customInformation": [
    {
      "encodedKey": "8a19b40b7a041e14017a0ec27a505c58",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "customFieldKey": "8a19b40b7a041e14017a0e96047d5995",
      "customField": {
        "encodedKey": "8a19b40b7a041e14017a0e96047d5995",
        "id": "delete_me",
        "creationDate": "2021-06-15T08:21:04+0000",
        "lastModifiedDate": "2021-06-15T08:21:04+0000",
        "name": "delete me",
        "type": "CLIENT_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "",
        "customFieldSet": {
          "encodedKey": "8a193c26722b51b701722d77ccaf2635",
          "id": "_Others_Clients",
          "name": "Others",
          "createdDate": "2020-05-19T15:05:25+0000",
          "lastModifiedDate": "2020-10-23T09:52:21+0000",
          "indexInList": 5,
          "type": "CLIENT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 4,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a19b40b7a041e14017a0ec27a505c56",
            "id": "459047776",
            "value": "labe",
            "score": "69"
          },
          {
            "encodedKey": "8a19b40b7a041e14017a0ec27a505c57",
            "id": "380298933",
            "value": "label 2",
            "score": "420"
          }
        ],
        "viewRights": {
          "encodedKey": "8a19b40b7a041e14017a0e96047d5996",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b40b7a041e14017a0e96047d5997",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "unique": false,
        "values": [
          "labe",
          "label 2"
        ],
        "amounts": {
          "labe": "69",
          "label 2": "420"
        }
      },
      "value": "label 2",
      "amount": "420",
      "indexInList": -1,
      "customFieldID": "delete_me",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19b40b7a041e14017a0ed02b3b5cd9",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "customFieldKey": "8a19b40b7a041e14017a0ed02b375cd2",
      "customField": {
        "encodedKey": "8a19b40b7a041e14017a0ed02b375cd2",
        "id": "score_2",
        "creationDate": "2021-06-15T08:36:01+0000",
        "lastModifiedDate": "2021-06-15T08:36:01+0000",
        "name": "another score",
        "type": "CLIENT_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "",
        "customFieldSet": {
          "encodedKey": "8a193c26722b51b701722d77c55123b1",
          "id": "_Custom_Fields_Clients",
          "name": "Custom Fields",
          "createdDate": "2020-05-19T15:05:24+0000",
          "lastModifiedDate": "2020-10-23T09:52:21+0000",
          "indexInList": 3,
          "type": "CLIENT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 1,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a19b40b7a041e14017a0ed02b3a5cd7",
            "id": "2032458765",
            "value": "adfsgd",
            "score": "12"
          },
          {
            "encodedKey": "8a19b40b7a041e14017a0ed02b3a5cd8",
            "id": "1288411378",
            "value": "wefqas",
            "score": "34"
          }
        ],
        "viewRights": {
          "encodedKey": "8a19b40b7a041e14017a0ed02b375cd3",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19b40b7a041e14017a0ed02b375cd4",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "unique": false,
        "values": [
          "adfsgd",
          "wefqas"
        ],
        "amounts": {
          "adfsgd": "12",
          "wefqas": "34"
        }
      },
      "value": "wefqas",
      "amount": "34",
      "indexInList": -1,
      "customFieldID": "score_2",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a193c26722b51b701722d77c6ca247f",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "customFieldKey": "8a193c26722b51b701722d77c55123b2",
      "customField": {
        "encodedKey": "8a193c26722b51b701722d77c55123b2",
        "id": "Position_Clients",
        "creationDate": "2020-09-24T08:34:00+0000",
        "lastModifiedDate": "2021-04-29T11:47:55+0000",
        "name": "Position",
        "type": "CLIENT_INFO",
        "dataType": "STRING",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "customFieldSet": {
          "encodedKey": "8a193c26722b51b701722d77c55123b1",
          "id": "_Custom_Fields_Clients",
          "name": "Custom Fields",
          "createdDate": "2020-05-19T15:05:24+0000",
          "lastModifiedDate": "2020-10-23T09:52:21+0000",
          "indexInList": 3,
          "type": "CLIENT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 0,
        "state": "NORMAL",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a193c26722b51b701722d77c55123b3",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a193c26722b51b701722d77c5e423b4",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "value": "Extruding and forming machine operator",
      "indexInList": 0,
      "customFieldID": "Position_Clients",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19d88a74d89f320174d9851c9a72fd",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "customFieldKey": "8a19d88a74d89f320174d9793aac7252",
      "customField": {
        "encodedKey": "8a19d88a74d89f320174d9793aac7252",
        "id": "vrfy_lnk",
        "creationDate": "2020-09-29T10:49:03+0000",
        "lastModifiedDate": "2021-02-10T13:28:50+0000",
        "name": "email verify link",
        "type": "CLIENT_INFO",
        "dataType": "STRING",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "link to account verification",
        "customFieldSet": {
          "encodedKey": "8a193c26722b51b701722d77ccaf2635",
          "id": "_Others_Clients",
          "name": "Others",
          "createdDate": "2020-05-19T15:05:25+0000",
          "lastModifiedDate": "2020-10-23T09:52:21+0000",
          "indexInList": 5,
          "type": "CLIENT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 2,
        "state": "DEACTIVATED",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a19d88a74d89f320174d9793aac7253",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19d88a74d89f320174d9793aac7254",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "value": "http://gohere.com?param=param&from=cf",
      "indexInList": 1,
      "customFieldID": "vrfy_lnk",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a19d88a74d89f320174d9851c9a72ff",
      "parentKey": "8a193c26722b51b701722d77c5e423b7",
      "customFieldKey": "8a19d88a74d89f320174d97ae1837276",
      "customField": {
        "encodedKey": "8a19d88a74d89f320174d97ae1837276",
        "id": "vrfy_param",
        "creationDate": "2020-09-29T11:00:14+0000",
        "lastModifiedDate": "2021-02-10T13:28:50+0000",
        "name": "verify param",
        "type": "CLIENT_INFO",
        "dataType": "STRING",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "a param",
        "customFieldSet": {
          "encodedKey": "8a193c26722b51b701722d77ccaf2635",
          "id": "_Others_Clients",
          "name": "Others",
          "createdDate": "2020-05-19T15:05:25+0000",
          "lastModifiedDate": "2020-10-23T09:52:21+0000",
          "indexInList": 5,
          "type": "CLIENT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 3,
        "state": "DEACTIVATED",
        "customFieldSelectionOptions": [],
        "viewRights": {
          "encodedKey": "8a19d88a74d89f320174d97ae1837277",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a19d88a74d89f320174d97ae1837278",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [],
        "amounts": {}
      },
      "value": "123abc",
      "indexInList": 2,
      "customFieldID": "vrfy_param",
      "customFieldSetGroupIndex": -1
    }
  ],
  "idDocuments": [
    {
      "encodedKey": "8a19a68f7b05dc0d017b073218294d01",
      "clientKey": "8a193c26722b51b701722d77c5e423b7",
      "documentType": "pass",
      "documentId": "1234",
      "issuingAuthority": "jiij",
      "validUntil": "2021-09-30T00:00:00+0000",
      "indexInList": 0
    }
  ],
  "notificationTemplates": [
    {
      "encodedKey": "8a19decb737abb3201737b0b7ac3495a",
      "creationDate": "2020-07-23T09:41:30+0000",
      "lastModifiedDate": "2020-07-23T09:41:30+0000",
      "name": "pw reset portal",
      "template": "here's da link {PASSWORD_URL}",
      "type": "EMAIL",
      "targetType": "CLIENT",
      "option": "OPT_OUT",
      "event": "PORTAL_PASSWORD_RESET",
      "subject": "pw reset for portal",
      "authorization": "NO_AUTHORIZATION",
      "activated": true,
      "trigger": "AUTOMATIC",
      "isInUse": false
    },
    {
      "encodedKey": "8a19decb737abb3201737b0b7ac34958",
      "creationDate": "2020-07-23T09:41:00+0000",
      "lastModifiedDate": "2020-07-23T09:41:00+0000",
      "name": "portal activated",
      "template": "{PASSWORD_URL}",
      "type": "EMAIL",
      "targetType": "CLIENT",
      "option": "OPT_IN",
      "event": "PORTAL_ACTIVATED",
      "subject": "portal activated",
      "authorization": "NO_AUTHORIZATION",
      "activated": true,
      "trigger": "AUTOMATIC",
      "isInUse": false
    },
    {
      "encodedKey": "8a19a68f7b05dc0d017b06eb207c486d",
      "creationDate": "2021-08-02T14:08:49+0000",
      "lastModifiedDate": "2021-08-02T14:22:18+0000",
      "name": "test headers",
      "template": "{\n\"test\":\"{RECIPIENT_ID}\"\n}",
      "type": "WEB_HOOK",
      "targetType": "CLIENT",
      "option": "OPT_OUT",
      "event": "CLIENT_ACTIVITY",
      "url": "https://webhook.site/366d22e2-7038-4abc-ab8d-f5bffc017f85",
      "contentType": "APPLICATION_JSON",
      "requestType": "POST",
      "authorization": "NO_AUTHORIZATION",
      "username": "",
      "activated": true,
      "trigger": "AUTOMATIC",
      "isInUse": false
    }
  ],
  "groupKeys": []
}

Responses

StatusMeaningDescriptionSchema
200OKokClientExpandedApiV1

Patch Client Record

PATCH /clients/{clientId}

Patch Client

update an existing client

Example Requests

Change a client's state to blacklisted

{
  "client": {
    "state": "BLACKLISTED"
  }
}

update a client with additional profile and contact information

{
  "client": {
    "middleName": "Meri",
    "clientRoleId": "client",
    "homePhone": "(77) 159-443",
    "mobilePhone1": "604-271-7041",
    "birthDate": "1987-07-08",
    "gender": null,
    "emailAddress": "test@mambu.com",
    "preferredLanguage": "ENGLISH",
    "notes": "Powered by Mambu"
  }
}

Parameters

NameTypeDescriptionIn
bodyUpdateClientRequestnonebody
clientId (required)stringThe ID or encoded key of a clientpath

Example Responses

200 Response

{
  "errorSource": "string",
  "returnCode": 0,
  "returnStatus": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKokExecutionStatusApiV1

Update Client

POST /clients/{clientId}

Update a Client

update a client record

Example Requests

Add details to an existing client

{
    "client":{
      "firstName":"Max",
      "lastName":"Alexander",
      "middleName":"Frank",
      "homePhone":"56611235498",
      "emailAddress":"max.alexander@mambu.com",
      "mobilePhone1":"211111111",
      "gender":"MALE"
   }
}

Update client with encodedKey 8a512236413395270141356dbc9f0025 using JSON and remove all custom field values, addresses and ID Documents

{
   "client":{
      "firstName":"Max",
      "lastName":"Alexander",
      "middleName":"Frank",
      "homePhone":"56611235498",
      "emailAddress":"max.alexander@mambu.com",
      "mobilePhone1":"211111111",
      "gender":"MALE"
   },
   "idDocuments":[ ],
   "addresses":[ ],
   "customInformation":[ ]
}

Update a client using JSON and update custom field values, addresses, and ID documents

{
  "client": {
    "firstName": "Max",
    "lastName": "Alexander",
    "middleName": "Frank",
    "homePhone": "56611235498",
    "emailAddress": "max.alexander@mambu.com",
    "mobilePhone1": "211111111",
    "gender": "MALE"
  },
  "idDocuments": [
    {
      "documentType": "CI",
      "documentId": "23453",
      "issuingAuthority": "Police",
      "validUntil": "2014-09-30T00:00:00+0000",
      "identificationDocumentTemplateKey": "9b0a97094b4cd73f014b5f5ef0e811d2"
    },
    {
      "documentType": "Passport",
      "documentId": "sss332",
      "issuingAuthority": "Passport Agency",
      "validUntil": "2014-09-30T00:00:00+0000",
      "identificationDocumentTemplateKey": "2a0a00a24b4ce72a025c4afefce821e9"
    }
  ],
  "addresses": [
    {
      "line1": "8 Howling Lane",
      "line2": "Hackney",
      "city": "London",
      "region": "London",
      "postcode": "1234554321",
      "country": "United Kingdom"
    }
  ],
  "customInformation": [
    {
      "value": "1",
      "customFieldID": "Family_Members"
    },
    {
      "value": "TRUE",
      "customFieldID": "Has_children"
    },
    {
      "value": "Some Studies",
      "customFieldID": "Studies"
    }
  ]
}

Parameters

NameTypeDescriptionIn
bodyCreateOrUpdateClientRequestupdated client databody
clientId (required)stringThe ID or encoded key of a clientpath

Example Responses

200 Response

{
  "addresses": [
    {
      "addressType": "string",
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string",
      "toBeDeleted": true
    }
  ],
  "client": {
    "activationDate": "string",
    "approvedDate": "string",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "string",
    "clientRole": {
      "encodedKey": "string"
    },
    "closedDate": "string",
    "creationDate": "string",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idPattern": "string",
    "lastModifiedDate": "string",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "mobilePhone1": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalPreferences": {
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "lastLoggedInDate": "string",
      "password": "string",
      "portalState": "DISABLED"
    },
    "preferredLanguage": "PORTUGESE",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  },
  "customInformation": [
    {
      "amount": 0,
      "customField": {
        "amounts": {
          "property1": 0,
          "property2": 0
        },
        "builtInCustomFieldId": "MOBILE_PHONE",
        "creationDate": "string",
        "customFieldProductSettings": [
          {
            "customFieldEncodedKey": "string",
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isDefault": true,
            "isRequired": true,
            "linkType": "CLIENT_ROLE",
            "productKey": "string"
          }
        ],
        "customFieldSelectionOptions": [
          {
            "constraint": {
              "customFieldKey": "string",
              "dataFieldType": "NATIVE",
              "dataFieldValue": "string",
              "dataItemType": "WRITTEN_OFF_LOANS",
              "dataType": "ENUM",
              "encodedKey": "string",
              "filterElement": "STARTS_WITH_CASE_SENSITIVE",
              "groupNumber": 0,
              "index": 0,
              "linkingOperator": "OR",
              "secondValue": "string",
              "value": "string"
            },
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "score": 0,
            "value": "string"
          }
        ],
        "customFieldSet": {
          "builtInType": "DETAILS",
          "createdDate": "string",
          "customFields": [
            {}
          ],
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "id": "string",
          "indexInList": 0,
          "lastModifiedDate": "string",
          "name": "string",
          "notes": "string",
          "type": "USER_INFO",
          "usage": "SINGLE"
        },
        "dataType": "GROUP_LINK",
        "description": "string",
        "editRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        },
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "id": "string",
        "indexInList": 0,
        "isDefault": true,
        "isRequired": true,
        "lastModifiedDate": "string",
        "name": "string",
        "state": "DEACTIVATED",
        "type": "USER_INFO",
        "unique": true,
        "validationPattern": "string",
        "valueLength": "SHORT",
        "values": [
          "string"
        ],
        "viewRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        }
      },
      "customFieldID": "string",
      "customFieldKey": "string",
      "customFieldSetGroupIndex": 0,
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "indexInList": 0,
      "linkedEntityKeyValue": "string",
      "parentKey": "string",
      "selectionKey": "string",
      "value": "string"
    }
  ],
  "groupKeys": [
    "string"
  ],
  "idDocuments": [
    {
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "toBeDeleted": true,
      "validUntil": "string",
      "validUntilDTOdate": {
        "dayOfMonth": 0,
        "monthOfYear": 0,
        "year": 0
      }
    }
  ]
}

Responses

StatusMeaningDescriptionSchema
200OKokCreateOrUpdateClientResponse

Anonymize Client Data

POST /clients/{clientId}/action

Anonymize client

In the context of the GDPR, we wanted to provide an option to easily anonymize a client's identifiable data upon request, as an exited client must now have the 'Right to be forgotten'. To learn more about the legal aspects of this, please see Art. 17 GDPR.

This gives clients in the exited state, the right to request that all identifiable records are removed (or, more precisely, anonymized up to the point where the client is no longer traceable, but the information that the company needs to keep its systems stable can be kept within some legal standards).

Please be aware This action may only be performed on clients in the exited state. Otherwise, Mambu will return error 3760 "CLIENT_DOES_NOT_HAVE_EXITED_STATE"

A user has the permission to run the above call only via API 1.0 only if he has the 'Anonymize Client Data' permission, which can be granted by an Administrator (in User Permissions > Clients), only to users that have API access.

Please note After the anonymization call is run, a new client ID will be generated and the old client ID will be overwritten. As a consequence, calling the API twice with the same client ID will result in the second call returning a Resource Not Found (INVALID_CLIENT_ID) error.

Affected areas

Initially the client is unsubscribed from notifications (client notification requests are deleted). Afterwards the following data is affected:

Client fields:

Client loan accounts:

Client loan accounts gurantees:

Client loan repayments:

Client deposit accounts:

Client savings accounts transactions:

Client lines of credit:

Client guarantees (guarantees in which the client is guarantor):

Notification messages associated with a client:

Client ID

A new client ID will be generated and the old client ID will be overwritten (as a consequence, calling the API twice with the same client ID will result in the second call returning Resource Not Found (INVALID_CLIENT_ID error).

Example Requests

ANONYMIZE client

{
  "action": "ANONYMIZE"
}

Parameters

NameTypeDescriptionIn
clientId (required)stringThe ID of the clientpath
action (required)stringthe action to performbody

Enumerated Values

ParameterValue
actionANONYMIZE

Example Responses

200 : ok
Sucess Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
client in wrong state

{
  "returnCode": 3760,
  "returnStatus": "CLIENT_DOES_NOT_HAVE_EXITED_STATE"
}

404 : Not Found
client not found

{
  "returnCode": 301,
  "returnStatus": "INVALID_CLIENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKokExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1
404Not FoundNot FoundExecutionStatusApiV1

Update Client Custom Field Values

PATCH /clients/{clientId}/custominformation

Update custom field values

Example Requests

Update a single custom field value

{
  "customInformation": [
    {
      "customFieldID": "custom_field_2",
      "value": "3"
    }
  ]
}

Update a field in a group

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field",
      "value": "new value",
      "customFieldSetGroupIndex": "0"
    }
  ]
}

Update multiple custom field values

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field_2",
      "value": "3",
      "customFieldSetGroupIndex": "0"
    },
    {
      "customFieldID": "field_3",
      "value": "divorced"
    }
  ]
}

Parameters

NameTypeDescriptionIn
customInformation[object]nonebody
» customFieldID (required)stringnonebody
» value (required)stringnonebody
» customFieldSetGroupIndexstringRequired if field to update is part of a group, if the Field Set Group Index is not set, a new group will be created with the value provided.body
clientId (required)stringThe ID of the clientpath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Client Custom Field Definition

GET /clients/{clientId}/custominformation/{customFieldId}

Get a custom field definition for a client

Allows retrieving a custom field definition for a given client directly by the ID/key of the client and the ID/key of the custom field definition.

Parameters

NameTypeDescriptionIn
clientId (required)stringThe ID of the client.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
A custom field definition

[
  {
    "encodedKey": "8a19cd6f74674df9017467f25aab02c6",
    "parentKey": "8a193c26722b51b701722d779e7122de",
    "customFieldKey": "8a19cd6f74674df9017467ef8e6802af",
    "customField": {
      "encodedKey": "8a19cd6f74674df9017467ef8e6802af",
      "id": "cf_client",
      "creationDate": "2020-09-07T09:42:33+0000",
      "lastModifiedDate": "2020-09-07T09:42:33+0000",
      "name": "Example Custom Field Definition",
      "type": "BRANCH_INFO",
      "dataType": "CHECKBOX",
      "valueLength": "SHORT",
      "isDefault": false,
      "isRequired": false,
      "description": "an example of a checkbox custom field definition",
      "customFieldSet": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802ae",
        "id": "_example_client_custom_field_set",
        "name": "example client custom field set",
        "notes": "example custom field set",
        "createdDate": "2020-09-07T09:41:50+0000",
        "lastModifiedDate": "2020-09-07T09:41:50+0000",
        "indexInList": 2,
        "type": "BRANCH_INFO",
        "usage": "SINGLE"
      },
      "indexInList": 0,
      "state": "NORMAL",
      "customFieldSelectionOptions": [],
      "viewRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b0",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "editRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b1",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "unique": false,
      "values": [],
      "amounts": {}
    },
    "value": "TRUE",
    "indexInList": -1,
    "customFieldID": "cf_client",
    "customFieldSetGroupIndex": -1
  }
]

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCustomFieldApiV1
404Not FoundNot FoundInline

Response Schema

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Client Custom Field Value

PATCH /clients/{clientId}/custominformation/{customFieldId}

Update a custom field value for a client

Update a client custom field value

Example requests

{
  "value": "string"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
clientId (required)stringThe ID of the client.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Sucess response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Client Custom Field Value

DELETE /clients/{clientId}/custominformation/{customFieldId}

Delete Client Custom Field Value

Delete a single custom field value

Parameters

NameTypeDescriptionIn
clientId (required)stringThe ID of the client.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Grouped Client Custom Fields

PATCH /clients/{clientId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Update grouped custom field value

Update custom field value, which is part of a group

Example requests

{
  "value": "string"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
clientId (required)stringThe ID of the clientpath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
wrong group index provided

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
field not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Grouped Client Custom Fields

DELETE /clients/{clientId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Delete grouped custom field value

Delete a custom field value, which is part of a group

Parameters

NameTypeDescriptionIn
clientId (required)stringThe ID of the clientpath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Client Comments

GET /clients/{clientId}/comments

Get all client comments

get all comments for a client

Parameters

NameTypeDescriptionIn
limitstringnonequery
offsetstringnonequery
clientId (required)stringthe ID of the clientpath

Example Responses

200 : OK
an array of comments

[
  {
    "encodedKey": "8a19b7057471f4af017472dc0fd80470",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "creationDate": "2020-09-09T14:24:42+0000",
    "lastModifiedDate": "2020-09-09T14:24:42+0000",
    "text": "aanother afmaefomaef<div><br /></div><div><u>aefaefaf</u></div><div><u><br /></u></div><div><u>afaef</u></div>"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c8bf25ab",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "text": "Should suggest she apply for the agriculture loan given the nature of their business"
  }
]

400 : Bad Request
bad client ID

{
  "returnCode": 149,
  "returnStatus": "INVALID_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CommentApiV1]nonenone
» creationDatestring(date-time)the date and time at which this comment was addednone
» encodedKeystringa unique key for this commentnone
» lastModifiedDatestring(date-time)the date and time at which this comment was last modifiednone
» parentKeystringthe unique key of the parent object for this comment, for example, the client or loan account to which it relatesnone
» textstringthe text of the comment as a string, must be properly JSON escpaped if it contains special charactersnone
» userKeystringthe unique key of the user who created the commentnone

Create Client Comment

POST /clients/{clientId}/comments

Create a Client Comment

create new comment for a client

Example requests

a comment

{
  "comment": {
    "text": "this is a comment with \" \" all kinds of : \\ / \"non compliant\" stuff & = which has been JSON escaped"
  }
}

Parameters

NameTypeDescriptionIn
commentobjectan object contining the commentbody
» textstringtext of the comment to be added. if adding complex content make sure it is properly JSON encoded before making your requestbody
clientId (required)stringthe ID of the clientpath

Example Responses

200 : OK
a comment

{
  "encodedKey": "8a19c34574720f9e0174734a039f06e2",
  "parentKey": "8a193c26722b51b701722d77c5e423b7",
  "userKey": "8a194075720ece2c017226fced6f005e",
  "creationDate": "2020-09-09T14:39:36+0000",
  "lastModifiedDate": "2020-09-09T14:39:36+0000",
  "text": "this is a comment with \" \" all kinds of : \\ / non compliant stuff & = which has been JSON escaped"
}

400 : Bad Request
extra parameters in the request

{
  "returnCode": 27,
  "returnStatus": "PARAMETER_NOT_ALLOWED"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCommentApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Client Documents

GET /clients/{clientId}/documents

Get Client Documents

get documents for a given client

Parameters

NameTypeDescriptionIn
clientId (required)stringthe ID of the clientpath
offsetintegernonequery
limitintegernonequery

Example Responses

200 Response

[
  {
    "createdByUserKey": "string",
    "creationDate": "string",
    "description": "string",
    "documentHolderKey": "string",
    "documentHolderType": "BRANCH",
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "fileSize": 0,
    "id": 0,
    "lastModifiedDate": "string",
    "location": "string",
    "name": "string",
    "originalFilename": "string",
    "type": "string",
    "userName": "string"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[DocumentApiV1]nonenone
» createdByUserKeystringthe encoded key of the user who added this documentnone
» creationDatestringthe date and time when this document was creatednone
» descriptionstringa description of this documentnone
» documentHolderKeystringthe encoded key of the entity to which this document is attachednone
» documentHolderTypestringthe type of entity, eg. client, loan product, to which this document is attachednone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» fileSizenumberthe size, in bytes, of the attached documentnone
» idnumberan ID for this documentnone
» lastModifiedDatestringthe date on which this document was last modifiednone
» locationstringindicates where the document is savednone
» namestringthe display name of this documentnone
» originalFilenamestringthe name of the originally uploaded filenone
» typestringthe file type of the document, eg. png, jpeg, pdfnone
» userNamestringthe name of the user who uploaded the documentnone

Enumerated Values

PropertyValue
documentHolderTypeBRANCH
documentHolderTypeLOAN_ACCOUNT
documentHolderTypeGROUP
documentHolderTypeDEPOSIT_ACCOUNT
documentHolderTypeLINE_OF_CREDIT
documentHolderTypeLOAN_PRODUCT
documentHolderTypeGL_JOURNAL_ENTRY
documentHolderTypeSAVINGS_PRODUCT
documentHolderTypeUSER
documentHolderTypeCLIENT
documentHolderTypeCENTRE
documentHolderTypeID_DOCUMENT

Add Client Document

POST /clients/{clientId}/documents

Add new Document

create documents for a given client

Example requests

{
  "document": {
    "description": "string",
    "documentHolderKey": "string",
    "documentHolderType": "CLIENT",
    "name": "string",
    "type": "PDF"
  },
  "documentContent": "string"
}

Parameters

NameTypeDescriptionIn
clientId (required)stringthe ID of the clientpath
bodyCreateDocumentApiV1a new document to be attached to an entitybody

Example Responses

201 Response

{
  "createdByUserKey": "string",
  "creationDate": "string",
  "description": "string",
  "documentHolderKey": "string",
  "documentHolderType": "BRANCH",
  "encodedKey": "8a19b7057471f4af017472dc0fd80472",
  "fileSize": 0,
  "id": 0,
  "lastModifiedDate": "string",
  "location": "string",
  "name": "string",
  "originalFilename": "string",
  "type": "string",
  "userName": "string"
}

Responses

StatusMeaningDescriptionSchema
201CreatedokDocumentApiV1

Delete Client Asset

DELETE /clients/{clientID}/documents/PROFILE_PICTURE

delete profile picture on file for a given client

Parameters

NameTypeDescriptionIn
clientID (required)stringthe ID of the clientpath

Example Responses

200 Response

{
  "errorSource": "string",
  "returnCode": 0,
  "returnStatus": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKokExecutionStatusApiV1

Get Client Profile Picture

GET /clients/{clientID}/documents/PROFILE_PICTURE

Get Client Asset

Get the profile picture for a given client. Images for the profile picture and signature are encoded in base 64. This should be read and decoded in order to generate a binary file representing the image. The format of the image is specified at the beginning of the response.

Parameters

NameTypeDescriptionIn
clientID (required)stringthe ID of the clientpath

Example Responses

200 : OK
a base 64 encoded profile picture

"iVBORw0KGgoAAAANSUh=="

Responses

StatusMeaningDescriptionSchema
200OKOKstring

Add Client Profile Picture

POST /clients/{clientID}/documents/PROFILE_PICTURE

Update Client Profile Picture

Add or update the profile picture on file for a given client.

Example requests

client profile picture

{
  "document": {
    "documentHolderKey": "88af35b9ca0933ec72",
    "documentHolderType": "CLIENT",
    "name": "picture",
    "type": "JPG"
  },
  "documentContent": "d2h5IGRpZCB5b3UgYm90aGVyIHRvIGRlY29kZSB0aGlzPw=="
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new document to be attached to an entitybody
clientID (required)stringthe ID of the clientpath

Example Responses

201 : ok
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
missing required parameter

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "document name is required"
}

Responses

StatusMeaningDescriptionSchema
201CreatedokExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Delete Client Signature

DELETE /clients/{clientID}/documents/SIGNATURE

delete signature on file for a given client

Parameters

NameTypeDescriptionIn
clientID (required)stringthe ID of the clientpath

Example Responses

200 Response

{
  "errorSource": "string",
  "returnCode": 0,
  "returnStatus": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKokExecutionStatusApiV1

Get Client Signature

GET /clients/{clientID}/documents/SIGNATURE

Get Client Signature

get the signaturee for a given client

Parameters

NameTypeDescriptionIn
clientID (required)stringthe ID of the clientpath

Example Responses

200 Response

"\"iVBORw0KGgoAAAANSUh==\""

Responses

StatusMeaningDescriptionSchema
200OKOKstring

Add Client Signature

POST /clients/{clientID}/documents/SIGNATURE

Update Client Signature

add or update the signature on file for a given client

Example requests

a client signature

{
  "document": {
    "documentHolderKey": "88af35b9ca0933ec72",
    "documentHolderType": "CLIENT",
    "name": "signature",
    "type": "PNG"
  },
  "documentContent": "d2h5IGRpZCB5b3UgYm90aGVyIHRvIGRlY29kZSB0aGlzPyBub3RoaW5nIGJldHRlciB0byBkbz8="
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new document to be attached to an entitybody
clientID (required)stringthe ID of the clientpath

Example Responses

201 : ok
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
missing required parameter

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "document name is required"
}

Responses

StatusMeaningDescriptionSchema
201CreatedokExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Delete Client Document

DELETE /clients/{clientId}/documents/{documentId}

Delete Client Documents

delete a client document by ID

Parameters

NameTypeDescriptionIn
clientId (required)stringthe id of the clientpath
documentId (required)stringnonepath

Example Responses

200 : ok
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKokExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Get Client Document by ID

GET /clients/{clientId}/documents/{documentId}

Get a Client Document by ID

get a client document by its ID

Parameters

NameTypeDescriptionIn
clientId (required)stringthe id of the clientpath
documentId (required)stringnonepath

Example Responses

200 Response

"string"

Responses

StatusMeaningDescriptionSchema
200OKokstring

Get Savings Accounts for a Client

GET /clients/{clientId}/savings

Get Savings Accounts for a Client

Get all savings accounts for a client by client id

Parameters

NameTypeDescriptionIn
clientId (required)stringnonepath
offsetintegernonequery
limitintegernonequery
fullDetailsbooleannonequery
savingsId (required)stringnonepath

Example Responses

200 Response

[
  {
    "accountHolderKey": "string",
    "accountHolderType": "GROUP",
    "accountState": "WITHDRAWN",
    "accountType": "CURRENT_ACCOUNT",
    "accruedInterest": 0,
    "activationDate": "string",
    "allowOverdraft": true,
    "approvedDate": "string",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "availableBalance": 0,
    "balance": 0,
    "closedDate": "string",
    "creationDate": "string",
    "currency": {
      "code": "string",
      "creationDate": "string",
      "currencySymbolPosition": "AFTER_NUMBER",
      "digitsAfterDecimal": 0,
      "isBaseCurrency": true,
      "lastModifiedDate": "string",
      "name": "string",
      "symbol": "string"
    },
    "currencyCode": "string",
    "customFieldValues": [
      {
        "amount": 0,
        "customField": {
          "amounts": {
            "property1": 0,
            "property2": 0
          },
          "builtInCustomFieldId": "MOBILE_PHONE",
          "creationDate": "string",
          "customFieldProductSettings": [
            {
              "customFieldEncodedKey": "string",
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "isDefault": true,
              "isRequired": true,
              "linkType": "CLIENT_ROLE",
              "productKey": "string"
            }
          ],
          "customFieldSelectionOptions": [
            {
              "constraint": {
                "customFieldKey": "string",
                "dataFieldType": "NATIVE",
                "dataFieldValue": "string",
                "dataItemType": "WRITTEN_OFF_LOANS",
                "dataType": "ENUM",
                "encodedKey": "string",
                "filterElement": "STARTS_WITH_CASE_SENSITIVE",
                "groupNumber": 0,
                "index": 0,
                "linkingOperator": "OR",
                "secondValue": "string",
                "value": "string"
              },
              "encodedKey": "8a19b7057471f4af017472dc0fd80472",
              "id": "string",
              "score": 0,
              "value": "string"
            }
          ],
          "customFieldSet": {
            "builtInType": "DETAILS",
            "createdDate": "string",
            "customFields": [
              {}
            ],
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "indexInList": 0,
            "lastModifiedDate": "string",
            "name": "string",
            "notes": "string",
            "type": "USER_INFO",
            "usage": "SINGLE"
          },
          "dataType": "GROUP_LINK",
          "description": "string",
          "editRights": {
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isAccessibleByAllUsers": true,
            "roles": [
              "string"
            ]
          },
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "id": "string",
          "indexInList": 0,
          "isDefault": true,
          "isRequired": true,
          "lastModifiedDate": "string",
          "name": "string",
          "state": "DEACTIVATED",
          "type": "USER_INFO",
          "unique": true,
          "validationPattern": "string",
          "valueLength": "SHORT",
          "values": [
            "string"
          ],
          "viewRights": {
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isAccessibleByAllUsers": true,
            "roles": [
              "string"
            ]
          }
        },
        "customFieldID": "string",
        "customFieldKey": "string",
        "customFieldSetGroupIndex": 0,
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "indexInList": 0,
        "linkedEntityKeyValue": "string",
        "parentKey": "string",
        "selectionKey": "string",
        "value": "string"
      }
    ],
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "feesDue": 0,
    "holdBalance": 0,
    "id": "string",
    "interestDue": 0,
    "interestPaymentDates": [
      {
        "dayOfMonth": 0,
        "monthOfYear": 0,
        "year": 0
      }
    ],
    "interestPaymentPoint": "EVERY_WEEK",
    "interestSettings": {
      "accrueInterestAfterMaturity": true,
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "interestChargeFrequency": "EVERY_WEEK",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "MONTHS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "TIERED_PERIOD",
      "interestRateTiers": [
        {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "endingBalance": 0,
          "endingDay": 0,
          "index": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    },
    "lastAccountAppraisalDate": "string",
    "lastInterestCalculationDate": "string",
    "lastInterestStoredDate": "string",
    "lastModifiedDate": "string",
    "lastOverdraftInterestReviewDate": "string",
    "lastSetToArrearsDate": "string",
    "lineOfCreditKey": "string",
    "lockedBalance": 0,
    "lockedDate": "string",
    "maturityDate": "string",
    "maxWidthdrawlAmount": 0,
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "name": "string",
    "notes": "string",
    "overdraftAmount": 0,
    "overdraftExpiryDate": "string",
    "overdraftExpiryDateDTO": {
      "dayOfMonth": 0,
      "monthOfYear": 0,
      "year": 0
    },
    "overdraftInterestAccrued": 0,
    "overdraftInterestSettings": {
      "accrueInterestAfterMaturity": true,
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "interestChargeFrequency": "EVERY_WEEK",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "MONTHS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "TIERED_PERIOD",
      "interestRateTiers": [
        {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "endingBalance": 0,
          "endingDay": 0,
          "index": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    },
    "overdraftLimit": 0,
    "productTypeKey": "string",
    "recommendedDepositAmount": 0,
    "targetAmount": 0,
    "technicalInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAccrued": 0,
    "withholdingTaxSourceKey": "string"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[SavingsAccountApiV1]nonenone
» accountHolderKeystringnonenone
» accountHolderTypestringnonenone
» accountStatestringnonenone
» accountTypestringnonenone
» accruedInterestnumbernonenone
» activationDatestringnonenone
» allowOverdraftbooleannonenone
» approvedDatestringnonenone
» assignedBranchKeystringnonenone
» assignedCentreKeystringnonenone
» assignedUserKeystringnonenone
» availableBalancenumbernonenone
» balancenumbernonenone
» closedDatestringnonenone
» creationDatestringthe date and time when this savings account was creatednone
» currencyCurrencyApiV1nonenone
»» codestringthe three letter ISO code for this currencynone
»» creationDatestringthe date on which this currency was creatednone
»» currencySymbolPositionstringindicates where the currency symbol should appear in relation to the numeric valuenone
»» digitsAfterDecimalnumberindicates how many decimal places are allowed for this currency. For example, a currenncy with 100 minor units to 1 major unit, there will be 2 decimal places.none
»» isBaseCurrencybooleanwhether this currency is the base currency for your banking institutionnone
»» lastModifiedDatestringthe date on which this currency was last modifiednone
»» namestringthe name of this currencynone
»» symbolstringthe currency symnbol used for this currencynone
» currencyCodestringnonenone
» customFieldValues[CustomFieldValueApiV1]nonenone
»» amountnumbernonenone
»» customFieldCustomFieldApiV1nonenone
»»» amountsobjectused when options available for a custom field definition translate to predefined amounts, for example, when the custom field value is used to generate a scorenone
»»»» additionalPropertiesnumbernonenone
»»» builtInCustomFieldIdstringif this field is one of the built in custom fiel definitions, this will have a value. These names are reserved and you can not use them for your own custom field definitionsnone
»»» creationDatestringthe date on which this custom field definition was creatednone
»»» customFieldProductSettings[CustomFieldLinkApiV1]nonenone
»»»» customFieldEncodedKeystringthe key to the parent custom field definitionnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isDefaultbooleanwhether this field is displayed by default when creating a new recordnone
»»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»»» linkTypestringthe type of entity this field represents a link tonone
»»»» productKeystringwhen the link type is product, this field should contain the encoded key of the linekd productnone
»»» customFieldSelectionOptions[CustomFieldSelectionApiV1][represents a possible selection for select type custom field definitions]none
»»»» constraintCustomFilterConstraintApiV1nonenone
»»»»» customFieldKeystringnonenone
»»»»» dataFieldTypestringnonenone
»»»»» dataFieldValuestringnonenone
»»»»» dataItemTypestringnonenone
»»»»» dataTypestringnonenone
»»»»» encodedKeystringnonenone
»»»»» filterElementstringnonenone
»»»»» groupNumbernumbernonenone
»»»»» indexnumbernonenone
»»»»» linkingOperatorstringnonenone
»»»»» secondValuestringnonenone
»»»»» valuestringnonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this selectable itemnone
»»»» scorenumberthe score assigned to this selectionnone
»»»» valuestringdisplay name of this optionnone
»»» customFieldSetCustomFieldSetApiV1nonenone
»»»» builtInTypestringif this set is part of the set of built-in custom field sets, its type will be shown herenone
»»»» createdDatestringthe date and time when this custom field set was creatednone
»»»» customFields[CustomFieldApiV1]an array of custom field definitions included in this custom field setnone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» idstringthe ID of this custom field setnone
»»»» indexInListnumberfor field sets that can be added to an entity more than once, this number represents the index in the list and is used when changing valuesnone
»»»» lastModifiedDatestringthe date on which this custom field set was last modifiednone
»»»» namestringthe name of this custom field setnone
»»»» notesstringany notes regarding this custom field setnone
»»»» typestringthe entity type that this custom field definition is attached tonone
»»»» usagestringwhether this custom field set can only be used once, or added multiple times to the same entitynone
»»» dataTypestringthe type of custom field definitionnone
»»» descriptionstringa brief description of this custom field definitionnone
»»» editRightsUsageRightsApiV1nonenone
»»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»»» isAccessibleByAllUsersbooleannonenone
»»»» roles[string]nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» idstringthe ID for this custom field definitionnone
»»» indexInListnumbernonenone
»»» isDefaultbooleanwhether this field will be included by default on new recordsnone
»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»» lastModifiedDatestringthe date on which this custom field definition was last modifiednone
»»» namestringthe name of this custom field definitionnone
»»» statestringwhether this field is available for use or has been deactivatednone
»»» typestringthe type of data this custom field definition will containnone
»»» uniquebooleanwhether the data in this custom field definition needs to be a unique valuenone
»»» validationPatternstringa user-provided pattern to which data in this custom field definition must conform where @ represents numbers, # represents letters and $ is either a number or letter. Other special characters used as separators are allowed, for example @@-##-$$$none
»»» valueLengthstringwhether this field needs to support a large number of charactersnone
»»» values[string]a list of possible values when the field is a selection fieldnone
»»» viewRightsUsageRightsApiV1nonenone
»» customFieldIDstringnonenone
»» customFieldKeystringnonenone
»» customFieldSetGroupIndexnumbernonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» indexInListnumbernonenone
»» linkedEntityKeyValuestringnonenone
»» parentKeystringnonenone
»» selectionKeystringnonenone
»» valuestringnonenone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» feesDuenumbernonenone
» holdBalancenumbernonenone
» idstringnonenone
» interestDuenumbernonenone
» interestPaymentDates[DateDTOApiV1]nonenone
»» dayOfMonthnumberthe day of the monthnone
»» monthOfYearnumberthe monthnone
»» yearnumberthe yearnone
» interestPaymentPointstringnonenone
» interestSettingsInterestAccountSettingsApiV1nonenone
»» accrueInterestAfterMaturitybooleannonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» interestChargeFrequencystringnonenone
»» interestChargeFrequencyCountnumbernonenone
»» interestRatenumbernonenone
»» interestRateReviewCountnumbernonenone
»» interestRateReviewUnitstringnonenone
»» interestRateSourcestringnonenone
»» interestRateTermsstringnonenone
»» interestRateTiers[InterestRateTierApiV1]nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» endingBalancenumbernonenone
»»» endingDaynumbernonenone
»»» indexnumbernonenone
»»» interestRatenumbernonenone
»» interestSpreadnumbernonenone
» lastAccountAppraisalDatestringnonenone
» lastInterestCalculationDatestringnonenone
» lastInterestStoredDatestringnonenone
» lastModifiedDatestringthe date on which this savings account was last modifiednone
» lastOverdraftInterestReviewDatestringnonenone
» lastSetToArrearsDatestringnonenone
» lineOfCreditKeystringnonenone
» lockedBalancenumbernonenone
» lockedDatestringnonenone
» maturityDatestringnonenone
» maxWidthdrawlAmountnumbernonenone
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» namestringnonenone
» notesstringnonenone
» overdraftAmountnumbernonenone
» overdraftExpiryDatestringnonenone
» overdraftExpiryDateDTODateDTOApiV1nonenone
» overdraftInterestAccruednumbernonenone
» overdraftInterestSettingsInterestAccountSettingsApiV1nonenone
» overdraftLimitnumbernonenone
» productTypeKeystringnonenone
» recommendedDepositAmountnumbernonenone
» targetAmountnumbernonenone
» technicalInterestDuenumbernonenone
» technicalOverdraftAmountnumbernonenone
» technicalOverdraftInterestAccruednumbernonenone
» withholdingTaxSourceKeystringnonenone

Enumerated Values

PropertyValue
accountHolderTypeGROUP
accountHolderTypeCLIENT
accountStateWITHDRAWN
accountStatePARTIALLY_DISBURSED
accountStateLOCKED
accountStateACTIVE
accountStateCLOSED
accountStatePARTIAL_APPLICATION
accountStateLOCKED_CAPPING
accountStateCLOSED_REJECTED
accountStateRESCHEDULED
accountStateACTIVE_IN_ARREARS
accountStateMATURED
accountStateCLOSED_RESCHEDULED
accountStateCLOSED_WITHDRAWN
accountStatePENDING_APPROVAL
accountStateAPPROVED
accountStateREFINANCED
accountStateDORMANT
accountStateCLOSED_WRITTEN_OFF
accountTypeCURRENT_ACCOUNT
accountTypeREGULAR_SAVINGS
accountTypeFIXED_DEPOSIT
accountTypeINVESTOR_ACCOUNT
accountTypeSAVINGS_PLAN
currencySymbolPositionAFTER_NUMBER
currencySymbolPositionBEFORE_NUMBER
builtInCustomFieldIdMOBILE_PHONE
builtInCustomFieldIdEMAIL_ADDRESS
builtInCustomFieldIdGENDER
builtInCustomFieldIdMIDDLE_NAME
builtInCustomFieldIdHOME_PHONE
builtInCustomFieldIdBIRTHDATE
builtInCustomFieldIdLAST_NAME
builtInCustomFieldIdFIRST_NAME
linkTypeCLIENT_ROLE
linkTypeCHANNEL
linkTypePRODUCT
dataFieldTypeNATIVE
dataFieldTypeCUSTOM
dataItemTypeWRITTEN_OFF_LOANS
dataItemTypeLINE_OF_CREDIT
dataItemTypeINVESTOR_FUND
dataItemTypeTRANSACTION_DETAILS
dataItemTypeDOCUMENT_TEMPLATE
dataItemTypePRODUCT
dataItemTypeMCC_EXPIRATION
dataItemTypeCENTRE
dataItemTypeREPAYMENT_COLLECTION
dataItemTypeTASK
dataItemTypeOUTSTANDING_PORTFOLIO_AMOUNTS
dataItemTypeREVENUE
dataItemTypeCOMPOSED_TRANSACTIONS
dataItemTypeUNION_TRANSACTIONS
dataItemTypePRINCIPAL_PAYMENT_SETTINGS
dataItemTypeLOANS
dataItemTypeDISBURSEMENT_DETAILS
dataItemTypeSAVINGS_TRANSACTION
dataItemTypeIDENTIFICATION_DOCUMENT
dataItemTypeLOAN_PRODUCT
dataItemTypeDISBURSED_LOANS
dataItemTypeLOAN_GROUP
dataItemTypeTRANSACTION_CHANNEL
dataItemTypeCUSTOM_PREDEFINED_FEE
dataItemTypeJOURNAL_ENTRY
dataItemTypeATTACHMENT
dataItemTypePREDEFINED_FEE
dataItemTypeTRANCHE
dataItemTypeTRANSACTION
dataItemTypeINDEX_RATE_SOURCE
dataItemTypeGROUP_ROLE
dataItemTypeLOAN_TRANSACTION
dataItemTypeCLIENT_ROLE
dataItemTypeGROUP
dataItemTypeNOTIFICATION_MESSAGE
dataItemTypeOUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemTypeREPAYMENT
dataItemTypeLOAN_ACCOUNT_GUARANTY
dataItemTypeBRANCH
dataItemTypeCURRENCY
dataItemTypeCARD_TRANSACTION_REVERSAL
dataItemTypeINTEREST_PRODUCT_SETTINGS
dataItemTypeCREATED_ACCOUNTS
dataItemTypeUSER
dataItemTypeSAVINGS_PRODUCT
dataItemTypeCLIENT
dataItemTypePRODUCT_ARREARS_SETTINGS
dataItemTypeSAVINGS
dataItemTypeEXPENSE
dataItemTypeINDEX_RATE
dataItemTypeNOTIFICATION_TEMPLATE
dataItemTypeCUSTOM_FIELD_SELECTION
dataItemTypeACTIVITY
dataTypeENUM
dataTypeMONEY
dataTypeNUMBER
dataTypeDATE_UTC
dataTypeJAVA_BLOB
dataTypeOBJECT
dataTypeBOOLEAN
dataTypeDATE
dataTypePERCENT
dataTypeBIG_DECIMAL
dataTypeSTRING
dataTypeKEY
dataTypeLONG
filterElementSTARTS_WITH_CASE_SENSITIVE
filterElementTHIS_WEEK
filterElementEQUALS
filterElementSTARTS_WITH
filterElementIN
filterElementTODAY
filterElementTHIS_YEAR
filterElementBETWEEN
filterElementAFTER
filterElementLESS_THAN
filterElementDIFFERENT_THAN
filterElementTHIS_MONTH
filterElementNOT_EMPTY
filterElementBEFORE
filterElementEQUALS_CASE_SENSITIVE
filterElementLAST_DAYS
filterElementMORE_THAN
filterElementEMPTY
filterElementON
linkingOperatorOR
linkingOperatorAND
builtInTypeDETAILS
builtInTypeGENERAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
usageSINGLE
usageGROUPED
dataTypeGROUP_LINK
dataTypeDATE
dataTypeNUMBER
dataTypeCHECKBOX
dataTypeCLIENT_LINK
dataTypeSTRING
dataTypeUSER_LINK
dataTypeSELECTION
stateDEACTIVATED
stateNORMAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
valueLengthSHORT
valueLengthLONG
interestPaymentPointEVERY_WEEK
interestPaymentPointON_FIXED_DATES
interestPaymentPointEVERY_MONTH
interestPaymentPointON_ACCOUNT_MATURITY
interestPaymentPointEVERY_3_MONTHS
interestPaymentPointFIRST_DAY_OF_MONTH
interestPaymentPointEVERY_OTHER_WEEK
interestChargeFrequencyEVERY_WEEK
interestChargeFrequencyANNUALIZED
interestChargeFrequencyEVERY_MONTH
interestChargeFrequencyEVERY_X_DAYS
interestChargeFrequencyEVERY_FOUR_WEEKS
interestChargeFrequencyEVERY_DAY
interestRateReviewUnitMONTHS
interestRateReviewUnitWEEKS
interestRateReviewUnitDAYS
interestRateSourceFIXED_INTEREST_RATE
interestRateSourceINDEX_INTEREST_RATE
interestRateTermsTIERED_PERIOD
interestRateTermsFIXED
interestRateTermsTIERED
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT

Get a Savings Account for a Client

GET /clients/{clientId}/savings/{savingsAccountId}

Get a Savings Account for a Client

Get a specific savings account for a given client by savings account ID

Parameters

NameTypeDescriptionIn
clientId (required)stringnonepath
fullDetailsbooleannonequery
savingsId (required)stringnonepath
savingsAccountId (required)stringnonepath

Example Responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "GROUP",
  "accountState": "WITHDRAWN",
  "accountType": "CURRENT_ACCOUNT",
  "accruedInterest": 0,
  "activationDate": "string",
  "allowOverdraft": true,
  "approvedDate": "string",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "availableBalance": 0,
  "balance": 0,
  "closedDate": "string",
  "creationDate": "string",
  "currency": {
    "code": "string",
    "creationDate": "string",
    "currencySymbolPosition": "AFTER_NUMBER",
    "digitsAfterDecimal": 0,
    "isBaseCurrency": true,
    "lastModifiedDate": "string",
    "name": "string",
    "symbol": "string"
  },
  "currencyCode": "string",
  "customFieldValues": [
    {
      "amount": 0,
      "customField": {
        "amounts": {
          "property1": 0,
          "property2": 0
        },
        "builtInCustomFieldId": "MOBILE_PHONE",
        "creationDate": "string",
        "customFieldProductSettings": [
          {
            "customFieldEncodedKey": "string",
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isDefault": true,
            "isRequired": true,
            "linkType": "CLIENT_ROLE",
            "productKey": "string"
          }
        ],
        "customFieldSelectionOptions": [
          {
            "constraint": {
              "customFieldKey": "string",
              "dataFieldType": "NATIVE",
              "dataFieldValue": "string",
              "dataItemType": "WRITTEN_OFF_LOANS",
              "dataType": "ENUM",
              "encodedKey": "string",
              "filterElement": "STARTS_WITH_CASE_SENSITIVE",
              "groupNumber": 0,
              "index": 0,
              "linkingOperator": "OR",
              "secondValue": "string",
              "value": "string"
            },
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "score": 0,
            "value": "string"
          }
        ],
        "customFieldSet": {
          "builtInType": "DETAILS",
          "createdDate": "string",
          "customFields": [
            {}
          ],
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "id": "string",
          "indexInList": 0,
          "lastModifiedDate": "string",
          "name": "string",
          "notes": "string",
          "type": "USER_INFO",
          "usage": "SINGLE"
        },
        "dataType": "GROUP_LINK",
        "description": "string",
        "editRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        },
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "id": "string",
        "indexInList": 0,
        "isDefault": true,
        "isRequired": true,
        "lastModifiedDate": "string",
        "name": "string",
        "state": "DEACTIVATED",
        "type": "USER_INFO",
        "unique": true,
        "validationPattern": "string",
        "valueLength": "SHORT",
        "values": [
          "string"
        ],
        "viewRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        }
      },
      "customFieldID": "string",
      "customFieldKey": "string",
      "customFieldSetGroupIndex": 0,
      "encodedKey": "8a19b7057471f4af017472dc0fd80472",
      "indexInList": 0,
      "linkedEntityKeyValue": "string",
      "parentKey": "string",
      "selectionKey": "string",
      "value": "string"
    }
  ],
  "encodedKey": "8a19b7057471f4af017472dc0fd80472",
  "feesDue": 0,
  "holdBalance": 0,
  "id": "string",
  "interestDue": 0,
  "interestPaymentDates": [
    {
      "dayOfMonth": 0,
      "monthOfYear": 0,
      "year": 0
    }
  ],
  "interestPaymentPoint": "EVERY_WEEK",
  "interestSettings": {
    "accrueInterestAfterMaturity": true,
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "interestChargeFrequency": "EVERY_WEEK",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "MONTHS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "TIERED_PERIOD",
    "interestRateTiers": [
      {
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "endingBalance": 0,
        "endingDay": 0,
        "index": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "lastAccountAppraisalDate": "string",
  "lastInterestCalculationDate": "string",
  "lastInterestStoredDate": "string",
  "lastModifiedDate": "string",
  "lastOverdraftInterestReviewDate": "string",
  "lastSetToArrearsDate": "string",
  "lineOfCreditKey": "string",
  "lockedBalance": 0,
  "lockedDate": "string",
  "maturityDate": "string",
  "maxWidthdrawlAmount": 0,
  "migrationEvent": {
    "creationDate": "2019-08-24T14:15:22Z",
    "encodedKey": "string",
    "numCentresImported": 0,
    "numClientsImported": 0,
    "numGLAccountsImported": 0,
    "numGroupsImported": 0,
    "numLoanRepaymentsImported": 0,
    "numLoanTransactionsImported": 0,
    "numLoansImported": 0,
    "numSavingsImported": 0,
    "state": "REVERTED",
    "type": "IMPORT"
  },
  "name": "string",
  "notes": "string",
  "overdraftAmount": 0,
  "overdraftExpiryDate": "string",
  "overdraftExpiryDateDTO": {
    "dayOfMonth": 0,
    "monthOfYear": 0,
    "year": 0
  },
  "overdraftInterestAccrued": 0,
  "overdraftInterestSettings": {
    "accrueInterestAfterMaturity": true,
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "interestChargeFrequency": "EVERY_WEEK",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "MONTHS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "TIERED_PERIOD",
    "interestRateTiers": [
      {
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "endingBalance": 0,
        "endingDay": 0,
        "index": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "overdraftLimit": 0,
  "productTypeKey": "string",
  "recommendedDepositAmount": 0,
  "targetAmount": 0,
  "technicalInterestDue": 0,
  "technicalOverdraftAmount": 0,
  "technicalOverdraftInterestAccrued": 0,
  "withholdingTaxSourceKey": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKokSavingsAccountApiV1

Get all Loan Accounts for a Client

GET /clients/{clientId}/loans/{loanAccountId}

Get all Loan Accounts for a Client

Get details on a specific Loan Account for a specific client.

Parameters

NameTypeDescriptionIn
fullDetailsbooleannonequery
clientId (required)stringThe ID of the client. The format is determined by your organization.path
loanAccountId (required)stringThe ID or encoded key of the loan account. The format is determined by your organization.path

Example Responses

200 : ok
a loan account with full details

{
  "encodedKey": "8a8086c46f7a3258016f7b4d25f50126",
  "id": "XNZR612",
  "accountHolderKey": "8a80877d6f65da00016f6670eb950022",
  "accountHolderType": "CLIENT",
  "creationDate": "2020-01-06T14:43:36+0000",
  "approvedDate": "2020-01-06T15:43:46+0000",
  "lastModifiedDate": "2020-02-06T12:49:13+0000",
  "activationTransactionKey": "8a8086c46f7a3258016f7b4facdb0139",
  "lastAccountAppraisalDate": "2020-02-06T00:00:06+0000",
  "accountState": "ACTIVE",
  "productTypeKey": "8a8086c46f7a3258016f7b4d25d60118",
  "loanName": "review frequency daily",
  "loanAmount": "2500",
  "periodicPayment": "0",
  "tranches": [],
  "principalDue": "207.49",
  "principalPaid": "207.31",
  "principalBalance": "2292.69",
  "redrawBalance": "0",
  "interestDue": "1.97",
  "interestPaid": "2.15",
  "interestFromArrearsBalance": "0",
  "interestFromArrearsDue": "0",
  "interestFromArrearsPaid": "0",
  "interestBalance": "1.97",
  "feesDue": "0",
  "feesPaid": "0",
  "feesBalance": "0",
  "penaltyDue": "0",
  "penaltyPaid": "0",
  "penaltyBalance": "0",
  "scheduleDueDatesMethod": "INTERVAL",
  "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "hasCustomSchedule": false,
  "repaymentPeriodCount": 1,
  "repaymentPeriodUnit": "MONTHS",
  "repaymentInstallments": 12,
  "gracePeriod": 0,
  "gracePeriodType": "NONE",
  "interestRate": "1",
  "customFieldValues": [
    {
      "encodedKey": "8a8086567019cc6c01701a8b30596da2",
      "parentKey": "8a8086c46f7a3258016f7b4d25f50126",
      "customFieldKey": "8a8086567019cc6c01701a869a4a6d81",
      "customField": {
        "encodedKey": "8a8086567019cc6c01701a869a4a6d81",
        "id": "sclt_1",
        "creationDate": "2020-02-06T12:47:32+0000",
        "lastModifiedDate": "2020-02-06T12:47:32+0000",
        "name": "selection 1",
        "type": "LOAN_ACCOUNT_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "",
        "customFieldSet": {
          "encodedKey": "8a8086567019cc6c01701a869a4a6d80",
          "id": "_loans_cf_set",
          "name": "loans cf set",
          "notes": "",
          "createdDate": "2020-02-06T12:46:55+0000",
          "lastModifiedDate": "2020-02-06T12:46:55+0000",
          "indexInList": 0,
          "type": "LOAN_ACCOUNT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 0,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a8086567019cc6c01701a8a8c136d91",
            "id": "783728922",
            "value": "option 1",
            "score": "10"
          },
          {
            "encodedKey": "8a8086567019cc6c01701a8a8c1a6d92",
            "id": "672532084",
            "value": "option 2",
            "score": "5"
          },
          {
            "encodedKey": "8a8086567019cc6c01701a8a8c1a6d93",
            "id": "403063097",
            "value": "option 3",
            "score": "1"
          }
        ],
        "viewRights": {
          "encodedKey": "8a8086567019cc6c01701a869a4a6d82",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a8086567019cc6c01701a8a8c066d88",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [
          "option 1",
          "option 2",
          "option 3"
        ],
        "amounts": {
          "option 3": "1",
          "option 1": "10",
          "option 2": "5"
        }
      },
      "value": "option 2",
      "amount": "5",
      "indexInList": -1,
      "customFieldID": "sclt_1",
      "customFieldSetGroupIndex": -1
    },
    {
      "encodedKey": "8a8086567019cc6c01701a8b30596da4",
      "parentKey": "8a8086c46f7a3258016f7b4d25f50126",
      "customFieldKey": "8a8086567019cc6c01701a8a8c1a6d94",
      "customField": {
        "encodedKey": "8a8086567019cc6c01701a8a8c1a6d94",
        "id": "slct_2",
        "creationDate": "2020-02-06T12:48:14+0000",
        "lastModifiedDate": "2020-02-06T12:48:14+0000",
        "name": "selection 2",
        "type": "LOAN_ACCOUNT_INFO",
        "dataType": "SELECTION",
        "valueLength": "SHORT",
        "isDefault": false,
        "isRequired": false,
        "description": "",
        "customFieldSet": {
          "encodedKey": "8a8086567019cc6c01701a869a4a6d80",
          "id": "_loans_cf_set",
          "name": "loans cf set",
          "notes": "",
          "createdDate": "2020-02-06T12:46:55+0000",
          "lastModifiedDate": "2020-02-06T12:46:55+0000",
          "indexInList": 0,
          "type": "LOAN_ACCOUNT_INFO",
          "usage": "SINGLE"
        },
        "indexInList": 1,
        "state": "NORMAL",
        "customFieldSelectionOptions": [
          {
            "encodedKey": "8a8086567019cc6c01701a8b30526d9f",
            "id": "789812737",
            "value": "option a",
            "score": "1"
          },
          {
            "encodedKey": "8a8086567019cc6c01701a8b30526da0",
            "id": "000604002",
            "value": "option b",
            "score": "5"
          },
          {
            "encodedKey": "8a8086567019cc6c01701a8b30596da1",
            "id": "343885651",
            "value": "option c",
            "score": "10"
          }
        ],
        "viewRights": {
          "encodedKey": "8a8086567019cc6c01701a8a8c1a6d95",
          "isAccessibleByAllUsers": true,
          "roles": []
        },
        "editRights": {
          "encodedKey": "8a8086567019cc6c01701a8a8c1a6d96",
          "isAccessibleByAllUsers": false,
          "roles": []
        },
        "unique": false,
        "values": [
          "option a",
          "option b",
          "option c"
        ],
        "amounts": {
          "option c": "10",
          "option a": "1",
          "option b": "5"
        }
      },
      "value": "option c",
      "amount": "10",
      "indexInList": -1,
      "customFieldID": "slct_2",
      "customFieldSetGroupIndex": -1
    }
  ],
  "interestChargeFrequency": "ANNUALIZED",
  "interestCalculationMethod": "DECLINING_BALANCE_DISCOUNTED",
  "interestType": "SIMPLE_INTEREST",
  "interestBalanceCalculationMethod": "PRINCIPAL_ONLY",
  "repaymentScheduleMethod": "DYNAMIC",
  "paymentMethod": "HORIZONTAL",
  "interestApplicationMethod": "ON_REPAYMENT",
  "accrueInterestAfterMaturity": false,
  "assignedBranchKey": "8a8086e96f61bf2c016f65f5192a0271",
  "notes": "",
  "principalRepaymentInterval": 1,
  "interestRateSource": "INDEX_INTEREST_RATE",
  "interestRateReviewUnit": "DAYS",
  "interestRateReviewCount": 1,
  "interestSpread": "1",
  "lastInterestReviewDate": "2020-02-06T00:00:00+0000",
  "accruedInterest": "0.19",
  "interestFromArrearsAccrued": "0.02",
  "lastInterestAppliedDate": "2020-02-03T00:00:00+0000",
  "funds": [],
  "guarantees": [],
  "accruedPenalty": "0",
  "loanPenaltyCalculationMethod": "NONE",
  "disbursementDetails": {
    "encodedKey": "8a8086c46f7a3258016f7b4fac3b0127",
    "expectedDisbursementDate": "2019-12-01T00:00:00+0000",
    "disbursementDate": "2019-12-01T00:00:00+0000",
    "firstRepaymentDate": "2020-01-01T00:00:00+0000",
    "transactionDetails": {
      "encodedKey": "8a8086c46f7a3258016f7b4fac3b0128",
      "transactionChannelKey": "8a80877d6f451a5c016f466bdd120049",
      "internalTransfer": false,
      "transactionChannel": {
        "encodedKey": "8a80877d6f451a5c016f466bdd120049",
        "id": "cash",
        "name": "Cash",
        "creationDate": "2019-12-27T09:14:35+0000",
        "index": 0,
        "activated": true,
        "savingsConstraintsUsage": "UNCONSTRAINED_USAGE",
        "savingsConstraints": {
          "encodedKey": "8a80877d6f451a5c016f466bea33004b",
          "filterConstraints": []
        },
        "usageRights": {
          "encodedKey": "8a80877d6f451a5c016f466bdd12004a",
          "isAccessibleByAllUsers": true,
          "roles": []
        }
      }
    },
    "fees": [],
    "customInformation": []
  },
  "arrearsTolerancePeriod": 3,
  "accountArrearsSettings": {
    "tolerancePeriod": 3,
    "encodedKey": "8a8086c46f7a3258016f7b4fac3b0129",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "dateCalculationMethod": "DATE_ACCOUNT_FIRST_WENT_TO_ARREARS",
    "nonWorkingDaysMethod": "EXCLUDED"
  },
  "paymentPlan": [],
  "interestRoundingVersion": "VERSION_2",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "principalPaidInstallmentStatus": "PARTIALLY_PAID",
  "latePaymentsRecalculationMethod": "INCREASE_OVERDUE_INSTALLMENTS",
  "applyInterestOnPrepaymentMethod": "AUTOMATIC",
  "allowOffset": false,
  "accrueLateInterest": true,
  "holdBalance": "0",
  "fees": [
    {
      "fee": {
        "encodedKey": "8a8080855283305201528369d0d3001c"
      }
    },
    {
      "fee": {
        "encodedKey": "8a8080855283305201528369d0d3001b"
      },
      "amount": "10"
    },
    {
      "fee": {
        "encodedKey": "8a808085528330520152836c5950002a"
      },
      "amount": "55"
    }
  ]
}

400 : Bad Request
bad loan accont ID

{
  "returnCode": 100,
  "returnStatus": "INVALID_LOAN_ACCOUNT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKokLoanAccountFullDetailsApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCode (required)integernonenone
» returnStatus (required)stringnonenone
» errorSourcestringnonenone

Currencies

Retrieve currency information which the organization is using for its accounts. Can retrieve a list of currencies or a specific one by code.

Get all Currencies

GET /currencies

List all currencies

Retrieves currencies used by the organization. By default only base currencies will be returned.

Parameters

NameTypeDescriptionIn
includeForeignbooleanWhether to include foreign currencies supported by the organizationquery

Example Responses

200 : ok
a list of currencies including non-base currencies

[
  {
    "code": "USD",
    "name": "United States dollar",
    "symbol": "$",
    "digitsAfterDecimal": 2,
    "currencySymbolPosition": "BEFORE_NUMBER",
    "isBaseCurrency": true,
    "creationDate": "2016-05-24T16:51:12+0000",
    "lastModifiedDate": "2016-05-24T16:51:12+0000"
  },
  {
    "code": "RON",
    "name": "Romanian new leu",
    "symbol": "lei",
    "digitsAfterDecimal": 2,
    "currencySymbolPosition": "BEFORE_NUMBER",
    "isBaseCurrency": false,
    "creationDate": "2016-05-24T14:20:41+0000",
    "lastModifiedDate": "2016-05-24T14:20:41+0000"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CurrencyApiV1]nonenone
» codestringthe three letter ISO code for this currencynone
» creationDatestringthe date on which this currency was creatednone
» currencySymbolPositionstringindicates where the currency symbol should appear in relation to the numeric valuenone
» digitsAfterDecimalnumberindicates how many decimal places are allowed for this currency. For example, a currenncy with 100 minor units to 1 major unit, there will be 2 decimal places.none
» isBaseCurrencybooleanwhether this currency is the base currency for your banking institutionnone
» lastModifiedDatestringthe date on which this currency was last modifiednone
» namestringthe name of this currencynone
» symbolstringthe currency symnbol used for this currencynone

Enumerated Values

PropertyValue
currencySymbolPositionAFTER_NUMBER
currencySymbolPositionBEFORE_NUMBER

Get Currency by ISO Code

GET /currencies/{currencyCode}

Get a single currency

get a currency by id

Parameters

NameTypeDescriptionIn
currencyCode (required)stringnonepath

Example Responses

200 Response

{
  "code": "string",
  "creationDate": "string",
  "currencySymbolPosition": "AFTER_NUMBER",
  "digitsAfterDecimal": 0,
  "isBaseCurrency": true,
  "lastModifiedDate": "string",
  "name": "string",
  "symbol": "string"
}

404 : Not Found
bad currency code

{
  "returnCode": 650,
  "returnStatus": "INVALID_CURRENCY_CODE"
}

Responses

StatusMeaningDescriptionSchema
200OKokCurrencyApiV1
404Not FoundNot FoundInline

Response Schema

Status Code 404

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Get Currency Exchange Rates

GET /currencies/{currencyCode}/rates

List Currency Rates

Retrieves currency's exchange rates. If both from and to parameters are specified, it returns the list of exchange rates that start in/after from date or before(exclusive) to date.

Parameters

NameTypeDescriptionIn
offsetintegerThe start index of the returned exchange rates list.query
limitintegerThe number of elements to be returned.query
fromstring(date)From (start) date to retrieve the exchange rates.query
tostring(date)To (end) date to retrieve the exchange rates.query
currencyCode (required)stringthe three letter ISO code of the currency forpath

Example Responses

200 : ok
EUR/ARS exchange rate

[
  {
    "encodedKey": "8a19cd6f74674df90174681f214103d3",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "fromCurrencyCode": "EUR",
    "toCurrencyCode": "ARS",
    "buyRate": "0.0113653",
    "sellRate": "87.9872",
    "startDate": "2020-09-07T15:24:11+0000"
  }
]

400 : Bad Request
buy and sell rate values switched

{
  "returnCode": 656,
  "returnStatus": "BUY_RATE_GREATER_THAN_SELL_RATE"
}

404 : Not Found
bad currency code

{
  "returnCode": 650,
  "returnStatus": "INVALID_CURRENCY_CODE"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[ExchangeRateApiV1]nonenone
» buyRate (required)numberThe amount the currency will be bought compared to the base currency.none
» encodedKeystringa unique key for this exchange ratenone
» endDatestring(date-time)the date and time at which this rate was replaced by a newer onenone
» fromCurrencyCodestringthe currency code from which the currency will be exchangednone
» sellRate (required)numberThe amount the currency will be sold to base currency.none
» startDate (required)string(date-time)The date from which the exchange rate will be valid. Must not be in the future or before the latest exchange rate's (for that currency) start date. If not provided, the organization current date and time will be used.none
» toCurrencyCodestringthe currency code into which the currency will be exchangednone
» userKeystringthe encoded key of the user who created the exchange ratenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Update Currency Exchange Rate

POST /currencies/{currencyCode}/rates

Set or update exchange rate

Stores a new exchange rate for a given currency.

Example requests

exchange rate

{
  "buyRate": "0.0113420",
  "sellRate": "86.0342"
}

Parameters

NameTypeDescriptionIn
bodyCreateExchangeRateApiV1Post new currency exchange rate with optional validity start datebody
currencyCode (required)stringthe three letter ISO code of the currency forpath

Responses

StatusMeaningDescriptionSchema
200OKOKNone

Custom Field Sets

Allows you to retrieve the defined custom field sets.

Get Custom Field Sets

GET /customfieldsets

List Custom Field Sets

Allows retrieving of a list custom field sets that can be optionaly filtered by type. If a given type has no fields, an empty array will be returned.

Parameters

NameTypeDescriptionIn
typestringFilter by entity typequery

Enumerated Values

ParameterValue
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO

Example Responses

200 Response

[
  {
    "builtInType": "DETAILS",
    "createdDate": "string",
    "customFields": [
      {
        "amounts": {
          "property1": 0,
          "property2": 0
        },
        "builtInCustomFieldId": "MOBILE_PHONE",
        "creationDate": "string",
        "customFieldProductSettings": [
          {
            "customFieldEncodedKey": "string",
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "isDefault": true,
            "isRequired": true,
            "linkType": "CLIENT_ROLE",
            "productKey": "string"
          }
        ],
        "customFieldSelectionOptions": [
          {
            "constraint": {
              "customFieldKey": "string",
              "dataFieldType": "NATIVE",
              "dataFieldValue": "string",
              "dataItemType": "WRITTEN_OFF_LOANS",
              "dataType": "ENUM",
              "encodedKey": "string",
              "filterElement": "STARTS_WITH_CASE_SENSITIVE",
              "groupNumber": 0,
              "index": 0,
              "linkingOperator": "OR",
              "secondValue": "string",
              "value": "string"
            },
            "encodedKey": "8a19b7057471f4af017472dc0fd80472",
            "id": "string",
            "score": 0,
            "value": "string"
          }
        ],
        "customFieldSet": {},
        "dataType": "GROUP_LINK",
        "description": "string",
        "editRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        },
        "encodedKey": "8a19b7057471f4af017472dc0fd80472",
        "id": "string",
        "indexInList": 0,
        "isDefault": true,
        "isRequired": true,
        "lastModifiedDate": "string",
        "name": "string",
        "state": "DEACTIVATED",
        "type": "USER_INFO",
        "unique": true,
        "validationPattern": "string",
        "valueLength": "SHORT",
        "values": [
          "string"
        ],
        "viewRights": {
          "encodedKey": "8a19b7057471f4af017472dc0fd80472",
          "isAccessibleByAllUsers": true,
          "roles": [
            "string"
          ]
        }
      }
    ],
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "id": "string",
    "indexInList": 0,
    "lastModifiedDate": "string",
    "name": "string",
    "notes": "string",
    "type": "USER_INFO",
    "usage": "SINGLE"
  }
]

400 : Bad Request
bad type filter

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "there is a problem with the input parameters"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CustomFieldSetApiV1]nonenone
» builtInTypestringif this set is part of the set of built-in custom field sets, its type will be shown herenone
» createdDatestringthe date and time when this custom field set was creatednone
» customFields[CustomFieldApiV1]an array of custom field definitions included in this custom field setnone
»» amountsobjectused when options available for a custom field definition translate to predefined amounts, for example, when the custom field value is used to generate a scorenone
»»» additionalPropertiesnumbernonenone
»» builtInCustomFieldIdstringif this field is one of the built in custom fiel definitions, this will have a value. These names are reserved and you can not use them for your own custom field definitionsnone
»» creationDatestringthe date on which this custom field definition was creatednone
»» customFieldProductSettings[CustomFieldLinkApiV1]nonenone
»»» customFieldEncodedKeystringthe key to the parent custom field definitionnone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» isDefaultbooleanwhether this field is displayed by default when creating a new recordnone
»»» isRequiredbooleanwhether this field is required when creating a new recordnone
»»» linkTypestringthe type of entity this field represents a link tonone
»»» productKeystringwhen the link type is product, this field should contain the encoded key of the linekd productnone
»» customFieldSelectionOptions[CustomFieldSelectionApiV1][represents a possible selection for select type custom field definitions]none
»»» constraintCustomFilterConstraintApiV1nonenone
»»»» customFieldKeystringnonenone
»»»» dataFieldTypestringnonenone
»»»» dataFieldValuestringnonenone
»»»» dataItemTypestringnonenone
»»»» dataTypestringnonenone
»»»» encodedKeystringnonenone
»»»» filterElementstringnonenone
»»»» groupNumbernumbernonenone
»»»» indexnumbernonenone
»»»» linkingOperatorstringnonenone
»»»» secondValuestringnonenone
»»»» valuestringnonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» idstringthe ID of this selectable itemnone
»»» scorenumberthe score assigned to this selectionnone
»»» valuestringdisplay name of this optionnone
»» customFieldSetCustomFieldSetApiV1nonenone
»» dataTypestringthe type of custom field definitionnone
»» descriptionstringa brief description of this custom field definitionnone
»» editRightsUsageRightsApiV1nonenone
»»» encodedKeystringthe automatically generated encoded ID for this itemnone
»»» isAccessibleByAllUsersbooleannonenone
»»» roles[string]nonenone
»» encodedKeystringthe automatically generated encoded ID for this itemnone
»» idstringthe ID for this custom field definitionnone
»» indexInListnumbernonenone
»» isDefaultbooleanwhether this field will be included by default on new recordsnone
»» isRequiredbooleanwhether this field is required when creating a new recordnone
»» lastModifiedDatestringthe date on which this custom field definition was last modifiednone
»» namestringthe name of this custom field definitionnone
»» statestringwhether this field is available for use or has been deactivatednone
»» typestringthe type of data this custom field definition will containnone
»» uniquebooleanwhether the data in this custom field definition needs to be a unique valuenone
»» validationPatternstringa user-provided pattern to which data in this custom field definition must conform where @ represents numbers, # represents letters and $ is either a number or letter. Other special characters used as separators are allowed, for example @@-##-$$$none
»» valueLengthstringwhether this field needs to support a large number of charactersnone
»» values[string]a list of possible values when the field is a selection fieldnone
»» viewRightsUsageRightsApiV1nonenone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» idstringthe ID of this custom field setnone
» indexInListnumberfor field sets that can be added to an entity more than once, this number represents the index in the list and is used when changing valuesnone
» lastModifiedDatestringthe date on which this custom field set was last modifiednone
» namestringthe name of this custom field setnone
» notesstringany notes regarding this custom field setnone
» typestringthe entity type that this custom field definition is attached tonone
» usagestringwhether this custom field set can only be used once, or added multiple times to the same entitynone

Enumerated Values

PropertyValue
builtInTypeDETAILS
builtInTypeGENERAL
builtInCustomFieldIdMOBILE_PHONE
builtInCustomFieldIdEMAIL_ADDRESS
builtInCustomFieldIdGENDER
builtInCustomFieldIdMIDDLE_NAME
builtInCustomFieldIdHOME_PHONE
builtInCustomFieldIdBIRTHDATE
builtInCustomFieldIdLAST_NAME
builtInCustomFieldIdFIRST_NAME
linkTypeCLIENT_ROLE
linkTypeCHANNEL
linkTypePRODUCT
dataFieldTypeNATIVE
dataFieldTypeCUSTOM
dataItemTypeWRITTEN_OFF_LOANS
dataItemTypeLINE_OF_CREDIT
dataItemTypeINVESTOR_FUND
dataItemTypeTRANSACTION_DETAILS
dataItemTypeDOCUMENT_TEMPLATE
dataItemTypePRODUCT
dataItemTypeMCC_EXPIRATION
dataItemTypeCENTRE
dataItemTypeREPAYMENT_COLLECTION
dataItemTypeTASK
dataItemTypeOUTSTANDING_PORTFOLIO_AMOUNTS
dataItemTypeREVENUE
dataItemTypeCOMPOSED_TRANSACTIONS
dataItemTypeUNION_TRANSACTIONS
dataItemTypePRINCIPAL_PAYMENT_SETTINGS
dataItemTypeLOANS
dataItemTypeDISBURSEMENT_DETAILS
dataItemTypeSAVINGS_TRANSACTION
dataItemTypeIDENTIFICATION_DOCUMENT
dataItemTypeLOAN_PRODUCT
dataItemTypeDISBURSED_LOANS
dataItemTypeLOAN_GROUP
dataItemTypeTRANSACTION_CHANNEL
dataItemTypeCUSTOM_PREDEFINED_FEE
dataItemTypeJOURNAL_ENTRY
dataItemTypeATTACHMENT
dataItemTypePREDEFINED_FEE
dataItemTypeTRANCHE
dataItemTypeTRANSACTION
dataItemTypeINDEX_RATE_SOURCE
dataItemTypeGROUP_ROLE
dataItemTypeLOAN_TRANSACTION
dataItemTypeCLIENT_ROLE
dataItemTypeGROUP
dataItemTypeNOTIFICATION_MESSAGE
dataItemTypeOUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemTypeREPAYMENT
dataItemTypeLOAN_ACCOUNT_GUARANTY
dataItemTypeBRANCH
dataItemTypeCURRENCY
dataItemTypeCARD_TRANSACTION_REVERSAL
dataItemTypeINTEREST_PRODUCT_SETTINGS
dataItemTypeCREATED_ACCOUNTS
dataItemTypeUSER
dataItemTypeSAVINGS_PRODUCT
dataItemTypeCLIENT
dataItemTypePRODUCT_ARREARS_SETTINGS
dataItemTypeSAVINGS
dataItemTypeEXPENSE
dataItemTypeINDEX_RATE
dataItemTypeNOTIFICATION_TEMPLATE
dataItemTypeCUSTOM_FIELD_SELECTION
dataItemTypeACTIVITY
dataTypeENUM
dataTypeMONEY
dataTypeNUMBER
dataTypeDATE_UTC
dataTypeJAVA_BLOB
dataTypeOBJECT
dataTypeBOOLEAN
dataTypeDATE
dataTypePERCENT
dataTypeBIG_DECIMAL
dataTypeSTRING
dataTypeKEY
dataTypeLONG
filterElementSTARTS_WITH_CASE_SENSITIVE
filterElementTHIS_WEEK
filterElementEQUALS
filterElementSTARTS_WITH
filterElementIN
filterElementTODAY
filterElementTHIS_YEAR
filterElementBETWEEN
filterElementAFTER
filterElementLESS_THAN
filterElementDIFFERENT_THAN
filterElementTHIS_MONTH
filterElementNOT_EMPTY
filterElementBEFORE
filterElementEQUALS_CASE_SENSITIVE
filterElementLAST_DAYS
filterElementMORE_THAN
filterElementEMPTY
filterElementON
linkingOperatorOR
linkingOperatorAND
dataTypeGROUP_LINK
dataTypeDATE
dataTypeNUMBER
dataTypeCHECKBOX
dataTypeCLIENT_LINK
dataTypeSTRING
dataTypeUSER_LINK
dataTypeSELECTION
stateDEACTIVATED
stateNORMAL
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
valueLengthSHORT
valueLengthLONG
typeUSER_INFO
typeASSET_INFO
typeCLIENT_INFO
typeLINE_OF_CREDIT
typeGROUP_INFO
typeTRANSACTION_CHANNEL_INFO
typeBRANCH_INFO
typeSAVINGS_ACCOUNT_INFO
typeLOAN_ACCOUNT_INFO
typeGUARANTOR_INFO
typeCENTRE_INFO
usageSINGLE
usageGROUPED

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Custom Fields

Allows you to retrieve the defined custom field definitions. A custom field definition can be a member of a custom field set.

Get Custom Field Definition Details

GET /customfields/{customFieldId}

Get details on a custom field definition

Allows retrieving of a custom field definition based on id/key. The custom field definition can be fetched only based on id/key.

Parameters

NameTypeDescriptionIn
customFieldId (required)stringnonepath

Example Responses

200 : ok
Response containing the custom field definition with ID JOB_TITLE

{
  "encodedKey": "8a54e5b44449337f01444a6db5d40006",
  "id": "JOB_TITLE",
  "name": "Current Job Title",
  "type": "CLIENT_INFO",
  "dataType": "STRING",
  "valueLength": "LONG",
  "isDefault": true,
  "isRequired": true,
  "description": "The current job title for the client.",
  "indexInList": 8,
  "state": "NORMAL"
}

Responses

StatusMeaningDescriptionSchema
200OKokCustomFieldApiV1

Database Backups

Allows API users to trigger Mambu database backups and download them once they are ready.

Execution flow example:

  1. Use POST call to request the database backup to be generated and register/define the callback endpoint.
    • This call triggers the database copy creation, which is a prerequisite to download a backup.
    • The callback parameter is not required but recommended.
  2. If a callback parameter is defined, a callback will be sent to the endpoint, confirming that step 1 has been completed and that the database backup can be downloaded.
    • The response to this callback should be OK (200).
    • The endpoint is useful to ensure that the creation process has finished and step 3 can be performed.
  3. Use a GET call to request the download of the database backup.
    • If an endpoint is defined, it can be triggered immediately after the callback (step 2) is received.
    • If there is no endpoint defined, please wait several minutes, up to one hour (depending on the size of your database), to allow Mambu some time to finish the creation of the database from step 1.

Required permissions:

Initiate Database Backup

POST /database/backup

Initiate database backup

Example callback payload

{
    "tenantId":"demo",
    "result":"COMPLETE",
    "domain":"demo.mambu.com",
    "fileName":"demo-MANUAL-DATABASE-BACKUP"
}

Allow the trigger of database backups. The developer can be notified via a callback defined in the POST call when the backup is ready. You can provide the callback either in the JSON body or as a query parameter. After the database backup process is completed, the a payload will be sent to the callback url provided as in the example provided.

Required permission: Download Backups for triggering and downloading a database backup

Please Note:

While a backup is in progress, Mambu will not allow starting another one. If you need to create backups after Mambu's nightly processing, you can setup the "End of Day Processing" / "Accounts Updated" WebHook in Mambu to get notified and then trigger the backup request with this API.

Example requests

Example request using query parameter

https://TENANT_NAME.mambu.com/api/database/backup?callback=https%3A%2F%2Fmy-callback-service.com%2Fsource%3Dmambu%26whatis%3Ddatabse-backup

Example JSON Body with callback

{
  "callback": "https://path.to/myserver?callback.php"
}

Parameters

NameTypeDescriptionIn
callbackstringURL encoded callbackquery
callbackstring(uri)A valid URL. It will receive a WebHook call from Mambu once the backup is available (Optional).body

Example Responses

200 : OK
Success reponse

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegerthe code of the responsenone
» returnStatusstringa machine readable explanation of the responsenone
» errorSourcestringa human readable description of the responsenone

Get Latest Database Backup

GET /database/backup/LATEST

Download latest backup

Download the latest database backup that was triggered via the POST call.

The response headers will contain more information about the backup:

Required permission: Download Backups for triggering and downloading a database backup.

Example Responses

400 : No current backup
No current backup

400 Response

{}

Responses

StatusMeaningDescriptionSchema
200OKOKNone
400Bad RequestNo current backupInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegerthe code of the responsenone
» returnStatusstringa machine readable explanation of the responsenone
» errorSourcestringa human readable description of the responsenone

Response Headers

StatusHeaderTypeFormatDescription
200Content-Dispositionstringthe file name and encoding of the file to be downloaded
200Content-Typestringthe file type of the file to be downloaded
200Last Modifiedstringthe date when the database backup execution finished

Documents

Allows you to get, post or delete attachments. This endpoint accepts files up to a maximum size of 50MB.

Attach new Document

POST /documents

Add attachment to entity

Allows for adding attachments of up to 50MB to a client or account. The request should include a JSON body containing metadata about the data being pushed, including the documentHolderType (e.g. CLIENT) and documentHolderKey as well as the base64 encoded document content.

Example requests

A user photo

{
  "document": {
    "documentHolderKey": "40288a0c3e3cfb4e013e3d00bbzxcvs",
    "documentHolderType": "USER",
    "name": "john_photo",
    "type": "jpg"
  },
  "documentContent": "[base64encodedString]"
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new documentbody

Example Responses

200 : OK
Details on an uploaded attachment

{
  "encodedKey": "8aa0f78f444f763601444f7fb89e0001",
  "id": 1,
  "creationDate": "2014-02-20T13:32:54+0000",
  "lastModifiedDate": "2014-02-20T13:32:54+0000",
  "documentHolderKey": "8a33ae49441c4fe101441c7149cb00fe",
  "documentHolderType": "CLIENT",
  "name": "document",
  "type": "doc",
  "fileSize": 14,
  "originalFilename": "document",
  "location": "8aa0f78f444f763601444f7fb89e0001",
  "createdByUserKey": "8a33ae49441c4fe101441c5fe42f0005"
}

400 : Bad Request
Wrong content type specified

{
  "returnCode": 973,
  "returnStatus": "INCONSISTENT_EXTENSION_WITH_FILE_CONTENT",
  "errorSource": "Invalid extension with file content"
}

Responses

StatusMeaningDescriptionSchema
200OKOKDocumentApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Get Documents

GET /documents

Get documents

Allows retrieving a list of documents descriptions based on the owner id/key or type. Documents will be returned as with base64 encoded string. The list of document descriptions can be paginated.

Parameters

NameTypeDescriptionIn
ownerType (required)stringThe type of entity holding the documentsquery
ownerId (required)stringThe ID or encoded key of the entityquery

Enumerated Values

ParameterValue
ownerTypeCLIENT
ownerTypeGROUP
ownerTypeLOAN_ACCOUNT
ownerTypeSAVINGS_ACCOUNT
ownerTypeLOAN_PRODUCT
ownerTypeSAVINGS_PRODUCT
ownerTypeUSER
ownerTypeCENTRE
ownerTypeBRANCH

Example Responses

200 : OK
An array of documents for a loan account

[
  {
    "encodedKey": "8a19c035747bf5b901747d09c578035e",
    "id": 57,
    "creationDate": "2020-09-11T12:30:13+0000",
    "lastModifiedDate": "2020-09-11T12:30:13+0000",
    "documentHolderKey": "8a19b6e4746cc6ed01746cf1436c00c5",
    "documentHolderType": "LOAN_ACCOUNT",
    "name": "texx",
    "type": "txt",
    "fileSize": 14,
    "originalFilename": "test.txt",
    "location": "OZAYCTQRLNPDSDWKMPARVPHLFYHVFO",
    "description": "a text file",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Happy Go Lucky",
    "documentHolder": {
      "type": "LOAN",
      "holderKey": "8a193c26722b51b701722d77c5e423b7",
      "accountHolderType": "CLIENT",
      "encodedKey": "8a19b6e4746cc6ed01746cf1436c00c5",
      "displayName": "BLBE564"
    }
  },
  {
    "encodedKey": "8a19c035747bf5b901747c77d78e01c6",
    "id": 54,
    "creationDate": "2020-09-11T11:51:22+0000",
    "lastModifiedDate": "2020-09-11T11:51:22+0000",
    "documentHolderKey": "8a19b6e4746cc6ed01746cf1436c00c5",
    "documentHolderType": "LOAN_ACCOUNT",
    "name": "some other image",
    "type": "png",
    "fileSize": 32109,
    "originalFilename": "some_other_image.png",
    "location": "NCYBXXEJCZBQVHAEAJTPITEGUBVXRO",
    "description": "this is another image file",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Holly Go Lightly",
    "documentHolder": {
      "type": "LOAN",
      "holderKey": "8a193c26722b51b701722d77c5e423b7",
      "accountHolderType": "CLIENT",
      "encodedKey": "8a19b6e4746cc6ed01746cf1436c00c5",
      "displayName": "BLBE564"
    }
  },
  {
    "encodedKey": "8a19c035747bf5b901747c77d78e01c4",
    "id": 53,
    "creationDate": "2020-09-11T11:39:33+0000",
    "lastModifiedDate": "2020-09-11T11:39:33+0000",
    "documentHolderKey": "8a19b6e4746cc6ed01746cf1436c00c5",
    "documentHolderType": "LOAN_ACCOUNT",
    "name": "file for loan account",
    "type": "png",
    "fileSize": 8258,
    "originalFilename": "Screenshot_2020-04-22_at_14.31.29.png",
    "location": "FCLRPXHUTCXURCALXAIFESFUURNUBR",
    "description": "a file attached to a loan account",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Go Go Gadget",
    "documentHolder": {
      "type": "LOAN",
      "holderKey": "8a193c26722b51b701722d77c5e423b7",
      "accountHolderType": "CLIENT",
      "encodedKey": "8a19b6e4746cc6ed01746cf1436c00c5",
      "displayName": "BLBE564"
    }
  },
  {
    "encodedKey": "8a19a3337476f2d00174775b6a3001b0",
    "id": 44,
    "creationDate": "2020-09-10T09:34:51+0000",
    "lastModifiedDate": "2020-09-10T09:34:51+0000",
    "documentHolderKey": "8a19b6e4746cc6ed01746cf1436c00c5",
    "documentHolderType": "LOAN_ACCOUNT",
    "name": "loan acc doc",
    "type": "png",
    "fileSize": 15028,
    "originalFilename": "additional_reading_callout.png",
    "location": "UTOLWAEQURRYFNBIPNUXXFEXBCPKQR",
    "description": "desc loan acc doc",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "Train Go Choo Choo",
    "documentHolder": {
      "type": "LOAN",
      "holderKey": "8a193c26722b51b701722d77c5e423b7",
      "accountHolderType": "CLIENT",
      "encodedKey": "8a19b6e4746cc6ed01746cf1436c00c5",
      "displayName": "BLBE564"
    }
  }
]

400 : Bad Request
bad ID

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "wrong owner id"
}

500 : Internal Server Error
bad value for ownerType parameter

{
  "returnCode": 6,
  "returnStatus": "INTERNAL_ERROR"
}

Responses

StatusMeaningDescriptionSchema
200OKOKDocumentForAccountApiV1
400Bad RequestBad RequestExecutionStatusApiV1
500Internal Server ErrorInternal Server ErrorExecutionStatusApiV1

Get Document by ID

GET /documents/{documentId}

Get Document by ID

Allows retrieving the content of a document encoded with base64 based on the document id/key.

Parameters

NameTypeDescriptionIn
documentId (required)stringThe ID (encoded key) of the documentpath

Example Responses

200 : OK
Example base64-encoded document

"dGhhbmtzIGZvciBjaGVja2luZywgd2UncmUgYWxsIGZpbmUgaGVyZQ"

400 : Bad Request
Bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKstring
400Bad RequestBad RequestExecutionStatusApiV1

Delete Document

DELETE /documents/{documentId}

Delete a Document

Allows the deletion of attachments based on id/encoded key.

Parameters

NameTypeDescriptionIn
documentId (required)stringThe ID (encoded key) of the documentpath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

403 : Forbidden
Account lacks required permissions

{
  "returnCode": 2,
  "returnStatus": "INVALID_CREDENTIALS"
}

404 : Not Found
Bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

503 : Service Unavailable
Account is blocked

{
  "returnCode": 24,
  "returnStatus": "EXCESSIVE_INVALID_REQUESTS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKExecutionStatusApiV1
403ForbiddenForbiddenExecutionStatusApiV1
404Not FoundNot FoundExecutionStatusApiV1
503Service UnavailableService UnavailableExecutionStatusApiV1

General Ledger Accounts

Allows you to retrieve GL (General Ledger) accounts by type or specific GL accounts along with their balance. Balance for the GL accounts can be taken from the current moment or from a date range.

Get all GL Accounts

GET /glaccounts

Get All GL Accounts

Retrieve a list of GL accounts.

Parameters

NameTypeDescriptionIn
type (required)stringThe type of GL accounts to retrieve. Required if no account id is provided.query
fromstringFrom (start) date to compute the account balance on.query
tostringTo (end) date to compute the account balance on.query
branchIDstringThe branch ID on which to calculate/filter the gl accounts balances.query

Enumerated Values

ParameterValue
typeASSET
typeLIABILITY
typeEQUITY
typeINCOME
typeEXPENSE

Example Responses

200 : OK
An array of GL Accounts

[
  {
    "encodedKey": "8a193c26722b51b701722d77cd9e26c0",
    "creationDate": "2020-05-19T15:05:26+0000",
    "lastModifiedDate": "2020-05-19T15:05:26+0000",
    "glCode": "11100",
    "type": "ASSET",
    "usage": "DETAIL",
    "name": "Cash on Hand",
    "activated": true,
    "allowManualJournalEntries": true,
    "stripTrailingZeros": true,
    "currency": {
      "code": "EUR",
      "name": "Euro",
      "symbol": "€",
      "digitsAfterDecimal": 2,
      "currencySymbolPosition": "BEFORE_NUMBER",
      "isBaseCurrency": true,
      "creationDate": "2020-05-18T08:53:31+0000",
      "lastModifiedDate": "2020-05-18T08:53:31+0000"
    },
    "balance": "39147.84"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77cdc826d6",
    "creationDate": "2020-05-19T15:05:26+0000",
    "lastModifiedDate": "2020-05-19T15:05:26+0000",
    "glCode": "11400",
    "type": "ASSET",
    "usage": "DETAIL",
    "name": "Client Savings Bank Account",
    "activated": true,
    "allowManualJournalEntries": true,
    "stripTrailingZeros": true,
    "currency": {
      "code": "EUR",
      "name": "Euro",
      "symbol": "€",
      "digitsAfterDecimal": 2,
      "currencySymbolPosition": "BEFORE_NUMBER",
      "isBaseCurrency": true,
      "creationDate": "2020-05-18T08:53:31+0000",
      "lastModifiedDate": "2020-05-18T08:53:31+0000"
    },
    "balance": "4253.21"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77cdb126ca",
    "creationDate": "2020-05-19T15:05:26+0000",
    "lastModifiedDate": "2020-05-19T15:05:26+0000",
    "glCode": "11700",
    "type": "ASSET",
    "usage": "DETAIL",
    "name": "Interest Receivable",
    "activated": true,
    "allowManualJournalEntries": true,
    "stripTrailingZeros": true,
    "currency": {
      "code": "EUR",
      "name": "Euro",
      "symbol": "€",
      "digitsAfterDecimal": 2,
      "currencySymbolPosition": "BEFORE_NUMBER",
      "isBaseCurrency": true,
      "creationDate": "2020-05-18T08:53:31+0000",
      "lastModifiedDate": "2020-05-18T08:53:31+0000"
    },
    "balance": "1305.32"
  }
]

400 : Bad Request
bad account ID

{
  "returnCode": 601,
  "returnStatus": "INVALID_GL_ACCOUNT_TYPE"
}

400 : Bad Request
bad dates

{
  "returnCode": 610,
  "returnStatus": "INVALID_ACCOUNTING_DATE_ORDER",
  "errorSource": "The from date is set after the to date"
}

400 : Bad Request
branch not found

{
  "returnCode": 800,
  "returnStatus": "INVALID_BRANCH_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[GLAccountApiV1][A general ledger account]none
» activatedbooleanwhether this general ledger account is in usenone
» allowManualJournalEntriesbooleanwhether manual entries are allowed for this general ledger accountnone
» balancenumberthe current balance of this general ledger accountnone
» creationDatestring(date-time)the date on which this general ledger account was createdread-only
» currencyCurrencyApiV1nonenone
»» codestringthe three letter ISO code for this currencynone
»» creationDatestringthe date on which this currency was creatednone
»» currencySymbolPositionstringindicates where the currency symbol should appear in relation to the numeric valuenone
»» digitsAfterDecimalnumberindicates how many decimal places are allowed for this currency. For example, a currenncy with 100 minor units to 1 major unit, there will be 2 decimal places.none
»» isBaseCurrencybooleanwhether this currency is the base currency for your banking institutionnone
»» lastModifiedDatestringthe date on which this currency was last modifiednone
»» namestringthe name of this currencynone
»» symbolstringthe currency symnbol used for this currencynone
» descriptionstringan optional description for this general ledger accountnone
» encodedKeystringthe encoded key of this general ledger accountnone
» glCodestringthe numeric code for this general ledger accountnone
» lastModifiedDatestring(date-time)the date on which this general ledger account was last modifiedread-only
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» namestringthe name of this general ledger accountnone
» stripTrailingZerosbooleancontrols how this account is organized into header accounts when there are trailing zeroes, for example, for the account code 1100, if this field is set to true, only the first two numbers will be recognisednone
» typestringthe type of general ledger accountnone
» usagestringwhether this general ledger account is a DETAIL account, in which case it will have a value, or a HEADER account, in which case its value will be calculated based on the sum of detail accounts under it.none

Enumerated Values

PropertyValue
currencySymbolPositionAFTER_NUMBER
currencySymbolPositionBEFORE_NUMBER
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
typeINCOME
typeEXPENSE
typeLIABILITY
typeASSET
typeEQUITY
usageHEADER
usageDETAIL

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Get GL Account by ID

GET /glaccounts/{glAccountId}

Get single GL Account

Retrieve details on a specific General Ledger Account.

Parameters

NameTypeDescriptionIn
fromstringFrom (start) date to compute the account balance on.query
tostringTo (end) date to compute the account balance on.query
branchIDstringThe branch ID on which to calculate/filter the gl accounts balances.query
glAccountId (required)stringThe ID of the GL account.path

Example Responses

200 : OK
example-1

{
  "encodedKey": "8a193c26722b51b701722d77cd9e26c0",
  "creationDate": "2020-05-19T15:05:26+0000",
  "lastModifiedDate": "2020-05-19T15:05:26+0000",
  "glCode": "11100",
  "type": "ASSET",
  "usage": "DETAIL",
  "name": "Cash on Hand",
  "activated": true,
  "allowManualJournalEntries": true,
  "stripTrailingZeros": true,
  "currency": {
    "code": "EUR",
    "name": "Euro",
    "symbol": "€",
    "digitsAfterDecimal": 2,
    "currencySymbolPosition": "BEFORE_NUMBER",
    "isBaseCurrency": true,
    "creationDate": "2020-05-18T08:53:31+0000",
    "lastModifiedDate": "2020-05-18T08:53:31+0000"
  },
  "balance": "-1685.55"
}

400 : Bad Request
bad GL Account ID

{
  "returnCode": 600,
  "returnStatus": "INVALID_GL_ACCOUNT_ID"
}

400 : Bad Request
bad dates

{
  "returnCode": 610,
  "returnStatus": "INVALID_ACCOUNTING_DATE_ORDER",
  "errorSource": "The from date is set after the to date"
}

Responses

StatusMeaningDescriptionSchema
200OKOKGLAccountApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Get GL Journal Entries for a GL Account

GET /glaccounts/{glAccountId}/gljournalentries

Get GL Journal Entries for a GL Account

Get GL Journal Entries for a given GL Account.

Parameters

NameTypeDescriptionIn
from (required)stringStart date - The first booking date you want to retrieve journal entries from.query
to (required)stringEnd date - The last booking date you want to retrieve journal entries from.query
glAccountId (required)stringThe ID of the GL account.path

Example Responses

200 : OK
An array of journal entries

[
  {
    "encodedKey": "8a19a207744d899f01744e8893a50800",
    "entryID": 95,
    "creationDate": "2020-09-02T11:50:10+0000",
    "entryDate": "2020-08-10T00:00:00+0000",
    "transactionID": "21",
    "accountKey": "8a19c32b72eac4420172efcb0f176bbd",
    "productKey": "8a193c26722b51b701722d77ca932614",
    "productType": "LOAN",
    "amount": "200",
    "glAccount": {
      "encodedKey": "8a193c26722b51b701722d77cd9e26c0",
      "creationDate": "2020-05-19T15:05:26+0000",
      "lastModifiedDate": "2020-05-19T15:05:26+0000",
      "glCode": "11100",
      "type": "ASSET",
      "usage": "DETAIL",
      "name": "Cash on Hand",
      "activated": true,
      "allowManualJournalEntries": true,
      "stripTrailingZeros": true
    },
    "type": "DEBIT",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "bookingDate": "2020-08-10T00:00:00+0000"
  },
  {
    "encodedKey": "8a19a207744d899f01744e83027507f6",
    "entryID": 92,
    "creationDate": "2020-09-02T11:16:48+0000",
    "entryDate": "2020-06-15T00:00:00+0000",
    "transactionID": "20",
    "accountKey": "8a19c32b72eac4420172efcb0f176bbd",
    "productKey": "8a193c26722b51b701722d77ca932614",
    "productType": "LOAN",
    "amount": "100",
    "glAccount": {
      "encodedKey": "8a193c26722b51b701722d77cd9e26c0",
      "creationDate": "2020-05-19T15:05:26+0000",
      "lastModifiedDate": "2020-05-19T15:05:26+0000",
      "glCode": "11100",
      "type": "ASSET",
      "usage": "DETAIL",
      "name": "Cash on Hand",
      "activated": true,
      "allowManualJournalEntries": true,
      "stripTrailingZeros": true
    },
    "type": "DEBIT",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "bookingDate": "2020-06-15T00:00:00+0000"
  }
]

400 : Bad Request
Bad GL Account ID

{
  "returnCode": 600,
  "returnStatus": "INVALID_GL_ACCOUNT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[GLJournalEntryApiV1]nonenone
» accountKeystringthe encoded key of the loan or savings account that this journal entry relates tonone
» amountnumberthe amount of the journal entrynone
» assignedBranchKeystringthe encoded key of the branch that this journal entry is associated withnone
» bookingDatestringthe booking date of this journal entrynone
» creationDatestringthe date and time when the transaction that caused this journal entry was creatednone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» entryDatestringthe date on which this journal entry was entered into the ledgernone
» entryIDnumbera unique, incremental ID for ledger entriesnone
» glAccountGLAccountApiV1A general ledger accountnone
»» activatedbooleanwhether this general ledger account is in usenone
»» allowManualJournalEntriesbooleanwhether manual entries are allowed for this general ledger accountnone
»» balancenumberthe current balance of this general ledger accountnone
»» creationDatestring(date-time)the date on which this general ledger account was createdread-only
»» currencyCurrencyApiV1nonenone
»»» codestringthe three letter ISO code for this currencynone
»»» creationDatestringthe date on which this currency was creatednone
»»» currencySymbolPositionstringindicates where the currency symbol should appear in relation to the numeric valuenone
»»» digitsAfterDecimalnumberindicates how many decimal places are allowed for this currency. For example, a currenncy with 100 minor units to 1 major unit, there will be 2 decimal places.none
»»» isBaseCurrencybooleanwhether this currency is the base currency for your banking institutionnone
»»» lastModifiedDatestringthe date on which this currency was last modifiednone
»»» namestringthe name of this currencynone
»»» symbolstringthe currency symnbol used for this currencynone
»» descriptionstringan optional description for this general ledger accountnone
»» encodedKeystringthe encoded key of this general ledger accountnone
»» glCodestringthe numeric code for this general ledger accountnone
»» lastModifiedDatestring(date-time)the date on which this general ledger account was last modifiedread-only
»» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»»» creationDatestring(date-time)the date on which the data import was madenone
»»» encodedKeystringthe encoded key of this data migration eventnone
»»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»»» typestringthe type of migration eventnone
»» namestringthe name of this general ledger accountnone
»» stripTrailingZerosbooleancontrols how this account is organized into header accounts when there are trailing zeroes, for example, for the account code 1100, if this field is set to true, only the first two numbers will be recognisednone
»» typestringthe type of general ledger accountnone
»» usagestringwhether this general ledger account is a DETAIL account, in which case it will have a value, or a HEADER account, in which case its value will be calculated based on the sum of detail accounts under it.none
» notesstringany notes relating to this journal entrynone
» productKeystringthe product associated with this journal entrynone
» productTypestringthe type of product associated with this journal entrynone
» reversalEntryKeystringif this entry was subsequently revered by another journal entry, this field contains the encoded key of that journal entrynone
» transactionIDstringthe transaction ID that caused this journal entry. Please note, multiple journal entries can have the same transaction ID, for example, when a repayment goes to cover fees, princial, taxes etc.none
» typestringwhether this journal entry represents funds coming in or going outnone
» userKeystringthe encoded key of the user who created this journal entry, if it was created manuallynone

Enumerated Values

PropertyValue
currencySymbolPositionAFTER_NUMBER
currencySymbolPositionBEFORE_NUMBER
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
typeINCOME
typeEXPENSE
typeLIABILITY
typeASSET
typeEQUITY
usageHEADER
usageDETAIL
productTypeLOAN
productTypeSAVINGS
typeCREDIT
typeDEBIT

Status Code 400

NameTypeDescriptionRestrictions
» returnCodestringnonenone
» returnStatusstringnonenone

Group Role Names

Get group role names configured for your organization.

Get Group Role Names

GET /grouprolenames

Get Group Role Names

Get group role names

Example Responses

200 : OK
A list of group roles

[
  {
    "encodedKey": "8a193c26722b51b701722d77c25e22e6",
    "name": "President"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c3c922e7",
    "name": "Secretary"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c3c922e8",
    "name": "Treasurer"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» encodedKeystringA unique key for this role.none
» namestringThe name of this group role.none

Groups

Allows you to retrieve groups. Groups may have associated information such as their custom field values. The custom field values for groups can be changed using patch or delete methods.

Get all Groups

GET /groups

List Groups

Allows retrieving group directly by a group ID or by looking up a client. When retrieving a group, all his associated information such as their custom field values and addresses may also be returned if requested. An empty list is returned if no groups are found.

Example Requests

Get all groups assigned to the branch with id DB

GET /api/groups/?branchId=DB

Get all groups assigned to the centre with id DB and provide full details

GET /api/groups/?centreId=DC&fullDetails=true

Parameters

NameTypeDescriptionIn
centreIDstringLooking up a group assigned to a centre using branch ID/keyquery
branchIDstringLooking up a group assigned to a branch using branch ID/key.query
offsetintegerStart at index for pagination.query
limitintegerMax results to return.query
creditOfficerUsernamestringLooking up by the username of a specific credit officer, required if the user making the call has the "Credit Officer" role and the option "Can access other credit officers clients" is not activated.query
fullDetailsbooleanWhether to load all the nested fields for the groups as well.query

Example Responses

200 : ok
Array of groups and their basic details

[
  {
    "encodedKey": "8a193c26722b51b701722d77c969260e",
    "id": "237716573",
    "creationDate": "2020-05-19T15:05:25+0000",
    "lastModifiedDate": "2020-09-07T16:22:43+0000",
    "groupName": "Portanica",
    "loanCycle": 0,
    "preferredLanguage": "SPANISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf7130069"
    }
  },
  {
    "encodedKey": "8a193c26722b51b701722d77ca932611",
    "id": "040693245",
    "creationDate": "2020-05-19T15:05:25+0000",
    "lastModifiedDate": "2020-05-19T15:05:25+0000",
    "groupName": "Apache",
    "loanCycle": 0,
    "preferredLanguage": "ENGLISH",
    "clientRole": {
      "encodedKey": "8a194075720ece2c017226fcf7130069"
    }
  }
]

200 : ok
array of groups, full details

[
  {
    "theGroup": {
      "encodedKey": "8a193c26722b51b701722d77c969260e",
      "id": "237716573",
      "creationDate": "2020-05-19T15:05:25+0000",
      "lastModifiedDate": "2020-09-07T16:22:43+0000",
      "groupName": "Portanica",
      "loanCycle": 0,
      "preferredLanguage": "SPANISH",
      "clientRole": {
        "encodedKey": "8a194075720ece2c017226fcf7130069"
      }
    },
    "addresses": [],
    "customInformation": [],
    "groupRoles": [
      {
        "encodedKey": "8a19b592746765a501746960758307e0",
        "groupKey": "8a193c26722b51b701722d77c969260e",
        "groupRoleNameKey": "8a193c26722b51b701722d77c3c922e7",
        "clientKey": "8a193c26722b51b701722d77c67d23d6",
        "roleName": "Secretary",
        "indexInList": 0
      }
    ],
    "groupMembers": [
      {
        "encodedKey": "8a19b592746765a501746960758307df",
        "groupKey": "8a193c26722b51b701722d77c969260e",
        "clientKey": "8a193c26722b51b701722d77c67d23d6",
        "creationDate": "2020-09-07T16:22:43+0000",
        "indexInList": 0
      }
    ]
  },
  {
    "theGroup": {
      "encodedKey": "8a193c26722b51b701722d77ca932611",
      "id": "040693245",
      "creationDate": "2020-05-19T15:05:25+0000",
      "lastModifiedDate": "2020-09-24T10:25:39+0000",
      "groupName": "Apache",
      "notes": "some <i>rich</i> notes about this <b>amazing</b> <u>group</u>",
      "assignedUserKey": "8a19dab474909bc8017490f2fb9006a8",
      "assignedBranchKey": "8a193c26722b51b701722d779e7122de",
      "loanCycle": 0,
      "assignedCentreKey": "8a193c26722b51b701722d779e7122e0",
      "emailAddress": "apachegroup@yougotma.il",
      "mobilePhone1": "+35131429818014",
      "homePhone": "+350305551155",
      "preferredLanguage": "ENGLISH",
      "clientRole": {
        "encodedKey": "8a194075720ece2c017226fcf7130069"
      }
    },
    "addresses": [
      {
        "encodedKey": "8a19a3cc74beb0eb0174bf3f6fe80312",
        "parentKey": "8a193c26722b51b701722d77ca932611",
        "line1": "5a Group Lane",
        "line2": "",
        "city": "Big Smoke",
        "region": "Big Sky County",
        "postcode": "126 GV4",
        "country": "Countrystan",
        "indexInList": 0
      }
    ],
    "customInformation": [
      {
        "encodedKey": "8a19a3cc74beb0eb0174bf3f6fe80313",
        "parentKey": "8a193c26722b51b701722d77ca932611",
        "customFieldKey": "8a193c26722b51b701722d77cd292664",
        "customField": {
          "encodedKey": "8a193c26722b51b701722d77cd292664",
          "id": "Central_Office_Groups",
          "name": "Central Office",
          "type": "GROUP_INFO",
          "dataType": "SELECTION",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "customFieldSet": {
            "encodedKey": "8a193c26722b51b701722d77ccaf2638",
            "id": "_Office_Groups",
            "name": "Office",
            "createdDate": "2020-05-19T15:05:25+0000",
            "lastModifiedDate": "2020-05-19T15:05:25+0000",
            "indexInList": 0,
            "type": "GROUP_INFO",
            "usage": "SINGLE"
          },
          "indexInList": -1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [
            {
              "encodedKey": "8a193c26722b51b701722d77cd2d2668",
              "id": "620330172",
              "value": "Catamarca",
              "score": "0"
            },
            {
              "encodedKey": "8a193c26722b51b701722d77cd2d2669",
              "id": "433019118",
              "value": "Chaco",
              "score": "1"
            },
            {
              "encodedKey": "8a193c26722b51b701722d77cd2d266a",
              "id": "077431565",
              "value": "Jujuy",
              "score": "10"
            }
          ],
          "viewRights": {
            "encodedKey": "8a193c26722b51b701722d77cd292665",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a193c26722b51b701722d77cd2d2666",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [
            "Catamarca",
            "Chaco",
            "Jujuy"
          ],
          "amounts": {
            "Catamarca": "0",
            "Chaco": "1",
            "Jujuy": "10"
          }
        },
        "value": "Chaco",
        "amount": "1",
        "indexInList": 0,
        "customFieldID": "Central_Office_Groups",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19a3cc74beb0eb0174bf3f6fe80314",
        "parentKey": "8a193c26722b51b701722d77ca932611",
        "customFieldKey": "8a193c26722b51b701722d77cd32266f",
        "customField": {
          "encodedKey": "8a193c26722b51b701722d77cd32266f",
          "id": "Has_Many_Members_Groups",
          "name": "Has Many Members",
          "type": "GROUP_INFO",
          "dataType": "CHECKBOX",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "customFieldSet": {
            "encodedKey": "8a193c26722b51b701722d77ccd72639",
            "id": "_Members_Groups",
            "name": "Members",
            "createdDate": "2020-05-19T15:05:25+0000",
            "lastModifiedDate": "2020-05-19T15:05:25+0000",
            "indexInList": 1,
            "type": "GROUP_INFO",
            "usage": "SINGLE"
          },
          "indexInList": -1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a193c26722b51b701722d77cd3a2670",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a193c26722b51b701722d77cd3a2671",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "TRUE",
        "indexInList": 1,
        "customFieldID": "Has_Many_Members_Groups",
        "customFieldSetGroupIndex": -1
      },
      {
        "encodedKey": "8a19a3cc74beb0eb0174bf3f6fe80315",
        "parentKey": "8a193c26722b51b701722d77ca932611",
        "customFieldKey": "8a193c26722b51b701722d77cd32266b",
        "customField": {
          "encodedKey": "8a193c26722b51b701722d77cd32266b",
          "id": "Group_Members_Groups",
          "name": "Group Members",
          "type": "GROUP_INFO",
          "dataType": "NUMBER",
          "valueLength": "SHORT",
          "isDefault": false,
          "isRequired": false,
          "customFieldSet": {
            "encodedKey": "8a193c26722b51b701722d77ccd72639",
            "id": "_Members_Groups",
            "name": "Members",
            "createdDate": "2020-05-19T15:05:25+0000",
            "lastModifiedDate": "2020-05-19T15:05:25+0000",
            "indexInList": 1,
            "type": "GROUP_INFO",
            "usage": "SINGLE"
          },
          "indexInList": -1,
          "state": "NORMAL",
          "customFieldSelectionOptions": [],
          "viewRights": {
            "encodedKey": "8a193c26722b51b701722d77cd32266c",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "editRights": {
            "encodedKey": "8a193c26722b51b701722d77cd32266d",
            "isAccessibleByAllUsers": true,
            "roles": []
          },
          "unique": false,
          "values": [],
          "amounts": {}
        },
        "value": "17",
        "indexInList": 2,
        "customFieldID": "Group_Members_Groups",
        "customFieldSetGroupIndex": -1
      }
    ],
    "groupRoles": [
      {
        "encodedKey": "8a19a3cc74beb0eb0174bfa492ae04d3",
        "groupKey": "8a193c26722b51b701722d77ca932611",
        "groupRoleNameKey": "8a193c26722b51b701722d77c25e22e6",
        "clientKey": "8a193c26722b51b701722d77c66d23b9",
        "roleName": "President",
        "indexInList": 0
      },
      {
        "encodedKey": "8a19a3cc74beb0eb0174bfa492ae04d4",
        "groupKey": "8a193c26722b51b701722d77ca932611",
        "groupRoleNameKey": "8a193c26722b51b701722d77c3c922e7",
        "clientKey": "8a193c26722b51b701722d77c66d23bc",
        "roleName": "Secretary",
        "indexInList": 1
      }
    ],
    "groupMembers": [
      {
        "encodedKey": "8a193c26722b51b701722d77ca932612",
        "groupKey": "8a193c26722b51b701722d77ca932611",
        "clientKey": "8a193c26722b51b701722d77c66d23b9",
        "creationDate": "2020-05-19T15:05:25+0000",
        "indexInList": 0
      },
      {
        "encodedKey": "8a193c26722b51b701722d77ca932613",
        "groupKey": "8a193c26722b51b701722d77ca932611",
        "clientKey": "8a193c26722b51b701722d77c66d23bc",
        "creationDate": "2020-05-19T15:05:25+0000",
        "indexInList": 1
      }
    ]
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokGroupExpandedApiV1

Create new Group

POST /groups

Create a group

Allows the creation and update of groups programatically. This method allows creating a group with address information and custom field values.

This method can also be used for editing groups. In order to do so, the encodedKey of the group needs to be provided.

Example requests

A new group with an address and custom field values

{
  "group": {
    "id": "995577000",
    "creationDate": "2014-12-17T11:38:00+0000",
    "lastModifiedDate": "2014-12-17T15:55:00+0000",
    "groupName": "Secret Group",
    "notes": "This group will not be normally available",
    "assignedUserKey": "8904193be1b047f9a94202c8bec9b9ef",
    "assignedCentreKey": "2a9d604a381a4e10b2da8a4968aa6363",
    "assignedBranchKey": "7bd2a83f-b3844729b90ff531a59f3dc4",
    "clientRole": {
      "encodedKey": "8a34356cf78600abc2ef799123"
    }
  },
  "addresses": [
    {
      "line1": "The Tea Building",
      "line2": "56 Shoreditch High Street",
      "city": "London",
      "region": "England",
      "postcode": "E1 6JJ",
      "country": "United Kingdom",
      "indexInList": 0
    }
  ],
  "customInformation": [
    {
      "value": "60000",
      "customFieldID": "Income"
    },
    {
      "value": "TRUE",
      "customFieldID": "Newsletter"
    }
  ],
  "groupMembers": [
    {
      "clientKey": "0a57a959a9354e97a8df11c083efdece",
      "creationDate": "2014-12-17T11:38:00+0000"
    },
    {
      "clientKey": "5a3932bfecc84cc5a6c1e495bf4748ed",
      "creationDate": "2014-12-17T11:38:00+0000"
    }
  ],
  "groupRoles": [
    {
      "groupRoleNameKey": "e8927b8c01b24936ba806a91872e9652",
      "clientKey": "5d1d0328eaf14f718013d9ead2687984"
    }
  ]
}

Parameters

NameTypeDescriptionIn
bodyGroupApiV1A group objectbody

Example Responses

200 Response

{
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "clientRole": {
    "encodedKey": "string"
  },
  "creationDate": "2019-08-24T14:15:22Z",
  "emailAddress": "string",
  "encodedKey": "8a19b7057471f4af017472dc0fd80472",
  "groupName": "string",
  "homePhone": "string",
  "id": "string",
  "idPattern": "string",
  "lastModifiedDate": "2019-08-24T14:15:22Z",
  "loanCycle": 0,
  "migrationEvent": {
    "creationDate": "2019-08-24T14:15:22Z",
    "encodedKey": "string",
    "numCentresImported": 0,
    "numClientsImported": 0,
    "numGLAccountsImported": 0,
    "numGroupsImported": 0,
    "numLoanRepaymentsImported": 0,
    "numLoanTransactionsImported": 0,
    "numLoansImported": 0,
    "numSavingsImported": 0,
    "state": "REVERTED",
    "type": "IMPORT"
  },
  "mobilePhone1": "string",
  "preferredLanguage": "PORTUGESE"
}

Responses

StatusMeaningDescriptionSchema
200OKokGroupApiV1

Search for Groups

POST /groups/search

Search for Groups

Allows you to retrieve groups using dynamic custom filters.

Available group filter values

Filter Selection ParameterData Type
CLIENT_ROLE_KEYKEY
BRANCH_KEYKEY
CENTRE_KEYKEY
CREDIT_OFFICER_KEYKEY
ENCODED_KEYKEY
GROUP_NAMESTRING
CREATION_DATEDATE_UTC
LAST_MODIFIED_DATEDATE_UTC
IDSTRING
PREFERRED_LANGUAGEENUM
DEPOSITS_BALANCEMONEY
LOANS_BALANCEMONEY
TOTAL_BALANCEMONEY
NUMBER_OF_MEMBERSNUMBER
LOAN_CYCLENUMBER

Available filter elements

Filter ElementNumber Of affected valuesAvailable for
EQUALSONE_VALUEBIG_DECIMAL,BOOLEAN,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY
MORE_THANONE_VALUEBIG_DECIMAL,NUMBER,MONEY
LESS_THANONE_VALUEBIG_DECIMAL,NUMBER,MONEY
BETWEENTWO_VALUESBIG_DECIMAL,NUMBER,MONEY,DATE,DATE_UTC
ONONE_VALUEDATE,DATE_UTC
AFTERONE_VALUEDATE,DATE_UTC
BEFOREONE_VALUEDATE,DATE_UTC
STARTS_WITHONE_VALUESTRING
INLISTENUM,KEY
TODAYNO_VALUEDATE,DATE_UTC
THIS_WEEKNO_VALUEDATE,DATE_UTC
THIS_MONTHNO_VALUEDATE,DATE_UTC
THIS_YEARNO_VALUEDATE,DATE_UTC
LAST_DAYSONE_VALUEDATE,DATE_UTC
EMPTYNO_VALUEBIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_UTC
NOT_EMPTYNO_VALUEBIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_UTC

Example requests

A search

{
  "filterConstraints": [
    {
      "dataFieldType": "string",
      "dataItemType": "string",
      "filterElement": "string",
      "filterSelection": "string",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortDetails": {
    "dataFieldType": "string",
    "dataItemType": "string",
    "sortingColumn": "string",
    "sortingOrder": "string"
  }
}

Parameters

NameTypeDescriptionIn
offsetintegernonequery
limitintegernonequery
bodyFilterApiV1nonebody

Example Responses

200 Response

[
  {
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "clientRole": {
      "encodedKey": "string"
    },
    "creationDate": "2019-08-24T14:15:22Z",
    "emailAddress": "string",
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "groupName": "string",
    "homePhone": "string",
    "id": "string",
    "idPattern": "string",
    "lastModifiedDate": "2019-08-24T14:15:22Z",
    "loanCycle": 0,
    "migrationEvent": {
      "creationDate": "2019-08-24T14:15:22Z",
      "encodedKey": "string",
      "numCentresImported": 0,
      "numClientsImported": 0,
      "numGLAccountsImported": 0,
      "numGroupsImported": 0,
      "numLoanRepaymentsImported": 0,
      "numLoanTransactionsImported": 0,
      "numLoansImported": 0,
      "numSavingsImported": 0,
      "state": "REVERTED",
      "type": "IMPORT"
    },
    "mobilePhone1": "string",
    "preferredLanguage": "PORTUGESE"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[GroupApiV1][A group object]none
» assignedBranchKeystringthe encoded key of the branch to which this group is assignednone
» assignedCentreKeystringthe encoded key of the centre to which this group is assignednone
» assignedUserKeystringthe encoded key of the Mambu user to which this group is assignednone
» clientRoleClientRoleBasicApiV1the type of client or group as defined in Mambu in Administration > General Settings > Client Typesnone
»» encodedKeystringthe automatically generated encoded ID for this client or group typenone
» creationDatestring(date-time)the date and time when this group was createdread-only
» emailAddressstringthe email address for this group. This address will be used for automated and manually sent email notificationsnone
» encodedKeystringthe automatically generated encoded ID for this groupnone
» groupNamestringthe name of the groupnone
» homePhonestringthe primary landline contact number for this groupnone
» idstringthe ID for this groupnone
» idPatternstringthe pattern used to generate IDsnone
» lastModifiedDatestring(date-time)the date on which this group was last modifiedread-only
» loanCyclenumberthis number will increment each time this group takes out and fully pays back a loannone
» migrationEventDataMigrationEventApiV1details about an import or export operationnone
»» creationDatestring(date-time)the date on which the data import was madenone
»» encodedKeystringthe encoded key of this data migration eventnone
»» numCentresImportednumberthe number of centres which were imported during the data migrationnone
»» numClientsImportednumberthe number of clients which were imported as part of the data migrationnone
»» numGLAccountsImportednumberthe number of general ledger accounts which were imported as part of the data migrationnone
»» numGroupsImportednumberthe number of groups which were imported as part of the data migrationnone
»» numLoanRepaymentsImportednumberthe number of loan repayment transations which were imported as part of the data migrationnone
»» numLoanTransactionsImportednumberthe number of loan transactions which were imported as part of the data migrationnone
»» numLoansImportednumberthe number of loan accounts which were imported as part of the data migrationnone
»» numSavingsImportednumberthe number of savings accounts which were imported as part of the data migrationnone
»» statestringwhether the data import was accepted, is still in a draft state, or was rejected and all data revertednone
»» typestringthe type of migration eventnone
» mobilePhone1stringthe primiary mobile contact number for this groupnone
» preferredLanguagestringthe language which shoudl ideally be used when communicating with this groupnone

Enumerated Values

PropertyValue
stateREVERTED
stateDRAFT
stateAPPROVED
typeIMPORT
typeEXPORT
preferredLanguagePORTUGESE
preferredLanguageRUSSIAN
preferredLanguageROMANIAN
preferredLanguageENGLISH
preferredLanguageSPANISH
preferredLanguageGEORGIAN
preferredLanguageBURMESE
preferredLanguagePHRASE
preferredLanguageCHINESE
preferredLanguageFRENCH
preferredLanguageINDONESIAN

Get Group by ID

GET /groups/{groupId}

Get Group by ID

Allows you to retrieve a group directly by its group ID.

Parameters

NameTypeDescriptionIn
fullDetailsbooleannonequery
groupId (required)stringnonepath

Example Responses

200 : ok
A single group

{
  "encodedKey": "8a193c26722b51b701722d77ca932611",
  "id": "040693245",
  "creationDate": "2020-05-19T15:05:25+0000",
  "lastModifiedDate": "2020-09-24T10:25:39+0000",
  "groupName": "Apache",
  "assignedUserKey": "8a19dab474909bc8017490f2fb9006a8",
  "assignedBranchKey": "8a193c26722b51b701722d779e7122de",
  "loanCycle": 0,
  "assignedCentreKey": "8a193c26722b51b701722d779e7122e0",
  "emailAddress": "apachegroup@yougotma.il",
  "mobilePhone1": "+35131429818014",
  "homePhone": "+350305551155",
  "preferredLanguage": "ENGLISH",
  "clientRole": {
    "encodedKey": "8a194075720ece2c017226fcf7130069"
  }
}

Responses

StatusMeaningDescriptionSchema
200OKokGroupApiV1

Update Group info

PATCH /groups/{groupId}

Update Group Information

Information for a group can be added/edited using the PATCH method.

To remove all members and/or roles, provide an empty array for these fields.

Example requests

Updated group information

{
  "group": {
    "id": "445076768",
    "groupName": "Village group update",
    "notes": "some_notes after update",
    "assignedUserKey": "40288a164c31ebec014c31ebf7200004",
    "assignedCentreKey": "40288a164c31eca9014c31ef7e510005",
    "assignedBranchKey": "40288a164c31eca9014c31ef7e4f0003"
  },
  "groupMembers": [
    {
      "clientKey": "40288a164c31eca9014c31ef817100d9"
    }
  ],
  "groupRoles": [
    {
      "groupRoleNameKey": "40288a164c31eca9014c31ef8006000b",
      "clientKey": "40288a164c31eca9014c31ef819200da"
    }
  ]
}

Parameters

NameTypeDescriptionIn
groupobjectnonebody
» idstringID of the group. If not provided Mambu will generate one.body
» groupNamestringA string with the name of the group.body
» notesstringFree text with notes about the group.body
» assignedUserKeystringEncoded key or ID of the assigned user.body
» assignedCentreKeystringEncoded key or ID of the assigned centrebody
» assignedBranchKeystringEncoded key or ID of the assigned branch.body
» emailAddressstringE-mail address associated with the group.body
» mobilePhone1stringMobile phone associated with the group.body
» homePhonestringPhone associated with the group.body
groupMembers[object]an array of group membersbody
» clientKey (required)stringA string with the encoded key or id of the client being assigned to the group.body
groupRoles[object]an array of group members and their associated rolesbody
» groupRoleNameKey (required)stringThe encoded key of a group role.body
» clientKey (required)stringA valid encoded key of a client available as a member of the group.body
groupId (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
Bad Client ID

{
  "returnCode": 301,
  "returnStatus": "INVALID_CLIENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Group Comments

GET /groups/{groupId}/comments

Get all group comments

Get all comments for a group.

Parameters

NameTypeDescriptionIn
limitstringnonequery
offsetstringnonequery
groupId (required)stringthe ID of the grouppath

Example Responses

200 : OK
An array of comments

[
  {
    "encodedKey": "8a19b7057471f4af017472dc0fd80470",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "userKey": "8a194075720ece2c017226fced6f005e",
    "creationDate": "2020-09-09T14:24:42+0000",
    "lastModifiedDate": "2020-09-09T14:24:42+0000",
    "text": "He might  prefer a <div><br /></div><div><u>personal</u></div><div><u><br /></u></div><div><u>loan</u></div>"
  },
  {
    "encodedKey": "8a193c26722b51b701722d77c8bf25ab",
    "parentKey": "8a193c26722b51b701722d77c5e423b7",
    "creationDate": "2020-05-19T15:05:24+0000",
    "lastModifiedDate": "2020-05-19T15:05:24+0000",
    "text": "Should suggest she apply for the agriculture loan given the nature of their business"
  }
]

400 : Bad Request
Bad Group ID

{
  "returnCode": 149,
  "returnStatus": "INVALID_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[CommentApiV1]nonenone
» creationDatestring(date-time)the date and time at which this comment was addednone
» encodedKeystringa unique key for this commentnone
» lastModifiedDatestring(date-time)the date and time at which this comment was last modifiednone
» parentKeystringthe unique key of the parent object for this comment, for example, the client or loan account to which it relatesnone
» textstringthe text of the comment as a string, must be properly JSON escpaped if it contains special charactersnone
» userKeystringthe unique key of the user who created the commentnone

Create new Group Comment

POST /groups/{groupId}/comments

Create a group Comment

Create new comment for a group.

Example requests

A comment

{
  "comment": {
    "text": "this is a comment with \" \" all kinds of : \\ / \"non compliant\" stuff & = which has been JSON escaped"
  }
}

Parameters

NameTypeDescriptionIn
commentobjectan object contining the commentbody
» textstringtext of the comment to be added. if adding complex content make sure it is properly JSON encoded before making your requestbody
groupId (required)stringthe ID of the grouppath

Example Responses

200 : OK
A comment

{
  "encodedKey": "8a19c34574720f9e0174734a039f06e2",
  "parentKey": "8a193c26722b51b701722d77c5e423b7",
  "userKey": "8a194075720ece2c017226fced6f005e",
  "creationDate": "2020-09-09T14:39:36+0000",
  "lastModifiedDate": "2020-09-09T14:39:36+0000",
  "text": "this is a comment with \" \" all kinds of : \\ / non compliant stuff & = which has been JSON escaped"
}

400 : Bad Request
Extra parameters in the request

{
  "returnCode": 27,
  "returnStatus": "PARAMETER_NOT_ALLOWED"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCommentApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Group Custom Field Values

PATCH /groups/{groupId}/custominformation

Update custom field values

Update custom field values

Example Requests

Update a single custom field value

{
  "customInformation": [
    {
      "customFieldID": "custom_field_2",
      "value": "3"
    }
  ]
}

Update a field in a group

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field",
      "value": "new value",
      "customFieldSetGroupIndex": "0"
    }
  ]
}

Update multiple custom field values

{
  "customInformation": [
    {
      "customFieldID": "cf_grouped_field_2",
      "value": "3",
      "customFieldSetGroupIndex": "0"
    },
    {
      "customFieldID": "field_3",
      "value": "divorced"
    }
  ]
}

Parameters

NameTypeDescriptionIn
customInformation[object]nonebody
» customFieldID (required)stringnonebody
» value (required)stringnonebody
» customFieldSetGroupIndexstringRequired if field to update is part of a group, if the Field Set Group Index is not set, a new group will be created with the value provided.body
groupId (required)stringThe ID of the grouppath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Group Custom Info

GET /groups/{groupId}/custominformation/{customFieldId}

Get a custom field definition for a group

Allows retrieving a custom field definition for a given group directly by the ID/key of the group and the ID/key of the custom field definition.

Parameters

NameTypeDescriptionIn
groupId (required)stringThe ID of the group.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
A custom field definition

[
  {
    "encodedKey": "8a19cd6f74674df9017467f25aab02c6",
    "parentKey": "8a193c26722b51b701722d779e7122de",
    "customFieldKey": "8a19cd6f74674df9017467ef8e6802af",
    "customField": {
      "encodedKey": "8a19cd6f74674df9017467ef8e6802af",
      "id": "cf_group",
      "creationDate": "2020-09-07T09:42:33+0000",
      "lastModifiedDate": "2020-09-07T09:42:33+0000",
      "name": "Example Custom Field Definition",
      "type": "BRANCH_INFO",
      "dataType": "CHECKBOX",
      "valueLength": "SHORT",
      "isDefault": false,
      "isRequired": false,
      "description": "an example of a checkbox custom field definition",
      "customFieldSet": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802ae",
        "id": "_example_group_custom_field_set",
        "name": "example group custom field set",
        "notes": "example custom field set",
        "createdDate": "2020-09-07T09:41:50+0000",
        "lastModifiedDate": "2020-09-07T09:41:50+0000",
        "indexInList": 2,
        "type": "BRANCH_INFO",
        "usage": "SINGLE"
      },
      "indexInList": 0,
      "state": "NORMAL",
      "customFieldSelectionOptions": [],
      "viewRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b0",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "editRights": {
        "encodedKey": "8a19cd6f74674df9017467ef8e6802b1",
        "isAccessibleByAllUsers": false,
        "roles": []
      },
      "unique": false,
      "values": [],
      "amounts": {}
    },
    "value": "TRUE",
    "indexInList": -1,
    "customFieldID": "cf_group",
    "customFieldSetGroupIndex": -1
  }
]

404 : Not Found
Not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKCustomFieldApiV1
404Not FoundNot FoundInline

Response Schema

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Group Custom Field Value

PATCH /groups/{groupId}/custominformation/{customFieldId}

Update a custom field value for a group

Update a group custom field value

Example requests

Providing a new custom field value

{
  "value": "new custom field value"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
groupId (required)stringThe ID of the group.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
Field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
Not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Group Custom Field Value

DELETE /groups/{groupId}/custominformation/{customFieldId}

Delete Group Custom Field Value

Delete a single custom field value

Parameters

NameTypeDescriptionIn
groupId (required)stringThe ID of the group.path
customFieldId (required)stringThe ID of the custom field definition.path

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
Field is part of a group

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
Not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Update Group Custom Field Value (grouped)

PATCH /groups/{groupId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Update grouped custom field value

Update custom field value, which is part of a group

Example requests

A new custom field value

{
  "value": "new custom field value"
}

Parameters

NameTypeDescriptionIn
valuestringnonebody
groupId (required)stringThe ID of the grouppath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
Wrong group index provided

{
  "returnCode": 916,
  "returnStatus": "INVALID_CUSTOM_FIELD_GROUP_INDEX",
  "errorSource": "cf_group_field_2"
}

404 : Not Found
Field not found

{
  "returnCode": 903,
  "returnStatus": "INVALID_CUSTOM_FIELD_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline
400Bad RequestBad RequestInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone
» errorSourcestringnonenone

Status Code 404

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Delete Group Custom Field Value (grouped)

DELETE /groups/{groupId}/custominformation/{customFieldId}/{customFieldGroupSetIndex}

Delete grouped custom field value

Delete a custom field value, which is part of a group

Parameters

NameTypeDescriptionIn
groupId (required)stringThe ID of the grouppath
customFieldId (required)stringThe ID of the custom field definition.path
customFieldGroupSetIndex (required)stringnonepath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKInline

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Get Documents for a Group

GET /groups/{groupId}/documents

Get documents for group

Get all documents for a given group

Parameters

NameTypeDescriptionIn
offsetintegeroffset results. use with limit parameter to achieve pagingquery
limitintegermax number of records to returnquery
groupId (required)stringThe ID of the grouppath

Example Responses

200 : ok
An array of documents

[
  {
    "encodedKey": "8a19c035747bf5b901747c5bfb04014b",
    "id": 51,
    "creationDate": "2020-09-11T08:52:48+0000",
    "lastModifiedDate": "2020-09-11T08:52:48+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "GROUP",
    "name": "covid rules",
    "type": "png",
    "fileSize": 8258,
    "originalFilename": "Screenshot_2020-04-22_at_14.31.29.png",
    "location": "BRSIDSLFBOGAYZKUUKCOGGQEDOSEOD",
    "description": "some guidelines regarding covid",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "big chief"
  },
  {
    "encodedKey": "8a19a3337476f2d00174775b6a3001ae",
    "id": 43,
    "creationDate": "2020-09-10T09:31:54+0000",
    "lastModifiedDate": "2020-09-10T09:31:54+0000",
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "GROUP",
    "name": "group doc",
    "type": "png",
    "fileSize": 32109,
    "originalFilename": "clients_duplicate_id.png",
    "location": "JRTBQGGVXFQRQRBDGBRWQCTXJNRWXP",
    "description": "group doc desc",
    "createdByUserKey": "8a194075720ece2c017226fced6f005e",
    "userName": "big chief"
  }
]

400 : Bad Request
Bad Group ID

{
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS",
  "errorSource": "wrong owner id"
}

Responses

StatusMeaningDescriptionSchema
200OKokInline
400Bad RequestBad RequestExecutionStatusApiV1

Response Schema

Status Code 200

NameTypeDescriptionRestrictions
anonymous[DocumentApiV1]nonenone
» createdByUserKeystringthe encoded key of the user who added this documentnone
» creationDatestringthe date and time when this document was creatednone
» descriptionstringa description of this documentnone
» documentHolderKeystringthe encoded key of the entity to which this document is attachednone
» documentHolderTypestringthe type of entity, eg. client, loan product, to which this document is attachednone
» encodedKeystringthe automatically generated encoded ID for this itemnone
» fileSizenumberthe size, in bytes, of the attached documentnone
» idnumberan ID for this documentnone
» lastModifiedDatestringthe date on which this document was last modifiednone
» locationstringindicates where the document is savednone
» namestringthe display name of this documentnone
» originalFilenamestringthe name of the originally uploaded filenone
» typestringthe file type of the document, eg. png, jpeg, pdfnone
» userNamestringthe name of the user who uploaded the documentnone

Enumerated Values

PropertyValue
documentHolderTypeBRANCH
documentHolderTypeLOAN_ACCOUNT
documentHolderTypeGROUP
documentHolderTypeDEPOSIT_ACCOUNT
documentHolderTypeLINE_OF_CREDIT
documentHolderTypeLOAN_PRODUCT
documentHolderTypeGL_JOURNAL_ENTRY
documentHolderTypeSAVINGS_PRODUCT
documentHolderTypeUSER
documentHolderTypeCLIENT
documentHolderTypeCENTRE
documentHolderTypeID_DOCUMENT

Attach Document for a Group

POST /groups/{groupId}/documents

Attach new Document to a group

Attach a new document to a group

Example requests

A document to upload

{
  "document": {
    "documentHolderKey": "8a193c26722b51b701722d779e7122df",
    "documentHolderType": "GROUP",
    "name": "some image",
    "type": "PNG",
    "description": "this is an image file"
  },
  "documentContent": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAF0CAYAAACudHRvAAABQGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASS=="
}

Parameters

NameTypeDescriptionIn
bodyCreateDocumentApiV1a new document to be attached to an entitybody
groupId (required)stringThe ID of the grouppath

Example Responses

201 : Created
Uploaded document details

{
  "encodedKey": "8a19c035747bf5b901747c5bfb04014d",
  "id": 52,
  "creationDate": "2020-09-11T08:54:53+0000",
  "lastModifiedDate": "2020-09-11T08:54:53+0000",
  "documentHolderKey": "8a193c26722b51b701722d779e7122df",
  "documentHolderType": "GROUP",
  "name": "some image",
  "type": "png",
  "fileSize": 32109,
  "originalFilename": "some_image.png",
  "location": "RCPOUIUHJFBYDRURQNNHMOGBEFIOQF",
  "description": "this is an image file",
  "createdByUserKey": "8a194075720ece2c017226fced6f005e"
}

400 : Bad Request
Provided file type does not match actual file uploaded

{
  "returnCode": 973,
  "returnStatus": "INCONSISTENT_EXTENSION_WITH_FILE_CONTENT",
  "errorSource": "Invalid extension with file content"
}

Responses

StatusMeaningDescriptionSchema
201CreatedCreatedDocumentApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Get Group Document

GET /groups/{groupId}/documents/{documentId}

Get a group Document

Get a specific document attached to a group

Parameters

NameTypeDescriptionIn
groupId (required)stringThe ID of the grouppath
documentId (required)stringThe ID of the documentpath

Example Responses

200 : OK
Base64-encoded document

"iVBORw0KGgoAAAANSUhEUgAAAEAAAAA9CAYAAAAd1W/BAAAMY2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdck0cbv3dkkrACEZAR9hJFZgAZIawIAjIFUQlJIGHEmBBE3NRSBesWUZxoVUTRagWkDkSssyhu6yiKqFRqsYoLle8yoNZ+4/c9v9+993+fe+7/jNzlvQNAr5Mvk+Wj+gAUSAvlCZGhrElp6SzSI4ABU0ADtsCTL1DIOPHxMQDKUP93eX0DIKr+qpuK65/j/1UMhSKFAAAkA=="

400 : Bad Request
Bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKstring
400Bad RequestBad RequestExecutionStatusApiV1

Delete Group Document

DELETE /groups/{groupId}/documents/{documentId}

Delete a group Document

Delete a document attached to a group

Parameters

NameTypeDescriptionIn
groupId (required)stringThe ID of the grouppath
documentId (required)stringThe ID of the documentpath

Example Responses

200 : OK
Success Response

{
  "returnCode": 0,
  "returnStatus": "SUCCESS"
}

400 : Bad Request
Bad Document ID

{
  "returnCode": 970,
  "returnStatus": "INVALID_DOCUMENT_ID"
}

Responses

StatusMeaningDescriptionSchema
200OKOKExecutionStatusApiV1
400Bad RequestBad RequestExecutionStatusApiV1

Get Lines of Credit for a Group

GET /groups/{groupId}/linesofcredit

Get Lines of Credit for a Group

Get lines of credit for a client in a group

Parameters

NameTypeDescriptionIn
fullDetailsbooleannonequery
groupId (required)stringnonepath

Example Responses

200 : ok
A line of credit for a group and the basic details

[
  {
    "encodedKey": "8a19a3cc74beb0eb0174bfa5562b04dc",
    "id": "ZCS816",
    "groupKey": "8a193c26722b51b701722d77ca932611",
    "startDate": "2020-09-01T00:00:00+0000",
    "expireDate": "2021-09-30T00:00:00+0000",
    "creationDate": "2020-09-24T10:35:16+0000",
    "approvedDate": "2020-09-24T12:35:16+0000",
    "lastModifiedDate": "2020-09-24T10:35:16+0000",
    "state": "APPROVED",
    "amount": "15000",
    "exposureLimitType": "APPROVED_AMOUNT",
    "notes": "a line of credit for the apache group",
    "availableCreditAmount": "15000"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKokLineOfCreditFullApiV1

Images

Allows you to retrieve images of client profiles/signatures and any other images via api calls.

Get Image by ID

GET /images/{imageId}

Get Image by ID

Allows retrieving images of client profiles/signatures or any other images via api calls. The iamge ID can be found by, for example, making a GET request for the client.

Images will be returned as a base64 encoded string.

Parameters

NameTypeDescriptionIn
sizestringImage size to be returned.query
imageId (required)stringnonepath

Enumerated Values

ParameterValue
sizeLARGE
sizeMEDIUM
sizeSMALL_THUMB
sizeTINY_THUMB

Example Responses

200 : OK
base 64 encoded string

"bW92ZSBvbiwgbm90aGluZyB0byBzZWUgaGVyZSAuLi4="

400 : Bad Request
Missing Image ID

{
  "errorSource": "picture key is required",
  "returnCode": 4,
  "returnStatus": "INVALID_PARAMETERS"
}

Responses

StatusMeaningDescriptionSchema
200OKOKstring
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» errorSourcestringnonenone
» returnCodeintegernonenone
» returnStatusstringnonenone

Index Rates

Update index rates on the system. For example EURIBOR is updated monthly and this can be automated using this endpoint.

Create or update Index Rates

POST /indexratesources/{indexRateSourceId}/indexrates

Update an Index Rate Source

Updates an index rate source. A valid index source ID is required.

Example requests

An index rate

{
  "indexRate": {
    "startDate": "2020-04-16",
    "rate": "-0.03256",
    "notes": "Euribor Apr 2020"
  }
}

Parameters

NameTypeDescriptionIn
indexRateobjectnonebody
» notesstringOptional notes about the ratebody
» rate (required)stringA number with the interest ratebody
» startDate (required)string(date)Date of the start of the new interest ratebody
indexRateSourceId (required)stringnonepath

Example Responses

200 Response

{
  "encodedKey": "8a19b7057471f4af017472dc0fd80472",
  "notes": "string",
  "rate": 0,
  "rateSource": {
    "encodedKey": "8a19b7057471f4af017472dc0fd80472",
    "name": "string",
    "notes": "string",
    "type": "TAX_RATE"
  },
  "startDate": "string",
  "userKey": "string"
}

200 : OK
response

400 : Bad Request
Bad start date

{
  "returnCode": 1302,
  "returnStatus": "INVALID_INDEX_RATE_START_DATE"
}

Responses

StatusMeaningDescriptionSchema
200OKOKIndexRateApiV1
400Bad RequestBad RequestInline

Response Schema

Status Code 400

NameTypeDescriptionRestrictions
» returnCodeintegernonenone
» returnStatusstringnonenone

Indicators

Retrieve various performance indicators for the organization. Performance indicator descriptions can be found in our user guide.

Possible indicators to use include:

Clients

NUM_CLIENTS
NUM_ACTIVE_CLIENTS
NUM_INACTIVE_CLIENTS
NUM_OPEN_CLIENTS
NUM_CLOSED_CLIENTS
NUM_EXITED_CLIENTS
NUM_PENDING_APPROVAL_CLIENTS

Active Pure Groups

NUM_GROUPS_BORROWING
AVERAGE_GROUP_SIZE
NUM_GROUP_BORROWERS
NUM_INDIVIDUAL_BORROWERS
PERCENTAGE_OF_FEMALE_BORROWERS
NUM_GROUPS_SAVING
NUM_INDIVIDUAL_SAVERS
NUM_GROUP_SAVERS
NUM_GROUPS
NUM_HYBRID_GROUPS_BORROWING
NUM_HYBRID_GROUP_BORROWERS

Deposits

NUM_ACTIVE_SAVINGS_ACCOUNTS
TOTAL_DEPOSITS
INTEREST_PAYABLE

Loan Portfolio

NUM_LOANS_OUTSTANDING
NUM_LOANS_PENDING_DISBURSAL
NUM_LOANS_IN_ARREARS
NUM_LOANS_AWAITING_APPROVAL
PORTFOLIO_PENDING_DISBURSAL
GROSS_LOAN_PORTFOLIO
AVERAGE_LOAN_BALANCE
TOTAL_DISBURSED_ACTIVE_LOANS
PROJECTED_LOAN_INTEREST_EARNINGS

Loan Transaction

TOTAL_LOANS_DISBURSED

Risk and Aging

PORTFOLIO_PERCENT_AT_RISK
PORTFOLIO_VALUE_AT_RISK
PAR_7_DAYS
PAR_15_DAYS
PAR_30_DAYS
PAR_90_DAYS
PAR_7_30_DAYS
PAR_30_90_DAYS
PAR_90_180_DAYS
PAR_180_360_DAYS
VAR_7_DAYS
VAR_15_DAYS
VAR_30_DAYS
VAR_90_DAYS
INTEREST_IN_SUSPENSE

Organization Indicators

NUM_BRANCHES
NUM_CREDIT_OFFICERS
NUM_LOANS_PER_BRANCH
NUM_LOANS_PER_CREDIT_OFFICER
NUM_LOAN_ACCOUNTS
NUM_USERS

Get KPIs

GET /indicators/{INDICATOR}

Get