NAV Navigation
cURL HTTP JavaScript Ruby Python Java Go PHP

Welcome

This documentation was last updated on Wed Mar 13 08:31:05 UTC 2024 and covers Mambu Version v9.158.1

Welcome to the Mambu API v2 documentation. Here you can learn everything you need to know about API v2 and how to interact with Mambu!

We offer language bindings in cURL, HTTP, JavaScript, Node.js, Ruby, Python, Java, and Go. You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs at the top right.

You can also download OpenAPI specifications for all of our endpoints which can be used to generate client SDKs, interactive documentation, create mock servers and more. For more information, see the OpenAPI specification section.

About Mambu API v2

Scroll down for code samples, example requests, and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Mambu API v2 is a fully compliant RESTful API and we recommend building all new integrations with API v2 (instead of API v1).

Base URLs

The base URL for requests to the API is:

To make 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.

Verb Function
GET To retrieve a resource or a collection of resources
POST To create a resource
PATCH To modify an existing resource
PUT To replace an existing resource
DELETE To delete a resource

Authentication

Mambu supports two methods for authenticating API requests:

Basic Authentication

curl --location --request GET 'https://TENANT_NAME.mambu.com/api/users' \
--header 'Authorization: Basic U29tZVVzZXI6T3BlblNlc2FtZQ=='
GET /api/users HTTP/1.1
Host: TENANT_NAME.mambu.com
Authorization: Basic U29tZVVzZXI6T3BlblNlc2FtZQ==
var settings = {
  "url": "https://TENANT_NAME.mambu.com/api/users",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic U29tZVVzZXI6T3BlblNlc2FtZQ=="
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
require "uri"
require "net/http"

url = URI("https://TENANT_NAME.mambu.com/api/users")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic U29tZVVzZXI6T3BlblNlc2FtZQ=="

response = https.request(request)
puts response.read_body
import requests

url = "https://TENANT_NAME.mambu.com/api/users"

payload={}
headers = {
  'Authorization': 'Basic U29tZVVzZXI6T3BlblNlc2FtZQ=='
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://TENANT_NAME.mambu.com/api/users")
  .method("GET", null)
  .addHeader("Authorization", "Basic U29tZVVzZXI6T3BlblNlc2FtZQ==")
  .build();
Response response = client.newCall(request).execute();
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://TENANT_NAME.mambu.com/api/users"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Basic U29tZVVzZXI6T3BlblNlc2FtZQ==")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

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 code samples for this section for sample GET requests to the /users endpoint using the above example.

Note that the login credentials must be for a user 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.

Versioning

# You can also use wget
curl -X {HTTP Verb} https://TENANT_NAME.mambu.com/api/{Insert resource URI here} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET https://TENANT_NAME.mambu.com/api/Insert-Resource-URI-here HTTP/1.1
Host: TENANT_NAME.mambu.com

Accept: application/vnd.mambu.v2+json
var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: 'TENANT_NAME.mambu.com/api/{Insert resource URI here}',
  method: '{HTTP Verb}',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.{HTTP Verb} 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}',
  params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.{HTTP Verb}('https://TENANT_NAME.mambu.com/api/{Insert resource URI here}', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://TENANT_NAME.mambu.com/api/{Insert resource URI here}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty(“Accept”, “application/vnd.mambu.v2+json”);
con.setRequestMethod("{HTTP Verb}");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("{HTTP Verb}", "https://TENANT_NAME.mambu.com/api/{Insert resource URI here}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Mambu API v2 provides a versioning system to assist with backwards compatibility. Contract changes will result in a new version of each affected resource becoming available without the old version immediately becoming obsolete.

Versioning is supported in API requests via the Accept header.

Template: application/vnd.mambu.{version}+json

To retrieve a specific version of an entity, fill a value into the template above. The highest currently supported version is v2.

Payloads

Mambu API v2 currently has endpoints that accept and return either application/json, application/yaml, or multipart/form-data payloads.

When making a POST, PUT, or PATCH request, you must use the Content-Type header to specify the content type of the payload.

Requests

Code samples

# You can also use wget
curl -X {HTTP Verb} https://TENANT_NAME.mambu.com/api/{Insert resource URI here} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET https://TENANT_NAME.mambu.com/api/Insert-Resource-URI-here HTTP/1.1
Host: TENANT_NAME.mambu.com

Accept: application/vnd.mambu.v2+json
var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}',
  method: '{HTTP Verb}',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.{HTTP Verb} 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.{HTTP Verb}('https://TENANT_NAME.mambu.com/api/{Insert resource URI here}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://TENANT_NAME.mambu.com/api/{Insert resource URI here}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty(“Accept”, “application/vnd.mambu.v2+json”);
con.setRequestMethod("{HTTP Verb}");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("{HTTP Verb}", "https://TENANT_NAME.mambu.com/api/{Insert resource URI here}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

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"
}

The response to a request will contain either an error response or a payload in the content type that the endpoint accepts.

Error response

An error response will consist of:

Field Type Availability Content
errorCode number Always present A unique error code. For more information, see API Responses and Error Codes.
errorSource string Sometimes present A human-readable message capturing unsatisfied constraints.
errorReason string Always present A human-readable message stating the general category of the failure.

Idempotency

Code samples

# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: 01234567-9abc-def0-1234-56789abcdef0'
POST https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions HTTP/1.1
Host: TENANT_NAME.mambu.com
Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: 01234567-9abc-def0-1234-56789abcdef0
var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'01234567-9abc-def0-1234-56789abcdef0'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => '01234567-9abc-def0-1234-56789abcdef0'
}

result = RestClient.post 'https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': '01234567-9abc-def0-1234-56789abcdef0'
}

r = requests.post('https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
String idempotentKey = UUID.randomUUID().toString();
con.setRequestProperty(“Idempotency-Key”, idempotentKey);
con.setRequestProperty(“Accept”, “application/vnd.mambu.v2+json”);
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"01234567-9abc-def0-1234-56789abcdef0"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/deposits/{depositAccountId}/transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Idempotent requests to the Mambu API are guaranteed to be executed no more than once.

Working with financial transactions, it is important to ensure some requests are not repeated for any reason, which may result in data loss or accidental duplication. You may configure requests to be idempotent by providing an Idempotency-Key header and providing a unique UUID token for the request. This will guard against the possibility of error if a request must be retried.

When an idempotent request is processed, the status code and body of the response is associated with the idempotency key and stored in a cache. If the request is duplicated for any reason, the duplicate request will not be processed, and the response will be re-sent to the client.

Idempotent requests that fail at the server level such validation failures are not stored in the cache. Subsequent requests with the same idempotency key will be processed as if they were new, receiving the same 400 BAD REQUEST status code.

For examples of idempotent requests, see the code samples for this section.

Idempotency Keys and Retry Mechanisms

Idempotency keys must use the v4 UUID format (32 hexadecimal digits, in a 8-4-4-4-12 arrangement, such as 01234567-9abc-def0-1234-56789abcdef0).

We recommend generating UUIDs programmatically or by using an online generator such as UUID Generator to ensure that all keys are valid V4 UUIDs.

Retry mechanisms must:

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

Code samples

# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON \
  -H 'Accept: application/vnd.mambu.v2+json'

GET https://TENANT_NAME.mambu.com/api/Insert-Resource-URI-here?offset=10&limit=10&paginationDetails=ON HTTP/1.1
Host: TENANT_NAME.mambu.com

Accept: application/vnd.mambu.v2+json
var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON',
  method: '{HTTP Verb}',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.{HTTP Verb} 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.{HTTP Verb}('https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty(“Accept”, “application/vnd.mambu.v2+json”);
con.setRequestMethod("{HTTP Verb}");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("{HTTP Verb}", "https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?offset=10&limit=10&paginationDetails=ON", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Response headers

(...)
content-type: application/vnd.mambu.v2+json
date: Mon, 03 Sep 2018 10:56:15 GMT
items-limit: 10
items-offset: 10
items-total: 35
(...)

Mambu API v2 has customisable pagination capabilities which can be used with all GET requests. It also has sorting and filtering capabilities for search endpoints.

We strongly recommend using the pagination, sorting, and filtering capabilities when making requests which will return a large number of records because response times are much faster.

Pagination query parameters

Pagination is deactivated by default and must be specified in each request. There are three available query parameters you may use, paginationDetails, offset, and limit.

paginationDetails

The paginationDetails query parameter returns pagination details in the header of your response. The default value is OFF. To include pagination details set the value to ON. Pagination details includes the total number of records, the limit value, and the offset value.

limit

The limit query parameter determines the number of records that will be retrieved. The default value is 50. The maximum value is 1,000.

offset

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

In the example, we can see that there are 35 total records. By setting offset to 10 and limit to 10, we are returning the second set of 10 records, essentially "Page 2" of our paginated response.

Pagination best practices

Once you have used the pagination query parameters to retrieve all the available records in the database for your specific query, you no longer need to make any additional API requests.

To determine whether you need to make any additional API requests you may compare the value of the limit parameter to the number of records retrieved in the body of your request.

If the number of records is less than the value of the limit parameter then no additional API requests are necessary.

If the number of records is equal to the limit value then you may make additional API requests.

If you receive an empty array [] in the body of your request, this means there are no records for that request and you do not need to make any additional API requests.

Sorting and filtering with search endpoints

All the search endpoints in API v2 end in :search. Search endpoints accept a filterCriteria array of objects and a sortingCriteria object in their request body.

When making broad searches that will return a lot of records, using pagination with appropriate values can ensure that your result set will not shift as new records matching your search criteria are created, which may otherwise lead to duplicates across pages.

sortingCriteria

The sortingCriteria object has two properties, field and order.

field property

We recommend you enter either an incremental ID or a timestamp as the value for the field property.

order property

The order property accepts two values, ascending (ASC) or descending (DESC). The default value is DESC, however, if using pagination or a search where new records are being actively created, for example transactions or journal entries created up to and including the current day, we strongly recommend you set the value to ASC. This will cause new records to be added to the end of your result set.

filterCriteria

If you are making a broad search that will return a lot of results, we recommend constraining your search query using a time interval. This may be done by setting the field property to a date property such as creationDate or valueDate. Setting the operator property to BETWEEN. And entering two dates as the values for the value and secondValue properties. This will ensure that no newly created records will interfere with a set of results. Please see the related note about searches using the BETWEEN operator in the considerations for specific field types section below for more information about this operator.

Details Level

Code samples

# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL \
  -H 'Accept: application/vnd.mambu.v2+json'

GET https://TENANT_NAME.mambu.com/api/Insert-Resource-URI-here?detailsLevel=FULL HTTP/1.1
Host: TENANT_NAME.mambu.com

Accept: application/vnd.mambu.v2+json
var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL',
  method: '{HTTP Verb}',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.{HTTP Verb} 'https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.{HTTP Verb}('https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty(“Accept”, “application/vnd.mambu.v2+json”);
con.setRequestMethod("{HTTP Verb}");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("{HTTP Verb}", "https://TENANT_NAME.mambu.com/api/{Insert resource URI here}?detailsLevel=FULL", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Mambu API v2 supports two details levels for responses:

To view a higher level of detail, include detailsLevel as a query parameter in your request and give it the value FULL.

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.

OpenAPI Specification

This API Reference documentation is automatically generated from OpenAPI Specification (OAS) files.

We allow you to:

You can use the JSON-formatted OAS files to scaffold client SDKs in various languages. See Generating SDKs from OAS below.

API discovery

Request samples

Code samples

# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/swagger/resources \
  -H 'apikey: APIKEY'

GET https://TENANT_NAME.mambu.com/api/swagger/resources HTTP/1.1
Host: TENANT_NAME.mambu.com

apikey: APIKEY
var headers = {
  'apikey':'APIKEY'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/swagger/resources',
  method: 'GET',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'apikey' => 'APIKEY'
}

result = RestClient.get 'https://TENANT_NAME.mambu.com/api/swagger/resources',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'apikey': 'APIKEY'
}

r = requests.get('https://TENANT_NAME.mambu.com/api/swagger/resources', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://TENANT_NAME.mambu.com/api/swagger/resources");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty("apikey", "APIKEY");
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "apikey": []string{"APIKEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/swagger/resources", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Example response

{
    "items": [
        {
            "jsonPath": "json/clients_v2_swagger.json",
            "label": "Clients",
            "hashValue": "Clients",
            "index": 0
        },
        {
            "jsonPath": "json/clients_documents_v2_swagger.json",
            "label": "Client Documents",
            "hashValue": "Client_Documents",
            "index": 1
        },
        {
            "jsonPath": "json/branches_v2_swagger.json",
            "label": "Branches",
            "hashValue": "Branches",
            "index": 2
        },
        {
            "jsonPath": "json/centres_v2_swagger.json",
            "label": "Centres",
            "hashValue": "Centres",
            "index": 3
        },
        ...
        {
            "jsonPath": "json/configuration_iddocumenttemplates.yaml_v2_swagger.json",
            "label": "Identification Document Templates Configuration",
            "hashValue": "Identification_Document_Templates_Configuration",
            "index": 64
        },
        {
            "jsonPath": "json/configuration_loanrisklevels.yaml_v2_swagger.json",
            "label": "Loan Risk Levels Configuration",
            "hashValue": "Loan_Risk_Levels_Configuration",
            "index": 65
        },
        {
            "jsonPath": "json/currencies_v2_swagger.json",
            "label": "Currencies",
            "hashValue": "Currencies",
            "index": 66
        }
    ]
}

To retrieve either the basic OAS file or the enriched OAS file with custom field values for a specific API, you must first build the path for the resource.

To build the path for a resource you must retrieve the jsonPath value. This value is provided when you retrieve the list of all available APIs.

To retrieve the list of all available APIs you may use the https://TENANT_NAME.mambu.com/api/swagger/resources endpoint.

The response returns an array of objects. Each object represents an API and includes its jsonPath value.

Next, to retrieve the OAS file for a specific API. See Retrieving OAS Files below.

Retrieving OAS Files

Code Samples

# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file} \
  -H 'apikey: APIKEY'

GET https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file} HTTP/1.1
Host: TENANT_NAME.mambu.com

apikey: APIKEY
var headers = {
  'apikey':'APIKEY'

};

$.ajax({
  url: 'https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file}',
  method: 'GET',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'apikey' => 'APIKEY'
}

result = RestClient.get 'https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'apikey': 'APIKEY'
}

r = requests.get('https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty("apikey", "APIKEY");
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "apikey": []string{"APIKEY"}
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/swagger/completejson/{OAS-file}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Example response

{
    "swagger": "2.0",
    "info": {
        "version": "v2",
        "title": "clients"
    },
    "host": "localhost:8889",
    "basePath": "/api",
    "tags": [
        {
            "name": "Clients",
            "description": "Allows you to retrieve, create, update, or delete clients. Clients may have associated information such as their address, identification documents, or custom field values."
        }
    ],
    "schemes": [
        "http",
        "https"
    ],
    "paths": {
    ...
    },
    "securityDefinitions": {
        "basic": {
            "description": "",
            "type": "basic"
        }
    },
    "definitions": {
    ...
    }
}

Once you have followed the steps to retrieve the jsonPath value for a specific API, you can build the path to a specific resource.

To retrieve the specification file for a given API, join the base URL with the value of the relevant jsonPath.

Basic OAS file

The basic OAS file will not include any custom field values and you do not need to authenticate to access this endpoint.

The endpoint to retrieve the basic OAS file is:

https://TENANT_NAME.mambu.com/api/swagger/{jsonPath}

For example, to retrieve the basic OAS file for the Clients API you would use:

https://TENANT_NAME.mambu.com/api/swagger/json/clients_v2_swagger.json

Enriched OAS file

The enriched OAS file will include any custom field values you have set up for your organisation at the time of generation. This endpoint requires authentication using either HTTP Basic Auth or an API key provided in an apikey header.

The endpoint to retrieve the enriched OAS file with custom field values is:

https://TENANT_NAME.mambu.com/api/swagger/complete{jsonPath}

For example, to retrieve the enriched OAS file for the Clients API you would use:

https://TENANT_NAME.mambu.com/api/swagger/completejson/clients_v2_swagger.json

Both endpoints are available for both your production and sandbox environments. Replace TENANT_NAME with TENANT_NAME.sandbox to access API specifications for the sandbox environment, which is usually one version ahead of production. This gives you time to investigate new features and functionality before using it in production.

Generating SDKs from OAS

Once you have your OAS file you are free to use any number of tools to generate a client SDK in your preferred language, for example, the freely available and online Swagger Editor. By either importing the file or copying the specification into the editor window you will be able to see both navigable documentation and the option located at the top of the window to Generate Client.

Generating a client SDK in your preferred language on Swagger Editor

Remember to edit the host field in your OAS file to reflect your Mambu domain before generating your SDK. For more information on your Mambu domain, see Base URLs.

Searching for Records

A basic search query for loans from a particular product type, sort by approval date
POST /loans:search

{
  "filterCriteria": [
    {
      "field": "loanName",
      "operator": "EQUALS_CASE_SENSITIVE",
      "value": "Agriculture Loan"
    }
  ],
  "sortingCriteria": {
    "field": "approvedDate",
    "order": "DESC"
  }
}

A search for current accounts which are active and overdrawn from two different branches using compound filters, sort by overdraft balance
POST /deposits:search

{
  "filterCriteria": [
    {
        "field": "accountState",
        "operator": "EQUALS_CASE_SENSITIVE",
        "value": "ACTIVE"
    },
    {
      "field": "accountType",
      "operator": "EQUALS_CASE_SENSITIVE",
      "value": "CURRENT_ACCOUNT"
    },
    {
        "field": "balances.overdraftAmount",
        "operator": "MORE_THAN",
        "value": 0
    },
    {
        "field": "assignedBranchKey",
        "operator": "in",
        "values": [
            "8a193c26722b51b701722d779e7122de",
            "8a193c26722b51b701722d779e7122df"
        ]

    }
  ],
  "sortingCriteria": {
    "field": "balances.overdraftAmount",
    "order": "DESC"
  }
}

Search functionality is provided for a number of entities through dedicated endpoints that can be identified by the :search suffix, for example to search for deposit accounts you can use the /deposits:search endpoint. Search endpoints accept a POST request that can include an object containing a filterCriteria array of objects and a sortingCriteria object in the request body.

The filterCriteria array of objects allows you to narrow your search using multiple fields to filter by. Every entity that supports search has a schema that provides the enumerated values available for the filter properties, for example, the schema for a deposit account search is DepositAccountFilterCriteria.

The sortingCriteria object allows you to specify according to which field and in what way you would like to sort the returned results. Every entity that supports search provides a schema with all the available fields you can sort by. For example, the schema for sorting the results of a deposit account search is DepositAccountSortingCriteria.

Apart from native fields that are enumerated in the relevant schemas that you can use in your filter criteria, you can also filter by custom fields. For more information, see Searching by custom fields.

API v2 also provides a couple of additional features that allow you to further customize and manage your search queries.

The pagination query parameters allow you to break up your search into smaller chunks, for more information, see Pagination and Optimising Searches.

The detailsLevel query parameter allows you to specify the level of detail to include in the results. For more information, see Details Level and Optimising Searches.

Searching by custom fields

Search for entries where the given custom field definition has the value FALSE

{
  "filterCriteria": [
    {
      "field": "_marketing_opt_in.investor_newsletter",
      "operator": "EQUALS_CASE_SENSITIVE",
      "value": "FALSE"
    }
  ]
}

Search for entries where the given custom field definition has one of the given values, sort by ID

{
  "filterCriteria": [
    {
      "field": "_group_details.industry",
      "operator": "IN",
      "values": [
        "agriculture",
        "arboriculture"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "id",
    "order": "ASC"
  }
}

You can build your filter and search queries using the native fields enumerated in the relevant schemas, for more information, see Searching for Records. However, you can also use custom field definitions and their values in your filter and search queries for any entities that support custom field definitions. For more information, see Custom Fields in our User Guide.

To filter or sort using a custom field definition you must provide the custom field set ID and the custom field definition ID using dot nation, for example _custom_field_set_ID.custom_field_ID. You can see an example of the syntax to the right. The custom field set can belong to the same entity or to a parent entity.

Filter Operators

Equals

{
    "field": "overdraftSettings.allowOverdraft",
    "operator": "EQUALS",
    "value": true
}

Equals (case sensitive)

{
    "field": "name",
    "operator": "EQUALS_CASE_SENSITIVE",
    "value": "Daily Savings"
}

More than

{
    "field": "balances.totalBalance",
    "operator": "MORE_THAN",
    "value": 500000.50
}

Less than

{
    "field": "accruedAmounts.interestAccrued",
    "operator": "LESS_THAN",
    "value": 10000.10
}

Between

{
    "field": "balances.feesDue",
    "operator": "BETWEEN",
    "value": 100,
    "secondValue" : 500
}

On

{
    "field": "approvedDate",
    "operator": "ON",
    "value": "2021-06-15"
}

After

{
    "field": "lastModifiedDate",
    "operator": "AFTER",
    "value": "2022-04-20"
}

Before

{
    "field": "creationDate",
    "operator": "BEFORE",
    "value": "2021-12-25"
}

Before inclusive

{
    "field": "creationDate",
    "operator": "BEFORE_INCLUSIVE",
    "value": "2020-06-15"
}

Starts with

{
    "field": "id",
    "operator": "STARTS_WITH",
    "value":"eban"
}

Starts with (case sensitive)

{
    "field": "id",
    "operator": "STARTS_WITH",
    "value":"EBAN"
}

In

{
    "field": "accountType",
    "operator": "IN",
    "values":[
        "REGULAR_SAVINGS",
        "CURRENT_ACCOUNT"
    ]
}

Today

{
    "field": "approvedDate",
    "operator": "TODAY"
}

This week

{
    "field": "disbursementDetails.expectedDisbursementDate",
    "operator": "THIS_WEEK"
}

This month

{
    "field": "lastPaymentDate",
    "operator": "THIS_MONTH"
}

This year

{
    "field": "expectedMaturityDate",
    "operator": "THIS_YEAR"
}

Last x days

{
    "field": "firstRepaymentDate",
    "operator": "LAST_DAYS",
    "value": 12
}

Empty

{
    "field": "overdraftRiskLevelKey",
    "operator": "EMPTY"
}

Not empty

{
    "field": "lastSetToArrearsDate",
    "operator": "NOT_EMPTY"
}

The table below contains available operators as well as the types of field they are compatible with and the number of values they support.

Operator Affected values Available for
EQUALS ONE_VALUE BIG_DECIMAL, BOOLEAN, LONG, MONEY, NUMBER, PERCENT, STRING, ENUM, KEY
EQUALS_CASE_SENSITIVE ONE_VALUE STRING, BOOLEAN, DATE, NUMBER, ENUM, KEY
MORE_THAN ONE_VALUE BIG_DECIMAL, NUMBER, MONEY
LESS_THAN ONE_VALUE BIG_DECIMAL, NUMBER, MONEY
BETWEEN TWO_VALUES BIG_DECIMAL, NUMBER, MONEY, DATE, DATE_TIME
ON ONE_VALUE DATE, DATE_TIME
AFTER ONE_VALUE DATE, DATE_TIME
BEFORE ONE_VALUE DATE, DATE_TIME
BEFORE_INCLUSIVE ONE_VALUE DATE, DATE_TIME
STARTS_WITH ONE_VALUE STRING
STARTS_WITH_CASE_SENSITIVE ONE_VALUE STRING
IN LIST ENUM,KEY
TODAY NO_VALUE DATE, DATE_TIME
THIS_WEEK NO_VALUE DATE, DATE_TIME
THIS_MONTH NO_VALUE DATE, DATE_TIME
THIS_YEAR NO_VALUE DATE, DATE_TIME
LAST_DAYS ONE_VALUE NUMBER
EMPTY NO_VALUE BIG_DECIMAL, LONG, MONEY, NUMBER, PERCENT, STRING, ENUM, KEY, DATE, DATE_TIME
NOT_EMPTY NO_VALUE BIG_DECIMAL, LONG, MONEY, NUMBER, PERCENT, STRING, ENUM, KEY, DATE, DATE_TIME

Considerations for specific field types

Optimising Searches

There are a few ways to make sure that your searches are optimised for performance. This becomes increasingly necessary the more records there are in the system.

Time Zone Offsets

Here is how we handle time zone offsets in API v2 calls:

Example JSON body showing an invalid date offset request

{
    "errors": [
        {
            "errorCode": 4,
            "errorSource": "Invalid date offset for value 2021-03-09T13:37:50 org offset is +02:00",
            "errorReason": "INVALID_PARAMETERS"
        }
    ]
}

Example

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

Date and time of request Error message or What is saved in the database
2021-03-09T13:37:50 “Invalid date offset for value 2021-03-09T13:37:50 org offset is +02:00”
2021-03-09T13:37:50+03:00 “Invalid date offset for value 2021-03-09T13:37:50 org offset is +02:00”
2021-03-09T13:37:50+02:00 2021-03-09 13:37:50

Using Custom Fields

Overview

Standard custom field set with custom field values

{
  ...
  "_customFieldSet": {
    "customFieldDefinitionId1": "value",
    "customFieldDefinitionId2": "value",
    "customFieldDefinitionId3": "value"
  }
  ...
}

Grouped custom field set with custom field values

{
  ...
  "_customFieldSet": [
          {
              "_index": "0",
              "customFieldDefinitionId1": "value",
              "customFieldDefinitionId2": "value",
              "customFieldDefinitionId3": "value"
          },
          {
              "_index": "1",
              "customFieldDefinitionId1": "value",
              "customFieldDefinitionId2": "value",
              "customFieldDefinitionId3": "value"
          }
      ]
  ...
}

Custom fields are fields you may create for several entities that allow you to capture additional relevant information and they are grouped together in custom field sets.

A custom field consists of the custom field definition and the custom field value. The custom field definition is the custom field you create using either the Mambu UI or API which contains information such as its name, ID, type, and usage settings. The custom field value is the actual value that a custom field attached to an entity holds. For more information about custom fields, how to create them, and which entities support them, see Custom Fields in our User Guide.

In API v2, if a JSON object includes a custom field value, then at the end of the JSON object, there will be a custom field set property which will contain the custom field definition ID and the custom field value.

There are two kinds of custom field sets, standard and grouped.

A standard custom field set can contain multiple single custom field definitions. Each custom field definition may contain only one value. In a JSON object, it is represented by a custom field set property that contains an object with the associated custom field values.

A grouped custom field set contains groups of custom field definitions. You may have multiple groups of custom field definitions within the custom field set. In a JSON object, it is represented by a custom field set property that contains an array of objects with the associated custom field values and the index of each object in the array.

The type of custom field set dictates how custom field definitions and their values must be handled in PATCH operations.

To the right you can see an example of a single custom field set and a grouped custom field set.

You can identify any custom field set because the ID starts with an underscore _. To retrieve the custom field values of any object, you must set the detailsLevel query parameter to FULL when making a request. For more information, see Details Level.

You may make PATCH requests to add, replace, or remove a custom field value that you have appropriate access to. We will provide more details on how to perform PATCH requests below. For more information on how access to custom field values is managed, see Custom Fields - Configuring rights for roles.

Example JSON body of a loan showing a standard custom field set with custom field values nested below

{
  "id": "ABC001",
  "loanName": "Mortgage Loan",
  "loanState": "PARTIAL_APPLICATION",
  ...
  "_loanPerformanceScore": {    //custom field set
    "amountScore": "10",       //custom field values nested under the set
    "timeScore": "5"
  }
}

Example JSON body of a client showing a grouped custom field set with custom field values nested below

{
  "encodedKey": "8a19aad43801888d017801f0dd841c1d",
  "id": "190955358",
  "state": "ACTIVE",
  "creationDate": "2021-03-05T11:31:05+01:00",
  "lastModifiedDate": "2022-08-08T12:42:35+02:00",
  "activationDate": "2021-11-18T10:19:13+01:00",
  "approvedDate": "2021-03-05T11:31:05+01:00",
  "firstName": "John ",
  "lastName": "Smith ",
  ...
  "_assets": [  //custom field set
          {     //custom field values in groups nested under the set
              "_index": "0",
              "asset_value": "965000",
              "asset_type": "land",
              "asset_age": "10"
          },
          {
              "_index": "1",
              "asset_value": "25,000",
              "asset_type": "car",
              "asset_age": "2"
          }
      ]
}

Example

To the right you can see an example of a standard custom field set with ID _loanPerformanceScore that includes two custom field definitions with IDs amountScore and timeScore and their values.

To the right you can see an example of a grouped custom field set with ID _assets and three custom field definitions with IDs asset_age, asset_type, and asset_value and their values.

Standard custom field sets

In the examples provided for standard custom fields sets, we assume we have a custom field set with ID _employer_information and it contains a total of two custom field definitions with IDs company and position.

Standard custom field set examples:

Affecting a single custom field value in a custom field set

Adding a value to a single custom field definition in a custom field set

[
  {
    "op": "ADD",
    "path": "/_employer_information/company",
    "value": "Google"
  }
]

To add, replace, or remove a value for a single custom field definition in a custom field set, pass the custom field set ID and the custom field definition ID to the path property. To add or replace a value, enter it directly to the value property. To remove a value, do not include the value property in the JSON object.

In the example to the right, we are adding a value for the company custom field definition.

Affecting all the custom field definitions in a custom field set

Replacing all the custom field values in a custom field set

[
  {
    "op": "REPLACE",
    "path": "/_employer_information",
    "value": {
        "company": "Amazon",
        "position": "senior frontend developer"
    }
  }
]

To add, replace, or remove all the custom field values in a custom field set, pass the custom field set ID to the path property. To add or replace values, provide an object with all the custom field values within the custom field set to the value property including the custom field value you are adding or replacing. To remove values, do not include the value property in the JSON object.

In the example to the right, we are replacing the values for both the company and position custom field definitions.

In the first example to the right, we are removing the value for the company custom field definition.

In the second example to the right, we are removing the values for all the custom field definitions in the _employer_information custom field set.

Removing one custom field value from the custom field set

[
  {
    "op": "REMOVE",
    "path": "/_employer_information/company"
  }
]

Removing all the custom field values from a custom field set

[
  {
    "op": "REMOVE",
    "path": "/_employer_information"
  }
]

Grouped custom field sets

Grouped custom field set examples

In the group custom field set examples, we assume we have a custom field set with ID _assets and it contains groups of three custom field definitions with IDs asset_type, asset_value, and asset_age. These are used to capture the client assets that are used as guarantees for loans.

Affecting one custom field value in a custom field group

Adding one custom field value in a custom field group

[
  {
    "op": "ADD",
    "path": "/_assets/2/asset_age",
    "value": "5"
  }
]

Adding two custom field groups to a custom field set

[
  {
    "op": "ADD",
    "path": "/_assets",
    "value": [
      {
        "asset_type": "Land",
        "asset_age": "10",
        "asset_value": "965000"
      },
      {
        "asset_type": "Car",
        "asset_age": "2",
        "asset_value": "25000"
      }
    ]
  }
]

To add, replace, or remove a single custom field value within a custom field group, the path property must specify the custom field set ID, the index of the group in the array, and the specific custom field definition.

In the example to the right, we are adding a value for the asset_age property for the custom field group with index 2 in the array.

Adding entire custom field groups to a custom field set

To add an entire new custom field group or multiple new groups, the path property must specify just the custom field set ID. The new group will always be added to the end of the array. You cannot specify a specific index in the array to add it to.

In the example to the right, we are adding two new custom field groups to the custom field set.






Replacing or removing one custom field group in a custom field set

Replacing one custom field group in a custom field set

[
  {
    "op": "REPLACE",
    "path": "/_assets/2",
    "value": {
        "asset_type": "House",
        "asset_age": "3",
        "asset_value": "100000"
    }
  }
]

To replace or remove an entire custom field group, the path property must specify the custom field set ID and the index of the group in the array.

In the example to the right, we are replacing the entire custom field group that is at index 2 in the array.

Replacing or removing all custom field groups in a custom field set

Removing all the custom field groups in a custom field set

[
  {
    "op": "REMOVE",
    "path": "/_assets"
  }
]

To replace or remove all the custom field groups for a custom field set, the path property only needs the custom field set ID.

In the example to the right we are removing the custom field group at index 2 in the array.

Accounting Interest Accrual

Allows search of interest accrual breakdown entries by various criteria.

searchInterestAccrual (Accounting Interest Accrual)

Code samples

# You can also use wget
curl -X POST /accounting/interestaccrual:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /accounting/interestaccrual:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/accounting/interestaccrual:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/accounting/interestaccrual:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/accounting/interestaccrual:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/accounting/interestaccrual:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/accounting/interestaccrual:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/accounting/interestaccrual:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /accounting/interestaccrual:search

Allows search of interest accrual breakdown entries by various criteria.

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "entryId",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "entryId",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body InterestAccrualSearchCriteria Represents the filtering criteria and a sorting criteria to search interest accrual breakdown. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountId": "string",
    "accountKey": "string",
    "amount": 0,
    "bookingDate": "string",
    "branchKey": "string",
    "branchName": "string",
    "creationDate": "string",
    "entryId": 0,
    "entryType": "string",
    "foreignAmount": {
      "accountingRate": {
        "encodedKey": "string",
        "endDate": "2016-09-06T13:37:50+03:00",
        "fromCurrencyCode": "string",
        "rate": 0,
        "startDate": "2016-09-06T13:37:50+03:00",
        "toCurrencyCode": "string"
      },
      "amount": 0,
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      }
    },
    "glAccountId": "string",
    "glAccountKey": "string",
    "glAccountName": "string",
    "glAccountType": "string",
    "parentEntryId": 0,
    "productId": "string",
    "productKey": "string",
    "productType": "string",
    "transactionId": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Interest accrual breakdown returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [InterestAccrualBreakdown] [Represents an interest accrual breakdown entry.] none
» accountId string The loan or deposit account ID for which interest is accrued. none
» accountKey string The encoded key of the loan or deposit account for which interest is accrued. none
» amount number The interest accrued amount for the account in this entry. none
» bookingDate string The booking date in the organization's timezone. none
» branchKey string The encoded key of the account's branch. none
» branchName string The name of the account's branch none
» creationDate string The creation date and time of the entry in UTC. none
» entryId integer(int64) The generated ID of the interest accrual per account entry. none
» entryType string Debit or Credit. none
» foreignAmount ForeignAmount Represents the details of general ledger journal entries posted in foreign currency. none
»» accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
»»» encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
»»» endDate string(date-time) Rate validity end date (as Organization Time) none
»»» fromCurrencyCode string Organisation currency code none
»»» rate number Value of rate to be used for accounting conversions none
»»» startDate string(date-time) Rate validity start date (as Organization Time) none
»»» toCurrencyCode string Foreign currency code none
»» amount number The foreign currency amount of the accounting entry. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» glAccountId string The ID of the general ledger account. none
» glAccountKey string The encoded key of the general ledger account used for logging the interest accrual. none
» glAccountName string The name of the general ledger account. none
» glAccountType string The general ledger account type, which can be: ASSET, LIABILITY, EQUITY, INCOME, or EXPENSE. none
» parentEntryId integer(int64) The ID of the general ledger journal entry that logged the interest accrual sum for all accounts of the same product. none
» productId string The ID of the account's product. none
» productKey string The encoded key of the account's product. none
» productType string The product type. none
» transactionId string The journal entry transaction ID. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT

Accounting Rates

Create Accounting Rates.

getAll (Accounting Rates)

Code samples

# You can also use wget
curl -X GET /currencies/{currencyCode}/accountingRates \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /currencies/{currencyCode}/accountingRates HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/currencies/{currencyCode}/accountingRates',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/currencies/{currencyCode}/accountingRates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/currencies/{currencyCode}/accountingRates', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/currencies/{currencyCode}/accountingRates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies/{currencyCode}/accountingRates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/currencies/{currencyCode}/accountingRates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currencies/{currencyCode}/accountingRates

Get accounting rates

Parameters

Name Type Description In
currencyCode (required) string The currency code. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
from string(date-time) The date and time of the Accounting Rates to search from query
to string(date-time) The date and time of the Accounting Rates to search to query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "encodedKey": "string",
    "endDate": "2016-09-06T13:37:50+03:00",
    "fromCurrencyCode": "string",
    "rate": 0,
    "startDate": "2016-09-06T13:37:50+03:00",
    "toCurrencyCode": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Accounting rates list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [AccountingRate] [Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency] none
» encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
» endDate string(date-time) Rate validity end date (as Organization Time) none
» fromCurrencyCode string Organisation currency code none
» rate number Value of rate to be used for accounting conversions none
» startDate string(date-time) Rate validity start date (as Organization Time) none
» toCurrencyCode string Foreign currency code none

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Accounting Rates)

Code samples

# You can also use wget
curl -X POST /currencies/{currencyCode}/accountingRates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /currencies/{currencyCode}/accountingRates HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/currencies/{currencyCode}/accountingRates',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/currencies/{currencyCode}/accountingRates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/currencies/{currencyCode}/accountingRates', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/currencies/{currencyCode}/accountingRates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies/{currencyCode}/accountingRates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/currencies/{currencyCode}/accountingRates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /currencies/{currencyCode}/accountingRates

Create accounting rates

Body parameter

{
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
currencyCode (required) string The currency code. path
body (required) PostAccountingRateDTO Represents the information to create an accounting rate. body

Example responses

201 Response

{
  "encodedKey": "string",
  "endDate": "2016-09-06T13:37:50+03:00",
  "fromCurrencyCode": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00",
  "toCurrencyCode": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The accounting rate has been created. AccountingRate
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

Accounting Reports

Allows you to generate and retrieve accounting reports. More information on the types of reports available can be found in our accounting reports user guide article.

Once generated using the POST request, your reports will be accessible for 24 hours using the unique reportKey.

get (Accounting Reports)

Code samples

# You can also use wget
curl -X GET /accounting/reports/{reportKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /accounting/reports/{reportKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/accounting/reports/{reportKey}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/accounting/reports/{reportKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/accounting/reports/{reportKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/accounting/reports/{reportKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/accounting/reports/{reportKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/accounting/reports/{reportKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /accounting/reports/{reportKey}

Get accounting reports

Parameters

Name Type Description In
reportKey (required) string The report's encoded key. path

Example responses

200 Response

{
  "items": [
    {
      "amounts": {
        "closingBalance": 0,
        "credits": 0,
        "debits": 0,
        "netChange": 0,
        "openingBalance": 0
      },
      "foreignAmounts": {
        "closingBalance": 0,
        "credits": 0,
        "debits": 0,
        "netChange": 0,
        "openingBalance": 0
      },
      "glAccount": {
        "activated": true,
        "allowManualJournalEntries": true,
        "balance": 0,
        "creationDate": "2016-09-06T13:37:50+03:00",
        "currency": {
          "code": "AED",
          "currencyCode": "string"
        },
        "description": "string",
        "encodedKey": "string",
        "glCode": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "migrationEventKey": "string",
        "name": "string",
        "stripTrailingZeros": true,
        "type": "ASSET",
        "usage": "DETAIL"
      }
    }
  ],
  "reportKey": "string",
  "status": "QUEUED"
}

Responses

Status Meaning Description Schema
200 OK The accounting report has been returned. AccountingReport
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Accounting report not found. ErrorResponse

create (Accounting Reports)

Code samples

# You can also use wget
curl -X POST /accounting/reports \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /accounting/reports HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/accounting/reports',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/accounting/reports',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/accounting/reports', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/accounting/reports', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/accounting/reports");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/accounting/reports", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /accounting/reports

Create accounting report

Body parameter

{
  "balanceTypes": [
    "OPENING_BALANCE"
  ],
  "branchId": "string",
  "currencyCode": "string",
  "endDate": "1987-04-26",
  "glTypes": [
    "ASSET"
  ],
  "startDate": "1987-04-26"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) AccountingReportGenerationInput Represents information for creating an accounting report. body

Example responses

202 Response

{
  "reportKey": "string",
  "status": "QUEUED"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted Creation of the accounting report started. AccountingReportGenerationResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

Accounting Rules Configuration

Retrieve and update the configuration for accounting rules.

Accounting rules allows you to create general rules for your accounts such as setting automatic accounting closures that recur on a regular basis and defining rules for how to handle any transactions that affect GL balances in two different branches. For more information about this resource, see Accounting Rules Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Accounting Rules Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/accountingrules.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/accountingrules.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/accountingrules.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/accountingrules.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/accountingrules.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/accountingrules.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/accountingrules.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/accountingrules.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/accountingrules.yaml

Retrieve current accounting rules configuration.

Example responses

An example of accounting rules

---
defaultGlCode: "defaultGlAccountCode"
automatedAccountingClosuresInterval: 7
customRules:
  - id: "ruleId1"
    leftBranchId: "branchId1"
    rightBranchId: "branchId2"
    glCode: "glCode1"
  - id: "ruleId2"
    leftBranchId: "branchId3"
    rightBranchId: "branchId1"
    glCode: "glCode2"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Accounting rules configuration retrieved AccountingRulesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Accounting Rules Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/accountingrules.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/accountingrules.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/accountingrules.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/accountingrules.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/accountingrules.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/accountingrules.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/accountingrules.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/accountingrules.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/accountingrules.yaml

Update the current accounting rules configuration

Body parameter

An example of accounting rules

---
defaultGlCode: "defaultGlAccountCode"
automatedAccountingClosuresInterval: 7
customRules:
  - id: "ruleId1"
    leftBranchId: "branchId1"
    rightBranchId: "branchId2"
    glCode: "glCode1"
  - id: "ruleId2"
    leftBranchId: "branchId3"
    rightBranchId: "branchId1"
    glCode: "glCode2"

Parameters

Name Type Description In
body AccountingRulesConfiguration Represents the accounting rules configuration. body

Example responses

200 - Success Response

---
warnings: []

400 Invalid Syntax

{
    "errors": [
        {
            "errorCode": 10000,
            "errorSource": "customRules: while scanning a simple key",
            "errorReason": "INVALID_YAML_SYNTAX"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Accounting rules configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Accounting rules configuration not found. ErrorResponse

Response Schema

API Consumers

API consumers are used to generate API keys and secret keys for your Mambu account. They are an abstraction similar to an OAuth client.

API keys are used to authenticate API requests. They inherit the scope of access settings from the API consumer that creates them. The API consumer access settings determine which capabilities an API key may access and which actions it may authorize. For more information on how to manage or assign these permissions, see API consumer access settings and permissions in our User Guide.

Secret keys are used to authenticate API key rotation requests, which allow you to invalidate existing API keys and replace them with new ones.

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

rotateKey (API Consumers)

Code samples

# You can also use wget
curl -X POST /apikey/rotation \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'secretkey: string'

POST /apikey/rotation HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
secretkey: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'secretkey':'string'

};

$.ajax({
  url: '/apikey/rotation',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'secretkey' => 'string'
}

result = RestClient.post '/apikey/rotation',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'secretkey': 'string'
}

r = requests.post('/apikey/rotation', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'secretkey' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/apikey/rotation', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/apikey/rotation");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "secretkey": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/apikey/rotation", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apikey/rotation

Rotate API key

API key rotation allows you to invalidate an existing API key and replace it with a new one. To rotate an API key, you must use a secret key for authentication. The request will fail if you include an API key or basic authentication header. If you have set a value for the Automatic Expiry of API Consumer Key in Mambu UI then the value specified in the Mambu UI will override any value you include in the body of your request to the expirationTime field. For more information, see API key rotation in our User Guide.

Keys that have been invalidated by rotation remain valid for a default grace period of thirty minutes. This value can be configured using the API Key Rotation Grace Period field in the Mambu UI. For more information, see Key rotation grace period in our User Guide.

Body parameter

{
  "apiKey": "string",
  "expirationTime": 100000000,
  "id": "string"
}

Parameters

Name Type Description In
secretkey (required) string Secret key used to authenticate to this endpoint in order to perform a rotate key operation. header
body ApiKey Represents the action of rotating an existing API key, by providing the API key to be rotated and the time to live (TTL) of the newly created API key. If a TTL is set in preferences, it will have priority over the one provided in the API. If no TTL is set in preferences and none is provided in the API, the generated key will have unlimited TTL by default. body

Example responses

200 Response

{
  "apiKey": "string",
  "id": "string",
  "secretKey": "string"
}

Responses

Status Meaning Description Schema
200 OK API key rotated successfully. ApiKeyRotationResult
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getById (API Consumers)

Code samples

# You can also use wget
curl -X GET /consumers/{apiConsumerId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /consumers/{apiConsumerId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/consumers/{apiConsumerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/consumers/{apiConsumerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/consumers/{apiConsumerId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/consumers/{apiConsumerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/consumers/{apiConsumerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /consumers/{apiConsumerId}

Get API consumer

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer. path

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Responses

Status Meaning Description Schema
200 OK API consumer returned. ApiConsumer
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

update (API Consumers)

Code samples

# You can also use wget
curl -X PUT /consumers/{apiConsumerId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PUT /consumers/{apiConsumerId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/consumers/{apiConsumerId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.put '/consumers/{apiConsumerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.put('/consumers/{apiConsumerId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/consumers/{apiConsumerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/consumers/{apiConsumerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /consumers/{apiConsumerId}

Update API consumer

Body parameter

{
  "access": {
    "administratorAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {}
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "name": "string",
  "role": {
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer to be updated. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) ApiConsumer API consumer to be updated. body

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK API consumer updated. ApiConsumer
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

delete (API Consumers)

Code samples

# You can also use wget
curl -X DELETE /consumers/{apiConsumerId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /consumers/{apiConsumerId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/consumers/{apiConsumerId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/consumers/{apiConsumerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/consumers/{apiConsumerId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/consumers/{apiConsumerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/consumers/{apiConsumerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /consumers/{apiConsumerId}

Delete API consumer

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content API consumer deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

patch (API Consumers)

Code samples

# You can also use wget
curl -X PATCH /consumers/{apiConsumerId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PATCH /consumers/{apiConsumerId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/consumers/{apiConsumerId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.patch '/consumers/{apiConsumerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.patch('/consumers/{apiConsumerId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/consumers/{apiConsumerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/consumers/{apiConsumerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /consumers/{apiConsumerId}

Partially update API consumer

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer to be updated. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content API consumer updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

deleteApiKeyForConsumer (API Consumers)

Code samples

# You can also use wget
curl -X DELETE /consumers/{apiConsumerId}/apikeys/{apiKeyId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /consumers/{apiConsumerId}/apikeys/{apiKeyId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/consumers/{apiConsumerId}/apikeys/{apiKeyId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/consumers/{apiConsumerId}/apikeys/{apiKeyId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/consumers/{apiConsumerId}/apikeys/{apiKeyId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/consumers/{apiConsumerId}/apikeys/{apiKeyId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}/apikeys/{apiKeyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/consumers/{apiConsumerId}/apikeys/{apiKeyId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /consumers/{apiConsumerId}/apikeys/{apiKeyId}

Delete API key

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer. path
apiKeyId (required) string The ID of the API key. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content API key deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer or key not found. ErrorResponse

createApiKeyForConsumer (API Consumers)

Code samples

# You can also use wget
curl -X POST /consumers/{apiConsumerId}/apikeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /consumers/{apiConsumerId}/apikeys HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/consumers/{apiConsumerId}/apikeys',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/consumers/{apiConsumerId}/apikeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/consumers/{apiConsumerId}/apikeys', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/consumers/{apiConsumerId}/apikeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}/apikeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/consumers/{apiConsumerId}/apikeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /consumers/{apiConsumerId}/apikeys

Create API key

The Automatic Expiry of API Consumer Keys value in the Mambu UI does not affect the expiration time of an API key created by this endpoint. For more information, see Automatic API key expiration for rotated keys in our User Guide. If you do not specify an expiration time in your request then the API key does not expire, unless rotated or deleted.

Body parameter

{
  "expirationTime": 100000000
}

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body ApiKeyInput API key expiration time in seconds. body

Example responses

201 Response

{
  "apiKey": "string",
  "expirationTime": 100000000,
  "id": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created API key created. ApiKey
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

getAll (API Consumers)

Code samples

# You can also use wget
curl -X GET /consumers \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /consumers HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/consumers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/consumers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/consumers', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/consumers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/consumers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /consumers

Get all API consumers

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "access": {
      "administratorAccess": true,
      "apiAccess": true,
      "canManageAllBranches": true,
      "canManageEntitiesAssignedToOtherOfficers": true,
      "creditOfficerAccess": true,
      "managedBranches": [
        {
          "branchKey": "string"
        }
      ],
      "permissions": [
        "AUDIT_TRANSACTIONS"
      ]
    },
    "assignedBranchKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "name": "string",
    "role": {
      "encodedKey": "string",
      "id": "string"
    },
    "transactionLimits": {
      "property1": 0,
      "property2": 0
    }
  }
]

Responses

Status Meaning Description Schema
200 OK API consumers list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [ApiConsumer] [Represents an API consumer.] none
» access ApiConsumerAccess Represents the API consumer permissions and access rights. none
»» administratorAccess boolean TRUE if the API consumer has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
»» apiAccess boolean TRUE if the API consumer can authenticate and interact with Mambu APIs, FALSE otherwise. The API consumer may still require additional permissions for specific API requests. read-only
»» canManageAllBranches boolean TRUE if the API consumer permissions apply to all branches, FALSE if they only apply to specific branches. none
»» canManageEntitiesAssignedToOtherOfficers boolean TRUE if the API consumer (that has the credit officer access) can access entities (for example, clients or accounts) assigned to other credit officers, FALSE otherwise. none
»» creditOfficerAccess boolean TRUE if the API consumer has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
»» managedBranches [UserManagedBranch] The list of branches that can be managed by the API consumer. If the API consumer has the canManageAllBranches property set to TRUE, this list does not apply. none
»»» branchKey string The encoded key of the branch, it is automatically generated. read-only
»» permissions [string] Permissions for the API consumer. The non-admin API consumers and users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none
» assignedBranchKey string The encoded key of the branch this API consumer is assigned to. none
» creationDate string(date-time) The date when the API consumer was created in UTC. read-only
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» id string The ID of the API consumer. read-only
» lastModifiedDate string(date-time) The last time the API consumer was modified in UTC. read-only
» name (required) string The API consumer name. none
» role RoleIdentifier Represents the role identifier. none
»» encodedKey string The encoded key of the entity, generated automatically, globally unique. read-only
»» id string The ID of the role, which can be generated and customized, but must be unique. none
» transactionLimits object The API consumer transaction limits. none
»» additionalProperties integer(int32) none none

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (API Consumers)

Code samples

# You can also use wget
curl -X POST /consumers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /consumers HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/consumers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/consumers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/consumers', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/consumers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/consumers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /consumers

Create API consumer

Body parameter

{
  "access": {
    "administratorAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {}
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "name": "string",
  "role": {
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) ApiConsumer API consumer to be created. body

Example responses

201 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created API consumer created. ApiConsumer
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getKeysByConsumerId (API Consumers)

Code samples

# You can also use wget
curl -X GET /consumers/{apiConsumerId}/keys \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /consumers/{apiConsumerId}/keys HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/consumers/{apiConsumerId}/keys',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/consumers/{apiConsumerId}/keys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/consumers/{apiConsumerId}/keys', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/consumers/{apiConsumerId}/keys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}/keys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/consumers/{apiConsumerId}/keys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /consumers/{apiConsumerId}/keys

Get API keys

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer. path

Example responses

200 Response

[
  {
    "apiKey": "string",
    "expirationTime": 100000000,
    "id": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK API keys returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [ApiKey] [Represents an API key of an API consumer.] none
» apiKey string A six character cleartext prefix of the API key. The prefix is not guaranteed to be unique. You must base any identification process on the API key ID, not the prefix. none
» expirationTime integer(int32) The time to live (TTL) for the API key in seconds. none
» id string The API key ID. You must base any identification process on the the API key ID as it is guaranteed to be unique. none

createSecretKeyForConsumer (API Consumers)

Code samples

# You can also use wget
curl -X POST /consumers/{apiConsumerId}/secretkeys \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /consumers/{apiConsumerId}/secretkeys HTTP/1.1

Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/consumers/{apiConsumerId}/secretkeys',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/consumers/{apiConsumerId}/secretkeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/consumers/{apiConsumerId}/secretkeys', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/consumers/{apiConsumerId}/secretkeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/consumers/{apiConsumerId}/secretkeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/consumers/{apiConsumerId}/secretkeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /consumers/{apiConsumerId}/secretkeys

Create secret key

Secret keys are used to authenticate API key rotation requests. They cannot be used to authenticate any request other than a key rotation request. Secret keys expire immediately upon use, unless a grace period is configured for key rotation in the Mambu UI, in which case they remain valid for that length of time after being used. Secret keys otherwise never expire. For more information, see API key rotation in our User Guide.

Parameters

Name Type Description In
apiConsumerId (required) string The ID or encoded key of the API consumer. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header

Example responses

201 Response

{
  "secretKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Secret key created. SecretKey
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found API consumer not found. ErrorResponse

Authorization Holds Configuration

Retrieve and update the configuration for authorization holds.

An authorization hold is a standard practice with debit or a credit card transactions to hold a given balance as unavailable for the card holder until either the merchant settles the transaction, cancels the hold, or it expires. Using this endpoint you can configure the default authorization hold expiry for your organization as well as per merchant or merchant type using a Merchant Category Code (MCC). For more information about this resource, see Authorization Holds Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Authorization Holds Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/authorizationholds.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/authorizationholds.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/authorizationholds.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/authorizationholds.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/authorizationholds.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/authorizationholds.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/authorizationholds.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/authorizationholds.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/authorizationholds.yaml

Get authorization holds configuration

Example responses

Authorization Hold Settings

---
defaultAuthorizationHold:
  daysToExpiration: 7
authorizationHolds:
- mcc: 123
  daysToExpiration: 14
  description: "bullseye brand - contractually agreed expiration"
- mcc: 456
  daysToExpiration: 1
  description: "widgets'r'us - short expiration"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Authorization holds configuration has been returned. AuthorizationHoldsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Authorization Holds Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/authorizationholds.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/authorizationholds.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/authorizationholds.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/authorizationholds.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/authorizationholds.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/authorizationholds.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/authorizationholds.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/authorizationholds.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/authorizationholds.yaml

Update authorization holds configuration

Body parameter

Authorization Hold Settings

---
defaultAuthorizationHold:
  daysToExpiration: 7
authorizationHolds:
- mcc: 123
  daysToExpiration: 14
  description: "bullseye brand - contractually agreed expiration"
- mcc: 456
  daysToExpiration: 1
  description: "widgets'r'us - short expiration"

Parameters

Name Type Description In
body AuthorizationHoldsConfiguration Represents the authorization holds body

Example responses

200 - Success Response

---
warnings: []

400 - Example failure response

{
    "errors": [
        {
            "errorCode": 9957,
            "errorSource": "Days to expire value must be a positive number",
            "errorReason": "INVALID_DAYS_TO_EXPIRE_FOR_AUTHORIZATION_HOLD"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Authorization holds configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Authorization holds configuration was not found. ErrorResponse

Response Schema

Background Process

Allows you to check the status of manual and automatic EOD processes and, under certain conditions, to cancel them. The only supported background process types are CRON_JOBS for the EOD processes and MANUAL_CRON_JOBS_TRIGGER for manually triggering the EOD process. EOD processes may be cancelled if they are queued or if they have been running in the same state for longer than the average length of the last five runs of the same type. For more information, see Cancelling EOD processing in our User Guide.

Your user or API consumer must have Admin access rights or the Manage Eod Processing (MANAGE_EOD_PROCESSING) permission to use these endpoints.

update (Background Process)

Code samples

# You can also use wget
curl -X PUT /backgroundprocess/{encodedKey} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /backgroundprocess/{encodedKey} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/backgroundprocess/{encodedKey}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/backgroundprocess/{encodedKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/backgroundprocess/{encodedKey}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/backgroundprocess/{encodedKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/backgroundprocess/{encodedKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/backgroundprocess/{encodedKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /backgroundprocess/{encodedKey}

Allows you to cancel manual or automatic EOD processes using the encoded key.

Manual or automatic EOD processes may only be cancelled if their status is QUEUED or if the status is IN_PROGRESS and they have been running in the same state for longer than the average of the last five runs of the same type. The only supported string in the body of a request is "CANCEL". For more information, see Cancelling EOD processing in our User Guide.

Body parameter

"string"

Parameters

Name Type Description In
encodedKey (required) string The encoded key of the background process which should be changed. path
body (required) string Background process state to set. body

Example responses

200 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "endDate": "2016-09-06T13:37:50+03:00",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "CANCEL",
  "type": "CRON_JOBS"
}

Responses

Status Meaning Description Schema
200 OK Background process state has been changed. BackgroundProcess
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Background process not found. ErrorResponse
500 Internal Server Error Internal Error ErrorResponse

getLatestByType (Background Process)

Code samples

# You can also use wget
curl -X GET /backgroundprocess/latest \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /backgroundprocess/latest HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/backgroundprocess/latest',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/backgroundprocess/latest',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/backgroundprocess/latest', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/backgroundprocess/latest', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/backgroundprocess/latest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/backgroundprocess/latest", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /backgroundprocess/latest

Allows you to retrieve the latest manual or automatic EOD process by specifying the type.

The only supported background process types are CRON_JOBS for automatic EOD processes and MANUAL_CRON_JOBS_TRIGGER for manual EOD processes.

Parameters

Name Type Description In
type string The type of background process according to which the latest process should be returned. query

Enumerated Values

Parameter Value
type CRON_JOBS
type MANUAL_CRON_JOBS_TRIGGER

Example responses

200 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "endDate": "2016-09-06T13:37:50+03:00",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "CANCEL",
  "type": "CRON_JOBS"
}

Responses

Status Meaning Description Schema
200 OK Latest background process returned. BackgroundProcess
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Branches

Allows you to retrieve branches which are being used by an organization.

getById (Branches)

Code samples

# You can also use wget
curl -X GET /branches/{branchId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /branches/{branchId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/branches/{branchId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/branches/{branchId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/branches/{branchId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/branches/{branchId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/branches/{branchId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/branches/{branchId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /branches/{branchId}

Get branch

Parameters

Name Type Description In
branchId (required) string The ID or or encoded key of a branch. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "branchHolidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "phoneNumber": "string",
  "state": "ACTIVE"
}

Responses

Status Meaning Description Schema
200 OK Branch returned. Branch
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Branch not found. ErrorResponse

getAll (Branches)

Code samples

# You can also use wget
curl -X GET /branches \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /branches HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/branches',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/branches',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/branches', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/branches', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/branches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/branches", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /branches

Get branches

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: id,name, creationDate, lastModifiedDate
Default sorting is done by creationDate:DESC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "_Example_Grouped_CF_Set": [
      {
        "Example_Checkbox_Field": "TRUE",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_Number_Field": "46290",
        "Example_Select_Field": [
          {
            "example_option_id": "123",
            "example_option_value": "option 1"
          },
          {
            "example_option_id": "456",
            "example_option_value": "option 7"
          }
        ],
        "_index": "0"
      }
    ],
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "branchHolidays": [
      {
        "creationDate": "2016-09-06T13:37:50+03:00",
        "date": "1987-04-26",
        "encodedKey": "string",
        "id": 0,
        "isAnnuallyRecurring": true,
        "name": "string"
      }
    ],
    "creationDate": "2016-09-06T13:37:50+03:00",
    "emailAddress": "string",
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "name": "string",
    "notes": "string",
    "phoneNumber": "string",
    "state": "ACTIVE"
  }
]

Responses

Status Meaning Description Schema
200 OK Branches list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Branch] [Represents a branch.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» _Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field array A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» _index string(number) The index for this set of grouped custom field values. none
» addresses [Address] The list of branch addresses. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» branchHolidays [Holiday] The list of branch holidays. none
»» creationDate string(date-time) The date when the holiday was created. none
»» date string(date) The date the holiday takes place. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» id integer(int64) The ID of the holiday. none
»» isAnnuallyRecurring boolean TRUE if a holiday is annually recurring, FALSE otherwise. none
»» name string The name of the holiday. none
» creationDate string(date-time) The creation date of the branch. none
» emailAddress string The branch email address. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» id (required) string The branch ID, which must be unique. none
» lastModifiedDate string(date-time) The last date when the branch was modified. none
» name (required) string The branch name. none
» notes string The notes or description attached to this object. none
» phoneNumber string The branch phone number. none
» state string The branch state. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
state ACTIVE
state INACTIVE

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Branches)

Code samples

# You can also use wget
curl -X POST /branches \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /branches HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/branches',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/branches',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/branches', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/branches', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/branches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/branches", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /branches

Create branch

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "postcode": "string",
      "region": "string"
    }
  ],
  "branchHolidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "phoneNumber": "string",
  "state": "ACTIVE"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Branch Branch to be created. body

Example responses

201 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "branchHolidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "phoneNumber": "string",
  "state": "ACTIVE"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Branch has been created. Branch
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Branches Configuration

Retrieve and update the configuration for branches.

A branch is the default label for an organization's subdivision. For more information about this resource, see Branches Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Branches Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/branches.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/branches.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/branches.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/branches.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/branches.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/branches.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/branches.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/branches.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/branches.yaml

Get branches configuration

Example responses

a single branch

---
- id: "demoBranchId"
  name: "Maputo Downtown"
  state: "ACTIVE"
  phoneNumber: "0049302345678"
  emailAddress: "petula.clark@downtown.com"
  notes: "Is located in the surroundings of the local market with a <i>lot of potential</i>\
    \ to reach new clients."
  holidays:
  - id: 12
    name: "only maputo holiday day"
    dayOfMonth: 30
    monthOfYear: 7
    year: 2020
    isAnnuallyRecurring: true
  customFieldValueSets:
  - id: "_branches_grouped_cf_set"
    groupedCustomFieldValues:
    - index: 0
      customFieldValues:
      - customFieldId: "cf_group_field_1"
        value: "group field 1"
      - customFieldId: "cf_group_field_2"
        value: "2"
    - index: 1
      customFieldValues:
      - customFieldId: "cf_group_field_2"
        value: "500"
  - id: "_example_branch_custom_field_set"
    standardCustomFieldValues:
    - customFieldId: "cf_branch"
      value: "TRUE"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Branches configuration retrieved. BranchesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Branches Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/branches.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/branches.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/branches.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/branches.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/branches.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/branches.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/branches.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/branches.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/branches.yaml

Update branch configuration

Body parameter

example array of branches

---
branches:
- id: "2"
  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."
  address:
    line1: "1 Bank Street"
    line2: "Old Town"
    city: "Matola City"
    region: "Matola"
    postcode: "10775"
    country: "Bankistan"
  holidays:
  - id: 13
    name: "joe matola only day"
    dayOfMonth: 26
    monthOfYear: 8
    year: 2020
    isAnnuallyRecurring: true
- id: "demoBranchId"
  name: "Maputo Downtown"
  state: "ACTIVE"
  phoneNumber: "0049302345678"
  emailAddress: "petula.clark@downtown.com"
  notes: "Is located in the surroundings of the local market with a <i>lot of potential</i>\
    \ to reach new clients."
  holidays:
  - id: 12
    name: "only maputo holiday day"
    dayOfMonth: 30
    monthOfYear: 7
    year: 2020
    isAnnuallyRecurring: true
  customFieldValueSets:
  - id: "_branches_grouped_cf_set"
    groupedCustomFieldValues:
    - index: 0
      customFieldValues:
      - customFieldId: "cf_group_field_1"
        value: "group field 1"
      - customFieldId: "cf_group_field_2"
        value: "2"
    - index: 1
      customFieldValues:
      - customFieldId: "cf_group_field_2"
        value: "500"
  - id: "_example_branch_custom_field_set"
    standardCustomFieldValues:
    - customFieldId: "cf_branch"
      value: "TRUE"

Parameters

Name Type Description In
body BranchesConfiguration Model representation of the branches configuration body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Branches configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Branches configuration not found. ErrorResponse

Response Schema

Bulk Operations

Allows you to query the results of bulk operations or background asynchronous processes. The scope of this API is to get the status of the entire operation and return a list of successful operations and a list of operations resulting in error. Since bulk operations work as independent tasks, it may be the case that some of the operations are successful while others fail. One example where this API can be used is to get the status of bulk deposit transactions - for more information, see /deposits/deposit-transactions:bulk.

getBulkStatus (Bulk Operations)

Code samples

# You can also use wget
curl -X GET /bulks/{bulkProcessKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /bulks/{bulkProcessKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/bulks/{bulkProcessKey}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/bulks/{bulkProcessKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/bulks/{bulkProcessKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/bulks/{bulkProcessKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/bulks/{bulkProcessKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/bulks/{bulkProcessKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /bulks/{bulkProcessKey}

Allow retrieval the status of a bulk process via key

Parameters

Name Type Description In
bulkProcessKey (required) string The identifier of the bulk process path

Example responses

200 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "string",
      "errorSource": "string",
      "externalId": "string",
      "indexInRequest": 0
    }
  ],
  "processedItems": [
    {
      "externalId": "string",
      "id": "string",
      "indexInRequest": 0
    }
  ],
  "status": "QUEUED"
}

Responses

Status Meaning Description Schema
200 OK Bulk process status retrieved BulkProcessStatus
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Bulk process key invalid ErrorResponse

Cards

Supports industry standard authorization hold flows for card payments and allows you to request, adjust, reverse, and settle holds against Current Account and Revolving Credit type products. For more information, see Cards Introduction in our User Guide.

increaseAuthorizationHold (Cards)

Code samples

# You can also use wget
curl -X POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:increase

Increase authorization hold amount

Body parameter

{
  "advice": true,
  "amount": 0,
  "currencyCode": "string",
  "externalReferenceId": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path
body (required) AuthorizationHoldAmountAdjustmentRequest Represents the information to increase the amount of an authorization hold. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The authorization hold was successfully increased. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card or the authorization hold was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getCardTransaction (Cards)

Code samples

# You can also use wget
curl -X GET /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}

Get card transaction

Parameters

Name Type Description In
cardReferenceToken (required) string The token used to externally identify the card. path
cardTransactionExternalReferenceId (required) string The external reference of a card transaction used to identify the card transaction. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "cardTransactionReversals": [
    {
      "_Example_Custom_Fields": {
        "Example_Checkbox_Field": "TRUE",
        "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
        "Example_Date_Field": "2018-12-14",
        "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
        "Example_Number_Field": "46290",
        "Example_Select_Field": {
          "example_option_id": "873023434",
          "example_option_value": "option 5"
        },
        "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
      },
      "amount": 0,
      "currencyCode": "string",
      "encodedKey": "string",
      "externalReferenceId": "string",
      "id": 0,
      "transactionChannelId": "string"
    }
  ],
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
200 OK The card transaction has been returned. GetCardTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse

getAuthorizationHoldById (Cards)

Code samples

# You can also use wget
curl -X GET /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}

Get card authorization hold

Parameters

Name Type Description In
cardReferenceToken (required) string The token used to externally identify the card. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path

Example responses

200 Response

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "customExpirationPeriod": 0,
  "encodedKey": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "partial": true,
  "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

Responses

Status Meaning Description Schema
200 OK The authorization hold has been returned. GetAuthorizationHold
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse

reverseAuthorizationHold (Cards)

Code samples

# You can also use wget
curl -X DELETE /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}

Reverse a card authorization hold.

Parameters

Name Type Description In
cardReferenceToken (required) string The token used to externally identify the card. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The card authorization hold was successfully reversed. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card or the authorization hold was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

patchAuthorizationHold (Cards)

Code samples

# You can also use wget
curl -X PATCH /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PATCH /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.patch '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.patch('/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}

Partially update an authorization hold

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The authorization hold has been updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse

reverseCardTransaction (Cards)

Code samples

# You can also use wget
curl -X POST /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /cards/{cardReferenceToken}/financialtransactions/{cardTransactionExternalReferenceId}:decrease

Reverse card transaction

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "currencyCode": "string",
  "externalReferenceId": "string",
  "transactionChannelId": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
cardTransactionExternalReferenceId (required) string The external reference of a card transaction used to identify the card transaction. path
body (required) CardTransactionReversal The card transaction to be reversed. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The card transaction was reversed. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getAccountBalances (Cards)

Code samples

# You can also use wget
curl -X GET /cards/{cardReferenceToken}/balanceInquiry \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /cards/{cardReferenceToken}/balanceInquiry HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/balanceInquiry',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/cards/{cardReferenceToken}/balanceInquiry',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/cards/{cardReferenceToken}/balanceInquiry', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/cards/{cardReferenceToken}/balanceInquiry', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/balanceInquiry");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/cards/{cardReferenceToken}/balanceInquiry", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cards/{cardReferenceToken}/balanceInquiry

Get account balances using card tokens

Parameters

Name Type Description In
cardReferenceToken (required) string The token used to externally identify the card. path

Example responses

200 Response

{
  "accountId": "string",
  "availableBalance": 0,
  "cardType": "DEBIT",
  "creditLimit": 0,
  "currencyCode": "string",
  "totalBalance": 0
}

Responses

Status Meaning Description Schema
200 OK The card's account balances were returned. AccountBalances
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

createCardTransaction (Cards)

Code samples

# You can also use wget
curl -X POST /cards/{cardReferenceToken}/financialtransactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /cards/{cardReferenceToken}/financialtransactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/financialtransactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/cards/{cardReferenceToken}/financialtransactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/cards/{cardReferenceToken}/financialtransactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/cards/{cardReferenceToken}/financialtransactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/financialtransactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/cards/{cardReferenceToken}/financialtransactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /cards/{cardReferenceToken}/financialtransactions

Create a financial transaction corresponding to a given card

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "externalAuthorizationReferenceId": "string",
  "externalReferenceId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "increaseAmountIfNeeded": true,
  "partial": true,
  "transactionChannelId": "string",
  "userTransactionTime": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
body (required) CardTransactionInput The financial transaction to be created. body

Example responses

201 Response

{
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalAuthorizationReferenceId": "string",
  "externalReferenceId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "increaseAmountIfNeeded": true,
  "linkedTransaction": {
    "linkedTransactionKey": "string",
    "linkedTransactionType": "LOAN"
  },
  "partial": true,
  "transactionChannelId": "string",
  "userTransactionTime": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The financial transaction was successfully created. CardTransactionOutput
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

decreaseAuthorizationHold (Cards)

Code samples

# You can also use wget
curl -X POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /cards/{cardReferenceToken}/authorizationholds/{authorizationHoldExternalReferenceId}:decrease

Decreases the amount of an authorization hold. If the amount is greater or equal to the authorization hold amount, then the authorization hold is reversed.

Body parameter

{
  "advice": true,
  "amount": 0,
  "currencyCode": "string",
  "externalReferenceId": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path
body (required) AuthorizationHoldAmountAdjustmentRequest Represents the information to decrease the amount of an authorization hold. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The authorization hold was successfully decreased. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card or the authorization hold was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

createAuthorizationHold (Cards)

Code samples

# You can also use wget
curl -X POST /cards/{cardReferenceToken}/authorizationholds \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /cards/{cardReferenceToken}/authorizationholds HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/cards/{cardReferenceToken}/authorizationholds',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/cards/{cardReferenceToken}/authorizationholds',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/cards/{cardReferenceToken}/authorizationholds', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/cards/{cardReferenceToken}/authorizationholds', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/cards/{cardReferenceToken}/authorizationholds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/cards/{cardReferenceToken}/authorizationholds", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /cards/{cardReferenceToken}/authorizationholds

Create an authorization hold corresponding to a given card.

Body parameter

{
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "customExpirationPeriod": 0,
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "partial": true,
  "userTransactionTime": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
cardReferenceToken (required) string The token used to externally identify the card. path
body (required) AuthorizationHold The authorization hold to be created. body

Example responses

201 Response

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "customExpirationPeriod": 0,
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "partial": true,
  "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The card authorization hold was successfully created. AuthorizationHold
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The card was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Centres

Allows retrieving centres which are being used by an organization. A branch in Mambu is the default label for an organization's subdivision. A centre is the default label for a subdivision of a branch. It can be considered a sub-branch. Each branch can have multiple centres assigned to it.

getById (Centres)

Code samples

# You can also use wget
curl -X GET /centres/{centreId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /centres/{centreId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/centres/{centreId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/centres/{centreId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/centres/{centreId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/centres/{centreId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/centres/{centreId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/centres/{centreId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /centres/{centreId}

Get centre

Parameters

Name Type Description In
centreId (required) string The ID or encoded key of the centre to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "meetingDay": "string",
  "name": "string",
  "notes": "string",
  "state": "ACTIVE"
}

Responses

Status Meaning Description Schema
200 OK Centre returned. Centre
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Centre not found. ErrorResponse

getAll (Centres)

Code samples

# You can also use wget
curl -X GET /centres \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /centres HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/centres',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/centres',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/centres', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/centres', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/centres");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/centres", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /centres

Get centres

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
branchId string The branch ID the centre belongs to. query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: id,name, creationDate, lastModifiedDate
Default sorting is done by creationDate:DESC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "_Example_Grouped_CF_Set": [
      {
        "Example_Checkbox_Field": "TRUE",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_Number_Field": "46290",
        "Example_Select_Field": [
          {
            "example_option_id": "123",
            "example_option_value": "option 1"
          },
          {
            "example_option_id": "456",
            "example_option_value": "option 7"
          }
        ],
        "_index": "0"
      }
    ],
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "assignedBranchKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "meetingDay": "string",
    "name": "string",
    "notes": "string",
    "state": "ACTIVE"
  }
]

Responses

Status Meaning Description Schema
200 OK Centres list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Centre] [Represents a centre. A centre is a common meeting area that credit officers and the individual and group clients go to. Each centre is assigned to a branch (a branch can have multiple centres) and might have a specific meeting day and location.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» _Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field array A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» _index string(number) The index for this set of grouped custom field values. none
» addresses [Address] The addresses of this centre. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» assignedBranchKey string The encoded key of the branch this centre is assigned to. none
» creationDate string(date-time) The date the centre was created. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» id string The ID of the centre, which must be unique, and can be generated and customized. none
» lastModifiedDate string(date-time) The last time the centre was modified. none
» meetingDay string The day of the week when repayments are collected. This influences the repayments schedule, upon update all repayments are updated to this day of the week. none
» name string The name of the centre. none
» notes string The notes or description attached to this object. none
» state string The state of the centre. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
state ACTIVE
state INACTIVE

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Centres Configuration

Retrieve and update the configuration for centres.

A branch in Mambu is the default label for an organization's subdivision. A centre is the default label for a subdivision of a branch. It can be considered a sub-branch. Each branch can have multiple centres assigned to it. For more information about this resource, see Centres Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Centres Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/centres.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/centres.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/centres.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/centres.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/centres.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/centres.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/centres.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/centres.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/centres.yaml

Get centres configuration

Example responses

a single centre

---
centres:
- id: "DT1"
  name: "Down Town"
  state: "ACTIVE"
  notes: "some rich text notes about this centre"
  meetingDay: "FRIDAY"
  assignedBranchId: "demoBranchId"
  address:
    line1: "Chuffington House"
    line2: "123 Main High Road"
    city: "Big Town"
    region: "Big Conglomeration"
    postcode: "123 456"
    country: "Countrystan"
  customFieldValueSets:
  - id: "_centres_custom_field_set"
    standardCustomFieldValues:
    - customFieldId: "centre_cf_1"
      value: "custom field value for cf 1"
    - customFieldId: "cntr_cf_2"
      value: "FALSE"
    - customFieldId: "cntr_cf_usr_lnk"
      value: "jonnyt"
  - id: "_cntr_cf_grp"
    groupedCustomFieldValues:
    - index: 0
      customFieldValues:
      - customFieldId: "cntr_cf_Grp_1"
        value: "12"
      - customFieldId: "cntr_cf_grp_2"
        value: "414828471"
      - customFieldId: "cntr_cf_slct_2"
        value: "745255722"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Centres configuration returned. CentresConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Centres Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/centres.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/centres.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/centres.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/centres.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/centres.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/centres.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/centres.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/centres.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/centres.yaml

Update centres configuration

Body parameter

an array of centres

---
centres:
- id: "DT1"
  name: "Down Town"
  state: "ACTIVE"
  notes: "some rich text notes about this centre"
  meetingDay: "FRIDAY"
  assignedBranchId: "demoBranchId"
  address:
    line1: "Chuffington House"
    line2: "123 Main High Road"
    city: "Big Town"
    region: "Big Conglomeration"
    postcode: "123 456"
    country: "Countrystan"
  customFieldValueSets:
  - id: "_centres_custom_field_set"
    standardCustomFieldValues:
    - customFieldId: "centre_cf_1"
      value: "custom field value for cf 1"
    - customFieldId: "cntr_cf_2"
      value: "FALSE"
    - customFieldId: "cntr_cf_usr_lnk"
      value: "jonnyt"
  - id: "_cntr_cf_grp"
    groupedCustomFieldValues:
    - index: 0
      customFieldValues:
      - customFieldId: "cntr_cf_Grp_1"
        value: "12"
      - customFieldId: "cntr_cf_grp_2"
        value: "414828471"
      - customFieldId: "cntr_cf_slct_2"
        value: "745255722"
- id: "MP1"
  name: "Market Place"
  state: "ACTIVE"
  notes: "All clients and officers gather in the market to discuss loans and savings\
    \ situation."
  assignedBranchId: "2"
  address:
    line1: "Hegyalja út 95."
    city: "Debrecen"
    postcode: "4032"

Parameters

Name Type Description In
body CentresConfiguration Model representation of the centres configuration. body

Example responses

200 success response

---
warnings: []

200 response with warnings

---
warnings:
- "Centre [id = DT1] could not be deleted and was deactivated"

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Centres configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Centres configuration not found. ErrorResponse

Response Schema

Clients

Allows you to get, create, update, or delete clients. Clients may have associated information such as their address, identification documents, or additional custom field values.

getById (Clients)

Code samples

# You can also use wget
curl -X GET /clients/{clientId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients/{clientId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients/{clientId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients/{clientId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/{clientId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/{clientId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/{clientId}

Get client

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "activationDate": "2016-09-06T13:37:50+03:00",
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "groupLoanCycle": 0,
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "location": "string",
          "name": "string",
          "notes": "string",
          "ownerKey": "string",
          "ownerType": "CLIENT",
          "type": "string"
        }
      ],
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "loanCycle": 0,
  "middleName": "string",
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "encodedKey": "string",
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "profilePictureKey": "string",
  "profileSignatureKey": "string",
  "state": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
200 OK Client returned. Client
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

update (Clients)

Code samples

# You can also use wget
curl -X PUT /clients/{clientId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /clients/{clientId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/clients/{clientId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/clients/{clientId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/clients/{clientId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/clients/{clientId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /clients/{clientId}

Update client

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "emailAddress": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "location": "string",
          "name": "string",
          "notes": "string",
          "type": "string"
        }
      ],
      "documentId": "string",
      "documentType": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastName": "string",
  "middleName": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "state": "PENDING_APPROVAL"
}

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be updated. path
body (required) Client Client to be updated. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "activationDate": "2016-09-06T13:37:50+03:00",
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "groupLoanCycle": 0,
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "location": "string",
          "name": "string",
          "notes": "string",
          "ownerKey": "string",
          "ownerType": "CLIENT",
          "type": "string"
        }
      ],
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "loanCycle": 0,
  "middleName": "string",
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "encodedKey": "string",
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "profilePictureKey": "string",
  "profileSignatureKey": "string",
  "state": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
200 OK Client updated. Client
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

delete (Clients)

Code samples

# You can also use wget
curl -X DELETE /clients/{clientId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /clients/{clientId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/clients/{clientId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/clients/{clientId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/clients/{clientId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/clients/{clientId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /clients/{clientId}

Delete client

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Client deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

patch (Clients)

Code samples

# You can also use wget
curl -X PATCH /clients/{clientId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /clients/{clientId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/clients/{clientId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/clients/{clientId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/clients/{clientId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/clients/{clientId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /clients/{clientId}

Partially update client

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be updated. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Client updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

getAll (Clients)

Code samples

# You can also use wget
curl -X GET /clients \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients

Get clients

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
creditOfficerUsername string The username of the credit officer to whom the entities are assigned to query
branchId string The id/encodedKey of the branch to which the entities are assigned to query
centreId string The id/encodedKey of the centre to which the entities are assigned to query
firstName string The first name, personal name, given name, or forename of the client. query
lastName string The last name, surname, or family name of the client. query
idNumber string The ID number of the client's identification document. query
state string The state of the client to search for. query
birthDate string(date) The birth date of the client to search for. query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: firstName, lastName, creationDate, lastModifiedDate
Default sorting is done by creationDate:ASC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
state PENDING_APPROVAL
state INACTIVE
state ACTIVE
state EXITED
state BLACKLISTED
state REJECTED

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "_Example_Grouped_CF_Set": [
      {
        "Example_Checkbox_Field": "TRUE",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_Number_Field": "46290",
        "Example_Select_Field": [
          {
            "example_option_id": "123",
            "example_option_value": "option 1"
          },
          {
            "example_option_id": "456",
            "example_option_value": "option 7"
          }
        ],
        "_index": "0"
      }
    ],
    "activationDate": "2016-09-06T13:37:50+03:00",
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "1987-04-26",
    "clientRoleKey": "string",
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupKeys": [
      "string"
    ],
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idDocuments": [
      {
        "attachments": [
          {
            "creationDate": "2016-09-06T13:37:50+03:00",
            "encodedKey": "string",
            "fileName": "string",
            "fileSize": 0,
            "id": 0,
            "lastModifiedDate": "2016-09-06T13:37:50+03:00",
            "location": "string",
            "name": "string",
            "notes": "string",
            "ownerKey": "string",
            "ownerType": "CLIENT",
            "type": "string"
          }
        ],
        "clientKey": "string",
        "documentId": "string",
        "documentType": "string",
        "encodedKey": "string",
        "identificationDocumentTemplateKey": "string",
        "indexInList": 0,
        "issuingAuthority": "string",
        "validUntil": "1987-04-26"
      }
    ],
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEventKey": "string",
    "mobilePhone": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalSettings": {
      "encodedKey": "string",
      "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
      "portalState": "ENABLED"
    },
    "preferredLanguage": "ENGLISH",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Clients list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Client] [Represents a client.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» _Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field array A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» _index string(number) The index for this set of grouped custom field values. none
» activationDate string(date-time) The date when a client was set as active for the first time. read-only
» addresses [Address] The addresses associated with this client. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» approvedDate string(date-time) The date when a client was approved. read-only
» assignedBranchKey string The encoded key of the branch a client is assigned to. none
» assignedCentreKey string The encoded key of the centre a client is assigned to. none
» assignedUserKey string The encoded key of the user a client is assigned to. none
» birthDate string(date) The client's date of birth. none
» clientRoleKey string A role which describes the intended use of a client in the system. none
» closedDate string(date-time) The date when the client state was changed to closed. read-only
» creationDate string(date-time) The date a client was created. read-only
» emailAddress string The client's email address. none
» encodedKey string The encoded key of the client, which is unique and generated. read-only
» firstName (required) string The first name, personal name, given name, or forename of the client. none
» gender string The client's gender, the options are male or female. none
» groupKeys [string] The groups to which this client belongs. none
» groupLoanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client's group; when the closing operation is reverted, this is reduced. read-only
» homePhone string The client's home phone number. none
» id string The ID of the client, which can be generated and customized - but must be unique. none
» idDocuments [IdentificationDocument] The identification documents for this client. none
»» attachments [Document] A list containing information about the attached files for this document none
»»» creationDate string(date-time) The creation date of the document, stored as UTC read-only
»»» encodedKey string The document encodedKey read-only
»»» fileName string The original file name of the document none
»»» fileSize integer(int64) The file size of the document none
»»» id (required) integer(int64) The document id none
»»» lastModifiedDate string(date-time) The last modified date of the document, stored as UTC read-only
»»» location string Location where the document can be found, eg /myfiles/mypicture.jpeg none
»»» name (required) string The name of the document none
»»» notes string Detailed notes about the document none
»»» ownerKey string Represents the holder of this document. If null, means nobody is the owner of this document read-only
»»» ownerType string Determines the owner type of the document read-only
»»» type (required) string The extension of the document none
»» clientKey string The encoded key of the client that owns this document read-only
»» documentId (required) string The id of the document none
»» documentType (required) string The type of the document, Passport, Id card Drivers license, etc. none
»» encodedKey string The encoded key of the document, generated, unique read-only
»» identificationDocumentTemplateKey string Encoded key of the template used for this document none
»» indexInList integer(int32) This document's index in the list of documents none
»» issuingAuthority string Authority that issued the document, eg. Police none
»» validUntil string(date) Date when the validity of the document ends none
» lastModifiedDate string(date-time) The last date a client was modified. read-only
» lastName (required) string The last name, surname, or family name of the client. none
» loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client; when the closing operation is reverted, this is reduced. read-only
» middleName string The middle name of the client. none
» migrationEventKey string The migration event encoded key associated with a client. read-only
» mobilePhone string The client's mobile phone number. none
» mobilePhone2 string The client's second mobile phone number. none
» notes string The additional notes about a client. none
» portalSettings PortalSettings Represents portal settings for an individual client. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» lastLoggedInDate string(date-time) The last date the client logged in to the portal. none
»» portalState string The state of the client's portal preferences. none
» preferredLanguage string The client's preferred language. This will determine the language for the reports, schedules, and account statements you generate for the client. none
» profilePictureKey string The encoded key of a client's profile picture. read-only
» profileSignatureKey string The encoded key of the client's profile signature. read-only
» state string The state of a client. It shows where the client is in the client life cycle. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
gender MALE
gender FEMALE
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY
portalState ENABLED
portalState DISABLED
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE
state PENDING_APPROVAL
state INACTIVE
state ACTIVE
state EXITED
state BLACKLISTED
state REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Clients)

Code samples

# You can also use wget
curl -X POST /clients \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /clients HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/clients',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/clients',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/clients', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/clients', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/clients", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /clients

Create client

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "emailAddress": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "location": "string",
          "name": "string",
          "notes": "string",
          "type": "string"
        }
      ],
      "documentId": "string",
      "documentType": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastName": "string",
  "middleName": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "state": "PENDING_APPROVAL"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Client Client to be created. body

Example responses

201 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "activationDate": "2016-09-06T13:37:50+03:00",
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "groupLoanCycle": 0,
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "location": "string",
          "name": "string",
          "notes": "string",
          "ownerKey": "string",
          "ownerType": "CLIENT",
          "type": "string"
        }
      ],
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "loanCycle": 0,
  "middleName": "string",
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "encodedKey": "string",
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "profilePictureKey": "string",
  "profileSignatureKey": "string",
  "state": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Client created. Client
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Code samples

# You can also use wget
curl -X POST /clients:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /clients:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/clients:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/clients:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/clients:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/clients:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /clients:search

Search clients

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) ClientSearchCriteria The criteria to search clients. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "_Example_Grouped_CF_Set": [
      {
        "Example_Checkbox_Field": "TRUE",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_Number_Field": "46290",
        "Example_Select_Field": [
          {
            "example_option_id": "123",
            "example_option_value": "option 1"
          },
          {
            "example_option_id": "456",
            "example_option_value": "option 7"
          }
        ],
        "_index": "0"
      }
    ],
    "activationDate": "2016-09-06T13:37:50+03:00",
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "birthDate": "1987-04-26",
    "clientRoleKey": "string",
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "emailAddress": "string",
    "encodedKey": "string",
    "firstName": "string",
    "gender": "MALE",
    "groupKeys": [
      "string"
    ],
    "groupLoanCycle": 0,
    "homePhone": "string",
    "id": "string",
    "idDocuments": [
      {
        "attachments": [
          {
            "creationDate": "2016-09-06T13:37:50+03:00",
            "encodedKey": "string",
            "fileName": "string",
            "fileSize": 0,
            "id": 0,
            "lastModifiedDate": "2016-09-06T13:37:50+03:00",
            "location": "string",
            "name": "string",
            "notes": "string",
            "ownerKey": "string",
            "ownerType": "CLIENT",
            "type": "string"
          }
        ],
        "clientKey": "string",
        "documentId": "string",
        "documentType": "string",
        "encodedKey": "string",
        "identificationDocumentTemplateKey": "string",
        "indexInList": 0,
        "issuingAuthority": "string",
        "validUntil": "1987-04-26"
      }
    ],
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastName": "string",
    "loanCycle": 0,
    "middleName": "string",
    "migrationEventKey": "string",
    "mobilePhone": "string",
    "mobilePhone2": "string",
    "notes": "string",
    "portalSettings": {
      "encodedKey": "string",
      "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
      "portalState": "ENABLED"
    },
    "preferredLanguage": "ENGLISH",
    "profilePictureKey": "string",
    "profileSignatureKey": "string",
    "state": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of client search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Client] [Represents a client.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» _Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field array A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» _index string(number) The index for this set of grouped custom field values. none
» activationDate string(date-time) The date when a client was set as active for the first time. read-only
» addresses [Address] The addresses associated with this client. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» approvedDate string(date-time) The date when a client was approved. read-only
» assignedBranchKey string The encoded key of the branch a client is assigned to. none
» assignedCentreKey string The encoded key of the centre a client is assigned to. none
» assignedUserKey string The encoded key of the user a client is assigned to. none
» birthDate string(date) The client's date of birth. none
» clientRoleKey string A role which describes the intended use of a client in the system. none
» closedDate string(date-time) The date when the client state was changed to closed. read-only
» creationDate string(date-time) The date a client was created. read-only
» emailAddress string The client's email address. none
» encodedKey string The encoded key of the client, which is unique and generated. read-only
» firstName (required) string The first name, personal name, given name, or forename of the client. none
» gender string The client's gender, the options are male or female. none
» groupKeys [string] The groups to which this client belongs. none
» groupLoanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client's group; when the closing operation is reverted, this is reduced. read-only
» homePhone string The client's home phone number. none
» id string The ID of the client, which can be generated and customized - but must be unique. none
» idDocuments [IdentificationDocument] The identification documents for this client. none
»» attachments [Document] A list containing information about the attached files for this document none
»»» creationDate string(date-time) The creation date of the document, stored as UTC read-only
»»» encodedKey string The document encodedKey read-only
»»» fileName string The original file name of the document none
»»» fileSize integer(int64) The file size of the document none
»»» id (required) integer(int64) The document id none
»»» lastModifiedDate string(date-time) The last modified date of the document, stored as UTC read-only
»»» location string Location where the document can be found, eg /myfiles/mypicture.jpeg none
»»» name (required) string The name of the document none
»»» notes string Detailed notes about the document none
»»» ownerKey string Represents the holder of this document. If null, means nobody is the owner of this document read-only
»»» ownerType string Determines the owner type of the document read-only
»»» type (required) string The extension of the document none
»» clientKey string The encoded key of the client that owns this document read-only
»» documentId (required) string The id of the document none
»» documentType (required) string The type of the document, Passport, Id card Drivers license, etc. none
»» encodedKey string The encoded key of the document, generated, unique read-only
»» identificationDocumentTemplateKey string Encoded key of the template used for this document none
»» indexInList integer(int32) This document's index in the list of documents none
»» issuingAuthority string Authority that issued the document, eg. Police none
»» validUntil string(date) Date when the validity of the document ends none
» lastModifiedDate string(date-time) The last date a client was modified. read-only
» lastName (required) string The last name, surname, or family name of the client. none
» loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client; when the closing operation is reverted, this is reduced. read-only
» middleName string The middle name of the client. none
» migrationEventKey string The migration event encoded key associated with a client. read-only
» mobilePhone string The client's mobile phone number. none
» mobilePhone2 string The client's second mobile phone number. none
» notes string The additional notes about a client. none
» portalSettings PortalSettings Represents portal settings for an individual client. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» lastLoggedInDate string(date-time) The last date the client logged in to the portal. none
»» portalState string The state of the client's portal preferences. none
» preferredLanguage string The client's preferred language. This will determine the language for the reports, schedules, and account statements you generate for the client. none
» profilePictureKey string The encoded key of a client's profile picture. read-only
» profileSignatureKey string The encoded key of the client's profile signature. read-only
» state string The state of a client. It shows where the client is in the client life cycle. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
gender MALE
gender FEMALE
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY
portalState ENABLED
portalState DISABLED
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE
state PENDING_APPROVAL
state INACTIVE
state ACTIVE
state EXITED
state BLACKLISTED
state REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getRoleByClientId (Clients)

Code samples

# You can also use wget
curl -X GET /clients/{clientId}/role \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients/{clientId}/role HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}/role',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients/{clientId}/role',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients/{clientId}/role', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/{clientId}/role', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}/role");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/{clientId}/role", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/{clientId}/role

Get client role for client

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be returned. path

Example responses

200 Response

{
  "canGuarantee": true,
  "canOpenAccounts": true,
  "clientType": "CLIENT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "encodedKey": "string",
  "id": "string",
  "idPattern": "string",
  "name": "string",
  "requireID": true,
  "useDefaultAddress": true
}

Responses

Status Meaning Description Schema
200 OK Client role returned. ClientRole
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

getCreditArrangementsByClientIdOrKey (Clients)

Code samples

# You can also use wget
curl -X GET /clients/{clientId}/creditarrangements \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients/{clientId}/creditarrangements HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}/creditarrangements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients/{clientId}/creditarrangements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients/{clientId}/creditarrangements', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/{clientId}/creditarrangements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}/creditarrangements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/{clientId}/creditarrangements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/{clientId}/creditarrangements

Credit arrangements list returned.

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be returned. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "amount": 0,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "availableCreditAmount": 0,
    "closedDate": "2016-09-06T13:37:50+03:00",
    "consumedCreditAmount": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "encodedKey": "string",
    "expireDate": "2016-09-06T13:37:50+03:00",
    "exposureLimitType": "APPROVED_AMOUNT",
    "holderKey": "string",
    "holderType": "CLIENT",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "notes": "string",
    "startDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING_APPROVAL",
    "subState": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Credit arrangements list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CreditArrangement] [Represents a credit arrangement.] none
» amount (required) number The maximum credit amount the client can be exposed to. none
» approvedDate string(date-time) The date when the credit arrangement was approved. read-only
» availableCreditAmount number The available amount of the credit arrangement. read-only
» closedDate string(date-time) The date when the credit arrangement was closed. read-only
» consumedCreditAmount number The consumed amount of the credit arrangement, which is calculated as the difference between the amount and available amount. read-only
» creationDate string(date-time) The date when the credit arrangement was created. read-only
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the credit arrangement, it is auto generated, and unique. read-only
» expireDate (required) string(date-time) The date when the credit arrangement expires. none
» exposureLimitType string The type of exposure limit calculation method used for the credit arrangement. none
» holderKey (required) string The encoded key of the credit arrangement holder (individual client or group). none
» holderType (required) string The type of the credit arrangement holder (individual client or group). none
» id string The ID of credit arrangement, can be generated and customized, and must be unique. none
» lastModifiedDate string(date-time) The last date when the credit arrangement was modified. read-only
» notes string The notes or description of the credit arrangement. none
» startDate (required) string(date-time) The start date from which the credit arrangement became active. none
» state string The state of the credit arrangement. read-only
» subState string The substate of credit arrangement. read-only

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
exposureLimitType APPROVED_AMOUNT
exposureLimitType OUTSTANDING_AMOUNT
holderType CLIENT
holderType GROUP
state PENDING_APPROVAL
state APPROVED
state ACTIVE
state CLOSED
state WITHDRAWN
state REJECTED
subState PENDING_APPROVAL
subState APPROVED
subState ACTIVE
subState CLOSED
subState WITHDRAWN
subState REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Client Documents

Allows you to retrieve or create client documents.

getDocumentsByClientId (Client Documents)

Code samples

# You can also use wget
curl -X GET /clients/{clientId}/documentsMetadata \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients/{clientId}/documentsMetadata HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/{clientId}/documentsMetadata',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients/{clientId}/documentsMetadata',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients/{clientId}/documentsMetadata', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/{clientId}/documentsMetadata', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}/documentsMetadata");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/{clientId}/documentsMetadata", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/{clientId}/documentsMetadata

Get all client documents

Parameters

Name Type Description In
clientId (required) string The ID or encoded key of the client to be returned. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "fileName": "string",
    "fileSize": 0,
    "id": 0,
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "location": "string",
    "name": "string",
    "notes": "string",
    "ownerKey": "string",
    "ownerType": "CLIENT",
    "type": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Successfully returned the list of all client documents metadata. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Document] [Holds information regarding the documents uploaded as attachments] none
» creationDate string(date-time) The creation date of the document, stored as UTC read-only
» encodedKey string The document encodedKey read-only
» fileName string The original file name of the document none
» fileSize integer(int64) The file size of the document none
» id (required) integer(int64) The document id none
» lastModifiedDate string(date-time) The last modified date of the document, stored as UTC read-only
» location string Location where the document can be found, eg /myfiles/mypicture.jpeg none
» name (required) string The name of the document none
» notes string Detailed notes about the document none
» ownerKey string Represents the holder of this document. If null, means nobody is the owner of this document read-only
» ownerType string Determines the owner type of the document read-only
» type (required) string The extension of the document none

Enumerated Values

Property Value
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getClientDocumentById (Client Documents)

Code samples

# You can also use wget
curl -X GET /clients/documents/{documentId}/metadata \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /clients/documents/{documentId}/metadata HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/clients/documents/{documentId}/metadata',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/clients/documents/{documentId}/metadata',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/clients/documents/{documentId}/metadata', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/documents/{documentId}/metadata', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/documents/{documentId}/metadata");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/documents/{documentId}/metadata", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/documents/{documentId}/metadata

Get client document

Parameters

Name Type Description In
documentId (required) string The ID or encoded key of the client document to be returned. path

Example responses

200 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "fileName": "string",
  "fileSize": 0,
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "location": "string",
  "name": "string",
  "notes": "string",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "type": "string"
}

Responses

Status Meaning Description Schema
200 OK Successfully returned the metadata of a client document. Document
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

createDocument (Client Documents)

Code samples

# You can also use wget
curl -X POST /clients/{clientId}/documents \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /clients/{clientId}/documents HTTP/1.1

Content-Type: multipart/form-data
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/clients/{clientId}/documents',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/clients/{clientId}/documents',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/clients/{clientId}/documents', params={

}, headers = headers)

print r.json()

 'multipart/form-data',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/clients/{clientId}/documents', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/{clientId}/documents");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/clients/{clientId}/documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /clients/{clientId}/documents

Create client document

Body parameter

file: string
name: string
notes: string

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
clientId (required) string The ID or encoded key of the client to be returned. path
body (required) object none body
» file (required) string(binary) The file to be attached for a client. body
» name string The name (title) of the attached file. body
» notes string The description of the attached file. body

Example responses

201 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "fileName": "string",
  "fileSize": 0,
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "location": "string",
  "name": "string",
  "notes": "string",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "type": "string"
}

Responses

Status Meaning Description Schema
201 Created Document created. Document
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

getClientDocumentFileById (Client Documents)

Code samples

# You can also use wget
curl -X GET /clients/documents/{documentId} \
  -H 'Accept: application/vnd.mambu.v2+file'

GET /clients/documents/{documentId} HTTP/1.1

Accept: application/vnd.mambu.v2+file

var headers = {
  'Accept':'application/vnd.mambu.v2+file'

};

$.ajax({
  url: '/clients/documents/{documentId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+file'
}

result = RestClient.get '/clients/documents/{documentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+file'
}

r = requests.get('/clients/documents/{documentId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+file',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/clients/documents/{documentId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/clients/documents/{documentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+file"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/clients/documents/{documentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /clients/documents/{documentId}

Download client document

Parameters

Name Type Description In
documentId (required) string The ID or encoded key of the client document to be returned. path

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Client document downloaded. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client not found. ErrorResponse

Response Headers

Status Header Type Format Description
200 Content-Disposition string "The format is - attachment; filename="{fileName}.extension"";
200 Content-Length integer int32 The size of the file.

Client Roles Configuration

Retrieve and update the configuration for client roles and group roles.

A client is any person who comes to you and requires your financial products, whether that means they need a current account, a loan or any other type of product that you provide. A group can include multiple clients having some unifying relationship. You can specify particular client roles and group roles. For more information about this resource, see Client and Group Roles Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Client Roles Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/clientroles.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/clientroles.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/clientroles.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/clientroles.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/clientroles.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/clientroles.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/clientroles.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/clientroles.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/clientroles.yaml

Get client roles configuration

Parameters

Name Type Description In
type array[string] The account holder type for which the client roles are returned. If the parameter is absent, all the clients roles are returned. query

Enumerated Values

Parameter Value
type CLIENT
type GROUP

Example responses

an array of client roles and group roles

---
rolesConfiguration:
  - type: "CLIENT"
    defaultRole:
      id: "default_role_id"
      name: "default_role_name"
      canOpenAccounts: true
      canGuarantee: true
      requireIdentificationDocuments: false
      useDefaultAddress: true
    roles:
      - id: "id_1"
        name: "Name_1"
        description: "Desc 1"
        idPattern: "@"
        canOpenAccounts: false
        canGuarantee: false
        requireIdentificationDocuments: false
        useDefaultAddress: false
  - type: "GROUP"
    defaultRole:
      id: "default_group_role_id"
      name: "default_group_role_name"
      canOpenAccounts: true
      canGuarantee: true
      useDefaultAddress: true
    roles:
      - id: "id_2"
        name: "Name_2"
        description: "Desc 2"
        idPattern: "##"
        canOpenAccounts: false
        canGuarantee: true
        useDefaultAddress: true
      - id: "id_3"
        name: "Name_3"
        description: "Desc 3"
        idPattern: "@#"
        canOpenAccounts: true
        canGuarantee: true
        useDefaultAddress: false

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Client roles configuration returned. ClientsRolesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client roles configuration not found. ErrorResponse

update (Client Roles Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/clientroles.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/clientroles.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/clientroles.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/clientroles.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/clientroles.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/clientroles.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/clientroles.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/clientroles.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/clientroles.yaml

Update client roles configuration

Body parameter

an array of client roles and group roles

---
rolesConfiguration:
  - type: "CLIENT"
    defaultRole:
      id: "default_role_id"
      name: "default_role_name"
      canOpenAccounts: true
      canGuarantee: true
      requireIdentificationDocuments: false
      useDefaultAddress: true
    roles:
      - id: "id_1"
        name: "Name_1"
        description: "Desc 1"
        idPattern: "@"
        canOpenAccounts: false
        canGuarantee: false
        requireIdentificationDocuments: false
        useDefaultAddress: false
  - type: "GROUP"
    defaultRole:
      id: "default_group_role_id"
      name: "default_group_role_name"
      canOpenAccounts: true
      canGuarantee: true
      useDefaultAddress: true
    roles:
      - id: "id_2"
        name: "Name_2"
        description: "Desc 2"
        idPattern: "##"
        canOpenAccounts: false
        canGuarantee: true
        useDefaultAddress: true
      - id: "id_3"
        name: "Name_3"
        description: "Desc 3"
        idPattern: "@#"
        canOpenAccounts: true
        canGuarantee: true
        useDefaultAddress: false

Parameters

Name Type Description In
body ClientsRolesConfiguration Model representation of the clients roles configuration. body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Client roles configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Client roles configuration not found. ErrorResponse

Response Schema

Comments

Allows you to retrieve or create comments. Comments have information such as the parent key, user key, creation date, last modified date and text.

getComments (Comments)

Code samples

# You can also use wget
curl -X GET /comments?ownerType=CLIENT&ownerKey=string \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /comments?ownerType=CLIENT&ownerKey=string HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/comments',
  method: 'get',
  data: '?ownerType=CLIENT&ownerKey=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/comments',
  params: {
  'ownerType' => 'string',
'ownerKey' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/comments', params={
  'ownerType': 'CLIENT',  'ownerKey': 'string'
}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/comments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/comments?ownerType=CLIENT&ownerKey=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/comments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /comments

Get comments for an entity

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
ownerType (required) string The type of the entity that owns the comment: CLIENT, GROUP, LOAN_ACCOUNT, DEPOSIT_ACCOUNT, BRANCH, CENTRE, USER, LOAN_PRODUCT, or SAVINGS_PRODUCT. query
ownerKey (required) string The ID or key of the entity that owns the comment. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

Example responses

200 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "ownerKey": "string",
    "ownerType": "CLIENT",
    "text": "string",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Comments have been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The entity that owns the comment was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Comment] [Represents information about the comment data transfer object.] none
» creationDate string(date-time) The creation date of the comment. read-only
» encodedKey string The comments's encoded key, which is auto-generated and unique. read-only
» lastModifiedDate string(date-time) The last date when this comment was modified. read-only
» ownerKey string The encoded key of the entity that owns this comment. none
» ownerType string The type of the entity that owns this comment. none
» text string The message in the comment. none
» userKey string The user's key. read-only

Enumerated Values

Property Value
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

createComment (Comments)

Code samples

# You can also use wget
curl -X POST /comments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /comments HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/comments',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/comments',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/comments', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/comments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/comments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /comments

Create a new comment for an entity.

Body parameter

{
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "text": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Comment The comment to be created, which contains the message, the key, and entity type: CLIENT, GROUP, LOAN_ACCOUNT, DEPOSIT_ACCOUNT, BRANCH, CENTRE, USER, LOAN_PRODUCT, or SAVINGS_PRODUCT. body

Example responses

201 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "text": "string",
  "userKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The comment has been created. Comment
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Communications

Allows retrieval of communication messages, sending messages and resending the ones that failed.

searchSorted (Communications)

Code samples

# You can also use wget
curl -X POST /communications/messages:searchSorted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /communications/messages:searchSorted HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/communications/messages:searchSorted',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/communications/messages:searchSorted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/communications/messages:searchSorted', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages:searchSorted', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages:searchSorted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages:searchSorted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages:searchSorted

Searching sorted communication messages

Body parameter

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) CommunicationMessagesSearchSortCriteria Represents search criteria for communication messages. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "body": "string",
    "clientKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "depositAccountKey": "string",
    "destination": "string",
    "encodedKey": "string",
    "event": "MANUAL",
    "failureCause": "string",
    "failureReason": "MESSAGING_EXCEPTION",
    "groupKey": "string",
    "loanAccountKey": "string",
    "numRetries": 0,
    "referenceId": "string",
    "repaymentKey": "string",
    "sendDate": "2016-09-06T13:37:50+03:00",
    "senderKey": "string",
    "state": "SENT",
    "subject": "string",
    "templateKey": "string",
    "type": "EMAIL",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of communication message search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CommunicationMessage] [Represents a communication message.] none
» body string The contents of the message. none
» clientKey string The client the message was sent to. none
» creationDate string(date-time) The date the communication message was created in UTC. none
» depositAccountKey string The deposit account that triggered this message. none
» destination string The destination (phone number or email address) this message was sent to. none
» encodedKey string The encoded key of the communication message, which is generated automatically, and must be unique. none
» event string The event that triggered this message. none
» failureCause string The failure code if the message failed to send. none
» failureReason string The reason for the communication message failure. none
» groupKey string The group the message was sent to. none
» loanAccountKey string The loan account that triggered this message. none
» numRetries integer(int32) The number of retries to send the message. none
» referenceId string The reference ID of the communication message, generated by the SMS dispatcher. none
» repaymentKey string The repayment that triggered this message. none
» sendDate string(date-time) The date the communication message was sent in UTC. none
» senderKey string The encoded key of the sender. If specified, it should be the encoded key of the current user. none
» state string The state of the message. none
» subject string The subject of the message. none
» templateKey string The communication message template key. none
» type string The type of communication message. none
» userKey string The user the message was sent to. none

Enumerated Values

Property Value
event MANUAL
event DO_NOTHING
event CLIENT_CREATED
event CLIENT_APPROVED
event GROUP_ACTIVITY
event GROUP_CREATED
event LOAN_CREATED
event INTEREST_RATE_CHANGED
event CLIENT_REJECTED
event CLIENT_ACTIVITY
event LOAN_REPAYMENT
event LOAN_REPAYMENT_REVERSAL
event FEE_APPLIED
event FEE_ADJUSTED
event FEE_CHARGED
event PENALTY_APPLIED
event PENALTY_ADJUSTMENT
event FEES_DUE_REDUCED
event FEE_REDUCTION_ADJUSTMENT
event LOAN_APPROVAL
event LOAN_ACCOUNT_CLOSURE
event LOAN_ACCOUNT_WRITE_OFF
event LOAN_ACCOUNT_REJECTION
event LOAN_ACCOUNT_RESCHEDULED
event LOAN_ACCOUNT_REFINANCED
event REPAYMENT_REMINDER
event ACCOUNT_IN_ARREARS
event LOAN_DISBURSEMENT
event LOAN_DISBURSEMENT_REVERSAL
event LOAN_ACCOUNT_ACTIVITY
event LOAN_ANTICIPATED_DISBURSEMENT
event SAVINGS_CREATED
event SAVINGS_DEPOSIT
event SAVINGS_DEPOSIT_REVERSAL
event SAVINGS_APPROVAL
event SAVINGS_ACCOUNT_ACTIVATED
event SAVINGS_ACCOUNT_CLOSURE
event SAVINGS_ACCOUNT_REJECTION
event SAVINGS_WITHDRAWAL
event SAVINGS_WITHDRAWAL_REVERSAL
event SAVINGS_ACCOUNT_ACTIVITY
event DEPOSIT_INTEREST_APPLIED
event DEPOSIT_INTEREST_APPLIED_ADJUSTMENT
event ACCOUNT_AUTHORISATION_HOLD_CREATED
event ACCOUNT_AUTHORISATION_HOLD_REVERSED
event ACCOUNT_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_CREATED
event CARDS_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_AMOUNT_DECREASED
event CARDS_AUTHORISATION_HOLD_AMOUNT_INCREASED
event CARDS_AUTHORISATION_HOLD_EXPIRED
event CARDS_AUTHORISATION_HOLD_REVERSED
event PORTAL_ACTIVATED
event PORTAL_PASSWORD_RESET
event END_OF_DAY_PROCESSING_COMPLETED
event DATA_ACCESS_STATE_CHANGED
event CREDIT_ARRANGEMENT_CREATED
event CREDIT_ARRANGEMENT_CLOSED
event CREDIT_ARRANGEMENT_APPROVED
event CREDIT_ARRANGEMENT_REJECTED
event CREDIT_ARRANGEMENT_WITHDRAWN
event CREDIT_ARRANGEMENT_DELETED
event CREDIT_ARRANGEMENT_ACCOUNT_ADDED
event CREDIT_ARRANGEMENT_ACCOUNT_REMOVED
event CREDIT_ARRANGEMENT_EDITED
event PAYMENT_ORDER_ACTIVITY
event COLLECTION_ORDER_ACTIVITY
event JOURNAL_ENTRY_ADDED
event JOURNAL_ENTRY_ADJUSTED
event SAVINGS_TRANSACTION_EDITED
failureReason MESSAGING_EXCEPTION
failureReason INVALID_SMTP_CREDENTIALS
failureReason UNSUPPORTED_ENCODING_EXCEPTION
failureReason EMAIL_SERVICE_NOT_ENABLED
failureReason SMS_TOO_LONG
failureReason SMS_SERVICE_NOT_ENABLED
failureReason SMS_NOT_SENT
failureReason SMS_SERVICE_ERROR
failureReason SMS_CONNECTION_EXCEPTION
failureReason WEBHOOK_NOTIFICATIONS_DISABLED
failureReason INVALID_HTTP_RESPONSE
failureReason HTTP_ERROR_WHILE_SENDING
failureReason INVALID_JSON_BODY_SYNTAX
failureReason MISSING_TEMPLATE_KEY
failureReason MAX_MESSAGE_SIZE_LIMIT_EXCEEDED
failureReason UNDEFINED_DESTINATION
failureReason INVALID_HTTP_PROTOCOL
failureReason BLACKLISTED_URL
failureReason INVALID_SMS_GATEWAY_CREDENTIALS
failureReason MISSING_SMS_RECIPIENT
failureReason SMS_GATEWAY_ERROR
failureReason MISSING_EMAIL_RECIPIENT_ADDRESS
failureReason OTHER
state SENT
state QUEUED
state QUEUED_FOR_STREAM
state WAITING
state SENDING_ASYNC
state FAILED
type EMAIL
type SMS
type WEB_HOOK
type EVENT_STREAM
type TASK

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

send (Communications)

Code samples

# You can also use wget
curl -X POST /communications/messages \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /communications/messages HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/communications/messages',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/communications/messages',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/communications/messages', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages

Send communication message

Body parameter

{
  "body": "string",
  "clientKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "depositAccountKey": "string",
  "destination": "string",
  "encodedKey": "string",
  "event": "MANUAL",
  "failureCause": "string",
  "failureReason": "MESSAGING_EXCEPTION",
  "groupKey": "string",
  "loanAccountKey": "string",
  "numRetries": 0,
  "referenceId": "string",
  "repaymentKey": "string",
  "sendDate": "2016-09-06T13:37:50+03:00",
  "senderKey": "string",
  "state": "SENT",
  "subject": "string",
  "templateKey": "string",
  "type": "EMAIL",
  "userKey": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CommunicationMessage Communication message to be created. body

Example responses

201 Response

{
  "body": "string",
  "clientKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "depositAccountKey": "string",
  "destination": "string",
  "encodedKey": "string",
  "event": "MANUAL",
  "failureCause": "string",
  "failureReason": "MESSAGING_EXCEPTION",
  "groupKey": "string",
  "loanAccountKey": "string",
  "numRetries": 0,
  "referenceId": "string",
  "repaymentKey": "string",
  "sendDate": "2016-09-06T13:37:50+03:00",
  "senderKey": "string",
  "state": "SENT",
  "subject": "string",
  "templateKey": "string",
  "type": "EMAIL",
  "userKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Communication message sent. CommunicationMessage
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getByEncodedKey (Communications)

Code samples

# You can also use wget
curl -X GET /communications/messages/{encodedKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /communications/messages/{encodedKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/communications/messages/{encodedKey}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/communications/messages/{encodedKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/communications/messages/{encodedKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/communications/messages/{encodedKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages/{encodedKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/communications/messages/{encodedKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /communications/messages/{encodedKey}

Get communication message

Parameters

Name Type Description In
encodedKey (required) string The encoded key of the message to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "body": "string",
  "clientKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "depositAccountKey": "string",
  "destination": "string",
  "encodedKey": "string",
  "event": "MANUAL",
  "failureCause": "string",
  "failureReason": "MESSAGING_EXCEPTION",
  "groupKey": "string",
  "loanAccountKey": "string",
  "numRetries": 0,
  "referenceId": "string",
  "repaymentKey": "string",
  "sendDate": "2016-09-06T13:37:50+03:00",
  "senderKey": "string",
  "state": "SENT",
  "subject": "string",
  "templateKey": "string",
  "type": "EMAIL",
  "userKey": "string"
}

Responses

Status Meaning Description Schema
200 OK Communication message returned. CommunicationMessage
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Communication message not found. ErrorResponse

enqueueByDate (Communications)

Code samples

# You can also use wget
curl -X POST /communications/messages:resendAsyncByDate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /communications/messages:resendAsyncByDate HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/communications/messages:resendAsyncByDate',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/communications/messages:resendAsyncByDate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/communications/messages:resendAsyncByDate', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages:resendAsyncByDate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages:resendAsyncByDate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages:resendAsyncByDate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages:resendAsyncByDate

Resend failed communication message(s) asynchronously by date

Body parameter

{
  "endDate": "2016-09-06T13:37:50+03:00",
  "startDate": "2016-09-06T13:37:50+03:00",
  "templateTypes": [
    "EMAIL"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CommunicationMessageEnqueueAction Resend failed communication message(s) asynchronously by date body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Communication message was resent asynchronously. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Communication message not found. ErrorResponse

Code samples

# You can also use wget
curl -X POST /communications/messages:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /communications/messages:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/communications/messages:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/communications/messages:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/communications/messages:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages:search

Searching communication messages

For more information on performing searches, please read the Searching for Records section above.

Body parameter

[
  {
    "field": "encodedKey",
    "operator": "EQUALS",
    "secondValue": "string",
    "value": "string",
    "values": [
      "string"
    ]
  }
]

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) CommunicationMessageFilterCriteria Represents search criteria for communication messages. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "body": "string",
    "clientKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "depositAccountKey": "string",
    "destination": "string",
    "encodedKey": "string",
    "event": "MANUAL",
    "failureCause": "string",
    "failureReason": "MESSAGING_EXCEPTION",
    "groupKey": "string",
    "loanAccountKey": "string",
    "numRetries": 0,
    "referenceId": "string",
    "repaymentKey": "string",
    "sendDate": "2016-09-06T13:37:50+03:00",
    "senderKey": "string",
    "state": "SENT",
    "subject": "string",
    "templateKey": "string",
    "type": "EMAIL",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of communication message search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CommunicationMessage] [Represents a communication message.] none
» body string The contents of the message. none
» clientKey string The client the message was sent to. none
» creationDate string(date-time) The date the communication message was created in UTC. none
» depositAccountKey string The deposit account that triggered this message. none
» destination string The destination (phone number or email address) this message was sent to. none
» encodedKey string The encoded key of the communication message, which is generated automatically, and must be unique. none
» event string The event that triggered this message. none
» failureCause string The failure code if the message failed to send. none
» failureReason string The reason for the communication message failure. none
» groupKey string The group the message was sent to. none
» loanAccountKey string The loan account that triggered this message. none
» numRetries integer(int32) The number of retries to send the message. none
» referenceId string The reference ID of the communication message, generated by the SMS dispatcher. none
» repaymentKey string The repayment that triggered this message. none
» sendDate string(date-time) The date the communication message was sent in UTC. none
» senderKey string The encoded key of the sender. If specified, it should be the encoded key of the current user. none
» state string The state of the message. none
» subject string The subject of the message. none
» templateKey string The communication message template key. none
» type string The type of communication message. none
» userKey string The user the message was sent to. none

Enumerated Values

Property Value
event MANUAL
event DO_NOTHING
event CLIENT_CREATED
event CLIENT_APPROVED
event GROUP_ACTIVITY
event GROUP_CREATED
event LOAN_CREATED
event INTEREST_RATE_CHANGED
event CLIENT_REJECTED
event CLIENT_ACTIVITY
event LOAN_REPAYMENT
event LOAN_REPAYMENT_REVERSAL
event FEE_APPLIED
event FEE_ADJUSTED
event FEE_CHARGED
event PENALTY_APPLIED
event PENALTY_ADJUSTMENT
event FEES_DUE_REDUCED
event FEE_REDUCTION_ADJUSTMENT
event LOAN_APPROVAL
event LOAN_ACCOUNT_CLOSURE
event LOAN_ACCOUNT_WRITE_OFF
event LOAN_ACCOUNT_REJECTION
event LOAN_ACCOUNT_RESCHEDULED
event LOAN_ACCOUNT_REFINANCED
event REPAYMENT_REMINDER
event ACCOUNT_IN_ARREARS
event LOAN_DISBURSEMENT
event LOAN_DISBURSEMENT_REVERSAL
event LOAN_ACCOUNT_ACTIVITY
event LOAN_ANTICIPATED_DISBURSEMENT
event SAVINGS_CREATED
event SAVINGS_DEPOSIT
event SAVINGS_DEPOSIT_REVERSAL
event SAVINGS_APPROVAL
event SAVINGS_ACCOUNT_ACTIVATED
event SAVINGS_ACCOUNT_CLOSURE
event SAVINGS_ACCOUNT_REJECTION
event SAVINGS_WITHDRAWAL
event SAVINGS_WITHDRAWAL_REVERSAL
event SAVINGS_ACCOUNT_ACTIVITY
event DEPOSIT_INTEREST_APPLIED
event DEPOSIT_INTEREST_APPLIED_ADJUSTMENT
event ACCOUNT_AUTHORISATION_HOLD_CREATED
event ACCOUNT_AUTHORISATION_HOLD_REVERSED
event ACCOUNT_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_CREATED
event CARDS_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_AMOUNT_DECREASED
event CARDS_AUTHORISATION_HOLD_AMOUNT_INCREASED
event CARDS_AUTHORISATION_HOLD_EXPIRED
event CARDS_AUTHORISATION_HOLD_REVERSED
event PORTAL_ACTIVATED
event PORTAL_PASSWORD_RESET
event END_OF_DAY_PROCESSING_COMPLETED
event DATA_ACCESS_STATE_CHANGED
event CREDIT_ARRANGEMENT_CREATED
event CREDIT_ARRANGEMENT_CLOSED
event CREDIT_ARRANGEMENT_APPROVED
event CREDIT_ARRANGEMENT_REJECTED
event CREDIT_ARRANGEMENT_WITHDRAWN
event CREDIT_ARRANGEMENT_DELETED
event CREDIT_ARRANGEMENT_ACCOUNT_ADDED
event CREDIT_ARRANGEMENT_ACCOUNT_REMOVED
event CREDIT_ARRANGEMENT_EDITED
event PAYMENT_ORDER_ACTIVITY
event COLLECTION_ORDER_ACTIVITY
event JOURNAL_ENTRY_ADDED
event JOURNAL_ENTRY_ADJUSTED
event SAVINGS_TRANSACTION_EDITED
failureReason MESSAGING_EXCEPTION
failureReason INVALID_SMTP_CREDENTIALS
failureReason UNSUPPORTED_ENCODING_EXCEPTION
failureReason EMAIL_SERVICE_NOT_ENABLED
failureReason SMS_TOO_LONG
failureReason SMS_SERVICE_NOT_ENABLED
failureReason SMS_NOT_SENT
failureReason SMS_SERVICE_ERROR
failureReason SMS_CONNECTION_EXCEPTION
failureReason WEBHOOK_NOTIFICATIONS_DISABLED
failureReason INVALID_HTTP_RESPONSE
failureReason HTTP_ERROR_WHILE_SENDING
failureReason INVALID_JSON_BODY_SYNTAX
failureReason MISSING_TEMPLATE_KEY
failureReason MAX_MESSAGE_SIZE_LIMIT_EXCEEDED
failureReason UNDEFINED_DESTINATION
failureReason INVALID_HTTP_PROTOCOL
failureReason BLACKLISTED_URL
failureReason INVALID_SMS_GATEWAY_CREDENTIALS
failureReason MISSING_SMS_RECIPIENT
failureReason SMS_GATEWAY_ERROR
failureReason MISSING_EMAIL_RECIPIENT_ADDRESS
failureReason OTHER
state SENT
state QUEUED
state QUEUED_FOR_STREAM
state WAITING
state SENDING_ASYNC
state FAILED
type EMAIL
type SMS
type WEB_HOOK
type EVENT_STREAM
type TASK

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

resend (Communications)

Code samples

# You can also use wget
curl -X POST /communications/messages:resend \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /communications/messages:resend HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/communications/messages:resend',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/communications/messages:resend',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/communications/messages:resend', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages:resend', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages:resend");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages:resend", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages:resend

Resend failed communication message(s)

Body parameter

{
  "messages": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CommunicationMessageAction Represents a list of failed communication messages to resend. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted The operation was accepted. You can check the status of each notification by using the search endpoint or by making a GET request. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Communication message not found. ErrorResponse

enqueueByKeys (Communications)

Code samples

# You can also use wget
curl -X POST /communications/messages:resendAsyncByKeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /communications/messages:resendAsyncByKeys HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/communications/messages:resendAsyncByKeys',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/communications/messages:resendAsyncByKeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/communications/messages:resendAsyncByKeys', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/communications/messages:resendAsyncByKeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/communications/messages:resendAsyncByKeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/communications/messages:resendAsyncByKeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /communications/messages:resendAsyncByKeys

Resend failed communication message(s) asynchronously using keys

Body parameter

{
  "messages": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CommunicationMessageAction Resend failed communication message(s) asynchronously using keys body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Communication message was resent asynchronously. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Communication message not found. ErrorResponse

Credit Arrangements

Allows you to retrieve, create, update and delete credit arrangements.

removeAccount (Credit Arrangements)

Code samples

# You can also use wget
curl -X POST /creditarrangements/{creditArrangementId}:removeAccount \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /creditarrangements/{creditArrangementId}:removeAccount HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}:removeAccount',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/creditarrangements/{creditArrangementId}:removeAccount',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/creditarrangements/{creditArrangementId}:removeAccount', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/creditarrangements/{creditArrangementId}:removeAccount', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}:removeAccount");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/creditarrangements/{creditArrangementId}:removeAccount", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditarrangements/{creditArrangementId}:removeAccount

Remove account from credit arrangement

Body parameter

{
  "accountId": "string",
  "accountType": "LOAN"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
creditArrangementId (required) string The ID or encoded key of the credit arrangement for an account to be removed. path
body (required) RemoveCreditArrangementAccountInput The account ID and type to be removed from the credit arrangement. body

Example responses

200 Response

{
  "depositAccounts": [
    {
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PENDING_APPROVAL",
      "accountType": "CURRENT_ACCOUNT",
      "accruedAmounts": {
        "interestAccrued": 0,
        "negativeInterestAccrued": 0,
        "overdraftInterestAccrued": 0,
        "technicalOverdraftInterestAccrued": 0
      },
      "activationDate": "2016-09-06T13:37:50+03:00",
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "availableBalance": 0,
        "blockedBalance": 0,
        "feesDue": 0,
        "forwardAvailableBalance": 0,
        "holdBalance": 0,
        "lockedBalance": 0,
        "overdraftAmount": 0,
        "overdraftInterestDue": 0,
        "technicalOverdraftAmount": 0,
        "technicalOverdraftInterestDue": 0,
        "totalBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "id": "string",
      "interestSettings": {
        "interestPaymentSettings": {
          "interestPaymentDates": [
            {
              "day": 0,
              "month": 0
            }
          ],
          "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
        },
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "internalControls": {
        "maxDepositBalance": 0,
        "maxWithdrawalAmount": 0,
        "recommendedDepositAmount": 0,
        "targetAmount": 0
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "linkedSettlementAccountKeys": [
        "string"
      ],
      "lockedDate": "2016-09-06T13:37:50+03:00",
      "maturityDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "notes": "string",
      "overdraftInterestSettings": {
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "overdraftSettings": {
        "allowOverdraft": true,
        "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
        "overdraftLimit": 0
      },
      "productTypeKey": "string",
      "withholdingTaxSourceKey": "string"
    }
  ],
  "loanAccounts": [
    {
      "accountArrearsSettings": {
        "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
        "encodedKey": "string",
        "monthlyToleranceDay": 0,
        "nonWorkingDaysMethod": "INCLUDED",
        "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
        "toleranceFloorAmount": 0,
        "tolerancePercentageOfOutstandingPrincipal": 0,
        "tolerancePeriod": 0
      },
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PARTIAL_APPLICATION",
      "accountSubState": "PARTIALLY_DISBURSED",
      "accruedInterest": 0,
      "accruedPenalty": 0,
      "activationTransactionKey": "string",
      "allowOffset": true,
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "arrearsTolerancePeriod": 0,
      "assets": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "originalAmount": 0,
          "originalCurrency": {
            "code": "AED",
            "currencyCode": "string"
          }
        }
      ],
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "feesBalance": 0,
        "feesDue": 0,
        "feesPaid": 0,
        "holdBalance": 0,
        "interestBalance": 0,
        "interestDue": 0,
        "interestFromArrearsBalance": 0,
        "interestFromArrearsDue": 0,
        "interestFromArrearsPaid": 0,
        "interestPaid": 0,
        "penaltyBalance": 0,
        "penaltyDue": 0,
        "penaltyPaid": 0,
        "principalBalance": 0,
        "principalDue": 0,
        "principalPaid": 0,
        "redrawBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "daysInArrears": 0,
      "daysLate": 0,
      "disbursementDetails": {
        "disbursementDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
        "transactionDetails": {
          "encodedKey": "string",
          "internalTransfer": true,
          "targetDepositAccountKey": "string",
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        }
      },
      "encodedKey": "string",
      "fundingSources": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "id": "string",
          "interestCommission": 0,
          "sharePercentage": 0
        }
      ],
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "guarantors": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT"
        }
      ],
      "id": "string",
      "interestAccruedInBillingCycle": 0,
      "interestCommission": 0,
      "interestFromArrearsAccrued": 0,
      "interestSettings": {
        "accountInterestRateSettings": [
          {
            "encodedKey": "string",
            "indexSourceKey": "string",
            "interestRate": 0,
            "interestRateCeilingValue": 0,
            "interestRateFloorValue": 0,
            "interestRateReviewCount": 0,
            "interestRateReviewUnit": "DAYS",
            "interestRateSource": "FIXED_INTEREST_RATE",
            "interestSpread": 0,
            "validFrom": "2016-09-06T13:37:50+03:00"
          }
        ],
        "accrueInterestAfterMaturity": true,
        "accrueLateInterest": true,
        "interestApplicationMethod": "AFTER_DISBURSEMENT",
        "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
        "interestCalculationMethod": "FLAT",
        "interestChargeFrequency": "ANNUALIZED",
        "interestRate": 0,
        "interestRateChangePMTAdjustmentThreshold": {
          "method": "WORKING_DAYS",
          "numberOfDays": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "interestType": "SIMPLE_INTEREST"
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastLockedDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
      "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
      "loanAmount": 0,
      "loanName": "string",
      "lockedAccountTotalDueType": "BALANCE_AMOUNT",
      "lockedOperations": [
        "APPLY_INTEREST"
      ],
      "migrationEventKey": "string",
      "modifyInterestForFirstInstallment": true,
      "notes": "string",
      "originalAccountKey": "string",
      "paymentHolidaysAccruedInterest": 0,
      "paymentMethod": "HORIZONTAL",
      "penaltySettings": {
        "loanPenaltyCalculationMethod": "NONE",
        "penaltyRate": 0
      },
      "plannedInstallmentFees": [
        {
          "amount": 0,
          "applyOnDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "installmentKey": "string",
          "installmentNumber": 0,
          "predefinedFeeKey": "string"
        }
      ],
      "prepaymentSettings": {
        "applyInterestOnPrepaymentMethod": "AUTOMATIC",
        "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
        "prepaymentRecalculationMethod": "NO_RECALCULATION",
        "principalPaidInstallmentStatus": "PARTIALLY_PAID"
      },
      "principalPaymentSettings": {
        "amount": 0,
        "encodedKey": "string",
        "includeFeesInFloorAmount": true,
        "includeInterestInFloorAmount": true,
        "percentage": 0,
        "principalCeilingValue": 0,
        "principalFloorValue": 0,
        "principalPaymentMethod": "FLAT",
        "totalDueAmountFloor": 0,
        "totalDuePayment": "FLAT"
      },
      "productTypeKey": "string",
      "redrawSettings": {
        "restrictNextDueWithdrawal": true
      },
      "rescheduledAccountKey": "string",
      "scheduleSettings": {
        "billingCycle": {
          "days": [
            0
          ]
        },
        "defaultFirstRepaymentDueDateOffset": 0,
        "fixedDaysOfMonth": [
          0
        ],
        "gracePeriod": 0,
        "gracePeriodType": "NONE",
        "hasCustomSchedule": true,
        "paymentPlan": [
          {
            "amount": 0,
            "encodedKey": "string",
            "toInstallment": 0
          }
        ],
        "periodicPayment": 0,
        "previewSchedule": {
          "numberOfPreviewedInstalments": 0
        },
        "principalRepaymentInterval": 0,
        "repaymentInstallments": 0,
        "repaymentPeriodCount": 0,
        "repaymentPeriodUnit": "DAYS",
        "repaymentScheduleMethod": "NONE",
        "scheduleDueDatesMethod": "INTERVAL",
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "settlementAccountKey": "string",
      "taxRate": 0,
      "terminationDate": "2016-09-06T13:37:50+03:00",
      "tranches": [
        {
          "amount": 0,
          "disbursementDetails": {
            "disbursementTransactionKey": "string",
            "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": "string",
          "fees": [
            {
              "amount": 0,
              "encodedKey": "string",
              "percentage": 0,
              "predefinedFeeEncodedKey": "string"
            }
          ],
          "trancheNumber": 0
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Account removed from the credit arrangement. CreditArrangementAccounts
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement or account not found. ErrorResponse

getAll (Credit Arrangements)

Code samples

# You can also use wget
curl -X GET /creditarrangements \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /creditarrangements HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/creditarrangements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/creditarrangements', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/creditarrangements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/creditarrangements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditarrangements

Get credit arrangements

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: creationDate,startDate,expireDate,amount
Default sorting is done by startDate:DESC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "amount": 0,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "availableCreditAmount": 0,
    "closedDate": "2016-09-06T13:37:50+03:00",
    "consumedCreditAmount": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "encodedKey": "string",
    "expireDate": "2016-09-06T13:37:50+03:00",
    "exposureLimitType": "APPROVED_AMOUNT",
    "holderKey": "string",
    "holderType": "CLIENT",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "notes": "string",
    "startDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING_APPROVAL",
    "subState": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Credit arrangements list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CreditArrangement] [Represents a credit arrangement.] none
» amount (required) number The maximum credit amount the client can be exposed to. none
» approvedDate string(date-time) The date when the credit arrangement was approved. read-only
» availableCreditAmount number The available amount of the credit arrangement. read-only
» closedDate string(date-time) The date when the credit arrangement was closed. read-only
» consumedCreditAmount number The consumed amount of the credit arrangement, which is calculated as the difference between the amount and available amount. read-only
» creationDate string(date-time) The date when the credit arrangement was created. read-only
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the credit arrangement, it is auto generated, and unique. read-only
» expireDate (required) string(date-time) The date when the credit arrangement expires. none
» exposureLimitType string The type of exposure limit calculation method used for the credit arrangement. none
» holderKey (required) string The encoded key of the credit arrangement holder (individual client or group). none
» holderType (required) string The type of the credit arrangement holder (individual client or group). none
» id string The ID of credit arrangement, can be generated and customized, and must be unique. none
» lastModifiedDate string(date-time) The last date when the credit arrangement was modified. read-only
» notes string The notes or description of the credit arrangement. none
» startDate (required) string(date-time) The start date from which the credit arrangement became active. none
» state string The state of the credit arrangement. read-only
» subState string The substate of credit arrangement. read-only

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
exposureLimitType APPROVED_AMOUNT
exposureLimitType OUTSTANDING_AMOUNT
holderType CLIENT
holderType GROUP
state PENDING_APPROVAL
state APPROVED
state ACTIVE
state CLOSED
state WITHDRAWN
state REJECTED
subState PENDING_APPROVAL
subState APPROVED
subState ACTIVE
subState CLOSED
subState WITHDRAWN
subState REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Credit Arrangements)

Code samples

# You can also use wget
curl -X POST /creditarrangements \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /creditarrangements HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/creditarrangements',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/creditarrangements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/creditarrangements', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/creditarrangements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/creditarrangements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditarrangements

Create credit arrangement

Body parameter

{
  "amount": 0,
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CreditArrangement Credit arrangement to be created. body

Example responses

201 Response

{
  "amount": 0,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "availableCreditAmount": 0,
  "closedDate": "2016-09-06T13:37:50+03:00",
  "consumedCreditAmount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING_APPROVAL",
  "subState": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Credit arrangement created. CreditArrangement
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

changeState (Credit Arrangements)

Code samples

# You can also use wget
curl -X POST /creditarrangements/{creditArrangementId}:changeState \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /creditarrangements/{creditArrangementId}:changeState HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}:changeState',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/creditarrangements/{creditArrangementId}:changeState',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/creditarrangements/{creditArrangementId}:changeState', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/creditarrangements/{creditArrangementId}:changeState', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}:changeState");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/creditarrangements/{creditArrangementId}:changeState", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditarrangements/{creditArrangementId}:changeState

Change credit arrangement state

Body parameter

{
  "action": "APPROVE",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be updated. path
body (required) CreditArrangementAction The state change to perform on the credit arrangement. body

Example responses

200 Response

{
  "amount": 0,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "availableCreditAmount": 0,
  "closedDate": "2016-09-06T13:37:50+03:00",
  "consumedCreditAmount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING_APPROVAL",
  "subState": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Credit arrangement state change posted. CreditArrangement
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

Code samples

# You can also use wget
curl -X POST /creditarrangements:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /creditarrangements:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/creditarrangements:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/creditarrangements:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/creditarrangements:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/creditarrangements:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditarrangements:search

Search credit arrangements

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "id",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "creationDate",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) CreditArrangementSearchCriteria The criteria to search the credit arrangements. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "amount": 0,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "availableCreditAmount": 0,
    "closedDate": "2016-09-06T13:37:50+03:00",
    "consumedCreditAmount": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "encodedKey": "string",
    "expireDate": "2016-09-06T13:37:50+03:00",
    "exposureLimitType": "APPROVED_AMOUNT",
    "holderKey": "string",
    "holderType": "CLIENT",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "notes": "string",
    "startDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING_APPROVAL",
    "subState": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of credit arrangements search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CreditArrangement] [Represents a credit arrangement.] none
» amount (required) number The maximum credit amount the client can be exposed to. none
» approvedDate string(date-time) The date when the credit arrangement was approved. read-only
» availableCreditAmount number The available amount of the credit arrangement. read-only
» closedDate string(date-time) The date when the credit arrangement was closed. read-only
» consumedCreditAmount number The consumed amount of the credit arrangement, which is calculated as the difference between the amount and available amount. read-only
» creationDate string(date-time) The date when the credit arrangement was created. read-only
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the credit arrangement, it is auto generated, and unique. read-only
» expireDate (required) string(date-time) The date when the credit arrangement expires. none
» exposureLimitType string The type of exposure limit calculation method used for the credit arrangement. none
» holderKey (required) string The encoded key of the credit arrangement holder (individual client or group). none
» holderType (required) string The type of the credit arrangement holder (individual client or group). none
» id string The ID of credit arrangement, can be generated and customized, and must be unique. none
» lastModifiedDate string(date-time) The last date when the credit arrangement was modified. read-only
» notes string The notes or description of the credit arrangement. none
» startDate (required) string(date-time) The start date from which the credit arrangement became active. none
» state string The state of the credit arrangement. read-only
» subState string The substate of credit arrangement. read-only

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
exposureLimitType APPROVED_AMOUNT
exposureLimitType OUTSTANDING_AMOUNT
holderType CLIENT
holderType GROUP
state PENDING_APPROVAL
state APPROVED
state ACTIVE
state CLOSED
state WITHDRAWN
state REJECTED
subState PENDING_APPROVAL
subState APPROVED
subState ACTIVE
subState CLOSED
subState WITHDRAWN
subState REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

addAccount (Credit Arrangements)

Code samples

# You can also use wget
curl -X POST /creditarrangements/{creditArrangementId}:addAccount \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /creditarrangements/{creditArrangementId}:addAccount HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}:addAccount',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/creditarrangements/{creditArrangementId}:addAccount',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/creditarrangements/{creditArrangementId}:addAccount', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/creditarrangements/{creditArrangementId}:addAccount', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}:addAccount");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/creditarrangements/{creditArrangementId}:addAccount", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditarrangements/{creditArrangementId}:addAccount

Add account to credit arrangement

Body parameter

{
  "accountId": "string",
  "accountType": "LOAN"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
creditArrangementId (required) string The ID or encoded key of the credit arrangement for an account to be added. path
body (required) AddCreditArrangementAccountInput The account ID and type to be added to the credit arrangement. body

Example responses

200 Response

{
  "depositAccounts": [
    {
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PENDING_APPROVAL",
      "accountType": "CURRENT_ACCOUNT",
      "accruedAmounts": {
        "interestAccrued": 0,
        "negativeInterestAccrued": 0,
        "overdraftInterestAccrued": 0,
        "technicalOverdraftInterestAccrued": 0
      },
      "activationDate": "2016-09-06T13:37:50+03:00",
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "availableBalance": 0,
        "blockedBalance": 0,
        "feesDue": 0,
        "forwardAvailableBalance": 0,
        "holdBalance": 0,
        "lockedBalance": 0,
        "overdraftAmount": 0,
        "overdraftInterestDue": 0,
        "technicalOverdraftAmount": 0,
        "technicalOverdraftInterestDue": 0,
        "totalBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "id": "string",
      "interestSettings": {
        "interestPaymentSettings": {
          "interestPaymentDates": [
            {
              "day": 0,
              "month": 0
            }
          ],
          "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
        },
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "internalControls": {
        "maxDepositBalance": 0,
        "maxWithdrawalAmount": 0,
        "recommendedDepositAmount": 0,
        "targetAmount": 0
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "linkedSettlementAccountKeys": [
        "string"
      ],
      "lockedDate": "2016-09-06T13:37:50+03:00",
      "maturityDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "notes": "string",
      "overdraftInterestSettings": {
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "overdraftSettings": {
        "allowOverdraft": true,
        "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
        "overdraftLimit": 0
      },
      "productTypeKey": "string",
      "withholdingTaxSourceKey": "string"
    }
  ],
  "loanAccounts": [
    {
      "accountArrearsSettings": {
        "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
        "encodedKey": "string",
        "monthlyToleranceDay": 0,
        "nonWorkingDaysMethod": "INCLUDED",
        "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
        "toleranceFloorAmount": 0,
        "tolerancePercentageOfOutstandingPrincipal": 0,
        "tolerancePeriod": 0
      },
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PARTIAL_APPLICATION",
      "accountSubState": "PARTIALLY_DISBURSED",
      "accruedInterest": 0,
      "accruedPenalty": 0,
      "activationTransactionKey": "string",
      "allowOffset": true,
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "arrearsTolerancePeriod": 0,
      "assets": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "originalAmount": 0,
          "originalCurrency": {
            "code": "AED",
            "currencyCode": "string"
          }
        }
      ],
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "feesBalance": 0,
        "feesDue": 0,
        "feesPaid": 0,
        "holdBalance": 0,
        "interestBalance": 0,
        "interestDue": 0,
        "interestFromArrearsBalance": 0,
        "interestFromArrearsDue": 0,
        "interestFromArrearsPaid": 0,
        "interestPaid": 0,
        "penaltyBalance": 0,
        "penaltyDue": 0,
        "penaltyPaid": 0,
        "principalBalance": 0,
        "principalDue": 0,
        "principalPaid": 0,
        "redrawBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "daysInArrears": 0,
      "daysLate": 0,
      "disbursementDetails": {
        "disbursementDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
        "transactionDetails": {
          "encodedKey": "string",
          "internalTransfer": true,
          "targetDepositAccountKey": "string",
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        }
      },
      "encodedKey": "string",
      "fundingSources": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "id": "string",
          "interestCommission": 0,
          "sharePercentage": 0
        }
      ],
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "guarantors": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT"
        }
      ],
      "id": "string",
      "interestAccruedInBillingCycle": 0,
      "interestCommission": 0,
      "interestFromArrearsAccrued": 0,
      "interestSettings": {
        "accountInterestRateSettings": [
          {
            "encodedKey": "string",
            "indexSourceKey": "string",
            "interestRate": 0,
            "interestRateCeilingValue": 0,
            "interestRateFloorValue": 0,
            "interestRateReviewCount": 0,
            "interestRateReviewUnit": "DAYS",
            "interestRateSource": "FIXED_INTEREST_RATE",
            "interestSpread": 0,
            "validFrom": "2016-09-06T13:37:50+03:00"
          }
        ],
        "accrueInterestAfterMaturity": true,
        "accrueLateInterest": true,
        "interestApplicationMethod": "AFTER_DISBURSEMENT",
        "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
        "interestCalculationMethod": "FLAT",
        "interestChargeFrequency": "ANNUALIZED",
        "interestRate": 0,
        "interestRateChangePMTAdjustmentThreshold": {
          "method": "WORKING_DAYS",
          "numberOfDays": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "interestType": "SIMPLE_INTEREST"
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastLockedDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
      "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
      "loanAmount": 0,
      "loanName": "string",
      "lockedAccountTotalDueType": "BALANCE_AMOUNT",
      "lockedOperations": [
        "APPLY_INTEREST"
      ],
      "migrationEventKey": "string",
      "modifyInterestForFirstInstallment": true,
      "notes": "string",
      "originalAccountKey": "string",
      "paymentHolidaysAccruedInterest": 0,
      "paymentMethod": "HORIZONTAL",
      "penaltySettings": {
        "loanPenaltyCalculationMethod": "NONE",
        "penaltyRate": 0
      },
      "plannedInstallmentFees": [
        {
          "amount": 0,
          "applyOnDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "installmentKey": "string",
          "installmentNumber": 0,
          "predefinedFeeKey": "string"
        }
      ],
      "prepaymentSettings": {
        "applyInterestOnPrepaymentMethod": "AUTOMATIC",
        "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
        "prepaymentRecalculationMethod": "NO_RECALCULATION",
        "principalPaidInstallmentStatus": "PARTIALLY_PAID"
      },
      "principalPaymentSettings": {
        "amount": 0,
        "encodedKey": "string",
        "includeFeesInFloorAmount": true,
        "includeInterestInFloorAmount": true,
        "percentage": 0,
        "principalCeilingValue": 0,
        "principalFloorValue": 0,
        "principalPaymentMethod": "FLAT",
        "totalDueAmountFloor": 0,
        "totalDuePayment": "FLAT"
      },
      "productTypeKey": "string",
      "redrawSettings": {
        "restrictNextDueWithdrawal": true
      },
      "rescheduledAccountKey": "string",
      "scheduleSettings": {
        "billingCycle": {
          "days": [
            0
          ]
        },
        "defaultFirstRepaymentDueDateOffset": 0,
        "fixedDaysOfMonth": [
          0
        ],
        "gracePeriod": 0,
        "gracePeriodType": "NONE",
        "hasCustomSchedule": true,
        "paymentPlan": [
          {
            "amount": 0,
            "encodedKey": "string",
            "toInstallment": 0
          }
        ],
        "periodicPayment": 0,
        "previewSchedule": {
          "numberOfPreviewedInstalments": 0
        },
        "principalRepaymentInterval": 0,
        "repaymentInstallments": 0,
        "repaymentPeriodCount": 0,
        "repaymentPeriodUnit": "DAYS",
        "repaymentScheduleMethod": "NONE",
        "scheduleDueDatesMethod": "INTERVAL",
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "settlementAccountKey": "string",
      "taxRate": 0,
      "terminationDate": "2016-09-06T13:37:50+03:00",
      "tranches": [
        {
          "amount": 0,
          "disbursementDetails": {
            "disbursementTransactionKey": "string",
            "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": "string",
          "fees": [
            {
              "amount": 0,
              "encodedKey": "string",
              "percentage": 0,
              "predefinedFeeEncodedKey": "string"
            }
          ],
          "trancheNumber": 0
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Account assigned to the credit arrangement. CreditArrangementAccounts
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement or account not found. ErrorResponse

getById (Credit Arrangements)

Code samples

# You can also use wget
curl -X GET /creditarrangements/{creditArrangementId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /creditarrangements/{creditArrangementId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/creditarrangements/{creditArrangementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/creditarrangements/{creditArrangementId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/creditarrangements/{creditArrangementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/creditarrangements/{creditArrangementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditarrangements/{creditArrangementId}

Get credit arrangement

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "amount": 0,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "availableCreditAmount": 0,
  "closedDate": "2016-09-06T13:37:50+03:00",
  "consumedCreditAmount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING_APPROVAL",
  "subState": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
200 OK Credit arrangement returned. CreditArrangement
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

update (Credit Arrangements)

Code samples

# You can also use wget
curl -X PUT /creditarrangements/{creditArrangementId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /creditarrangements/{creditArrangementId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/creditarrangements/{creditArrangementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/creditarrangements/{creditArrangementId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/creditarrangements/{creditArrangementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/creditarrangements/{creditArrangementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /creditarrangements/{creditArrangementId}

Update credit arrangement

Body parameter

{
  "amount": 0,
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be updated. path
body (required) CreditArrangement Credit arrangement to be updated. body

Example responses

200 Response

{
  "amount": 0,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "availableCreditAmount": 0,
  "closedDate": "2016-09-06T13:37:50+03:00",
  "consumedCreditAmount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING_APPROVAL",
  "subState": "PENDING_APPROVAL"
}

Responses

Status Meaning Description Schema
200 OK Credit arrangement updated. CreditArrangement
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

delete (Credit Arrangements)

Code samples

# You can also use wget
curl -X DELETE /creditarrangements/{creditArrangementId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /creditarrangements/{creditArrangementId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/creditarrangements/{creditArrangementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/creditarrangements/{creditArrangementId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/creditarrangements/{creditArrangementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/creditarrangements/{creditArrangementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /creditarrangements/{creditArrangementId}

Delete credit arrangement

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Credit arrangement deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

patch (Credit Arrangements)

Code samples

# You can also use wget
curl -X PATCH /creditarrangements/{creditArrangementId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /creditarrangements/{creditArrangementId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/creditarrangements/{creditArrangementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/creditarrangements/{creditArrangementId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/creditarrangements/{creditArrangementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/creditarrangements/{creditArrangementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditarrangements/{creditArrangementId}

Partially update credit arrangement

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be updated. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Credit arrangement updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

getSchedule (Credit Arrangements)

Code samples

# You can also use wget
curl -X GET /creditarrangements/{creditArrangementId}/schedule \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /creditarrangements/{creditArrangementId}/schedule HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}/schedule',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/creditarrangements/{creditArrangementId}/schedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/creditarrangements/{creditArrangementId}/schedule', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/creditarrangements/{creditArrangementId}/schedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/creditarrangements/{creditArrangementId}/schedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditarrangements/{creditArrangementId}/schedule

Get credit arrangement schedule

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Credit arrangement schedule returned. CreditArrangementSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

getAllAccounts (Credit Arrangements)

Code samples

# You can also use wget
curl -X GET /creditarrangements/{creditArrangementId}/accounts \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /creditarrangements/{creditArrangementId}/accounts HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/creditarrangements/{creditArrangementId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/creditarrangements/{creditArrangementId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/creditarrangements/{creditArrangementId}/accounts', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/creditarrangements/{creditArrangementId}/accounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/creditarrangements/{creditArrangementId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/creditarrangements/{creditArrangementId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditarrangements/{creditArrangementId}/accounts

Get all loan and deposit accounts linked to credit arrangement

Parameters

Name Type Description In
creditArrangementId (required) string The ID or encoded key of the credit arrangement to be returned. path

Example responses

200 Response

{
  "depositAccounts": [
    {
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PENDING_APPROVAL",
      "accountType": "CURRENT_ACCOUNT",
      "accruedAmounts": {
        "interestAccrued": 0,
        "negativeInterestAccrued": 0,
        "overdraftInterestAccrued": 0,
        "technicalOverdraftInterestAccrued": 0
      },
      "activationDate": "2016-09-06T13:37:50+03:00",
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "availableBalance": 0,
        "blockedBalance": 0,
        "feesDue": 0,
        "forwardAvailableBalance": 0,
        "holdBalance": 0,
        "lockedBalance": 0,
        "overdraftAmount": 0,
        "overdraftInterestDue": 0,
        "technicalOverdraftAmount": 0,
        "technicalOverdraftInterestDue": 0,
        "totalBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "id": "string",
      "interestSettings": {
        "interestPaymentSettings": {
          "interestPaymentDates": [
            {
              "day": 0,
              "month": 0
            }
          ],
          "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
        },
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "internalControls": {
        "maxDepositBalance": 0,
        "maxWithdrawalAmount": 0,
        "recommendedDepositAmount": 0,
        "targetAmount": 0
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "linkedSettlementAccountKeys": [
        "string"
      ],
      "lockedDate": "2016-09-06T13:37:50+03:00",
      "maturityDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "notes": "string",
      "overdraftInterestSettings": {
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "overdraftSettings": {
        "allowOverdraft": true,
        "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
        "overdraftLimit": 0
      },
      "productTypeKey": "string",
      "withholdingTaxSourceKey": "string"
    }
  ],
  "loanAccounts": [
    {
      "accountArrearsSettings": {
        "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
        "encodedKey": "string",
        "monthlyToleranceDay": 0,
        "nonWorkingDaysMethod": "INCLUDED",
        "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
        "toleranceFloorAmount": 0,
        "tolerancePercentageOfOutstandingPrincipal": 0,
        "tolerancePeriod": 0
      },
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PARTIAL_APPLICATION",
      "accountSubState": "PARTIALLY_DISBURSED",
      "accruedInterest": 0,
      "accruedPenalty": 0,
      "activationTransactionKey": "string",
      "allowOffset": true,
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "arrearsTolerancePeriod": 0,
      "assets": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "originalAmount": 0,
          "originalCurrency": {
            "code": "AED",
            "currencyCode": "string"
          }
        }
      ],
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "feesBalance": 0,
        "feesDue": 0,
        "feesPaid": 0,
        "holdBalance": 0,
        "interestBalance": 0,
        "interestDue": 0,
        "interestFromArrearsBalance": 0,
        "interestFromArrearsDue": 0,
        "interestFromArrearsPaid": 0,
        "interestPaid": 0,
        "penaltyBalance": 0,
        "penaltyDue": 0,
        "penaltyPaid": 0,
        "principalBalance": 0,
        "principalDue": 0,
        "principalPaid": 0,
        "redrawBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "daysInArrears": 0,
      "daysLate": 0,
      "disbursementDetails": {
        "disbursementDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
        "transactionDetails": {
          "encodedKey": "string",
          "internalTransfer": true,
          "targetDepositAccountKey": "string",
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        }
      },
      "encodedKey": "string",
      "fundingSources": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "id": "string",
          "interestCommission": 0,
          "sharePercentage": 0
        }
      ],
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "guarantors": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT"
        }
      ],
      "id": "string",
      "interestAccruedInBillingCycle": 0,
      "interestCommission": 0,
      "interestFromArrearsAccrued": 0,
      "interestSettings": {
        "accountInterestRateSettings": [
          {
            "encodedKey": "string",
            "indexSourceKey": "string",
            "interestRate": 0,
            "interestRateCeilingValue": 0,
            "interestRateFloorValue": 0,
            "interestRateReviewCount": 0,
            "interestRateReviewUnit": "DAYS",
            "interestRateSource": "FIXED_INTEREST_RATE",
            "interestSpread": 0,
            "validFrom": "2016-09-06T13:37:50+03:00"
          }
        ],
        "accrueInterestAfterMaturity": true,
        "accrueLateInterest": true,
        "interestApplicationMethod": "AFTER_DISBURSEMENT",
        "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
        "interestCalculationMethod": "FLAT",
        "interestChargeFrequency": "ANNUALIZED",
        "interestRate": 0,
        "interestRateChangePMTAdjustmentThreshold": {
          "method": "WORKING_DAYS",
          "numberOfDays": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "interestType": "SIMPLE_INTEREST"
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastLockedDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
      "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
      "loanAmount": 0,
      "loanName": "string",
      "lockedAccountTotalDueType": "BALANCE_AMOUNT",
      "lockedOperations": [
        "APPLY_INTEREST"
      ],
      "migrationEventKey": "string",
      "modifyInterestForFirstInstallment": true,
      "notes": "string",
      "originalAccountKey": "string",
      "paymentHolidaysAccruedInterest": 0,
      "paymentMethod": "HORIZONTAL",
      "penaltySettings": {
        "loanPenaltyCalculationMethod": "NONE",
        "penaltyRate": 0
      },
      "plannedInstallmentFees": [
        {
          "amount": 0,
          "applyOnDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "installmentKey": "string",
          "installmentNumber": 0,
          "predefinedFeeKey": "string"
        }
      ],
      "prepaymentSettings": {
        "applyInterestOnPrepaymentMethod": "AUTOMATIC",
        "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
        "prepaymentRecalculationMethod": "NO_RECALCULATION",
        "principalPaidInstallmentStatus": "PARTIALLY_PAID"
      },
      "principalPaymentSettings": {
        "amount": 0,
        "encodedKey": "string",
        "includeFeesInFloorAmount": true,
        "includeInterestInFloorAmount": true,
        "percentage": 0,
        "principalCeilingValue": 0,
        "principalFloorValue": 0,
        "principalPaymentMethod": "FLAT",
        "totalDueAmountFloor": 0,
        "totalDuePayment": "FLAT"
      },
      "productTypeKey": "string",
      "redrawSettings": {
        "restrictNextDueWithdrawal": true
      },
      "rescheduledAccountKey": "string",
      "scheduleSettings": {
        "billingCycle": {
          "days": [
            0
          ]
        },
        "defaultFirstRepaymentDueDateOffset": 0,
        "fixedDaysOfMonth": [
          0
        ],
        "gracePeriod": 0,
        "gracePeriodType": "NONE",
        "hasCustomSchedule": true,
        "paymentPlan": [
          {
            "amount": 0,
            "encodedKey": "string",
            "toInstallment": 0
          }
        ],
        "periodicPayment": 0,
        "previewSchedule": {
          "numberOfPreviewedInstalments": 0
        },
        "principalRepaymentInterval": 0,
        "repaymentInstallments": 0,
        "repaymentPeriodCount": 0,
        "repaymentPeriodUnit": "DAYS",
        "repaymentScheduleMethod": "NONE",
        "scheduleDueDatesMethod": "INTERVAL",
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "settlementAccountKey": "string",
      "taxRate": 0,
      "terminationDate": "2016-09-06T13:37:50+03:00",
      "tranches": [
        {
          "amount": 0,
          "disbursementDetails": {
            "disbursementTransactionKey": "string",
            "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": "string",
          "fees": [
            {
              "amount": 0,
              "encodedKey": "string",
              "percentage": 0,
              "predefinedFeeEncodedKey": "string"
            }
          ],
          "trancheNumber": 0
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Credit arrangement accounts returned. CreditArrangementAccounts
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Credit arrangement not found. ErrorResponse

Crons

Allows you to trigger end of day (EOD) processing on the most recent snapshot of your system's data.

A daily snapshot is taken at midnight in your organization's time zone.

runHourlyAndEndOfDayCrons (Crons)

Code samples

# You can also use wget
curl -X POST /crons/eod:run \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /crons/eod:run HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/crons/eod:run',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/crons/eod:run',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/crons/eod:run', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/crons/eod:run', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/crons/eod:run");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/crons/eod:run", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /crons/eod:run

Trigger hourly and end of day Processing

Example responses

202 Response

{
  "state": "QUEUED"
}

Responses

Status Meaning Description Schema
202 Accepted Hourly and end of day processing triggered TriggerHourlyAndEndOfDayProcessingResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
500 Internal Server Error Internal Error ErrorResponse

Currencies

Allows you to retrieve, create, update, or delete currencies. For more information, see Currencies in our User Guide.

You may define three types of currencies in Mambu, fiat currencies, cryptocurrencies, and non-traditional currencies. Fiat currencies are available to all customers. The cryptocurrencies and non-traditional currencies features are two separate features you may request access to by contacting your Customer Success Manager to discuss your requirements. For more information, see Mambu Release Cycle - Feature Release Status.

getAll (Currencies)

Code samples

# You can also use wget
curl -X GET /currencies \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /currencies HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/currencies',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/currencies',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/currencies', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/currencies', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/currencies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currencies

Get all currencies

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
type string The type of the currency. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
type FIAT_CURRENCY
type CRYPTOCURRENCY
type NON_TRADITIONAL_CURRENCY

Example responses

200 Response

[
  {
    "baseCurrency": true,
    "code": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currencySymbolPosition": "BEFORE_NUMBER",
    "digitsAfterDecimal": 0,
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "name": "string",
    "numericCode": "string",
    "symbol": "string",
    "type": "FIAT_CURRENCY"
  }
]

Responses

Status Meaning Description Schema
200 OK Currencies returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CurrencyDetails] [Represents a currency.] none
» baseCurrency (required) boolean TRUE if the currency is the base currency, FALSE otherwise. It cannot be changed and it's a read-only field not required for update operations. read-only
» code (required) string The currency code, which cannot be changed once the currency is created. none
» creationDate string(date-time) The date this currency was created. It cannot be changed and it's a read-only field not required for update operations. read-only
» currencySymbolPosition (required) string The currency symbol position. none
» digitsAfterDecimal integer(int32) The number of digits that are supported for a given currency. none
» lastModifiedDate string(date-time) The last date this currency was modified. It's updated automatically and it's a read-only field not required for update operations. read-only
» name (required) string The name of the currency. none
» numericCode string The currency numeric code. none
» symbol (required) string The currency symbol. none
» type (required) string The type of the currency. none

Enumerated Values

Property Value
currencySymbolPosition BEFORE_NUMBER
currencySymbolPosition AFTER_NUMBER
type FIAT_CURRENCY
type CRYPTOCURRENCY
type NON_TRADITIONAL_CURRENCY

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Currencies)

Code samples

# You can also use wget
curl -X POST /currencies \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /currencies HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/currencies',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/currencies',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/currencies', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/currencies', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/currencies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /currencies

Create currency

Body parameter

{
  "code": "string",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CurrencyDetails Currency to be created. body

Example responses

201 Response

{
  "baseCurrency": true,
  "code": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Currency was created. CurrencyDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

get (Currencies)

Code samples

# You can also use wget
curl -X GET /currencies/{currencyCode} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /currencies/{currencyCode} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/currencies/{currencyCode}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/currencies/{currencyCode}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/currencies/{currencyCode}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/currencies/{currencyCode}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies/{currencyCode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/currencies/{currencyCode}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currencies/{currencyCode}

Get currency by code

Parameters

Name Type Description In
currencyCode (required) string The currency code. path

Example responses

200 Response

{
  "baseCurrency": true,
  "code": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Responses

Status Meaning Description Schema
200 OK Currency returned. CurrencyDetails
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

update (Currencies)

Code samples

# You can also use wget
curl -X PUT /currencies/{currencyCode} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /currencies/{currencyCode} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/currencies/{currencyCode}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/currencies/{currencyCode}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/currencies/{currencyCode}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/currencies/{currencyCode}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies/{currencyCode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/currencies/{currencyCode}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /currencies/{currencyCode}

Update currency by code

Body parameter

{
  "code": "string",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Parameters

Name Type Description In
currencyCode (required) string The currency code. path
body (required) CurrencyDetails Currency details to be updated. body

Example responses

200 Response

{
  "baseCurrency": true,
  "code": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Responses

Status Meaning Description Schema
200 OK Updated currency. CurrencyDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

delete (Currencies)

Code samples

# You can also use wget
curl -X DELETE /currencies/{currencyCode} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /currencies/{currencyCode} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/currencies/{currencyCode}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/currencies/{currencyCode}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/currencies/{currencyCode}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/currencies/{currencyCode}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/currencies/{currencyCode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/currencies/{currencyCode}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /currencies/{currencyCode}

Delete currency by code

Parameters

Name Type Description In
currencyCode (required) string The currency code. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Currency deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

Currencies Configuration

Retrieve and update the configuration for currencies.

Currencies are set to express monetary values in Mambu. For more information about this resource, see Currencies Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Currencies Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/currencies.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/currencies.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/currencies.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/currencies.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/currencies.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/currencies.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/currencies.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/currencies.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/currencies.yaml

Get currencies configuration

Parameters

Name Type Description In
startDate string(date) The start date to consider when getting the configuration. query

Example responses

An example of a currencies configuration

---
baseCurrency:
  code: "EUR"
  name: "Euro"
  symbol: "€"
  symbolPosition: "BEFORE_NUMBER"
foreignCurrencies:
- currency:
    code: "USD"
    name: "United States dollar"
    symbol: "$"
    symbolPosition: "BEFORE_NUMBER"
  exchangeRates:
  - startDate: "2021-04-14T12:36:58+02:00"
    buyRate: 1.1964
    sellRate: 1.1969

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Currencies configuration returned. CurrenciesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currencies configuration not found. ErrorResponse

update (Currencies Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/currencies.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/currencies.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/currencies.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/currencies.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/currencies.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/currencies.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/currencies.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/currencies.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/currencies.yaml

Update currencies configuration

Body parameter

An example of a currencies configuration

---
baseCurrency:
  code: "EUR"
  name: "Euro"
  symbol: "€"
  symbolPosition: "BEFORE_NUMBER"
foreignCurrencies:
- currency:
    code: "USD"
    name: "United States dollar"
    symbol: "$"
    symbolPosition: "BEFORE_NUMBER"
  exchangeRates:
  - startDate: "2021-04-14T12:36:58+02:00"
    buyRate: 1.1964
    sellRate: 1.1969

Parameters

Name Type Description In
body CurrenciesConfiguration Represents the currencies configuration. body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Currencies configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currencies configuration not found. ErrorResponse

Response Schema

Custom Fields

Allows you to get custom field definitions.

getById (Custom Fields)

Code samples

# You can also use wget
curl -X GET /customfields/{customfieldId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /customfields/{customfieldId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/customfields/{customfieldId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/customfields/{customfieldId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/customfields/{customfieldId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/customfields/{customfieldId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/customfields/{customfieldId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/customfields/{customfieldId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /customfields/{customfieldId}

Get custom field definition

Parameters

Name Type Description In
customfieldId (required) string The ID or encoded key of the custom field definition to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "availableFor": "CLIENT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "dependentFieldKey": "string",
  "displaySettings": {
    "builtInId": "FIRST_NAME",
    "description": "string",
    "displayName": "string",
    "fieldSize": "SHORT",
    "position": 0
  },
  "editRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  },
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "selectionOptions": [
    {
      "availableOptions": [
        {
          "score": 0,
          "selectionKey": "string",
          "value": "string"
        }
      ],
      "forSelectionKey": "string",
      "forValue": "string"
    }
  ],
  "state": "ACTIVE",
  "type": "FREE_TEXT",
  "usage": [
    {
      "default": true,
      "objectKey": "string",
      "required": true
    }
  ],
  "valueValidationSettings": {
    "unique": true,
    "validationPattern": "string"
  },
  "viewRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Custom field definition returned. CustomFieldMeta
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Custom field definition not found. ErrorResponse

Custom Field Sets

Allows you to get custom field sets and their associated custom field definitions.

getAllBySetId (Custom Field Sets)

Code samples

# You can also use wget
curl -X GET /customfieldsets/{customFieldSetId}/customfields \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /customfieldsets/{customFieldSetId}/customfields HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/customfieldsets/{customFieldSetId}/customfields',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/customfieldsets/{customFieldSetId}/customfields',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/customfieldsets/{customFieldSetId}/customfields', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/customfieldsets/{customFieldSetId}/customfields', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/customfieldsets/{customFieldSetId}/customfields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/customfieldsets/{customFieldSetId}/customfields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /customfieldsets/{customFieldSetId}/customfields

Get custom field definitions by custom field set

Parameters

Name Type Description In
customFieldSetId (required) string The encoded key or ID of the custom field set used to get all the custom field definitions of that set. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "availableFor": "CLIENT",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "dependentFieldKey": "string",
    "displaySettings": {
      "builtInId": "FIRST_NAME",
      "description": "string",
      "displayName": "string",
      "fieldSize": "SHORT",
      "position": 0
    },
    "editRights": {
      "allUsers": true,
      "roles": [
        "string"
      ]
    },
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "selectionOptions": [
      {
        "availableOptions": [
          {
            "score": 0,
            "selectionKey": "string",
            "value": "string"
          }
        ],
        "forSelectionKey": "string",
        "forValue": "string"
      }
    ],
    "state": "ACTIVE",
    "type": "FREE_TEXT",
    "usage": [
      {
        "default": true,
        "objectKey": "string",
        "required": true
      }
    ],
    "valueValidationSettings": {
      "unique": true,
      "validationPattern": "string"
    },
    "viewRights": {
      "allUsers": true,
      "roles": [
        "string"
      ]
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Custom field list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Custom field set not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CustomFieldMeta] [Represents a custom field definition.] none
» availableFor string The entity type the custom field definition is associated with. none
» creationDate string(date-time) The date the custom field definition was created. none
» dependentFieldKey string Can be defined only for selection custom field definitions. Indicates the parent custom field definition on which the dependency is based upon. none
» displaySettings CustomFieldDisplaySettings Represents the display settings of a custom field definition. none
»» builtInId string The original ID of the built-in custom field definition. none
»» description string The user-provided description of the custom field definition. none
»» displayName string The user-provided name of the custom field definition. none
»» fieldSize string The custom field value display size in the UI. none
»» position integer(int32) The custom field definition position in the custom field set. none
» editRights CustomFieldEditRights Represents the edit rights for custom field values for a particular custom field definition. none
»» allUsers boolean TRUE if custom field values of a custom field definition can be edited by all users, FALSE if custom field values of a custom field definition can only be edited by users with the specified roles. none
»» roles [string] The list of IDs of the roles that have edit rights for the custom field values of a custom field definition if it is not accessible by all users. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» id string The user-defined ID, which is globally unique. none
» lastModifiedDate string(date-time) The date the latest update was performed for this custom field definition. none
» selectionOptions [CustomFieldSelectionOption] Can be defined only for selection custom field definitions. Indicates that the field has predefined selections and only those can be used to populate it. none
»» availableOptions [CustomFieldAvailableOption] The list of options that that are available for the dependent selection custom field value based on the selected parent custom field value. none
»»» score number The score of the option. none
»»» selectionKey string The system-generated ID of the option. none
»»» value string The name of the option. none
»» forSelectionKey string The key for the parent selection custom field value. none
»» forValue string The parent selection custom field value. none
» state string Indicates whether the custom field definition is active or inactive. none
» type string The type of custom field definition. none
» usage [CustomFieldUsage] Represents the usage settings of a custom field definition. none
»» default boolean TRUE if the field is displayed by default on create or edit pages for this record type, FALSE otherwise. none
»» objectKey string The key of the record type. none
»» required boolean TRUE if the field is required for this record type, FALSE otherwise. none
» valueValidationSettings CustomFieldValueValidationSettings Represents the settings for field input validation. none
»» unique boolean TRUE if this field does not allow duplicate values, FALSE otherwise. none
»» validationPattern string The expected format for the input. none
» viewRights CustomFieldViewRights Represents the view rights for custom field values for a particular custom field definition. none
»» allUsers boolean TRUE if custom field values of a custom field definition can be viewed by all users, FALSE if custom field values of a custom field definition can only be viewed by users with the specified roles. none
»» roles [string] Lists the IDs of the roles that have view rights for the custom field values of a custom field definition if it is not accessible by all users. none

Enumerated Values

Property Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER
builtInId FIRST_NAME
builtInId MIDDLE_NAME
builtInId LAST_NAME
builtInId BIRTHDATE
builtInId GENDER
builtInId MOBILE_PHONE
builtInId MOBILE_PHONE_2
builtInId HOME_PHONE
builtInId EMAIL_ADDRESS
fieldSize SHORT
fieldSize LONG
state ACTIVE
state INACTIVE
type FREE_TEXT
type SELECTION
type NUMBER
type CHECKBOX
type DATE
type DATE_TIME
type CLIENT_LINK
type GROUP_LINK
type USER_LINK

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getAll (Custom Field Sets)

Code samples

# You can also use wget
curl -X GET /customfieldsets \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /customfieldsets HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/customfieldsets',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/customfieldsets',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/customfieldsets', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/customfieldsets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/customfieldsets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/customfieldsets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /customfieldsets

Get custom field sets

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
availableFor array[string] The entity that the custom field set is associated with query
displaySettings.builtIn boolean Indicates if it is a built in custom field set or not query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER

Example responses

200 Response

[
  {
    "availableFor": "CLIENT",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "customFields": [
      {
        "encodedKey": "string",
        "id": "string"
      }
    ],
    "description": "string",
    "displaySettings": {
      "builtIn": true,
      "displayName": "string",
      "position": 0
    },
    "encodedKey": "string",
    "fieldSetType": "STANDARD",
    "id": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Custom field sets returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CustomFieldSetMeta] [Model representation of a Custom Field Set] none
» availableFor string Indicates the entity that the custom field set is associated with (eg. clients or any entity that allows CF definition) none
» creationDate string(date-time) Date at which the custom field set was created read-only
» customFields [CustomFieldIdentity] This section lists all the custom fields associated with this set none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» id string User-provided ID of the custom field none
» description string Free text field to store eventual notes with regard to custom field group purpose/details none
» displaySettings CustomFieldSetDisplaySettings Wrapper holds the display properties of a Custom Field Set none
»» builtIn boolean This is used only for builtIn custom field sets and can have two possible values:
True - when this is a "mambu" field set,
False - when this is a tenant-defined field set
none
»» displayName string User-provided name of the custom field set none
»» position integer(int32) Represents the order of the custom field set (starts from 0) none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» fieldSetType string The usage decides how the custom field set will be used in the UI and how the custom field values will be stored. For STANDARD set type the custom field set can be used only once (i.e Personal Information). For GROUPED set type the custom field set can be used multiple times (i.e Addresses). For further details please see here none
» id string User-defined ID, gobally unique none

Enumerated Values

Property Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER
fieldSetType STANDARD
fieldSetType GROUPED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Custom Fields Configuration

Get and update the custom field definitions configuration.

Custom field definitions are additional fields you can create in order to capture any additional information required for your business processes. Every custom field definition must be a part of a custom field set. For more information about this resource, see Custom Fields Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

getTemplate (Custom Fields Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/customfields/template.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/customfields/template.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/customfields/template.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/customfields/template.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/customfields/template.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/customfields/template.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/customfields/template.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/customfields/template.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/customfields/template.yaml

Get custom field definitions configuration template

Example responses

a custom field definitions configuration as code template

---
customFieldSets:
- id: null
  name: null
  description: null
  type: null
  availableFor: null
  customFields:
  - id: null
    type: null
    state: null
    validationRules:
      validationPattern: null
      unique: false
    displaySettings:
      displayName: null
      description: null
      fieldSize: null
    usage:
    - id: null
      required: null
      default: null
    viewRights:
      roles: null
      allUsers: null
    editRights:
      roles: null
      allUsers: null
    dependentFieldId: null
    selectionOptions:
    - forSelectionId: null
      availableOptions:
      - selectionId: null
        value: null
        score: null
    required: null
    default: null

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Custom field definitions configuration template returned. CustomFieldsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

get (Custom Fields Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/customfields.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/customfields.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/customfields.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/customfields.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/customfields.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/customfields.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/customfields.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/customfields.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/customfields.yaml

Get custom field definitions configuration

Parameters

Name Type Description In
availableFor array[string] The entity type of the custom field sets to be returned. If it is used multiple times, it will return all the custom field sets of all the specified entity types. If the parameter is absent, all the custom field sets will be returned. query

Enumerated Values

Parameter Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER

Example responses

a single set of custom field definitions

---
customFieldSets:
- id: "_Example_Custom_Fields_Clients"
  name: "Example Custom Fields"
  type: "SINGLE"
  availableFor: "CLIENT"
  customFields:
  - id: "Example_Free_Text_Field_Clients"
    type: "FREE_TEXT"
    state: "ACTIVE"
    validationRules:
      unique: false
    displaySettings:
      displayName: "Free Text"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Number_Field_Clients"
    type: "NUMBER"
    state: "ACTIVE"
    displaySettings:
      displayName: "Number Field"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Checkbox_Field_Clients"
    type: "CHECKBOX"
    state: "ACTIVE"
    displaySettings:
      displayName: "Checkbox"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Select_Field_Clients"
    type: "SELECTION"
    state: "ACTIVE"
    displaySettings:
      displayName: "Select"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "659916830"
        value: "Option 1"
        score: 0
      - selectionId: "769251644"
        value: "Option 2"
        score: 1
      - selectionId: "955281307"
        value: "Option 3"
        score: 10
    required: false
    default: false

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Custom field definitions configuration returned. CustomFieldsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Custom Fields Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/customfields.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml' \
  -H 'X-Mambu-Async: true' \
  -H 'X-Mambu-Callback: string'

PUT /configuration/customfields.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml
X-Mambu-Async: true
X-Mambu-Callback: string

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async':'true',
  'X-Mambu-Callback':'string'

};

$.ajax({
  url: '/configuration/customfields.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async' => 'true',
  'X-Mambu-Callback' => 'string'
}

result = RestClient.put '/configuration/customfields.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async': 'true',
  'X-Mambu-Callback': 'string'
}

r = requests.put('/configuration/customfields.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    'X-Mambu-Async' => 'true',
    'X-Mambu-Callback' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/customfields.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/customfields.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        "X-Mambu-Async": []string{"true"},
        "X-Mambu-Callback": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/customfields.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/customfields.yaml

Update custom field definitions configuration

Body parameter

an array of custom field definitions and custom field sets for various entities

---
customFieldSets:
- id: "_Example_Custom_Fields_Clients"
  name: "Example Custom Fields"
  type: "SINGLE"
  availableFor: "CLIENT"
  customFields:
  - id: "Example_Free_Text_Field_Clients"
    type: "FREE_TEXT"
    state: "ACTIVE"
    validationRules:
      unique: false
    displaySettings:
      displayName: "Free Text"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Number_Field_Clients"
    type: "NUMBER"
    state: "ACTIVE"
    displaySettings:
      displayName: "Number Field"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Checkbox_Field_Clients"
    type: "CHECKBOX"
    state: "ACTIVE"
    displaySettings:
      displayName: "Checkbox"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Select_Field_Clients"
    type: "SELECTION"
    state: "ACTIVE"
    displaySettings:
      displayName: "Select"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "659916830"
        value: "Option 1"
        score: 0
      - selectionId: "769251644"
        value: "Option 2"
        score: 1
      - selectionId: "955281307"
        value: "Option 3"
        score: 10
    required: false
    default: false
- id: "_Example_Custom_Fields_Groups"
  name: "Example Custom Fields"
  type: "SINGLE"
  availableFor: "GROUP"
  customFields:
  - id: "Example_Free_Text_Field_Groups"
    type: "FREE_TEXT"
    state: "ACTIVE"
    validationRules:
      unique: false
    displaySettings:
      displayName: "Free Text"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Number_Field_Groups"
    type: "NUMBER"
    state: "ACTIVE"
    displaySettings:
      displayName: "Number Field"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Checkbox_Field_Groups"
    type: "CHECKBOX"
    state: "ACTIVE"
    displaySettings:
      displayName: "Checkbox"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Select_Field_Groups"
    type: "SELECTION"
    state: "ACTIVE"
    displaySettings:
      displayName: "Select"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "659916830"
        value: "Option 1"
        score: 0
      - selectionId: "769251644"
        value: "Option 2"
        score: 1
      - selectionId: "955281307"
        value: "Option 3"
        score: 10
    required: false
    default: false
- id: "_Example_Custom_Fields_Loans"
  name: "Example Custom Fields"
  type: "SINGLE"
  availableFor: "LOAN_ACCOUNT"
  customFields:
  - id: "Example_Free_Text_Field_Loans"
    type: "FREE_TEXT"
    state: "ACTIVE"
    validationRules:
      unique: false
    displaySettings:
      displayName: "Free Text"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Number_Field_Loans"
    type: "NUMBER"
    state: "ACTIVE"
    displaySettings:
      displayName: "Number Field"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Checkbox_Field_Loans"
    type: "CHECKBOX"
    state: "ACTIVE"
    displaySettings:
      displayName: "Checkbox"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Example_Select_Field_Loans"
    type: "SELECTION"
    state: "ACTIVE"
    displaySettings:
      displayName: "Select"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "659916830"
        value: "Option 1"
        score: 0
      - selectionId: "769251644"
        value: "Option 2"
        score: 1
      - selectionId: "955281307"
        value: "Option 3"
        score: 10
    required: false
    default: false
- id: "_Deposit_Details_Deposit_Account"
  name: "Deposit Details"
  type: "SINGLE"
  availableFor: "DEPOSIT_ACCOUNT"
  customFields:
  - id: "Interest_Deposit_Accounts"
    type: "FREE_TEXT"
    state: "INACTIVE"
    validationRules:
      unique: false
    displaySettings:
      displayName: "Interest"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
  - id: "Deposit_frequency_Deposit_Accoun"
    type: "SELECTION"
    state: "INACTIVE"
    displaySettings:
      displayName: "Deposit frequency"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "998720508"
        value: "Daily"
        score: 4
      - selectionId: "924920961"
        value: "Monthly"
        score: 6
      - selectionId: "107971669"
        value: "Yearly"
        score: 8
    required: false
    default: false
  - id: "Is_more_than_salary_Deposit_Acco"
    type: "CHECKBOX"
    state: "INACTIVE"
    displaySettings:
      displayName: "Is more than salary"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    required: false
    default: false
- id: "_Province_Branches"
  name: "Province"
  type: "SINGLE"
  availableFor: "BRANCH"
  customFields:
  - id: "Province_Branches"
    type: "SELECTION"
    state: "INACTIVE"
    displaySettings:
      displayName: "Province"
      fieldSize: "SHORT"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: true
    selectionOptions:
    - availableOptions:
      - selectionId: "211618648"
        value: "Catamarca"
        score: 0
      - selectionId: "550838126"
        value: "Chaco"
        score: 1
      - selectionId: "073393950"
        value: "Jujuy"
        score: 10
    required: false
    default: false
- id: "_centres_custom_field_set"
  name: "custom field set"
  description: "custom fields for centre"
  type: "SINGLE"
  availableFor: "CENTRE"
  customFields:
  - id: "centre_cf_1"
    type: "FREE_TEXT"
    state: "INACTIVE"
    validationRules:
      validationPattern: "@#$"
      unique: true
    displaySettings:
      displayName: "cf 1"
      description: "a text custom field for a centre"
      fieldSize: "LONG"
    viewRights:
      roles: []
      allUsers: true
    editRights:
      roles: []
      allUsers: false
    required: false
    default: false

Parameters

Name Type Description In
X-Mambu-Async boolean Determines if the API call runs asynchronously. If set to true, updates configuration asynchronously and optionally sends a callback to a provided URL once completed. header
X-Mambu-Callback string Callback URL for an asynchronous API call. Receives notification once the configuration is updated. header
body CustomFieldsConfiguration Model representation of the custom field configuration. The request body must be in YAML format. Please refer to the example provided at the update endpoint of the Custom Fields Configuration resource. body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Custom field definitions configuration updated. None
202 Accepted The request has been accepted for processing. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Custom field definitions configuration not found. ErrorResponse

Response Schema

Database Backup

Allows you to trigger database backups and download them once they are ready.

triggerBackup (Database Backup)

Code samples

# You can also use wget
curl -X POST /database/backup \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /database/backup HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/database/backup',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/database/backup',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/database/backup', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/database/backup', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/database/backup");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/database/backup", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /database/backup

Trigger database backup

Body parameter

{
  "callback": "string",
  "createBackupFromDate": "2016-09-06T13:37:50+03:00",
  "tables": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body TriggerDatabaseBackupRequest The request for triggering a database backup. body

Example responses

202 Response

{
  "state": "QUEUED"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted Database backup triggered. TriggerDatabaseBackupResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

downloadBackup (Database Backup)

Code samples

# You can also use wget
curl -X GET /database/backup/{databaseBackupVersion} \
  -H 'Accept: application/vnd.mambu.v2+zip'

GET /database/backup/{databaseBackupVersion} HTTP/1.1

Accept: application/vnd.mambu.v2+zip

var headers = {
  'Accept':'application/vnd.mambu.v2+zip'

};

$.ajax({
  url: '/database/backup/{databaseBackupVersion}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+zip'
}

result = RestClient.get '/database/backup/{databaseBackupVersion}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+zip'
}

r = requests.get('/database/backup/{databaseBackupVersion}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+zip',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/database/backup/{databaseBackupVersion}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/database/backup/{databaseBackupVersion}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+zip"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/database/backup/{databaseBackupVersion}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /database/backup/{databaseBackupVersion}

Download database backup

Parameters

Name Type Description In
databaseBackupVersion (required) string The version of the database backup. path

Enumerated Values

Parameter Value
databaseBackupVersion LATEST

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Database backup downloaded. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
200 Content-Disposition string The format is - attachment; filename="{static_backup_file_name}.zip"
200 Content-Length integer int32 The length of the request body.
200 Last-Modified string date-time The start date from the last completed backup process.

Deposit Products

When working with products via API we suggest the following approach:

  1. Create or amend the product using the Mambu UI following the Setting up New Deposit Products or Managing Deposit Products articles in our User Guide.
  2. Get the current product configuration by making a GET request and saving the response in a JSON file.
  3. Edit the JSON file, including removing any fields where the value will be generated by the system, for example, creationDate, lastModifiedDate and encodedkey.
  4. Use the PUT or POST API endpoints to create or update the product configuration.

We recommend using Git as a version control system to track changes to your product configurations. Using a Git hosting provider such as GitHub or GitLab will allow you to create a robust workflow around your product configuration files including retaining a full history of changes, the ability to collaborate and comment and allow for peer reviews and sign-offs before changes are finalised.

batchUpdate (Deposit Products)

Code samples

# You can also use wget
curl -X POST /depositproducts/{depositProductId}:batchUpdate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /depositproducts/{depositProductId}:batchUpdate HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/depositproducts/{depositProductId}:batchUpdate',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/depositproducts/{depositProductId}:batchUpdate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/depositproducts/{depositProductId}:batchUpdate', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/depositproducts/{depositProductId}:batchUpdate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts/{depositProductId}:batchUpdate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/depositproducts/{depositProductId}:batchUpdate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /depositproducts/{depositProductId}:batchUpdate

Perform a batch update action on the specified deposit product

Body parameter

{
  "action": "UPDATE_INTEREST_SETTINGS"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositProductId (required) string The ID or encoded key of the deposit product to perform batch update action on. path
body (required) DepositProductAction Specify the batch update action details for a deposit product. body

Example responses

202 Response

{
  "state": "QUEUED"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted The batch update action accepted for the specified deposit product. DepositProductActionResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit product was not found. ErrorResponse

getAll (Deposit Products)

Code samples

# You can also use wget
curl -X GET /depositproducts \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /depositproducts HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/depositproducts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/depositproducts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/depositproducts', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/depositproducts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/depositproducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /depositproducts

Get deposit products

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
branchId string The id of the branch to which the product applies to query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "accountingSettings": {
      "accountingMethod": "NONE",
      "accountingRules": [
        {
          "encodedKey": "string",
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountKey": "string"
        }
      ],
      "interestAccruedAccountingMethod": "NONE"
    },
    "availabilitySettings": {
      "availableFor": [
        "INDIVIDUALS"
      ],
      "branchSettings": {
        "availableProductBranches": [
          "string"
        ],
        "forAllBranches": true
      }
    },
    "category": "PERSONAL_DEPOSIT",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementSettings": {
      "creditArrangementRequirement": "OPTIONAL"
    },
    "currencySettings": {
      "currencies": [
        {
          "code": "AED",
          "currencyCode": "string"
        }
      ]
    },
    "encodedKey": "string",
    "feesSettings": {
      "allowArbitraryFees": true,
      "fees": [
        {
          "accountingRules": [
            {
              "encodedKey": "string",
              "financialResource": "PORTFOLIO_CONTROL",
              "glAccountKey": "string"
            }
          ],
          "amount": 0,
          "amountCalculationFunctionName": "string",
          "amountCalculationMethod": "FLAT",
          "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "feeApplication": "REQUIRED",
          "id": "string",
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "name": "string",
          "state": "ACTIVE",
          "trigger": "MANUAL"
        }
      ]
    },
    "id": "string",
    "interestSettings": {
      "collectInterestWhenLocked": true,
      "daysInYear": "ACTUAL_365_FIXED",
      "interestCalculationBalance": "MINIMUM",
      "interestGainsProvidedEndDate": "1987-04-26",
      "interestGainsProvidedStartDate": "1987-04-26",
      "interestPaidIntoAccount": true,
      "interestPaymentSettings": {
        "interestPaymentDates": [
          {
            "day": 0,
            "month": 0
          }
        ],
        "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
      },
      "interestRateSettings": {
        "accrueInterestAfterMaturity": true,
        "allowNegativeInterestRate": true,
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "endingDay": 0,
            "interestRate": 0
          }
        ]
      },
      "maximumBalance": 0
    },
    "internalControls": {
      "dormancyPeriodDays": 0,
      "maxWithdrawalAmount": 0,
      "openingBalance": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "recommendedDepositAmount": 0
    },
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "maturitySettings": {
      "maturityPeriod": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "maturityPeriodUnit": "DAYS"
    },
    "name": "string",
    "newAccountSettings": {
      "idGeneratorType": "INCREMENTAL_NUMBER",
      "idPattern": "string"
    },
    "notes": "string",
    "offsetSettings": {
      "allowOffset": true
    },
    "overdraftInterestSettings": {
      "daysInYear": "ACTUAL_365_FIXED",
      "interestCalculationBalance": "MINIMUM",
      "interestRateSettings": {
        "indexSourceKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "interestRate": 0
          }
        ]
      }
    },
    "overdraftSettings": {
      "allowOverdraft": true,
      "allowTechnicalOverdraft": true,
      "maxOverdraftLimit": 0
    },
    "state": "ACTIVE",
    "taxSettings": {
      "withholdingTaxEnabled": true
    },
    "templates": [
      {
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "type": "ACCOUNT"
      }
    ],
    "type": "CURRENT_ACCOUNT"
  }
]

Responses

Status Meaning Description Schema
200 OK The deposit products list has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositProduct] [A deposit product defines the terms and constraints on deposit accounts] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» accountingSettings (required) DepositProductAccountingSettings Accounting settings, defines the accounting settings for the product. none
»» accountingMethod (required) string A list of accounting rules for a product. none
»» accountingRules [DepositGLAccountingRule] A list of accounting rules for the product. none
»»» encodedKey string The encoded key of the accounting rule, auto generated, unique. read-only
»»» financialResource (required) string General Ledger Financial Resources used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries none
»»» glAccountKey (required) string The encoded key of the account that is mapped to the financialResource none
»» interestAccruedAccountingMethod string A list of accounting rules for a product. none
» availabilitySettings DepositProductAvailabilitySettings Holds information about product availability. none
»» availableFor [string] Holds the entities this product is available for. i.e Individuals none
»» branchSettings BranchSettings Holds information about branch availability for the product. none
»»» availableProductBranches [string] Holds the encoded keys of the branches this product should be available for. none
»»» forAllBranches boolean Indicates if this product should be available for all branches none
» category string Indicates the category that the product belongs to none
» creationDate string(date-time) The date this product was created none
» creditArrangementSettings CreditArrangementSettings The funding settings, holds the settings regarding the funding for the loan product. none
»» creditArrangementRequirement string Shows whether accounts created after this product can/should be part of a line of credit. none
» currencySettings DepositProductCurrencySettings Currency settings for the product. none
»» currencies [Currency] Currencies that can be used by accounts of this product none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the deposit product, auto generated, unique read-only
» feesSettings DepositProductFeeSettings Defines fees settings for the product. none
»» allowArbitraryFees boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount. none
»» fees [DepositProductPredefinedFee] List of all fees that can be applied for accounts of this loan product. none
»»» accountingRules [DepositGLAccountingRule] A list of accounting rules defined for this fee. If null, product default rules are selected. none
»»» amount number The amount of the fee none
»»» amountCalculationFunctionName string External function none
»»» amountCalculationMethod string The amount from which the fee is calculated using percentageAmount none
»»» applyDateMethod string Shows when a fee should be applied; to be used with monthly deposit fees none
»»» creationDate string(date-time) Shows the creation date of the fee none
»»» encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
»»» feeApplication (required) string The type of fee application when disbursement is applied none
»»» id string The id of the fee none
»»» lastModifiedDate string(date-time) Shows the last modified date of the fee none
»»» name string The name of the fee none
»»» state (required) string Indicates the state of the fee none
»»» trigger (required) string Shows the event that will trigger a fee none
» id (required) string The id of the product, can be generated and customized, unique none
» interestSettings DepositProductInterestSettings The interest settings, defines constraints regarding interest that will be used on the deposit account based on this product. none
»» collectInterestWhenLocked boolean Whether locked accounts still collect Interest or not none
»» daysInYear string How many days in a year should be used for interest calculations none
»» interestCalculationBalance string The balance which is used for the Interest calculation none
»» interestGainsProvidedEndDate string(date) The date when the accounts under this product, will no longer have interest gains provided none
»» interestGainsProvidedStartDate string(date) The date when the accounts of this product will start to have interest gains provided. Starting with this date 0 interest rate is enforced on the accounts of this product. none
»» interestPaidIntoAccount boolean If interest should be payed into the deposit account none
»» interestPaymentSettings InterestPaymentSettings Defines the interest payment settings for the deposit product and for deposits created based on this product none
»»» interestPaymentDates [MonthAndDay] List of all dates on which the interest is payed into deposit account none
»»»» day integer(int32) The day in the month none
»»»» month integer(int32) The month of the year none
»»» interestPaymentPoint string Specifies when the interest should be paid to the deposit account none
»» interestRateSettings DepositProductInterestRateSettings The interest settings, defines constraints regarding interest that will be used on the deposit created based on this product. none
»»» accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date none
»»» allowNegativeInterestRate boolean Indicator whether the deposit product allows negative values for interest rate none
»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestChargeFrequency string The interval used for determining how often is interest charged none
»»» interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
»»» interestRate DecimalInterval Decimal constraints, like min/max/default. none
»»»» defaultValue number The default value, will be used in case no other value was filled in by the user. none
»»»» maxValue number The maximum value. none
»»»» minValue number The minimum value. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit none
»»» interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
»»» interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
»»» interestRateTiers [DepositProductInterestRateTier] The list of interest rate tiers available for the current settings instance none
»»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»»» endingDay integer(int32) The top-limit value for the account period since activation in order to determine if this tier is used or not none
»»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
»» maximumBalance number The maximum balance used for Interest calculation none
» internalControls DepositProductInternalControls Constraints and automated actions and that will be applied on the accounts. none
»» dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
»» maxWithdrawalAmount number Max amount per withdrawal none
»» openingBalance AmountDecimalInterval Decimal constraints, like min/max/default. none
»»» defaultValue number The default value, will be used in case no other value was filled in by the user. none
»»» maxValue number The maximum value. none
»»» minValue number The minimum value. none
»» recommendedDepositAmount number Recommended amount for a deposit none
» lastModifiedDate string(date-time) The last date the product was updated none
» maturitySettings DepositMaturitySettings The maturity settings for the product. none
»» maturityPeriod IntegerInterval Decimal integer, like min/max/default. none
»»» defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
»»» maxValue integer(int32) The maximum value. none
»»» minValue integer(int32) The minimum value. none
»» maturityPeriodUnit string maturity period measurement unit none
» name (required) string The name of the product none
» newAccountSettings (required) DepositNewAccountSettings New Account settings for deposit accounts none
»» idGeneratorType (required) string The type of generator used for IDs creation. none
»» idPattern (required) string The pattern that will be used for ID validation (as referred to as an input mask). none
» notes string Some notes/a description about the product none
» offsetSettings DepositProductOffsetSettings The offset settings, holds information about offset. none
»» allowOffset boolean Specify if the product allow to create accounts which can be used as offset for loans none
» overdraftInterestSettings OverdraftInterestSettings Overdraft settings for the product none
»» daysInYear string How many days in a year should be used for interest calculations none
»» interestCalculationBalance string The balance which is used for the overdraft interest calculation. Default value is MINIMUM. If set to null on a PUT call and the product allows overdrafts, the null value is ignored and not changed. none
»» interestRateSettings DepositProductOverdraftInterestRateSettings The overdraft interest settings, defines constraints regarding interest that will be used on the account created based on this product. none
»»» indexSourceKey string Index rate source key. none
»»» interestChargeFrequency string The interval used for determining how often is interest charged none
»»» interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
»»» interestRate DecimalInterval Decimal constraints, like min/max/default. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit none
»»» interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
»»» interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
»»» interestRateTiers [DepositProductOverdraftInterestRateTier] The list of interest rate tiers available for the current settings instance none
»»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
» overdraftSettings DepositProductOverdraftSettings The overdraft settings of the deposit product none
»» allowOverdraft boolean Whether the accounts for this product may have overdraft none
»» allowTechnicalOverdraft boolean Whether the accounts for this product may have technical overdraft none
»» maxOverdraftLimit number How much money may be taken out for the account to go negative none
» state (required) string Indicates the current state of the product none
» taxSettings DepositProductTaxSettings Tax settings, defines some settings for taxes on the loan product none
»» withholdingTaxEnabled boolean Whether withholding taxes are enabled for this product or not none
» templates [DocumentTemplate] Template documents of the product. none
»» creationDate string(date-time) The creation date of the document read-only
»» encodedKey string The document encodedKey read-only
»» lastModifiedDate string(date-time) The last modified date of the document read-only
»» name string The name the document none
»» type string The type of the template none
» type (required) string Indicates the type of product. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH
category PERSONAL_DEPOSIT
category BUSINESS_DEPOSIT
category DAILY_BANKING_ACCOUNTS
category BUSINESS_BANKING_ACCOUNTS
category STORED_VALUE_ACCOUNTS
category UNCATEGORIZED
creditArrangementRequirement OPTIONAL
creditArrangementRequirement REQUIRED
creditArrangementRequirement NOT_REQUIRED
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
amountCalculationMethod FLAT
amountCalculationMethod MAMBU_FUNCTION
applyDateMethod MONTHLY_FROM_ACTIVATION
applyDateMethod FIRST_OF_EVERY_MONTH
feeApplication REQUIRED
feeApplication OPTIONAL
state ACTIVE
state INACTIVE
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear E30_42_365
daysInYear BUS_252
interestCalculationBalance MINIMUM
interestCalculationBalance AVERAGE
interestCalculationBalance END_OF_DAY
interestCalculationBalance MINIMUM_TO_END_OF_DAY
interestCalculationBalance FRENCH_INTEREST_ACCRUAL
interestPaymentPoint FIRST_DAY_OF_MONTH
interestPaymentPoint EVERY_WEEK
interestPaymentPoint EVERY_OTHER_WEEK
interestPaymentPoint EVERY_MONTH
interestPaymentPoint EVERY_3_MONTHS
interestPaymentPoint ON_FIXED_DATES
interestPaymentPoint DAILY
interestPaymentPoint ANNUALLY
interestPaymentPoint BI_ANNUALLY
interestPaymentPoint ON_ACCOUNT_MATURITY
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
maturityPeriodUnit DAYS
maturityPeriodUnit WEEKS
maturityPeriodUnit MONTHS
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear E30_42_365
daysInYear BUS_252
interestCalculationBalance MINIMUM
interestCalculationBalance AVERAGE
interestCalculationBalance END_OF_DAY
interestCalculationBalance MINIMUM_TO_END_OF_DAY
interestCalculationBalance FRENCH_INTEREST_ACCRUAL
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
state ACTIVE
state INACTIVE
type ACCOUNT
type TRANSACTION
type ACCOUNT_WITH_TRANSACTIONS
type CURRENT_ACCOUNT
type REGULAR_SAVINGS
type FIXED_DEPOSIT
type SAVINGS_PLAN
type INVESTOR_ACCOUNT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Deposit Products)

Code samples

# You can also use wget
curl -X POST /depositproducts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /depositproducts HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/depositproducts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/depositproducts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/depositproducts', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/depositproducts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/depositproducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /depositproducts

Create deposit product

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) DepositProduct Represents the deposit product to be created. body

Example responses

201 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The deposit product was created. DepositProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getById (Deposit Products)

Code samples

# You can also use wget
curl -X GET /depositproducts/{depositProductId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /depositproducts/{depositProductId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/depositproducts/{depositProductId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/depositproducts/{depositProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/depositproducts/{depositProductId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/depositproducts/{depositProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts/{depositProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/depositproducts/{depositProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /depositproducts/{depositProductId}

Get deposit product

Parameters

Name Type Description In
depositProductId (required) string The ID or encoded key of the deposit product to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

Responses

Status Meaning Description Schema
200 OK The deposit product has been returned. DepositProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit product was not found. ErrorResponse

update (Deposit Products)

Code samples

# You can also use wget
curl -X PUT /depositproducts/{depositProductId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /depositproducts/{depositProductId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/depositproducts/{depositProductId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/depositproducts/{depositProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/depositproducts/{depositProductId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/depositproducts/{depositProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts/{depositProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/depositproducts/{depositProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /depositproducts/{depositProductId}

Update deposit product

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

Parameters

Name Type Description In
depositProductId (required) string The ID or encoded key of the deposit product to be updated. path
body (required) DepositProduct Represents the deposit product to be updated. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

Responses

Status Meaning Description Schema
200 OK The deposit product was updated. DepositProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit product was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

delete (Deposit Products)

Code samples

# You can also use wget
curl -X DELETE /depositproducts/{depositProductId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /depositproducts/{depositProductId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/depositproducts/{depositProductId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/depositproducts/{depositProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/depositproducts/{depositProductId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/depositproducts/{depositProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts/{depositProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/depositproducts/{depositProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /depositproducts/{depositProductId}

Delete deposit product

Parameters

Name Type Description In
depositProductId (required) string The ID or encoded key of the deposit product to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The deposit product has been deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit product was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

patch (Deposit Products)

Code samples

# You can also use wget
curl -X PATCH /depositproducts/{depositProductId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /depositproducts/{depositProductId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/depositproducts/{depositProductId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/depositproducts/{depositProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/depositproducts/{depositProductId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/depositproducts/{depositProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/depositproducts/{depositProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/depositproducts/{depositProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /depositproducts/{depositProductId}

Partially update deposit product

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
depositProductId (required) string The ID or encoded key of the deposit product to be updated. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The deposit product was updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit product was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Deposit Products Configuration

Retrieve and update the configuration for deposit products.

A deposit product allows you to set up the parameters for a type of deposit that you wish to regularly offer. Deposit products are flexible and highly-customizable templates for creating individual deposit accounts. For more information about this resource, see Deposit Products Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Deposit Products Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/depositproducts.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/depositproducts.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/depositproducts.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/depositproducts.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/depositproducts.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/depositproducts.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/depositproducts.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/depositproducts.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/depositproducts.yaml

Get configuration for all deposit products

Parameters

Name Type Description In
type array[string] The product type of the deposit products to get. When this is used multiple times it will get all the deposit products of the given types.If the parameter is absent, all the deposit products will be returned. query

Enumerated Values

Parameter Value
type CURRENT_ACCOUNT
type REGULAR_SAVINGS
type FIXED_DEPOSIT
type SAVINGS_PLAN
type INVESTOR_ACCOUNT

Example responses

An example of a deposit products configuration

---
depositProducts:
  - id: "product1"
    name: "A product with only the minimum fields defined"
    type: "FIXED_DEPOSIT"
    category: "UNCATEGORIZED"
    state: "ACTIVE"
    description: "A saving product with a fixed deposit where clients can put\
    \ a certain amount in and lock it to collect interest until maturity 2-5 months\
    \ later"
    newAccountSettings:
      idGeneratorType: "RANDOM_PATTERN"
      idPattern: "@@@@###"
    availabilitySettings:
      forGroups: true
      forIndividuals: true
      branchSettings:
        allBranches: true
        branches:
    currencySettings:
      currencies:
        - "USD"
    interestSettings:
      daysInYear: "E30_360"
      paidIntoAccount: true
  - id: "DSP"
    name: "Product example with all fields defined"
    type: "CURRENT_ACCOUNT"
    category: "UNCATEGORIZED"
    state: "INACTIVE"
    description: "Commonly used savings product"
    newAccountSettings:
      idGeneratorType: "INCREMENTAL_NUMBER"
      idPattern: "2"
    availabilitySettings:
      forGroups: false
      forIndividuals: false
      branchSettings:
        allBranches: true
        branches: [ ]
    currencySettings:
      currencies:
        - "EUR"
        - "RON"
        - "CNY"
    maturitySettings:
      maturityPeriodInterval:
        defaultValue: 5
        minValue: 3
        maxValue: 7
      maturityPeriodUnit: "WEEKS"
    taxSettings:
      withholdingTaxEnabled: false
    creditArrangementSettings:
      requirement: "OPTIONAL"
    internalControlsSettings:
      dormancyPeriodDays: 10
      recommendedDepositAmount: 100
      maxWithdrawalAmount: 120
      openingBalance:
        minValue: 10
        maxValue: 30
        defaultValue: 20
      allowOffset: true
    feeSettings:
      allowArbitraryFees: false
      fees:
        - id: "feeForNewProduct"
          name: "Deposit Made"
          active: true
          amount: 120.9
          amountCalculationMethod: "FLAT"
          trigger: "MANUAL"
          accountingRules: [ ]
    interestSettings:
      daysInYear: "ACTUAL_365_FIXED"
      calculationBalance: "END_OF_DAY"
      paidIntoAccount: true
      collectInterestWhenLocked: true
      maximumBalance: 10003
      interestRateSettings:
        interestRateSource: "FIXED_INTEREST_RATE"
        interestRateTerms: "TIERED"
        interestRateTiers:
          - endingBalance: 500
            interestRate: 10
          - endingBalance: 900
            interestRate: 5
        accrueInterestAfterMaturity: true
    overdraftInterestSettings:
      allowOverdraft: true
      allowTechnicalOverdraft: true
      maxOverdraftLimit: 100
      daysInYear: "ACTUAL_365_FIXED"
      calculationBalance: "END_OF_DAY"
      interestRateSettings:
        allowNegativeInterestRate: false
        interestRateSource: "FIXED_INTEREST_RATE"
        interestRateTerms: "TIERED"
        interestRateTiers:
          - endingBalance: 500
            interestRate: 10
          - endingBalance: 900
            interestRate: 5
    accountingSettings:
      accountingRules:
        - glAccountCode: "11001"
          financialResource: "DEPOSIT_REFERENCE"
        - glAccountCode: "10002"
          financialResource: "SAVINGS_CONTROL"
        - glAccountCode: "11003"
          financialResource: "INTEREST_EXPENSE"
        - glAccountCode: "10004"
          financialResource: "FEE_INCOME"
      accountingMethod: "ACCRUAL"
      interestAccruedAccountingMethod: "END_OF_MONTH"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK The configuration for all deposit products has been returned. DepositProductsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Deposit Products Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/depositproducts.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml' \
  -H 'X-Mambu-Async: true' \
  -H 'X-Mambu-Callback: string'

PUT /configuration/depositproducts.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml
X-Mambu-Async: true
X-Mambu-Callback: string

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async':'true',
  'X-Mambu-Callback':'string'

};

$.ajax({
  url: '/configuration/depositproducts.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async' => 'true',
  'X-Mambu-Callback' => 'string'
}

result = RestClient.put '/configuration/depositproducts.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async': 'true',
  'X-Mambu-Callback': 'string'
}

r = requests.put('/configuration/depositproducts.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    'X-Mambu-Async' => 'true',
    'X-Mambu-Callback' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/depositproducts.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/depositproducts.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        "X-Mambu-Async": []string{"true"},
        "X-Mambu-Callback": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/depositproducts.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/depositproducts.yaml

Update all deposit products configuration

Body parameter

An example of a deposit products configuration

---
depositProducts:
  - id: "product1"
    name: "A product with only the minimum fields defined"
    type: "FIXED_DEPOSIT"
    category: "UNCATEGORIZED"
    state: "ACTIVE"
    description: "A saving product with a fixed deposit where clients can put\
    \ a certain amount in and lock it to collect interest until maturity 2-5 months\
    \ later"
    newAccountSettings:
      idGeneratorType: "RANDOM_PATTERN"
      idPattern: "@@@@###"
    availabilitySettings:
      forGroups: true
      forIndividuals: true
      branchSettings:
        allBranches: true
        branches:
    currencySettings:
      currencies:
        - "USD"
    interestSettings:
      daysInYear: "E30_360"
      paidIntoAccount: true
  - id: "DSP"
    name: "Product example with all fields defined"
    type: "CURRENT_ACCOUNT"
    category: "UNCATEGORIZED"
    state: "INACTIVE"
    description: "Commonly used savings product"
    newAccountSettings:
      idGeneratorType: "INCREMENTAL_NUMBER"
      idPattern: "2"
    availabilitySettings:
      forGroups: false
      forIndividuals: false
      branchSettings:
        allBranches: true
        branches: [ ]
    currencySettings:
      currencies:
        - "EUR"
        - "RON"
        - "CNY"
    maturitySettings:
      maturityPeriodInterval:
        defaultValue: 5
        minValue: 3
        maxValue: 7
      maturityPeriodUnit: "WEEKS"
    taxSettings:
      withholdingTaxEnabled: false
    creditArrangementSettings:
      requirement: "OPTIONAL"
    internalControlsSettings:
      dormancyPeriodDays: 10
      recommendedDepositAmount: 100
      maxWithdrawalAmount: 120
      openingBalance:
        minValue: 10
        maxValue: 30
        defaultValue: 20
      allowOffset: true
    feeSettings:
      allowArbitraryFees: false
      fees:
        - id: "feeForNewProduct"
          name: "Deposit Made"
          active: true
          amount: 120.9
          amountCalculationMethod: "FLAT"
          trigger: "MANUAL"
          accountingRules: [ ]
    interestSettings:
      daysInYear: "ACTUAL_365_FIXED"
      calculationBalance: "END_OF_DAY"
      paidIntoAccount: true
      collectInterestWhenLocked: true
      maximumBalance: 10003
      interestRateSettings:
        interestRateSource: "FIXED_INTEREST_RATE"
        interestRateTerms: "TIERED"
        interestRateTiers:
          - endingBalance: 500
            interestRate: 10
          - endingBalance: 900
            interestRate: 5
        accrueInterestAfterMaturity: true
    overdraftInterestSettings:
      allowOverdraft: true
      allowTechnicalOverdraft: true
      maxOverdraftLimit: 100
      daysInYear: "ACTUAL_365_FIXED"
      calculationBalance: "END_OF_DAY"
      interestRateSettings:
        allowNegativeInterestRate: false
        interestRateSource: "FIXED_INTEREST_RATE"
        interestRateTerms: "TIERED"
        interestRateTiers:
          - endingBalance: 500
            interestRate: 10
          - endingBalance: 900
            interestRate: 5
    accountingSettings:
      accountingRules:
        - glAccountCode: "11001"
          financialResource: "DEPOSIT_REFERENCE"
        - glAccountCode: "10002"
          financialResource: "SAVINGS_CONTROL"
        - glAccountCode: "11003"
          financialResource: "INTEREST_EXPENSE"
        - glAccountCode: "10004"
          financialResource: "FEE_INCOME"
      accountingMethod: "ACCRUAL"
      interestAccruedAccountingMethod: "END_OF_MONTH"

Parameters

Name Type Description In
X-Mambu-Async boolean none header
X-Mambu-Callback string none header
body DepositProductsConfiguration Model representation of the deposit products configuration body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK The configuration for all deposit products has been updated. None
202 Accepted The request has been accepted for processing. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The configuration was not found. ErrorResponse

Response Schema

Deposit Transactions

Allows you to search and retrieve deposit transactions for deposit accounts.

getDepositTransactionDocument (Deposit Transactions)

Code samples

# You can also use wget
curl -X GET /deposits/transactions/{depositTransactionId}/templates/{templateId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/transactions/{depositTransactionId}/templates/{templateId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/transactions/{depositTransactionId}/templates/{templateId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/transactions/{depositTransactionId}/templates/{templateId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/transactions/{depositTransactionId}/templates/{templateId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/transactions/{depositTransactionId}/templates/{templateId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/transactions/{depositTransactionId}/templates/{templateId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/transactions/{depositTransactionId}/templates/{templateId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/transactions/{depositTransactionId}/templates/{templateId}

Get deposit transaction document

Parameters

Name Type Description In
depositTransactionId (required) string The ID or encoded key of the deposit transaction. path
templateId (required) string The ID of the deposit product template. path

Example responses

200 Response

"string"

Responses

Status Meaning Description Schema
200 OK The deposit transaction document has been returned. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit transaction or template was not found. ErrorResponse

makeTransfer (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/transfer-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/transfer-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/transfer-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/transfer-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/transfer-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/transfer-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/transfer-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/transfer-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/transfer-transactions

Create transfer transaction

Body parameter

{
  "_Example_Custom_Field_Set_Transaction": {
    "Example_Checkbox_Custom_Field": "TRUE"
  },
  "amount": 200,
  "externalId": "46290",
  "notes": "some notes about this transaction",
  "paymentOrderId": "PAY-1234-abc",
  "transferDetails": {
    "linkedAccountId": "LMPG508",
    "linkedAccountKey": "8a19c32b72eac4420172efcb0f176bbd",
    "linkedAccountType": "LOAN"
  },
  "valueDate": "2020-12-08T17:00:00+01:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit that the transaction will be created for. path
body (required) TransferDepositTransactionInput Represents the information needed for a transfer transaction. body

Example responses

201 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The transfer transaction has been created.

{
  "encodedKey": "8a19c9c5764281700176431631370690",
  "id": "134",
  "externalId": "46290",
  "paymentOrderId": "PAY-1234-abc",
  "creationDate": "2020-12-08T17:01:37+01:00",
  "valueDate": "2020-12-08T17:00:00+01:00",
  "bookingDate": "2020-12-08T17:00:00+01:00",
  "notes": "some notes about this transaction",
  "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
  "type": "TRANSFER",
  "amount": -200,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 200,
    "interestAmount": 0,
    "feesAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 49250
  },
  "userKey": "8a194075720ece2c017226fced6f005e",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {},
  "transferDetails": {
    "linkedLoanTransactionKey": "8a19c9c5764281700176431631370692"
  },
  "fees": []
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The transfer transaction has been created. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getAll (Deposit Transactions)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/transactions \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/transactions HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/transactions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/transactions', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/transactions

Allows retrieval of all transactions for a deposit account via id or encoded key. Please note: if there are no transactions for a given account, an empty array will be returned.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account used to get all of its transactions. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountBalances": {
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "feesAmount": 0,
      "fractionAmount": 0,
      "fundsAmount": 0,
      "interestAmount": 0,
      "overdraftAmount": 0,
      "overdraftFeesAmount": 0,
      "overdraftInterestAmount": 0,
      "technicalOverdraftAmount": 0,
      "technicalOverdraftInterestAmount": 0
    },
    "amount": 0,
    "blockId": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "holdExternalReferenceId": "string",
    "id": "string",
    "interestAccruedAmounts": {
      "interestAccrued": 0,
      "negativeInterestAccrued": 0,
      "overdraftInterestAccrued": 0,
      "technicalOverdraftInterestAccrued": 0
    },
    "migrationEventKey": "string",
    "notes": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "paymentDetails": {
      "creditor": {
        "name": "string"
      },
      "creditorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "creditorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "debtor": {
        "name": "string"
      },
      "debtorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "debtorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "paymentIdentification": {
        "endToEndIdentification": "string",
        "instructionIdentification": "string",
        "transactionIdentification": "string"
      },
      "paymentTypeInformation": {
        "serviceLevel": {
          "code": "string"
        }
      },
      "remittanceInformation": {
        "structured": {
          "creditorReferenceInformation": {
            "reference": "string",
            "referenceIssuer": "string",
            "referenceType": "string"
          }
        },
        "unstructured": "string"
      }
    },
    "paymentOrderId": "string",
    "taxes": {
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftInterestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftSettings": {
        "overdraftLimit": 0
      }
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

The list of deposit transactions has been returned.

[
  {
    "encodedKey": "8a19c9c5764281700176431631370690",
    "id": "134",
    "externalId": "46290",
    "paymentOrderId": "PAY-1234-abc",
    "creationDate": "2020-12-08T17:01:37+01:00",
    "valueDate": "2020-12-08T17:00:00+01:00",
    "bookingDate": "2020-12-08T17:00:00+01:00",
    "notes": "some notes about this transaction",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "TRANSFER",
    "amount": -200,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49250
    },
    "userKey": "8a194075720ece2c017226fced6f005e",
    "transactionDetails": {}
  },
  {
    "encodedKey": "8a19c9c5764281700176430fbebe0682",
    "id": "132",
    "creationDate": "2020-12-08T16:55:40+01:00",
    "valueDate": "2020-12-08T16:55:39+01:00",
    "bookingDate": "2020-12-08T16:55:41+01:00",
    "notes": "some notes",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "TRANSFER",
    "amount": -300,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49450
    },
    "userKey": "8a194075720ece2c017226fced6f005e",
    "transactionDetails": {}
  },
  {
    "encodedKey": "8a19a51476366c28017636e9ef5b002c",
    "id": "131",
    "creationDate": "2020-12-06T08:32:32+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-04T00:00:00+01:00",
    "notes": "update day of deposit",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "ADJUSTMENT",
    "amount": -50,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49750
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19a51476366c28017636e9ef5b0028",
    "id": "130",
    "creationDate": "2020-12-06T08:17:50+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-03T12:00:00+01:00",
    "notes": "customer found 50 euro",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "DEPOSIT",
    "amount": 50,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49800
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "adjustmentTransactionKey": "8a19a51476366c28017636e9ef5b002c",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19c7f27633d4c1017633e4ab860006",
    "id": "129",
    "creationDate": "2020-12-05T18:14:15+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-04T00:00:00+01:00",
    "notes": "string",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "WITHDRAWAL_ADJUSTMENT",
    "amount": 500,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49750
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19bbf77631c84a017632f06cc40301",
    "id": "127",
    "creationDate": "2020-12-05T13:49:37+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-03T12:00:00+01:00",
    "notes": "customer wants to buy Christmas presents",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "WITHDRAWAL",
    "amount": -500,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49250
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "adjustmentTransactionKey": "8a19c7f27633d4c1017633e4ab860006",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19bbf77631c84a017632f06cc402fd",
    "id": "126",
    "creationDate": "2020-12-05T13:46:26+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-03T12:00:00+01:00",
    "notes": "customer wants to buy Christmas presents",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "WITHDRAWAL",
    "amount": -500,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 49750
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19bbf77631c84a017632df01db02f9",
    "id": "125",
    "creationDate": "2020-12-05T13:39:46+01:00",
    "valueDate": "2020-12-02T12:00:00+01:00",
    "bookingDate": "2020-12-03T12:00:00+01:00",
    "notes": "customer found 50 euro",
    "parentAccountKey": "8a19c3ea762d719601762d8270ad0020",
    "type": "DEPOSIT",
    "amount": 50,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 50250
    },
    "userKey": "8a19b628762ca2a201762d39b29005ce",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  }
]

Responses

Status Meaning Description Schema
200 OK The list of deposit transactions has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositTransaction] [Represents the action performed on an Deposit Account after which the account's amount changes its value.] none
» accountBalances DepositTransactionBalances The balances changed within a transaction. none
»» totalBalance number The running balance owed by deposit none
» adjustmentTransactionKey string The key of the deposit transaction where the adjustment for this transaction was made (if any adjustment was involved) none
» affectedAmounts DepositAffectedAmounts The amounts affected after completing the deposit transaction none
»» feesAmount number Amount of fees involved in a transaction that affects an account with positive balance none
»» fractionAmount number In the case of an LOAN_FRACTION_BOUGHT this represent the fraction amount which was bought from another investor none
»» fundsAmount number Balance change amount involved in a transaction that affects an account with positive balance none
»» interestAmount number Amount of interest involved in a transaction that affects an account with positive balance none
»» overdraftAmount number The amount of money that was added/subtracted from the account by this transaction as overdraft none
»» overdraftFeesAmount number Fees amount involved in a transaction that affects an overdraft none
»» overdraftInterestAmount number Interest amount involved in a transaction that affects an overdraft none
»» technicalOverdraftAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft none
»» technicalOverdraftInterestAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft interest none
» amount number How much was added/removed in account none
» blockId string The block fund id associated with the transaction none
» bookingDate string(date-time) The date when corresponding JE is booked (as Organization Time) none
» branchKey string The branch where the transaction was performed read-only
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed read-only
» creationDate string(date-time) The date when this deposit transaction was created read-only
» currencyCode string The currency in which this transaction was posted none
» encodedKey string The encoded key of the deposit transaction, auto generated, unique read-only
» externalId string The external id of the deposit transaction, customizable, unique none
» fees [DepositFee] All the amounts that have been applied or paid within this transaction and involved predefined fees read-only
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» holdExternalReferenceId string The external id of an account authorization hold none
» id string The id of the deposit transaction, auto generated, unique none
» interestAccruedAmounts DepositInterestAccruedAmounts Represents the accrued interest amounts for an Interest Applied deposit transaction. none
»» interestAccrued number The amount of positive interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» negativeInterestAccrued number The amount of negative interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» overdraftInterestAccrued number The amount of overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» technicalOverdraftInterestAccrued number The amount of technical overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
» migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, track which 'migration event' they came from none
» notes string Extra notes about this deposit transaction none
» originalTransactionKey string The encodedKey of the transaction that was adjusted as part of this one. Available only for adjustment transactions none
» parentAccountKey string The key of the parent deposit account none
» paymentDetails PaymentDetails The payment information including account identification details none
»» creditor Party The details of the party for a transaction none
»»» name string The name of the party none
»» creditorAccount AccountDetails The account currency and identification none
»»» currency string The currency of the account none
»»» identification AccountIdentification The account identification details none
»»»» iban string The account unique identifier none
»»»» other OtherAccountIdentification Represents other way of identification for the account. none
»»»»» identification string The identification of the payer/payee none
»»»»» scheme string The identification scheme none
»» creditorAgent Agent The agent details for a party none
»»» financialInstitutionIdentification FinancialInstitutionIdentification The identification of the financial institution none
»»»» bic string Business identifier code none
»» debtor Party The details of the party for a transaction none
»» debtorAccount AccountDetails The account currency and identification none
»» debtorAgent Agent The agent details for a party none
»» paymentIdentification PaymentIdentification The payment identification details none
»»» endToEndIdentification string Identifier assigned by the initiating party to the transaction. Limited to 35 characters none
»»» instructionIdentification string Identifier of a payment instruction none
»»» transactionIdentification string Identifier unique for a period assigned by the first initiating party to the transaction none
»» paymentTypeInformation PaymentTypeInformation The information specifying the type of transaction none
»»» serviceLevel ServiceLevel The rules under which the transaction should be processed none
»»»» code string The code for a pre-agreed service or level of service between the parties none
»» remittanceInformation RemittanceInformation The information specifying the payment items that are intended to settle none
»»» structured Structured The information specifying the payment items that are intended to settle none
»»»» creditorReferenceInformation CreditorReferenceInformation Represents the reference to the underlying documents of the payment. none
»»»»» reference string The reference information of the creditor's underlying documents none
»»»»» referenceIssuer string The entity that assigns the reference type none
»»»»» referenceType string The type of creditor reference none
»»» unstructured string Information supplied to match the items of the payment in an unstructured form none
» paymentOrderId string The payment order id of the deposit transaction, customizable none
» taxes DepositTaxes The taxes applied within a transaction none
»» taxRate number The tax rate that was set or changed in this transaction none
» terms DepositTerms The deposit transaction terms none
»» interestSettings DepositTransactionInterestSettings The interest settings, holds all the properties regarding interests for the deposit account none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate for the deposit account none
»» overdraftInterestSettings DepositOverdraftInterestSettings Holds the deposit overdraft interest settings none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches none
»» overdraftSettings DepositOverdraftSettings Holds the deposit overdraft settings for a transaction none
»»» overdraftLimit number The overdraft limit that was set or changed in this transaction none
» tillKey string The till key associated with this transaction none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of the deposit transaction none
» userKey string The person that performed the transaction none
» valueDate string(date-time) Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time) none

Enumerated Values

Property Value
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY
type IMPORT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type DEPOSIT
type ADJUSTMENT
type WITHDRAWAL
type WITHDRAWAL_ADJUSTMENT
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type FEE_APPLIED
type FEE_ADJUSTED
type FEES_DUE_REDUCED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type NET_DIFF_INTEREST
type FEE_REDUCTION_ADJUSTMENT
type WITHHOLDING_TAX
type WITHHOLDING_TAX_ADJUSTMENT
type INTEREST_RATE_CHANGED
type OVERDRAFT_INTEREST_RATE_CHANGED
type OVERDRAFT_LIMIT_CHANGED
type BRANCH_CHANGED
type LOAN_FUNDED
type LOAN_FUNDED_ADJUSTMENT
type LOAN_REPAID
type LOAN_REPAID_ADJUSTMENT
type LOAN_FRACTION_BOUGHT
type LOAN_FRACTION_BOUGHT_ADJUSTMENT
type LOAN_FRACTION_SOLD
type LOAN_FRACTION_SOLD_ADJUSTMENT
type SEIZED_AMOUNT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

makeWithdrawal (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/withdrawal-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/withdrawal-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/withdrawal-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/withdrawal-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/withdrawal-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/withdrawal-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/withdrawal-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/withdrawal-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/withdrawal-transactions

Create withdrawal transaction

Body parameter

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "holdExternalReferenceId": "string",
  "notes": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit that the transaction will be created for. path
body (required) WithdrawalDepositTransactionInput Represents infromation for a withdrawal transaction. body

Example responses

201 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The withdrawal transaction has been created.

{
  "encodedKey": "8a19c9c5764281700176432736a506e6",
  "id": "139",
  "externalId": "4629011",
  "paymentOrderId": "PAY-1234-abc",
  "creationDate": "2020-12-08T17:20:12+01:00",
  "valueDate": "2020-12-07T13:00:00+01:00",
  "bookingDate": "2020-12-08T13:00:00+01:00",
  "notes": "some notes about this transaction",
  "parentAccountKey": "8a19a46f72b6bb9a0172b76ef2ed045c",
  "type": "WITHDRAWAL",
  "amount": -200,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 200,
    "interestAmount": 0,
    "feesAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 187987.95
  },
  "userKey": "8a194075720ece2c017226fced6f005e",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {
    "transactionChannelKey": "8a194075720ece2c017226fcf55e0064",
    "transactionChannelId": "cash"
  },
  "transferDetails": {},
  "fees": [],
  "_EXAMPLE_CUSTOM_FIELDS": {
    "ACCOUNT_NAME_TRANSACTION_CHANNEL": "123987",
    "ACCOUNT_NUMBER_TRANSACTION_CHANN": "456321",
    "BANK_NUMBER_TRANSACTION_CHANNEL_": "789654"
  }
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The withdrawal transaction has been created. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

applyFee (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/fee-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/fee-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/fee-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/fee-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/fee-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/fee-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/fee-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/fee-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/fee-transactions

Apply a fee on a deposit account

Body parameter

{
  "amount": 0,
  "externalId": "string",
  "notes": "string",
  "predefinedFeeKey": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit that the transaction will be created for. path
body (required) FeeAppliedDepositTransactionInput Represents the information for creating a FEE_APPLIED type transaction on a deposit. body

Example responses

201 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The fee applied transaction has been created.

{
  "encodedKey": "8a19dd227647336901764799ba181ae5",
  "id": "142",
  "externalId": "123abc",
  "creationDate": "2020-12-09T14:03:46+01:00",
  "valueDate": "2020-12-09T14:03:46+01:00",
  "bookingDate": "2020-12-09T14:03:46+01:00",
  "notes": "application of a predefined fee",
  "parentAccountKey": "8a19a46f72b6bb9a0172b76ef2ed045c",
  "type": "FEE_APPLIED",
  "amount": -15,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 0,
    "interestAmount": 0,
    "feesAmount": 15,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 187857.95
  },
  "userKey": "8a194075720ece2c017226fced6f005e",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {},
  "transferDetails": {},
  "fees": [
    {
      "predefinedFeeKey": "8a19dd22764733690176479683d11aba",
      "name": "a fee",
      "amount": 15,
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The fee applied transaction has been created. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

makeSeizure (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/seizure-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/seizure-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/seizure-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/seizure-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/seizure-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/seizure-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/seizure-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/seizure-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/seizure-transactions

Seize a block amount on a deposit account

Body parameter

{
  "amount": 500,
  "blockId": "block-007",
  "externalId": "case-1234abc1",
  "notes": "amount seized due to investigation",
  "transactionChannelId": "cash"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit that the transaction will be created for. path
body (required) SeizeBlockAmount Represents the information for seizing a block amount on a deposit account. body

Example responses

201 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The seized amount transaction has been created.

{
  "encodedKey": "8a19dd2276473369017647b0e28b1bcb",
  "id": "143",
  "externalId": "case-1234abc1",
  "creationDate": "2020-12-09T14:29:03+01:00",
  "valueDate": "2020-12-09T14:29:03+01:00",
  "notes": "amount seized due to investigation",
  "parentAccountKey": "8a19dcee72b6a8ad0172b766f08b0367",
  "type": "SEIZED_AMOUNT",
  "amount": -500,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 500,
    "interestAmount": 0,
    "feesAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 85128.95
  },
  "userKey": "8a19b628762ca2a201762d39b29005ce",
  "blockId": "block-007",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {
    "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
  },
  "transferDetails": {},
  "fees": []
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The seized amount transaction has been created. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getById (Deposit Transactions)

Code samples

# You can also use wget
curl -X GET /deposits/transactions/{depositTransactionId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/transactions/{depositTransactionId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/transactions/{depositTransactionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/transactions/{depositTransactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/transactions/{depositTransactionId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/transactions/{depositTransactionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/transactions/{depositTransactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/transactions/{depositTransactionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/transactions/{depositTransactionId}

Get deposit transaction

Parameters

Name Type Description In
depositTransactionId (required) string The ID or encoded key of the deposit transaction. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
200 OK The deposit transaction has been returned. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit transaction was not found. ErrorResponse

editTransactionDetails (Deposit Transactions)

Code samples

# You can also use wget
curl -X PATCH /deposits/transactions/{depositTransactionId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /deposits/transactions/{depositTransactionId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/transactions/{depositTransactionId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/deposits/transactions/{depositTransactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/deposits/transactions/{depositTransactionId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/deposits/transactions/{depositTransactionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/transactions/{depositTransactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/deposits/transactions/{depositTransactionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /deposits/transactions/{depositTransactionId}

Edit custom information or notes for deposit transaction

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
depositTransactionId (required) string The ID or encoded key of the deposit transaction. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The deposit transaction details have been edited successfully. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit transaction was not found. ErrorResponse

Code samples

# You can also use wget
curl -X POST /deposits/transactions:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /deposits/transactions:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/transactions:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/deposits/transactions:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/deposits/transactions:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/transactions:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/transactions:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/transactions:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/transactions:search

Search deposit transactions for deposit accounts by various criteria

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "type",
      "operator": "IN",
      "values": [
        "FEE_APPLIED",
        "WITHDRAWAL"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "valueDate",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) DepositTransactionSearchCriteria The criteria to use to search deposit transactions. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountBalances": {
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "feesAmount": 0,
      "fractionAmount": 0,
      "fundsAmount": 0,
      "interestAmount": 0,
      "overdraftAmount": 0,
      "overdraftFeesAmount": 0,
      "overdraftInterestAmount": 0,
      "technicalOverdraftAmount": 0,
      "technicalOverdraftInterestAmount": 0
    },
    "amount": 0,
    "blockId": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "holdExternalReferenceId": "string",
    "id": "string",
    "interestAccruedAmounts": {
      "interestAccrued": 0,
      "negativeInterestAccrued": 0,
      "overdraftInterestAccrued": 0,
      "technicalOverdraftInterestAccrued": 0
    },
    "migrationEventKey": "string",
    "notes": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "paymentDetails": {
      "creditor": {
        "name": "string"
      },
      "creditorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "creditorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "debtor": {
        "name": "string"
      },
      "debtorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "debtorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "paymentIdentification": {
        "endToEndIdentification": "string",
        "instructionIdentification": "string",
        "transactionIdentification": "string"
      },
      "paymentTypeInformation": {
        "serviceLevel": {
          "code": "string"
        }
      },
      "remittanceInformation": {
        "structured": {
          "creditorReferenceInformation": {
            "reference": "string",
            "referenceIssuer": "string",
            "referenceType": "string"
          }
        },
        "unstructured": "string"
      }
    },
    "paymentOrderId": "string",
    "taxes": {
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftInterestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftSettings": {
        "overdraftLimit": 0
      }
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

The results of a deposit transaction search.

[
  {
    "encodedKey": "8a19a46f72b6bb9a0172b767a4b003fc",
    "id": "3",
    "creationDate": "2020-06-15T11:55:22+02:00",
    "valueDate": "2020-06-15T11:55:22+02:00",
    "parentAccountKey": "8a19dcee72b6a8ad0172b766f08b0367",
    "type": "WITHDRAWAL",
    "amount": -250,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 750
    },
    "userKey": "8a194075720ece2c017226fced6f005e",
    "transactionDetails": {
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "encodedKey": "8a19a7de7306fd4f0173073e983e09b2",
    "id": "14",
    "creationDate": "2020-07-01T00:00:10+02:00",
    "valueDate": "2020-07-01T00:00:00+02:00",
    "parentAccountKey": "8a19df6972b787fc0172b8c7b0e70bc1",
    "type": "FEE_APPLIED",
    "amount": -50,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 2950
    },
    "transactionDetails": {}
  },
  {
    "encodedKey": "8a19da3a73a6b9020173a6e3f5137951",
    "id": "18",
    "creationDate": "2020-08-01T00:00:24+02:00",
    "valueDate": "2020-08-01T00:00:00+02:00",
    "parentAccountKey": "8a19df6972b787fc0172b8c7b0e70bc1",
    "type": "FEE_APPLIED",
    "amount": -50,
    "currencyCode": "EUR",
    "accountBalances": {
      "totalBalance": 2900
    },
    "transactionDetails": {}
  }
]

Responses

Status Meaning Description Schema
200 OK The results of a deposit transaction search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositTransaction] [Represents the action performed on an Deposit Account after which the account's amount changes its value.] none
» accountBalances DepositTransactionBalances The balances changed within a transaction. none
»» totalBalance number The running balance owed by deposit none
» adjustmentTransactionKey string The key of the deposit transaction where the adjustment for this transaction was made (if any adjustment was involved) none
» affectedAmounts DepositAffectedAmounts The amounts affected after completing the deposit transaction none
»» feesAmount number Amount of fees involved in a transaction that affects an account with positive balance none
»» fractionAmount number In the case of an LOAN_FRACTION_BOUGHT this represent the fraction amount which was bought from another investor none
»» fundsAmount number Balance change amount involved in a transaction that affects an account with positive balance none
»» interestAmount number Amount of interest involved in a transaction that affects an account with positive balance none
»» overdraftAmount number The amount of money that was added/subtracted from the account by this transaction as overdraft none
»» overdraftFeesAmount number Fees amount involved in a transaction that affects an overdraft none
»» overdraftInterestAmount number Interest amount involved in a transaction that affects an overdraft none
»» technicalOverdraftAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft none
»» technicalOverdraftInterestAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft interest none
» amount number How much was added/removed in account none
» blockId string The block fund id associated with the transaction none
» bookingDate string(date-time) The date when corresponding JE is booked (as Organization Time) none
» branchKey string The branch where the transaction was performed read-only
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed read-only
» creationDate string(date-time) The date when this deposit transaction was created read-only
» currencyCode string The currency in which this transaction was posted none
» encodedKey string The encoded key of the deposit transaction, auto generated, unique read-only
» externalId string The external id of the deposit transaction, customizable, unique none
» fees [DepositFee] All the amounts that have been applied or paid within this transaction and involved predefined fees read-only
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» holdExternalReferenceId string The external id of an account authorization hold none
» id string The id of the deposit transaction, auto generated, unique none
» interestAccruedAmounts DepositInterestAccruedAmounts Represents the accrued interest amounts for an Interest Applied deposit transaction. none
»» interestAccrued number The amount of positive interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» negativeInterestAccrued number The amount of negative interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» overdraftInterestAccrued number The amount of overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» technicalOverdraftInterestAccrued number The amount of technical overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
» migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, track which 'migration event' they came from none
» notes string Extra notes about this deposit transaction none
» originalTransactionKey string The encodedKey of the transaction that was adjusted as part of this one. Available only for adjustment transactions none
» parentAccountKey string The key of the parent deposit account none
» paymentDetails PaymentDetails The payment information including account identification details none
»» creditor Party The details of the party for a transaction none
»»» name string The name of the party none
»» creditorAccount AccountDetails The account currency and identification none
»»» currency string The currency of the account none
»»» identification AccountIdentification The account identification details none
»»»» iban string The account unique identifier none
»»»» other OtherAccountIdentification Represents other way of identification for the account. none
»»»»» identification string The identification of the payer/payee none
»»»»» scheme string The identification scheme none
»» creditorAgent Agent The agent details for a party none
»»» financialInstitutionIdentification FinancialInstitutionIdentification The identification of the financial institution none
»»»» bic string Business identifier code none
»» debtor Party The details of the party for a transaction none
»» debtorAccount AccountDetails The account currency and identification none
»» debtorAgent Agent The agent details for a party none
»» paymentIdentification PaymentIdentification The payment identification details none
»»» endToEndIdentification string Identifier assigned by the initiating party to the transaction. Limited to 35 characters none
»»» instructionIdentification string Identifier of a payment instruction none
»»» transactionIdentification string Identifier unique for a period assigned by the first initiating party to the transaction none
»» paymentTypeInformation PaymentTypeInformation The information specifying the type of transaction none
»»» serviceLevel ServiceLevel The rules under which the transaction should be processed none
»»»» code string The code for a pre-agreed service or level of service between the parties none
»» remittanceInformation RemittanceInformation The information specifying the payment items that are intended to settle none
»»» structured Structured The information specifying the payment items that are intended to settle none
»»»» creditorReferenceInformation CreditorReferenceInformation Represents the reference to the underlying documents of the payment. none
»»»»» reference string The reference information of the creditor's underlying documents none
»»»»» referenceIssuer string The entity that assigns the reference type none
»»»»» referenceType string The type of creditor reference none
»»» unstructured string Information supplied to match the items of the payment in an unstructured form none
» paymentOrderId string The payment order id of the deposit transaction, customizable none
» taxes DepositTaxes The taxes applied within a transaction none
»» taxRate number The tax rate that was set or changed in this transaction none
» terms DepositTerms The deposit transaction terms none
»» interestSettings DepositTransactionInterestSettings The interest settings, holds all the properties regarding interests for the deposit account none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate for the deposit account none
»» overdraftInterestSettings DepositOverdraftInterestSettings Holds the deposit overdraft interest settings none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches none
»» overdraftSettings DepositOverdraftSettings Holds the deposit overdraft settings for a transaction none
»»» overdraftLimit number The overdraft limit that was set or changed in this transaction none
» tillKey string The till key associated with this transaction none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of the deposit transaction none
» userKey string The person that performed the transaction none
» valueDate string(date-time) Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time) none

Enumerated Values

Property Value
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY
type IMPORT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type DEPOSIT
type ADJUSTMENT
type WITHDRAWAL
type WITHDRAWAL_ADJUSTMENT
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type FEE_APPLIED
type FEE_ADJUSTED
type FEES_DUE_REDUCED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type NET_DIFF_INTEREST
type FEE_REDUCTION_ADJUSTMENT
type WITHHOLDING_TAX
type WITHHOLDING_TAX_ADJUSTMENT
type INTEREST_RATE_CHANGED
type OVERDRAFT_INTEREST_RATE_CHANGED
type OVERDRAFT_LIMIT_CHANGED
type BRANCH_CHANGED
type LOAN_FUNDED
type LOAN_FUNDED_ADJUSTMENT
type LOAN_REPAID
type LOAN_REPAID_ADJUSTMENT
type LOAN_FRACTION_BOUGHT
type LOAN_FRACTION_BOUGHT_ADJUSTMENT
type LOAN_FRACTION_SOLD
type LOAN_FRACTION_SOLD_ADJUSTMENT
type SEIZED_AMOUNT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

makeDeposit (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/deposit-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/deposit-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/deposit-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/deposit-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/deposit-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/deposit-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/deposit-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/deposit-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/deposit-transactions

Create deposit transaction

Body parameter

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "holdExternalReferenceId": "string",
  "notes": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "skipMaximumBalanceValidation": true,
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit that the transaction will be created for. path
body (required) DepositTransactionInput Represents the information needed to create a deposit transaction. body

Example responses

201 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The deposit transaction has been created.

{
  "encodedKey": "8a19c9c5764281700176432736a506e6",
  "id": "139",
  "externalId": "4629011",
  "paymentOrderId": "PAY-1234-abc",
  "creationDate": "2020-12-08T17:20:12+01:00",
  "valueDate": "2020-12-07T13:00:00+01:00",
  "bookingDate": "2020-12-08T13:00:00+01:00",
  "notes": "some notes about this transaction",
  "parentAccountKey": "8a19a46f72b6bb9a0172b76ef2ed045c",
  "type": "DEPOSIT",
  "amount": -200,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 200,
    "interestAmount": 0,
    "feesAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 187987.95
  },
  "userKey": "8a194075720ece2c017226fced6f005e",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {
    "transactionChannelKey": "8a194075720ece2c017226fcf55e0064",
    "transactionChannelId": "cash"
  },
  "transferDetails": {},
  "fees": [],
  "_EXAMPLE_CUSTOM_FIELDS": {
    "ACCOUNT_NAME_TRANSACTION_CHANNEL": "123987",
    "ACCOUNT_NUMBER_TRANSACTION_CHANN": "456321",
    "BANK_NUMBER_TRANSACTION_CHANNEL_": "789654"
  }
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The deposit transaction has been created. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

makeBulkDeposits (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/deposit-transactions:bulk \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/deposit-transactions:bulk HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/deposit-transactions:bulk',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/deposit-transactions:bulk',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/deposit-transactions:bulk', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/deposit-transactions:bulk', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/deposit-transactions:bulk");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/deposit-transactions:bulk", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/deposit-transactions:bulk

Create a bulk collection of deposit transactions

To query the status and results of the bulk operation, use /bulks/{bulkProcessKey}.

Body parameter

{
  "transactions": [
    [
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Number_Field": "123987",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "GHI-789",
        "amount": 200,
        "externalId": "46290",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-1234-abc",
        "transactionDetails": {
          "transactionChannelId": "cash",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      },
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "FALSE",
          "Example_Number_Field": "567432",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "DEF-456",
        "amount": 302,
        "externalId": "1234",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-5678-def",
        "transactionDetails": {
          "transactionChannelId": "cheque",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      },
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Number_Field": "192837",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "ABC-123",
        "amount": 546.5,
        "externalId": "5678",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-9876-ghi",
        "transactionDetails": {
          "transactionChannelId": "bank",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      }
    ]
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) BulkDepositTransactionsInput Represents the request payload for bulk deposit transactions body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted Bulk deposit transactions created None
400 Bad Request A Validation error occurred ErrorResponse
401 Unauthorized UNAUTHORIZED ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
202 Location string Bulk process key

adjust (Deposit Transactions)

Code samples

# You can also use wget
curl -X POST /deposits/transactions/{depositTransactionId}:adjust \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/transactions/{depositTransactionId}:adjust HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/transactions/{depositTransactionId}:adjust',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/transactions/{depositTransactionId}:adjust',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/transactions/{depositTransactionId}:adjust', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/transactions/{depositTransactionId}:adjust', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/transactions/{depositTransactionId}:adjust");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/transactions/{depositTransactionId}:adjust", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/transactions/{depositTransactionId}:adjust

Adjust a deposit transaction, which may bulk adjust multiple transactions

Body parameter

{
  "bookingDate": "2020-12-09T13:01:22+01:00",
  "notes": "some notes, for example, the reason for adjustment"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositTransactionId (required) string The ID or encoded key of the deposit transaction. path
body (required) DepositTransactionAdjustmentDetails Represents information about the adjustment action. body

Example responses

200 Response

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The deposit transaction has been adjusted.

{
  "encodedKey": "8a19c9c5764281700176432736a506e6",
  "id": "139",
  "externalId": "4629011",
  "paymentOrderId": "PAY-1234-abc",
  "creationDate": "2020-12-08T17:20:12+01:00",
  "valueDate": "2020-12-07T13:00:00+01:00",
  "bookingDate": "2020-12-08T13:00:00+01:00",
  "notes": "some notes about this transaction",
  "parentAccountKey": "8a19a46f72b6bb9a0172b76ef2ed045c",
  "type": "WITHDRAWAL",
  "amount": -200,
  "currencyCode": "EUR",
  "affectedAmounts": {
    "fundsAmount": 200,
    "interestAmount": 0,
    "feesAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0,
    "fractionAmount": 0
  },
  "taxes": {},
  "accountBalances": {
    "totalBalance": 187987.95
  },
  "userKey": "8a194075720ece2c017226fced6f005e",
  "adjustmentTransactionKey": "8a19bf817647f3e50176483b546c01b4",
  "terms": {
    "interestSettings": {},
    "overdraftInterestSettings": {},
    "overdraftSettings": {}
  },
  "transactionDetails": {
    "transactionChannelKey": "8a194075720ece2c017226fcf55e0064",
    "transactionChannelId": "cash"
  },
  "transferDetails": {},
  "fees": [],
  "_EXAMPLE_CUSTOM_FIELDS_Transaction": {
    "custom_field": "TRUE"
  }
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK The deposit transaction has been adjusted. DepositTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit transaction was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Deposit Accounts

Allows you to retrieve, create, update or delete deposit accounts.

This entity supports custom field definitions which may have been configured for your Mambu tenant using our UI or our custom fields configuration API. You can make a GET request to the /customfieldsets?availableFor=deposit_account endpoint to check for custom field definitions available for this entity.

For more general information on working with custom field definitions and their values, see Using Custom Fields. For more information on how to filter using custom field definitions and their values, see Searching by Custom Fields.

getWithholdingTaxHistory (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/withholdingtaxes \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/withholdingtaxes HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/withholdingtaxes',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/withholdingtaxes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/withholdingtaxes', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/withholdingtaxes', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/withholdingtaxes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/withholdingtaxes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/withholdingtaxes

Get deposit account withholding tax history

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
from string(date) The start date to get withholding tax history. query
to string(date) The end date to to get withholding tax history. query

Example responses

200 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "fromDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "rateSourceEncodedKey": "string",
    "rateSourceId": "string",
    "rateSourceName": "string",
    "savingsAccountEncodedKey": "string",
    "toDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
200 OK The list of withholding tax history for the given period. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [AccountTax] [The account tax corresponding for deposit account] none
» creationDate string(date-time) The date when the rate availability was created. none
» fromDate string(date-time) The date when the tax source starts to be used by the account. none
» lastModifiedDate string(date-time) The last date when the rate availability was modified. none
» rateSourceEncodedKey string none none
» rateSourceId string The id of the source none
» rateSourceName string The name of the source none
» savingsAccountEncodedKey string none none
» toDate string(date-time) The ending date of the tax source used by the account none

getAllCards (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/cards \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/cards HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/cards',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/cards', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/cards

Get cards associated with an account

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path

Example responses

200 Response

[
  {
    "referenceToken": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The list of cards attached to the account was returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Card] [Returns a card that can be associated to a deposit or loan account. Cards consist only of card reference tokens and the card details are not stored in Mambu.] none
» referenceToken (required) string The card's reference token. none

createCard (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/cards HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/cards',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/cards', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/cards

Represents the information needed to create and associate a new card to an account.

Body parameter

{
  "referenceToken": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) Card The card to be created. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The card was created. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getAllAuthorizationHolds (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/authorizationholds \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/authorizationholds HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/authorizationholds',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/authorizationholds',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/authorizationholds', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/authorizationholds', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/authorizationholds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/authorizationholds", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/authorizationholds

Get authorization holds related to a deposit account, ordered from newest to oldest by creation date

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
status string The status of the authorization holds to filter on query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
status PENDING
status REVERSED
status SETTLED
status EXPIRED

Example responses

200 Response

[
  {
    "accountKey": "string",
    "advice": true,
    "amount": 0,
    "balances": {
      "accountId": "string",
      "availableBalance": 0,
      "cardType": "DEBIT",
      "creditLimit": 0,
      "currencyCode": "string",
      "totalBalance": 0
    },
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditDebitIndicator": "DBIT",
    "currencyCode": "string",
    "customExpirationPeriod": 0,
    "encodedKey": "string",
    "exchangeRate": 0,
    "externalReferenceId": "string",
    "originalAmount": 0,
    "originalCurrency": "string",
    "partial": true,
    "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
    "source": "CARD",
    "status": "PENDING",
    "userTransactionTime": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The list of authorization holds has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [GetAuthorizationHold] [Details for retrieving a authorization hold. Deprecated due to encodedKey field.] none
» accountKey string The key of the account linked with the authorization hold. read-only
» advice (required) boolean Whether the given request should be accepted without balance validations. none
» amount (required) number The amount of money to be held as a result of the authorization hold request. none
» balances AccountBalances Account balances presented to inquirer such as card processor none
»» accountId string The unique account identifier none
»» availableBalance number The available balance of a deposit or credit account none
»» cardType string The card type either DEBIT or CREDIT none
»» creditLimit number The overdraft limit of a deposit account or the loan amount in case of a credit account none
»» currencyCode string Currency code used for the account none
»» totalBalance number The current balance of a deposit account or principal balance of a revolving credit none
» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»» city string The city in which the card acceptor has the business. none
»» country string The country in which the card acceptor has the business. none
»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»» name string The name of the card acceptor. none
»» state string The state in which the card acceptor has the business. none
»» street string The street in which the card acceptor has the business. none
»» zip string The ZIP code of the location in which the card acceptor has the business. none
» cardToken string The reference token of the card. read-only
» creationDate string(date-time) The organization time when the authorization hold was created read-only
» creditDebitIndicator string Indicates whether the authorization hold amount is credited or debited.If not provided, the default values is DBIT. none
» currencyCode string The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency. none
» customExpirationPeriod integer(int32) The custom expiration period for the hold which overwrites mcc and default expiration periods none
» encodedKey string The internal ID of the authorization hold, auto generated, unique. read-only
» exchangeRate number The exchange rate for the original currency. none
» externalReferenceId (required) string The external reference ID to be used to reference the account hold in subsequent requests. none
» originalAmount number The original amount of money to be held as a result of the authorization hold request. none
» originalCurrency string The original currency in which the hold was created. none
» partial boolean Indicates whether the authorization is partial or not none
» referenceDateForExpiration string(date-time) The date to consider as start date when calculating the number of days passed until expiration read-only
» source string Indicates the source of the authorization hold, the default values is CARD. read-only
» status string The authorization hold status. read-only
» userTransactionTime string The formatted time at which the user made this authorization hold. none

Enumerated Values

Property Value
cardType DEBIT
cardType CREDIT
creditDebitIndicator DBIT
creditDebitIndicator CRDT
source CARD
source ACCOUNT
status PENDING
status REVERSED
status SETTLED
status EXPIRED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

createAuthorizationHold (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/authorizationholds \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/authorizationholds HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/authorizationholds',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/authorizationholds',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/authorizationholds', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/authorizationholds', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/authorizationholds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/authorizationholds", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/authorizationholds

Create an authorization hold corresponding to a given account

Body parameter

{
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "userTransactionTime": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) AccountAuthorizationHold The authorization hold to be created. body

Example responses

201 Response

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The account authorization hold was successfully created. AccountAuthorizationHold
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getFundedLoans (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/funding \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/funding HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/funding',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/funding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/funding', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/funding', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/funding");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/funding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/funding

Get all loan accounts funded by the deposit account with the given ID or encoded key

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path

Example responses

200 Response

[
  {
    "accountArrearsSettings": {
      "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
      "encodedKey": "string",
      "monthlyToleranceDay": 0,
      "nonWorkingDaysMethod": "INCLUDED",
      "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
      "toleranceFloorAmount": 0,
      "tolerancePercentageOfOutstandingPrincipal": 0,
      "tolerancePeriod": 0
    },
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PARTIAL_APPLICATION",
    "accountSubState": "PARTIALLY_DISBURSED",
    "accruedInterest": 0,
    "accruedPenalty": 0,
    "activationTransactionKey": "string",
    "allowOffset": true,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "arrearsTolerancePeriod": 0,
    "assets": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "originalAmount": 0,
        "originalCurrency": {
          "code": "AED",
          "currencyCode": "string"
        }
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "feesBalance": 0,
      "feesDue": 0,
      "feesPaid": 0,
      "holdBalance": 0,
      "interestBalance": 0,
      "interestDue": 0,
      "interestFromArrearsBalance": 0,
      "interestFromArrearsDue": 0,
      "interestFromArrearsPaid": 0,
      "interestPaid": 0,
      "penaltyBalance": 0,
      "penaltyDue": 0,
      "penaltyPaid": 0,
      "principalBalance": 0,
      "principalDue": 0,
      "principalPaid": 0,
      "redrawBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "daysInArrears": 0,
    "daysLate": 0,
    "disbursementDetails": {
      "disbursementDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
      "transactionDetails": {
        "encodedKey": "string",
        "internalTransfer": true,
        "targetDepositAccountKey": "string",
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      }
    },
    "encodedKey": "string",
    "fundingSources": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "id": "string",
        "interestCommission": 0,
        "sharePercentage": 0
      }
    ],
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "guarantors": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT"
      }
    ],
    "id": "string",
    "interestAccruedInBillingCycle": 0,
    "interestCommission": 0,
    "interestFromArrearsAccrued": 0,
    "interestSettings": {
      "accountInterestRateSettings": [
        {
          "encodedKey": "string",
          "indexSourceKey": "string",
          "interestRate": 0,
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestSpread": 0,
          "validFrom": "2016-09-06T13:37:50+03:00"
        }
      ],
      "accrueInterestAfterMaturity": true,
      "accrueLateInterest": true,
      "interestApplicationMethod": "AFTER_DISBURSEMENT",
      "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
      "interestCalculationMethod": "FLAT",
      "interestChargeFrequency": "ANNUALIZED",
      "interestRate": 0,
      "interestRateChangePMTAdjustmentThreshold": {
        "method": "WORKING_DAYS",
        "numberOfDays": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "interestType": "SIMPLE_INTEREST"
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastLockedDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "loanAmount": 0,
    "loanName": "string",
    "lockedAccountTotalDueType": "BALANCE_AMOUNT",
    "lockedOperations": [
      "APPLY_INTEREST"
    ],
    "migrationEventKey": "string",
    "modifyInterestForFirstInstallment": true,
    "notes": "string",
    "originalAccountKey": "string",
    "paymentHolidaysAccruedInterest": 0,
    "paymentMethod": "HORIZONTAL",
    "penaltySettings": {
      "loanPenaltyCalculationMethod": "NONE",
      "penaltyRate": 0
    },
    "plannedInstallmentFees": [
      {
        "amount": 0,
        "applyOnDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "installmentKey": "string",
        "installmentNumber": 0,
        "predefinedFeeKey": "string"
      }
    ],
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": 0,
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "productTypeKey": "string",
    "redrawSettings": {
      "restrictNextDueWithdrawal": true
    },
    "rescheduledAccountKey": "string",
    "scheduleSettings": {
      "billingCycle": {
        "days": [
          0
        ]
      },
      "defaultFirstRepaymentDueDateOffset": 0,
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "gracePeriodType": "NONE",
      "hasCustomSchedule": true,
      "paymentPlan": [
        {
          "amount": 0,
          "encodedKey": "string",
          "toInstallment": 0
        }
      ],
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "principalRepaymentInterval": 0,
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS",
      "repaymentScheduleMethod": "NONE",
      "scheduleDueDatesMethod": "INTERVAL",
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "settlementAccountKey": "string",
    "taxRate": 0,
    "terminationDate": "2016-09-06T13:37:50+03:00",
    "tranches": [
      {
        "amount": 0,
        "disbursementDetails": {
          "disbursementTransactionKey": "string",
          "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
        },
        "encodedKey": "string",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "trancheNumber": 0
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK The list of funded loan accounts has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanAccount] [Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.] none
» accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
»» dateCalculationMethod string The arrears date calculation method. none
»» encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
»» monthlyToleranceDay integer(int32) Defines monthly arrears tolerance day value. none
»» nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
»» toleranceCalculationMethod string Defines the tolerance calculation method none
»» toleranceFloorAmount number The tolerance floor amount. none
»» tolerancePercentageOfOutstandingPrincipal number Defines the arrears tolerance amount. none
»» tolerancePeriod integer(int32) Defines the arrears tolerance period value. none
» accountHolderKey (required) string The encoded key of the account holder. none
» accountHolderType (required) string The type of the account holder. none
» accountState string The state of the loan account. none
» accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
» accruedInterest number The amount of interest that has been accrued in the loan account. none
» accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
» activationTransactionKey string The encoded key of the transaction that activated the loan account. none
» allowOffset boolean DEPRECATED - Will always be false. none
» approvedDate string(date-time) The date the loan account was approved. none
» arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
» assets [Asset] The list of assets associated with the current loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey string The key of the client/group used as the guarantor. none
»» guarantorType string The type of the guarantor (client/group) none
»» originalAmount number The original amount used by the client for a collateral asset none
»» originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
» assignedCentreKey string The key of the centre this account is assigned to. none
» assignedUserKey string The key of the user this loan account is assigned to. none
» balances Balances The loan account balance details. none
»» feesBalance number The fees balance. Represents the total fees expected to be paid on this account at a given moment. read-only
»» feesDue number The fees due. Representing the total fees due for the account. read-only
»» feesPaid number The fees paid. Represents the total fees paid for the account. read-only
»» holdBalance number The sum of all the authorization hold amounts on this account. read-only
»» interestBalance number Represents the total interest owed by the client (total interest applied for account minus interest paid). read-only
»» interestDue number The interest due. Indicates how much interest it's due for the account at this moment. read-only
»» interestFromArrearsBalance number The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid). read-only
»» interestFromArrearsDue number The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment. read-only
»» interestFromArrearsPaid number The interest from arrears paid, indicates total interest from arrears paid into the account. read-only
»» interestPaid number The interest paid, indicates total interest paid into the account. read-only
»» penaltyBalance number The penalty balance. Represents the total penalty expected to be paid on this account at a given moment. read-only
»» penaltyDue number The penalty due. Represents the total penalty amount due for the account. read-only
»» penaltyPaid number The Penalty paid. Represents the total penalty amount paid for the account. read-only
»» principalBalance number The total principal owned by the client, from now on (principal disbursed - principal paid). read-only
»» principalDue number The principal due, indicates how much principal it's due at this moment. read-only
»» principalPaid number The principal paid, holds the value of the total paid into the account. read-only
»» redrawBalance number The total redraw amount owned by the client, from now on. none
» closedDate string(date-time) The date the loan was closed. none
» creationDate string(date-time) The date the loan account was created. none
» creditArrangementKey string The key to the line of credit where this account is registered to. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
» daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
» daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
» disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
»» disbursementDate string(date-time) The activation date, the date when the disbursement actually took place. none
»» encodedKey string The encoded key of the disbursement details, auto generated, unique read-only
»» expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
»» fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
»»» amount number The amount of the custom fee. none
»»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»»» percentage number The percentage of the custom fee. none
»»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
»» firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none
»» transactionDetails LoanTransactionDetails Represents the loan transaction details. none
»»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»»» internalTransfer boolean Whether the transaction was transferred between loans or deposit accounts none
»»» targetDepositAccountKey string In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made. none
»»» transactionChannelId string The ID of the transaction channel associated with the transaction details. none
»»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
» fundingSources [InvestorFund] The list of funds associated with the loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
»» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
»» interestCommission number The constraint minimum value none
»» sharePercentage number Percentage of loan shares this investor owns none
» futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
» guarantors [Guarantor] The list of guarantees associated with the loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
» id string The ID of the loan account, it can be generated and customized, and must be unique. none
» interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
» interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
» interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
» interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»» accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
»»» encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestRate number Interest rate value. none
»»» interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
»»» interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
»»» interestSpread number Interest spread value. none
»»» validFrom (required) string(date-time) Date since an interest rate is valid none
»» accrueInterestAfterMaturity boolean The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date. none
»» accrueLateInterest boolean Indicates whether late interest is accrued for this loan account read-only
»» interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
»» interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
»» interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
»» interestChargeFrequency string The interest change frequency. Holds the possible values for how often is interest charged on loan or deposit accounts none
»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
»»» method string The method used to calculate the interest rate change threshold. none
»»» numberOfDays integer(int32) The number of days that trigger an interest rate change. none
»» interestRateReviewCount integer(int32) Interest rate update frequency unit count. none
»» interestRateReviewUnit string The interest rate review unit. Defines the interest rate update frequency measurement unit. none
»» interestRateSource string The interest rate source. Represents the interest calculation method: fixed or (interest spread + active organization index interest rate) none
»» interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none
»» interestType string The possible values for how we compute and apply the interest none
» lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
» lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
» lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
» lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
» lastModifiedDate string(date-time) The last date the loan was updated. none
» lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
» lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
» latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
» loanAmount (required) number The loan amount. none
» loanName string The name of the loan account. none
» lockedAccountTotalDueType string The locked account total due type. none
» lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
» migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
» modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
» notes string The notes about this loan account. none
» originalAccountKey string The key of the original rescheduled or refinanced loan account. none
» paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
» paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
» penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
»» loanPenaltyCalculationMethod string The last penalty calculation method, represents on what amount are the penalties calculated. none
»» penaltyRate number The penalty rate, represents the rate (in percent) which is charged as a penalty. none
» plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
»» amount number The amount of the planned fee. none
»» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
»» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
»» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
»» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
»» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none
» prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
»» applyInterestOnPrepaymentMethod string Apply interest on prepayment method copied from loan product on which this account is based. none
»» elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
»» prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
»» principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none
» principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
»» amount number Fixed amount for being used for the repayments principal due. none
»» encodedKey string The encoded key of the principal payment base settings, auto generated, unique. read-only
»» includeFeesInFloorAmount boolean Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» includeInterestInFloorAmount boolean Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» percentage number Percentage of principal amount used for the repayments principal due. none
»» principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
»» principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
»» principalPaymentMethod string The method of principal payment for revolving credit. none
»» totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
»» totalDuePayment string The method of total due payment for revolving credit none
» productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
» redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
»» restrictNextDueWithdrawal (required) boolean TRUE if withdrawing amounts that reduce the next due instalment repayment is restricted, FALSE otherwise. none
» rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
» scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
»» billingCycle BillingCycleDays Defines the billing cycles settings for a loan account none
»»» days [integer] The billing cycle start days in case it is enabled none
»» defaultFirstRepaymentDueDateOffset integer(int32) The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset) none
»» fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
»» gracePeriod (required) integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
»» gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
»» hasCustomSchedule boolean Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due none
»» paymentPlan [PeriodicPayment] A list of periodic payments for the current loan account. none
»»» amount (required) number The PMT value used in periodic payment none
»»» encodedKey string The encoded key of the periodic payment, auto generated, unique. read-only
»»» toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none
»» periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
»» previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
»»» numberOfPreviewedInstalments integer(int32) The number of previewed instalments none
»» principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
»» repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
»» repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
»» repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none
»» repaymentScheduleMethod string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
»» scheduleDueDatesMethod string The schedule due dates method. Represents the methodology used by this account to compute the due dates of the repayments. none
»» shortMonthHandlingMethod string The short handling method. Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
» settlementAccountKey string The encoded key of the settlement account. none
» taxRate number The tax rate. none
» terminationDate string(date-time) The date this loan account was terminated. none
» tranches [LoanTranche] The list of disbursement tranches available for the loan account. none
»» amount (required) number The amount this tranche has available for disburse none
»» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
»» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
»» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» trancheNumber integer(int32) Index indicating the tranche number none

Enumerated Values

Property Value
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
guarantorType CLIENT
guarantorType GROUP
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
guarantorType CLIENT
guarantorType GROUP
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
guarantorType CLIENT
guarantorType GROUP
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
method WORKING_DAYS
method CALENDAR_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

getAll (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits

Get deposit accounts

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
creditOfficerUsername string The username of the credit officer assigned to the deposit accounts. query
branchId string The ID or encoded key of the branch assigned to the deposit accounts. query
centreId string The ID or encoded key of the centre assigned to the deposit accounts. query
accountState string The state to use to filter deposit accounts by. query
accountHolderType string The account holder type. query
accountHolderId string The ID of the account holder. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState MATURED
accountState LOCKED
accountState DORMANT
accountState CLOSED
accountState CLOSED_WRITTEN_OFF
accountState WITHDRAWN
accountState CLOSED_REJECTED
accountHolderType CLIENT
accountHolderType GROUP

Example responses

200 Response

[
  {
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PENDING_APPROVAL",
    "accountType": "CURRENT_ACCOUNT",
    "accruedAmounts": {
      "interestAccrued": 0,
      "negativeInterestAccrued": 0,
      "overdraftInterestAccrued": 0,
      "technicalOverdraftInterestAccrued": 0
    },
    "activationDate": "2016-09-06T13:37:50+03:00",
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "availableBalance": 0,
      "blockedBalance": 0,
      "feesDue": 0,
      "forwardAvailableBalance": 0,
      "holdBalance": 0,
      "lockedBalance": 0,
      "overdraftAmount": 0,
      "overdraftInterestDue": 0,
      "technicalOverdraftAmount": 0,
      "technicalOverdraftInterestDue": 0,
      "totalBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "id": "string",
    "interestSettings": {
      "interestPaymentSettings": {
        "interestPaymentDates": [
          {
            "day": 0,
            "month": 0
          }
        ],
        "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
      },
      "interestRateSettings": {
        "encodedKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "endingDay": 0,
            "interestRate": 0
          }
        ],
        "interestSpread": 0
      }
    },
    "internalControls": {
      "maxDepositBalance": 0,
      "maxWithdrawalAmount": 0,
      "recommendedDepositAmount": 0,
      "targetAmount": 0
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "linkedSettlementAccountKeys": [
      "string"
    ],
    "lockedDate": "2016-09-06T13:37:50+03:00",
    "maturityDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "notes": "string",
    "overdraftInterestSettings": {
      "interestRateSettings": {
        "encodedKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "endingDay": 0,
            "interestRate": 0
          }
        ],
        "interestSpread": 0
      }
    },
    "overdraftSettings": {
      "allowOverdraft": true,
      "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
      "overdraftLimit": 0
    },
    "productTypeKey": "string",
    "withholdingTaxSourceKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Deposit accounts list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositAccount] [Represents information about a deposit account.] none
» accountHolderKey (required) string The encoded key of the account holder, which is an individual client or group. none
» accountHolderType (required) string The account holder type. none
» accountState string The state of the deposit account. read-only
» accountType string The deposit account type and the product that it belongs to. none
» accruedAmounts DepositAccountAccruedAmounts Represents information about the accrued amounts of deposit accounts. none
»» interestAccrued number The amount of positive interest that has been accrued in the account. read-only
»» negativeInterestAccrued number The amount of negative interest that has been accrued in the account. read-only
»» overdraftInterestAccrued number The amount of overdraft interest that has been accrued in the account. read-only
»» technicalOverdraftInterestAccrued number The amount of technical overdraft interest that has been accrued in the account. read-only
» activationDate string(date-time) The date when the deposit account was activated, in the organization's timezone and time format. read-only
» approvedDate string(date-time) The date when the deposit account was approved, in the organization's timezone and time format. read-only
» assignedBranchKey string The key of the branch that this deposit account is assigned to. none
» assignedCentreKey string The key of the centre that this account is assigned to. none
» assignedUserKey string The key of the user that this deposit is assigned to. none
» balances DepositAccountBalances Represents information about the balances of a deposit account. none
»» availableBalance number The current available balance for deposit transactions. read-only
»» blockedBalance number The sum of all the blocked amounts on an account. read-only
»» feesDue number The amount of fees due to be paid on this account. read-only
»» forwardAvailableBalance number The sum of all the authorization hold amounts that have CRDT as the creditDebitIndicator for an account. read-only
»» holdBalance number The sum of all the authorization hold amounts that have DBIT as the creditDebitIndicator for an account. read-only
»» lockedBalance number The locked amount that is not available for withdrawal in the account. For more information, see Deposit Account Overview Details. read-only
»» overdraftAmount number The overdraft amount that has been taken out in the account. For more information, see Overdraft Products. read-only
»» overdraftInterestDue number The amount of interest due to be paid on an account as a result of an authorized overdraft. read-only
»» technicalOverdraftAmount number The technical overdraft amount that has been taken out in the account. For more information, see Technical Overdraft. read-only
»» technicalOverdraftInterestDue number The amount of interest due to be paid on an account as a result of a technical overdraft. read-only
»» totalBalance number The current balance of the account. read-only
» closedDate string(date-time) The date when the deposit account was closed, in UTC. read-only
» creationDate string(date-time) The date this deposit account was created, in UTC. read-only
» creditArrangementKey string The key to the credit arrangement where this account is registered. none
» currencyCode string The currency code. none
» encodedKey string The encoded key of the deposit account, which is auto-generated and unique. read-only
» id string The ID of the deposit account, which can be generated and customized - but must be unique. none
» interestSettings DepositAccountInterestSettings Represents information about the deposit account's interest settings. none
»» interestPaymentSettings DepositAccountInterestPaymentSettings Represents information about the interest payment settings. none
»»» interestPaymentDates [MonthAndDay] The list of all dates when the interest is paid into the deposit account. none
»»»» day integer(int32) The day in the month none
»»»» month integer(int32) The month of the year none
»»» interestPaymentPoint string The interest payment point, which specifies when the interest should be paid to the account. none
»» interestRateSettings DepositAccountInterestRateSettings Represents information about the interest rate settings for deposit accounts. none
»»» encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
»»» interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
»»» interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
»»» interestRate number The interest rate for the deposit account. none
»»» interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
»»» interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
»»» interestRateSource string The interest calculation method used. read-only
»»» interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
»»» interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
»»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»»» endingDay integer(int32) The end date for the account period. Used to determine if this interest rate tier is used or not. none
»»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
»»» interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none
» internalControls DepositAccountInternalControls Represents information about internal controls. none
»» maxDepositBalance number The maximum deposit balance of the account. none
»» maxWithdrawalAmount number The maximum amount allowed for a withdrawal. none
»» recommendedDepositAmount number The recommended amount for a deposit. none
»» targetAmount number The target amount for a deposit made towards a savings goal. none
» lastAccountAppraisalDate string(date-time) The date when the account was last evaluated for interest calculations and maturity, in the organization's timezone and time format. read-only
» lastInterestCalculationDate string(date-time) The date when interest was last calculated for the account, in the organization's timezone and time format. read-only
» lastInterestReviewDate string(date-time) The date when regular interest was last reviewed, in the organization's timezone and time format. read-only
» lastInterestStoredDate string(date-time) The date when interest was last applied on the account, in the organization's timezone and time format. read-only
» lastModifiedDate string(date-time) The last update date for the deposit account, in UTC. read-only
» lastOverdraftInterestReviewDate string(date-time) The date when the overdraft interest was last reviewed, in the organization's timezone and time format. read-only
» lastSetToArrearsDate string(date-time) The date when the deposit account was set to In Arrears, or null if the account is not In Arrears. The date is in the organization's timezone and time format. read-only
» linkedSettlementAccountKeys [string] Lists all loan account keys on which the deposit account is used as the settlement account. read-only
» lockedDate string(date-time) The date when the deposit account was locked, in the organization's timezone and time format. read-only
» maturityDate string(date-time) The date when the account matures, for fixed or compulsory savings plans, in the organization's timezone and time format. read-only
» migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, you can track which migration event it came from. read-only
» name (required) string The deposit account name. none
» notes string The notes or description attached to this object. none
» overdraftInterestSettings DepositAccountOverdraftInterestSettings Represents information about a deposit account's overdraft interest settings. none
»» interestRateSettings DepositAccountOverdraftInterestRateSettings Represents information about overdraft interest rate settings for deposit accounts. none
»»» encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
»»» interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
»»» interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
»»» interestRate number The interest rate for the deposit account. none
»»» interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
»»» interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
»»» interestRateSource string The interest calculation method used. read-only
»»» interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
»»» interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
»»» interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none
» overdraftSettings DepositAccountOverdraftSettings Represents information about a deposit account's overdraft settings. none
»» allowOverdraft boolean TRUE if this account supports overdraft, FALSE otherwise. none
»» overdraftExpiryDate string(date-time) The expiration date of an overdraft. none
»» overdraftLimit number The limit amount that may be taken out as overdraft, where null means 0. none
» productTypeKey (required) string The key to the product type that this account is based on. none
» withholdingTaxSourceKey string The tax source where the account withholding taxes will be updated. none

Enumerated Values

Property Value
accountHolderType CLIENT
accountHolderType GROUP
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState MATURED
accountState LOCKED
accountState DORMANT
accountState CLOSED
accountState CLOSED_WRITTEN_OFF
accountState WITHDRAWN
accountState CLOSED_REJECTED
accountType CURRENT_ACCOUNT
accountType REGULAR_SAVINGS
accountType FIXED_DEPOSIT
accountType SAVINGS_PLAN
accountType INVESTOR_ACCOUNT
interestPaymentPoint FIRST_DAY_OF_MONTH
interestPaymentPoint EVERY_WEEK
interestPaymentPoint EVERY_OTHER_WEEK
interestPaymentPoint EVERY_MONTH
interestPaymentPoint EVERY_3_MONTHS
interestPaymentPoint ON_FIXED_DATES
interestPaymentPoint DAILY
interestPaymentPoint ANNUALLY
interestPaymentPoint BI_ANNUALLY
interestPaymentPoint ON_ACCOUNT_MATURITY
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits

Create deposit account

Body parameter

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {},
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {},
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) DepositAccount Represents the information to create a deposit account. body

Example responses

201 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The deposit account has been created. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getPdfDocument (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/templates/{templateId}/pdf \
  -H 'Accept: application/vnd.mambu.v2+file'

GET /deposits/{depositAccountId}/templates/{templateId}/pdf HTTP/1.1

Accept: application/vnd.mambu.v2+file

var headers = {
  'Accept':'application/vnd.mambu.v2+file'

};

$.ajax({
  url: '/deposits/{depositAccountId}/templates/{templateId}/pdf',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+file'
}

result = RestClient.get '/deposits/{depositAccountId}/templates/{templateId}/pdf',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+file'
}

r = requests.get('/deposits/{depositAccountId}/templates/{templateId}/pdf', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+file',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/templates/{templateId}/pdf', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/templates/{templateId}/pdf");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+file"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/templates/{templateId}/pdf", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/templates/{templateId}/pdf

Download deposit account document PDF

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
templateId (required) string The ID of the deposit product template. path
startDate string(date) The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query
endDate string(date) The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK The deposit account PDF document was returned. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account or document template was not found. ErrorResponse

Response Headers

Status Header Type Format Description
200 Content-Disposition string "The format is - attachment; filename="{fileName}.extension"";

applyInterest (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:applyInterest \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:applyInterest HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:applyInterest',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:applyInterest',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:applyInterest', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:applyInterest', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:applyInterest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:applyInterest", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:applyInterest

Represents information to apply accrued interest.

Body parameter

{
  "interestApplicationDate": "2016-09-06T13:37:50+03:00",
  "isPaymentHolidaysInterest": true,
  "notes": "string",
  "paymentHolidaysInterestAmount": 0
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit to apply interest to. path
body (required) ApplyInterestInput Represents information to apply accrued interest. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Interest has been applied. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

changeState (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:changeState \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:changeState HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:changeState',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:changeState',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:changeState', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:changeState', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:changeState");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:changeState", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:changeState

Represents the information to post an action, such as approving a deposit account.

Body parameter

{
  "action": "APPROVE",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) DepositAccountAction Represents the action details for a deposit account. body

Example responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK The deposit account action has been posted. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getById (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}

Get deposit account

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
200 OK The deposit account has been returned. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

update (Deposit Accounts)

Code samples

# You can also use wget
curl -X PUT /deposits/{depositAccountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /deposits/{depositAccountId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/deposits/{depositAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/deposits/{depositAccountId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/deposits/{depositAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/deposits/{depositAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /deposits/{depositAccountId}

Update deposit account

Body parameter

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {},
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {},
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
body DepositAccount Represents information about a deposit account. body

Example responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
200 OK The deposit account has been updated. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

delete (Deposit Accounts)

Code samples

# You can also use wget
curl -X DELETE /deposits/{depositAccountId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /deposits/{depositAccountId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/deposits/{depositAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/deposits/{depositAccountId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/deposits/{depositAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/deposits/{depositAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /deposits/{depositAccountId}

Delete inactive deposit account

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The deposit account has been deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

patch (Deposit Accounts)

Code samples

# You can also use wget
curl -X PATCH /deposits/{depositAccountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /deposits/{depositAccountId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/deposits/{depositAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/deposits/{depositAccountId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/deposits/{depositAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/deposits/{depositAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /deposits/{depositAccountId}

Partially update deposit account

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The deposit account has been updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getAuthorizationHoldById (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}

Get account authorization hold

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path

Example responses

200 Response

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

Responses

Status Meaning Description Schema
200 OK The authorization hold has been returned. AccountAuthorizationHold
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

reverseAuthorizationHold (Deposit Accounts)

Code samples

# You can also use wget
curl -X DELETE /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /deposits/{depositAccountId}/authorizationholds/{authorizationHoldExternalReferenceId}

Reverse account authorization hold

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
authorizationHoldExternalReferenceId (required) string The ID used to reference the authorization hold. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The account authorization hold was successfully reversed. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The account or authorization hold was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Code samples

# You can also use wget
curl -X POST /deposits:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /deposits:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/deposits:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/deposits:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits:search

Search deposit accounts

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) DepositAccountSearchCriteria The criteria to be used to search the deposit accounts. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PENDING_APPROVAL",
    "accountType": "CURRENT_ACCOUNT",
    "accruedAmounts": {
      "interestAccrued": 0,
      "negativeInterestAccrued": 0,
      "overdraftInterestAccrued": 0,
      "technicalOverdraftInterestAccrued": 0
    },
    "activationDate": "2016-09-06T13:37:50+03:00",
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "availableBalance": 0,
      "blockedBalance": 0,
      "feesDue": 0,
      "forwardAvailableBalance": 0,
      "holdBalance": 0,
      "lockedBalance": 0,
      "overdraftAmount": 0,
      "overdraftInterestDue": 0,
      "technicalOverdraftAmount": 0,
      "technicalOverdraftInterestDue": 0,
      "totalBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "id": "string",
    "interestSettings": {
      "interestPaymentSettings": {
        "interestPaymentDates": [
          {
            "day": 0,
            "month": 0
          }
        ],
        "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
      },
      "interestRateSettings": {
        "encodedKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "endingDay": 0,
            "interestRate": 0
          }
        ],
        "interestSpread": 0
      }
    },
    "internalControls": {
      "maxDepositBalance": 0,
      "maxWithdrawalAmount": 0,
      "recommendedDepositAmount": 0,
      "targetAmount": 0
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "linkedSettlementAccountKeys": [
      "string"
    ],
    "lockedDate": "2016-09-06T13:37:50+03:00",
    "maturityDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "notes": "string",
    "overdraftInterestSettings": {
      "interestRateSettings": {
        "encodedKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "endingDay": 0,
            "interestRate": 0
          }
        ],
        "interestSpread": 0
      }
    },
    "overdraftSettings": {
      "allowOverdraft": true,
      "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
      "overdraftLimit": 0
    },
    "productTypeKey": "string",
    "withholdingTaxSourceKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The deposit account search results have been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositAccount] [Represents information about a deposit account.] none
» accountHolderKey (required) string The encoded key of the account holder, which is an individual client or group. none
» accountHolderType (required) string The account holder type. none
» accountState string The state of the deposit account. read-only
» accountType string The deposit account type and the product that it belongs to. none
» accruedAmounts DepositAccountAccruedAmounts Represents information about the accrued amounts of deposit accounts. none
»» interestAccrued number The amount of positive interest that has been accrued in the account. read-only
»» negativeInterestAccrued number The amount of negative interest that has been accrued in the account. read-only
»» overdraftInterestAccrued number The amount of overdraft interest that has been accrued in the account. read-only
»» technicalOverdraftInterestAccrued number The amount of technical overdraft interest that has been accrued in the account. read-only
» activationDate string(date-time) The date when the deposit account was activated, in the organization's timezone and time format. read-only
» approvedDate string(date-time) The date when the deposit account was approved, in the organization's timezone and time format. read-only
» assignedBranchKey string The key of the branch that this deposit account is assigned to. none
» assignedCentreKey string The key of the centre that this account is assigned to. none
» assignedUserKey string The key of the user that this deposit is assigned to. none
» balances DepositAccountBalances Represents information about the balances of a deposit account. none
»» availableBalance number The current available balance for deposit transactions. read-only
»» blockedBalance number The sum of all the blocked amounts on an account. read-only
»» feesDue number The amount of fees due to be paid on this account. read-only
»» forwardAvailableBalance number The sum of all the authorization hold amounts that have CRDT as the creditDebitIndicator for an account. read-only
»» holdBalance number The sum of all the authorization hold amounts that have DBIT as the creditDebitIndicator for an account. read-only
»» lockedBalance number The locked amount that is not available for withdrawal in the account. For more information, see Deposit Account Overview Details. read-only
»» overdraftAmount number The overdraft amount that has been taken out in the account. For more information, see Overdraft Products. read-only
»» overdraftInterestDue number The amount of interest due to be paid on an account as a result of an authorized overdraft. read-only
»» technicalOverdraftAmount number The technical overdraft amount that has been taken out in the account. For more information, see Technical Overdraft. read-only
»» technicalOverdraftInterestDue number The amount of interest due to be paid on an account as a result of a technical overdraft. read-only
»» totalBalance number The current balance of the account. read-only
» closedDate string(date-time) The date when the deposit account was closed, in UTC. read-only
» creationDate string(date-time) The date this deposit account was created, in UTC. read-only
» creditArrangementKey string The key to the credit arrangement where this account is registered. none
» currencyCode string The currency code. none
» encodedKey string The encoded key of the deposit account, which is auto-generated and unique. read-only
» id string The ID of the deposit account, which can be generated and customized - but must be unique. none
» interestSettings DepositAccountInterestSettings Represents information about the deposit account's interest settings. none
»» interestPaymentSettings DepositAccountInterestPaymentSettings Represents information about the interest payment settings. none
»»» interestPaymentDates [MonthAndDay] The list of all dates when the interest is paid into the deposit account. none
»»»» day integer(int32) The day in the month none
»»»» month integer(int32) The month of the year none
»»» interestPaymentPoint string The interest payment point, which specifies when the interest should be paid to the account. none
»» interestRateSettings DepositAccountInterestRateSettings Represents information about the interest rate settings for deposit accounts. none
»»» encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
»»» interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
»»» interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
»»» interestRate number The interest rate for the deposit account. none
»»» interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
»»» interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
»»» interestRateSource string The interest calculation method used. read-only
»»» interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
»»» interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
»»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»»» endingDay integer(int32) The end date for the account period. Used to determine if this interest rate tier is used or not. none
»»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
»»» interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none
» internalControls DepositAccountInternalControls Represents information about internal controls. none
»» maxDepositBalance number The maximum deposit balance of the account. none
»» maxWithdrawalAmount number The maximum amount allowed for a withdrawal. none
»» recommendedDepositAmount number The recommended amount for a deposit. none
»» targetAmount number The target amount for a deposit made towards a savings goal. none
» lastAccountAppraisalDate string(date-time) The date when the account was last evaluated for interest calculations and maturity, in the organization's timezone and time format. read-only
» lastInterestCalculationDate string(date-time) The date when interest was last calculated for the account, in the organization's timezone and time format. read-only
» lastInterestReviewDate string(date-time) The date when regular interest was last reviewed, in the organization's timezone and time format. read-only
» lastInterestStoredDate string(date-time) The date when interest was last applied on the account, in the organization's timezone and time format. read-only
» lastModifiedDate string(date-time) The last update date for the deposit account, in UTC. read-only
» lastOverdraftInterestReviewDate string(date-time) The date when the overdraft interest was last reviewed, in the organization's timezone and time format. read-only
» lastSetToArrearsDate string(date-time) The date when the deposit account was set to In Arrears, or null if the account is not In Arrears. The date is in the organization's timezone and time format. read-only
» linkedSettlementAccountKeys [string] Lists all loan account keys on which the deposit account is used as the settlement account. read-only
» lockedDate string(date-time) The date when the deposit account was locked, in the organization's timezone and time format. read-only
» maturityDate string(date-time) The date when the account matures, for fixed or compulsory savings plans, in the organization's timezone and time format. read-only
» migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, you can track which migration event it came from. read-only
» name (required) string The deposit account name. none
» notes string The notes or description attached to this object. none
» overdraftInterestSettings DepositAccountOverdraftInterestSettings Represents information about a deposit account's overdraft interest settings. none
»» interestRateSettings DepositAccountOverdraftInterestRateSettings Represents information about overdraft interest rate settings for deposit accounts. none
»»» encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
»»» interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
»»» interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
»»» interestRate number The interest rate for the deposit account. none
»»» interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
»»» interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
»»» interestRateSource string The interest calculation method used. read-only
»»» interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
»»» interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
»»» interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none
» overdraftSettings DepositAccountOverdraftSettings Represents information about a deposit account's overdraft settings. none
»» allowOverdraft boolean TRUE if this account supports overdraft, FALSE otherwise. none
»» overdraftExpiryDate string(date-time) The expiration date of an overdraft. none
»» overdraftLimit number The limit amount that may be taken out as overdraft, where null means 0. none
» productTypeKey (required) string The key to the product type that this account is based on. none
» withholdingTaxSourceKey string The tax source where the account withholding taxes will be updated. none

Enumerated Values

Property Value
accountHolderType CLIENT
accountHolderType GROUP
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState MATURED
accountState LOCKED
accountState DORMANT
accountState CLOSED
accountState CLOSED_WRITTEN_OFF
accountState WITHDRAWN
accountState CLOSED_REJECTED
accountType CURRENT_ACCOUNT
accountType REGULAR_SAVINGS
accountType FIXED_DEPOSIT
accountType SAVINGS_PLAN
accountType INVESTOR_ACCOUNT
interestPaymentPoint FIRST_DAY_OF_MONTH
interestPaymentPoint EVERY_WEEK
interestPaymentPoint EVERY_OTHER_WEEK
interestPaymentPoint EVERY_MONTH
interestPaymentPoint EVERY_3_MONTHS
interestPaymentPoint ON_FIXED_DATES
interestPaymentPoint DAILY
interestPaymentPoint ANNUALLY
interestPaymentPoint BI_ANNUALLY
interestPaymentPoint ON_ACCOUNT_MATURITY
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getScheduleForFundedAccount (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/funding/{loanAccountId}/schedule \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/funding/{loanAccountId}/schedule HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/funding/{loanAccountId}/schedule',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/funding/{loanAccountId}/schedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/funding/{loanAccountId}/schedule', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/funding/{loanAccountId}/schedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/funding/{loanAccountId}/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/funding/{loanAccountId}/schedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/funding/{loanAccountId}/schedule

Allows retrieval of the loan account schedule for a loan account with the given id or encodedKey and funded by the deposit account with the given id or encodedKey.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Funded Loan Account schedule retrieved LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan Account or Deposit Account not found ErrorResponse

deleteCard (Deposit Accounts)

Code samples

# You can also use wget
curl -X DELETE /deposits/{depositAccountId}/cards/{cardReferenceToken} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /deposits/{depositAccountId}/cards/{cardReferenceToken} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/cards/{cardReferenceToken}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/deposits/{depositAccountId}/cards/{cardReferenceToken}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/deposits/{depositAccountId}/cards/{cardReferenceToken}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/deposits/{depositAccountId}/cards/{cardReferenceToken}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/cards/{cardReferenceToken}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/deposits/{depositAccountId}/cards/{cardReferenceToken}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /deposits/{depositAccountId}/cards/{cardReferenceToken}

Represents the information needed to delete a card associated to an account using its reference token.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
cardReferenceToken (required) string The reference token of the card to be returned. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The card was deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

getDepositAccountDocument (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/templates/{templateId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/templates/{templateId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/templates/{templateId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/templates/{templateId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/templates/{templateId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/templates/{templateId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/templates/{templateId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/templates/{templateId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/templates/{templateId}

Get deposit account document

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
templateId (required) string The ID of the deposit product template. path
startDate string(date) The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query
endDate string(date) The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query

Example responses

200 Response

"string"

Responses

Status Meaning Description Schema
200 OK The deposit account document has been returned. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account or document template was not found. ErrorResponse

startMaturity (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:startMaturity \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:startMaturity HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:startMaturity',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:startMaturity',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:startMaturity', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:startMaturity', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:startMaturity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:startMaturity", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:startMaturity

Represents information to start the maturity period for the specified deposit account.

Body parameter

{
  "maturityDate": "1987-04-26",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) StartMaturityAction Represents the action to start the maturity period for a deposit account. body

Example responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK The start maturity action has been posted. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

changeWithholdingTax (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:changeWithholdingTax \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:changeWithholdingTax HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:changeWithholdingTax',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:changeWithholdingTax',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:changeWithholdingTax', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:changeWithholdingTax', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:changeWithholdingTax");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:changeWithholdingTax", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:changeWithholdingTax

Change deposit account withholding tax rate

Body parameter

{
  "withholdingTaxSourceKey": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) ChangeWithholdingTaxAction Represents the information needed to change the withholding tax rate. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The withholding tax rate change has been applied to this deposit account. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

reopen (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:reopen \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:reopen HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:reopen',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:reopen',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:reopen', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:reopen', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:reopen");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:reopen", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:reopen

Reopen a deposit account

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit to be reopened. path
body (required) ReopenDepositAction Represents the information needed to reopen a deposit account. body

Example responses

200 Response

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Deposit account reopened. DepositAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

undoMaturity (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:undoMaturity \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:undoMaturity HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:undoMaturity',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:undoMaturity',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:undoMaturity', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:undoMaturity', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:undoMaturity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:undoMaturity", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:undoMaturity

Represents the action to undo the maturity period for the specified deposit account.

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body UndoMaturityAction Represents the action to undo the maturity period for the specified deposit account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The undo maturity action has been posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

changeInterestRate (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}:changeInterestRate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}:changeInterestRate HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}:changeInterestRate',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}:changeInterestRate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}:changeInterestRate', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}:changeInterestRate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}:changeInterestRate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}:changeInterestRate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}:changeInterestRate

Change deposit account interest rate

Body parameter

{
  "interestRate": 0,
  "notes": "string",
  "valueDate": "1987-04-26"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) ChangeInterestRateAction Represents the information needed to change the interest rate. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content The interest rate change has been applied to the deposit account. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

unblockFund (Deposit Accounts)

Code samples

# You can also use wget
curl -X DELETE /deposits/{depositAccountId}/blocks/{externalReferenceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /deposits/{depositAccountId}/blocks/{externalReferenceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/blocks/{externalReferenceId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/deposits/{depositAccountId}/blocks/{externalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/deposits/{depositAccountId}/blocks/{externalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/deposits/{depositAccountId}/blocks/{externalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/blocks/{externalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/deposits/{depositAccountId}/blocks/{externalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /deposits/{depositAccountId}/blocks/{externalReferenceId}

Unblock a previously blocked fund for a deposit account

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
externalReferenceId (required) string The external reference ID of the transaction. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The block fund has been removed. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The block fund was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

patchBlockFund (Deposit Accounts)

Code samples

# You can also use wget
curl -X PATCH /deposits/{depositAccountId}/blocks/{externalReferenceId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /deposits/{depositAccountId}/blocks/{externalReferenceId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/blocks/{externalReferenceId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/deposits/{depositAccountId}/blocks/{externalReferenceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/deposits/{depositAccountId}/blocks/{externalReferenceId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/deposits/{depositAccountId}/blocks/{externalReferenceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/blocks/{externalReferenceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/deposits/{depositAccountId}/blocks/{externalReferenceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /deposits/{depositAccountId}/blocks/{externalReferenceId}

Updates the amount of an existing blocked fund on a deposit account. If the new amount equals the seized amount the block fund will transition to a seized state.

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
externalReferenceId (required) string The external reference ID of the transaction. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The block amount was updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The block fund was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getAllBlocks (Deposit Accounts)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/blocks \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/blocks HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/blocks',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/blocks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/blocks', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/blocks', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/blocks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/blocks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/blocks

Get all block funds for a deposit account

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
state string The state of the block fund to filter on query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
state PENDING
state SEIZED
state REMOVED
state PARTIALLY_SEIZED

Example responses

200 Response

[
  {
    "accountKey": "string",
    "amount": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "externalReferenceId": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "notes": "string",
    "seizedAmount": 0,
    "state": "PENDING"
  }
]

Responses

Status Meaning Description Schema
200 OK The block funds have been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [BlockFund] [Represents the block fund amount that can be later seized on the account] none
» accountKey string The key of the account which block fund belongs to read-only
» amount (required) number The amount to be blocked none
» creationDate string(date-time) The date at which the block fund was created read-only
» externalReferenceId (required) string The external reference ID to be used to reference the block fund in subsequent requests none
» lastModifiedDate string(date-time) The date at which the block fund was created read-only
» notes string Notes about this block fund none
» seizedAmount number The amount that has been seized read-only
» state string The state of the block fund read-only

Enumerated Values

Property Value
state PENDING
state SEIZED
state REMOVED
state PARTIALLY_SEIZED

createBlockFund (Deposit Accounts)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/blocks \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/blocks HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/blocks',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/blocks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/blocks', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/blocks', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/blocks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/blocks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/blocks

Create a block fund for the account

Body parameter

{
  "amount": 0,
  "externalReferenceId": "string",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) BlockFund The block fund to be created. body

Example responses

201 Response

{
  "accountKey": "string",
  "amount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "externalReferenceId": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "seizedAmount": 0,
  "state": "PENDING"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The block fund was created. BlockFund
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found The deposit account was not found. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Deposit Account Interest Availability

Allows to create, get, update or delete Interest Availabilities.

makeBulkInterestAccountSettingsAvailabilities (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X POST /deposits/interest-availabilities:bulk \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/interest-availabilities:bulk HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/interest-availabilities:bulk',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/interest-availabilities:bulk',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/interest-availabilities:bulk', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/interest-availabilities:bulk', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/interest-availabilities:bulk");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/interest-availabilities:bulk", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/interest-availabilities:bulk

Create an interest availability for a bulk of deposit accounts.

To query the status and results of the bulk operation, use /bulks/{bulkProcessKey}.

Body parameter

{
  "accountFilter": {
    "ids": [
      "string"
    ],
    "productId": "string"
  },
  "interestAvailability": {
    "interestRateSettings": {
      "interestRate": 0,
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    },
    "startDate": "1987-04-26",
    "type": "INTEREST"
  }
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) BulkInterestAccountSettingsAvailabilityInput The information for creating bulk Interest Availabilities. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted The bulk Interest Availabilities have been created. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
202 Location string Bulk process key

getInterestAvailabilitiesList (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/interest-availabilities \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/interest-availabilities HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/interest-availabilities',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/interest-availabilities',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/interest-availabilities', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/interest-availabilities', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/interest-availabilities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/interest-availabilities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/interest-availabilities

Get the interest availability list for a deposit account.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
type string The type of Interest Availabilities. query
from string(date) The start date to get Interest Availabilities. query
to string(date) The end date to to get Interest Availabilities. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
type INTEREST
type OVERDRAFT
type TECHNICAL_OVERDRAFT

Example responses

200 Response

[
  {
    "encodedKey": "string",
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    },
    "startDate": "1987-04-26",
    "type": "INTEREST"
  }
]

Responses

Status Meaning Description Schema
200 OK List of Interest Availabilities has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Deposit Account or Interest Availability does not exist. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [InterestAccountSettingsAvailabilityResponse] [Interest Availability of a Deposit Account] none
» encodedKey string The encoded key of the Interest Availability, auto generated, unique. read-only
» interestRateSettings DepositAccountInterestRateSettings Represents information about the interest rate settings for deposit accounts. none
»» encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
»» interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
»» interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
»» interestRate number The interest rate for the deposit account. none
»» interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
»» interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
»» interestRateSource string The interest calculation method used. read-only
»» interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
»» interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»» endingDay integer(int32) The end date for the account period. Used to determine if this interest rate tier is used or not. none
»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
»» interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none
» startDate string(date) Start date of the Interest Availability. none
» type string Type of the interest. none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
type INTEREST
type OVERDRAFT
type TECHNICAL_OVERDRAFT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

createInterestAvailability (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X POST /deposits/{depositAccountId}/interest-availabilities \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /deposits/{depositAccountId}/interest-availabilities HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/deposits/{depositAccountId}/interest-availabilities',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/deposits/{depositAccountId}/interest-availabilities',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/deposits/{depositAccountId}/interest-availabilities', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/deposits/{depositAccountId}/interest-availabilities', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/interest-availabilities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/deposits/{depositAccountId}/interest-availabilities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /deposits/{depositAccountId}/interest-availabilities

Create an interest availability record for a deposit account.

Body parameter

{
  "interestRateSettings": {
    "interestRate": 0,
    "interestRateTiers": [
      {
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
depositAccountId (required) string The ID or encoded key of the deposit account. path
body (required) InterestAccountSettingsAvailability The Interest Availability to be created. body

Example responses

201 Response

{
  "encodedKey": "string",
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Interest Availability has been created. InterestAccountSettingsAvailabilityResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

getInterestAvailabilityById (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X GET /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}

Get an interest availability for a deposit account.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
interestAvailabilityKey (required) string The encoded key of the Interest Availability. path

Example responses

200 Response

{
  "encodedKey": "string",
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Responses

Status Meaning Description Schema
200 OK Interest Availability has been returned. InterestAccountSettingsAvailabilityResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Deposit Account or Interest Availability does not exist. ErrorResponse

updateInterestAvailability (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X PUT /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}

Update an interest availability for a deposit account.

Body parameter

{
  "interestRateSettings": {
    "interestRate": 0,
    "interestRateTiers": [
      {
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  }
}

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
interestAvailabilityKey (required) string The encoded key of the Interest Availability. path
body (required) InterestAccountSettingsAvailabilityForUpdate The Interest Availability to be created. body

Example responses

200 Response

{
  "encodedKey": "string",
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Responses

Status Meaning Description Schema
200 OK The Interest Availability has been updated. InterestAccountSettingsAvailabilityResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Deposit Account or Interest Availability does not exist. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

deleteInterestAvailability (Deposit Account Interest Availability)

Code samples

# You can also use wget
curl -X DELETE /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /deposits/{depositAccountId}/interest-availabilities/{interestAvailabilityKey}

Delete an interest availability for a deposit account.

Parameters

Name Type Description In
depositAccountId (required) string The ID or encoded key of the deposit account. path
interestAvailabilityKey (required) string The encoded key of the Interest Availability. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The Interest Availability has been deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Deposit Account or Interest Availability does not exist. ErrorResponse
409 Conflict Operation cannot be performed due to another pending operation that locked shared resources. ErrorResponse

Documents

Allows you to retrieve, create or delete documents.

createDocument (Documents)

Code samples

# You can also use wget
curl -X POST /documents \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /documents HTTP/1.1

Content-Type: multipart/form-data
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/documents',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/documents',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/documents', params={

}, headers = headers)

print r.json()

 'multipart/form-data',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/documents', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/documents");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /documents

Create document

Body parameter

ownerType: CLIENT
id: string
file: string
name: string
notes: string

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) object none body
» ownerType (required) string The type of the owner of the document. body
» id (required) string The ID or encoded key of the entity that owns the document. The ID or encoded key must belong to the entity indicated by the entity parameter. Possible entity types are :CLIENT, GROUP, LOAN_PRODUCT, SAVINGS_PRODUCT, CENTRE, BRANCH, USER, LOAN_ACCOUNT, DEPOSIT_ACCOUNT, ID_DOCUMENT, LINE_OF_CREDIT, GL_JOURNAL_ENTRY. If the entity is GL_JOURNAL_ENTRY, the value can also represent the Journal Entry Transaction ID. body
» file (required) string(binary) The file to be attached body
» name string The name (title) of the attached file. body
» notes string The description of the attached file. body

Enumerated Values

Parameter Value
» ownerType CLIENT
» ownerType GROUP
» ownerType LOAN_PRODUCT
» ownerType SAVINGS_PRODUCT
» ownerType CENTRE
» ownerType BRANCH
» ownerType USER
» ownerType LOAN_ACCOUNT
» ownerType DEPOSIT_ACCOUNT
» ownerType ID_DOCUMENT
» ownerType LINE_OF_CREDIT
» ownerType GL_JOURNAL_ENTRY

Example responses

201 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "fileName": "string",
  "fileSize": 0,
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "location": "string",
  "name": "string",
  "notes": "string",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "type": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Document created. Document
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Entity not found. ErrorResponse

downloadDocumentById (Documents)

Code samples

# You can also use wget
curl -X GET /documents/{documentId} \
  -H 'Accept: application/vnd.mambu.v2+file'

GET /documents/{documentId} HTTP/1.1

Accept: application/vnd.mambu.v2+file

var headers = {
  'Accept':'application/vnd.mambu.v2+file'

};

$.ajax({
  url: '/documents/{documentId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+file'
}

result = RestClient.get '/documents/{documentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+file'
}

r = requests.get('/documents/{documentId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+file',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/documents/{documentId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/documents/{documentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+file"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/documents/{documentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /documents/{documentId}

Download document

Parameters

Name Type Description In
documentId (required) string The ID or encoded key of the document to be returned.
The ID or encoded key of the document can be found by using the GET /documents/documentsMetadata API.
path

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Document downloaded. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Entity not found. ErrorResponse

Response Headers

Status Header Type Format Description
200 Content-Disposition string "The format is - attachment; filename="{fileName}.extension"";
200 Content-Length integer int32 The size of the file.

deleteDocumentById (Documents)

Code samples

# You can also use wget
curl -X DELETE /documents/{documentId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /documents/{documentId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/documents/{documentId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/documents/{documentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/documents/{documentId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/documents/{documentId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/documents/{documentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/documents/{documentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /documents/{documentId}

Delete document

Parameters

Name Type Description In
documentId (required) string The ID or encoded key of the document to be deleted.
The ID or encoded key of the document can be found by using the GET /documents/documentsMetadata API.
path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Successfully deleted the document. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Document was not found. ErrorResponse

getDocumentsByEntityId (Documents)

Code samples

# You can also use wget
curl -X GET /documents/documentsMetadata?entity=CLIENT&ownerKey=string \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /documents/documentsMetadata?entity=CLIENT&ownerKey=string HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/documents/documentsMetadata',
  method: 'get',
  data: '?entity=CLIENT&ownerKey=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/documents/documentsMetadata',
  params: {
  'entity' => 'string',
'ownerKey' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/documents/documentsMetadata', params={
  'entity': 'CLIENT',  'ownerKey': 'string'
}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/documents/documentsMetadata', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/documents/documentsMetadata?entity=CLIENT&ownerKey=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/documents/documentsMetadata", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /documents/documentsMetadata

Get all documents' metadata

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
entity (required) string The type of the owner of the document. query
ownerKey (required) string The ID or encoded key of the entity that owns the document. The ID or encoded key must belong to the entity indicated by the entity parameter. Possible entity types are :CLIENT, GROUP, LOAN_PRODUCT, SAVINGS_PRODUCT, CENTRE, BRANCH, USER, LOAN_ACCOUNT, DEPOSIT_ACCOUNT, ID_DOCUMENT, LINE_OF_CREDIT, GL_JOURNAL_ENTRY. If the entity is GL_JOURNAL_ENTRY, the value can also represent the Journal Entry Transaction ID. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
entity CLIENT
entity GROUP
entity LOAN_PRODUCT
entity SAVINGS_PRODUCT
entity CENTRE
entity BRANCH
entity USER
entity LOAN_ACCOUNT
entity DEPOSIT_ACCOUNT
entity ID_DOCUMENT
entity LINE_OF_CREDIT
entity GL_JOURNAL_ENTRY

Example responses

200 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "fileName": "string",
    "fileSize": 0,
    "id": 0,
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "location": "string",
    "name": "string",
    "notes": "string",
    "ownerKey": "string",
    "ownerType": "CLIENT",
    "type": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Successfully returned the list of all documents metadata. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Entity not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Document] [Holds information regarding the documents uploaded as attachments] none
» creationDate string(date-time) The creation date of the document, stored as UTC read-only
» encodedKey string The document encodedKey read-only
» fileName string The original file name of the document none
» fileSize integer(int64) The file size of the document none
» id (required) integer(int64) The document id none
» lastModifiedDate string(date-time) The last modified date of the document, stored as UTC read-only
» location string Location where the document can be found, eg /myfiles/mypicture.jpeg none
» name (required) string The name of the document none
» notes string Detailed notes about the document none
» ownerKey string Represents the holder of this document. If null, means nobody is the owner of this document read-only
» ownerType string Determines the owner type of the document read-only
» type (required) string The extension of the document none

Enumerated Values

Property Value
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

End of Day Processing Configuration

Retrieve and update the configuration for end of day processing.

End of Day (EOD) processing refers to the daily and hourly jobs that are executed usually at the end of each day in order to manage the data in your system properly.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (End of Day Processing Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/endofdayprocessing.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/endofdayprocessing.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/endofdayprocessing.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/endofdayprocessing.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/endofdayprocessing.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/endofdayprocessing.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/endofdayprocessing.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/endofdayprocessing.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/endofdayprocessing.yaml

Get end of day processing configuration

Example responses

An example of an end of day processing configuration

---
endOfDayProcessingMethod: "AUTOMATIC"
accountingCutOffTime: "10:00:00"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK End of day processing configuration returned. EndOfDayProcessingConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (End of Day Processing Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/endofdayprocessing.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/endofdayprocessing.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/endofdayprocessing.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/endofdayprocessing.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/endofdayprocessing.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/endofdayprocessing.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/endofdayprocessing.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/endofdayprocessing.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/endofdayprocessing.yaml

Update end of day processing configuration

Body parameter

An example of an end of day processing configuration

---
endOfDayProcessingMethod: "AUTOMATIC"
accountingCutOffTime: "10:00:00"

Parameters

Name Type Description In
body EndOfDayProcessingConfiguration Model representation of the end of day processing configuration. body

Example responses

200 - Success Response

400 Invalid Syntax

{
    "errors": [
        {
            "errorCode": 10811,
            "errorSource": "Accounting cut off time must have HH:mm:ss format",
            "errorReason": "END_OF_DAY_PROCESSING_INVALID_FORMAT"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK End of day processing configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found End of day processing configuration not found. ErrorResponse

Response Schema

Funding Sources

Allows performing actions for loan account funding sources owned by client investors. Sell is the only permitted action. This relates to the peer-to-peer (P2P) lending feature. For more information, see Secondary Marketplace for Peer-to-Peer Loans in our User Guide.

sell (Funding Sources)

Code samples

# You can also use wget
curl -X POST /fundingsources/{fundingSourceId}:sell \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /fundingsources/{fundingSourceId}:sell HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/fundingsources/{fundingSourceId}:sell',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/fundingsources/{fundingSourceId}:sell',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/fundingsources/{fundingSourceId}:sell', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/fundingsources/{fundingSourceId}:sell', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/fundingsources/{fundingSourceId}:sell");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/fundingsources/{fundingSourceId}:sell", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /fundingsources/{fundingSourceId}:sell

Performs the sell of a funding share owned by an investor. Investors can sell the total share or only a part of the investment. In case of a partial sale, multiple operations can be performed until the entire investment is sold. For the seller, money will be deposited in the funding account, for the buyers money will be withdrawn from provided accounts.

Body parameter

{
  "purchases": [
    {
      "amount": 0,
      "depositAccountKey": "string",
      "price": 0
    }
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
fundingSourceId (required) string Id/Encoded key of the funding source path
body (required) SellFundingSourceAction List of purchases containing details about buyer, price, amount body

Example responses

200 Response

[
  {
    "accountBalances": {
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "feesAmount": 0,
      "fractionAmount": 0,
      "fundsAmount": 0,
      "interestAmount": 0,
      "overdraftAmount": 0,
      "overdraftFeesAmount": 0,
      "overdraftInterestAmount": 0,
      "technicalOverdraftAmount": 0,
      "technicalOverdraftInterestAmount": 0
    },
    "amount": 0,
    "blockId": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "holdExternalReferenceId": "string",
    "id": "string",
    "interestAccruedAmounts": {
      "interestAccrued": 0,
      "negativeInterestAccrued": 0,
      "overdraftInterestAccrued": 0,
      "technicalOverdraftInterestAccrued": 0
    },
    "migrationEventKey": "string",
    "notes": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "paymentDetails": {
      "creditor": {
        "name": "string"
      },
      "creditorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "creditorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "debtor": {
        "name": "string"
      },
      "debtorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "debtorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "paymentIdentification": {
        "endToEndIdentification": "string",
        "instructionIdentification": "string",
        "transactionIdentification": "string"
      },
      "paymentTypeInformation": {
        "serviceLevel": {
          "code": "string"
        }
      },
      "remittanceInformation": {
        "structured": {
          "creditorReferenceInformation": {
            "reference": "string",
            "referenceIssuer": "string",
            "referenceType": "string"
          }
        },
        "unstructured": "string"
      }
    },
    "paymentOrderId": "string",
    "taxes": {
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftInterestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "overdraftSettings": {
        "overdraftLimit": 0
      }
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Sell funding source action posted Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Funding source not found ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [DepositTransaction] [Represents the action performed on an Deposit Account after which the account's amount changes its value.] none
» accountBalances DepositTransactionBalances The balances changed within a transaction. none
»» totalBalance number The running balance owed by deposit none
» adjustmentTransactionKey string The key of the deposit transaction where the adjustment for this transaction was made (if any adjustment was involved) none
» affectedAmounts DepositAffectedAmounts The amounts affected after completing the deposit transaction none
»» feesAmount number Amount of fees involved in a transaction that affects an account with positive balance none
»» fractionAmount number In the case of an LOAN_FRACTION_BOUGHT this represent the fraction amount which was bought from another investor none
»» fundsAmount number Balance change amount involved in a transaction that affects an account with positive balance none
»» interestAmount number Amount of interest involved in a transaction that affects an account with positive balance none
»» overdraftAmount number The amount of money that was added/subtracted from the account by this transaction as overdraft none
»» overdraftFeesAmount number Fees amount involved in a transaction that affects an overdraft none
»» overdraftInterestAmount number Interest amount involved in a transaction that affects an overdraft none
»» technicalOverdraftAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft none
»» technicalOverdraftInterestAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft interest none
» amount number How much was added/removed in account none
» blockId string The block fund id associated with the transaction none
» bookingDate string(date-time) The date when corresponding JE is booked (as Organization Time) none
» branchKey string The branch where the transaction was performed read-only
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed read-only
» creationDate string(date-time) The date when this deposit transaction was created read-only
» currencyCode string The currency in which this transaction was posted none
» encodedKey string The encoded key of the deposit transaction, auto generated, unique read-only
» externalId string The external id of the deposit transaction, customizable, unique none
» fees [DepositFee] All the amounts that have been applied or paid within this transaction and involved predefined fees read-only
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» holdExternalReferenceId string The external id of an account authorization hold none
» id string The id of the deposit transaction, auto generated, unique none
» interestAccruedAmounts DepositInterestAccruedAmounts Represents the accrued interest amounts for an Interest Applied deposit transaction. none
»» interestAccrued number The amount of positive interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» negativeInterestAccrued number The amount of negative interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» overdraftInterestAccrued number The amount of overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
»» technicalOverdraftInterestAccrued number The amount of technical overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
» migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, track which 'migration event' they came from none
» notes string Extra notes about this deposit transaction none
» originalTransactionKey string The encodedKey of the transaction that was adjusted as part of this one. Available only for adjustment transactions none
» parentAccountKey string The key of the parent deposit account none
» paymentDetails PaymentDetails The payment information including account identification details none
»» creditor Party The details of the party for a transaction none
»»» name string The name of the party none
»» creditorAccount AccountDetails The account currency and identification none
»»» currency string The currency of the account none
»»» identification AccountIdentification The account identification details none
»»»» iban string The account unique identifier none
»»»» other OtherAccountIdentification Represents other way of identification for the account. none
»»»»» identification string The identification of the payer/payee none
»»»»» scheme string The identification scheme none
»» creditorAgent Agent The agent details for a party none
»»» financialInstitutionIdentification FinancialInstitutionIdentification The identification of the financial institution none
»»»» bic string Business identifier code none
»» debtor Party The details of the party for a transaction none
»» debtorAccount AccountDetails The account currency and identification none
»» debtorAgent Agent The agent details for a party none
»» paymentIdentification PaymentIdentification The payment identification details none
»»» endToEndIdentification string Identifier assigned by the initiating party to the transaction. Limited to 35 characters none
»»» instructionIdentification string Identifier of a payment instruction none
»»» transactionIdentification string Identifier unique for a period assigned by the first initiating party to the transaction none
»» paymentTypeInformation PaymentTypeInformation The information specifying the type of transaction none
»»» serviceLevel ServiceLevel The rules under which the transaction should be processed none
»»»» code string The code for a pre-agreed service or level of service between the parties none
»» remittanceInformation RemittanceInformation The information specifying the payment items that are intended to settle none
»»» structured Structured The information specifying the payment items that are intended to settle none
»»»» creditorReferenceInformation CreditorReferenceInformation Represents the reference to the underlying documents of the payment. none
»»»»» reference string The reference information of the creditor's underlying documents none
»»»»» referenceIssuer string The entity that assigns the reference type none
»»»»» referenceType string The type of creditor reference none
»»» unstructured string Information supplied to match the items of the payment in an unstructured form none
» paymentOrderId string The payment order id of the deposit transaction, customizable none
» taxes DepositTaxes The taxes applied within a transaction none
»» taxRate number The tax rate that was set or changed in this transaction none
» terms DepositTerms The deposit transaction terms none
»» interestSettings DepositTransactionInterestSettings The interest settings, holds all the properties regarding interests for the deposit account none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate for the deposit account none
»» overdraftInterestSettings DepositOverdraftInterestSettings Holds the deposit overdraft interest settings none
»»» indexInterestRate number The value of the index interest rate set or changed in this transaction none
»»» interestRate number The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches none
»» overdraftSettings DepositOverdraftSettings Holds the deposit overdraft settings for a transaction none
»»» overdraftLimit number The overdraft limit that was set or changed in this transaction none
» tillKey string The till key associated with this transaction none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of the deposit transaction none
» userKey string The person that performed the transaction none
» valueDate string(date-time) Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time) none

Enumerated Values

Property Value
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY
type IMPORT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type DEPOSIT
type ADJUSTMENT
type WITHDRAWAL
type WITHDRAWAL_ADJUSTMENT
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type FEE_APPLIED
type FEE_ADJUSTED
type FEES_DUE_REDUCED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type NET_DIFF_INTEREST
type FEE_REDUCTION_ADJUSTMENT
type WITHHOLDING_TAX
type WITHHOLDING_TAX_ADJUSTMENT
type INTEREST_RATE_CHANGED
type OVERDRAFT_INTEREST_RATE_CHANGED
type OVERDRAFT_LIMIT_CHANGED
type BRANCH_CHANGED
type LOAN_FUNDED
type LOAN_FUNDED_ADJUSTMENT
type LOAN_REPAID
type LOAN_REPAID_ADJUSTMENT
type LOAN_FRACTION_BOUGHT
type LOAN_FRACTION_BOUGHT_ADJUSTMENT
type LOAN_FRACTION_SOLD
type LOAN_FRACTION_SOLD_ADJUSTMENT
type SEIZED_AMOUNT

General Setup

Allows you to retrieve general setup.

getGeneralSetup (General Setup)

Code samples

# You can also use wget
curl -X GET /setup/general \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /setup/general HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/setup/general',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/setup/general',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/setup/general', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/setup/general', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/setup/general");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/setup/general", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /setup/general

Get general setup

Example responses

200 Response

{
  "accountingCutOffTime": "string",
  "approvalDisbursalTwoManRuleEnabled": true,
  "arrearsDaysBeforeWriteOff": 0,
  "assignmentConstraints": [
    "BRANCH"
  ],
  "automatedAccountingClosuresInterval": 0,
  "clientIdFormat": "string",
  "dashboardConfigurations": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "name": "LATEST_ACTIVITY"
    }
  ],
  "dateFormats": {
    "property1": "string",
    "property2": "string"
  },
  "decimalSeparator": "COMMA",
  "defaultClientRoleKey": "string",
  "defaultClientState": "PENDING_APPROVAL",
  "defaultGroupRoleKey": "string",
  "defaultLineOfCreditState": "PENDING_APPROVAL",
  "defaultTransactionChannelKey": "string",
  "duplicateClientChecks": [
    {
      "active": true,
      "dataField": "string",
      "dataItemType": "LOANS",
      "encodedKey": "string",
      "groupIndex": 0
    }
  ],
  "duplicateClientConstraintAction": "NONE",
  "enabledComponents": [
    "LOANS"
  ],
  "encodedKey": "string",
  "eodProcessingMethod": "AUTOMATIC",
  "exposureAmount": 0,
  "exposureType": "UNLIMITED",
  "groupIdFormat": "string",
  "groupSizeLimitType": "HARD",
  "interBranchTransferGLAccountKey": "string",
  "lineOfCreditIdFormat": "string",
  "maxAllowedIdDocumentAttachments": 0,
  "maxAllowedJournalEntryDocumentAttachments": 0,
  "maxAllowedUndoClosurePeriod": 0,
  "maxGroupSizeLimit": 0,
  "minGroupSizeLimit": 0,
  "multipleGroupMemberships": "UNLIMITED",
  "multipleLoans": "UNLIMITED",
  "otherIdDocumentsEnabled": true,
  "overdraftInterestEodBalanceDate": "2016-09-06T13:37:50+03:00",
  "tillIdFormat": "string"
}

Responses

Status Meaning Description Schema
200 OK General setup returned. GeneralSetup
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Groups

Allows you to search groups by various criteria.

getAll (Groups)

Code samples

# You can also use wget
curl -X GET /groups \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /groups HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/groups',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/groups', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/groups', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /groups

Get groups

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
creditOfficerUsername string The username of the credit officer to whom the entities are assigned to query
branchId string The id/encodedKey of the branch to which the entities are assigned to query
centreId string The id/encodedKey of the centre to which the entities are assigned to query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: creationDate, lastModifiedDate, groupName
Default sorting is done by creationDate:DESC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "emailAddress": "string",
    "encodedKey": "string",
    "groupMembers": [
      {
        "clientKey": "string",
        "roles": [
          {
            "encodedKey": "string",
            "groupRoleNameKey": "string",
            "roleName": "string",
            "roleNameId": "string"
          }
        ]
      }
    ],
    "groupName": "string",
    "groupRoleKey": "string",
    "homePhone": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "loanCycle": 0,
    "migrationEventKey": "string",
    "mobilePhone": "string",
    "notes": "string",
    "preferredLanguage": "ENGLISH"
  }
]

Responses

Status Meaning Description Schema
200 OK Groups list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Group] [A group is a type of client that can represent a non-physical person such as a company client or a grouping of individual clients. A group can have its own accounts and can optionally have individual clients as members, in which case they also need to have an individual profile in Mambu.] none
» addresses [Address] The addresses associated with this group. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» assignedBranchKey string Key of the branch this group is assigned to. none
» assignedCentreKey string Key of the centre this group is assigned to. none
» assignedUserKey string Key of the user this group is assigned to. none
» creationDate string(date-time) The date the group was created. read-only
» emailAddress string The email address associated with the group. none
» encodedKey (required) string The encoded key of the group, which is auto generated, and must be unique. read-only
» groupMembers [GroupMember] The members of this group. none
»» clientKey (required) string The encoded key of the client assigned as member of the group. none
»» roles [GroupRole] The group role name associated with a group member. none
»»» encodedKey string The encoded key of the group role name, which is auto generated, and unique. read-only
»»» groupRoleNameKey (required) string The group role name key. none
»»» roleName string The group role name. read-only
»»» roleNameId string The group role name ID. read-only
» groupName (required) string The name of the group. none
» groupRoleKey string A role which describes the intended use of a group in the system. none
» homePhone string The home phone number associated with the group. none
» id (required) string The ID of the group, which can be generated and customized, but must be unique. none
» lastModifiedDate string(date-time) The last date the group was updated. read-only
» loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for this client. When the closing operation is reverted, this is reduced. read-only
» migrationEventKey string The migration event encoded key associated with this group. read-only
» mobilePhone string The mobile phone number associated with the group. none
» notes string Extra notes about this group. none
» preferredLanguage string The preferred language associated with the group (used for the notifications). none

Enumerated Values

Property Value
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Groups)

Code samples

# You can also use wget
curl -X POST /groups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /groups HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/groups',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/groups',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/groups', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/groups', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /groups

Create group

Body parameter

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "emailAddress": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "groupRoleNameKey": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Group Group to be created. body

Example responses

201 Response

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "encodedKey": "string",
          "groupRoleNameKey": "string",
          "roleName": "string",
          "roleNameId": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanCycle": 0,
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Group created. Group
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getCreditArrangementsByGroupIdOrKey (Groups)

Code samples

# You can also use wget
curl -X GET /groups/{groupId}/creditarrangements \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /groups/{groupId}/creditarrangements HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups/{groupId}/creditarrangements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/groups/{groupId}/creditarrangements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/groups/{groupId}/creditarrangements', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/groups/{groupId}/creditarrangements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups/{groupId}/creditarrangements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/groups/{groupId}/creditarrangements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /groups/{groupId}/creditarrangements

Credit arrangements list returned.

Parameters

Name Type Description In
groupId (required) string The ID or encoded key of the group to be returned. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "amount": 0,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "availableCreditAmount": 0,
    "closedDate": "2016-09-06T13:37:50+03:00",
    "consumedCreditAmount": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "encodedKey": "string",
    "expireDate": "2016-09-06T13:37:50+03:00",
    "exposureLimitType": "APPROVED_AMOUNT",
    "holderKey": "string",
    "holderType": "CLIENT",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "notes": "string",
    "startDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING_APPROVAL",
    "subState": "PENDING_APPROVAL"
  }
]

Responses

Status Meaning Description Schema
200 OK Credit arrangements list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [CreditArrangement] [Represents a credit arrangement.] none
» amount (required) number The maximum credit amount the client can be exposed to. none
» approvedDate string(date-time) The date when the credit arrangement was approved. read-only
» availableCreditAmount number The available amount of the credit arrangement. read-only
» closedDate string(date-time) The date when the credit arrangement was closed. read-only
» consumedCreditAmount number The consumed amount of the credit arrangement, which is calculated as the difference between the amount and available amount. read-only
» creationDate string(date-time) The date when the credit arrangement was created. read-only
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the credit arrangement, it is auto generated, and unique. read-only
» expireDate (required) string(date-time) The date when the credit arrangement expires. none
» exposureLimitType string The type of exposure limit calculation method used for the credit arrangement. none
» holderKey (required) string The encoded key of the credit arrangement holder (individual client or group). none
» holderType (required) string The type of the credit arrangement holder (individual client or group). none
» id string The ID of credit arrangement, can be generated and customized, and must be unique. none
» lastModifiedDate string(date-time) The last date when the credit arrangement was modified. read-only
» notes string The notes or description of the credit arrangement. none
» startDate (required) string(date-time) The start date from which the credit arrangement became active. none
» state string The state of the credit arrangement. read-only
» subState string The substate of credit arrangement. read-only

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
exposureLimitType APPROVED_AMOUNT
exposureLimitType OUTSTANDING_AMOUNT
holderType CLIENT
holderType GROUP
state PENDING_APPROVAL
state APPROVED
state ACTIVE
state CLOSED
state WITHDRAWN
state REJECTED
subState PENDING_APPROVAL
subState APPROVED
subState ACTIVE
subState CLOSED
subState WITHDRAWN
subState REJECTED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getById (Groups)

Code samples

# You can also use wget
curl -X GET /groups/{groupId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /groups/{groupId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups/{groupId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/groups/{groupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/groups/{groupId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/groups/{groupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups/{groupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/groups/{groupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /groups/{groupId}

Get group

Parameters

Name Type Description In
groupId (required) string The ID or encoded key of the group to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "encodedKey": "string",
          "groupRoleNameKey": "string",
          "roleName": "string",
          "roleNameId": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanCycle": 0,
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

Responses

Status Meaning Description Schema
200 OK Group returned. Group
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group not found. ErrorResponse

update (Groups)

Code samples

# You can also use wget
curl -X PUT /groups/{groupId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /groups/{groupId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups/{groupId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/groups/{groupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/groups/{groupId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/groups/{groupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups/{groupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/groups/{groupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /groups/{groupId}

Update group

Body parameter

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "emailAddress": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "groupRoleNameKey": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

Parameters

Name Type Description In
groupId (required) string The ID or encoded key of the group to be updated. path
body (required) Group Group to be updated. body

Example responses

200 Response

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "encodedKey": "string",
          "groupRoleNameKey": "string",
          "roleName": "string",
          "roleNameId": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanCycle": 0,
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

Responses

Status Meaning Description Schema
200 OK Group updated. Group
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group not found. ErrorResponse

delete (Groups)

Code samples

# You can also use wget
curl -X DELETE /groups/{groupId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /groups/{groupId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups/{groupId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/groups/{groupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/groups/{groupId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/groups/{groupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups/{groupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/groups/{groupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /groups/{groupId}

Delete group

Parameters

Name Type Description In
groupId (required) string The ID or encoded key of the group to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Group deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group not found. ErrorResponse

patch (Groups)

Code samples

# You can also use wget
curl -X PATCH /groups/{groupId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /groups/{groupId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups/{groupId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/groups/{groupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/groups/{groupId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/groups/{groupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups/{groupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/groups/{groupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /groups/{groupId}

Partially update group

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
groupId (required) string The ID or encoded key of the group to be updated. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Group updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group not found. ErrorResponse

Code samples

# You can also use wget
curl -X POST /groups:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /groups:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/groups:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/groups:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/groups:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/groups:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/groups:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/groups:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /groups:search

Search groups

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) GroupSearchCriteria Criteria to be used to search groups. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "addresses": [
      {
        "city": "string",
        "country": "string",
        "encodedKey": "string",
        "indexInList": 0,
        "latitude": 0,
        "line1": "string",
        "line2": "string",
        "longitude": 0,
        "parentKey": "string",
        "postcode": "string",
        "region": "string"
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "emailAddress": "string",
    "encodedKey": "string",
    "groupMembers": [
      {
        "clientKey": "string",
        "roles": [
          {
            "encodedKey": "string",
            "groupRoleNameKey": "string",
            "roleName": "string",
            "roleNameId": "string"
          }
        ]
      }
    ],
    "groupName": "string",
    "groupRoleKey": "string",
    "homePhone": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "loanCycle": 0,
    "migrationEventKey": "string",
    "mobilePhone": "string",
    "notes": "string",
    "preferredLanguage": "ENGLISH"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of group search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Group] [A group is a type of client that can represent a non-physical person such as a company client or a grouping of individual clients. A group can have its own accounts and can optionally have individual clients as members, in which case they also need to have an individual profile in Mambu.] none
» addresses [Address] The addresses associated with this group. none
»» city string The city for the address. none
»» country string The country. none
»» encodedKey string The address encoded key, which is unique and generated. read-only
»» indexInList integer(int32) The index of this address in the list of addresses. none
»» latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
»» line1 string The first line of the address. none
»» line2 string The second line of the address. none
»» longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
»» parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
»» postcode string The post code. none
»» region string The region for the address. none
» assignedBranchKey string Key of the branch this group is assigned to. none
» assignedCentreKey string Key of the centre this group is assigned to. none
» assignedUserKey string Key of the user this group is assigned to. none
» creationDate string(date-time) The date the group was created. read-only
» emailAddress string The email address associated with the group. none
» encodedKey (required) string The encoded key of the group, which is auto generated, and must be unique. read-only
» groupMembers [GroupMember] The members of this group. none
»» clientKey (required) string The encoded key of the client assigned as member of the group. none
»» roles [GroupRole] The group role name associated with a group member. none
»»» encodedKey string The encoded key of the group role name, which is auto generated, and unique. read-only
»»» groupRoleNameKey (required) string The group role name key. none
»»» roleName string The group role name. read-only
»»» roleNameId string The group role name ID. read-only
» groupName (required) string The name of the group. none
» groupRoleKey string A role which describes the intended use of a group in the system. none
» homePhone string The home phone number associated with the group. none
» id (required) string The ID of the group, which can be generated and customized, but must be unique. none
» lastModifiedDate string(date-time) The last date the group was updated. read-only
» loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for this client. When the closing operation is reverted, this is reduced. read-only
» migrationEventKey string The migration event encoded key associated with this group. read-only
» mobilePhone string The mobile phone number associated with the group. none
» notes string Extra notes about this group. none
» preferredLanguage string The preferred language associated with the group (used for the notifications). none

Enumerated Values

Property Value
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Group Role Names Configuration

Retrieve and update the configuration for group role names.

Group role names are used to determine specific roles for members within a group. For more information about this resource, see Group Role Names Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Group Role Names Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/grouprolenames.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/grouprolenames.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/grouprolenames.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/grouprolenames.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/grouprolenames.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/grouprolenames.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/grouprolenames.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/grouprolenames.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/grouprolenames.yaml

Get group role names configuration

Example responses

An array of group role names and their IDs

---
groupRoleNames:
- id: "281227669"
  name: "Secretary"
- id: "328808045"
  name: "President"
- id: "715206643"
  name: "Treasurer"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Group role names configuration returned. GroupRoleNamesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found none None

Response Schema

update (Group Role Names Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/grouprolenames.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/grouprolenames.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/grouprolenames.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/grouprolenames.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/grouprolenames.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/grouprolenames.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/grouprolenames.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/grouprolenames.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/grouprolenames.yaml

Update group role names configuration

Body parameter

An array of group role names and their IDs

---
groupRoleNames:
- id: "281227669"
  name: "Secretary"
- id: "328808045"
  name: "President"
- id: "715206643"
  name: "Treasurer"

Parameters

Name Type Description In
body GroupRoleNamesConfiguration Represents the group role names configuration. body

Example responses

200 - Success response

---
warnings: []

400 - Example validation failure

{
    "errors": [
        {
            "errorCode": 9804,
            "errorSource": "GroupRoleName[id = 281227669]: The id must not be duplicate",
            "errorReason": "GROUP_ROLE_NAME_DUPLICATE_ID"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Group role names configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Group role names configuration not found. ErrorResponse

Response Schema

GL Accounts

Allows you to retrieve GL accounts.

getById (GL Accounts)

Code samples

# You can also use wget
curl -X GET /glaccounts/{glAccountId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /glaccounts/{glAccountId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/glaccounts/{glAccountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/glaccounts/{glAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/glaccounts/{glAccountId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/glaccounts/{glAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/glaccounts/{glAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/glaccounts/{glAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /glaccounts/{glAccountId}

Get general ledger account

Parameters

Name Type Description In
glAccountId (required) string The general ledger account code or encoded key. path
from string(date) The start date to calculate the account balance from. query
to string(date) The end date to calculate the account balance to. query
branchId string The branch ID to use to calculate general ledger account balances. query
balanceExcluded boolean TRUE if the balance is excluded, FALSE otherwise. query

Example responses

200 Response

{
  "activated": true,
  "allowManualJournalEntries": true,
  "balance": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "description": "string",
  "encodedKey": "string",
  "glCode": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "stripTrailingZeros": true,
  "type": "ASSET",
  "usage": "DETAIL"
}

Responses

Status Meaning Description Schema
200 OK General ledger account returned. GLAccount
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found General ledger account not found. ErrorResponse

patch (GL Accounts)

Code samples

# You can also use wget
curl -X PATCH /glaccounts/{glAccountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /glaccounts/{glAccountId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/glaccounts/{glAccountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/glaccounts/{glAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/glaccounts/{glAccountId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/glaccounts/{glAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/glaccounts/{glAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/glaccounts/{glAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /glaccounts/{glAccountId}

Partially update an existing general ledger account

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
glAccountId (required) string The general ledger account code or encoded key. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content General ledger account updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found General ledger account not found. ErrorResponse

getAll (GL Accounts)

Code samples

# You can also use wget
curl -X GET /glaccounts?type=ASSET \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /glaccounts?type=ASSET HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/glaccounts',
  method: 'get',
  data: '?type=ASSET',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/glaccounts',
  params: {
  'type' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/glaccounts', params={
  'type': 'ASSET'
}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/glaccounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/glaccounts?type=ASSET");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/glaccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /glaccounts

Get general ledger accounts

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
type (required) string The general ledger account type. query
from string(date) The start date to calculate the account balance from. query
to string(date) The end date to calculate the account balance to. query
branchId string The branch ID that the general ledger account balances are generated for. query
balanceExcluded boolean TRUE if the balance is excluded, FALSE otherwise. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE

Example responses

200 Response

[
  {
    "activated": true,
    "allowManualJournalEntries": true,
    "balance": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "description": "string",
    "encodedKey": "string",
    "glCode": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "stripTrailingZeros": true,
    "type": "ASSET",
    "usage": "DETAIL"
  }
]

Responses

Status Meaning Description Schema
200 OK General ledger accounts list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [GLAccount] [Represents a general ledger account.] none
» activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
» allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
» balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
» creationDate string(date-time) The creation date for this account, which is stored as UTC. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» description string A description of the general ledger account. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
» lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
» migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
» name string The name of the general ledger account. none
» stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
» type string The general ledger account type. none
» usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (GL Accounts)

Code samples

# You can also use wget
curl -X POST /glaccounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /glaccounts HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/glaccounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/glaccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/glaccounts', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/glaccounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/glaccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/glaccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /glaccounts

Create general ledger account

Body parameter

[
  {
    "allowManualJournalEntries": true,
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "description": "string",
    "glCode": "string",
    "name": "string",
    "stripTrailingZeros": true,
    "type": "ASSET",
    "usage": "DETAIL"
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) GLAccountInput Represents the information to create a general ledger account. body

Example responses

201 Response

[
  {
    "activated": true,
    "allowManualJournalEntries": true,
    "balance": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "description": "string",
    "encodedKey": "string",
    "glCode": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "stripTrailingZeros": true,
    "type": "ASSET",
    "usage": "DETAIL"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created General ledger account created. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Currency not found. ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [GLAccount] [Represents a general ledger account.] none
» activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
» allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
» balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
» creationDate string(date-time) The creation date for this account, which is stored as UTC. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» description string A description of the general ledger account. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
» lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
» migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
» name string The name of the general ledger account. none
» stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
» type string The general ledger account type. none
» usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER

Holidays

Allows operations on the general holidays and non working days of the organization.

get (Holidays)

Code samples

# You can also use wget
curl -X GET /organization/holidays \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/holidays HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/holidays',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/holidays', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/holidays', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/holidays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/holidays

Get holidays

Example responses

200 Response

{
  "holidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Responses

Status Meaning Description Schema
200 OK Holidays returned. Holidays
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Holidays)

Code samples

# You can also use wget
curl -X PUT /organization/holidays \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /organization/holidays HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/organization/holidays',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/organization/holidays', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/organization/holidays', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/organization/holidays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /organization/holidays

Update holidays

Body parameter

{
  "holidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Parameters

Name Type Description In
body (required) Holidays Holidays to be updated. body

Example responses

200 Response

{
  "holidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Responses

Status Meaning Description Schema
200 OK Holidays updated. Holidays
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Holidays not found. ErrorResponse

getNonWorkingDays (Holidays)

Code samples

# You can also use wget
curl -X GET /organization/holidays/nonworkingdays \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/holidays/nonworkingdays HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays/nonworkingdays',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/holidays/nonworkingdays',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/holidays/nonworkingdays', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/holidays/nonworkingdays', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays/nonworkingdays");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/holidays/nonworkingdays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/holidays/nonworkingdays

Get non-working days

Example responses

200 Response

{
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Responses

Status Meaning Description Schema
200 OK Non-working days returned. NonWorkingDays
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

updateNonWorkingDays (Holidays)

Code samples

# You can also use wget
curl -X PUT /organization/holidays/nonworkingdays \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /organization/holidays/nonworkingdays HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays/nonworkingdays',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/organization/holidays/nonworkingdays',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/organization/holidays/nonworkingdays', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/organization/holidays/nonworkingdays', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays/nonworkingdays");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/organization/holidays/nonworkingdays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /organization/holidays/nonworkingdays

Update non-working days

Body parameter

{
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Parameters

Name Type Description In
body (required) NonWorkingDays Non-working days to be updated. body

Example responses

200 Response

{
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Responses

Status Meaning Description Schema
200 OK Non-working days updated. NonWorkingDays
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Non-working days not found. ErrorResponse

getByIdentifier (Holidays)

Code samples

# You can also use wget
curl -X GET /organization/holidays/general/{holidayIdentifier} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/holidays/general/{holidayIdentifier} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays/general/{holidayIdentifier}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/holidays/general/{holidayIdentifier}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/holidays/general/{holidayIdentifier}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/holidays/general/{holidayIdentifier}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays/general/{holidayIdentifier}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/holidays/general/{holidayIdentifier}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/holidays/general/{holidayIdentifier}

Get holiday

Parameters

Name Type Description In
holidayIdentifier (required) string The ID or encodedKey of the holiday. path

Example responses

200 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "date": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "isAnnuallyRecurring": true,
  "name": "string"
}

Responses

Status Meaning Description Schema
200 OK Holiday returned. Holiday
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Holiday not found. ErrorResponse
409 Conflict Invalid operation due to conflicting state, the provided ID is not unique. Update holidays to have unique IDs. ErrorResponse

delete (Holidays)

Code samples

# You can also use wget
curl -X DELETE /organization/holidays/general/{holidayIdentifier} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /organization/holidays/general/{holidayIdentifier} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/holidays/general/{holidayIdentifier}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/organization/holidays/general/{holidayIdentifier}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/organization/holidays/general/{holidayIdentifier}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/organization/holidays/general/{holidayIdentifier}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays/general/{holidayIdentifier}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/organization/holidays/general/{holidayIdentifier}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /organization/holidays/general/{holidayIdentifier}

Delete holiday

Parameters

Name Type Description In
holidayIdentifier (required) string The ID of the holiday to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Holidays deleted None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Holiday not found. ErrorResponse
409 Conflict Invalid operation due to conflicting state, the provided ID is not unique. Update holidays to have unique IDs. ErrorResponse

create (Holidays)

Code samples

# You can also use wget
curl -X POST /organization/holidays/general \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /organization/holidays/general HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/organization/holidays/general',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/organization/holidays/general',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/organization/holidays/general', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/organization/holidays/general', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/holidays/general");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/organization/holidays/general", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /organization/holidays/general

Create holidays

Body parameter

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "date": "1987-04-26",
    "id": 0,
    "isAnnuallyRecurring": true,
    "name": "string"
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Holiday Holiday values used to create multiple holidays. body

Example responses

201 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "date": "1987-04-26",
    "encodedKey": "string",
    "id": 0,
    "isAnnuallyRecurring": true,
    "name": "string"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Holidays created. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [Holiday] [Represents the holiday.] none
» creationDate string(date-time) The date when the holiday was created. none
» date string(date) The date the holiday takes place. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» id integer(int64) The ID of the holiday. none
» isAnnuallyRecurring boolean TRUE if a holiday is annually recurring, FALSE otherwise. none
» name string The name of the holiday. none

Holidays Configuration

Retrieve and update the configuration for holidays and non-working days.

Holidays and non-working days apply to the whole organization. Loan products can be configured so that installments which would fall on holidays and non-working days are automatically rescheduled. For more information about this resource, see Holidays Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Holidays Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/holidays.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/holidays.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/holidays.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/holidays.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/holidays.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/holidays.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/holidays.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/holidays.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/holidays.yaml

Get holidays configuration

Example responses

an array of holidays

---
nonWorkingDays:
- "SATURDAY"
- "SUNDAY"
holidays:
- id: 0
  name: "Remembrance Day"
  dayOfMonth: 26
  monthOfYear: 4
  year: 2020
  isAnnuallyRecurring: true
- id: 1
  name: "World Peace Day"
  dayOfMonth: 22
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: true
- id: 2
  name: "Independence Day"
  dayOfMonth: 25
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: true
- id: 11
  name: "Liberation Day"
  dayOfMonth: 30
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: false

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Holidays configuration details returned. HolidaysConfiguration
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Holidays configuration details not found. ErrorResponse

update (Holidays Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/holidays.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/holidays.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/holidays.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/holidays.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/holidays.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/holidays.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/holidays.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/holidays.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/holidays.yaml

Update holidays configuration

Body parameter

an array of holidays

---
nonWorkingDays:
- "SATURDAY"
- "SUNDAY"
holidays:
- id: 0
  name: "Remembrance Day"
  dayOfMonth: 26
  monthOfYear: 4
  year: 2020
  isAnnuallyRecurring: true
- id: 1
  name: "World Peace Day"
  dayOfMonth: 22
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: true
- id: 2
  name: "Independence Day"
  dayOfMonth: 25
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: true
- id: 11
  name: "Liberation Day"
  dayOfMonth: 30
  monthOfYear: 6
  year: 2020
  isAnnuallyRecurring: false

Parameters

Name Type Description In
body HolidaysConfiguration Represents the holidays of the organization. body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Holidays configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Holidays configuration not found. ErrorResponse

Response Schema

ID Templates

ID templates are representations of different forms of identification documents that you can collect from your clients. For more information, see ID Templates in our User Guide.

To access this enpoint using basic authentication, your user must be assigned the Administrator type. For more information, see the Type section in our Creating a User article.

To access this endpoint with an API key, your API consumer must be assigned the Administrator type. For more information, see API Consumers in our User Guide.

getAll (ID Templates)

Code samples

# You can also use wget
curl -X GET /organization/identificationDocumentTemplates \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/identificationDocumentTemplates HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/identificationDocumentTemplates',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/identificationDocumentTemplates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/identificationDocumentTemplates', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/identificationDocumentTemplates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/identificationDocumentTemplates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/identificationDocumentTemplates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/identificationDocumentTemplates

Get ID templates

Parameters

Name Type Description In
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "allowAttachments": true,
    "documentIdTemplate": "string",
    "documentType": "string",
    "encodedKey": "string",
    "id": "string",
    "issuingAuthority": "string",
    "mandatory": true
  }
]

Responses

Status Meaning Description Schema
200 OK ID templates list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [IdentificationDocumentTemplate] [Represents a template for identification documents.] none
» allowAttachments boolean TRUE if a template allows files to be attached, FALSE otherwise. none
» documentIdTemplate string The ID template constraint to define the ID number length and format. Templates consist of the characters #, @, and $, where # specifies a number, @ a letter, and $ a number or a letter. none
» documentType string The type of the document. For example, passport. none
» encodedKey string The encoded key of the ID template. It is auto generated and unique. read-only
» id string The unique identifier for the template. none
» issuingAuthority string The authority that issued the document. none
» mandatory boolean TRUE if a template is mandatory for all the individual clients, FALSE otherwise. none

ID Templates Configuration

Retrieve and update the configuration for ID templates.

An ID template is a representation of a type of ID document. For more information about this resource, see ID Templates Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (ID Templates Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/iddocumenttemplates.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/iddocumenttemplates.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/iddocumenttemplates.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/iddocumenttemplates.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/iddocumenttemplates.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/iddocumenttemplates.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/iddocumenttemplates.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/iddocumenttemplates.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/iddocumenttemplates.yaml

Get ID templates configuration

Example responses

An example of an ID templates configuration

---
idDocumentTemplates:
- id: "438499999"
  documentType: "Passport"
  issuingAuthority: "Government"
  documentIdTemplate: "#########"
  mandatoryForClients: false
  allowAttachments: false
- id: "662323814"
  documentType: "ID Card"
  issuingAuthority: "Government"
  documentIdTemplate: "#########"
  mandatoryForClients: true
  allowAttachments: true

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK ID templates configuration returned. IdentificationDocumentTemplatesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (ID Templates Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/iddocumenttemplates.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/iddocumenttemplates.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/iddocumenttemplates.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/iddocumenttemplates.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/iddocumenttemplates.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/iddocumenttemplates.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/iddocumenttemplates.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/iddocumenttemplates.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/iddocumenttemplates.yaml

Update ID templates configuration

Body parameter

An example of an ID templates configuration

---
idDocumentTemplates:
- id: "438499999"
  documentType: "Passport"
  issuingAuthority: "Government"
  documentIdTemplate: "#########"
  mandatoryForClients: false
  allowAttachments: false
- id: "662323814"
  documentType: "ID Card"
  issuingAuthority: "Government"
  documentIdTemplate: "#########"
  mandatoryForClients: true
  allowAttachments: true

Parameters

Name Type Description In
body IdentificationDocumentTemplatesConfiguration Represents the templates for identification documents body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK ID templates configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found ID templates configuration not found. ErrorResponse

Response Schema

Index Rates Configuration

Retrieve and update the configuration for index rates.

The index rates that can be configured are interest rate, value added tax rate, and withholding tax. For more information about this resource, see Index Rates Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Index Rates Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/indexrates.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/indexrates.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/indexrates.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/indexrates.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/indexrates.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/indexrates.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/indexrates.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/indexrates.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/indexrates.yaml

Get index rates configuration

Example responses

An example of an index rates configuration

---
indexRateSources:
- id: "1515528602"
  name: "3 Month LIBOR"
  type: "INTEREST_RATE"
  notes: ""
  indexRates:
  - id: "54082948"
    startDate: "2021-03-08T01:00:00+01:00"
    rate: 0.85
    notes: ""
  - id: "384947284"
    startDate: "2019-03-06T01:00:00+01:00"
    rate: 2.33
    notes: ""
  - id: "951490027"
    startDate: "2018-03-05T01:00:00+01:00"
    rate: 2.3
    notes: ""
- id: "865715514"
  name: "1 Month LIBOR"
  type: "INTEREST_RATE"
  notes: ""
  indexRates:
  - id: "967424433"
    startDate: "2020-10-05T02:00:00+02:00"
    rate: 0.69
    notes: ""
  - id: "1306016671"
    startDate: "2019-10-07T02:00:00+02:00"
    rate: 2.22
    notes: ""
  - id: "703118600"
    startDate: "2018-10-01T02:00:00+02:00"
    rate: 2.02
    notes: ""
- id: "1529349105"
  name: "VAT Switzerland"
  type: "TAX_RATE"
  notes: ""
  indexRates:
  - id: "1662077234"
    startDate: "2018-10-10T02:00:00+02:00"
    rate: 7.7
    notes: ""
  - id: "1055113792"
    startDate: "2017-10-03T02:00:00+02:00"
    rate: 8
    notes: ""
- id: "95407914"
  name: "Withholding Tax Switzerland"
  type: "WITHHOLDING_TAX_RATE"
  notes: ""
  indexRates:
  - id: "673038680"
    startDate: "2020-10-05T02:00:00+02:00"
    rate: 35
    notes: ""

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Index rates configuration returned. IndexRatesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Index Rates Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/indexrates.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/indexrates.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/indexrates.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/indexrates.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/indexrates.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/indexrates.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/indexrates.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/indexrates.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/indexrates.yaml

Update index rates configuration

Body parameter

An example of an index rates configuration

---
indexRateSources:
- id: "1515528602"
  name: "3 Month LIBOR"
  type: "INTEREST_RATE"
  notes: ""
  indexRates:
  - id: "54082948"
    startDate: "2021-03-08T01:00:00+01:00"
    rate: 0.85
    notes: ""
  - id: "384947284"
    startDate: "2019-03-06T01:00:00+01:00"
    rate: 2.33
    notes: ""
  - id: "951490027"
    startDate: "2018-03-05T01:00:00+01:00"
    rate: 2.3
    notes: ""
- id: "865715514"
  name: "1 Month LIBOR"
  type: "INTEREST_RATE"
  notes: ""
  indexRates:
  - id: "967424433"
    startDate: "2020-10-05T02:00:00+02:00"
    rate: 0.69
    notes: ""
  - id: "1306016671"
    startDate: "2019-10-07T02:00:00+02:00"
    rate: 2.22
    notes: ""
  - id: "703118600"
    startDate: "2018-10-01T02:00:00+02:00"
    rate: 2.02
    notes: ""
- id: "1529349105"
  name: "VAT Switzerland"
  type: "TAX_RATE"
  notes: ""
  indexRates:
  - id: "1662077234"
    startDate: "2018-10-10T02:00:00+02:00"
    rate: 7.7
    notes: ""
  - id: "1055113792"
    startDate: "2017-10-03T02:00:00+02:00"
    rate: 8
    notes: ""
- id: "95407914"
  name: "Withholding Tax Switzerland"
  type: "WITHHOLDING_TAX_RATE"
  notes: ""
  indexRates:
  - id: "673038680"
    startDate: "2020-10-05T02:00:00+02:00"
    rate: 35
    notes: ""

Parameters

Name Type Description In
body IndexRatesConfiguration Represents the index rates configuration. body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Index rates configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Index rates configuration not found. ErrorResponse

Response Schema

Index Rate Sources

Allows you to retrieve, create, update index rate sources and the index rates belonging to a source so that you can easily automate the process of updating these to reflect real-world rates. Check our documentation page for more general information regaring index rate sources and rates.

getAllIndexRateSources (Index Rate Sources)

Code samples

# You can also use wget
curl -X GET /indexratesources \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /indexratesources HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/indexratesources',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/indexratesources',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/indexratesources', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/indexratesources', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/indexratesources", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /indexratesources

Get index rate sources

Example responses

200 Response

[
  {
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "name": "string",
    "notes": "string",
    "type": "INTEREST_RATE"
  }
]

Responses

Status Meaning Description Schema
200 OK Index rate sources list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [IndexRateSource] [Represents an index rate source.] none
» creationDate string(date-time) The creation date of the index rate source read-only
» encodedKey string The encoded key of the index rate source, which is auto generated, and unique. read-only
» id string The ID of the index rate source, which can be generated and customized, and must be unique. none
» lastModifiedDate string(date-time) The last date this rate source was modified read-only
» name string The name of the index rate source. none
» notes string The notes about the the index rate source. none
» type string The type of index rate source. none

Enumerated Values

Property Value
type INTEREST_RATE
type TAX_RATE
type WITHHOLDING_TAX_RATE
type PRINCIPAL_TAX_RATE

createIndexRateSource (Index Rate Sources)

Code samples

# You can also use wget
curl -X POST /indexratesources \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /indexratesources HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/indexratesources',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/indexratesources',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/indexratesources', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/indexratesources', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/indexratesources", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /indexratesources

Create index rate source

Body parameter

{
  "id": "string",
  "name": "string",
  "notes": "string",
  "type": "INTEREST_RATE"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) IndexRateSource Index rate source to be created. body

Example responses

201 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "type": "INTEREST_RATE"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Index rate created. IndexRateSource
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

deleteIndexRate (Index Rate Sources)

Code samples

# You can also use wget
curl -X DELETE /indexratesources/{indexRateSourceId}/indexrates/{indexRateId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /indexratesources/{indexRateSourceId}/indexrates/{indexRateId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/indexratesources/{indexRateSourceId}/indexrates/{indexRateId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /indexratesources/{indexRateSourceId}/indexrates/{indexRateId}

Delete index rate

Parameters

Name Type Description In
indexRateSourceId (required) string The ID of the index rate source. path
indexRateId (required) string The encoded key of the index rate to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Index rate deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Index rate not found. ErrorResponse

getIndexRateSourceById (Index Rate Sources)

Code samples

# You can also use wget
curl -X GET /indexratesources/{indexRateSourceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /indexratesources/{indexRateSourceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/indexratesources/{indexRateSourceId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/indexratesources/{indexRateSourceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/indexratesources/{indexRateSourceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/indexratesources/{indexRateSourceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources/{indexRateSourceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/indexratesources/{indexRateSourceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /indexratesources/{indexRateSourceId}

Get index rate sources

Parameters

Name Type Description In
indexRateSourceId (required) string The ID of the index rate source. path

Example responses

200 Response

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "type": "INTEREST_RATE"
}

Responses

Status Meaning Description Schema
200 OK Index rate source returned. IndexRateSource
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Index rate source not found. ErrorResponse

deleteIndexRateSource (Index Rate Sources)

Code samples

# You can also use wget
curl -X DELETE /indexratesources/{indexRateSourceId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /indexratesources/{indexRateSourceId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/indexratesources/{indexRateSourceId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/indexratesources/{indexRateSourceId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/indexratesources/{indexRateSourceId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/indexratesources/{indexRateSourceId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources/{indexRateSourceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/indexratesources/{indexRateSourceId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /indexratesources/{indexRateSourceId}

Delete index rate source

Parameters

Name Type Description In
indexRateSourceId (required) string The ID of the index rate source. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Index rate source deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Index rate source not found. ErrorResponse

getAllIndexRates (Index Rate Sources)

Code samples

# You can also use wget
curl -X GET /indexratesources/{indexRateSourceId}/indexrates \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /indexratesources/{indexRateSourceId}/indexrates HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/indexratesources/{indexRateSourceId}/indexrates',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/indexratesources/{indexRateSourceId}/indexrates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/indexratesources/{indexRateSourceId}/indexrates', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/indexratesources/{indexRateSourceId}/indexrates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources/{indexRateSourceId}/indexrates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/indexratesources/{indexRateSourceId}/indexrates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /indexratesources/{indexRateSourceId}/indexrates

Get index rates for a source

Parameters

Name Type Description In
indexRateSourceId (required) string The ID of the index rate source. path

Example responses

200 Response

[
  {
    "assignedIndexRateSourceKey": "string",
    "encodedKey": "string",
    "id": "string",
    "notes": "string",
    "rate": 0,
    "startDate": "2016-09-06T13:37:50+03:00",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Index rates list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [IndexRate] [Represents an index rate.] none
» assignedIndexRateSourceKey string The index rate source that the index rate belongs to. read-only
» encodedKey string The encoded key of the index rate, which is auto generated, and unique. read-only
» id string The ID of the index rate, which can be generated and customized, and must be unique. none
» notes string The notes or description attached to this object. none
» rate number The percentage value of the index rate. none
» startDate string(date-time) The date when the index rate starts being the active rate for its source. none
» userKey string The key for the user that last modified the index rate. read-only

createIndexRate (Index Rate Sources)

Code samples

# You can also use wget
curl -X POST /indexratesources/{indexRateSourceId}/indexrates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /indexratesources/{indexRateSourceId}/indexrates HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/indexratesources/{indexRateSourceId}/indexrates',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/indexratesources/{indexRateSourceId}/indexrates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/indexratesources/{indexRateSourceId}/indexrates', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/indexratesources/{indexRateSourceId}/indexrates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/indexratesources/{indexRateSourceId}/indexrates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/indexratesources/{indexRateSourceId}/indexrates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /indexratesources/{indexRateSourceId}/indexrates

Create index rate

Body parameter

{
  "id": "string",
  "notes": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
indexRateSourceId (required) string The ID of the index rate source. path
body (required) IndexRate Index rate to be created. body

Example responses

201 Response

{
  "assignedIndexRateSourceKey": "string",
  "encodedKey": "string",
  "id": "string",
  "notes": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00",
  "userKey": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Index rate created. IndexRate
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Installments

getAll (Installments)

Code samples

# You can also use wget
curl -X GET /installments?dueFrom=2019-08-24&dueTo=2019-08-24 \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /installments?dueFrom=2019-08-24&dueTo=2019-08-24 HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/installments',
  method: 'get',
  data: '?dueFrom=2019-08-24&dueTo=2019-08-24',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/installments',
  params: {
  'dueFrom' => 'string(date)',
'dueTo' => 'string(date)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/installments', params={
  'dueFrom': '2019-08-24',  'dueTo': '2019-08-24'
}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/installments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/installments?dueFrom=2019-08-24&dueTo=2019-08-24");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/installments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /installments

Allows you to retrieve the installments of Active or In Arrears loan accounts. To retrieve the installments of accounts in other states, make a GET request to the /loans/{loanAccountId}/schedule endpoint.

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
dueFrom (required) string(date) The date of the installments to search from query
dueTo (required) string(date) The date of the installments to search to query
productTypeKey string The encoded key of the product type to search for query
accountState string The state of the loan accounts to search for query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED

Example responses

200 Response

[
  {
    "dueDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedClosingBalance": 0,
    "fee": {
      "amount": {
        "due": 0,
        "expected": 0,
        "expectedUnapplied": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "feeDetails": [
      {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0,
          "reduced": 0
        },
        "encodedKey": "string",
        "id": "string",
        "name": "string",
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0,
          "reduced": 0
        }
      }
    ],
    "interest": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "interestAccrued": 0,
    "isPaymentHoliday": true,
    "lastPaidDate": "2016-09-06T13:37:50+03:00",
    "number": "string",
    "parentAccountKey": "string",
    "penalty": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "principal": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "repaidDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING"
  }
]

Responses

Status Meaning Description Schema
200 OK installments list retrieved Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan product not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Installment] [Represents a single installment details structure.] none
» dueDate string(date-time) The installment due date. none
» encodedKey string The encoded key of the installment, which is auto generated, and unique. read-only
» expectedClosingBalance number The expected closing balance is the remaining amount per installment only applicable for interest only equal installment products. none
» fee InstallmentFee Represents an installment fee structure. none
»» amount FeeAmount Represents a fee amount. none
»»» due number The due amount. none
»»» expected number The expected amount, which is sum of paid and due amounts. none
»»» expectedUnapplied number The expected amount, which is the sum of unapplied fee and planned fee due amounts. none
»»» paid number The paid amount. none
»» tax Amount Represents a simple installment amount structure. none
»»» due number The due amount. none
»»» expected number The expected amount, which is sum of paid and due amounts. none
»»» paid number The paid amount. none
» feeDetails [InstallmentFeeDetails] The breakdown of the fee amounts that have been applied to the loan account. none
»» amount AmountWithReduced Represents a simple installment amount structure. none
»»» due number The due amount. none
»»» expected number The expected amount, which is sum of paid and due amounts. none
»»» paid number The paid amount. none
»»» reduced number The reduced amount. none
»» encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
»» id string The id of the fee, provided by the client none
»» name string The name of the fee none
»» tax AmountWithReduced Represents a simple installment amount structure. none
» interest InstallmentAllocationElementTaxableAmount Represents an installment allocation element taxable amount structure. none
»» amount Amount Represents a simple installment amount structure. none
»» tax Amount Represents a simple installment amount structure. none
» interestAccrued number The interest accrued calculated on previous repayment closing balance only applicable interest only equal installment products. none
» isPaymentHoliday boolean TRUE if a payment holiday is offered for the installment, FALSE otherwise. none
» lastPaidDate string(date-time) The installment last paid date. none
» number string The order number of an installment among all the installments generated for a loan. Loan installments are put in ascending order by due date. The order number only applies to the content of a particular JSON response therefore it is not unique. none
» parentAccountKey string The parent account key of the installment. none
» penalty InstallmentAllocationElementTaxableAmount Represents an installment allocation element taxable amount structure. none
» principal InstallmentAllocationElementAmount Represents an installment allocation element amount structure. none
»» amount Amount Represents a simple installment amount structure. none
» repaidDate string(date-time) The installment repaid date. none
» state string The installment state. none

Enumerated Values

Property Value
state PENDING
state LATE
state PAID
state PARTIALLY_PAID
state GRACE

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Internal Controls Configuration

Retrieve and update the configuration for internal controls.

Internal controls allow you to set up automatic controls for loans, such as the dormancy period, the number of days you want to wait before locking accounts in arrears or automatically locking accounts in arrears when interest, fees, and penalties are more than a percentage of the current principal balance or of the original principal amount. For more information about this resource, see Internal Controls Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Internal Controls Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/internalcontrols.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/internalcontrols.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/internalcontrols.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/internalcontrols.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/internalcontrols.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/internalcontrols.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/internalcontrols.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/internalcontrols.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/internalcontrols.yaml

Get internal controls configuration

Example responses

an array of internal controls

---
loanExposure:
  exposureType: "SUM_OF_LOANS"
  exposureAmount: 25000.00
assignmentConstraints:
- "BRANCH"
- "CENTRE"
- "CREDIT_OFFICER"
allowMultipleLoans: true
allowMultipleGroupMemberships: true
duplicateClientFieldsConfiguration:
  duplicateClientChecks:
  - "DOCUMENT_ID_AND_TYPE"
  - "HOME_PHONE"
  - "MOBILE_PHONE"
  - "EMAIL"
  - "FIRST_NAME_AND_LAST_NAME"
  - "LAST_NAME_AND_DATE_OF_BIRTH"
  duplicateClientConstraintAction: "ERROR"
arrearsDaysBeforeWriteOff: 30
maxAllowedUndoClosurePeriod: 60
defaultClientState: "PENDING_APPROVAL"
defaultLineOfCreditState: "PENDING_APPROVAL"
groupSizeLimit:
  groupSizeLimitType: "HARD"
  minGroupSizeLimit: 10
  maxGroupSizeLimit: 20
approvalDisbursalTwoManRuleEnabled: true
availableDashboardSections:
- "CLIENTS"
- "CURRENT_TILLS"
- "FAVOURITE_VIEWS"
- "INDICATORS"
- "LATEST_ACTIVITY"
- "TASKS"
- "UPCOMING_REPAYMENTS"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Internal controls configuration returned. InternalControlsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Internal controls configuration details not found. ErrorResponse

update (Internal Controls Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/internalcontrols.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/internalcontrols.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/internalcontrols.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/internalcontrols.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/internalcontrols.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/internalcontrols.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/internalcontrols.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/internalcontrols.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/internalcontrols.yaml

Update internal controls configuration

Body parameter

an array of internal controls

---
loanExposure:
  exposureType: "SUM_OF_LOANS"
  exposureAmount: 25000.00
assignmentConstraints:
- "BRANCH"
- "CENTRE"
- "CREDIT_OFFICER"
allowMultipleLoans: true
allowMultipleGroupMemberships: true
duplicateClientFieldsConfiguration:
  duplicateClientChecks:
  - "DOCUMENT_ID_AND_TYPE"
  - "HOME_PHONE"
  - "MOBILE_PHONE"
  - "EMAIL"
  - "FIRST_NAME_AND_LAST_NAME"
  - "LAST_NAME_AND_DATE_OF_BIRTH"
  duplicateClientConstraintAction: "ERROR"
arrearsDaysBeforeWriteOff: 30
maxAllowedUndoClosurePeriod: 60
defaultClientState: "PENDING_APPROVAL"
defaultLineOfCreditState: "PENDING_APPROVAL"
groupSizeLimit:
  groupSizeLimitType: "HARD"
  minGroupSizeLimit: 10
  maxGroupSizeLimit: 20
approvalDisbursalTwoManRuleEnabled: true
availableDashboardSections:
- "CLIENTS"
- "CURRENT_TILLS"
- "FAVOURITE_VIEWS"
- "INDICATORS"
- "LATEST_ACTIVITY"
- "TASKS"
- "UPCOMING_REPAYMENTS"

Parameters

Name Type Description In
body InternalControlsConfiguration Model representation of the internal controls configuration. body

Example responses

200 success response

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Internal controls configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Internal controls configuration details not found. ErrorResponse

Response Schema

Journal Entries

Create GL Journal Entries.

getAll (Journal Entries)

Code samples

# You can also use wget
curl -X GET /gljournalentries?from=2019-08-24&to=2019-08-24 \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /gljournalentries?from=2019-08-24&to=2019-08-24 HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/gljournalentries',
  method: 'get',
  data: '?from=2019-08-24&to=2019-08-24',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/gljournalentries',
  params: {
  'from' => 'string(date)',
'to' => 'string(date)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/gljournalentries', params={
  'from': '2019-08-24',  'to': '2019-08-24'
}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/gljournalentries', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/gljournalentries?from=2019-08-24&to=2019-08-24");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/gljournalentries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /gljournalentries

Get general ledger journal entries

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
from (required) string(date) The booking date to search from for general ledger journal entries. query
to (required) string(date) The booking date to search to for general ledger journal entries. query
branchId string The branch ID to filter general ledger journal entries by. query
glAccountId string The general ledger account ID to filter general ledger journal entries by. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "accountKey": "string",
    "amount": 0,
    "assignedBranchKey": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "entryID": 0,
    "foreignAmount": {
      "accountingRate": {
        "encodedKey": "string",
        "endDate": "2016-09-06T13:37:50+03:00",
        "fromCurrencyCode": "string",
        "rate": 0,
        "startDate": "2016-09-06T13:37:50+03:00",
        "toCurrencyCode": "string"
      },
      "amount": 0,
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      }
    },
    "glAccount": {
      "activated": true,
      "allowManualJournalEntries": true,
      "balance": 0,
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "description": "string",
      "encodedKey": "string",
      "glCode": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "stripTrailingZeros": true,
      "type": "ASSET",
      "usage": "DETAIL"
    },
    "notes": "string",
    "productKey": "string",
    "productType": "LOAN",
    "reversalEntryKey": "string",
    "transactionId": "string",
    "type": "DEBIT",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK General ledger journal entries list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [GLJournalEntry] [Represents a general ledger journal entry.] none
» accountKey string The account associated with this journal entry. Null if the journal entry is not associated to any account. none
» amount number The amount which was debited or credited in the organization's currency. none
» assignedBranchKey string The key of the assigned branch for this general ledger journal entry. none
» bookingDate string(date-time) The date and time when the general ledger journal entry was recorded. none
» creationDate string(date-time) The creation date of the general ledger journal entry. read-only
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» entryID integer(int64) The ID of the general ledger journal entry. read-only
» foreignAmount GLJournalEntryForeignAmount Represents the details of the general ledger journal entry amount posted in foreign currency. none
»» accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
»»» encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
»»» endDate string(date-time) Rate validity end date (as Organization Time) none
»»» fromCurrencyCode string Organisation currency code none
»»» rate number Value of rate to be used for accounting conversions none
»»» startDate string(date-time) Rate validity start date (as Organization Time) none
»»» toCurrencyCode string Foreign currency code none
»» amount number The amount of an accounting entry in foreign currency. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» glAccount GLAccount Represents a general ledger account. none
»» activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
»» allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
»» balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
»» creationDate string(date-time) The creation date for this account, which is stored as UTC. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» description string A description of the general ledger account. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
»» lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
»» migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
»» name string The name of the general ledger account. none
»» stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
»» type string The general ledger account type. none
»» usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none
» notes string Optional notes entered by the user when they performed the journal entry. none
» productKey string The product associated with this journal entry. Null if the journal entry is not associated with any product. none
» productType string The product type that is referenced by the account key. Null if the journal entry is not associated to any product. none
» reversalEntryKey string The entry key of the general ledger journal entry that reverses this general ledger journal entry. Null if the general ledger journal entry isn't reversed. none
» transactionId string The transation ID, which is not unique. none
» type string The general ledger journal entry type, which may be debit or credit. none
» userKey string The encoded key of the user that performed the transaction. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER
productType LOAN
productType SAVINGS
type DEBIT
type CREDIT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Journal Entries)

Code samples

# You can also use wget
curl -X POST /gljournalentries \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /gljournalentries HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/gljournalentries',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/gljournalentries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/gljournalentries', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/gljournalentries', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/gljournalentries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/gljournalentries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /gljournalentries

Create general ledger journal entries.

Body parameter

{
  "branchId": "string",
  "credits": [
    {
      "amount": 0,
      "glAccount": "string"
    }
  ],
  "date": "2016-09-06T13:37:50+03:00",
  "debits": [
    {
      "amount": 0,
      "glAccount": "string"
    }
  ],
  "notes": "string",
  "transactionId": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) PostGLJournalEntriesDTO Represents the information to create general ledger journal entries. body

Example responses

201 Response

[
  {
    "accountKey": "string",
    "amount": 0,
    "assignedBranchKey": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "entryID": 0,
    "foreignAmount": {
      "accountingRate": {
        "encodedKey": "string",
        "endDate": "2016-09-06T13:37:50+03:00",
        "fromCurrencyCode": "string",
        "rate": 0,
        "startDate": "2016-09-06T13:37:50+03:00",
        "toCurrencyCode": "string"
      },
      "amount": 0,
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      }
    },
    "glAccount": {
      "activated": true,
      "allowManualJournalEntries": true,
      "balance": 0,
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "description": "string",
      "encodedKey": "string",
      "glCode": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "stripTrailingZeros": true,
      "type": "ASSET",
      "usage": "DETAIL"
    },
    "notes": "string",
    "productKey": "string",
    "productType": "LOAN",
    "reversalEntryKey": "string",
    "transactionId": "string",
    "type": "DEBIT",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created General ledger journal entries have been created. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [GLJournalEntry] [Represents a general ledger journal entry.] none
» accountKey string The account associated with this journal entry. Null if the journal entry is not associated to any account. none
» amount number The amount which was debited or credited in the organization's currency. none
» assignedBranchKey string The key of the assigned branch for this general ledger journal entry. none
» bookingDate string(date-time) The date and time when the general ledger journal entry was recorded. none
» creationDate string(date-time) The creation date of the general ledger journal entry. read-only
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» entryID integer(int64) The ID of the general ledger journal entry. read-only
» foreignAmount GLJournalEntryForeignAmount Represents the details of the general ledger journal entry amount posted in foreign currency. none
»» accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
»»» encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
»»» endDate string(date-time) Rate validity end date (as Organization Time) none
»»» fromCurrencyCode string Organisation currency code none
»»» rate number Value of rate to be used for accounting conversions none
»»» startDate string(date-time) Rate validity start date (as Organization Time) none
»»» toCurrencyCode string Foreign currency code none
»» amount number The amount of an accounting entry in foreign currency. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» glAccount GLAccount Represents a general ledger account. none
»» activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
»» allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
»» balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
»» creationDate string(date-time) The creation date for this account, which is stored as UTC. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» description string A description of the general ledger account. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
»» lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
»» migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
»» name string The name of the general ledger account. none
»» stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
»» type string The general ledger account type. none
»» usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none
» notes string Optional notes entered by the user when they performed the journal entry. none
» productKey string The product associated with this journal entry. Null if the journal entry is not associated with any product. none
» productType string The product type that is referenced by the account key. Null if the journal entry is not associated to any product. none
» reversalEntryKey string The entry key of the general ledger journal entry that reverses this general ledger journal entry. Null if the general ledger journal entry isn't reversed. none
» transactionId string The transation ID, which is not unique. none
» type string The general ledger journal entry type, which may be debit or credit. none
» userKey string The encoded key of the user that performed the transaction. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER
productType LOAN
productType SAVINGS
type DEBIT
type CREDIT

Code samples

# You can also use wget
curl -X POST /gljournalentries:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /gljournalentries:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/gljournalentries:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/gljournalentries:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/gljournalentries:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/gljournalentries:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/gljournalentries:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/gljournalentries:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /gljournalentries:search

Search for general ledger journal entries

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "productType",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
body (required) GLJournalEntrySearchCriteria Represents the filtering criteria and sorting criterion to search for general ledger journal entries. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "accountKey": "string",
    "amount": 0,
    "assignedBranchKey": "string",
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "entryID": 0,
    "foreignAmount": {
      "accountingRate": {
        "encodedKey": "string",
        "endDate": "2016-09-06T13:37:50+03:00",
        "fromCurrencyCode": "string",
        "rate": 0,
        "startDate": "2016-09-06T13:37:50+03:00",
        "toCurrencyCode": "string"
      },
      "amount": 0,
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      }
    },
    "glAccount": {
      "activated": true,
      "allowManualJournalEntries": true,
      "balance": 0,
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "description": "string",
      "encodedKey": "string",
      "glCode": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "stripTrailingZeros": true,
      "type": "ASSET",
      "usage": "DETAIL"
    },
    "notes": "string",
    "productKey": "string",
    "productType": "LOAN",
    "reversalEntryKey": "string",
    "transactionId": "string",
    "type": "DEBIT",
    "userKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The general ledger journal entry search returned values. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [GLJournalEntry] [Represents a general ledger journal entry.] none
» accountKey string The account associated with this journal entry. Null if the journal entry is not associated to any account. none
» amount number The amount which was debited or credited in the organization's currency. none
» assignedBranchKey string The key of the assigned branch for this general ledger journal entry. none
» bookingDate string(date-time) The date and time when the general ledger journal entry was recorded. none
» creationDate string(date-time) The creation date of the general ledger journal entry. read-only
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» entryID integer(int64) The ID of the general ledger journal entry. read-only
» foreignAmount GLJournalEntryForeignAmount Represents the details of the general ledger journal entry amount posted in foreign currency. none
»» accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
»»» encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
»»» endDate string(date-time) Rate validity end date (as Organization Time) none
»»» fromCurrencyCode string Organisation currency code none
»»» rate number Value of rate to be used for accounting conversions none
»»» startDate string(date-time) Rate validity start date (as Organization Time) none
»»» toCurrencyCode string Foreign currency code none
»» amount number The amount of an accounting entry in foreign currency. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» glAccount GLAccount Represents a general ledger account. none
»» activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
»» allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
»» balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
»» creationDate string(date-time) The creation date for this account, which is stored as UTC. none
»» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» description string A description of the general ledger account. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
»» lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
»» migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
»» name string The name of the general ledger account. none
»» stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
»» type string The general ledger account type. none
»» usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none
» notes string Optional notes entered by the user when they performed the journal entry. none
» productKey string The product associated with this journal entry. Null if the journal entry is not associated with any product. none
» productType string The product type that is referenced by the account key. Null if the journal entry is not associated to any product. none
» reversalEntryKey string The entry key of the general ledger journal entry that reverses this general ledger journal entry. Null if the general ledger journal entry isn't reversed. none
» transactionId string The transation ID, which is not unique. none
» type string The general ledger journal entry type, which may be debit or credit. none
» userKey string The encoded key of the user that performed the transaction. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER
productType LOAN
productType SAVINGS
type DEBIT
type CREDIT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

Loan Products

When working with products via API we suggest the following approach:

  1. Create or amend the product using the Mambu UI following the Setting up New Loan Products or Managing Loan Products articles in our User Guide.
  2. Get the current product configuration by making a GET request and saving the response in a JSON file.
  3. Edit the JSON file, including removing any fields where the value will be generated by the system, for example, creationDate, lastModifiedDate and encodedkey.
  4. Use the PUT or POST API endpoints to create or update the product configuration.

We recommend using Git as a version control system to track changes to your product configurations. Using a Git hosting provider such as GitHub or GitLab will allow you to create a robust workflow around your product configuration files including retaining a full history of changes, the ability to collaborate and comment and allow for peer reviews and sign-offs before changes are finalised.

getAll (Loan Products)

Code samples

# You can also use wget
curl -X GET /loanproducts \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loanproducts HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loanproducts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loanproducts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loanproducts', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loanproducts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loanproducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loanproducts

Get loan products

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: ID, productName, creationDate, lastModifiedDate
Default sorting is done by creationDate:DESC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF

Example responses

200 Response

[
  {
    "accountLinkSettings": {
      "enabled": true,
      "linkableDepositProductKey": "string",
      "linkedAccountOptions": [
        "AUTO_LINK_ACCOUNTS"
      ],
      "settlementMethod": "FULL_DUE_AMOUNTS"
    },
    "accountingSettings": {
      "accountingMethod": "NONE",
      "accountingRules": [
        {
          "encodedKey": "string",
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountKey": "string",
          "transactionChannelKey": "string"
        }
      ],
      "interestAccrualCalculation": "NONE",
      "interestAccruedAccountingMethod": "NONE"
    },
    "adjustInterestForFirstInstallment": true,
    "allowCustomRepaymentAllocation": true,
    "arrearsSettings": {
      "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
      "encodedKey": "string",
      "monthlyToleranceDay": 0,
      "nonWorkingDaysMethod": "INCLUDED",
      "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
      "toleranceFloorAmount": 0,
      "tolerancePercentageOfOutstandingPrincipal": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "tolerancePeriod": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      }
    },
    "availabilitySettings": {
      "availableFor": [
        "INDIVIDUALS"
      ],
      "branchSettings": {
        "availableProductBranches": [
          "string"
        ],
        "forAllBranches": true
      }
    },
    "category": "PERSONAL_LENDING",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementSettings": {
      "creditArrangementRequirement": "OPTIONAL"
    },
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "encodedKey": "string",
    "feesSettings": {
      "allowArbitraryFees": true,
      "fees": [
        {
          "accountingRules": [
            {
              "encodedKey": "string",
              "financialResource": "PORTFOLIO_CONTROL",
              "glAccountKey": "string",
              "transactionChannelKey": "string"
            }
          ],
          "amortizationSettings": {
            "amortizationProfile": "NONE",
            "encodedKey": "string",
            "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
            "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
            "intervalCount": 0,
            "intervalType": "PREDEFINED_INTERVALS",
            "periodCount": 0,
            "periodUnit": "DAYS"
          },
          "amount": 0,
          "amountCalculationFunctionName": "string",
          "amountCalculationMethod": "FLAT",
          "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "feeApplication": "REQUIRED",
          "id": "string",
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "name": "string",
          "percentageAmount": 0,
          "state": "ACTIVE",
          "taxSettings": {
            "taxableCalculationMethod": "DEFAULT"
          },
          "trigger": "MANUAL"
        }
      ]
    },
    "fundingSettings": {
      "enabled": true,
      "funderInterestCommission": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
      "lockFundsAtApproval": true,
      "organizationInterestCommission": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "requiredFunds": 0
    },
    "gracePeriodSettings": {
      "gracePeriod": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "gracePeriodType": "NONE"
    },
    "id": "string",
    "interestSettings": {
      "accrueLateInterest": true,
      "compoundingFrequency": "DAILY",
      "daysInYear": "ACTUAL_365_FIXED",
      "indexRateSettings": {
        "accrueInterestAfterMaturity": true,
        "allowNegativeInterestRate": true,
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestChargeFrequency": "ANNUALIZED",
        "interestChargeFrequencyCount": 0,
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestRateTerms": "FIXED",
        "interestRateTiers": [
          {
            "encodedKey": "string",
            "endingBalance": 0,
            "interestRate": 0
          }
        ]
      },
      "interestApplicationDays": {
        "daysInMonth": [
          0
        ],
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "interestApplicationMethod": "AFTER_DISBURSEMENT",
      "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
      "interestCalculationMethod": "FLAT",
      "interestRateChangePMTAdjustmentThreshold": {
        "method": "WORKING_DAYS",
        "numberOfDays": 0
      },
      "interestRateSettings": [
        {
          "encodedKey": "string",
          "indexSourceKey": "string",
          "interestRate": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE"
        }
      ],
      "interestType": "SIMPLE_INTEREST",
      "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
    },
    "internalControls": {
      "dormancyPeriodDays": 0,
      "fourEyesPrinciple": {
        "activeForLoanApproval": true
      },
      "lockSettings": {
        "cappingConstraintType": "SOFT_CAP",
        "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
        "cappingPercentage": 0,
        "lockPeriodDays": 0
      }
    },
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "loanAmountSettings": {
      "loanAmount": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "trancheSettings": {
        "maxNumberOfTranches": 0
      }
    },
    "name": "string",
    "newAccountSettings": {
      "accountInitialState": "PARTIAL_APPLICATION",
      "idGeneratorType": "INCREMENTAL_NUMBER",
      "idPattern": "string"
    },
    "notes": "string",
    "offsetSettings": {
      "allowOffset": true
    },
    "paymentSettings": {
      "amortizationMethod": "STANDARD_PAYMENTS",
      "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
      "paymentMethod": "HORIZONTAL",
      "prepaymentSettings": {
        "applyInterestOnPrepaymentMethod": "AUTOMATIC",
        "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
        "ercFreeAllowance": 0,
        "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
        "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
        "prepaymentRecalculationMethod": "NO_RECALCULATION",
        "principalPaidInstallmentStatus": "PARTIALLY_PAID"
      },
      "principalPaymentSettings": {
        "amount": {
          "defaultValue": 0,
          "encodedKey": "string",
          "maxValue": 0,
          "minValue": 0
        },
        "defaultPrincipalRepaymentInterval": 0,
        "encodedKey": "string",
        "includeFeesInFloorAmount": true,
        "includeInterestInFloorAmount": true,
        "percentage": {
          "defaultValue": 0,
          "encodedKey": "string",
          "maxValue": 0,
          "minValue": 0
        },
        "principalCeilingValue": 0,
        "principalFloorValue": 0,
        "principalPaymentMethod": "FLAT",
        "totalDueAmountFloor": 0,
        "totalDuePayment": "FLAT"
      },
      "repaymentAllocationOrder": [
        "PRINCIPAL"
      ]
    },
    "penaltySettings": {
      "loanPenaltyCalculationMethod": "NONE",
      "loanPenaltyGracePeriod": 0,
      "penaltyRate": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      }
    },
    "redrawSettings": {
      "allowRedraw": true
    },
    "scheduleSettings": {
      "amortizationPeriod": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "billingCycles": {
        "enabled": true,
        "startDays": [
          0
        ]
      },
      "defaultRepaymentPeriodCount": 0,
      "firstRepaymentDueDateOffset": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "fixedDaysOfMonth": [
        0
      ],
      "interestAccrualSince": "DISBURSEMENT",
      "numInstallments": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0,
        "previewScheduleEnabled": true
      },
      "repaymentMethod": "AMOUNT",
      "repaymentPeriodUnit": "DAYS",
      "repaymentReschedulingMethod": "NONE",
      "repaymentScheduleEditOptions": [
        "ADJUST_PAYMENT_DATES"
      ],
      "repaymentScheduleMethod": "NONE",
      "roundingSettings": {
        "repaymentCurrencyRounding": "NO_ROUNDING",
        "repaymentElementsRoundingMethod": "NO_ROUNDING",
        "roundingRepaymentScheduleMethod": "NO_ROUNDING"
      },
      "scheduleDueDatesMethod": "INTERVAL",
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "securitySettings": {
      "isCollateralEnabled": true,
      "isGuarantorsEnabled": true,
      "requiredGuaranties": 0
    },
    "state": "ACTIVE",
    "taxSettings": {
      "taxCalculationMethod": "INCLUSIVE",
      "taxSourceKey": "string",
      "taxesOnFeesEnabled": true,
      "taxesOnInterestEnabled": true,
      "taxesOnPenaltyEnabled": true
    },
    "templates": [
      {
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "type": "ACCOUNT"
      }
    ],
    "type": "FIXED_TERM_LOAN"
  }
]

Responses

Status Meaning Description Schema
200 OK Loan products returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanProduct] [Represents a loan product.] none
» accountLinkSettings AccountLinkSettings Defines the settings for account linking. none
»» enabled (required) boolean Shows whether the loan accounts created using this product can be linked to a savings account. none
»» linkableDepositProductKey string Loan accounts created for this product can only be linked the the savings accounts that use the savings product with this key. If null, the loan accounts for this product can be linked to any savings account. none
»» linkedAccountOptions [string] A set of linked account options. none
»» settlementMethod string Set the option of automated transfer that should be made from linked deposit accounts into loan accounts create from this product. none
» accountingSettings AccountingSettings Accounting settings, defines the accounting settings for the product. none
»» accountingMethod (required) string A list of accounting rules for a product. none
»» accountingRules [GLAccountingRule] A list of accounting rules for the product. none
»»» encodedKey string The encoded key of the accounting rule, auto generated, unique. read-only
»»» financialResource (required) string General Ledger Financial Resources used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries none
»»» glAccountKey (required) string The encoded key of the account that is mapped to the financialResource none
»»» transactionChannelKey string The key of the transaction rule that uses this rule none
»» interestAccrualCalculation string The accounting interest calculation option selected for the product. none
»» interestAccruedAccountingMethod string A list of accounting rules for a product. none
» adjustInterestForFirstInstallment boolean TRUE if it is possible to adjust the interest for the first repayment when the first repayment period is different than the repayment frequency, FALSE otherwise. none
» allowCustomRepaymentAllocation boolean TRUE if an additional payment may be allocated on the account, ignoring the default repayment allocation order, FALSE otherwise. none
» arrearsSettings ProductArrearsSettings The product arrears settings, shows whether the non working days are taken in consideration or not when applying penalties/late fees or when setting an account into arrears none
»» dateCalculationMethod string The arrears date calculation method. none
»» encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
»» monthlyToleranceDay integer(int32) Defines the tolerance monthly date none
»» nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
»» toleranceCalculationMethod string Defines the tolerance calculation method none
»» toleranceFloorAmount number The tolerance floor amount. none
»» tolerancePercentageOfOutstandingPrincipal DecimalInterval Decimal constraints, like min/max/default. none
»»» defaultValue number The default value, will be used in case no other value was filled in by the user. none
»»» maxValue number The maximum value. none
»»» minValue number The minimum value. none
»» tolerancePeriod IntegerIntervalConstraints Decimal integer, like min/max/default. none
»»» defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
»»» encodedKey string The encoded key of the integer constraint, auto generated, unique read-only
»»» maxValue integer(int32) The maximum value. none
»»» minValue integer(int32) The minimum value. none
» availabilitySettings ProductAvailabilitySettings Holds information about product availability. none
»» availableFor [string] Holds the entities this product is available for. i.e Individuals none
»» branchSettings BranchSettings Holds information about branch availability for the product. none
»»» availableProductBranches [string] Holds the encoded keys of the branches this product should be available for. none
»»» forAllBranches boolean Indicates if this product should be available for all branches none
» category string The category of the loan product. none
» creationDate string(date-time) The date the loan product was created. none
» creditArrangementSettings (required) CreditArrangementSettings The funding settings, holds the settings regarding the funding for the loan product. none
»» creditArrangementRequirement string Shows whether accounts created after this product can/should be part of a line of credit. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» encodedKey string The encoded key of the loan product, it is auto generated, and unique. read-only
» feesSettings FeesSettings Defines fees settings for the product. none
»» allowArbitraryFees boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount. none
»» fees [PredefinedFee] List of all fees that can be applied for accounts of this loan product. none
»»» accountingRules [GLAccountingRule] A list of accounting rules defined for this fee. If null, product default rules are selected. none
»»» amortizationSettings PeriodIntervalSettings The settings for defining period intervals. none
»»»» amortizationProfile string Type of amortization profile used for fee none
»»»» encodedKey string The encoded key of the period interval settings, auto generated, unique. read-only
»»»» feeAmortizationUponRescheduleRefinanceOption string Flag for signaling if fee amortization should be continued or finished at account reschedule/refinance none
»»»» frequency string Frequency settings of the fee amortization none
»»»» intervalCount integer(int32) Total number of intervals none
»»»» intervalType string Defines the options for an interval none
»»»» periodCount integer(int32) Period count used in conjunction with periodUnit to determine the next date of the interval none
»»»» periodUnit string Amortization unit to determine the interval between amortizations none
»»» amount number The amount of the fee none
»»» amountCalculationFunctionName string Mambu Function name used for the fee calculation none
»»» amountCalculationMethod string The amount from which the fee is calculated using percentageAmount none
»»» applyDateMethod string Shows when a fee should be applied; to be used with monthly deposit fees none
»»» creationDate string(date-time) Shows the creation date of the fee none
»»» encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
»»» feeApplication (required) string The type of fee application when disbursement is applied none
»»» id string The id of the fee none
»»» lastModifiedDate string(date-time) Shows the last modified date of the fee none
»»» name string The name of the fee none
»»» percentageAmount number The amount of the fee in percents applied to percentSource none
»»» state (required) string Indicates the state of the fee none
»»» taxSettings FeeTaxSettings Tax settings for a specific Predefined fee that overrides the tax settings of Loan Product none
»»»» taxableCalculationMethod string Marks a specific fee as non-taxable (taxes are not calculated for it).Feature is in the Early Stage. To be enabled by request. none
»»» trigger (required) string Shows the event that will trigger a fee none
» fundingSettings FundingSettings The funding settings, holds the settings regarding the funding for the loan product. none
»» enabled boolean Indicates whether the product has the investor funds enabled or not. none
»» funderInterestCommission DecimalConstraints Decimal constraints, like min/max/default. none
»»» defaultValue number The default value, will be used in case no other value was filled in by the user. none
»»» encodedKey string The encoded key of the decimal constraint, auto generated, unique read-only
»»» maxValue number The maximum value. none
»»» minValue number The minimum value. none
»» funderInterestCommissionAllocationType string Define how the Interest is allocated to the investors(if the investors can define their own percentages for their own contribution to the loan, or if all of them are using the same percentage). none
»» lockFundsAtApproval boolean Shows whether investor funds are locked or not at the loan account's approval. none
»» organizationInterestCommission DecimalConstraints Decimal constraints, like min/max/default. none
»» requiredFunds number The required investor funds percentage, for opening an account with external funding. If null, the investor funds are not enabled. none
» gracePeriodSettings GracePeriodSettings The funding settings, holds the settings regarding the funding for the loan product. none
»» gracePeriod IntegerIntervalConstraints Decimal integer, like min/max/default. none
»» gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
» id (required) string The ID of the loan product, can be generated and customized, and must be unique. none
» interestSettings ProductInterestSettings The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product. none
»» accrueLateInterest boolean Whether late interest should be accrued, applied and paid none
»» compoundingFrequency string The frequency on which the accrued interest will be added to the principal for interest calculation. It is used only for InterestType.COMPOUNDING_INTEREST none
»» daysInYear (required) string The days in year that should be used for loan calculations. none
»» indexRateSettings InterestProductSettings The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product. none
»»» accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date none
»»» allowNegativeInterestRate boolean Indicator whether the loan product allows negative values for interest rate or interest spread none
»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestChargeFrequency string The interval used for determining how often is interest charged none
»»» interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
»»» interestRate DecimalInterval Decimal constraints, like min/max/default. none
»»» interestRateCeilingValue number Interest spread + index interest rate can't be more than this amount (valid only for index interest rate products). none
»»» interestRateFloorValue number Interest spread + index interest rate can't be less than this amount (valid only for index interest rate products). none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit none
»»» interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
»»» interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
»»» interestRateTiers [InterestRateTier] The list of interest rate tiers available for the current settings instance none
»»»» encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
»»»» endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
»»»» interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none
»» interestApplicationDays DaysInMonth Enumeration for days of month and method of handling shorter months. none
»»» daysInMonth [integer] Specifies the day(s) of the month when the interest application dates should be. Only available if the Interest Application Method is InterestApplicationMethodDTO#FIXED_DAYS_OF_MONTH. Currently only 1 value can be specified. none
»»» shortMonthHandlingMethod string Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected. Only available if the Interest Application Method is InterestApplicationMethodDTO#FIXED_DAYS_OF_MONTH. none
»» interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
»» interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
»» interestCalculationMethod (required) string The interest calculation method. Holds the type of interest calculation method. none
»» interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
»»» method string The method used to calculate the interest rate change threshold. none
»»» numberOfDays integer(int32) The number of days that trigger an interest rate change. none
»» interestRateSettings [ProductInterestRateSettings] Adjustable interest rates settings none
»»» encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestRate DecimalInterval Decimal constraints, like min/max/default. none
»»» interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
»»» interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
»» interestType string The possible values for how we compute and apply the interest none
»» scheduleInterestDaysCountMethod (required) string Shows whether all the installments should compute the interest based on the actual number of days or based on the defined repayment periodicity. none
» internalControls InternalControls Constraints and automated actions and that will be applied on the accounts. none
»» dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
»» fourEyesPrinciple FourEyesPrinciple Settings for Four Eyes Principle none
»»» activeForLoanApproval boolean Requires separate users to create and approve loan accounts none
»» lockSettings LockSettings Settings applied when transitioning accounts to Locked state none
»»» cappingConstraintType string Specifies constraint types for capping charges. none
»»» cappingMethod string Specifies how principal will be used when calculating capping charges. none
»»» cappingPercentage number Specifies the percentage of principal that cannot be exceeded by the sum of interest, fees and penalty balances. none
»»» lockPeriodDays integer(int32) Specifies the number of days for in which the account will be locked if it stays in arrears. none
» lastModifiedDate string(date-time) The last date the loan product was updated. none
» loanAmountSettings LoanAmountSettings The amount settings, holds all amount properties. none
»» loanAmount AmountDecimalConstraints Decimal constraints, like min/max/default. none
»»» defaultValue number The default value, will be used in case no other value was filled in by the user. none
»»» encodedKey string The encoded key of the decimal constraint, auto generated, unique read-only
»»» maxValue number The maximum value. none
»»» minValue number The minimum value. none
»» trancheSettings TrancheSettings The tranche settings, indicates the settings regarding tranches in case the product is configured to support tranches. none
»»» maxNumberOfTranches integer(int32) The number of tranches supported by the loan product none
» name (required) string The name of the loan product. none
» newAccountSettings NewAccountSettings The new account settings, defines the settings and constraints used by new loan account created based on this product. none
»» accountInitialState (required) string The initial state of the account when is created. none
»» idGeneratorType (required) string The type of generator used for IDs creation. none
»» idPattern (required) string The pattern that will be used for ID validation (as referred to as an input mask). none
» notes string The notes or description of the loan product. none
» offsetSettings OffsetSettings The offset settings, holds information about offset. none
»» allowOffset boolean Indicates whether the product supports offset none
» paymentSettings PaymentSettings Defines the payment settings for the loan product and for loans crated based on this product. none
»» amortizationMethod string Payments Method used by loan accounts for repayments schedule generation. none
»» latePaymentsRecalculationMethod (required) string Recalculate the schedule when late payments are posted on dynamic Equal Installments loans. none
»» paymentMethod (required) string The payment method. Represents the interest payment method that determines whether the payments are made Horizontally (on the Repayments) or Vertically (on the Loan Account) none
»» prepaymentSettings ProductPrepaymentSettings Defines the prepayment settings for the product none
»»» applyInterestOnPrepaymentMethod string Whether the interest on prepayment is applied manual or automatic. none
»»» elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated none
»»» ercFreeAllowance number ERC free allowance in percentage none
»»» futurePaymentsAcceptance (required) string Shows whether the future payments are allowed or not for this product (repayment transactions with entry date set in the future) none
»»» prepaymentAcceptance string Shows whether the pre-payments are allowed or not for this product. none
»»» prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based none
»»» principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product) none
»» principalPaymentSettings PrincipalPaymentProductSettings Defines the principal payment settings constraints for the loans that will be created based on this product. none
»»» amount AmountDecimalConstraints Decimal constraints, like min/max/default. none
»»» defaultPrincipalRepaymentInterval integer(int32) How many repayments the principal has to be paid none
»»» encodedKey string The encoded key of the settings, auto generated, unique read-only
»»» includeFeesInFloorAmount boolean If true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
»»» includeInterestInFloorAmount boolean If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
»»» percentage DecimalConstraints Decimal constraints, like min/max/default. none
»»» principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
»»» principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
»»» principalPaymentMethod string The method of principal payment for revolving credit none
»»» totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
»»» totalDuePayment string The method of total due payment for revolving credit none
»» repaymentAllocationOrder (required) [string] A list of basic repayment allocation elements such as the principal, interest & fees. none
» penaltySettings ProductPenaltySettings Defines the penalty settings for the product that will be used by the loan accounts based on this product none
»» loanPenaltyCalculationMethod (required) string The penalty calculation method none
»» loanPenaltyGracePeriod integer(int32) Number of days to wait before applying the loan penalty amounts none
»» penaltyRate DecimalConstraints Decimal constraints, like min/max/default. none
» redrawSettings ProductRedrawSettings The redraw settings for the product. none
»» allowRedraw (required) boolean Indicates whether the product support redraw (prepayments which are stored at loan account level as a Redrawable balance) none
» scheduleSettings LoanProductScheduleSettings Defines the settings and constraints for schedule for the loans that are created based on this product. none
»» amortizationPeriod ProductAmortizationPeriod It holds information about the loan product amortization period. The PMT is calculated as the loan would have [amortisationPeriod] instalments none
»»» defaultValue integer(int32) default value none
»»» maxValue integer(int32) max value none
»»» minValue integer(int32) min value none
»» billingCycles BillingCyclesProductSettings Defines the billing cycles settings for revolving credit products none
»»» enabled boolean The billing cycle status if it is enabled or disabled none
»»» startDays [integer] The billing cycle start days in case it is enabled none
»» defaultRepaymentPeriodCount integer(int32) Interval Repayment Methodology Settings. none
»» firstRepaymentDueDateOffset IntegerIntervalConstraints Decimal integer, like min/max/default. none
»» fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTH. none
»» interestAccrualSince string Represents the moment the interest will start getting accrued. none
»» numInstallments IntegerIntervalConstraints Decimal integer, like min/max/default. none
»» previewSchedule PreviewScheduleSettings Defines the Preview Schedule settings for revolving products none
»»» numberOfPreviewedInstalments integer(int32) Number of Previewed Instalments. none
»»» previewScheduleEnabled boolean Preview Schedule status. none
»» repaymentMethod string The repayment method value none
»» repaymentPeriodUnit string The frequency of the loan repayment. none
»» repaymentReschedulingMethod (required) string The repayment rescheduling method used in calculations. none
»» repaymentScheduleEditOptions [string] Shows the properties from the repayment schedule can be edited. none
»» repaymentScheduleMethod (required) string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
»» roundingSettings RoundingSettings Defines the rounding settings used in the loan computation. none
»»» repaymentCurrencyRounding (required) string Specifies the repayment currency rounding method. none
»»» repaymentElementsRoundingMethod (required) string Determines how the repayment currency rounding is handled on each element from the schedule. none
»»» roundingRepaymentScheduleMethod (required) string Specifies the rounding repayment schedule method. none
»» scheduleDueDatesMethod (required) string The methodology used by this product to compute the due dates of the repayments. none
»» shortMonthHandlingMethod string Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Schedule Due Dates Method is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTHs. none
» securitySettings SecuritySettings The settings and constraints for securities. none
»» isCollateralEnabled boolean Shows whether collateral (assets or other goods) are accepted in order to reach required securities percentage from loan amount, as defined in this product. none
»» isGuarantorsEnabled boolean Shows whether guarantors (other clients) are accepted in order to reach the required securities percentage from loan amount, as defined in this product. none
»» requiredGuaranties number The securities percentage from loan amount that is needed in order for this account to be approved. Null if the securities are not required. none
» state string The current state of the loan product. none
» taxSettings TaxSettings Tax settings, defines some settings for taxes on the loan product none
»» taxCalculationMethod string Shows whether the tax is added on top of the target amount or not. none
»» taxSourceKey string The tax source from where the loan account taxes will be updated. none
»» taxesOnFeesEnabled boolean Shows whether taxes on fees are enabled for this product or not. none
»» taxesOnInterestEnabled boolean Shows whether taxes on interest are enabled for this product or not. none
»» taxesOnPenaltyEnabled boolean Shows whether taxes on penalties are enabled for this product or not. none
» templates [DocumentTemplate] The template documents of the loan product. none
»» creationDate string(date-time) The creation date of the document read-only
»» encodedKey string The document encodedKey read-only
»» lastModifiedDate string(date-time) The last modified date of the document read-only
»» name string The name the document none
»» type string The type of the template none
» type (required) string The type of the loan product. none

Enumerated Values

Property Value
settlementMethod FULL_DUE_AMOUNTS
settlementMethod PARTIAL_DUE_AMOUNTS
settlementMethod NO_AUTOMATED_TRANSFERS
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER
interestAccrualCalculation NONE
interestAccrualCalculation AGGREGATED_AMOUNT
interestAccrualCalculation BREAKDOWN_PER_ACCOUNT
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY
category PERSONAL_LENDING
category PURCHASE_FINANCING
category RETAIL_MORTGAGES
category SME_LENDING
category COMMERCIAL
category UNCATEGORIZED
creditArrangementRequirement OPTIONAL
creditArrangementRequirement REQUIRED
creditArrangementRequirement NOT_REQUIRED
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
amortizationProfile NONE
amortizationProfile SUM_OF_YEARS_DIGITS
amortizationProfile STRAIGHT_LINE
amortizationProfile EFFECTIVE_INTEREST_RATE
feeAmortizationUponRescheduleRefinanceOption END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT
feeAmortizationUponRescheduleRefinanceOption CONTINUE_AMORTIZATION_ON_THE_RESCHEDULED_REFINANCED_ACCOUNT
frequency ACCOUNT_INSTALLMENTS_DUE_DATES
frequency ACCOUNT_INSTALLMENTS_DUE_DATES_DAILY_BOOKING
frequency CUSTOM_INTERVAL
intervalType PREDEFINED_INTERVALS
intervalType FULL_TERM
periodUnit DAYS
periodUnit WEEKS
periodUnit MONTHS
periodUnit YEARS
amountCalculationMethod FLAT
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE
amountCalculationMethod REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE_NUMBER_OF_INSTALLMENTS
amountCalculationMethod FLAT_NUMBER_OF_INSTALLMENTS
amountCalculationMethod IOF_PERCENTAGE_OF_DISBURSED_AMOUNT
amountCalculationMethod IOF_PERCENTAGE_OF_INSTALLMENT_PRINCIPAL
amountCalculationMethod IOF_PERCENTAGE_OF_LATE_INSTALLMENT_PRINCIPAL
amountCalculationMethod MAMBU_FUNCTION
applyDateMethod MONTHLY_FROM_ACTIVATION
applyDateMethod FIRST_OF_EVERY_MONTH
feeApplication REQUIRED
feeApplication OPTIONAL
state ACTIVE
state INACTIVE
taxableCalculationMethod DEFAULT
taxableCalculationMethod NON_TAXABLE
taxableCalculationMethod CUSTOM_TAX
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE
funderInterestCommissionAllocationType PERCENTAGE_OF_LOAN_FUNDING
funderInterestCommissionAllocationType FIXED_INTEREST_COMMISSIONS
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
compoundingFrequency DAILY
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_364
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear BUS_252
daysInYear E30_42_365
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
method WORKING_DAYS
method CALENDAR_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
scheduleInterestDaysCountMethod REPAYMENT_PERIODICITY
scheduleInterestDaysCountMethod ACTUAL_DAYS_COUNT
cappingConstraintType SOFT_CAP
cappingConstraintType HARD_CAP
cappingMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
cappingMethod ORIGINAL_PRINCIPAL_PERCENTAGE
accountInitialState PARTIAL_APPLICATION
accountInitialState PENDING_APPROVAL
accountInitialState APPROVED
accountInitialState ACTIVE
accountInitialState ACTIVE_IN_ARREARS
accountInitialState CLOSED
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN
amortizationMethod STANDARD_PAYMENTS
amortizationMethod BALLOON_PAYMENTS
amortizationMethod OPTIMIZED_PAYMENTS
amortizationMethod PAYMENT_PLAN
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
paymentMethod HORIZONTAL
paymentMethod VERTICAL
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
prepaymentAcceptance ACCEPT_PREPAYMENTS
prepaymentAcceptance NO_PREPAYMENTS
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL
interestAccrualSince DISBURSEMENT
interestAccrualSince DUE_DATE
repaymentMethod AMOUNT
repaymentMethod INSTALLMENTS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentReschedulingMethod NONE
repaymentReschedulingMethod NEXT_WORKING_DAY
repaymentReschedulingMethod PREVIOUS_WORKING_DAY
repaymentReschedulingMethod EXTEND_SCHEDULE
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
repaymentCurrencyRounding NO_ROUNDING
repaymentCurrencyRounding ROUND_TO_NEAREST_WHOLE_UNIT
repaymentCurrencyRounding ROUND_UP_TO_NEAREST_WHOLE_UNIT
repaymentElementsRoundingMethod NO_ROUNDING
repaymentElementsRoundingMethod ROUND_ALL
repaymentElementsRoundingMethod PAYMENT_DUE
roundingRepaymentScheduleMethod NO_ROUNDING
roundingRepaymentScheduleMethod ROUND_REMAINDER_INTO_LAST_REPAYMENT
roundingRepaymentScheduleMethod ROUND_PRINCIPAL_AND_INTEREST_REMAINDER_INTO_LAST_REPAYMENT
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH
state ACTIVE
state INACTIVE
taxCalculationMethod INCLUSIVE
taxCalculationMethod EXCLUSIVE
type ACCOUNT
type TRANSACTION
type ACCOUNT_WITH_TRANSACTIONS
type FIXED_TERM_LOAN
type DYNAMIC_TERM_LOAN
type INTEREST_FREE_LOAN
type TRANCHED_LOAN
type REVOLVING_CREDIT
type INTEREST_ONLY_EQUAL_INSTALLMENTS

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Loan Products)

Code samples

# You can also use wget
curl -X POST /loanproducts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loanproducts HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loanproducts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loanproducts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loanproducts', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loanproducts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loanproducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loanproducts

Create loan product

Body parameter

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) LoanProduct Loan product to be created. body

Example responses

201 Response

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "encodedKey": "string",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Loan product created. LoanProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getById (Loan Products)

Code samples

# You can also use wget
curl -X GET /loanproducts/{loanProductId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loanproducts/{loanProductId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loanproducts/{loanProductId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loanproducts/{loanProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loanproducts/{loanProductId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loanproducts/{loanProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts/{loanProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loanproducts/{loanProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loanproducts/{loanProductId}

Get loan product

Parameters

Name Type Description In
loanProductId (required) string The ID or encoded key of the loan product to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "encodedKey": "string",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Responses

Status Meaning Description Schema
200 OK Loan product returned. LoanProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan product not found. ErrorResponse

update (Loan Products)

Code samples

# You can also use wget
curl -X PUT /loanproducts/{loanProductId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loanproducts/{loanProductId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loanproducts/{loanProductId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loanproducts/{loanProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loanproducts/{loanProductId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loanproducts/{loanProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts/{loanProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loanproducts/{loanProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loanproducts/{loanProductId}

Update loan product

Body parameter

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Parameters

Name Type Description In
loanProductId (required) string The ID or encoded key of the loan product to be updated. path
body (required) LoanProduct Loan product to be updated. body

Example responses

200 Response

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "encodedKey": "string",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Responses

Status Meaning Description Schema
200 OK Loan product updated. LoanProduct
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan product not found. ErrorResponse

delete (Loan Products)

Code samples

# You can also use wget
curl -X DELETE /loanproducts/{loanProductId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loanproducts/{loanProductId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loanproducts/{loanProductId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loanproducts/{loanProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loanproducts/{loanProductId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loanproducts/{loanProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts/{loanProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loanproducts/{loanProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loanproducts/{loanProductId}

Delete loan product

Parameters

Name Type Description In
loanProductId (required) string The ID or encoded key of the loan product to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Loan product deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan product not found. ErrorResponse

patch (Loan Products)

Code samples

# You can also use wget
curl -X PATCH /loanproducts/{loanProductId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /loanproducts/{loanProductId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loanproducts/{loanProductId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/loanproducts/{loanProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/loanproducts/{loanProductId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/loanproducts/{loanProductId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loanproducts/{loanProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/loanproducts/{loanProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /loanproducts/{loanProductId}

Partially update loan product

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
loanProductId (required) string The ID or encoded key of the loan product to be updated. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Loan product updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan product not found. ErrorResponse

Loan Products Configuration

Retrieve and update the configuration for loan products.

A loan product allows you to set up, in advance, the parameters for a type of loan that you wish to offer. Loan products are flexible and highly customizable templates for creating individual loans. For more information about this resource, see Loan Products Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Loan Products Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/loanproducts.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/loanproducts.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/loanproducts.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/loanproducts.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/loanproducts.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/loanproducts.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/loanproducts.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/loanproducts.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/loanproducts.yaml

Allows you to get or update the loan products configuration.

Parameters

Name Type Description In
type array[string] The product type of the loan products to be returned. If the parameter is absent, all the loan products will be returned. query

Enumerated Values

Parameter Value
type FIXED_TERM_LOAN
type DYNAMIC_TERM_LOAN
type INTEREST_FREE_LOAN
type TRANCHED_LOAN
type REVOLVING_CREDIT
type INTEREST_ONLY_EQUAL_INSTALLMENTS

Example responses

var-loanproducts-config-get-200

400 Response

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Loan products configuration returned. LoanProductsConfiguration
400 Bad Request A validation error occurred. ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Loan Products Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/loanproducts.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml' \
  -H 'X-Mambu-Async: true' \
  -H 'X-Mambu-Callback: string'

PUT /configuration/loanproducts.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml
X-Mambu-Async: true
X-Mambu-Callback: string

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async':'true',
  'X-Mambu-Callback':'string'

};

$.ajax({
  url: '/configuration/loanproducts.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async' => 'true',
  'X-Mambu-Callback' => 'string'
}

result = RestClient.put '/configuration/loanproducts.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async': 'true',
  'X-Mambu-Callback': 'string'
}

r = requests.put('/configuration/loanproducts.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    'X-Mambu-Async' => 'true',
    'X-Mambu-Callback' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/loanproducts.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/loanproducts.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        "X-Mambu-Async": []string{"true"},
        "X-Mambu-Callback": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/loanproducts.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/loanproducts.yaml

Update loan products configuration

Body parameter

An example of a loan products configuration

---
id: "6354"
name: "house_mortgage"
notes: "loan product secured by a property that the loan applicant already owns"
type: "DYNAMIC_TERM_LOAN"
category: "COMMERCIAL"
state: "INACTIVE"
loanAmountSettings:
  loanAmount:
    minValue: 1
    maxValue: 100
    defaultValue: 10
  trancheSettings:
    maxNumberOfTranches: 1
scheduleSettings:
  repaymentScheduleMethod: "FIXED"
  scheduleDueDatesMethod: "FIXED_DAYS_OF_MONTH"
  defaultRepaymentPeriodCount: 4
  repaymentPeriodUnit: "MONTHS"
  fixedDaysOfMonth:
  - 2
  - 4
  shortMonthHandlingMethod: "LAST_DAY_IN_MONTH"
  roundingSettings:
    roundingRepaymentScheduleMethod: "NO_ROUNDING"
    repaymentCurrencyRounding: "ROUND_TO_NEAREST_WHOLE_UNIT"
    repaymentElementsRoundingMethod: "ROUND_ALL"
  numInstallments:
    defaultValue: 77
    maxValue: 7
  firstRepaymentDueDateOffset:
    defaultValue: 77
    maxValue: 7
  repaymentScheduleEditOptions:
  - "ADJUST_NUMBER_OF_INSTALLMENTS"
  - "ADJUST_FEE_PAYMENT_SCHEDULE"
  repaymentReschedulingMethod: "NEXT_WORKING_DAY"
  billingCycles:
    enabled: true
    startDays:
    - 9
    - 5
    - 7
  previewSchedule:
    previewScheduleEnabled: true
    numberOfPreviewedInstalments: 3
paymentSettings:
  paymentMethod: "VERTICAL"
  amortizationMethod: "OPTIMIZED_PAYMENTS"
  prepaymentSettings:
    prepaymentRecalculationMethod: "RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS"
    elementsRecalculationMethod: "PRINCIPAL_EXPECTED_FIXED"
    prepaymentAcceptance: "ACCEPT_PREPAYMENTS"
    futurePaymentsAcceptance: "ACCEPT_FUTURE_PAYMENTS"
    applyInterestOnPrepaymentMethod: "AUTOMATIC"
    principalPaidInstallmentStatus: "PARTIALLY_PAID"
  latePaymentsRecalculationMethod: "LAST_INSTALLMENT_INCREASE"
  repaymentAllocationOrder:
  - "FEE"
  - "PRINCIPAL"
  principalPaymentSettings:
    amount:
      minValue: 1
      maxValue: 100
      defaultValue: 10
    percentage:
      minValue: 1
      maxValue: 100
      defaultValue: 10
    principalPaymentMethod: "OUTSTANDING_PRINCIPAL_PERCENTAGE"
    totalDuePayment: "OUTSTANDING_PRINCIPAL_PERCENTAGE"
    defaultPrincipalRepaymentInterval: 6
    principalCeilingValue: 5
    principalFloorValue: 3
    totalDueAmountFloor: 2
    includeFeesInFloorAmount: true
gracePeriodSettings:
  gracePeriod:
    defaultValue: 77
    maxValue: 7
  gracePeriodType: "NONE"
newAccountSettings:
  idGeneratorType: "RANDOM_PATTERN"
  idPattern: "@@@###"
  accountInitialState: "PENDING_APPROVAL"
interestSettings:
  interestApplicationMethod: "REPAYMENT_DUE_DATE"
  interestBalanceCalculationMethod: "PRINCIPAL_AND_INTEREST"
  interestCalculationMethod: "DECLINING_BALANCE"
  daysInYear: "ACTUAL_ACTUAL_ISDA"
  scheduleInterestDaysCountMethod: "REPAYMENT_PERIODICITY"
  interestType: "SIMPLE_INTEREST"
  indexRateSettings:
    indexSourceId: "index source id"
    interestRate:
      minValue: 1
      maxValue: 100
      defaultValue: 10
    interestRateSource: "FIXED_INTEREST_RATE"
    interestRateTerms: "TIERED"
    interestChargeFrequency: "EVERY_DAY"
    interestRateReviewUnit: "MONTHS"
    interestRateReviewCount: 6
    interestChargeFrequencyCount: 9
    accrueInterestAfterMaturity: true
    interestRateCeilingValue: 34
    interestRateFloorValue: 12
    allowNegativeInterestRate: true
    interestRateTiers:
    - endingBalance: 17
      interestRate: 45
    - endingBalance: 17
      interestRate: 45
  accrueLateInterest: true
  compoundingFrequency: "DAILY"
  interestRateSettings:
  - interestRateSource: "INDEX_INTEREST_RATE"
    indexSourceId: "index rate source id"
    interestRate:
      minValue: 1
      maxValue: 100
      defaultValue: 10
    interestRateCeilingValue: 45
    interestRateFloorValue: 87
    interestRateReviewCount: 7
    interestRateReviewUnit: "DAYS"
  - interestRateSource: "INDEX_INTEREST_RATE"
    indexSourceId: "index rate source id"
    interestRate:
      minValue: 1
      maxValue: 100
      defaultValue: 10
    interestRateCeilingValue: 45
    interestRateFloorValue: 87
    interestRateReviewCount: 7
    interestRateReviewUnit: "DAYS"
penaltySettings:
  penaltyRate:
    minValue: 1
    maxValue: 100
    defaultValue: 10
  loanPenaltyCalculationMethod: "OUTSTANDING_PRINCIPAL"
  loanPenaltyGracePeriod: 4
arrearsSettings:
  toleranceCalculationMethod: "ARREARS_TOLERANCE_PERIOD"
  dateCalculationMethod: "ACCOUNT_FIRST_WENT_TO_ARREARS"
  nonWorkingDaysMethod: "EXCLUDED"
  toleranceFloorAmount: 45
  tolerancePeriod:
    defaultValue: 77
    maxValue: 7
  tolerancePercentageOfOutstandingPrincipal:
    minValue: 1
    maxValue: 100
    defaultValue: 10
  monthlyToleranceDay: 4
feesSettings:
  allowArbitraryFees: true
  fees:
  - name: "fee_name"
    id: "fee_id"
    amount: 10
    amountCalculationMethod: "LOAN_AMOUNT_PERCENTAGE"
    trigger: "ARBITRARY"
    feeApplication: "OPTIONAL"
    state: "INACTIVE"
    applyDateMethod: "FIRST_OF_EVERY_MONTH"
    accountingRules:
    - glAccountId: "gl_account_code"
      financialResource: "FUND_SOURCE"
      transactionChannelId: "transaction_channel_id"
    - glAccountId: "gl_account_code"
      financialResource: "FUND_SOURCE"
      transactionChannelId: "transaction_channel_id"
    percentageAmount: 4.5
    amortizationSettings:
      frequency: "CUSTOM_INTERVAL"
      periodUnit: "DAYS"
      periodCount: 5
      intervalType: "PREDEFINED_INTERVALS"
      intervalCount: 7
      amortizationProfile: "EFFECTIVE_INTEREST_RATE"
      feeAmortizationUponRescheduleRefinanceOption: "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT"
    taxSettings:
      taxableCalculationMethod: "CUSTOM_TAX"
  - name: "fee_name"
    id: "fee_id"
    amount: 10
    amountCalculationMethod: "LOAN_AMOUNT_PERCENTAGE"
    trigger: "ARBITRARY"
    feeApplication: "OPTIONAL"
    state: "INACTIVE"
    applyDateMethod: "FIRST_OF_EVERY_MONTH"
    accountingRules:
    - glAccountId: "gl_account_code"
      financialResource: "FUND_SOURCE"
      transactionChannelId: "transaction_channel_id"
    - glAccountId: "gl_account_code"
      financialResource: "FUND_SOURCE"
      transactionChannelId: "transaction_channel_id"
    percentageAmount: 4.5
    amortizationSettings:
      frequency: "CUSTOM_INTERVAL"
      periodUnit: "DAYS"
      periodCount: 5
      intervalType: "PREDEFINED_INTERVALS"
      intervalCount: 7
      amortizationProfile: "EFFECTIVE_INTEREST_RATE"
      feeAmortizationUponRescheduleRefinanceOption: "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT"
    taxSettings:
      taxableCalculationMethod: "CUSTOM_TAX"
accountingSettings:
  accountingMethod: "ACCRUAL"
  interestAccruedAccountingMethod: "DAILY"
  interestAccrualCalculation: "NONE"
  accountingRules:
  - glAccountId: "gl_account_code"
    financialResource: "FUND_SOURCE"
    transactionChannelId: "transaction_channel_id"
  - glAccountId: "gl_account_code"
    financialResource: "FUND_SOURCE"
    transactionChannelId: "transaction_channel_id"
accountLinkSettings:
  enabled: true
  linkableDepositProductId: "deposit id"
  linkedAccountOptions:
  - "AUTO_CREATE_LINKED_ACCOUNTS"
  - "AUTO_LINK_ACCOUNTS"
  settlementMethod: "FULL_DUE_AMOUNTS"
taxSettings:
  taxesOnInterestEnabled: true
  taxesOnFeesEnabled: true
  taxesOnPenaltyEnabled: true
  taxSourceId: "here_should_be_an_id"
  taxCalculationMethod: "EXCLUSIVE"
internalControls:
  dormancyPeriodDays: 4
  lockSettings:
    lockPeriodDays: 4
    cappingMethod: "OUTSTANDING_PRINCIPAL_PERCENTAGE"
    cappingConstraintType: "HARD_CAP"
    cappingPercentage: 9
  fourEyesPrinciple:
    activeForLoanApproval: true
securitySettings:
  isGuarantorsEnabled: true
  isCollateralEnabled: true
creditArrangementSettings:
  creditArrangementRequirement: "NOT_REQUIRED"
fundingSettings:
  enabled: true
  requiredFunds: 10
  funderInterestCommissionAllocationType: "PERCENTAGE_OF_LOAN_FUNDING"
  organizationInterestCommission:
    minValue: 1
    maxValue: 100
    defaultValue: 10
  funderInterestCommission:
    minValue: 1
    maxValue: 100
    defaultValue: 10
  lockFundsAtApproval: true
availabilitySettings:
  branchSettings:
    forAllBranches: true
    availableProductBranches:
    - "branchid1"
    - "branchid2"
  availableFor:
  - "SOLIDARITY_GROUPS"
  - "INDIVIDUALS"
offsetSettings:
  allowOffset: true
redrawSettings:
  allowRedraw: true
allowCustomRepaymentAllocation: true
currency:
  code: "AED"

Parameters

Name Type Description In
X-Mambu-Async boolean none header
X-Mambu-Callback string none header
body LoanProductsConfiguration Represents the loan products configuration. body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Loan products configuration updated. None
202 Accepted The request has been accepted for processing. None
400 Bad Request A validation error occurred. ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Configuration not found. ErrorResponse

Response Schema

Loan Accounts

Allows you to retrieve, create, update, delete loan accounts and it also allows to execute some other actions like:

getScheduleForLoanAccount (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/schedule \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/schedule HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/schedule',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/schedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/schedule', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/schedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/schedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/schedule

Get loan account schedule

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account schedule returned by the loan account ID or encoded key. LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

editSchedule (Loan Accounts)

Code samples

# You can also use wget
curl -X PUT /loans/{loanAccountId}/schedule \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loans/{loanAccountId}/schedule HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/schedule',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loans/{loanAccountId}/schedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loans/{loanAccountId}/schedule', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loans/{loanAccountId}/schedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loans/{loanAccountId}/schedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loans/{loanAccountId}/schedule

Update loan account schedule

Body parameter

[
  {
    "dueDate": "2016-09-06T13:37:50+03:00",
    "expectedClosingBalance": 0,
    "fee": {
      "amount": {
        "due": 0,
        "expected": 0,
        "expectedUnapplied": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "feeDetails": [
      {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0,
          "reduced": 0
        },
        "id": "string",
        "name": "string",
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0,
          "reduced": 0
        }
      }
    ],
    "interest": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "interestAccrued": 0,
    "isPaymentHoliday": true,
    "lastPaidDate": "2016-09-06T13:37:50+03:00",
    "number": "string",
    "parentAccountKey": "string",
    "penalty": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      },
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "principal": {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0
      }
    },
    "repaidDate": "2016-09-06T13:37:50+03:00",
    "state": "PENDING"
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) Installment The list of installments to update the current loan account schedule. body

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Updated loan account schedule. LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

previewProcessPMTTransactionally (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/schedule/previewProcessPMTTransactionally \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/schedule/previewProcessPMTTransactionally HTTP/1.1

Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/schedule/previewProcessPMTTransactionally", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/schedule/previewProcessPMTTransactionally

Preview loan account schedule using transactional processing for PMT.

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

200 Response

{
  "error": "string",
  "info": "string",
  "result": {
    "differences": true,
    "existingSchedule": [
      {
        "dueDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedClosingBalance": 0,
        "fee": {
          "amount": {
            "due": 0,
            "expected": 0,
            "expectedUnapplied": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "feeDetails": [
          {
            "amount": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            },
            "encodedKey": "string",
            "id": "string",
            "name": "string",
            "tax": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            }
          }
        ],
        "interest": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "interestAccrued": 0,
        "isPaymentHoliday": true,
        "lastPaidDate": "2016-09-06T13:37:50+03:00",
        "number": "string",
        "parentAccountKey": "string",
        "penalty": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "principal": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "repaidDate": "2016-09-06T13:37:50+03:00",
        "state": "PENDING"
      }
    ],
    "schedule": [
      {
        "dueDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedClosingBalance": 0,
        "fee": {
          "amount": {
            "due": 0,
            "expected": 0,
            "expectedUnapplied": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "feeDetails": [
          {
            "amount": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            },
            "encodedKey": "string",
            "id": "string",
            "name": "string",
            "tax": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            }
          }
        ],
        "interest": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "interestAccrued": 0,
        "isPaymentHoliday": true,
        "lastPaidDate": "2016-09-06T13:37:50+03:00",
        "number": "string",
        "parentAccountKey": "string",
        "penalty": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "principal": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "repaidDate": "2016-09-06T13:37:50+03:00",
        "state": "PENDING"
      }
    ]
  },
  "status": "string"
}

Responses

Status Meaning Description Schema
200 OK Loan account schedule preview is ready. LoanAccountPreviewProcessPMTTransactionally
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

previewTranchesOnSchedule (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/schedule:previewTranches \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/schedule:previewTranches HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/schedule:previewTranches',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/schedule:previewTranches',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/schedule:previewTranches', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/schedule:previewTranches', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/schedule:previewTranches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/schedule:previewTranches", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/schedule:previewTranches

Preview loan account schedule for non-existent loan account

Body parameter

[
  {
    "amount": 0,
    "disbursementDetails": {
      "disbursementTransactionKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
    },
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "trancheNumber": 0
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanTranche List of tranches to be considered in the schedule preview. body

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account schedule preview is ready. LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

previewSchedule (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/schedule:preview \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/schedule:preview HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/schedule:preview',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/schedule:preview',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/schedule:preview', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/schedule:preview', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/schedule:preview");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/schedule:preview", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/schedule:preview

Preview loan account schedule for non-existent loan account

Body parameter

{
  "disbursementDetails": {
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
  },
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "interestRate": 0,
    "interestSpread": 0
  },
  "loanAmount": 0,
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "productTypeKey": "string",
  "scheduleSettings": {
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "paymentPlan": [
      {
        "amount": 0,
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS"
  },
  "topUpAmount": 0,
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "fees": [
        {
          "amount": 0,
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) PreviewLoanAccountSchedule Loan account parameters for a schedule to be previewed. body

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account schedule preview is ready. LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getLoanAccountDocument (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/templates/{templateId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/templates/{templateId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/templates/{templateId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/templates/{templateId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/templates/{templateId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/templates/{templateId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/templates/{templateId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/templates/{templateId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/templates/{templateId}

Get loan account document

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
templateId (required) string The ID of the loan product template. path
startDate string(date) The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query
endDate string(date) The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query

Example responses

200 Response

"string"

Responses

Status Meaning Description Schema
200 OK Loan account document returned. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account or template not found. ErrorResponse

undoWriteOff (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:undoWriteOff \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:undoWriteOff HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:undoWriteOff',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:undoWriteOff',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:undoWriteOff', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:undoWriteOff', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:undoWriteOff");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:undoWriteOff", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:undoWriteOff

Undo write off for loan account

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanActionDetails Represents input details for a loan account write off. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Undo write off action applied. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

payOff (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:payOff \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:payOff HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:payOff',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:payOff',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:payOff', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:payOff', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:payOff");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:payOff", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:payOff

Pay off loan account

Body parameter

{
  "externalId": "string",
  "notes": "string",
  "payOffAdjustableAmounts": {
    "feesPaid": 0,
    "interestPaid": 0,
    "penaltyPaid": 0
  },
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  }
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanAccountPayOffInput Represents the information for loan account pay off action. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Pay off action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changePeriodicPayment (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changePeriodicPayment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changePeriodicPayment HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changePeriodicPayment',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changePeriodicPayment',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changePeriodicPayment', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changePeriodicPayment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changePeriodicPayment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changePeriodicPayment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changePeriodicPayment

Change the periodic payment amount for an active loan, so that it is still possible to have principal and interest installments, but with a smaller or greater total due amount than the initial one.

Body parameter

{
  "notes": "string",
  "periodicPayment": 0,
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body ChangePeriodicPaymentLoanAccountInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Change periodic payment action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

refinance (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:refinance \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:refinance HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:refinance',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:refinance',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:refinance', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:refinance', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:refinance");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:refinance", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:refinance

Refinance loan account

Body parameter

{
  "loanAccount": {
    "accountArrearsSettings": {
      "tolerancePercentageOfOutstandingPrincipal": 15,
      "tolerancePeriod": 3
    },
    "disbursementDetails": {
      "expectedDisbursementDate": "2021-12-30T13:37:50+03:00",
      "fees": [
        {
          "amount": 10,
          "predefinedFeeEncodedKey": "def456"
        }
      ],
      "firstRepaymentDate": "2022-01-31T13:37:50+03:00"
    },
    "guarantors": [
      {
        "amount": 20000,
        "assetName": "Maserati",
        "guarantorKey": "ghi789",
        "guarantorType": "ASSET"
      }
    ],
    "id": "LOAN-1234",
    "interestSettings": {
      "interestRate": 1.5,
      "interestSpread": 0
    },
    "loanName": "home improvement loan",
    "notes": "a loan to create a new wing for the mansion",
    "penaltySettings": {
      "penaltyRate": 0
    },
    "principalPaymentSettings": {
      "amount": 0,
      "percentage": 0
    },
    "productTypeKey": "abc123",
    "scheduleSettings": {
      "billingCycleDays": {
        "days": [
          30
        ]
      },
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 3,
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "repaymentInstallments": 24,
      "repaymentPeriodCount": 30,
      "repaymentPeriodUnit": "DAYS"
    }
  },
  "topUpAmount": 10000,
  "writeOffAmounts": {
    "fee": 0,
    "interest": 0,
    "penalty": 0
  }
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body RefinanceLoanAccountAction Represents information for an action to perform on a loan account. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Refinance action posted. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

previewPayOffAmounts (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:previewPayOffAmounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:previewPayOffAmounts HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:previewPayOffAmounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:previewPayOffAmounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:previewPayOffAmounts', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:previewPayOffAmounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:previewPayOffAmounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:previewPayOffAmounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:previewPayOffAmounts

Preview pay off due amounts in a future date

Body parameter

{
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body PreviewPayOffDueAmountsInAFutureDateInput Represents information for an action to perform on a loan account. body

Example responses

200 Response

{
  "earlyRepaymentCharge": 0,
  "feeBalance": 0,
  "interestBalance": 0,
  "penaltyBalance": 0,
  "principalBalance": 0,
  "totalBalance": 0
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Preview pay off due amounts in a future date action posted. PreviewPayOffDueAmountsInAFutureDateWrapper
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

reschedule (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:reschedule \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:reschedule HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:reschedule',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:reschedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:reschedule', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:reschedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:reschedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:reschedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:reschedule

Reschedule loan account

Body parameter

{
  "loanAccount": {
    "accountArrearsSettings": {
      "tolerancePercentageOfOutstandingPrincipal": 15,
      "tolerancePeriod": 3
    },
    "disbursementDetails": {
      "firstRepaymentDate": "2021-12-30T13:37:50+03:00"
    },
    "guarantors": [
      {
        "amount": 5000,
        "assetName": "Tesla car",
        "guarantorType": "ASSET"
      }
    ],
    "id": "LOAN-abc123",
    "interestCommission": 1.5,
    "interestSettings": {
      "interestRate": 7,
      "interestSpread": 0.75
    },
    "loanName": "Business Loan",
    "notes": "A loan for expanding the business",
    "penaltySettings": {
      "penaltyRate": 0
    },
    "principalPaymentSettings": {
      "amount": 0,
      "percentage": 0
    },
    "productTypeKey": "def456",
    "scheduleSettings": {
      "billingCycleDays": {
        "days": [
          30
        ]
      },
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS"
    }
  },
  "writeOffAmounts": {
    "fee": 0,
    "interest": 0,
    "penalty": 0,
    "principal": 0
  }
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body RescheduleLoanAccountAction Represents information for an action to perform on a loan account. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Reschedule action posted. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

deleteCard (Loan Accounts)

Code samples

# You can also use wget
curl -X DELETE /loans/{loanAccountId}/cards/{cardReferenceToken} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loans/{loanAccountId}/cards/{cardReferenceToken} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/cards/{cardReferenceToken}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loans/{loanAccountId}/cards/{cardReferenceToken}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loans/{loanAccountId}/cards/{cardReferenceToken}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loans/{loanAccountId}/cards/{cardReferenceToken}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/cards/{cardReferenceToken}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loans/{loanAccountId}/cards/{cardReferenceToken}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loans/{loanAccountId}/cards/{cardReferenceToken}

Represents the information needed to delete a card associated to an account using its reference token.

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
cardReferenceToken (required) string The reference token of the card to be returned. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content The card was deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

undoReschedule (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:undoReschedule \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:undoReschedule HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:undoReschedule',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:undoReschedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:undoReschedule', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:undoReschedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:undoReschedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:undoReschedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:undoReschedule

Undo loan account reschedule action

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body LoanActionDetails Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Undo reschedule action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changeArrearsSettings (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changeArrearsSettings \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changeArrearsSettings HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changeArrearsSettings',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changeArrearsSettings',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changeArrearsSettings', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changeArrearsSettings', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changeArrearsSettings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changeArrearsSettings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changeArrearsSettings

Change arrears settings for loan account

Body parameter

{
  "arrearsTolerancePeriod": 0,
  "entryDate": "2016-09-06T13:37:50+03:00",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body ChangeArrearsSettingsInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Change arrears settings action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changeInterestRate (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changeInterestRate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changeInterestRate HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changeInterestRate',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changeInterestRate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changeInterestRate', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changeInterestRate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changeInterestRate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changeInterestRate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changeInterestRate

Change loan account interest rate

Body parameter

{
  "interestRate": 0,
  "interestSpread": 0,
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body ChangeInterestRateLoanAccountInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Change interest rate action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changeDueDatesSettings (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changeDueDatesSettings \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changeDueDatesSettings HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changeDueDatesSettings',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changeDueDatesSettings',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changeDueDatesSettings', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changeDueDatesSettings', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changeDueDatesSettings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changeDueDatesSettings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changeDueDatesSettings

Change due dates settings for loan account

Body parameter

{
  "entryDate": "2016-09-06T13:37:50+03:00",
  "fixedDaysOfMonth": [
    0
  ],
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body ChangeDueDatesSettingsInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Change due dates settings action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Code samples

# You can also use wget
curl -X POST /loans:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /loans:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/loans:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/loans:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans:search

Search loan accounts

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "accountHolderKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) LoanAccountSearchCriteria Criteria to be used to search the loan accounts. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "accountArrearsSettings": {
      "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
      "encodedKey": "string",
      "monthlyToleranceDay": 0,
      "nonWorkingDaysMethod": "INCLUDED",
      "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
      "toleranceFloorAmount": 0,
      "tolerancePercentageOfOutstandingPrincipal": 0,
      "tolerancePeriod": 0
    },
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PARTIAL_APPLICATION",
    "accountSubState": "PARTIALLY_DISBURSED",
    "accruedInterest": 0,
    "accruedPenalty": 0,
    "activationTransactionKey": "string",
    "allowOffset": true,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "arrearsTolerancePeriod": 0,
    "assets": [
      {
        "_Asset_Default_Assets": {
          "Example_Checkbox_Field_Assets": "TRUE",
          "Example_Free_Text_Field_Assets": "string",
          "Example_Number_Field_Assets": "string",
          "Example_Select_Field_Assets": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "originalAmount": 0,
        "originalCurrency": {
          "code": "AED",
          "currencyCode": "string"
        }
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "feesBalance": 0,
      "feesDue": 0,
      "feesPaid": 0,
      "holdBalance": 0,
      "interestBalance": 0,
      "interestDue": 0,
      "interestFromArrearsBalance": 0,
      "interestFromArrearsDue": 0,
      "interestFromArrearsPaid": 0,
      "interestPaid": 0,
      "penaltyBalance": 0,
      "penaltyDue": 0,
      "penaltyPaid": 0,
      "principalBalance": 0,
      "principalDue": 0,
      "principalPaid": 0,
      "redrawBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "daysInArrears": 0,
    "daysLate": 0,
    "disbursementDetails": {
      "disbursementDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
      "transactionDetails": {
        "encodedKey": "string",
        "internalTransfer": true,
        "targetDepositAccountKey": "string",
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      }
    },
    "encodedKey": "string",
    "fundingSources": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "id": "string",
        "interestCommission": 0,
        "sharePercentage": 0
      }
    ],
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "guarantors": [
      {
        "_Guarantor_Default_Guarantors": {
          "Example_Checkbox_Guarantors": "TRUE",
          "Example_Free_Text_Guarantors": "string",
          "Example_Number_Field_Guarantors": "string",
          "Example_Select_Field_Guarantors": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT"
      }
    ],
    "id": "string",
    "interestAccruedInBillingCycle": 0,
    "interestCommission": 0,
    "interestFromArrearsAccrued": 0,
    "interestSettings": {
      "accountInterestRateSettings": [
        {
          "encodedKey": "string",
          "indexSourceKey": "string",
          "interestRate": 0,
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestSpread": 0,
          "validFrom": "2016-09-06T13:37:50+03:00"
        }
      ],
      "accrueInterestAfterMaturity": true,
      "accrueLateInterest": true,
      "interestApplicationMethod": "AFTER_DISBURSEMENT",
      "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
      "interestCalculationMethod": "FLAT",
      "interestChargeFrequency": "ANNUALIZED",
      "interestRate": 0,
      "interestRateChangePMTAdjustmentThreshold": {
        "method": "WORKING_DAYS",
        "numberOfDays": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "interestType": "SIMPLE_INTEREST"
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastLockedDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "loanAmount": 0,
    "loanName": "string",
    "lockedAccountTotalDueType": "BALANCE_AMOUNT",
    "lockedOperations": [
      "APPLY_INTEREST"
    ],
    "migrationEventKey": "string",
    "modifyInterestForFirstInstallment": true,
    "notes": "string",
    "originalAccountKey": "string",
    "paymentHolidaysAccruedInterest": 0,
    "paymentMethod": "HORIZONTAL",
    "penaltySettings": {
      "loanPenaltyCalculationMethod": "NONE",
      "penaltyRate": 0
    },
    "plannedInstallmentFees": [
      {
        "amount": 0,
        "applyOnDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "installmentKey": "string",
        "installmentNumber": 0,
        "predefinedFeeKey": "string"
      }
    ],
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": 0,
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "productTypeKey": "string",
    "redrawSettings": {
      "restrictNextDueWithdrawal": true
    },
    "rescheduledAccountKey": "string",
    "scheduleSettings": {
      "billingCycle": {
        "days": [
          0
        ]
      },
      "defaultFirstRepaymentDueDateOffset": 0,
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "gracePeriodType": "NONE",
      "hasCustomSchedule": true,
      "paymentPlan": [
        {
          "amount": 0,
          "encodedKey": "string",
          "toInstallment": 0
        }
      ],
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "principalRepaymentInterval": 0,
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS",
      "repaymentScheduleMethod": "NONE",
      "scheduleDueDatesMethod": "INTERVAL",
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "settlementAccountKey": "string",
    "taxRate": 0,
    "terminationDate": "2016-09-06T13:37:50+03:00",
    "tranches": [
      {
        "amount": 0,
        "disbursementDetails": {
          "disbursementTransactionKey": "string",
          "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
        },
        "encodedKey": "string",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "trancheNumber": 0
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Result of loan account search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found No loan account could be found using the supplied criteria. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanAccountFullDetails] [Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
»» dateCalculationMethod string The arrears date calculation method. none
»» encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
»» monthlyToleranceDay integer(int32) Defines monthly arrears tolerance day value. none
»» nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
»» toleranceCalculationMethod string Defines the tolerance calculation method none
»» toleranceFloorAmount number The tolerance floor amount. none
»» tolerancePercentageOfOutstandingPrincipal number Defines the arrears tolerance amount. none
»» tolerancePeriod integer(int32) Defines the arrears tolerance period value. none
» accountHolderKey (required) string The encoded key of the account holder. none
» accountHolderType (required) string The type of the account holder. none
» accountState string The state of the loan account. none
» accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
» accruedInterest number The amount of interest that has been accrued in the loan account. none
» accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
» activationTransactionKey string The encoded key of the transaction that activated the loan account. none
» allowOffset boolean DEPRECATED - Will always be false. none
» approvedDate string(date-time) The date the loan account was approved. none
» arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
» assets [AssetFullDetails] The list of assets associated with the current loan account. none
»» _Asset_Default_Assets _Asset_Default_Assets Default custom field set used only for grouping asset custom fields none
»»» Example_Checkbox_Field_Assets string none none
»»» Example_Free_Text_Field_Assets string none none
»»» Example_Number_Field_Assets string(number) none none
»»» Example_Select_Field_Assets string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey string The key of the client/group used as the guarantor. none
»» guarantorType string The type of the guarantor (client/group) none
»» originalAmount number The original amount used by the client for a collateral asset none
»» originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
» assignedCentreKey string The key of the centre this account is assigned to. none
» assignedUserKey string The key of the user this loan account is assigned to. none
» balances Balances The loan account balance details. none
»» feesBalance number The fees balance. Represents the total fees expected to be paid on this account at a given moment. read-only
»» feesDue number The fees due. Representing the total fees due for the account. read-only
»» feesPaid number The fees paid. Represents the total fees paid for the account. read-only
»» holdBalance number The sum of all the authorization hold amounts on this account. read-only
»» interestBalance number Represents the total interest owed by the client (total interest applied for account minus interest paid). read-only
»» interestDue number The interest due. Indicates how much interest it's due for the account at this moment. read-only
»» interestFromArrearsBalance number The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid). read-only
»» interestFromArrearsDue number The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment. read-only
»» interestFromArrearsPaid number The interest from arrears paid, indicates total interest from arrears paid into the account. read-only
»» interestPaid number The interest paid, indicates total interest paid into the account. read-only
»» penaltyBalance number The penalty balance. Represents the total penalty expected to be paid on this account at a given moment. read-only
»» penaltyDue number The penalty due. Represents the total penalty amount due for the account. read-only
»» penaltyPaid number The Penalty paid. Represents the total penalty amount paid for the account. read-only
»» principalBalance number The total principal owned by the client, from now on (principal disbursed - principal paid). read-only
»» principalDue number The principal due, indicates how much principal it's due at this moment. read-only
»» principalPaid number The principal paid, holds the value of the total paid into the account. read-only
»» redrawBalance number The total redraw amount owned by the client, from now on. none
» closedDate string(date-time) The date the loan was closed. none
» creationDate string(date-time) The date the loan account was created. none
» creditArrangementKey string The key to the line of credit where this account is registered to. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
» daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
» daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
» disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
»» disbursementDate string(date-time) The activation date, the date when the disbursement actually took place. none
»» encodedKey string The encoded key of the disbursement details, auto generated, unique read-only
»» expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
»» fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
»»» amount number The amount of the custom fee. none
»»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»»» percentage number The percentage of the custom fee. none
»»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
»» firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none
»» transactionDetails LoanTransactionDetails Represents the loan transaction details. none
»»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»»» internalTransfer boolean Whether the transaction was transferred between loans or deposit accounts none
»»» targetDepositAccountKey string In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made. none
»»» transactionChannelId string The ID of the transaction channel associated with the transaction details. none
»»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
» fundingSources [InvestorFund] The list of funds associated with the loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
»» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
»» interestCommission number The constraint minimum value none
»» sharePercentage number Percentage of loan shares this investor owns none
» futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
» guarantors [GuarantorFullDetails] The list of guarantees associated with the loan account. none
»» _Guarantor_Default_Guarantors _Guarantor_Default_Guarantors Default custom field set used only for grouping guarantor custom fields none
»»» Example_Checkbox_Guarantors string none none
»»» Example_Free_Text_Guarantors string none none
»»» Example_Number_Field_Guarantors string(number) none none
»»» Example_Select_Field_Guarantors string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
» id string The ID of the loan account, it can be generated and customized, and must be unique. none
» interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
» interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
» interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
» interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»» accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
»»» encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestRate number Interest rate value. none
»»» interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
»»» interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
»»» interestSpread number Interest spread value. none
»»» validFrom (required) string(date-time) Date since an interest rate is valid none
»» accrueInterestAfterMaturity boolean The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date. none
»» accrueLateInterest boolean Indicates whether late interest is accrued for this loan account read-only
»» interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
»» interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
»» interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
»» interestChargeFrequency string The interest change frequency. Holds the possible values for how often is interest charged on loan or deposit accounts none
»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
»»» method string The method used to calculate the interest rate change threshold. none
»»» numberOfDays integer(int32) The number of days that trigger an interest rate change. none
»» interestRateReviewCount integer(int32) Interest rate update frequency unit count. none
»» interestRateReviewUnit string The interest rate review unit. Defines the interest rate update frequency measurement unit. none
»» interestRateSource string The interest rate source. Represents the interest calculation method: fixed or (interest spread + active organization index interest rate) none
»» interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none
»» interestType string The possible values for how we compute and apply the interest none
» lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
» lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
» lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
» lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
» lastModifiedDate string(date-time) The last date the loan was updated. none
» lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
» lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
» latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
» loanAmount (required) number The loan amount. none
» loanName string The name of the loan account. none
» lockedAccountTotalDueType string The locked account total due type. none
» lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
» migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
» modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
» notes string The notes about this loan account. none
» originalAccountKey string The key of the original rescheduled or refinanced loan account. none
» paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
» paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
» penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
»» loanPenaltyCalculationMethod string The last penalty calculation method, represents on what amount are the penalties calculated. none
»» penaltyRate number The penalty rate, represents the rate (in percent) which is charged as a penalty. none
» plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
»» amount number The amount of the planned fee. none
»» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
»» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
»» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
»» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
»» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none
» prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
»» applyInterestOnPrepaymentMethod string Apply interest on prepayment method copied from loan product on which this account is based. none
»» elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
»» prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
»» principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none
» principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
»» amount number Fixed amount for being used for the repayments principal due. none
»» encodedKey string The encoded key of the principal payment base settings, auto generated, unique. read-only
»» includeFeesInFloorAmount boolean Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» includeInterestInFloorAmount boolean Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» percentage number Percentage of principal amount used for the repayments principal due. none
»» principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
»» principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
»» principalPaymentMethod string The method of principal payment for revolving credit. none
»» totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
»» totalDuePayment string The method of total due payment for revolving credit none
» productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
» redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
»» restrictNextDueWithdrawal (required) boolean TRUE if withdrawing amounts that reduce the next due instalment repayment is restricted, FALSE otherwise. none
» rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
» scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
»» billingCycle BillingCycleDays Defines the billing cycles settings for a loan account none
»»» days [integer] The billing cycle start days in case it is enabled none
»» defaultFirstRepaymentDueDateOffset integer(int32) The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset) none
»» fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
»» gracePeriod (required) integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
»» gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
»» hasCustomSchedule boolean Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due none
»» paymentPlan [PeriodicPayment] A list of periodic payments for the current loan account. none
»»» amount (required) number The PMT value used in periodic payment none
»»» encodedKey string The encoded key of the periodic payment, auto generated, unique. read-only
»»» toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none
»» periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
»» previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
»»» numberOfPreviewedInstalments integer(int32) The number of previewed instalments none
»» principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
»» repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
»» repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
»» repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none
»» repaymentScheduleMethod string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
»» scheduleDueDatesMethod string The schedule due dates method. Represents the methodology used by this account to compute the due dates of the repayments. none
»» shortMonthHandlingMethod string The short handling method. Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
» settlementAccountKey string The encoded key of the settlement account. none
» taxRate number The tax rate. none
» terminationDate string(date-time) The date this loan account was terminated. none
» tranches [LoanTranche] The list of disbursement tranches available for the loan account. none
»» amount (required) number The amount this tranche has available for disburse none
»» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
»» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
»» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» trancheNumber integer(int32) Index indicating the tranche number none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
Example_Checkbox_Field_Assets TRUE
Example_Checkbox_Field_Assets FALSE
Example_Select_Field_Assets Option 1
Example_Select_Field_Assets Option 2
Example_Select_Field_Assets Option 3
guarantorType CLIENT
guarantorType GROUP
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
guarantorType CLIENT
guarantorType GROUP
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
Example_Checkbox_Guarantors TRUE
Example_Checkbox_Guarantors FALSE
Example_Select_Field_Guarantors Option 1
Example_Select_Field_Guarantors Option 2
Example_Select_Field_Guarantors Option 3
guarantorType CLIENT
guarantorType GROUP
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
method WORKING_DAYS
method CALENDAR_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

writeOff (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:writeOff \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:writeOff HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:writeOff',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:writeOff',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:writeOff', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:writeOff', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:writeOff");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:writeOff", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:writeOff

Write off loan account

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body LoanActionDetails Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Write off action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getById (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}

Get loan account

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account returned. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

update (Loan Accounts)

Code samples

# You can also use wget
curl -X PUT /loans/{loanAccountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loans/{loanAccountId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loans/{loanAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loans/{loanAccountId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loans/{loanAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loans/{loanAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loans/{loanAccountId}

Update loan account

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "fees": [
        {
          "amount": 0,
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanAccountFullDetails Loan account to be updated. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account updated. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

delete (Loan Accounts)

Code samples

# You can also use wget
curl -X DELETE /loans/{loanAccountId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loans/{loanAccountId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loans/{loanAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loans/{loanAccountId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loans/{loanAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loans/{loanAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loans/{loanAccountId}

Delete loan account

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Loan account deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

patch (Loan Accounts)

Code samples

# You can also use wget
curl -X PATCH /loans/{loanAccountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /loans/{loanAccountId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/loans/{loanAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/loans/{loanAccountId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/loans/{loanAccountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/loans/{loanAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /loans/{loanAccountId}

Partially update loan account

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Loan account updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getAllAuthorizationHolds (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/authorizationholds \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/authorizationholds HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/authorizationholds',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/authorizationholds',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/authorizationholds', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/authorizationholds', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/authorizationholds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/authorizationholds", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/authorizationholds

Get authorization holds related to a loan account, ordered from newest to oldest by creation date

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
status string The status of the authorization holds to filter on query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
status PENDING
status REVERSED
status SETTLED
status EXPIRED

Example responses

200 Response

[
  {
    "accountKey": "string",
    "advice": true,
    "amount": 0,
    "balances": {
      "accountId": "string",
      "availableBalance": 0,
      "cardType": "DEBIT",
      "creditLimit": 0,
      "currencyCode": "string",
      "totalBalance": 0
    },
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditDebitIndicator": "DBIT",
    "currencyCode": "string",
    "customExpirationPeriod": 0,
    "encodedKey": "string",
    "exchangeRate": 0,
    "externalReferenceId": "string",
    "originalAmount": 0,
    "originalCurrency": "string",
    "partial": true,
    "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
    "source": "CARD",
    "status": "PENDING",
    "userTransactionTime": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The list of authorization holds has been returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [GetAuthorizationHold] [Details for retrieving a authorization hold. Deprecated due to encodedKey field.] none
» accountKey string The key of the account linked with the authorization hold. read-only
» advice (required) boolean Whether the given request should be accepted without balance validations. none
» amount (required) number The amount of money to be held as a result of the authorization hold request. none
» balances AccountBalances Account balances presented to inquirer such as card processor none
»» accountId string The unique account identifier none
»» availableBalance number The available balance of a deposit or credit account none
»» cardType string The card type either DEBIT or CREDIT none
»» creditLimit number The overdraft limit of a deposit account or the loan amount in case of a credit account none
»» currencyCode string Currency code used for the account none
»» totalBalance number The current balance of a deposit account or principal balance of a revolving credit none
» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»» city string The city in which the card acceptor has the business. none
»» country string The country in which the card acceptor has the business. none
»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»» name string The name of the card acceptor. none
»» state string The state in which the card acceptor has the business. none
»» street string The street in which the card acceptor has the business. none
»» zip string The ZIP code of the location in which the card acceptor has the business. none
» cardToken string The reference token of the card. read-only
» creationDate string(date-time) The organization time when the authorization hold was created read-only
» creditDebitIndicator string Indicates whether the authorization hold amount is credited or debited.If not provided, the default values is DBIT. none
» currencyCode string The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency. none
» customExpirationPeriod integer(int32) The custom expiration period for the hold which overwrites mcc and default expiration periods none
» encodedKey string The internal ID of the authorization hold, auto generated, unique. read-only
» exchangeRate number The exchange rate for the original currency. none
» externalReferenceId (required) string The external reference ID to be used to reference the account hold in subsequent requests. none
» originalAmount number The original amount of money to be held as a result of the authorization hold request. none
» originalCurrency string The original currency in which the hold was created. none
» partial boolean Indicates whether the authorization is partial or not none
» referenceDateForExpiration string(date-time) The date to consider as start date when calculating the number of days passed until expiration read-only
» source string Indicates the source of the authorization hold, the default values is CARD. read-only
» status string The authorization hold status. read-only
» userTransactionTime string The formatted time at which the user made this authorization hold. none

Enumerated Values

Property Value
cardType DEBIT
cardType CREDIT
creditDebitIndicator DBIT
creditDebitIndicator CRDT
source CARD
source ACCOUNT
status PENDING
status REVERSED
status SETTLED
status EXPIRED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

getAllCards (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/cards \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/cards HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/cards',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/cards', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/cards

Get cards associated with an account

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

200 Response

[
  {
    "referenceToken": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK The list of cards attached to the account was returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Card] [Returns a card that can be associated to a deposit or loan account. Cards consist only of card reference tokens and the card details are not stored in Mambu.] none
» referenceToken (required) string The card's reference token. none

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

createCard (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/cards HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/cards',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/cards', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/cards

Represents the information needed to create and associate a new card to an account.

Body parameter

{
  "referenceToken": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) Card The card to be created. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The card was created. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

applyInterest (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:applyInterest \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:applyInterest HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:applyInterest',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:applyInterest',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:applyInterest', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:applyInterest', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:applyInterest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:applyInterest", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:applyInterest

Apply accrued interest

Body parameter

{
  "interestApplicationDate": "2016-09-06T13:37:50+03:00",
  "isPaymentHolidaysInterest": true,
  "notes": "string",
  "paymentHolidaysInterestAmount": 0
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) ApplyInterestInput Represents the information for apply accrued interest action. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Interest applied. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changeRepaymentValue (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changeRepaymentValue \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changeRepaymentValue HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changeRepaymentValue',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changeRepaymentValue',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changeRepaymentValue', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changeRepaymentValue', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changeRepaymentValue");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changeRepaymentValue", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changeRepaymentValue

Change repayment value for loan account

Body parameter

{
  "amount": 0,
  "notes": "string",
  "percentage": 0,
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body ChangeRepaymentValueLoanAccountInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Change repayment value action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getAll (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans

Get loan accounts

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
creditOfficerUsername string The username of the credit officer to whom the entities are assigned to query
branchId string The id/encodedKey of the branch to which the entities are assigned to query
centreId string The id/encodedKey of the centre to which the entities are assigned to query
accountState string The state of the loan account to search for query
accountHolderType string The type of the account holder: CLIENT/GROUP query
accountHolderId string The id of the account holder query
sortBy string The criteria based on which the records will be sorted. Expected format is , for example, sortBy = field1:ASC,field2:DESC.
Only the following fields can be used: id, loanName, creationDate, lastModifiedDate
Default sorting is done by creationDate:ASC
query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountHolderType CLIENT
accountHolderType GROUP

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "accountArrearsSettings": {
      "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
      "encodedKey": "string",
      "monthlyToleranceDay": 0,
      "nonWorkingDaysMethod": "INCLUDED",
      "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
      "toleranceFloorAmount": 0,
      "tolerancePercentageOfOutstandingPrincipal": 0,
      "tolerancePeriod": 0
    },
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PARTIAL_APPLICATION",
    "accountSubState": "PARTIALLY_DISBURSED",
    "accruedInterest": 0,
    "accruedPenalty": 0,
    "activationTransactionKey": "string",
    "allowOffset": true,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "arrearsTolerancePeriod": 0,
    "assets": [
      {
        "_Asset_Default_Assets": {
          "Example_Checkbox_Field_Assets": "TRUE",
          "Example_Free_Text_Field_Assets": "string",
          "Example_Number_Field_Assets": "string",
          "Example_Select_Field_Assets": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "originalAmount": 0,
        "originalCurrency": {
          "code": "AED",
          "currencyCode": "string"
        }
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "feesBalance": 0,
      "feesDue": 0,
      "feesPaid": 0,
      "holdBalance": 0,
      "interestBalance": 0,
      "interestDue": 0,
      "interestFromArrearsBalance": 0,
      "interestFromArrearsDue": 0,
      "interestFromArrearsPaid": 0,
      "interestPaid": 0,
      "penaltyBalance": 0,
      "penaltyDue": 0,
      "penaltyPaid": 0,
      "principalBalance": 0,
      "principalDue": 0,
      "principalPaid": 0,
      "redrawBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "daysInArrears": 0,
    "daysLate": 0,
    "disbursementDetails": {
      "disbursementDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
      "transactionDetails": {
        "encodedKey": "string",
        "internalTransfer": true,
        "targetDepositAccountKey": "string",
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      }
    },
    "encodedKey": "string",
    "fundingSources": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "id": "string",
        "interestCommission": 0,
        "sharePercentage": 0
      }
    ],
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "guarantors": [
      {
        "_Guarantor_Default_Guarantors": {
          "Example_Checkbox_Guarantors": "TRUE",
          "Example_Free_Text_Guarantors": "string",
          "Example_Number_Field_Guarantors": "string",
          "Example_Select_Field_Guarantors": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT"
      }
    ],
    "id": "string",
    "interestAccruedInBillingCycle": 0,
    "interestCommission": 0,
    "interestFromArrearsAccrued": 0,
    "interestSettings": {
      "accountInterestRateSettings": [
        {
          "encodedKey": "string",
          "indexSourceKey": "string",
          "interestRate": 0,
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestSpread": 0,
          "validFrom": "2016-09-06T13:37:50+03:00"
        }
      ],
      "accrueInterestAfterMaturity": true,
      "accrueLateInterest": true,
      "interestApplicationMethod": "AFTER_DISBURSEMENT",
      "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
      "interestCalculationMethod": "FLAT",
      "interestChargeFrequency": "ANNUALIZED",
      "interestRate": 0,
      "interestRateChangePMTAdjustmentThreshold": {
        "method": "WORKING_DAYS",
        "numberOfDays": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "interestType": "SIMPLE_INTEREST"
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastLockedDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "loanAmount": 0,
    "loanName": "string",
    "lockedAccountTotalDueType": "BALANCE_AMOUNT",
    "lockedOperations": [
      "APPLY_INTEREST"
    ],
    "migrationEventKey": "string",
    "modifyInterestForFirstInstallment": true,
    "notes": "string",
    "originalAccountKey": "string",
    "paymentHolidaysAccruedInterest": 0,
    "paymentMethod": "HORIZONTAL",
    "penaltySettings": {
      "loanPenaltyCalculationMethod": "NONE",
      "penaltyRate": 0
    },
    "plannedInstallmentFees": [
      {
        "amount": 0,
        "applyOnDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "installmentKey": "string",
        "installmentNumber": 0,
        "predefinedFeeKey": "string"
      }
    ],
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": 0,
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "productTypeKey": "string",
    "redrawSettings": {
      "restrictNextDueWithdrawal": true
    },
    "rescheduledAccountKey": "string",
    "scheduleSettings": {
      "billingCycle": {
        "days": [
          0
        ]
      },
      "defaultFirstRepaymentDueDateOffset": 0,
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "gracePeriodType": "NONE",
      "hasCustomSchedule": true,
      "paymentPlan": [
        {
          "amount": 0,
          "encodedKey": "string",
          "toInstallment": 0
        }
      ],
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "principalRepaymentInterval": 0,
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS",
      "repaymentScheduleMethod": "NONE",
      "scheduleDueDatesMethod": "INTERVAL",
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "settlementAccountKey": "string",
    "taxRate": 0,
    "terminationDate": "2016-09-06T13:37:50+03:00",
    "tranches": [
      {
        "amount": 0,
        "disbursementDetails": {
          "disbursementTransactionKey": "string",
          "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
        },
        "encodedKey": "string",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "trancheNumber": 0
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Loan accounts list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanAccountFullDetails] [Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
»» dateCalculationMethod string The arrears date calculation method. none
»» encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
»» monthlyToleranceDay integer(int32) Defines monthly arrears tolerance day value. none
»» nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
»» toleranceCalculationMethod string Defines the tolerance calculation method none
»» toleranceFloorAmount number The tolerance floor amount. none
»» tolerancePercentageOfOutstandingPrincipal number Defines the arrears tolerance amount. none
»» tolerancePeriod integer(int32) Defines the arrears tolerance period value. none
» accountHolderKey (required) string The encoded key of the account holder. none
» accountHolderType (required) string The type of the account holder. none
» accountState string The state of the loan account. none
» accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
» accruedInterest number The amount of interest that has been accrued in the loan account. none
» accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
» activationTransactionKey string The encoded key of the transaction that activated the loan account. none
» allowOffset boolean DEPRECATED - Will always be false. none
» approvedDate string(date-time) The date the loan account was approved. none
» arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
» assets [AssetFullDetails] The list of assets associated with the current loan account. none
»» _Asset_Default_Assets _Asset_Default_Assets Default custom field set used only for grouping asset custom fields none
»»» Example_Checkbox_Field_Assets string none none
»»» Example_Free_Text_Field_Assets string none none
»»» Example_Number_Field_Assets string(number) none none
»»» Example_Select_Field_Assets string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey string The key of the client/group used as the guarantor. none
»» guarantorType string The type of the guarantor (client/group) none
»» originalAmount number The original amount used by the client for a collateral asset none
»» originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
» assignedCentreKey string The key of the centre this account is assigned to. none
» assignedUserKey string The key of the user this loan account is assigned to. none
» balances Balances The loan account balance details. none
»» feesBalance number The fees balance. Represents the total fees expected to be paid on this account at a given moment. read-only
»» feesDue number The fees due. Representing the total fees due for the account. read-only
»» feesPaid number The fees paid. Represents the total fees paid for the account. read-only
»» holdBalance number The sum of all the authorization hold amounts on this account. read-only
»» interestBalance number Represents the total interest owed by the client (total interest applied for account minus interest paid). read-only
»» interestDue number The interest due. Indicates how much interest it's due for the account at this moment. read-only
»» interestFromArrearsBalance number The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid). read-only
»» interestFromArrearsDue number The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment. read-only
»» interestFromArrearsPaid number The interest from arrears paid, indicates total interest from arrears paid into the account. read-only
»» interestPaid number The interest paid, indicates total interest paid into the account. read-only
»» penaltyBalance number The penalty balance. Represents the total penalty expected to be paid on this account at a given moment. read-only
»» penaltyDue number The penalty due. Represents the total penalty amount due for the account. read-only
»» penaltyPaid number The Penalty paid. Represents the total penalty amount paid for the account. read-only
»» principalBalance number The total principal owned by the client, from now on (principal disbursed - principal paid). read-only
»» principalDue number The principal due, indicates how much principal it's due at this moment. read-only
»» principalPaid number The principal paid, holds the value of the total paid into the account. read-only
»» redrawBalance number The total redraw amount owned by the client, from now on. none
» closedDate string(date-time) The date the loan was closed. none
» creationDate string(date-time) The date the loan account was created. none
» creditArrangementKey string The key to the line of credit where this account is registered to. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
» daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
» daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
» disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
»» disbursementDate string(date-time) The activation date, the date when the disbursement actually took place. none
»» encodedKey string The encoded key of the disbursement details, auto generated, unique read-only
»» expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
»» fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
»»» amount number The amount of the custom fee. none
»»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»»» percentage number The percentage of the custom fee. none
»»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
»» firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none
»» transactionDetails LoanTransactionDetails Represents the loan transaction details. none
»»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»»» internalTransfer boolean Whether the transaction was transferred between loans or deposit accounts none
»»» targetDepositAccountKey string In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made. none
»»» transactionChannelId string The ID of the transaction channel associated with the transaction details. none
»»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
» fundingSources [InvestorFund] The list of funds associated with the loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
»» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
»» interestCommission number The constraint minimum value none
»» sharePercentage number Percentage of loan shares this investor owns none
» futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
» guarantors [GuarantorFullDetails] The list of guarantees associated with the loan account. none
»» _Guarantor_Default_Guarantors _Guarantor_Default_Guarantors Default custom field set used only for grouping guarantor custom fields none
»»» Example_Checkbox_Guarantors string none none
»»» Example_Free_Text_Guarantors string none none
»»» Example_Number_Field_Guarantors string(number) none none
»»» Example_Select_Field_Guarantors string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
» id string The ID of the loan account, it can be generated and customized, and must be unique. none
» interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
» interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
» interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
» interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»» accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
»»» encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestRate number Interest rate value. none
»»» interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
»»» interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
»»» interestSpread number Interest spread value. none
»»» validFrom (required) string(date-time) Date since an interest rate is valid none
»» accrueInterestAfterMaturity boolean The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date. none
»» accrueLateInterest boolean Indicates whether late interest is accrued for this loan account read-only
»» interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
»» interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
»» interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
»» interestChargeFrequency string The interest change frequency. Holds the possible values for how often is interest charged on loan or deposit accounts none
»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
»»» method string The method used to calculate the interest rate change threshold. none
»»» numberOfDays integer(int32) The number of days that trigger an interest rate change. none
»» interestRateReviewCount integer(int32) Interest rate update frequency unit count. none
»» interestRateReviewUnit string The interest rate review unit. Defines the interest rate update frequency measurement unit. none
»» interestRateSource string The interest rate source. Represents the interest calculation method: fixed or (interest spread + active organization index interest rate) none
»» interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none
»» interestType string The possible values for how we compute and apply the interest none
» lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
» lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
» lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
» lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
» lastModifiedDate string(date-time) The last date the loan was updated. none
» lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
» lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
» latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
» loanAmount (required) number The loan amount. none
» loanName string The name of the loan account. none
» lockedAccountTotalDueType string The locked account total due type. none
» lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
» migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
» modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
» notes string The notes about this loan account. none
» originalAccountKey string The key of the original rescheduled or refinanced loan account. none
» paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
» paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
» penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
»» loanPenaltyCalculationMethod string The last penalty calculation method, represents on what amount are the penalties calculated. none
»» penaltyRate number The penalty rate, represents the rate (in percent) which is charged as a penalty. none
» plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
»» amount number The amount of the planned fee. none
»» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
»» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
»» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
»» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
»» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none
» prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
»» applyInterestOnPrepaymentMethod string Apply interest on prepayment method copied from loan product on which this account is based. none
»» elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
»» prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
»» principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none
» principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
»» amount number Fixed amount for being used for the repayments principal due. none
»» encodedKey string The encoded key of the principal payment base settings, auto generated, unique. read-only
»» includeFeesInFloorAmount boolean Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» includeInterestInFloorAmount boolean Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» percentage number Percentage of principal amount used for the repayments principal due. none
»» principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
»» principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
»» principalPaymentMethod string The method of principal payment for revolving credit. none
»» totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
»» totalDuePayment string The method of total due payment for revolving credit none
» productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
» redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
»» restrictNextDueWithdrawal (required) boolean TRUE if withdrawing amounts that reduce the next due instalment repayment is restricted, FALSE otherwise. none
» rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
» scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
»» billingCycle BillingCycleDays Defines the billing cycles settings for a loan account none
»»» days [integer] The billing cycle start days in case it is enabled none
»» defaultFirstRepaymentDueDateOffset integer(int32) The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset) none
»» fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
»» gracePeriod (required) integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
»» gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
»» hasCustomSchedule boolean Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due none
»» paymentPlan [PeriodicPayment] A list of periodic payments for the current loan account. none
»»» amount (required) number The PMT value used in periodic payment none
»»» encodedKey string The encoded key of the periodic payment, auto generated, unique. read-only
»»» toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none
»» periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
»» previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
»»» numberOfPreviewedInstalments integer(int32) The number of previewed instalments none
»» principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
»» repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
»» repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
»» repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none
»» repaymentScheduleMethod string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
»» scheduleDueDatesMethod string The schedule due dates method. Represents the methodology used by this account to compute the due dates of the repayments. none
»» shortMonthHandlingMethod string The short handling method. Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
» settlementAccountKey string The encoded key of the settlement account. none
» taxRate number The tax rate. none
» terminationDate string(date-time) The date this loan account was terminated. none
» tranches [LoanTranche] The list of disbursement tranches available for the loan account. none
»» amount (required) number The amount this tranche has available for disburse none
»» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
»» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
»» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» trancheNumber integer(int32) Index indicating the tranche number none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
Example_Checkbox_Field_Assets TRUE
Example_Checkbox_Field_Assets FALSE
Example_Select_Field_Assets Option 1
Example_Select_Field_Assets Option 2
Example_Select_Field_Assets Option 3
guarantorType CLIENT
guarantorType GROUP
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
guarantorType CLIENT
guarantorType GROUP
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
Example_Checkbox_Guarantors TRUE
Example_Checkbox_Guarantors FALSE
Example_Select_Field_Guarantors Option 1
Example_Select_Field_Guarantors Option 2
Example_Select_Field_Guarantors Option 3
guarantorType CLIENT
guarantorType GROUP
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
method WORKING_DAYS
method CALENDAR_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans

Create loan account

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "fees": [
        {
          "amount": 0,
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) LoanAccountFullDetails Loan account to be created. body

Example responses

201 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Loan account created. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

undoRefinance (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:undoRefinance \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:undoRefinance HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:undoRefinance',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:undoRefinance',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:undoRefinance', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:undoRefinance', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:undoRefinance");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:undoRefinance", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:undoRefinance

Undo loan account refinance action

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body LoanActionDetails Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Undo refinance action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

changeState (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:changeState \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:changeState HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:changeState',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:changeState',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:changeState', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:changeState', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:changeState");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:changeState", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:changeState

Change loan account state

Body parameter

{
  "action": "REQUEST_APPROVAL",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanAccountAction Represents information for an action to perform on a loan account. body

Example responses

200 Response

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Loan account action posted. LoanAccountFullDetails
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

terminateLoanAccount (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}:terminate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}:terminate HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}:terminate',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}:terminate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}:terminate', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}:terminate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:terminate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}:terminate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}:terminate

Terminate loan account

Body parameter

{
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body TerminateLoanAccountInput Represents information for an action to perform on a loan account. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
204 No Content Terminate loan account action posted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getVersionsById (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}:versions \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}:versions HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}:versions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}:versions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}:versions', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}:versions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}:versions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}:versions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}:versions

Allows retrieval of a single loan account via id. The result contains details about all the previous versions of the particular account if it was refinanced or rescheduled.

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "_Example_Custom_Fields": {
      "Example_Checkbox_Field": "TRUE",
      "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
      "Example_Date_Field": "2018-12-14",
      "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
      "Example_Number_Field": "46290",
      "Example_Select_Field": {
        "example_option_id": "873023434",
        "example_option_value": "option 5"
      },
      "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
    },
    "accountArrearsSettings": {
      "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
      "encodedKey": "string",
      "monthlyToleranceDay": 0,
      "nonWorkingDaysMethod": "INCLUDED",
      "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
      "toleranceFloorAmount": 0,
      "tolerancePercentageOfOutstandingPrincipal": 0,
      "tolerancePeriod": 0
    },
    "accountHolderKey": "string",
    "accountHolderType": "CLIENT",
    "accountState": "PARTIAL_APPLICATION",
    "accountSubState": "PARTIALLY_DISBURSED",
    "accruedInterest": 0,
    "accruedPenalty": 0,
    "activationTransactionKey": "string",
    "allowOffset": true,
    "approvedDate": "2016-09-06T13:37:50+03:00",
    "arrearsTolerancePeriod": 0,
    "assets": [
      {
        "_Asset_Default_Assets": {
          "Example_Checkbox_Field_Assets": "TRUE",
          "Example_Free_Text_Field_Assets": "string",
          "Example_Number_Field_Assets": "string",
          "Example_Select_Field_Assets": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "originalAmount": 0,
        "originalCurrency": {
          "code": "AED",
          "currencyCode": "string"
        }
      }
    ],
    "assignedBranchKey": "string",
    "assignedCentreKey": "string",
    "assignedUserKey": "string",
    "balances": {
      "feesBalance": 0,
      "feesDue": 0,
      "feesPaid": 0,
      "holdBalance": 0,
      "interestBalance": 0,
      "interestDue": 0,
      "interestFromArrearsBalance": 0,
      "interestFromArrearsDue": 0,
      "interestFromArrearsPaid": 0,
      "interestPaid": 0,
      "penaltyBalance": 0,
      "penaltyDue": 0,
      "penaltyPaid": 0,
      "principalBalance": 0,
      "principalDue": 0,
      "principalPaid": 0,
      "redrawBalance": 0
    },
    "closedDate": "2016-09-06T13:37:50+03:00",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "creditArrangementKey": "string",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "daysInArrears": 0,
    "daysLate": 0,
    "disbursementDetails": {
      "disbursementDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
      "transactionDetails": {
        "encodedKey": "string",
        "internalTransfer": true,
        "targetDepositAccountKey": "string",
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      }
    },
    "encodedKey": "string",
    "fundingSources": [
      {
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT",
        "id": "string",
        "interestCommission": 0,
        "sharePercentage": 0
      }
    ],
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "guarantors": [
      {
        "_Guarantor_Default_Guarantors": {
          "Example_Checkbox_Guarantors": "TRUE",
          "Example_Free_Text_Guarantors": "string",
          "Example_Number_Field_Guarantors": "string",
          "Example_Select_Field_Guarantors": "Option 1"
        },
        "amount": 0,
        "assetName": "string",
        "depositAccountKey": "string",
        "encodedKey": "string",
        "guarantorKey": "string",
        "guarantorType": "CLIENT"
      }
    ],
    "id": "string",
    "interestAccruedInBillingCycle": 0,
    "interestCommission": 0,
    "interestFromArrearsAccrued": 0,
    "interestSettings": {
      "accountInterestRateSettings": [
        {
          "encodedKey": "string",
          "indexSourceKey": "string",
          "interestRate": 0,
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestSpread": 0,
          "validFrom": "2016-09-06T13:37:50+03:00"
        }
      ],
      "accrueInterestAfterMaturity": true,
      "accrueLateInterest": true,
      "interestApplicationMethod": "AFTER_DISBURSEMENT",
      "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
      "interestCalculationMethod": "FLAT",
      "interestChargeFrequency": "ANNUALIZED",
      "interestRate": 0,
      "interestRateChangePMTAdjustmentThreshold": {
        "method": "WORKING_DAYS",
        "numberOfDays": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "interestType": "SIMPLE_INTEREST"
    },
    "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
    "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
    "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
    "lastLockedDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
    "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "loanAmount": 0,
    "loanName": "string",
    "lockedAccountTotalDueType": "BALANCE_AMOUNT",
    "lockedOperations": [
      "APPLY_INTEREST"
    ],
    "migrationEventKey": "string",
    "modifyInterestForFirstInstallment": true,
    "notes": "string",
    "originalAccountKey": "string",
    "paymentHolidaysAccruedInterest": 0,
    "paymentMethod": "HORIZONTAL",
    "penaltySettings": {
      "loanPenaltyCalculationMethod": "NONE",
      "penaltyRate": 0
    },
    "plannedInstallmentFees": [
      {
        "amount": 0,
        "applyOnDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "installmentKey": "string",
        "installmentNumber": 0,
        "predefinedFeeKey": "string"
      }
    ],
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": 0,
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "productTypeKey": "string",
    "redrawSettings": {
      "restrictNextDueWithdrawal": true
    },
    "rescheduledAccountKey": "string",
    "scheduleSettings": {
      "billingCycle": {
        "days": [
          0
        ]
      },
      "defaultFirstRepaymentDueDateOffset": 0,
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "gracePeriodType": "NONE",
      "hasCustomSchedule": true,
      "paymentPlan": [
        {
          "amount": 0,
          "encodedKey": "string",
          "toInstallment": 0
        }
      ],
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "principalRepaymentInterval": 0,
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS",
      "repaymentScheduleMethod": "NONE",
      "scheduleDueDatesMethod": "INTERVAL",
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "settlementAccountKey": "string",
    "taxRate": 0,
    "terminationDate": "2016-09-06T13:37:50+03:00",
    "tranches": [
      {
        "amount": 0,
        "disbursementDetails": {
          "disbursementTransactionKey": "string",
          "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
        },
        "encodedKey": "string",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "trancheNumber": 0
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Loan account with previous versions returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanAccountFullDetails] [Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.] none
» _Example_Custom_Fields object An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
»» Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
»» Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
»» Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
»» Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
»» Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
»» Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
»» Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
»» Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
»» Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none
» accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
»» dateCalculationMethod string The arrears date calculation method. none
»» encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
»» monthlyToleranceDay integer(int32) Defines monthly arrears tolerance day value. none
»» nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
»» toleranceCalculationMethod string Defines the tolerance calculation method none
»» toleranceFloorAmount number The tolerance floor amount. none
»» tolerancePercentageOfOutstandingPrincipal number Defines the arrears tolerance amount. none
»» tolerancePeriod integer(int32) Defines the arrears tolerance period value. none
» accountHolderKey (required) string The encoded key of the account holder. none
» accountHolderType (required) string The type of the account holder. none
» accountState string The state of the loan account. none
» accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
» accruedInterest number The amount of interest that has been accrued in the loan account. none
» accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
» activationTransactionKey string The encoded key of the transaction that activated the loan account. none
» allowOffset boolean DEPRECATED - Will always be false. none
» approvedDate string(date-time) The date the loan account was approved. none
» arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
» assets [AssetFullDetails] The list of assets associated with the current loan account. none
»» _Asset_Default_Assets _Asset_Default_Assets Default custom field set used only for grouping asset custom fields none
»»» Example_Checkbox_Field_Assets string none none
»»» Example_Free_Text_Field_Assets string none none
»»» Example_Number_Field_Assets string(number) none none
»»» Example_Select_Field_Assets string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey string The key of the client/group used as the guarantor. none
»» guarantorType string The type of the guarantor (client/group) none
»» originalAmount number The original amount used by the client for a collateral asset none
»» originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»»» currencyCode string Currency code for NON_FIAT currency. none
» assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
» assignedCentreKey string The key of the centre this account is assigned to. none
» assignedUserKey string The key of the user this loan account is assigned to. none
» balances Balances The loan account balance details. none
»» feesBalance number The fees balance. Represents the total fees expected to be paid on this account at a given moment. read-only
»» feesDue number The fees due. Representing the total fees due for the account. read-only
»» feesPaid number The fees paid. Represents the total fees paid for the account. read-only
»» holdBalance number The sum of all the authorization hold amounts on this account. read-only
»» interestBalance number Represents the total interest owed by the client (total interest applied for account minus interest paid). read-only
»» interestDue number The interest due. Indicates how much interest it's due for the account at this moment. read-only
»» interestFromArrearsBalance number The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid). read-only
»» interestFromArrearsDue number The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment. read-only
»» interestFromArrearsPaid number The interest from arrears paid, indicates total interest from arrears paid into the account. read-only
»» interestPaid number The interest paid, indicates total interest paid into the account. read-only
»» penaltyBalance number The penalty balance. Represents the total penalty expected to be paid on this account at a given moment. read-only
»» penaltyDue number The penalty due. Represents the total penalty amount due for the account. read-only
»» penaltyPaid number The Penalty paid. Represents the total penalty amount paid for the account. read-only
»» principalBalance number The total principal owned by the client, from now on (principal disbursed - principal paid). read-only
»» principalDue number The principal due, indicates how much principal it's due at this moment. read-only
»» principalPaid number The principal paid, holds the value of the total paid into the account. read-only
»» redrawBalance number The total redraw amount owned by the client, from now on. none
» closedDate string(date-time) The date the loan was closed. none
» creationDate string(date-time) The date the loan account was created. none
» creditArrangementKey string The key to the line of credit where this account is registered to. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
» daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
» daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
» disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
»» disbursementDate string(date-time) The activation date, the date when the disbursement actually took place. none
»» encodedKey string The encoded key of the disbursement details, auto generated, unique read-only
»» expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
»» fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
»»» amount number The amount of the custom fee. none
»»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»»» percentage number The percentage of the custom fee. none
»»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
»» firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none
»» transactionDetails LoanTransactionDetails Represents the loan transaction details. none
»»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»»» internalTransfer boolean Whether the transaction was transferred between loans or deposit accounts none
»»» targetDepositAccountKey string In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made. none
»»» transactionChannelId string The ID of the transaction channel associated with the transaction details. none
»»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
» fundingSources [InvestorFund] The list of funds associated with the loan account. none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
»» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
»» interestCommission number The constraint minimum value none
»» sharePercentage number Percentage of loan shares this investor owns none
» futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
» guarantors [GuarantorFullDetails] The list of guarantees associated with the loan account. none
»» _Guarantor_Default_Guarantors _Guarantor_Default_Guarantors Default custom field set used only for grouping guarantor custom fields none
»»» Example_Checkbox_Guarantors string none none
»»» Example_Free_Text_Guarantors string none none
»»» Example_Number_Field_Guarantors string(number) none none
»»» Example_Select_Field_Guarantors string none none
»» amount (required) number The amount used by the client for the guaranty none
»» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
»» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
»» encodedKey string The encoded key of the security, auto generated, unique. read-only
»» guarantorKey (required) string The key of the client/group used as the guarantor. none
»» guarantorType (required) string The type of the guarantor (client/group) none
» id string The ID of the loan account, it can be generated and customized, and must be unique. none
» interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
» interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
» interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
» interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»» accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
»»» encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
»»» indexSourceKey string Index rate source key. none
»»» interestRate number Interest rate value. none
»»» interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
»»» interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
»»» interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
»»» interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
»»» interestSpread number Interest spread value. none
»»» validFrom (required) string(date-time) Date since an interest rate is valid none
»» accrueInterestAfterMaturity boolean The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date. none
»» accrueLateInterest boolean Indicates whether late interest is accrued for this loan account read-only
»» interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
»» interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
»» interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
»» interestChargeFrequency string The interest change frequency. Holds the possible values for how often is interest charged on loan or deposit accounts none
»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
»»» method string The method used to calculate the interest rate change threshold. none
»»» numberOfDays integer(int32) The number of days that trigger an interest rate change. none
»» interestRateReviewCount integer(int32) Interest rate update frequency unit count. none
»» interestRateReviewUnit string The interest rate review unit. Defines the interest rate update frequency measurement unit. none
»» interestRateSource string The interest rate source. Represents the interest calculation method: fixed or (interest spread + active organization index interest rate) none
»» interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none
»» interestType string The possible values for how we compute and apply the interest none
» lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
» lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
» lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
» lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
» lastModifiedDate string(date-time) The last date the loan was updated. none
» lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
» lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
» latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
» loanAmount (required) number The loan amount. none
» loanName string The name of the loan account. none
» lockedAccountTotalDueType string The locked account total due type. none
» lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
» migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
» modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
» notes string The notes about this loan account. none
» originalAccountKey string The key of the original rescheduled or refinanced loan account. none
» paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
» paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
» penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
»» loanPenaltyCalculationMethod string The last penalty calculation method, represents on what amount are the penalties calculated. none
»» penaltyRate number The penalty rate, represents the rate (in percent) which is charged as a penalty. none
» plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
»» amount number The amount of the planned fee. none
»» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
»» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
»» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
»» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
»» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none
» prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
»» applyInterestOnPrepaymentMethod string Apply interest on prepayment method copied from loan product on which this account is based. none
»» elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
»» prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
»» principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none
» principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
»» amount number Fixed amount for being used for the repayments principal due. none
»» encodedKey string The encoded key of the principal payment base settings, auto generated, unique. read-only
»» includeFeesInFloorAmount boolean Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» includeInterestInFloorAmount boolean Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
»» percentage number Percentage of principal amount used for the repayments principal due. none
»» principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
»» principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
»» principalPaymentMethod string The method of principal payment for revolving credit. none
»» totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
»» totalDuePayment string The method of total due payment for revolving credit none
» productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
» redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
»» restrictNextDueWithdrawal (required) boolean TRUE if withdrawing amounts that reduce the next due instalment repayment is restricted, FALSE otherwise. none
» rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
» scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
»» billingCycle BillingCycleDays Defines the billing cycles settings for a loan account none
»»» days [integer] The billing cycle start days in case it is enabled none
»» defaultFirstRepaymentDueDateOffset integer(int32) The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset) none
»» fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
»» gracePeriod (required) integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
»» gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
»» hasCustomSchedule boolean Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due none
»» paymentPlan [PeriodicPayment] A list of periodic payments for the current loan account. none
»»» amount (required) number The PMT value used in periodic payment none
»»» encodedKey string The encoded key of the periodic payment, auto generated, unique. read-only
»»» toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none
»» periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
»» previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
»»» numberOfPreviewedInstalments integer(int32) The number of previewed instalments none
»» principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
»» repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
»» repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
»» repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none
»» repaymentScheduleMethod string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
»» scheduleDueDatesMethod string The schedule due dates method. Represents the methodology used by this account to compute the due dates of the repayments. none
»» shortMonthHandlingMethod string The short handling method. Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
» settlementAccountKey string The encoded key of the settlement account. none
» taxRate number The tax rate. none
» terminationDate string(date-time) The date this loan account was terminated. none
» tranches [LoanTranche] The list of disbursement tranches available for the loan account. none
»» amount (required) number The amount this tranche has available for disburse none
»» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
»» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
»» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» trancheNumber integer(int32) Index indicating the tranche number none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
Example_Checkbox_Field_Assets TRUE
Example_Checkbox_Field_Assets FALSE
Example_Select_Field_Assets Option 1
Example_Select_Field_Assets Option 2
Example_Select_Field_Assets Option 3
guarantorType CLIENT
guarantorType GROUP
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
guarantorType CLIENT
guarantorType GROUP
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
Example_Checkbox_Guarantors TRUE
Example_Checkbox_Guarantors FALSE
Example_Select_Field_Guarantors Option 1
Example_Select_Field_Guarantors Option 2
Example_Select_Field_Guarantors Option 3
guarantorType CLIENT
guarantorType GROUP
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
method WORKING_DAYS
method CALENDAR_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

getPreviewLoanAccountSchedule (Loan Accounts)

Code samples

# You can also use wget
curl -X POST /loans:previewSchedule \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /loans:previewSchedule HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans:previewSchedule',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/loans:previewSchedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/loans:previewSchedule', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans:previewSchedule', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans:previewSchedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans:previewSchedule", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans:previewSchedule

Preview loan account schedule for non-existent loan account

Body parameter

{
  "disbursementDetails": {
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
  },
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "interestRate": 0,
    "interestSpread": 0
  },
  "loanAmount": 0,
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "productTypeKey": "string",
  "scheduleSettings": {
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "paymentPlan": [
      {
        "amount": 0,
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS"
  },
  "topUpAmount": 0,
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "fees": [
        {
          "amount": 0,
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Parameters

Name Type Description In
body (required) PreviewLoanAccountSchedule Loan account parameters for a schedule to be previewed. body

Example responses

200 Response

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Loan account schedule preview is ready. LoanAccountSchedule
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getPdfDocument (Loan Accounts)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/templates/{templateId}/pdf \
  -H 'Accept: application/vnd.mambu.v2+file'

GET /loans/{loanAccountId}/templates/{templateId}/pdf HTTP/1.1

Accept: application/vnd.mambu.v2+file

var headers = {
  'Accept':'application/vnd.mambu.v2+file'

};

$.ajax({
  url: '/loans/{loanAccountId}/templates/{templateId}/pdf',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+file'
}

result = RestClient.get '/loans/{loanAccountId}/templates/{templateId}/pdf',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+file'
}

r = requests.get('/loans/{loanAccountId}/templates/{templateId}/pdf', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+file',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/templates/{templateId}/pdf', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/templates/{templateId}/pdf");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+file"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/templates/{templateId}/pdf", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/templates/{templateId}/pdf

Download loan account document PDF

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
templateId (required) string The ID of the loan product template. path
startDate string(date) The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query
endDate string(date) The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history. query

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK PDF of the loan account document returned. string
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account or template not found. ErrorResponse

Response Headers

Status Header Type Format Description
200 Content-Disposition string "The format is - attachment; filename="{fileName}.extension"";

Loan Account Collateral Assets

Executes a background task which re-evaluates the collateral amount in the loan currency with the most recent exchange rates based on the original currency and amount. For more information, see Adding collateral assets to loans.

reevaluateCollateralAssets (Loan Account Collateral Assets)

Code samples

# You can also use wget
curl -X POST /loans:reevaluateCollateral \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans:reevaluateCollateral HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans:reevaluateCollateral',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans:reevaluateCollateral',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans:reevaluateCollateral', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans:reevaluateCollateral', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans:reevaluateCollateral");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans:reevaluateCollateral", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans:reevaluateCollateral

Update collateral asset amounts

To query the status and results of the background operation, use /bulks/{bulkProcessKey}.

Body parameter

{
  "branchKeys": [
    "string"
  ],
  "currencies": [
    "string"
  ],
  "productKeys": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) CollateralAssetFilter The request containing the fields to filter out which loan accounts to recalculate with the background process. body

Example responses

202 Response

{
  "bulkProcessKey": "string",
  "status": "QUEUED"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
202 Accepted Update collateral asset amounts CollateralAssetsReevaluationResponse
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Loan Account Funding

Allows you to operate with the loan account funding sources. This relates to the peer-to-peer (P2P) lending feature. For more information, see Funding Sources - P2P Lending in our User Guide.

createLoanAccountFundingSources (Loan Account Funding)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/funding \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/funding HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/funding',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/funding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/funding', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/funding', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/funding");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/funding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/funding

Create funding sources for a loan account

Body parameter

[
  {
    "amount": 0,
    "assetName": "string",
    "depositAccountKey": "string",
    "guarantorKey": "string",
    "guarantorType": "CLIENT",
    "id": "string",
    "interestCommission": 0,
    "sharePercentage": 0
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) InvestorFund The funding sources to create for loan account. body

Example responses

201 Response

[
  {
    "amount": 0,
    "assetName": "string",
    "depositAccountKey": "string",
    "encodedKey": "string",
    "guarantorKey": "string",
    "guarantorType": "CLIENT",
    "id": "string",
    "interestCommission": 0,
    "sharePercentage": 0
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Created list of the loan account funding sources. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [InvestorFund] [Contains the details about an investor fund including fields like encoded key, guarantor type, amount and guarantor key] none
» amount (required) number The amount used by the client for the guaranty none
» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» guarantorKey (required) string The key of the client/group used as the guarantor. none
» guarantorType (required) string The type of the guarantor (client/group) none
» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
» interestCommission number The constraint minimum value none
» sharePercentage number Percentage of loan shares this investor owns none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

updateLoanAccountFundingSources (Loan Account Funding)

Code samples

# You can also use wget
curl -X PUT /loans/{loanAccountId}/funding \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loans/{loanAccountId}/funding HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/funding',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loans/{loanAccountId}/funding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loans/{loanAccountId}/funding', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loans/{loanAccountId}/funding', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/funding");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loans/{loanAccountId}/funding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loans/{loanAccountId}/funding

Update loan account funding sources

Body parameter

[
  {
    "amount": 0,
    "assetName": "string",
    "depositAccountKey": "string",
    "guarantorKey": "string",
    "guarantorType": "CLIENT",
    "id": "string",
    "interestCommission": 0,
    "sharePercentage": 0
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) InvestorFund The funding sources to update the loan account with. body

Example responses

200 Response

[
  {
    "amount": 0,
    "assetName": "string",
    "depositAccountKey": "string",
    "encodedKey": "string",
    "guarantorKey": "string",
    "guarantorType": "CLIENT",
    "id": "string",
    "interestCommission": 0,
    "sharePercentage": 0
  }
]

Responses

Status Meaning Description Schema
200 OK The updated list of the loan account funding sources. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [InvestorFund] [Contains the details about an investor fund including fields like encoded key, guarantor type, amount and guarantor key] none
» amount (required) number The amount used by the client for the guaranty none
» assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
» depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» guarantorKey (required) string The key of the client/group used as the guarantor. none
» guarantorType (required) string The type of the guarantor (client/group) none
» id string Investor fund unique identifier. All versions of an investor fund will have same id. none
» interestCommission number The constraint minimum value none
» sharePercentage number Percentage of loan shares this investor owns none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

deleteFundingSources (Loan Account Funding)

Code samples

# You can also use wget
curl -X DELETE /loans/{loanAccountId}/funding \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loans/{loanAccountId}/funding HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/funding',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loans/{loanAccountId}/funding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loans/{loanAccountId}/funding', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loans/{loanAccountId}/funding', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/funding");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loans/{loanAccountId}/funding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loans/{loanAccountId}/funding

Delete loan account funding sources

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Deleted all loan account funding sources. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

deleteSingleFundingSource (Loan Account Funding)

Code samples

# You can also use wget
curl -X DELETE /loans/{loanAccountId}/funding/{fundEncodedKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loans/{loanAccountId}/funding/{fundEncodedKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/funding/{fundEncodedKey}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loans/{loanAccountId}/funding/{fundEncodedKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loans/{loanAccountId}/funding/{fundEncodedKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loans/{loanAccountId}/funding/{fundEncodedKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/funding/{fundEncodedKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loans/{loanAccountId}/funding/{fundEncodedKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loans/{loanAccountId}/funding/{fundEncodedKey}

Delete loan account funding source

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
fundEncodedKey (required) string The encoded key of the funding source. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Deleted loan account funding source. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

patchFundingSource (Loan Account Funding)

Code samples

# You can also use wget
curl -X PATCH /loans/{loanAccountId}/funding/{fundEncodedKey} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /loans/{loanAccountId}/funding/{fundEncodedKey} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/funding/{fundEncodedKey}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/loans/{loanAccountId}/funding/{fundEncodedKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/loans/{loanAccountId}/funding/{fundEncodedKey}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/loans/{loanAccountId}/funding/{fundEncodedKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/funding/{fundEncodedKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/loans/{loanAccountId}/funding/{fundEncodedKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /loans/{loanAccountId}/funding/{fundEncodedKey}

Update loan account funding source

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
fundEncodedKey (required) string The encoded key of the funding source. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Funding source patched. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Loan Account Planned Fees

These endpoints allow you to manage fees that are planned for future installments of a loan including viewing, updating, deleting and creating new planned fees.

applyPlannedFees (Loan Account Planned Fees)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/plannedfees:apply \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/plannedfees:apply HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/plannedfees:apply',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/plannedfees:apply',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/plannedfees:apply', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/plannedfees:apply', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/plannedfees:apply");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/plannedfees:apply", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/plannedfees:apply

ApplY planned fees from the past installments, as backdated or from future installments, on the first pending installment

Body parameter

{
  "encodedKeys": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) PlannedFeeKeys List of all loan account's planned installment fees to be applied. body

Example responses

201 Response

[
  {
    "accountBalances": {
      "advancePosition": 0,
      "arrearsPosition": 0,
      "expectedPrincipalRedraw": 0,
      "principalBalance": 0,
      "redrawBalance": 0,
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "deferredInterestAmount": 0,
      "feesAmount": 0,
      "fundersInterestAmount": 0,
      "interestAmount": 0,
      "interestFromArrearsAmount": 0,
      "organizationCommissionAmount": 0,
      "paymentHolidaysInterestAmount": 0,
      "penaltyAmount": 0,
      "principalAmount": 0
    },
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "customPaymentAmounts": [
      {
        "amount": 0,
        "customPaymentAmountType": "PRINCIPAL",
        "predefinedFeeKey": "string",
        "taxOnAmount": 0
      }
    ],
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "id": "string",
    "installmentEncodedKey": "string",
    "migrationEventKey": "string",
    "notes": "string",
    "originalAmount": 0,
    "originalCurrencyCode": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "parentLoanTransactionKey": "string",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "taxes": {
      "deferredTaxOnInterestAmount": 0,
      "taxOnFeesAmount": 0,
      "taxOnInterestAmount": 0,
      "taxOnInterestFromArrearsAmount": 0,
      "taxOnPaymentHolidaysInterest": 0,
      "taxOnPenaltyAmount": 0,
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "periodicPayment": 0,
      "principalPaymentAmount": 0,
      "principalPaymentPercentage": 0
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Planned installment fees were applied on the loan account. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [LoanTransaction] [Represents the action performed on a loan account after which the account's amount changes its value.] none
» accountBalances TransactionBalances The balances changed within a transaction. none
»» advancePosition number Captures the advance (prepaid) amount. none
»» arrearsPosition number Captures the arrears position amount for the account in arrears. none
»» expectedPrincipalRedraw number The difference between principal balance and redraw balance after each transaction performed on the loan account. none
»» principalBalance number The account redraw balance captured after the transaction update. none
»» redrawBalance number The account redraw balance captured after the transaction update. none
»» totalBalance number The running balance still owed for the loan. none
» adjustmentTransactionKey string The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved). none
» affectedAmounts LoanAffectedAmounts The amounts affected after completing the loan transaction none
»» deferredInterestAmount number How much interest pre-paid was added/removed in account, within this transaction (including taxes). none
»» feesAmount number How much fees was added/removed in account, within this transaction. none
»» fundersInterestAmount number How much interest is given to the investors, within this transaction (only for p2p products) none
»» interestAmount number How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field. none
»» interestFromArrearsAmount number How much interest from arrears was added/removed in account, within this transaction (including taxes). none
»» organizationCommissionAmount number How much interest is given to the organization, within this transaction (only for p2p products) none
»» paymentHolidaysInterestAmount number How much Payment Holidays interest was added/removed in account, within this transaction (including taxes). none
»» penaltyAmount number How much penalties was added/removed in account, within this transaction. none
»» principalAmount number How much principal was added/removed in account, within this transaction. none
» amount number The amount that was added or removed on the loan account. none
» bookingDate string(date-time) The date when the corresponding journal entry is booked. none
» branchKey string The branch where the transaction was performed. none
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed. none
» creationDate string(date-time) The date when this loan transaction was created. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» customPaymentAmounts [CustomPaymentAmount] The list of custom amounts which the user has paid as part of this transaction. none
»» amount (required) number The amount of the payment paid in the transaction for the given type. none
»» customPaymentAmountType (required) string The type of the custom payment none
»» predefinedFeeKey string The encodedKey of the predefined fee to be paid. none
»» taxOnAmount number The amount of the taxes paid in the transaction for the given type. none
» encodedKey string The encoded key of the loan transaction, which is auto generated, and must be unique. none
» externalId string The external ID of the loan transaction, it is customizable, and must be unique. none
» fees [Fee] The amounts that have been applied or paid as part of this transaction and involved predefined fees. none
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» id string The ID of the loan transaction, can be generated and customized, and must be unique. none
» installmentEncodedKey string The specific installment encoded key associated to the loan transaction. none
» migrationEventKey string The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from. none
» notes string The notes or description for the loan transaction. none
» originalAmount number The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field. none
» originalCurrencyCode string The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency. none
» originalTransactionKey string The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions. none
» parentAccountKey string The key of the parent loan account. none
» parentLoanTransactionKey string The key of the parent loan transaction. none
» prepaymentRecalculationMethod string The prepayment recalculation method of the loan transaction. none
» taxes Taxes The taxes applied within a transaction. none
»» deferredTaxOnInterestAmount number How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field. none
»» taxOnFeesAmount number How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestAmount number How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestFromArrearsAmount number The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction. none
»» taxOnPaymentHolidaysInterest number The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction. none
»» taxOnPenaltyAmount number How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction. none
»» taxRate number The tax rate that was set or changed in this transaction. none
» terms LoanTerms The loan transaction terms none
»» interestSettings TransactionInterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»»» indexInterestRate number The value of the index interest rate none
»»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» periodicPayment number The periodic payment value logged when changing it for a Balloon Payments account none
»» principalPaymentAmount number The principal payment flat amount logged when changing it for a Revolving Credit account none
»» principalPaymentPercentage number The principal payment percentage value logged when changing it for a Revolving Credit account none
» tillKey string The till key associated with the transaction. none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of loan transaction. none
» userKey string The user that performed the transaction. none
» valueDate string(date-time) The date of the entry in the organization time format and timezone. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
customPaymentAmountType PRINCIPAL
customPaymentAmountType INTEREST
customPaymentAmountType MANUAL_FEE
customPaymentAmountType UPFRONT_DISBURSEMENT_FEE
customPaymentAmountType LATE_REPAYMENT_FEE
customPaymentAmountType PAYMENT_DUE_FEE
customPaymentAmountType PENALTY
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
type IMPORT
type DISBURSEMENT
type DISBURSEMENT_ADJUSTMENT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type REPAYMENT
type PAYMENT_MADE
type WITHDRAWAL_REDRAW
type WITHDRAWAL_REDRAW_ADJUSTMENT
type FEE_APPLIED
type FEE_CHARGED
type FEES_DUE_REDUCED
type FEE_ADJUSTMENT
type PENALTY_APPLIED
type PENALTY_ADJUSTMENT
type PENALTIES_DUE_REDUCED
type REPAYMENT_ADJUSTMENT
type PAYMENT_MADE_ADJUSTMENT
type INTEREST_RATE_CHANGED
type TAX_RATE_CHANGED
type PENALTY_RATE_CHANGED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type INTEREST_DUE_REDUCED
type PENALTY_REDUCTION_ADJUSTMENT
type FEE_REDUCTION_ADJUSTMENT
type INTEREST_REDUCTION_ADJUSTMENT
type DEFERRED_INTEREST_APPLIED
type DEFERRED_INTEREST_APPLIED_ADJUSTMENT
type DEFERRED_INTEREST_PAID
type DEFERRED_INTEREST_PAID_ADJUSTMENT
type INTEREST_LOCKED
type FEE_LOCKED
type PENALTY_LOCKED
type INTEREST_UNLOCKED
type FEE_UNLOCKED
type PENALTY_UNLOCKED
type REDRAW_TRANSFER
type REDRAW_REPAYMENT
type REDRAW_TRANSFER_ADJUSTMENT
type REDRAW_REPAYMENT_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type BRANCH_CHANGED
type TERMS_CHANGED
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type DUE_DATE_CHANGED
type DUE_DATE_CHANGED_ADJUSTMENT
type ACCOUNT_TERMINATED
type ACCOUNT_TERMINATED_ADJUSTMENT

getAllPlannedFees (Loan Account Planned Fees)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/plannedfees \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/plannedfees HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/plannedfees',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/plannedfees',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/plannedfees', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/plannedfees', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/plannedfees");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/plannedfees", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/plannedfees

Get planned fees

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

200 Response

[
  {
    "amount": 0,
    "applyOnDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "installmentKey": "string",
    "installmentNumber": 0,
    "predefinedFeeKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Planned installment fees list was returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [PlannedInstallmentFee] [The planned fee details holds the information related to the installment key, predefined fee key and amount] none
» amount number The amount of the planned fee. none
» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none

createPlannedFees (Loan Account Planned Fees)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/plannedfees \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/plannedfees HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/plannedfees',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/plannedfees',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/plannedfees', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/plannedfees', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/plannedfees");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/plannedfees", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/plannedfees

Create planned fees

Body parameter

[
  {
    "amount": 0,
    "applyOnDate": "2016-09-06T13:37:50+03:00",
    "installmentKey": "string",
    "installmentNumber": 0,
    "predefinedFeeKey": "string"
  }
]

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) PlannedInstallmentFee List of all loan account's planned installment fees to be created. body

Example responses

201 Response

[
  {
    "amount": 0,
    "applyOnDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "installmentKey": "string",
    "installmentNumber": 0,
    "predefinedFeeKey": "string"
  }
]

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Loan account planned installment fees were created. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 201

Name Type Description Restrictions
anonymous [PlannedInstallmentFee] [The planned fee details holds the information related to the installment key, predefined fee key and amount] none
» amount number The amount of the planned fee. none
» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none

updatePlannedFees (Loan Account Planned Fees)

Code samples

# You can also use wget
curl -X PUT /loans/{loanAccountId}/plannedfees \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loans/{loanAccountId}/plannedfees HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/plannedfees',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loans/{loanAccountId}/plannedfees',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loans/{loanAccountId}/plannedfees', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loans/{loanAccountId}/plannedfees', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/plannedfees");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loans/{loanAccountId}/plannedfees", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loans/{loanAccountId}/plannedfees

Update planned fees

Body parameter

[
  {
    "amount": 0,
    "applyOnDate": "2016-09-06T13:37:50+03:00",
    "installmentKey": "string",
    "installmentNumber": 0,
    "predefinedFeeKey": "string"
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) PlannedInstallmentFee List of all loan account's planned installment fees to be updated. Installment key should be used for identification. body

Example responses

200 Response

[
  {
    "amount": 0,
    "applyOnDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "installmentKey": "string",
    "installmentNumber": 0,
    "predefinedFeeKey": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Loan account planned installment fees were updated. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [PlannedInstallmentFee] [The planned fee details holds the information related to the installment key, predefined fee key and amount] none
» amount number The amount of the planned fee. none
» applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
» encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
» installmentKey string The encoded key of the installment on which the predefined fee is planned. none
» installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
» predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none

deletePlannedFees (Loan Account Planned Fees)

Code samples

# You can also use wget
curl -X DELETE /loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}

Delete planned fee

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
plannedInstallmentFeeKey (required) string The encoded key of the planned installment fee to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Loan account planned installment fee was deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Loan Account Tranches

Tranches loans are disbursed in instalments instead of one lump sum. This helps you spread the risk across the lifetime of the loan.

These endpoints help you manage your tranched loans and can be used to view the current tranches and their status as well as edit individual tranches to either increase or decrease the amount to be disbursed or the date of disbursement.

When associating fees with a tranche, use the Loan Account Planned Fees endpoints to retrieve the ID for the fees you want to apply.

getTranches (Loan Account Tranches)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/tranches \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/tranches HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/tranches',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/tranches',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/tranches', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/tranches', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/tranches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/tranches", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/tranches

Get loan account tranches list

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path

Example responses

200 Response

[
  {
    "amount": 0,
    "disbursementDetails": {
      "disbursementTransactionKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
    },
    "encodedKey": "string",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "trancheNumber": 0
  }
]

Responses

Status Meaning Description Schema
200 OK Loan accounts tranches list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanTranche] [In some cases organizations may approve loans but not disburse the full amount initially. They would like to spread the disbursement (and risk) over time. Likewise for the client, they may not need the full loan amount up front. They may want to have a loan to buy some equipment for their business but will make one purchase today and another purchase in a few months. In these cases, they don't need the full amount and wouldn't want to pay interest on cash they don't need yet. A solution for this matter is the usage of disbursement in tranches. This class holds the information required for one of this tranche. ] none
» amount (required) number The amount this tranche has available for disburse none
» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» amount number The amount of the custom fee. none
»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»» percentage number The percentage of the custom fee. none
»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
» trancheNumber integer(int32) Index indicating the tranche number none

editTranches (Loan Account Tranches)

Code samples

# You can also use wget
curl -X PUT /loans/{loanAccountId}/tranches \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /loans/{loanAccountId}/tranches HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/tranches',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/loans/{loanAccountId}/tranches',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/loans/{loanAccountId}/tranches', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/loans/{loanAccountId}/tranches', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/tranches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/loans/{loanAccountId}/tranches", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /loans/{loanAccountId}/tranches

Update loan account tranches list

Body parameter

[
  {
    "amount": 0,
    "disbursementDetails": {
      "disbursementTransactionKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
    },
    "fees": [
      {
        "amount": 0,
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "trancheNumber": 0
  }
]

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LoanTranche The list of tranches to update the current loan account with. body

Example responses

200 Response

[
  {
    "amount": 0,
    "disbursementDetails": {
      "disbursementTransactionKey": "string",
      "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
    },
    "encodedKey": "string",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "trancheNumber": 0
  }
]

Responses

Status Meaning Description Schema
200 OK Updated loan account tranches. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanTranche] [In some cases organizations may approve loans but not disburse the full amount initially. They would like to spread the disbursement (and risk) over time. Likewise for the client, they may not need the full loan amount up front. They may want to have a loan to buy some equipment for their business but will make one purchase today and another purchase in a few months. In these cases, they don't need the full amount and wouldn't want to pay interest on cash they don't need yet. A solution for this matter is the usage of disbursement in tranches. This class holds the information required for one of this tranche. ] none
» amount (required) number The amount this tranche has available for disburse none
» disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
»» disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
»» expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none
» encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
» fees [CustomPredefinedFee] Fees that are associated with this tranche none
»» amount number The amount of the custom fee. none
»» encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
»» percentage number The percentage of the custom fee. none
»» predefinedFeeEncodedKey string The encoded key of the predefined fee none
» trancheNumber integer(int32) Index indicating the tranche number none

Loan Transactions

Allows you to retrieve and create loan transactions for loan accounts.

Code samples

# You can also use wget
curl -X POST /loans/transactions:search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

POST /loans/transactions:search HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/transactions:search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.post '/loans/transactions:search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.post('/loans/transactions:search', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/transactions:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/transactions:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/transactions:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/transactions:search

Search loan transactions

For more information on performing searches, please read the Searching for Records section above.

Body parameter

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "id",
    "order": "ASC"
  }
}

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
body (required) LoanTransactionSearchCriteria Criteria to be used to search the loan transactions. body

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountBalances": {
      "advancePosition": 0,
      "arrearsPosition": 0,
      "expectedPrincipalRedraw": 0,
      "principalBalance": 0,
      "redrawBalance": 0,
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "deferredInterestAmount": 0,
      "feesAmount": 0,
      "fundersInterestAmount": 0,
      "interestAmount": 0,
      "interestFromArrearsAmount": 0,
      "organizationCommissionAmount": 0,
      "paymentHolidaysInterestAmount": 0,
      "penaltyAmount": 0,
      "principalAmount": 0
    },
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "customPaymentAmounts": [
      {
        "amount": 0,
        "customPaymentAmountType": "PRINCIPAL",
        "predefinedFeeKey": "string",
        "taxOnAmount": 0
      }
    ],
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "id": "string",
    "installmentEncodedKey": "string",
    "migrationEventKey": "string",
    "notes": "string",
    "originalAmount": 0,
    "originalCurrencyCode": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "parentLoanTransactionKey": "string",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "taxes": {
      "deferredTaxOnInterestAmount": 0,
      "taxOnFeesAmount": 0,
      "taxOnInterestAmount": 0,
      "taxOnInterestFromArrearsAmount": 0,
      "taxOnPaymentHolidaysInterest": 0,
      "taxOnPenaltyAmount": 0,
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "periodicPayment": 0,
      "principalPaymentAmount": 0,
      "principalPaymentPercentage": 0
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
200 OK Result of a loan transaction search. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found No loan transaction could be found using the supplied criteria. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanTransaction] [Represents the action performed on a loan account after which the account's amount changes its value.] none
» accountBalances TransactionBalances The balances changed within a transaction. none
»» advancePosition number Captures the advance (prepaid) amount. none
»» arrearsPosition number Captures the arrears position amount for the account in arrears. none
»» expectedPrincipalRedraw number The difference between principal balance and redraw balance after each transaction performed on the loan account. none
»» principalBalance number The account redraw balance captured after the transaction update. none
»» redrawBalance number The account redraw balance captured after the transaction update. none
»» totalBalance number The running balance still owed for the loan. none
» adjustmentTransactionKey string The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved). none
» affectedAmounts LoanAffectedAmounts The amounts affected after completing the loan transaction none
»» deferredInterestAmount number How much interest pre-paid was added/removed in account, within this transaction (including taxes). none
»» feesAmount number How much fees was added/removed in account, within this transaction. none
»» fundersInterestAmount number How much interest is given to the investors, within this transaction (only for p2p products) none
»» interestAmount number How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field. none
»» interestFromArrearsAmount number How much interest from arrears was added/removed in account, within this transaction (including taxes). none
»» organizationCommissionAmount number How much interest is given to the organization, within this transaction (only for p2p products) none
»» paymentHolidaysInterestAmount number How much Payment Holidays interest was added/removed in account, within this transaction (including taxes). none
»» penaltyAmount number How much penalties was added/removed in account, within this transaction. none
»» principalAmount number How much principal was added/removed in account, within this transaction. none
» amount number The amount that was added or removed on the loan account. none
» bookingDate string(date-time) The date when the corresponding journal entry is booked. none
» branchKey string The branch where the transaction was performed. none
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed. none
» creationDate string(date-time) The date when this loan transaction was created. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» customPaymentAmounts [CustomPaymentAmount] The list of custom amounts which the user has paid as part of this transaction. none
»» amount (required) number The amount of the payment paid in the transaction for the given type. none
»» customPaymentAmountType (required) string The type of the custom payment none
»» predefinedFeeKey string The encodedKey of the predefined fee to be paid. none
»» taxOnAmount number The amount of the taxes paid in the transaction for the given type. none
» encodedKey string The encoded key of the loan transaction, which is auto generated, and must be unique. none
» externalId string The external ID of the loan transaction, it is customizable, and must be unique. none
» fees [Fee] The amounts that have been applied or paid as part of this transaction and involved predefined fees. none
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» id string The ID of the loan transaction, can be generated and customized, and must be unique. none
» installmentEncodedKey string The specific installment encoded key associated to the loan transaction. none
» migrationEventKey string The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from. none
» notes string The notes or description for the loan transaction. none
» originalAmount number The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field. none
» originalCurrencyCode string The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency. none
» originalTransactionKey string The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions. none
» parentAccountKey string The key of the parent loan account. none
» parentLoanTransactionKey string The key of the parent loan transaction. none
» prepaymentRecalculationMethod string The prepayment recalculation method of the loan transaction. none
» taxes Taxes The taxes applied within a transaction. none
»» deferredTaxOnInterestAmount number How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field. none
»» taxOnFeesAmount number How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestAmount number How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestFromArrearsAmount number The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction. none
»» taxOnPaymentHolidaysInterest number The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction. none
»» taxOnPenaltyAmount number How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction. none
»» taxRate number The tax rate that was set or changed in this transaction. none
» terms LoanTerms The loan transaction terms none
»» interestSettings TransactionInterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»»» indexInterestRate number The value of the index interest rate none
»»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» periodicPayment number The periodic payment value logged when changing it for a Balloon Payments account none
»» principalPaymentAmount number The principal payment flat amount logged when changing it for a Revolving Credit account none
»» principalPaymentPercentage number The principal payment percentage value logged when changing it for a Revolving Credit account none
» tillKey string The till key associated with the transaction. none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of loan transaction. none
» userKey string The user that performed the transaction. none
» valueDate string(date-time) The date of the entry in the organization time format and timezone. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
customPaymentAmountType PRINCIPAL
customPaymentAmountType INTEREST
customPaymentAmountType MANUAL_FEE
customPaymentAmountType UPFRONT_DISBURSEMENT_FEE
customPaymentAmountType LATE_REPAYMENT_FEE
customPaymentAmountType PAYMENT_DUE_FEE
customPaymentAmountType PENALTY
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
type IMPORT
type DISBURSEMENT
type DISBURSEMENT_ADJUSTMENT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type REPAYMENT
type PAYMENT_MADE
type WITHDRAWAL_REDRAW
type WITHDRAWAL_REDRAW_ADJUSTMENT
type FEE_APPLIED
type FEE_CHARGED
type FEES_DUE_REDUCED
type FEE_ADJUSTMENT
type PENALTY_APPLIED
type PENALTY_ADJUSTMENT
type PENALTIES_DUE_REDUCED
type REPAYMENT_ADJUSTMENT
type PAYMENT_MADE_ADJUSTMENT
type INTEREST_RATE_CHANGED
type TAX_RATE_CHANGED
type PENALTY_RATE_CHANGED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type INTEREST_DUE_REDUCED
type PENALTY_REDUCTION_ADJUSTMENT
type FEE_REDUCTION_ADJUSTMENT
type INTEREST_REDUCTION_ADJUSTMENT
type DEFERRED_INTEREST_APPLIED
type DEFERRED_INTEREST_APPLIED_ADJUSTMENT
type DEFERRED_INTEREST_PAID
type DEFERRED_INTEREST_PAID_ADJUSTMENT
type INTEREST_LOCKED
type FEE_LOCKED
type PENALTY_LOCKED
type INTEREST_UNLOCKED
type FEE_UNLOCKED
type PENALTY_UNLOCKED
type REDRAW_TRANSFER
type REDRAW_REPAYMENT
type REDRAW_TRANSFER_ADJUSTMENT
type REDRAW_REPAYMENT_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type BRANCH_CHANGED
type TERMS_CHANGED
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type DUE_DATE_CHANGED
type DUE_DATE_CHANGED_ADJUSTMENT
type ACCOUNT_TERMINATED
type ACCOUNT_TERMINATED_ADJUSTMENT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

applyLock (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/lock-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/lock-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/lock-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/lock-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/lock-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/lock-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/lock-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/lock-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/lock-transactions

Lock loan account income sources (interest, fees, penalties)

Body parameter

{
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) LockLoanAccountInput Represents the information for locking an account. body

Example responses

201 Response

{
  "loanTransactions": [
    {
      "accountBalances": {
        "advancePosition": 0,
        "arrearsPosition": 0,
        "expectedPrincipalRedraw": 0,
        "principalBalance": 0,
        "redrawBalance": 0,
        "totalBalance": 0
      },
      "adjustmentTransactionKey": "string",
      "affectedAmounts": {
        "deferredInterestAmount": 0,
        "feesAmount": 0,
        "fundersInterestAmount": 0,
        "interestAmount": 0,
        "interestFromArrearsAmount": 0,
        "organizationCommissionAmount": 0,
        "paymentHolidaysInterestAmount": 0,
        "penaltyAmount": 0,
        "principalAmount": 0
      },
      "amount": 0,
      "bookingDate": "2016-09-06T13:37:50+03:00",
      "branchKey": "string",
      "cardTransaction": {
        "advice": true,
        "amount": 0,
        "cardAcceptor": {
          "city": "string",
          "country": "string",
          "mcc": 0,
          "name": "string",
          "state": "string",
          "street": "string",
          "zip": "string"
        },
        "cardToken": "string",
        "currencyCode": "string",
        "encodedKey": "string",
        "externalAuthorizationReferenceId": "string",
        "externalReferenceId": "string",
        "userTransactionTime": "string"
      },
      "centreKey": "string",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "customPaymentAmounts": [
        {
          "amount": 0,
          "customPaymentAmountType": "PRINCIPAL",
          "predefinedFeeKey": "string",
          "taxOnAmount": 0
        }
      ],
      "encodedKey": "string",
      "externalId": "string",
      "fees": [
        {
          "amount": 0,
          "name": "string",
          "predefinedFeeKey": "string",
          "taxAmount": 0,
          "trigger": "MANUAL"
        }
      ],
      "id": "string",
      "installmentEncodedKey": "string",
      "migrationEventKey": "string",
      "notes": "string",
      "originalAmount": 0,
      "originalCurrencyCode": "string",
      "originalTransactionKey": "string",
      "parentAccountKey": "string",
      "parentLoanTransactionKey": "string",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "taxes": {
        "deferredTaxOnInterestAmount": 0,
        "taxOnFeesAmount": 0,
        "taxOnInterestAmount": 0,
        "taxOnInterestFromArrearsAmount": 0,
        "taxOnPaymentHolidaysInterest": 0,
        "taxOnPenaltyAmount": 0,
        "taxRate": 0
      },
      "terms": {
        "interestSettings": {
          "indexInterestRate": 0,
          "interestRate": 0
        },
        "periodicPayment": 0,
        "principalPaymentAmount": 0,
        "principalPaymentPercentage": 0
      },
      "tillKey": "string",
      "transactionDetails": {
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      },
      "transferDetails": {
        "linkedDepositTransactionKey": "string",
        "linkedLoanTransactionKey": "string"
      },
      "type": "IMPORT",
      "userKey": "string",
      "valueDate": "2016-09-06T13:37:50+03:00"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Lock transactions created. LockLoanTransactionsWrapper
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

applyUnlock (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/unlock-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/unlock-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/unlock-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/unlock-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/unlock-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/unlock-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/unlock-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/unlock-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/unlock-transactions

Unlock loan account income sources (interest, fees, penalties)

Body parameter

{
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) UnlockLoanAccountInput Represents the information for unlocking an account. body

Example responses

201 Response

{
  "loanTransactions": [
    {
      "accountBalances": {
        "advancePosition": 0,
        "arrearsPosition": 0,
        "expectedPrincipalRedraw": 0,
        "principalBalance": 0,
        "redrawBalance": 0,
        "totalBalance": 0
      },
      "adjustmentTransactionKey": "string",
      "affectedAmounts": {
        "deferredInterestAmount": 0,
        "feesAmount": 0,
        "fundersInterestAmount": 0,
        "interestAmount": 0,
        "interestFromArrearsAmount": 0,
        "organizationCommissionAmount": 0,
        "paymentHolidaysInterestAmount": 0,
        "penaltyAmount": 0,
        "principalAmount": 0
      },
      "amount": 0,
      "bookingDate": "2016-09-06T13:37:50+03:00",
      "branchKey": "string",
      "cardTransaction": {
        "advice": true,
        "amount": 0,
        "cardAcceptor": {
          "city": "string",
          "country": "string",
          "mcc": 0,
          "name": "string",
          "state": "string",
          "street": "string",
          "zip": "string"
        },
        "cardToken": "string",
        "currencyCode": "string",
        "encodedKey": "string",
        "externalAuthorizationReferenceId": "string",
        "externalReferenceId": "string",
        "userTransactionTime": "string"
      },
      "centreKey": "string",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "customPaymentAmounts": [
        {
          "amount": 0,
          "customPaymentAmountType": "PRINCIPAL",
          "predefinedFeeKey": "string",
          "taxOnAmount": 0
        }
      ],
      "encodedKey": "string",
      "externalId": "string",
      "fees": [
        {
          "amount": 0,
          "name": "string",
          "predefinedFeeKey": "string",
          "taxAmount": 0,
          "trigger": "MANUAL"
        }
      ],
      "id": "string",
      "installmentEncodedKey": "string",
      "migrationEventKey": "string",
      "notes": "string",
      "originalAmount": 0,
      "originalCurrencyCode": "string",
      "originalTransactionKey": "string",
      "parentAccountKey": "string",
      "parentLoanTransactionKey": "string",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "taxes": {
        "deferredTaxOnInterestAmount": 0,
        "taxOnFeesAmount": 0,
        "taxOnInterestAmount": 0,
        "taxOnInterestFromArrearsAmount": 0,
        "taxOnPaymentHolidaysInterest": 0,
        "taxOnPenaltyAmount": 0,
        "taxRate": 0
      },
      "terms": {
        "interestSettings": {
          "indexInterestRate": 0,
          "interestRate": 0
        },
        "periodicPayment": 0,
        "principalPaymentAmount": 0,
        "principalPaymentPercentage": 0
      },
      "tillKey": "string",
      "transactionDetails": {
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      },
      "transferDetails": {
        "linkedDepositTransactionKey": "string",
        "linkedLoanTransactionKey": "string"
      },
      "type": "IMPORT",
      "userKey": "string",
      "valueDate": "2016-09-06T13:37:50+03:00"
    }
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Unlock transactions created. LockLoanTransactionsWrapper
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

makeRepayment (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/repayment-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/repayment-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/repayment-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/repayment-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/repayment-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/repayment-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/repayment-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/repayment-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/repayment-transactions

Make repayment transaction on loan account

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "externalId": "string",
  "installmentEncodedKey": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) RepaymentLoanTransactionInput Represents the information for creating a transaction of type REPAYMENT. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Repayment transaction created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

adjust (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/transactions/{loanTransactionId}:adjust \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/transactions/{loanTransactionId}:adjust HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/transactions/{loanTransactionId}:adjust',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/transactions/{loanTransactionId}:adjust',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/transactions/{loanTransactionId}:adjust', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/transactions/{loanTransactionId}:adjust', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/transactions/{loanTransactionId}:adjust");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/transactions/{loanTransactionId}:adjust", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/transactions/{loanTransactionId}:adjust

Adjust loan transactions.

Allows you to adjust financial transactions, such as:

For more information, see Adjusting transactions.

Body parameter

{
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "installments": [
    {
      "amountToAdd": 0,
      "installmentKey": "string"
    }
  ],
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanTransactionId (required) string The ID or encoded key of the loan transaction to be returned. path
body (required) LoanTransactionAdjustmentDetails Details of the adjustment. body

Example responses

200 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK Loan transaction adjusted. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan transaction not found. ErrorResponse

makeDisbursement (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/disbursement-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/disbursement-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/disbursement-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/disbursement-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/disbursement-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/disbursement-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/disbursement-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/disbursement-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/disbursement-transactions

Make a disbursement on a loan

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "percentage": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "originalCurrencyCode": "string",
  "shiftAdjustableInterestPeriods": true,
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedAccountId": "string",
    "linkedAccountKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) DisbursementLoanTransactionInput Input details for the disbursement transaction. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created The loan has been disbursed and a disbursement transaction has been created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getById (Loan Transactions)

Code samples

# You can also use wget
curl -X GET /loans/transactions/{loanTransactionId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/transactions/{loanTransactionId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/transactions/{loanTransactionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/transactions/{loanTransactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/transactions/{loanTransactionId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/transactions/{loanTransactionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/transactions/{loanTransactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/transactions/{loanTransactionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/transactions/{loanTransactionId}

Get loan transaction

Parameters

Name Type Description In
loanTransactionId (required) string The ID or encoded key of the loan transaction to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
200 OK Loan transaction returned. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan transaction not found. ErrorResponse

getTransactionsForAllVersions (Loan Transactions)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/transactions:versions \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/transactions:versions HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/transactions:versions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/transactions:versions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/transactions:versions', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/transactions:versions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/transactions:versions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/transactions:versions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/transactions:versions

Get loan transactions for all loan account versions

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountBalances": {
      "advancePosition": 0,
      "arrearsPosition": 0,
      "expectedPrincipalRedraw": 0,
      "principalBalance": 0,
      "redrawBalance": 0,
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "deferredInterestAmount": 0,
      "feesAmount": 0,
      "fundersInterestAmount": 0,
      "interestAmount": 0,
      "interestFromArrearsAmount": 0,
      "organizationCommissionAmount": 0,
      "paymentHolidaysInterestAmount": 0,
      "penaltyAmount": 0,
      "principalAmount": 0
    },
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "customPaymentAmounts": [
      {
        "amount": 0,
        "customPaymentAmountType": "PRINCIPAL",
        "predefinedFeeKey": "string",
        "taxOnAmount": 0
      }
    ],
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "id": "string",
    "installmentEncodedKey": "string",
    "migrationEventKey": "string",
    "notes": "string",
    "originalAmount": 0,
    "originalCurrencyCode": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "parentLoanTransactionKey": "string",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "taxes": {
      "deferredTaxOnInterestAmount": 0,
      "taxOnFeesAmount": 0,
      "taxOnInterestAmount": 0,
      "taxOnInterestFromArrearsAmount": 0,
      "taxOnPaymentHolidaysInterest": 0,
      "taxOnPenaltyAmount": 0,
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "periodicPayment": 0,
      "principalPaymentAmount": 0,
      "principalPaymentPercentage": 0
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
200 OK Loan transactions list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanTransaction] [Represents the action performed on a loan account after which the account's amount changes its value.] none
» accountBalances TransactionBalances The balances changed within a transaction. none
»» advancePosition number Captures the advance (prepaid) amount. none
»» arrearsPosition number Captures the arrears position amount for the account in arrears. none
»» expectedPrincipalRedraw number The difference between principal balance and redraw balance after each transaction performed on the loan account. none
»» principalBalance number The account redraw balance captured after the transaction update. none
»» redrawBalance number The account redraw balance captured after the transaction update. none
»» totalBalance number The running balance still owed for the loan. none
» adjustmentTransactionKey string The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved). none
» affectedAmounts LoanAffectedAmounts The amounts affected after completing the loan transaction none
»» deferredInterestAmount number How much interest pre-paid was added/removed in account, within this transaction (including taxes). none
»» feesAmount number How much fees was added/removed in account, within this transaction. none
»» fundersInterestAmount number How much interest is given to the investors, within this transaction (only for p2p products) none
»» interestAmount number How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field. none
»» interestFromArrearsAmount number How much interest from arrears was added/removed in account, within this transaction (including taxes). none
»» organizationCommissionAmount number How much interest is given to the organization, within this transaction (only for p2p products) none
»» paymentHolidaysInterestAmount number How much Payment Holidays interest was added/removed in account, within this transaction (including taxes). none
»» penaltyAmount number How much penalties was added/removed in account, within this transaction. none
»» principalAmount number How much principal was added/removed in account, within this transaction. none
» amount number The amount that was added or removed on the loan account. none
» bookingDate string(date-time) The date when the corresponding journal entry is booked. none
» branchKey string The branch where the transaction was performed. none
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed. none
» creationDate string(date-time) The date when this loan transaction was created. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» customPaymentAmounts [CustomPaymentAmount] The list of custom amounts which the user has paid as part of this transaction. none
»» amount (required) number The amount of the payment paid in the transaction for the given type. none
»» customPaymentAmountType (required) string The type of the custom payment none
»» predefinedFeeKey string The encodedKey of the predefined fee to be paid. none
»» taxOnAmount number The amount of the taxes paid in the transaction for the given type. none
» encodedKey string The encoded key of the loan transaction, which is auto generated, and must be unique. none
» externalId string The external ID of the loan transaction, it is customizable, and must be unique. none
» fees [Fee] The amounts that have been applied or paid as part of this transaction and involved predefined fees. none
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» id string The ID of the loan transaction, can be generated and customized, and must be unique. none
» installmentEncodedKey string The specific installment encoded key associated to the loan transaction. none
» migrationEventKey string The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from. none
» notes string The notes or description for the loan transaction. none
» originalAmount number The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field. none
» originalCurrencyCode string The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency. none
» originalTransactionKey string The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions. none
» parentAccountKey string The key of the parent loan account. none
» parentLoanTransactionKey string The key of the parent loan transaction. none
» prepaymentRecalculationMethod string The prepayment recalculation method of the loan transaction. none
» taxes Taxes The taxes applied within a transaction. none
»» deferredTaxOnInterestAmount number How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field. none
»» taxOnFeesAmount number How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestAmount number How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestFromArrearsAmount number The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction. none
»» taxOnPaymentHolidaysInterest number The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction. none
»» taxOnPenaltyAmount number How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction. none
»» taxRate number The tax rate that was set or changed in this transaction. none
» terms LoanTerms The loan transaction terms none
»» interestSettings TransactionInterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»»» indexInterestRate number The value of the index interest rate none
»»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» periodicPayment number The periodic payment value logged when changing it for a Balloon Payments account none
»» principalPaymentAmount number The principal payment flat amount logged when changing it for a Revolving Credit account none
»» principalPaymentPercentage number The principal payment percentage value logged when changing it for a Revolving Credit account none
» tillKey string The till key associated with the transaction. none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of loan transaction. none
» userKey string The user that performed the transaction. none
» valueDate string(date-time) The date of the entry in the organization time format and timezone. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
customPaymentAmountType PRINCIPAL
customPaymentAmountType INTEREST
customPaymentAmountType MANUAL_FEE
customPaymentAmountType UPFRONT_DISBURSEMENT_FEE
customPaymentAmountType LATE_REPAYMENT_FEE
customPaymentAmountType PAYMENT_DUE_FEE
customPaymentAmountType PENALTY
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
type IMPORT
type DISBURSEMENT
type DISBURSEMENT_ADJUSTMENT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type REPAYMENT
type PAYMENT_MADE
type WITHDRAWAL_REDRAW
type WITHDRAWAL_REDRAW_ADJUSTMENT
type FEE_APPLIED
type FEE_CHARGED
type FEES_DUE_REDUCED
type FEE_ADJUSTMENT
type PENALTY_APPLIED
type PENALTY_ADJUSTMENT
type PENALTIES_DUE_REDUCED
type REPAYMENT_ADJUSTMENT
type PAYMENT_MADE_ADJUSTMENT
type INTEREST_RATE_CHANGED
type TAX_RATE_CHANGED
type PENALTY_RATE_CHANGED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type INTEREST_DUE_REDUCED
type PENALTY_REDUCTION_ADJUSTMENT
type FEE_REDUCTION_ADJUSTMENT
type INTEREST_REDUCTION_ADJUSTMENT
type DEFERRED_INTEREST_APPLIED
type DEFERRED_INTEREST_APPLIED_ADJUSTMENT
type DEFERRED_INTEREST_PAID
type DEFERRED_INTEREST_PAID_ADJUSTMENT
type INTEREST_LOCKED
type FEE_LOCKED
type PENALTY_LOCKED
type INTEREST_UNLOCKED
type FEE_UNLOCKED
type PENALTY_UNLOCKED
type REDRAW_TRANSFER
type REDRAW_REPAYMENT
type REDRAW_TRANSFER_ADJUSTMENT
type REDRAW_REPAYMENT_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type BRANCH_CHANGED
type TERMS_CHANGED
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type DUE_DATE_CHANGED
type DUE_DATE_CHANGED_ADJUSTMENT
type ACCOUNT_TERMINATED
type ACCOUNT_TERMINATED_ADJUSTMENT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

makeWithdrawal (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/withdrawal-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/withdrawal-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/withdrawal-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/withdrawal-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/withdrawal-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/withdrawal-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/withdrawal-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/withdrawal-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/withdrawal-transactions

Make withdrawal from redraw balance

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) WithdrawalRedrawTransactionInput Represents the information for creating a transaction of type WITHDRAWAL_REDRAW. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Withdrawal redraw transaction created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

applyPaymentMade (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/payment-made-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/payment-made-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/payment-made-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/payment-made-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/payment-made-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/payment-made-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/payment-made-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/payment-made-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/payment-made-transactions

Make payment in redraw balance for loan account

Body parameter

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) PaymentMadeTransactionInput Represents the information for creating a transaction of the type PAYMENT_MADE. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Payment made transaction created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

makeRedrawRepayment (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/redraw-repayment-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/redraw-repayment-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/redraw-repayment-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/redraw-repayment-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/redraw-repayment-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/redraw-repayment-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/redraw-repayment-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/redraw-repayment-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/redraw-repayment-transactions

Make a redraw repayment transaction on a loan

Body parameter

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) RedrawRepaymentTransactionInputDTO Represents the information for creating a transaction of type REDRAW_REPAYMENT. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Redraw repayment transaction created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

getAll (Loan Transactions)

Code samples

# You can also use wget
curl -X GET /loans/{loanAccountId}/transactions \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /loans/{loanAccountId}/transactions HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/loans/{loanAccountId}/transactions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/loans/{loanAccountId}/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/loans/{loanAccountId}/transactions', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/loans/{loanAccountId}/transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/loans/{loanAccountId}/transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /loans/{loanAccountId}/transactions

Get loan transactions

Parameters

Name Type Description In
loanAccountId (required) string The ID or encoded key of the loan account. path
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "accountBalances": {
      "advancePosition": 0,
      "arrearsPosition": 0,
      "expectedPrincipalRedraw": 0,
      "principalBalance": 0,
      "redrawBalance": 0,
      "totalBalance": 0
    },
    "adjustmentTransactionKey": "string",
    "affectedAmounts": {
      "deferredInterestAmount": 0,
      "feesAmount": 0,
      "fundersInterestAmount": 0,
      "interestAmount": 0,
      "interestFromArrearsAmount": 0,
      "organizationCommissionAmount": 0,
      "paymentHolidaysInterestAmount": 0,
      "penaltyAmount": 0,
      "principalAmount": 0
    },
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "branchKey": "string",
    "cardTransaction": {
      "advice": true,
      "amount": 0,
      "cardAcceptor": {
        "city": "string",
        "country": "string",
        "mcc": 0,
        "name": "string",
        "state": "string",
        "street": "string",
        "zip": "string"
      },
      "cardToken": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "externalAuthorizationReferenceId": "string",
      "externalReferenceId": "string",
      "userTransactionTime": "string"
    },
    "centreKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "customPaymentAmounts": [
      {
        "amount": 0,
        "customPaymentAmountType": "PRINCIPAL",
        "predefinedFeeKey": "string",
        "taxOnAmount": 0
      }
    ],
    "encodedKey": "string",
    "externalId": "string",
    "fees": [
      {
        "amount": 0,
        "name": "string",
        "predefinedFeeKey": "string",
        "taxAmount": 0,
        "trigger": "MANUAL"
      }
    ],
    "id": "string",
    "installmentEncodedKey": "string",
    "migrationEventKey": "string",
    "notes": "string",
    "originalAmount": 0,
    "originalCurrencyCode": "string",
    "originalTransactionKey": "string",
    "parentAccountKey": "string",
    "parentLoanTransactionKey": "string",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "taxes": {
      "deferredTaxOnInterestAmount": 0,
      "taxOnFeesAmount": 0,
      "taxOnInterestAmount": 0,
      "taxOnInterestFromArrearsAmount": 0,
      "taxOnPaymentHolidaysInterest": 0,
      "taxOnPenaltyAmount": 0,
      "taxRate": 0
    },
    "terms": {
      "interestSettings": {
        "indexInterestRate": 0,
        "interestRate": 0
      },
      "periodicPayment": 0,
      "principalPaymentAmount": 0,
      "principalPaymentPercentage": 0
    },
    "tillKey": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "transferDetails": {
      "linkedDepositTransactionKey": "string",
      "linkedLoanTransactionKey": "string"
    },
    "type": "IMPORT",
    "userKey": "string",
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
]

Responses

Status Meaning Description Schema
200 OK Loan transactions list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [LoanTransaction] [Represents the action performed on a loan account after which the account's amount changes its value.] none
» accountBalances TransactionBalances The balances changed within a transaction. none
»» advancePosition number Captures the advance (prepaid) amount. none
»» arrearsPosition number Captures the arrears position amount for the account in arrears. none
»» expectedPrincipalRedraw number The difference between principal balance and redraw balance after each transaction performed on the loan account. none
»» principalBalance number The account redraw balance captured after the transaction update. none
»» redrawBalance number The account redraw balance captured after the transaction update. none
»» totalBalance number The running balance still owed for the loan. none
» adjustmentTransactionKey string The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved). none
» affectedAmounts LoanAffectedAmounts The amounts affected after completing the loan transaction none
»» deferredInterestAmount number How much interest pre-paid was added/removed in account, within this transaction (including taxes). none
»» feesAmount number How much fees was added/removed in account, within this transaction. none
»» fundersInterestAmount number How much interest is given to the investors, within this transaction (only for p2p products) none
»» interestAmount number How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field. none
»» interestFromArrearsAmount number How much interest from arrears was added/removed in account, within this transaction (including taxes). none
»» organizationCommissionAmount number How much interest is given to the organization, within this transaction (only for p2p products) none
»» paymentHolidaysInterestAmount number How much Payment Holidays interest was added/removed in account, within this transaction (including taxes). none
»» penaltyAmount number How much penalties was added/removed in account, within this transaction. none
»» principalAmount number How much principal was added/removed in account, within this transaction. none
» amount number The amount that was added or removed on the loan account. none
» bookingDate string(date-time) The date when the corresponding journal entry is booked. none
» branchKey string The branch where the transaction was performed. none
» cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
»» advice (required) boolean Whether the given request should be accepted without balance validations. none
»» amount (required) number The amount of money to be withdrawn in the financial transaction. none
»» cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
»»» city string The city in which the card acceptor has the business. none
»»» country string The country in which the card acceptor has the business. none
»»» mcc integer(int32) The Merchant Category Code of the card acceptor. none
»»» name string The name of the card acceptor. none
»»» state string The state in which the card acceptor has the business. none
»»» street string The street in which the card acceptor has the business. none
»»» zip string The ZIP code of the location in which the card acceptor has the business. none
»» cardToken string The reference token of the card. read-only
»» currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
»» encodedKey string The encoded key of the entity, generated, globally unique read-only
»» externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
»» externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
»» userTransactionTime string The formatted time at which the user made this card transaction. none
» centreKey string The center where the transaction was performed. none
» creationDate string(date-time) The date when this loan transaction was created. none
» currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
»» code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
»» currencyCode string Currency code for NON_FIAT currency. none
» customPaymentAmounts [CustomPaymentAmount] The list of custom amounts which the user has paid as part of this transaction. none
»» amount (required) number The amount of the payment paid in the transaction for the given type. none
»» customPaymentAmountType (required) string The type of the custom payment none
»» predefinedFeeKey string The encodedKey of the predefined fee to be paid. none
»» taxOnAmount number The amount of the taxes paid in the transaction for the given type. none
» encodedKey string The encoded key of the loan transaction, which is auto generated, and must be unique. none
» externalId string The external ID of the loan transaction, it is customizable, and must be unique. none
» fees [Fee] The amounts that have been applied or paid as part of this transaction and involved predefined fees. none
»» amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
»» name string The name of the predefined fee read-only
»» predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
»» taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
»» trigger string Shows the event that will trigger a fee read-only
» id string The ID of the loan transaction, can be generated and customized, and must be unique. none
» installmentEncodedKey string The specific installment encoded key associated to the loan transaction. none
» migrationEventKey string The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from. none
» notes string The notes or description for the loan transaction. none
» originalAmount number The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field. none
» originalCurrencyCode string The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency. none
» originalTransactionKey string The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions. none
» parentAccountKey string The key of the parent loan account. none
» parentLoanTransactionKey string The key of the parent loan transaction. none
» prepaymentRecalculationMethod string The prepayment recalculation method of the loan transaction. none
» taxes Taxes The taxes applied within a transaction. none
»» deferredTaxOnInterestAmount number How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field. none
»» taxOnFeesAmount number How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestAmount number How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction. none
»» taxOnInterestFromArrearsAmount number The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction. none
»» taxOnPaymentHolidaysInterest number The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction. none
»» taxOnPenaltyAmount number How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction. none
»» taxRate number The tax rate that was set or changed in this transaction. none
» terms LoanTerms The loan transaction terms none
»» interestSettings TransactionInterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
»»» indexInterestRate number The value of the index interest rate none
»»» interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
»» periodicPayment number The periodic payment value logged when changing it for a Balloon Payments account none
»» principalPaymentAmount number The principal payment flat amount logged when changing it for a Revolving Credit account none
»» principalPaymentPercentage number The principal payment percentage value logged when changing it for a Revolving Credit account none
» tillKey string The till key associated with the transaction. none
» transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
»» transactionChannelId string The id of the transaction channel associated with the transaction details. none
»» transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none
» transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
»» linkedDepositTransactionKey string The key of the related deposit transaction none
»» linkedLoanTransactionKey string The key of the related loan transaction none
» type string The type of loan transaction. none
» userKey string The user that performed the transaction. none
» valueDate string(date-time) The date of the entry in the organization time format and timezone. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT
customPaymentAmountType PRINCIPAL
customPaymentAmountType INTEREST
customPaymentAmountType MANUAL_FEE
customPaymentAmountType UPFRONT_DISBURSEMENT_FEE
customPaymentAmountType LATE_REPAYMENT_FEE
customPaymentAmountType PAYMENT_DUE_FEE
customPaymentAmountType PENALTY
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
type IMPORT
type DISBURSEMENT
type DISBURSEMENT_ADJUSTMENT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type REPAYMENT
type PAYMENT_MADE
type WITHDRAWAL_REDRAW
type WITHDRAWAL_REDRAW_ADJUSTMENT
type FEE_APPLIED
type FEE_CHARGED
type FEES_DUE_REDUCED
type FEE_ADJUSTMENT
type PENALTY_APPLIED
type PENALTY_ADJUSTMENT
type PENALTIES_DUE_REDUCED
type REPAYMENT_ADJUSTMENT
type PAYMENT_MADE_ADJUSTMENT
type INTEREST_RATE_CHANGED
type TAX_RATE_CHANGED
type PENALTY_RATE_CHANGED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type INTEREST_DUE_REDUCED
type PENALTY_REDUCTION_ADJUSTMENT
type FEE_REDUCTION_ADJUSTMENT
type INTEREST_REDUCTION_ADJUSTMENT
type DEFERRED_INTEREST_APPLIED
type DEFERRED_INTEREST_APPLIED_ADJUSTMENT
type DEFERRED_INTEREST_PAID
type DEFERRED_INTEREST_PAID_ADJUSTMENT
type INTEREST_LOCKED
type FEE_LOCKED
type PENALTY_LOCKED
type INTEREST_UNLOCKED
type FEE_UNLOCKED
type PENALTY_UNLOCKED
type REDRAW_TRANSFER
type REDRAW_REPAYMENT
type REDRAW_TRANSFER_ADJUSTMENT
type REDRAW_REPAYMENT_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type BRANCH_CHANGED
type TERMS_CHANGED
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type DUE_DATE_CHANGED
type DUE_DATE_CHANGED_ADJUSTMENT
type ACCOUNT_TERMINATED
type ACCOUNT_TERMINATED_ADJUSTMENT

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

applyFee (Loan Transactions)

Code samples

# You can also use wget
curl -X POST /loans/{loanAccountId}/fee-transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /loans/{loanAccountId}/fee-transactions HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/loans/{loanAccountId}/fee-transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/loans/{loanAccountId}/fee-transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/loans/{loanAccountId}/fee-transactions', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/loans/{loanAccountId}/fee-transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/loans/{loanAccountId}/fee-transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/loans/{loanAccountId}/fee-transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /loans/{loanAccountId}/fee-transactions

Apply a fee on a loan account

Body parameter

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "installmentNumber": 0,
  "notes": "string",
  "predefinedFeeKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
loanAccountId (required) string The ID or encoded key of the loan account. path
body (required) FeeLoanTransactionInput Represents the information for creating a transaction of type FEE_APPLIED on a loan. body

Example responses

201 Response

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Fee applied transaction created. LoanTransaction
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan account not found. ErrorResponse

Loan Risk Levels Configuration

Retrieve and update the configuration for loan risk levels.

Risk levels are user defined categories composed by an interval for number of days in arrears and a correspondent provision amount. Risk levels will be used to calculate the organization’s portfolio at risk (PAR), based on the number of loans in arrears that fall into each level. For more information about this resource, see Loan Risk Levels Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Loan Risk Levels Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/loanrisklevels.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/loanrisklevels.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/loanrisklevels.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/loanrisklevels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/loanrisklevels.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/loanrisklevels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/loanrisklevels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/loanrisklevels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/loanrisklevels.yaml

Get loan risk levels configuration

Example responses

An example of a loan risk levels configuration

---
loanRiskLevels:
- id: "1"
  name: "Mild Risk"
  arrearsFrom: 10
  arrearsTo: 30
  provisioningPercent: 4.5
- id: "1153177013"
  name: "Healthy loans"
  arrearsFrom: 0
  arrearsTo: 0
  provisioningPercent: 3
- id: "2"
  name: "Moderate Risk"
  arrearsFrom: 30
  arrearsTo: 40
  provisioningPercent: 7

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Loan risk levels configuration returned. LoanRiskLevelsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Loan Risk Levels Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/loanrisklevels.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/loanrisklevels.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/loanrisklevels.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/loanrisklevels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/loanrisklevels.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/loanrisklevels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/loanrisklevels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/loanrisklevels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/loanrisklevels.yaml

Update loan risk levels configuration

Body parameter

An example of a loan risk levels configuration

---
loanRiskLevels:
- id: "1"
  name: "Mild Risk"
  arrearsFrom: 10
  arrearsTo: 30
  provisioningPercent: 4.5
- id: "1153177013"
  name: "Healthy loans"
  arrearsFrom: 0
  arrearsTo: 0
  provisioningPercent: 3
- id: "2"
  name: "Moderate Risk"
  arrearsFrom: 30
  arrearsTo: 40
  provisioningPercent: 7

Parameters

Name Type Description In
body LoanRiskLevelsConfiguration Represents the loan risk levels configuration. body

Example responses

200 - Success Response

---
warnings: []

400 - Invalid Syntax

{
    "errors": [
        {
            "errorCode": 9766,
            "errorSource": "LoanRiskLevel[id = 1]: name must not be blank",
            "errorReason": "LOAN_RISK_LEVEL_NAME_BLANK"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Loan risk levels configuration updated successfully. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Loan risk levels configuration not found. ErrorResponse

Response Schema

Object Labels Configuration

Retrieve and update the configuration for object labels.

Labels refer to various element types in the Mambu UI. If your organization uses different terminology to refer to a given element, then you can change its label. For more information about this resource, see Labels Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Object Labels Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/labels.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/labels.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/labels.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/labels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/labels.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/labels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/labels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/labels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/labels.yaml

Get object labels configuration

Example responses

an array of labels

---
objectLabels:
- language: "CHINESE"
  labels:
  - type: "BRANCH"
    singularValue: "分行"
    pluralValue: "分行"
  - type: "CENTRE"
    singularValue: "中心"
    pluralValue: "中心"
  - type: "CLIENT"
    singularValue: "客户"
    pluralValue: "客户"
  - type: "CREDIT_OFFICER"
    singularValue: "信贷员"
    pluralValue: "信贷员"
  - type: "FEE"
    singularValue: "费用"
    pluralValue: "收费"
  - type: "GROUP"
    singularValue: "小组"
    pluralValue: "小组"
  - type: "INTEREST"
    singularValue: "利息"
    pluralValue: "利息"
- language: "ENGLISH"
  labels:
  - type: "BRANCH"
    singularValue: "Branch"
    pluralValue: "Branches"
  - type: "CENTRE"
    singularValue: "Centre"
    pluralValue: "Centres"
  - type: "CLIENT"
    singularValue: "Client"
    pluralValue: "Clients"
  - type: "CREDIT_OFFICER"
    singularValue: "Credit Officer"
    pluralValue: "Credit Officers"
  - type: "FEE"
    singularValue: "Fee"
    pluralValue: "Fees"
  - type: "GROUP"
    singularValue: "Group"
    pluralValue: "Groups"
  - type: "INTEREST"
    singularValue: "Interest"
    pluralValue: "Interests"
- language: "FRENCH"
  labels:
  - type: "BRANCH"
    singularValue: "Branche"
    pluralValue: "Branches"
  - type: "CENTRE"
    singularValue: "Centre"
    pluralValue: "Centres"
  - type: "CLIENT"
    singularValue: "Client"
    pluralValue: "Clients"
  - type: "CREDIT_OFFICER"
    singularValue: "Responsable du crédit"
    pluralValue: "Responsables des crédits"
  - type: "FEE"
    singularValue: "Frais"
    pluralValue: "Honoraires"
  - type: "GROUP"
    singularValue: "Groupe"
    pluralValue: "Groupes"
  - type: "INTEREST"
    singularValue: "Intérêt"
    pluralValue: "Intérêts"
- language: "GEORGIAN"
  labels:
  - type: "BRANCH"
    singularValue: "ფილიალი"
    pluralValue: "ფილიალები"
  - type: "CENTRE"
    singularValue: "ცენტრი"
    pluralValue: "ცენტრები"
  - type: "CLIENT"
    singularValue: "კლიენტი"
    pluralValue: "კლიენტები"
  - type: "CREDIT_OFFICER"
    singularValue: "საკრედიტო ოფიცერი"
    pluralValue: "საკრედიტო ოფიცრები"
  - type: "FEE"
    singularValue: "საკომისიო"
    pluralValue: "საკომისიოები"
  - type: "GROUP"
    singularValue: "ჯგუფი"
    pluralValue: "ჯგუფები"
  - type: "INTEREST"
    singularValue: "პროცენტი"
    pluralValue: "პროცენტები"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Object Labels configuration returned. ObjectLabelsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Object Labels Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/labels.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/labels.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/labels.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/labels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/labels.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/labels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/labels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/labels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/labels.yaml

Update object labels configuration

Body parameter

an array of labels

---
objectLabels:
- language: "CHINESE"
  labels:
  - type: "BRANCH"
    singularValue: "分行"
    pluralValue: "分行"
  - type: "CENTRE"
    singularValue: "中心"
    pluralValue: "中心"
  - type: "CLIENT"
    singularValue: "客户"
    pluralValue: "客户"
  - type: "CREDIT_OFFICER"
    singularValue: "信贷员"
    pluralValue: "信贷员"
  - type: "FEE"
    singularValue: "费用"
    pluralValue: "收费"
  - type: "GROUP"
    singularValue: "小组"
    pluralValue: "小组"
  - type: "INTEREST"
    singularValue: "利息"
    pluralValue: "利息"
- language: "ENGLISH"
  labels:
  - type: "BRANCH"
    singularValue: "Branch"
    pluralValue: "Branches"
  - type: "CENTRE"
    singularValue: "Centre"
    pluralValue: "Centres"
  - type: "CLIENT"
    singularValue: "Client"
    pluralValue: "Clients"
  - type: "CREDIT_OFFICER"
    singularValue: "Credit Officer"
    pluralValue: "Credit Officers"
  - type: "FEE"
    singularValue: "Fee"
    pluralValue: "Fees"
  - type: "GROUP"
    singularValue: "Group"
    pluralValue: "Groups"
  - type: "INTEREST"
    singularValue: "Interest"
    pluralValue: "Interests"
- language: "FRENCH"
  labels:
  - type: "BRANCH"
    singularValue: "Branche"
    pluralValue: "Branches"
  - type: "CENTRE"
    singularValue: "Centre"
    pluralValue: "Centres"
  - type: "CLIENT"
    singularValue: "Client"
    pluralValue: "Clients"
  - type: "CREDIT_OFFICER"
    singularValue: "Responsable du crédit"
    pluralValue: "Responsables des crédits"
  - type: "FEE"
    singularValue: "Frais"
    pluralValue: "Honoraires"
  - type: "GROUP"
    singularValue: "Groupe"
    pluralValue: "Groupes"
  - type: "INTEREST"
    singularValue: "Intérêt"
    pluralValue: "Intérêts"
- language: "GEORGIAN"
  labels:
  - type: "BRANCH"
    singularValue: "ფილიალი"
    pluralValue: "ფილიალები"
  - type: "CENTRE"
    singularValue: "ცენტრი"
    pluralValue: "ცენტრები"
  - type: "CLIENT"
    singularValue: "კლიენტი"
    pluralValue: "კლიენტები"
  - type: "CREDIT_OFFICER"
    singularValue: "საკრედიტო ოფიცერი"
    pluralValue: "საკრედიტო ოფიცრები"
  - type: "FEE"
    singularValue: "საკომისიო"
    pluralValue: "საკომისიოები"
  - type: "GROUP"
    singularValue: "ჯგუფი"
    pluralValue: "ჯგუფები"
  - type: "INTEREST"
    singularValue: "პროცენტი"
    pluralValue: "პროცენტები"

Parameters

Name Type Description In
body ObjectLabelsConfiguration Represents the object labels body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Object Labels configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Object labels configuration not found. ErrorResponse

Response Schema

Organization Details

getOrganizationSetup (Organization Details)

Code samples

# You can also use wget
curl -X GET /setup/organization \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /setup/organization HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/setup/organization',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/setup/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/setup/organization', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/setup/organization', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/setup/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/setup/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /setup/organization

Get organization details

Example responses

200 Response

{
  "address": {
    "city": "string",
    "country": "string",
    "encodedKey": "string",
    "indexInList": 0,
    "latitude": 0,
    "line1": "string",
    "line2": "string",
    "longitude": 0,
    "parentKey": "string",
    "postcode": "string",
    "region": "string"
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": "string",
  "dateFormat": "dd-MM-yyyy",
  "dateTimeFormat": "dd-MM-yyyy HH:mm:ss",
  "decimalSeparator": "COMMA",
  "emailAddress": "string",
  "institutionName": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "phoneNumber": "string",
  "timeZoneID": "string"
}

Responses

Status Meaning Description Schema
200 OK Organization details returned. OrganizationSetup
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Organization details not found. ErrorResponse

updateOrganizationSetup (Organization Details)

Code samples

# You can also use wget
curl -X PUT /setup/organization \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /setup/organization HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/setup/organization',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/setup/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/setup/organization', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/setup/organization', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/setup/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/setup/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /setup/organization

Update organization details

Body parameter

{
  "address": {
    "city": "string",
    "country": "string",
    "indexInList": 0,
    "latitude": 0,
    "line1": "string",
    "line2": "string",
    "longitude": 0,
    "postcode": "string",
    "region": "string"
  },
  "dateFormat": "dd-MM-yyyy",
  "dateTimeFormat": "dd-MM-yyyy HH:mm:ss",
  "decimalSeparator": "COMMA",
  "emailAddress": "string",
  "institutionName": "string",
  "phoneNumber": "string"
}

Parameters

Name Type Description In
body (required) OrganizationSetup The organization details to be updated. body

Example responses

200 Response

{
  "address": {
    "city": "string",
    "country": "string",
    "encodedKey": "string",
    "indexInList": 0,
    "latitude": 0,
    "line1": "string",
    "line2": "string",
    "longitude": 0,
    "parentKey": "string",
    "postcode": "string",
    "region": "string"
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": "string",
  "dateFormat": "dd-MM-yyyy",
  "dateTimeFormat": "dd-MM-yyyy HH:mm:ss",
  "decimalSeparator": "COMMA",
  "emailAddress": "string",
  "institutionName": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "phoneNumber": "string",
  "timeZoneID": "string"
}

Responses

Status Meaning Description Schema
200 OK Organization details returned. OrganizationSetup
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Organization details not found. ErrorResponse

Organization Details Configuration

Retrieve and update the organization details configuration.

An organization is how we refer to your institution, including staff members and the different branches. For more information about this resource, see Organization Details Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Organization Details Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/organization.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/organization.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/organization.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/organization.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/organization.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/organization.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/organization.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/organization.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/organization.yaml

Get organization details configuration

Example responses

an organization

---
institutionName: "Cheese Bank"
address:
  line1: "street address"
  city: "big city"
  region: "cloud country"
  postcode: "90210"
  country: "Countrystan"
phoneNumber: "+420456978"
emailAddress: "ae@bigbank.com"
localDateFormat: "dd-MM-yyyy"
localDateTimeFormat: "dd-MM-yyyy HH:mm:ss"
decimalSeparator: "POINT"

400 Response

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Organization details configuration returned. Organization
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Organization details configuration not found. ErrorResponse

update (Organization Details Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/organization.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/organization.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/organization.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/organization.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/organization.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/organization.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/organization.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/organization.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/organization.yaml

Update organization details configuration

Body parameter

an organization

---
institutionName: "Cheese Bank"
address:
  line1: "street address"
  city: "big city"
  region: "cloud country"
  postcode: "90210"
  country: "Countrystan"
phoneNumber: "+420456978"
emailAddress: "ae@bigbank.com"
localDateFormat: "dd-MM-yyyy"
localDateTimeFormat: "dd-MM-yyyy HH:mm:ss"
decimalSeparator: "POINT"

Parameters

Name Type Description In
body Organization Response representation of the organization configuration details body

Example responses

200 success response

---
institutionName: "Cheese Bank"
address:
  line1: "street address"
  city: "big city"
  region: "cloud country"
  postcode: "90210"
  country: "Countrystan"
phoneNumber: "+420456978"
emailAddress: "ae@bigbank.com"
localDateFormat: "dd-MM-yyyy"
localDateTimeFormat: "dd-MM-yyyy HH:mm:ss"
decimalSeparator: "POINT"

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Organization details configuration updated. Organization
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Organization details configuration not found. ErrorResponse

getTemplate (Organization Details Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/organization/template.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/organization/template.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/organization/template.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/organization/template.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/organization/template.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/organization/template.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/organization/template.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/organization/template.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/organization/template.yaml

Get organization details configuration template

Example responses

organization details configuration as code template

---
institutionName: null
address:
  line1: null
  line2: null
  city: null
  region: null
  postcode: null
  country: null
phoneNumber: null
emailAddress: null
localDateFormat: null
localDateTimeFormat: null
decimalSeparator: null

400 Response

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Organization details configuration template returned. Organization
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Organization details configuration template not found. ErrorResponse

Payments

processAmlResponse (Payments)

Code samples

# You can also use wget
curl -X POST /v1/payments/aml

POST /v1/payments/aml HTTP/1.1


$.ajax({
  url: '/v1/payments/aml',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/payments/aml',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/payments/aml', params={

)

print r.json()

request('POST','/v1/payments/aml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/payments/aml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/payments/aml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/payments/aml

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

getMapping (Payments)

Code samples

# You can also use wget
curl -X GET /v1/accounts/{accountId}/identifications

GET /v1/accounts/{accountId}/identifications HTTP/1.1


$.ajax({
  url: '/v1/accounts/{accountId}/identifications',
  method: 'get',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.get '/v1/accounts/{accountId}/identifications',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('/v1/accounts/{accountId}/identifications', params={

)

print r.json()

request('GET','/v1/accounts/{accountId}/identifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/{accountId}/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/accounts/{accountId}/identifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/accounts/{accountId}/identifications

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

createMapping (Payments)

Code samples

# You can also use wget
curl -X POST /v1/accounts/{accountId}/identifications

POST /v1/accounts/{accountId}/identifications HTTP/1.1


$.ajax({
  url: '/v1/accounts/{accountId}/identifications',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/accounts/{accountId}/identifications',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/accounts/{accountId}/identifications', params={

)

print r.json()

request('POST','/v1/accounts/{accountId}/identifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/{accountId}/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/accounts/{accountId}/identifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/accounts/{accountId}/identifications

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

createMappings (Payments)

Code samples

# You can also use wget
curl -X PUT /v1/accounts/identifications

PUT /v1/accounts/identifications HTTP/1.1


$.ajax({
  url: '/v1/accounts/identifications',
  method: 'put',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.put '/v1/accounts/identifications',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.put('/v1/accounts/identifications', params={

)

print r.json()

request('PUT','/v1/accounts/identifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/v1/accounts/identifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/accounts/identifications

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

searchAccountIdentifications (Payments)

Code samples

# You can also use wget
curl -X POST /v1/accounts/identifications:search

POST /v1/accounts/identifications:search HTTP/1.1


$.ajax({
  url: '/v1/accounts/identifications:search',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/accounts/identifications:search',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/accounts/identifications:search', params={

)

print r.json()

request('POST','/v1/accounts/identifications:search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/identifications:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/accounts/identifications:search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/accounts/identifications:search

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

incomingMessage (Payments)

Code samples

# You can also use wget
curl -X POST /v1/payments/incoming

POST /v1/payments/incoming HTTP/1.1


$.ajax({
  url: '/v1/payments/incoming',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/payments/incoming',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/payments/incoming', params={

)

print r.json()

request('POST','/v1/payments/incoming', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/payments/incoming");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/payments/incoming", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/payments/incoming

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

initiatePayment (Payments)

Code samples

# You can also use wget
curl -X POST /v1/payments

POST /v1/payments HTTP/1.1


$.ajax({
  url: '/v1/payments',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/payments',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/payments', params={

)

print r.json()

request('POST','/v1/payments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/payments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/payments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/payments

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

paymentDetails (Payments)

Code samples

# You can also use wget
curl -X GET /v1/payments/{paymentId}

GET /v1/payments/{paymentId} HTTP/1.1


$.ajax({
  url: '/v1/payments/{paymentId}',
  method: 'get',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.get '/v1/payments/{paymentId}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('/v1/payments/{paymentId}', params={

)

print r.json()

request('GET','/v1/payments/{paymentId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/payments/{paymentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/payments/{paymentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/payments/{paymentId}

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

findSepaMessages (Payments)

Code samples

# You can also use wget
curl -X GET /v1/instructions

GET /v1/instructions HTTP/1.1


$.ajax({
  url: '/v1/instructions',
  method: 'get',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.get '/v1/instructions',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('/v1/instructions', params={

)

print r.json()

request('GET','/v1/instructions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/instructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/instructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/instructions

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

createBlockingRule (Payments)

Code samples

# You can also use wget
curl -X POST /v1/accounts/{accountId}/blocking-rules

POST /v1/accounts/{accountId}/blocking-rules HTTP/1.1


$.ajax({
  url: '/v1/accounts/{accountId}/blocking-rules',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/accounts/{accountId}/blocking-rules',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/accounts/{accountId}/blocking-rules', params={

)

print r.json()

request('POST','/v1/accounts/{accountId}/blocking-rules', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/{accountId}/blocking-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/accounts/{accountId}/blocking-rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/accounts/{accountId}/blocking-rules

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

deleteBlockingRules (Payments)

Code samples

# You can also use wget
curl -X DELETE /v1/accounts/{accountId}/blocking-rules

DELETE /v1/accounts/{accountId}/blocking-rules HTTP/1.1


$.ajax({
  url: '/v1/accounts/{accountId}/blocking-rules',
  method: 'delete',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.delete '/v1/accounts/{accountId}/blocking-rules',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.delete('/v1/accounts/{accountId}/blocking-rules', params={

)

print r.json()

request('DELETE','/v1/accounts/{accountId}/blocking-rules', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/accounts/{accountId}/blocking-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/v1/accounts/{accountId}/blocking-rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/accounts/{accountId}/blocking-rules

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

sepaPaymentDetails (Payments)

Code samples

# You can also use wget
curl -X GET /v1/collections/{collectionId}

GET /v1/collections/{collectionId} HTTP/1.1


$.ajax({
  url: '/v1/collections/{collectionId}',
  method: 'get',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.get '/v1/collections/{collectionId}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('/v1/collections/{collectionId}', params={

)

print r.json()

request('GET','/v1/collections/{collectionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/collections/{collectionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/collections/{collectionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/collections/{collectionId}

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

initiateCollection (Payments)

Code samples

# You can also use wget
curl -X POST /v1/collections

POST /v1/collections HTTP/1.1


$.ajax({
  url: '/v1/collections',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/collections',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/collections', params={

)

print r.json()

request('POST','/v1/collections', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/collections");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/collections", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/collections

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

refund (Payments)

Code samples

# You can also use wget
curl -X POST /v1/collections/{collectionOrderId}:refund

POST /v1/collections/{collectionOrderId}:refund HTTP/1.1


$.ajax({
  url: '/v1/collections/{collectionOrderId}:refund',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/collections/{collectionOrderId}:refund',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/collections/{collectionOrderId}:refund', params={

)

print r.json()

request('POST','/v1/collections/{collectionOrderId}:refund', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/collections/{collectionOrderId}:refund");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/collections/{collectionOrderId}:refund", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/collections/{collectionOrderId}:refund

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

reverse (Payments)

Code samples

# You can also use wget
curl -X POST /v1/collections/{collectionOrderId}:reverse

POST /v1/collections/{collectionOrderId}:reverse HTTP/1.1


$.ajax({
  url: '/v1/collections/{collectionOrderId}:reverse',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/collections/{collectionOrderId}:reverse',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/collections/{collectionOrderId}:reverse', params={

)

print r.json()

request('POST','/v1/collections/{collectionOrderId}:reverse', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/collections/{collectionOrderId}:reverse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/collections/{collectionOrderId}:reverse", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/collections/{collectionOrderId}:reverse

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

publishWebhook (Payments)

Code samples

# You can also use wget
curl -X POST /v1/gateway-webhook-url

POST /v1/gateway-webhook-url HTTP/1.1


$.ajax({
  url: '/v1/gateway-webhook-url',
  method: 'post',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

result = RestClient.post '/v1/gateway-webhook-url',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.post('/v1/gateway-webhook-url', params={

)

print r.json()

request('POST','/v1/gateway-webhook-url', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/gateway-webhook-url");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/gateway-webhook-url", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/gateway-webhook-url

Documentation for this endpoint has moved to the dedicated Payments API Page and can be found by following this link.

Tasks

Allows you to retrieve, create, update or delete tasks. A task represents a human task that can be assigned by a user to another.

getById (Tasks)

Code samples

# You can also use wget
curl -X GET /tasks/{taskId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /tasks/{taskId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/tasks/{taskId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/tasks/{taskId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/tasks/{taskId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /tasks/{taskId}

Get task

Parameters

Name Type Description In
taskId (required) string The ID or encoded key of the task. path

Example responses

200 Response

{
  "assignedUserKey": "string",
  "createdByFullName": "string",
  "createdByUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "dueDate": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "templateKey": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK Task returned. Task
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Task not found. ErrorResponse

update (Tasks)

Code samples

# You can also use wget
curl -X PUT /tasks/{taskId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /tasks/{taskId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/tasks/{taskId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/tasks/{taskId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/tasks/{taskId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /tasks/{taskId}

Update task

Body parameter

{
  "assignedUserKey": "string",
  "description": "string",
  "dueDate": "1987-04-26",
  "id": 0,
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "title": "string"
}

Parameters

Name Type Description In
taskId (required) string The ID or encoded key of the task. path
body (required) Task The task to be updated. body

Example responses

200 Response

{
  "assignedUserKey": "string",
  "createdByFullName": "string",
  "createdByUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "dueDate": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "templateKey": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK Task updated. Task
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Task not found. ErrorResponse

delete (Tasks)

Code samples

# You can also use wget
curl -X DELETE /tasks/{taskId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /tasks/{taskId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/tasks/{taskId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/tasks/{taskId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/tasks/{taskId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /tasks/{taskId}

Delete task

Parameters

Name Type Description In
taskId (required) string The ID or encoded key of the task. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Task deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Task not found. ErrorResponse

patch (Tasks)

Code samples

# You can also use wget
curl -X PATCH /tasks/{taskId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /tasks/{taskId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/tasks/{taskId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/tasks/{taskId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/tasks/{taskId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /tasks/{taskId}

Partially update task

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
taskId (required) string The ID or encoded key of the task. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Task updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Task not found. ErrorResponse

getAll (Tasks)

Code samples

# You can also use wget
curl -X GET /tasks \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /tasks HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/tasks',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/tasks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/tasks', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/tasks', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/tasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /tasks

Gets tasks

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
username string The username. query
clientId string The ID or encoded key of the client. query
groupId string The ID of encoded key of the group. query
status string The task status. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
status OPEN
status COMPLETED

Example responses

200 Response

[
  {
    "assignedUserKey": "string",
    "createdByFullName": "string",
    "createdByUserKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "description": "string",
    "dueDate": "1987-04-26",
    "encodedKey": "string",
    "id": 0,
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "status": "OPEN",
    "taskLinkKey": "string",
    "taskLinkType": "CLIENT",
    "templateKey": "string",
    "title": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Tasks list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Task] [Represents a human task that can be assigned by one user to another. When a task is created, it's status is set to OPEN.] none
» assignedUserKey (required) string The key of the user this task is assigned to. none
» createdByFullName string The name of the user who created the task. read-only
» createdByUserKey string The key of the user that created this task. The value is not editable and it is populated at task creation with the current user key. read-only
» creationDate string(date-time) The date when the task was created. read-only
» description string The description of the task. none
» dueDate (required) string(date) The due date when the task has to be completed. none
» encodedKey string The encoded key of the task, which is auto generated, and must be unique. read-only
» id integer(int64) The ID of the task, which is uniquely generated for the task. none
» lastModifiedDate string(date-time) The last date when the task was modified. read-only
» status string The status of this task, a new task always has an OPEN status. none
» taskLinkKey string The individual linked to this task. If null, it means nobody is linked to this task. none
» taskLinkType string The type of the owner represented by the task link key. none
» templateKey string The template key used to create the task. read-only
» title (required) string The title of the task. none

Enumerated Values

Property Value
status OPEN
status COMPLETED
taskLinkType CLIENT
taskLinkType GROUP
taskLinkType LOAN_PRODUCT
taskLinkType SAVINGS_PRODUCT
taskLinkType CENTRE
taskLinkType BRANCH
taskLinkType USER
taskLinkType LOAN_ACCOUNT
taskLinkType DEPOSIT_ACCOUNT
taskLinkType ID_DOCUMENT
taskLinkType LINE_OF_CREDIT
taskLinkType GL_JOURNAL_ENTRY

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Tasks)

Code samples

# You can also use wget
curl -X POST /tasks \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /tasks HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/tasks',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/tasks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/tasks', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/tasks', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/tasks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/tasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /tasks

Create task

Body parameter

{
  "assignedUserKey": "string",
  "description": "string",
  "dueDate": "1987-04-26",
  "id": 0,
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "title": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Task Task to be created. body

Example responses

201 Response

{
  "assignedUserKey": "string",
  "createdByFullName": "string",
  "createdByUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "dueDate": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "templateKey": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Task created. Task
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Transaction Channels

getAll (Transaction Channels)

Code samples

# You can also use wget
curl -X GET /organization/transactionChannels \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/transactionChannels HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/transactionChannels',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/transactionChannels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/transactionChannels', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/transactionChannels', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/transactionChannels");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/transactionChannels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/transactionChannels

Get transaction channels

Parameters

Name Type Description In
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
transactionChannelState string The state of the transaction channels to search for. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL
transactionChannelState ACTIVE
transactionChannelState INACTIVE

Example responses

200 Response

[
  {
    "availableForAll": true,
    "depositConstraints": {
      "constraints": [
        {
          "criteria": "AMOUNT",
          "operator": "EQUALS",
          "secondValue": "string",
          "value": "string",
          "values": [
            "string"
          ]
        }
      ],
      "matchFiltersOption": "ALL",
      "usage": "UNCONSTRAINED"
    },
    "encodedKey": "string",
    "glAccount": "string",
    "id": "string",
    "isDefault": true,
    "loanConstraints": {
      "constraints": [
        {
          "criteria": "AMOUNT",
          "operator": "EQUALS",
          "secondValue": "string",
          "value": "string",
          "values": [
            "string"
          ]
        }
      ],
      "matchFiltersOption": "ALL",
      "usage": "UNCONSTRAINED"
    },
    "name": "string",
    "state": "ACTIVE",
    "usageRights": [
      "string"
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Transaction channels returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [TransactionChannel] [Represents a transaction channel.] none
» availableForAll boolean TRUE if the transaction channel is available for all users, FALSE otherwise. none
» depositConstraints (required) Constraint The constraints applied to the transaction channel none
»» constraints [TransactionChannelConstraint] Holds the custom constraints, only for the limited usage case. For the unconstrainedcase, no constraints are applied none
»»» criteria (required) string Defines the criteria on which the constraint is applied none
»»» operator (required) string Defines the constraint operator. Example: in 'Amount Equals 100' it is the 'Equals' none
»»» secondValue string The second filtering value of the filter parameter (constraint). It might not exist. Example: it represents '500' from 'Amount Between 100 and 500' none
»»» value string The first filtering value of the filter constraint. Example: it represents 'Disbursement' from 'Type equals Disbursement' and it also represents 100 from 'Amount Between 100 and 500' none
»»» values [string] Filtering values used for the Product and Type criteria, where filtering might be applied on one or more values read-only
»» matchFiltersOption string Holds the match filter option for the constraints. It can be ALL so all the constraints must match, or ANY so at least one must match none
»» usage string States the limited/unconstrained usage of the transaction channel none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» glAccount (required) string The general ledger (GL) account associated with the transaction channel. none
» id (required) string The ID of the transaction channel. none
» isDefault boolean TRUE if the transaction channel is set as the default, FALSE otherwise. read-only
» loanConstraints (required) Constraint The constraints applied to the transaction channel none
» name (required) string The name of the transaction channel. none
» state string The state of the transaction channel. none
» usageRights [string] The usage rights that describe the transaction channel. none

Enumerated Values

Property Value
criteria AMOUNT
criteria TYPE
criteria PRODUCT
operator EQUALS
operator EMPTY
operator NOT_EMPTY
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator IN
matchFiltersOption ALL
matchFiltersOption ANY
usage UNCONSTRAINED
usage LIMITED
state ACTIVE
state INACTIVE

create (Transaction Channels)

Code samples

# You can also use wget
curl -X POST /organization/transactionChannels \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /organization/transactionChannels HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/organization/transactionChannels',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/organization/transactionChannels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/organization/transactionChannels', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/organization/transactionChannels', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/transactionChannels");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/organization/transactionChannels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /organization/transactionChannels

Create transaction channel

Body parameter

{
  "availableForAll": true,
  "depositConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string"
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "glAccount": "string",
  "id": "string",
  "loanConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string"
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "name": "string",
  "state": "ACTIVE",
  "usageRights": [
    "string"
  ]
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) TransactionChannel Values to create the transaction channel. body

Example responses

201 Response

{
  "availableForAll": true,
  "depositConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "encodedKey": "string",
  "glAccount": "string",
  "id": "string",
  "isDefault": true,
  "loanConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "name": "string",
  "state": "ACTIVE",
  "usageRights": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created Transaction channel created. TransactionChannel
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

getById (Transaction Channels)

Code samples

# You can also use wget
curl -X GET /organization/transactionChannels/{transactionChannelId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /organization/transactionChannels/{transactionChannelId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/transactionChannels/{transactionChannelId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/organization/transactionChannels/{transactionChannelId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/organization/transactionChannels/{transactionChannelId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/organization/transactionChannels/{transactionChannelId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/transactionChannels/{transactionChannelId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/organization/transactionChannels/{transactionChannelId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organization/transactionChannels/{transactionChannelId}

Get transaction channel

Parameters

Name Type Description In
transactionChannelId (required) string The ID of the transaction channel to be returned. path

Example responses

200 Response

{
  "availableForAll": true,
  "depositConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "encodedKey": "string",
  "glAccount": "string",
  "id": "string",
  "isDefault": true,
  "loanConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "name": "string",
  "state": "ACTIVE",
  "usageRights": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK Transaction channel returned. TransactionChannel
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Transaction channel not found. ErrorResponse

update (Transaction Channels)

Code samples

# You can also use wget
curl -X PUT /organization/transactionChannels/{transactionChannelId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PUT /organization/transactionChannels/{transactionChannelId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/transactionChannels/{transactionChannelId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.put '/organization/transactionChannels/{transactionChannelId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.put('/organization/transactionChannels/{transactionChannelId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/organization/transactionChannels/{transactionChannelId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/transactionChannels/{transactionChannelId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/organization/transactionChannels/{transactionChannelId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /organization/transactionChannels/{transactionChannelId}

Update transaction channel

Body parameter

{
  "availableForAll": true,
  "depositConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string"
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "glAccount": "string",
  "id": "string",
  "loanConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string"
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "name": "string",
  "state": "ACTIVE",
  "usageRights": [
    "string"
  ]
}

Parameters

Name Type Description In
transactionChannelId (required) string ID for the transaction channel to be updated. path
body (required) TransactionChannel Values to update the transaction channel. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Transaction channel updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Transaction channel not found. ErrorResponse

delete (Transaction Channels)

Code samples

# You can also use wget
curl -X DELETE /organization/transactionChannels/{transactionChannelId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /organization/transactionChannels/{transactionChannelId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/organization/transactionChannels/{transactionChannelId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/organization/transactionChannels/{transactionChannelId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/organization/transactionChannels/{transactionChannelId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/organization/transactionChannels/{transactionChannelId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/organization/transactionChannels/{transactionChannelId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/organization/transactionChannels/{transactionChannelId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /organization/transactionChannels/{transactionChannelId}

Delete transaction channel

Parameters

Name Type Description In
transactionChannelId (required) string The ID of the transaction channel to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Transaction channel deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Transaction channel not found. ErrorResponse

Transaction Channels Configuration

Retrieve and update the configuration for transaction channels.

A transaction channel is a form of payment such as cash, POS device, receipt, check, bank and so on. For more information about this resource, see Transaction Channels Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (Transaction Channels Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/transactionchannels.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/transactionchannels.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/transactionchannels.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/transactionchannels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/transactionchannels.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/transactionchannels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/transactionchannels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/transactionchannels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/transactionchannels.yaml

Get transaction channels configuration

Example responses

An example of a transaction channels configuration

---
defaultTransactionChannel:
  id: "cash"
  name: "Cash"
  state: "ACTIVE"
  loansConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  usageRights:
    roles: []
    allUsers: true
transactionChannels:
- id: "63547"
  name: "Visa Card"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "PRODUCT"
      filterElement: "EMPTY"
      values: []
    matchFilter: "ALL"
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  glAccountCode: "66734"
  usageRights:
    roles:
    - "35436"
    allUsers: false
- id: "837489"
  name: "Master card "
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "PRODUCT"
      filterElement: "EMPTY"
      values: []
    matchFilter: "ALL"
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  glAccountCode: "68982"
  usageRights:
    roles:
    - "43643"
    allUsers: false
- id: "83203"
  name: "BACS"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "LESS_THAN"
      values:
      - "9999.99"
    matchFilter: "ALL"
  savingsConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "LESS_THAN"
      values:
      - "9999.99"
    matchFilter: "ALL"
  glAccountCode: "54323"
  usageRights:
    roles:
    - "1064356630"
    allUsers: false
- id: "82352"
  name: "CHAPS"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "MORE_THAN"
      values:
      - "10000.00"
    matchFilter: "ALL"
  savingsConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "MORE_THAN"
      values:
      - "10000.00"
    matchFilter: "ALL"
  glAccountCode: "63213"
  usageRights:
    roles:
    - "1108047100"
    allUsers: false

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Transaction channels configuration returned. TransactionChannelsConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (Transaction Channels Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/transactionchannels.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml'

PUT /configuration/transactionchannels.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/transactionchannels.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.put '/configuration/transactionchannels.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.put('/configuration/transactionchannels.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/transactionchannels.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/transactionchannels.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/transactionchannels.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/transactionchannels.yaml

Update transaction channels configuration

Body parameter

An example of a transaction channels configuration

---
defaultTransactionChannel:
  id: "cash"
  name: "Cash"
  state: "ACTIVE"
  loansConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  usageRights:
    roles: []
    allUsers: true
transactionChannels:
- id: "63547"
  name: "Visa Card"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "PRODUCT"
      filterElement: "EMPTY"
      values: []
    matchFilter: "ALL"
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  glAccountCode: "66734"
  usageRights:
    roles:
    - "35436"
    allUsers: false
- id: "837489"
  name: "Master card "
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "PRODUCT"
      filterElement: "EMPTY"
      values: []
    matchFilter: "ALL"
  savingsConstraints:
    usage: "UNCONSTRAINED_USAGE"
    constraints: []
  glAccountCode: "68982"
  usageRights:
    roles:
    - "43643"
    allUsers: false
- id: "83203"
  name: "BACS"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "LESS_THAN"
      values:
      - "9999.99"
    matchFilter: "ALL"
  savingsConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "LESS_THAN"
      values:
      - "9999.99"
    matchFilter: "ALL"
  glAccountCode: "54323"
  usageRights:
    roles:
    - "1064356630"
    allUsers: false
- id: "82352"
  name: "CHAPS"
  state: "ACTIVE"
  loansConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "MORE_THAN"
      values:
      - "10000.00"
    matchFilter: "ALL"
  savingsConstraints:
    usage: "LIMITED_USAGE"
    constraints:
    - criteria: "AMOUNT"
      filterElement: "MORE_THAN"
      values:
      - "10000.00"
    matchFilter: "ALL"
  glAccountCode: "63213"
  usageRights:
    roles:
    - "1108047100"
    allUsers: false

Parameters

Name Type Description In
body TransactionChannelsConfiguration Model representation of the transaction channels configuration. body

Example responses

200 - Success Response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK Transaction channels configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found Transaction channels configuration not found. ErrorResponse

Response Schema

User Roles

Allows you to retrieve user roles that store a set of permissions and access rights for users.

getById (User Roles)

Code samples

# You can also use wget
curl -X GET /userroles/{roleId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /userroles/{roleId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/userroles/{roleId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/userroles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/userroles/{roleId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/userroles/{roleId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/userroles/{roleId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /userroles/{roleId}

Get user role

Parameters

Name Type Description In
roleId (required) string ID or encoded key of the user role to return. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string"
}

Responses

Status Meaning Description Schema
200 OK User role returned. Role
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User role not found. ErrorResponse

update (User Roles)

Code samples

# You can also use wget
curl -X PUT /userroles/{roleId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PUT /userroles/{roleId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/userroles/{roleId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.put '/userroles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.put('/userroles/{roleId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/userroles/{roleId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/userroles/{roleId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /userroles/{roleId}

Update user role

Body parameter

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "tellerAccess": true
  },
  "id": "string",
  "name": "string",
  "notes": "string"
}

Parameters

Name Type Description In
roleId (required) string ID or encoded key of the user role to update. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Role User role to be updated. body

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK User role updated. Role
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User role not found. ErrorResponse

delete (User Roles)

Code samples

# You can also use wget
curl -X DELETE /userroles/{roleId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /userroles/{roleId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/userroles/{roleId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/userroles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/userroles/{roleId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/userroles/{roleId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/userroles/{roleId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /userroles/{roleId}

Delete user role

Parameters

Name Type Description In
roleId (required) string ID or encoded key of the user role to delete. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content User role deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User role not found. ErrorResponse

patch (User Roles)

Code samples

# You can also use wget
curl -X PATCH /userroles/{roleId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json'

PATCH /userroles/{roleId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/userroles/{roleId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.patch '/userroles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.patch('/userroles/{roleId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/userroles/{roleId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/userroles/{roleId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /userroles/{roleId}

Partially update user role

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
roleId (required) string ID or encoded key of the user role to update. path
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content User role updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User role not found. ErrorResponse

getAll (User Roles)

Code samples

# You can also use wget
curl -X GET /userroles \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /userroles HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/userroles',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/userroles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/userroles', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/userroles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/userroles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /userroles

Get user roles

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

[
  {
    "access": {
      "administratorAccess": true,
      "apiAccess": true,
      "creditOfficerAccess": true,
      "deliveryAccess": true,
      "mambuAccess": true,
      "permissions": [
        "AUDIT_TRANSACTIONS"
      ],
      "supportAccess": true,
      "tellerAccess": true
    },
    "creationDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "id": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "name": "string",
    "notes": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK User roles list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [Role] [Represents a user role.] none
» access BaseUserAccess Represents the user permissions and access rights. none
»» administratorAccess boolean TRUE if the user has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
»» apiAccess boolean TRUE if the user can authenticate and interact with Mambu APIs, FALSE otherwise. The user may still require additional permissions for specific API requests. none
»» creditOfficerAccess boolean TRUE if the user has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
»» deliveryAccess boolean TRUE if the user is part of the Mambu delivery team, FALSE otherwise. read-only
»» mambuAccess boolean TRUEif the user can log in to the Mambu UI using their login credentials,FALSE` otherwise. none
»» permissions [string] Permissions for the user. The non-admin users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none
»» supportAccess boolean TRUE if the user can provide Mambu technical support, FALSE otherwise. read-only
»» tellerAccess boolean TRUE if the user has the teller user type, FALSE otherwise. Tellers have access to the teller module and specific tellering permissions, which allow them to take actions such as opening or closing tills, posting transactions on a till, and adding and removing cash from a till. none
» creationDate string(date-time) The date when the role was created in UTC. read-only
» encodedKey string The encoded key of the entity, generated automatically, globally unique. read-only
» id string The ID of the role, which can be generated and customized, but must be unique. none
» lastModifiedDate string(date-time) The last time the role was modified in UTC. read-only
» name (required) string The unique name of the role. none
» notes string The notes about the role. none

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (User Roles)

Code samples

# You can also use wget
curl -X POST /userroles \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /userroles HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/userroles',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/userroles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/userroles', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/userroles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/userroles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/userroles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /userroles

Create user role

Body parameter

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "tellerAccess": true
  },
  "id": "string",
  "name": "string",
  "notes": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) Role User role to be created. body

Example responses

201 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created User role created. Role
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

User Roles Configuration

Retrieve and update the user roles configuration.

Permissions allow users to view different types of information or to perform actions in Mambu. You can either assign individual permissions to users, or you can group permissions by creating a role and then assigning that role to a user. For more information about this resource, see User Roles Configuration in our User Guide.

Your user or API consumer must have the View Manage Configuration As Code (GET_MANAGE_CONFIGURATION_AS_CODE) and/or Update Manage Configuration As Code (PUT_MANAGE_CONFIGURATION_AS_CODE) permissions to make GET and/or PUT requests to these configuration as code (CasC) endpoints. For more information about CasC, see Configuration as Code Overview.

get (User Roles Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/userroles.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/userroles.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/userroles.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/userroles.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/userroles.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/userroles.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/userroles.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/userroles.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/userroles.yaml

Get user roles configuration

Example responses

a single role

- name: "Mambu Support"
  id: "613343659"
  administrator: false
  teller: false
  creditOfficer: false
  support: true
  delivery: false
  accessRights:
  - "MAMBU"
  permissions:
  - "AUDIT_TRANSACTIONS"
  - "VIEW_COMMENTS"
  - "VIEW_CENTRE_DETAILS"
  - "VIEW_BRANCH_DETAILS"
  - "VIEW_COMMUNICATION_HISTORY"
  - "VIEW_LOAN_PRODUCT_DETAILS"
  - "VIEW_SAVINGS_PRODUCT_DETAILS"
  - "VIEW_CLIENT_DETAILS"
  - "VIEW_GROUP_DETAILS"
  - "VIEW_LINE_OF_CREDIT_DETAILS"
  - "VIEW_LOAN_ACCOUNT_DETAILS"
  - "VIEW_SECURITIES_DETAILS"
  - "VIEW_SAVINGS_ACCOUNT_DETAILS"
  - "VIEW_DOCUMENTS"
  - "VIEW_TASK"
  - "VIEW_INTELLIGENCE"
  - "VIEW_REPORTS"
  - "VIEW_CHART_OF_ACCOUNTS"
  - "VIEW_JOURNAL_ENTRIES"
  - "VIEW_ACCOUNTING_REPORTS"
  - "VIEW_INVESTOR_FUNDS_DETAILS"
  - "VIEW_USER_DETAILS"
  - "VIEW_ADMINISTRATION_DETAILS"
  - "VIEW_TRANSACTION_CHANNELS"

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK User roles configuration returned. RolesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

update (User Roles Configuration)

Code samples

# You can also use wget
curl -X PUT /configuration/userroles.yaml \
  -H 'Content-Type: application/yaml' \
  -H 'Accept: application/vnd.mambu.v2+yaml' \
  -H 'X-Mambu-Async: true' \
  -H 'X-Mambu-Callback: string'

PUT /configuration/userroles.yaml HTTP/1.1

Content-Type: application/yaml
Accept: application/vnd.mambu.v2+yaml
X-Mambu-Async: true
X-Mambu-Callback: string

var headers = {
  'Content-Type':'application/yaml',
  'Accept':'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async':'true',
  'X-Mambu-Callback':'string'

};

$.ajax({
  url: '/configuration/userroles.yaml',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/yaml',
  'Accept' => 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async' => 'true',
  'X-Mambu-Callback' => 'string'
}

result = RestClient.put '/configuration/userroles.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/yaml',
  'Accept': 'application/vnd.mambu.v2+yaml',
  'X-Mambu-Async': 'true',
  'X-Mambu-Callback': 'string'
}

r = requests.put('/configuration/userroles.yaml', params={

}, headers = headers)

print r.json()

 'application/yaml',
    'Accept' => 'application/vnd.mambu.v2+yaml',
    'X-Mambu-Async' => 'true',
    'X-Mambu-Callback' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/configuration/userroles.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/userroles.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/yaml"},
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        "X-Mambu-Async": []string{"true"},
        "X-Mambu-Callback": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/configuration/userroles.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /configuration/userroles.yaml

Update user roles configuration

Body parameter

an array of roles

---
roles:
- name: "Mambu Support"
  id: "613343659"
  administrator: false
  teller: false
  creditOfficer: false
  support: true
  delivery: false
  accessRights:
  - "MAMBU"
  permissions:
  - "AUDIT_TRANSACTIONS"
  - "VIEW_COMMENTS"
  - "VIEW_CENTRE_DETAILS"
  - "VIEW_BRANCH_DETAILS"
  - "VIEW_COMMUNICATION_HISTORY"
  - "VIEW_LOAN_PRODUCT_DETAILS"
  - "VIEW_SAVINGS_PRODUCT_DETAILS"
  - "VIEW_CLIENT_DETAILS"
  - "VIEW_GROUP_DETAILS"
  - "VIEW_LINE_OF_CREDIT_DETAILS"
  - "VIEW_LOAN_ACCOUNT_DETAILS"
  - "VIEW_SECURITIES_DETAILS"
  - "VIEW_SAVINGS_ACCOUNT_DETAILS"
  - "VIEW_DOCUMENTS"
  - "VIEW_TASK"
  - "VIEW_INTELLIGENCE"
  - "VIEW_REPORTS"
  - "VIEW_CHART_OF_ACCOUNTS"
  - "VIEW_JOURNAL_ENTRIES"
  - "VIEW_ACCOUNTING_REPORTS"
  - "VIEW_INVESTOR_FUNDS_DETAILS"
  - "VIEW_USER_DETAILS"
  - "VIEW_ADMINISTRATION_DETAILS"
  - "VIEW_TRANSACTION_CHANNELS"
- name: "roll"
  id: "STD_BA"
  administrator: false
  teller: false
  creditOfficer: true
  support: false
  delivery: false
  accessRights:
  - "APIS"
  permissions:
  - "VIEW_GROUP_DETAILS"
  - "CREATE_GROUP"
  - "EDIT_GROUP"
  - "CHANGE_GROUP_TYPE"
  - "MANAGE_GROUP_ASSOCIATION"
  - "EDIT_GROUP_ID"
  - "VIEW_LOAN_ACCOUNT_DETAILS"
  - "CREATE_LOAN_ACCOUNT"
  - "EDIT_LOAN_ACCOUNT"
  - "APPROVE_LOANS"
  - "DIBURSE_LOANS"
  - "APPLY_LOAN_FEES"
  - "ENTER_REPAYMENT"
  - "EDIT_REPAYMENT_SCHEDULE"
  - "APPLY_LOAN_ADJUSTMENTS"
  - "BACKDATE_LOAN_TRANSACTIONS"
  - "APPLY_ACCRUED_LOAN_INTEREST"
  - "POST_TRANSACTIONS_ON_LOCKED_LOAN_ACCOUNTS"
  - "EDIT_PENALTY_RATE"
  - "REQUEST_LOAN_APPROVAL"
  - "EDIT_LOAN_TRANCHES"
  - "REJECT_LOANS"
  - "WRITE_OFF_LOAN_ACCOUNTS"
  - "REVERSE_LOAN_ACCOUNT_WRITE_OFF"
  - "CLOSE_LOAN_ACCOUNTS"
  - "LOCK_LOAN_ACCOUNTS"
  - "WITHDRAW_LOAN_ACCOUNTS"
  - "DELETE_LOAN_ACCOUNT"
  - "SET_DISBURSEMENT_CONDITIONS"
  - "RESCHEDULE_LOAN_ACCOUNT"
  - "REFINANCE_LOAN_ACCOUNT"
  - "EDIT_LOAN_TRANSACTIONS"
  - "BULK_LOAN_CORRECTIONS"
  - "EDIT_INTEREST_RATE"
  - "UNDO_LOAN_ACCOUNT_CLOSURE"
  - "UNDO_REJECT_LOANS"
  - "UNDO_WITHDRAW_LOAN_ACCOUNTS"
  - "LINK_ACCOUNTS"
  - "EDIT_PRINCIPAL_PAYMENT_ACTIVE_REVOLVING_CREDIT"
  - "PERFORM_REPAYMENTS_WITH_CUSTOM_AMOUNTS_ALLOCATION"
  - "MANAGE_LOAN_ASSOCIATION"
  - "MAKE_WITHDRAWAL_REDRAW"
  - "VIEW_SECURITIES_DETAILS"
  - "CREATE_SECURITIES"
  - "EDIT_SECURITIES"
  - "DELETE_SECURITIES"
  notes: "notes"

Parameters

Name Type Description In
X-Mambu-Async boolean none header
X-Mambu-Callback string none header
body RolesConfiguration Represents the roles configuration. body

Example responses

200 success response

---
warnings: []

400 error response

{
    "errors": [
        {
            "errorCode": 0,
            "errorSource": "human-readable description of the error",
            "errorReason": "SOURCE_OF_ERROR"
        }
    ]
}

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

404 not found

{
    "errors": [
        {
            "errorCode": 3,
            "errorSource": "server",
            "errorReason": "INVALID_API_OPERATION"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK User roles configuration updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User roles configuration not found. ErrorResponse

Response Schema

getTemplate (User Roles Configuration)

Code samples

# You can also use wget
curl -X GET /configuration/userroles/template.yaml \
  -H 'Accept: application/vnd.mambu.v2+yaml'

GET /configuration/userroles/template.yaml HTTP/1.1

Accept: application/vnd.mambu.v2+yaml

var headers = {
  'Accept':'application/vnd.mambu.v2+yaml'

};

$.ajax({
  url: '/configuration/userroles/template.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+yaml'
}

result = RestClient.get '/configuration/userroles/template.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+yaml'
}

r = requests.get('/configuration/userroles/template.yaml', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+yaml',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/configuration/userroles/template.yaml', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/configuration/userroles/template.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/configuration/userroles/template.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /configuration/userroles/template.yaml

Get user roles configuration template

Example responses

template for configuration of user roles as code

---
roles:
- name: null
  id: null
  administrator: false
  teller: false
  creditOfficer: false
  support: false
  delivery: false
  accessRights: []
  permissions: []
  notes: null

401 invalid credentials

{
    "errors": [
        {
            "errorCode": 2,
            "errorSource": "credentials",
            "errorReason": "INVALID_CREDENTIALS"
        }
    ]
}

403 forbidden

{
    "errors": [
        {
            "errorCode": 15,
            "errorSource": "not authorized",
            "errorReason": "INVALID_PERMISSIONS"
        }
    ]
}

Responses

Status Meaning Description Schema
200 OK User roles configuration template returned. RolesConfiguration
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Users

Allows you to retrieve users. Note that certain field (like password) are stripped out from the response for security reasons.

getById (Users)

Code samples

# You can also use wget
curl -X GET /users/{userId} \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /users/{userId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/users/{userId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/users/{userId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/users/{userId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /users/{userId}

Get user

Parameters

Name Type Description In
userId (required) string The ID or encoded key of the user to be returned. path
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query

Enumerated Values

Parameter Value
detailsLevel BASIC
detailsLevel FULL

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "email": "string",
  "encodedKey": "string",
  "firstName": "string",
  "homePhone": "string",
  "id": "string",
  "language": "ENGLISH",
  "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "userState": "ACTIVE",
  "username": "string"
}

Responses

Status Meaning Description Schema
200 OK User returned. User
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User not found. ErrorResponse

update (Users)

Code samples

# You can also use wget
curl -X PUT /users/{userId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PUT /users/{userId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/users/{userId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.put '/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.put('/users/{userId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/users/{userId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /users/{userId}

Update user

Body parameter

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {}
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "email": "string",
  "firstName": "string",
  "homePhone": "string",
  "language": "ENGLISH",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "role": {
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "userState": "ACTIVE",
  "username": "string"
}

Parameters

Name Type Description In
userId (required) string The ID or encoded key of the user to be updated. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) User User to be updated. body

Example responses

200 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "email": "string",
  "encodedKey": "string",
  "firstName": "string",
  "homePhone": "string",
  "id": "string",
  "language": "ENGLISH",
  "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "userState": "ACTIVE",
  "username": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
200 OK User updated. User
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User not found. ErrorResponse

delete (Users)

Code samples

# You can also use wget
curl -X DELETE /users/{userId} \
  -H 'Accept: application/vnd.mambu.v2+json'

DELETE /users/{userId} HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/users/{userId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.delete '/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.delete('/users/{userId}', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/users/{userId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /users/{userId}

Delete user

Parameters

Name Type Description In
userId (required) string The ID or encoded key of the user to be deleted. path

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content User deleted. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User not found. ErrorResponse

patch (Users)

Code samples

# You can also use wget
curl -X PATCH /users/{userId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

PATCH /users/{userId} HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/users/{userId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.patch '/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.patch('/users/{userId}', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','/users/{userId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /users/{userId}

Partially update user

Body parameter

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Parameters

Name Type Description In
userId (required) string The ID or encoded key of the user to be updated. path
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) PatchOperation Patch operations to be applied to a resource. body

Example responses

400 Response

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content User updated. None
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found User not found. ErrorResponse

getAll (Users)

Code samples

# You can also use wget
curl -X GET /users \
  -H 'Accept: application/vnd.mambu.v2+json'

GET /users HTTP/1.1

Accept: application/vnd.mambu.v2+json

var headers = {
  'Accept':'application/vnd.mambu.v2+json'

};

$.ajax({
  url: '/users',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.mambu.v2+json'
}

result = RestClient.get '/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/vnd.mambu.v2+json'
}

r = requests.get('/users', params={

}, headers = headers)

print r.json()

 'application/vnd.mambu.v2+json',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/users', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.mambu.v2+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /users

Get users

Parameters

Name Type Description In
offset integer(int32) Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results query
limit integer(int32) Pagination, the number of elements to retrieve, used in combination with offset to paginate results query
paginationDetails string Flag specifying whether the pagination details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs query
detailsLevel string The level of details to return: FULL means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and BASIC will return only the first level elements of the object. query
branchId string The branch identifier to search by, can be the encoded key or the id query
branchIdType string Represents the way how the users should be searched by branch, when the users are ASSIGNED to a branch or when the user can manage a branch which includes ASSIGNED and extra users that can manage the branch and the ones that ca manage all branches query

Enumerated Values

Parameter Value
paginationDetails ON
paginationDetails OFF
detailsLevel BASIC
detailsLevel FULL
branchIdType ASSIGNED
branchIdType MANAGE

Example responses

200 Response

[
  {
    "access": {
      "administratorAccess": true,
      "apiAccess": true,
      "canManageAllBranches": true,
      "canManageEntitiesAssignedToOtherOfficers": true,
      "creditOfficerAccess": true,
      "deliveryAccess": true,
      "mambuAccess": true,
      "managedBranches": [
        {
          "branchKey": "string"
        }
      ],
      "permissions": [
        "AUDIT_TRANSACTIONS"
      ],
      "supportAccess": true,
      "tellerAccess": true
    },
    "assignedBranchKey": "string",
    "creationDate": "2016-09-06T13:37:50+03:00",
    "email": "string",
    "encodedKey": "string",
    "firstName": "string",
    "homePhone": "string",
    "id": "string",
    "language": "ENGLISH",
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "lastName": "string",
    "mobilePhone": "string",
    "notes": "string",
    "role": {
      "encodedKey": "string",
      "id": "string"
    },
    "title": "string",
    "transactionLimits": {
      "property1": 0,
      "property2": 0
    },
    "twoFactorAuthentication": true,
    "userState": "ACTIVE",
    "username": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Users list returned. Inline
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Schema

Status Code 200

Name Type Description Restrictions
anonymous [User] [Represents a user.] none
» access (required) UserAccess Represents the user permissions and access rights. none
»» administratorAccess boolean TRUE if the user has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
»» apiAccess boolean TRUE if the user can authenticate and interact with Mambu APIs, FALSE otherwise. The user may still require additional permissions for specific API requests. none
»» canManageAllBranches (required) boolean TRUE if the user has access to all branches, FALSE if the user only has access to specific branches. none
»» canManageEntitiesAssignedToOtherOfficers (required) boolean TRUE if a credit officer user can access entities (for example, clients or accounts) assigned to other credit officers, FALSE otherwise. none
»» creditOfficerAccess boolean TRUE if the user has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
»» deliveryAccess boolean TRUE if the user is part of the Mambu delivery team, FALSE otherwise. read-only
»» mambuAccess boolean TRUEif the user can log in to the Mambu UI using their login credentials,FALSE` otherwise. none
»» managedBranches [UserManagedBranch] The list of branches that can be managed by the user. If the user has the canManageAllBranches property set to TRUE, this list does not apply. none
»»» branchKey string The encoded key of the branch, it is automatically generated. read-only
»» permissions [string] Permissions for the user. The non-admin users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none
»» supportAccess boolean TRUE if the user can provide Mambu technical support, FALSE otherwise. read-only
»» tellerAccess boolean TRUE if the user has the teller user type, FALSE otherwise. Tellers have access to the teller module and specific tellering permissions, which allow them to take actions such as opening or closing tills, posting transactions on a till, and adding and removing cash from a till. none
» assignedBranchKey string The encoded key of the branch this user is assigned to. none
» creationDate string(date-time) The date the user was created in UTC. read-only
» email string The user email address. Used by Mambu for sending automated notifications or for getting passwords. none
» encodedKey string The encoded key of the entity, generated, globally unique read-only
» firstName (required) string The first name of the user. none
» homePhone string The user's home phone number, which can also contain characters. none
» id string The ID of the user, which is generated automatically, but must be unique. read-only
» language string The Mambu display language for the user. The Mambu UI will be displayed in the selected language. Please note: for portuguese, you must use the incorrect spelling PORTUGESE. none
» lastLoggedInDate string(date-time) The last time the user logged in in UTC. read-only
» lastModifiedDate string(date-time) The last time the user was modified in UTC. read-only
» lastName string The last name of the user. none
» mobilePhone string The user's mobile phone number, which can also contain characters. none
» notes string The additional information for the user. none
» role RoleIdentifier Represents the role identifier. none
»» encodedKey string The encoded key of the entity, generated automatically, globally unique. read-only
»» id string The ID of the role, which can be generated and customized, but must be unique. none
» title string The user title. none
» transactionLimits object The user transaction limits. none
»» additionalProperties integer(int32) none none
» twoFactorAuthentication boolean TRUE if the user has two-factor authentication setup, FALSE otherwise. If two-factor authentication is enabled, a user will be sent an SMS to their registered mobile number, which they will need to enter in the Mambu login screen, in addition to their password. none
» userState string The current state of the user. none
» username (required) string The Mambu login user name. none

Enumerated Values

Property Value
language ENGLISH
language PORTUGESE
language SPANISH
language RUSSIAN
language FRENCH
language GEORGIAN
language CHINESE
language INDONESIAN
language ROMANIAN
language BURMESE
language GERMAN
language PORTUGUESE_BRAZIL
language VIETNAMESE
language ITALIAN
language PHRASE
userState ACTIVE
userState INACTIVE
userState LOCKED

Response Headers

Status Header Type Format Description
200 Items-Limit integer int32 Pagination details, the requested page size
200 Items-Offset integer int32 Pagination details, the index of the first returned item
200 Items-Total integer int32 Pagination details, the total available items

create (Users)

Code samples

# You can also use wget
curl -X POST /users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/vnd.mambu.v2+json' \
  -H 'Idempotency-Key: string'

POST /users HTTP/1.1

Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Idempotency-Key: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/vnd.mambu.v2+json',
  'Idempotency-Key':'string'

};

$.ajax({
  url: '/users',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/vnd.mambu.v2+json',
  'Idempotency-Key' => 'string'
}

result = RestClient.post '/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.mambu.v2+json',
  'Idempotency-Key': 'string'
}

r = requests.post('/users', params={

}, headers = headers)

print r.json()

 'application/json',
    'Accept' => 'application/vnd.mambu.v2+json',
    'Idempotency-Key' => 'string',
    
    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/users', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/vnd.mambu.v2+json"},
        "Idempotency-Key": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /users

Create user

Body parameter

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {}
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "email": "string",
  "firstName": "string",
  "homePhone": "string",
  "language": "ENGLISH",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "password": "string",
  "role": {
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "username": "string"
}

Parameters

Name Type Description In
Idempotency-Key string Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting. header
body (required) User_Request User to be created. body

Example responses

201 Response

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "email": "string",
  "encodedKey": "string",
  "firstName": "string",
  "homePhone": "string",
  "id": "string",
  "language": "ENGLISH",
  "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "userState": "ACTIVE",
  "username": "string"
}

Responses

Status Meaning Description Schema
102 Processing Your idempotent request was already submitted and is currently being processed, try again later. None
201 Created User created. User
400 Bad Request A validation error occurred ErrorResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Schemas

AccessRights

{
  "allUsers": true,
  "roles": [
    "string"
  ]
}

Represents the access rights configuration.

Properties

Name Type Description Restrictions
allUsers boolean TRUE if the configuration can be viewed or edited by all users, FALSE if only the users with the specified roles can view or edit the configuration. none
roles [string] The list of IDs, in ascending order of roles, that have view or edit rights for this configuration when it's not accessible by all users. The IDs must already exist. none

AccountArrearsSettings

{
  "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
  "encodedKey": "string",
  "monthlyToleranceDay": 0,
  "nonWorkingDaysMethod": "INCLUDED",
  "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
  "toleranceFloorAmount": 0,
  "tolerancePercentageOfOutstandingPrincipal": 0,
  "tolerancePeriod": 0
}

The account arrears settings, holds the required information for the arrears settings of an account.

Properties

Name Type Description Restrictions
dateCalculationMethod string The arrears date calculation method. none
encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
monthlyToleranceDay integer(int32) Defines monthly arrears tolerance day value. none
nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
toleranceCalculationMethod string Defines the tolerance calculation method none
toleranceFloorAmount number The tolerance floor amount. none
tolerancePercentageOfOutstandingPrincipal number Defines the arrears tolerance amount. none
tolerancePeriod integer(int32) Defines the arrears tolerance period value. none

Enumerated Values

Property Value
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY

AccountAuthorizationHold

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

The account authorization hold corresponding to a deposit account

Properties

Name Type Description Restrictions
accountKey string The key of the account linked with the authorization hold. read-only
advice boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be held as a result of the authorization hold request. none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
creationDate string(date-time) The organization time when the authorization hold was created read-only
creditDebitIndicator string Indicates whether the authorization hold amount is credited or debited. If not provided, the default value is DBIT. none
currencyCode string The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency. none
exchangeRate number The exchange rate for the original currency. none
externalReferenceId (required) string The external reference ID to be used to reference the account hold in subsequent requests. none
originalAmount number The original amount of money to be held as a result of the authorization hold request. none
originalCurrency string The original currency in which the hold was created. none
source string Indicates the source of the authorization hold. read-only
status string The authorization hold status. read-only
userTransactionTime string The formatted time at which the user made this authorization hold. none

Enumerated Values

Property Value
creditDebitIndicator DBIT
creditDebitIndicator CRDT
source CARD
source ACCOUNT
status PENDING
status REVERSED
status SETTLED
status EXPIRED

AccountBalances

{
  "accountId": "string",
  "availableBalance": 0,
  "cardType": "DEBIT",
  "creditLimit": 0,
  "currencyCode": "string",
  "totalBalance": 0
}

Account balances presented to inquirer such as card processor

Properties

Name Type Description Restrictions
accountId string The unique account identifier none
availableBalance number The available balance of a deposit or credit account none
cardType string The card type either DEBIT or CREDIT none
creditLimit number The overdraft limit of a deposit account or the loan amount in case of a credit account none
currencyCode string Currency code used for the account none
totalBalance number The current balance of a deposit account or principal balance of a revolving credit none

Enumerated Values

Property Value
cardType DEBIT
cardType CREDIT

AccountDetails

{
  "currency": "string",
  "identification": {
    "iban": "string",
    "other": {
      "identification": "string",
      "scheme": "string"
    }
  }
}

The account currency and identification

Properties

Name Type Description Restrictions
currency string The currency of the account none
identification AccountIdentification The account identification details none

AccountIdentification

{
  "iban": "string",
  "other": {
    "identification": "string",
    "scheme": "string"
  }
}

The account identification details

Properties

Name Type Description Restrictions
iban string The account unique identifier none
other OtherAccountIdentification Represents other way of identification for the account. none

AccountInterestRateSettings

{
  "encodedKey": "string",
  "indexSourceKey": "string",
  "interestRate": 0,
  "interestRateCeilingValue": 0,
  "interestRateFloorValue": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestSpread": 0,
  "validFrom": "2016-09-06T13:37:50+03:00"
}

Adjustable interest rates settings for loan account

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
indexSourceKey string Index rate source key. none
interestRate number Interest rate value. none
interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none
interestSpread number Interest spread value. none
validFrom (required) string(date-time) Date since an interest rate is valid none

Enumerated Values

Property Value
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE

AccountLinkConfiguration

{
  "enabled": true,
  "linkableDepositProductId": "string",
  "linkedAccountOptions": [
    "AUTO_LINK_ACCOUNTS"
  ],
  "settlementMethod": "FULL_DUE_AMOUNTS"
}

Represents the settings for linking a deposit account.

Properties

Name Type Description Restrictions
enabled boolean TRUE if the loan accounts created using this loan product can be linked to a deposit account, FALSE otherwise. none
linkableDepositProductId string If defined, loan accounts created for this loan product can only be linked to deposit accounts that use the deposit product with this ID. If null, the loan accounts for this loan product can be linked to any deposit account. none
linkedAccountOptions [string] A set of linked account options. none
settlementMethod string The type of of automated transfer that should be made from linked deposit accounts into loan accounts created from this loan product. none

Enumerated Values

Property Value
settlementMethod FULL_DUE_AMOUNTS
settlementMethod PARTIAL_DUE_AMOUNTS
settlementMethod NO_AUTOMATED_TRANSFERS

AccountLinkSettings

{
  "enabled": true,
  "linkableDepositProductKey": "string",
  "linkedAccountOptions": [
    "AUTO_LINK_ACCOUNTS"
  ],
  "settlementMethod": "FULL_DUE_AMOUNTS"
}

Defines the settings for account linking.

Properties

Name Type Description Restrictions
enabled (required) boolean Shows whether the loan accounts created using this product can be linked to a savings account. none
linkableDepositProductKey string Loan accounts created for this product can only be linked the the savings accounts that use the savings product with this key. If null, the loan accounts for this product can be linked to any savings account. none
linkedAccountOptions [string] A set of linked account options. none
settlementMethod string Set the option of automated transfer that should be made from linked deposit accounts into loan accounts create from this product. none

Enumerated Values

Property Value
settlementMethod FULL_DUE_AMOUNTS
settlementMethod PARTIAL_DUE_AMOUNTS
settlementMethod NO_AUTOMATED_TRANSFERS

AccountTax

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "fromDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "rateSourceEncodedKey": "string",
  "rateSourceId": "string",
  "rateSourceName": "string",
  "savingsAccountEncodedKey": "string",
  "toDate": "2016-09-06T13:37:50+03:00"
}

The account tax corresponding for deposit account

Properties

Name Type Description Restrictions
creationDate string(date-time) The date when the rate availability was created. none
fromDate string(date-time) The date when the tax source starts to be used by the account. none
lastModifiedDate string(date-time) The last date when the rate availability was modified. none
rateSourceEncodedKey string none none
rateSourceId string The id of the source none
rateSourceName string The name of the source none
savingsAccountEncodedKey string none none
toDate string(date-time) The ending date of the tax source used by the account none

AccountingRate

{
  "encodedKey": "string",
  "endDate": "2016-09-06T13:37:50+03:00",
  "fromCurrencyCode": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00",
  "toCurrencyCode": "string"
}

Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the accounting rate, auto generated, unique read-only
endDate string(date-time) Rate validity end date (as Organization Time) none
fromCurrencyCode string Organisation currency code none
rate number Value of rate to be used for accounting conversions none
startDate string(date-time) Rate validity start date (as Organization Time) none
toCurrencyCode string Foreign currency code none

AccountingRateConfiguration

{
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

Model representation of the accounting rate configuration.

Properties

Name Type Description Restrictions
rate number The accounting rate. none
startDate string(date-time) The accounting rate will apply starting with this date. none

AccountingReport

{
  "items": [
    {
      "amounts": {
        "closingBalance": 0,
        "credits": 0,
        "debits": 0,
        "netChange": 0,
        "openingBalance": 0
      },
      "foreignAmounts": {
        "closingBalance": 0,
        "credits": 0,
        "debits": 0,
        "netChange": 0,
        "openingBalance": 0
      },
      "glAccount": {
        "activated": true,
        "allowManualJournalEntries": true,
        "balance": 0,
        "creationDate": "2016-09-06T13:37:50+03:00",
        "currency": {
          "code": "AED",
          "currencyCode": "string"
        },
        "description": "string",
        "encodedKey": "string",
        "glCode": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "migrationEventKey": "string",
        "name": "string",
        "stripTrailingZeros": true,
        "type": "ASSET",
        "usage": "DETAIL"
      }
    }
  ],
  "reportKey": "string",
  "status": "QUEUED"
}

Represents information about the accounting report.

Properties

Name Type Description Restrictions
items [AccountingReportItem] The list of the accounting report items. none
reportKey string The encoded key of the generated accounting report. none
status string The accounting report generation status. none

Enumerated Values

Property Value
status QUEUED
status IN_PROGRESS
status COMPLETE
status NOT_FOUND
status CANCEL
status TO_BE_CANCELED
status TIMED_OUT
status ERROR
status TRANSIENT_ERROR
status OVERRIDDEN
status RECOVERABLE_ERROR

AccountingReportAmounts

{
  "closingBalance": 0,
  "credits": 0,
  "debits": 0,
  "netChange": 0,
  "openingBalance": 0
}

Represents information about the accounting report amounts.

Properties

Name Type Description Restrictions
closingBalance number The closing balance amount of the general ledger account. none
credits number The credit amount of the general ledger account. none
debits number The debit amount of the general ledger account. none
netChange number The net change amount of the general ledger account. none
openingBalance number The opening balance amount of the general ledger account. none

AccountingReportGenerationInput

{
  "balanceTypes": [
    "OPENING_BALANCE"
  ],
  "branchId": "string",
  "currencyCode": "string",
  "endDate": "1987-04-26",
  "glTypes": [
    "ASSET"
  ],
  "startDate": "1987-04-26"
}

Represents the input for the accounting report generation.

Properties

Name Type Description Restrictions
balanceTypes [string] The balance types to include in the generated report. none
branchId string The branch ID or encoded key to filter general ledger journal entries by. none
currencyCode string The ISO currency code to filter general ledger accounts by. none
endDate (required) string(date) The inclusive end date in the organization time format and timezone that the general ledger journal entries' entry date is filtered to. none
glTypes [string] The account types to filter general ledger accounts by. For header general ledger accounts the report will reflect the sum of the detail general ledger accounts that match the given filters used. none
startDate (required) string(date) The inclusive start date in the organization time format and timezone that the general ledger journal entries' entry date is filtered from. none

AccountingReportGenerationResponse

{
  "reportKey": "string",
  "status": "QUEUED"
}

Represents the information about the accounting report generation status.

Properties

Name Type Description Restrictions
reportKey string The encoded key of the generated report. none
status string The accounting report generation status. none

Enumerated Values

Property Value
status QUEUED
status IN_PROGRESS
status COMPLETE
status NOT_FOUND
status CANCEL
status TO_BE_CANCELED
status TIMED_OUT
status ERROR
status TRANSIENT_ERROR
status OVERRIDDEN
status RECOVERABLE_ERROR

AccountingReportItem

{
  "amounts": {
    "closingBalance": 0,
    "credits": 0,
    "debits": 0,
    "netChange": 0,
    "openingBalance": 0
  },
  "foreignAmounts": {
    "closingBalance": 0,
    "credits": 0,
    "debits": 0,
    "netChange": 0,
    "openingBalance": 0
  },
  "glAccount": {
    "activated": true,
    "allowManualJournalEntries": true,
    "balance": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "description": "string",
    "encodedKey": "string",
    "glCode": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "stripTrailingZeros": true,
    "type": "ASSET",
    "usage": "DETAIL"
  }
}

Represents the accounting report information about general ledger accounts and their amounts in both the organization's currency and foreign currencies.

Properties

Name Type Description Restrictions
amounts AccountingReportAmounts Represents information about the accounting report amounts. none
foreignAmounts AccountingReportAmounts Represents information about the accounting report amounts. none
glAccount GLAccount Represents a general ledger account. none

AccountingRulesConfiguration

{
  "automatedAccountingClosuresInterval": 0,
  "customRules": [
    {
      "glCode": "string",
      "id": "string",
      "leftBranchId": "string",
      "rightBranchId": "string"
    }
  ],
  "defaultGlCode": "string"
}

Represents the accounting rules configuration.

Properties

Name Type Description Restrictions
automatedAccountingClosuresInterval (required) integer(int32) The number of days between the execution of automated accounting closures. If this number is 0, no automated closure is performed. none
customRules [InterBranchTransferRuleConfiguration] Represents a list of custom accounting rules for inter-branch transfers. none
defaultGlCode (required) string The code of the general ledger account used by default for inter-branch transfers. none

AccountingSettings

{
  "accountingMethod": "NONE",
  "accountingRules": [
    {
      "encodedKey": "string",
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountKey": "string",
      "transactionChannelKey": "string"
    }
  ],
  "interestAccrualCalculation": "NONE",
  "interestAccruedAccountingMethod": "NONE"
}

Accounting settings, defines the accounting settings for the product.

Properties

Name Type Description Restrictions
accountingMethod (required) string A list of accounting rules for a product. none
accountingRules [GLAccountingRule] A list of accounting rules for the product. none
interestAccrualCalculation string The accounting interest calculation option selected for the product. none
interestAccruedAccountingMethod string A list of accounting rules for a product. none

Enumerated Values

Property Value
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
interestAccrualCalculation NONE
interestAccrualCalculation AGGREGATED_AMOUNT
interestAccrualCalculation BREAKDOWN_PER_ACCOUNT
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH

AccountingSettingsConfiguration

{
  "accountingMethod": "NONE",
  "accountingRules": [
    {
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountCode": "string",
      "transactionChannelId": "string"
    }
  ],
  "interestAccrualCalculation": "NONE",
  "interestAccruedAccountingMethod": "NONE"
}

Accounting settings, defines the accounting settings for the product

Properties

Name Type Description Restrictions
accountingMethod string The calculation method used for accounting. none
accountingRules [LoanProductGLAccountingRuleConfiguration] A list of accounting rules for the product. none
interestAccrualCalculation string The accounting interest calculation option selected for the product. none
interestAccruedAccountingMethod string The interval defined for a product when the interest accrues should be maintained. none

Enumerated Values

Property Value
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
interestAccrualCalculation NONE
interestAccrualCalculation AGGREGATED_AMOUNT
interestAccrualCalculation BREAKDOWN_PER_ACCOUNT
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH

AddCreditArrangementAccountInput

{
  "accountId": "string",
  "accountType": "LOAN"
}

Represents the account to add to the credit arrangement.

Properties

Name Type Description Restrictions
accountId (required) string The encoded key of the account. none
accountType (required) string The type of the account. none

Enumerated Values

Property Value
accountType LOAN
accountType DEPOSIT

Address

{
  "city": "string",
  "country": "string",
  "encodedKey": "string",
  "indexInList": 0,
  "latitude": 0,
  "line1": "string",
  "line2": "string",
  "longitude": 0,
  "parentKey": "string",
  "postcode": "string",
  "region": "string"
}

Represents an address.

Properties

Name Type Description Restrictions
city string The city for the address. none
country string The country. none
encodedKey string The address encoded key, which is unique and generated. read-only
indexInList integer(int32) The index of this address in the list of addresses. none
latitude number The GPS latitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -90 to +90. none
line1 string The first line of the address. none
line2 string The second line of the address. none
longitude number The GPS longitude of this address in signed degrees format (DDD.dddd) with 6 decimal positions, ranging from -180 to +180. none
parentKey string The address parent key indicating the object owning this address. For example: client, centre, or branch. read-only
postcode string The post code. none
region string The region for the address. none

AddressDetails

{
  "city": "string",
  "country": "string",
  "line1": "string",
  "line2": "string",
  "postcode": "string",
  "region": "string"
}

Represents an address.

Properties

Name Type Description Restrictions
city string The city for this address. none
country string The country that is part of the address. none
line1 string The first line of the address. none
line2 string The second line of the address. none
postcode string The post code that is part of the address. none
region string The region that is part of the address. none

AdjustTransactionInstallmentDetailsDTO

{
  "amountToAdd": 0,
  "installmentKey": "string"
}

Contains the details for the spread of the adjusted amount over the installments

Properties

Name Type Description Restrictions
amountToAdd number The amount to be added on the fee/penalty due amounts (depending on transaction type), on the corresponding installment none
installmentKey string The encoded key of the installment none

Agent

{
  "financialInstitutionIdentification": {
    "bic": "string"
  }
}

The agent details for a party

Properties

Name Type Description Restrictions
financialInstitutionIdentification FinancialInstitutionIdentification The identification of the financial institution none

Amount

{
  "due": 0,
  "expected": 0,
  "paid": 0
}

Represents a simple installment amount structure.

Properties

Name Type Description Restrictions
due number The due amount. none
expected number The expected amount, which is sum of paid and due amounts. none
paid number The paid amount. none

AmountDecimalConstraints

{
  "defaultValue": 0,
  "encodedKey": "string",
  "maxValue": 0,
  "minValue": 0
}

Decimal constraints, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
encodedKey string The encoded key of the decimal constraint, auto generated, unique read-only
maxValue number The maximum value. none
minValue number The minimum value. none

AmountDecimalInterval

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Decimal constraints, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
maxValue number The maximum value. none
minValue number The minimum value. none

AmountWithReduced

{
  "due": 0,
  "expected": 0,
  "paid": 0,
  "reduced": 0
}

Represents a simple installment amount structure.

Properties

Name Type Description Restrictions
due number The due amount. none
expected number The expected amount, which is sum of paid and due amounts. none
paid number The paid amount. none
reduced number The reduced amount. none

ApiConsumer

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ]
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  }
}

Represents an API consumer.

Properties

Name Type Description Restrictions
access ApiConsumerAccess Represents the API consumer permissions and access rights. none
assignedBranchKey string The encoded key of the branch this API consumer is assigned to. none
creationDate string(date-time) The date when the API consumer was created in UTC. read-only
encodedKey string The encoded key of the entity, generated, globally unique read-only
id string The ID of the API consumer. read-only
lastModifiedDate string(date-time) The last time the API consumer was modified in UTC. read-only
name (required) string The API consumer name. none
role RoleIdentifier Represents the role identifier. none
transactionLimits object The API consumer transaction limits. none
» additionalProperties integer(int32) none none

ApiConsumerAccess

{
  "administratorAccess": true,
  "apiAccess": true,
  "canManageAllBranches": true,
  "canManageEntitiesAssignedToOtherOfficers": true,
  "creditOfficerAccess": true,
  "managedBranches": [
    {
      "branchKey": "string"
    }
  ],
  "permissions": [
    "AUDIT_TRANSACTIONS"
  ]
}

Represents the API consumer permissions and access rights.

Properties

Name Type Description Restrictions
administratorAccess boolean TRUE if the API consumer has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
apiAccess boolean TRUE if the API consumer can authenticate and interact with Mambu APIs, FALSE otherwise. The API consumer may still require additional permissions for specific API requests. read-only
canManageAllBranches boolean TRUE if the API consumer permissions apply to all branches, FALSE if they only apply to specific branches. none
canManageEntitiesAssignedToOtherOfficers boolean TRUE if the API consumer (that has the credit officer access) can access entities (for example, clients or accounts) assigned to other credit officers, FALSE otherwise. none
creditOfficerAccess boolean TRUE if the API consumer has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
managedBranches [UserManagedBranch] The list of branches that can be managed by the API consumer. If the API consumer has the canManageAllBranches property set to TRUE, this list does not apply. none
permissions [string] Permissions for the API consumer. The non-admin API consumers and users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none

ApiKey

{
  "apiKey": "string",
  "expirationTime": 100000000,
  "id": "string"
}

Represents an API key of an API consumer.

Properties

Name Type Description Restrictions
apiKey string A six character cleartext prefix of the API key. The prefix is not guaranteed to be unique. You must base any identification process on the API key ID, not the prefix. none
expirationTime integer(int32) The time to live (TTL) for the API key in seconds. none
id string The API key ID. You must base any identification process on the the API key ID as it is guaranteed to be unique. none

ApiKeyInput

{
  "expirationTime": 100000000
}

Represents an API key expiration time.

Properties

Name Type Description Restrictions
expirationTime integer(int32) The time to live (TTL) for the API key in seconds. none

ApiKeyRotationResult

{
  "apiKey": "string",
  "id": "string",
  "secretKey": "string"
}

Represents the result of an API key rotation.

Properties

Name Type Description Restrictions
apiKey string The new API key created after rotating an existing API key. none
id string The API key ID. You must base any identification process on the the API key ID as it is guaranteed to be unique. none
secretKey string The new secret key created after rotating an existing API key. none

ApplicationStatus

{
  "dataAccessState": "READ_ONLY_STATE"
}

Describes the application status regarding the data access

Properties

Name Type Description Restrictions
dataAccessState string none none

Enumerated Values

Property Value
dataAccessState READ_ONLY_STATE
dataAccessState WRITE_READ_STATE

ApplyInterestInput

{
  "interestApplicationDate": "2016-09-06T13:37:50+03:00",
  "isPaymentHolidaysInterest": true,
  "notes": "string",
  "paymentHolidaysInterestAmount": 0
}

Represents a request for applying the accrued interest

Properties

Name Type Description Restrictions
interestApplicationDate (required) string(date-time) The date up to which interest is to be posted none
isPaymentHolidaysInterest boolean Whether the interest amount to apply should be the regular one or the one accrued during the Payment Holidays. If nothing specified it will be the regular one. none
notes string Additional information for this action none
paymentHolidaysInterestAmount number The amount of the Payment Holidays interest to apply none

ArrearsConfiguration

{
  "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
  "monthlyToleranceDay": 0,
  "nonWorkingDaysMethod": "INCLUDED",
  "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
  "toleranceFloorAmount": 0,
  "tolerancePercentageOfOutstandingPrincipal": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "tolerancePeriod": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  }
}

Represents a grouping of all arrears settings.

Properties

Name Type Description Restrictions
dateCalculationMethod string The arrears date calculation method. none
monthlyToleranceDay integer(int32) Defines the tolerance monthly date none
nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
toleranceCalculationMethod string Defines the tolerance calculation method none
toleranceFloorAmount number The tolerance floor amount. none
tolerancePercentageOfOutstandingPrincipal LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
tolerancePeriod IntegerIntervalConfiguration Decimal integer, like min/max/default. none

Enumerated Values

Property Value
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY

Asset

{
  "amount": 0,
  "assetName": "string",
  "depositAccountKey": "string",
  "encodedKey": "string",
  "guarantorKey": "string",
  "guarantorType": "CLIENT",
  "originalAmount": 0,
  "originalCurrency": {
    "code": "AED",
    "currencyCode": "string"
  }
}

Asset, holds information about a client asset entry.

Properties

Name Type Description Restrictions
amount (required) number The amount used by the client for the guaranty none
assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
encodedKey string The encoded key of the security, auto generated, unique. read-only
guarantorKey string The key of the client/group used as the guarantor. none
guarantorType string The type of the guarantor (client/group) none
originalAmount number The original amount used by the client for a collateral asset none
originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

AssetFullDetails

{
  "_Asset_Default_Assets": {
    "Example_Checkbox_Field_Assets": "TRUE",
    "Example_Free_Text_Field_Assets": "string",
    "Example_Number_Field_Assets": "string",
    "Example_Select_Field_Assets": "Option 1"
  },
  "amount": 0,
  "assetName": "string",
  "depositAccountKey": "string",
  "encodedKey": "string",
  "guarantorKey": "string",
  "guarantorType": "CLIENT",
  "originalAmount": 0,
  "originalCurrency": {
    "code": "AED",
    "currencyCode": "string"
  }
}

Asset, holds information about a client asset entry.

Properties

Name Type Description Restrictions
_Asset_Default_Assets _Asset_Default_Assets Default custom field set used only for grouping asset custom fields none
amount (required) number The amount used by the client for the guaranty none
assetName (required) string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
encodedKey string The encoded key of the security, auto generated, unique. read-only
guarantorKey string The key of the client/group used as the guarantor. none
guarantorType string The type of the guarantor (client/group) none
originalAmount number The original amount used by the client for a collateral asset none
originalCurrency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

AtomicGroup

{
  "atomicGroupId": "string",
  "transactions": [
    {
      "deposit": {
        "amount": 0,
        "bookingDate": "2016-09-06T13:37:50+03:00",
        "externalId": "string",
        "holdExternalReferenceId": "string",
        "notes": "string",
        "paymentDetails": {
          "creditor": {
            "name": "string"
          },
          "creditorAccount": {
            "currency": "string",
            "identification": {
              "iban": "string",
              "other": {
                "identification": "string",
                "scheme": "string"
              }
            }
          },
          "creditorAgent": {
            "financialInstitutionIdentification": {
              "bic": "string"
            }
          },
          "debtor": {
            "name": "string"
          },
          "debtorAccount": {
            "currency": "string",
            "identification": {
              "iban": "string",
              "other": {
                "identification": "string",
                "scheme": "string"
              }
            }
          },
          "debtorAgent": {
            "financialInstitutionIdentification": {
              "bic": "string"
            }
          },
          "paymentIdentification": {
            "endToEndIdentification": "string",
            "instructionIdentification": "string",
            "transactionIdentification": "string"
          },
          "paymentTypeInformation": {
            "serviceLevel": {
              "code": "string"
            }
          },
          "remittanceInformation": {
            "structured": {
              "creditorReferenceInformation": {
                "reference": "string",
                "referenceIssuer": "string",
                "referenceType": "string"
              }
            },
            "unstructured": "string"
          }
        },
        "paymentOrderId": "string",
        "skipMaximumBalanceValidation": true,
        "transactionDetails": {
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        },
        "valueDate": "2016-09-06T13:37:50+03:00"
      },
      "fee": {
        "amount": 0,
        "externalId": "string",
        "notes": "string",
        "predefinedFeeKey": "string"
      },
      "withdrawal": {
        "amount": 0,
        "bookingDate": "2016-09-06T13:37:50+03:00",
        "externalId": "string",
        "holdExternalReferenceId": "string",
        "notes": "string",
        "paymentDetails": {
          "creditor": {
            "name": "string"
          },
          "creditorAccount": {
            "currency": "string",
            "identification": {
              "iban": "string",
              "other": {
                "identification": "string",
                "scheme": "string"
              }
            }
          },
          "creditorAgent": {
            "financialInstitutionIdentification": {
              "bic": "string"
            }
          },
          "debtor": {
            "name": "string"
          },
          "debtorAccount": {
            "currency": "string",
            "identification": {
              "iban": "string",
              "other": {
                "identification": "string",
                "scheme": "string"
              }
            }
          },
          "debtorAgent": {
            "financialInstitutionIdentification": {
              "bic": "string"
            }
          },
          "paymentIdentification": {
            "endToEndIdentification": "string",
            "instructionIdentification": "string",
            "transactionIdentification": "string"
          },
          "paymentTypeInformation": {
            "serviceLevel": {
              "code": "string"
            }
          },
          "remittanceInformation": {
            "structured": {
              "creditorReferenceInformation": {
                "reference": "string",
                "referenceIssuer": "string",
                "referenceType": "string"
              }
            },
            "unstructured": "string"
          }
        },
        "paymentOrderId": "string",
        "transactionDetails": {
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        },
        "valueDate": "2016-09-06T13:37:50+03:00"
      }
    }
  ]
}

Group of transactions to be executed atomically.

Properties

Name Type Description Restrictions
atomicGroupId string The id of the atomic group, customizable, unique none
transactions [DepositsTransaction] Transactions list none

AuthorizationHold

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "customExpirationPeriod": 0,
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "partial": true,
  "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

The authorization hold corresponding to a card token

Properties

Name Type Description Restrictions
accountKey string The key of the account linked with the authorization hold. read-only
advice (required) boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be held as a result of the authorization hold request. none
balances AccountBalances Account balances presented to inquirer such as card processor none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
creationDate string(date-time) The organization time when the authorization hold was created read-only
creditDebitIndicator string Indicates whether the authorization hold amount is credited or debited.If not provided, the default values is DBIT. none
currencyCode string The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency. none
customExpirationPeriod integer(int32) The custom expiration period for the hold which overwrites mcc and default expiration periods none
exchangeRate number The exchange rate for the original currency. none
externalReferenceId (required) string The external reference ID to be used to reference the account hold in subsequent requests. none
originalAmount number The original amount of money to be held as a result of the authorization hold request. none
originalCurrency string The original currency in which the hold was created. none
partial boolean Indicates whether the authorization is partial or not none
referenceDateForExpiration string(date-time) The date to consider as start date when calculating the number of days passed until expiration read-only
source string Indicates the source of the authorization hold, the default values is CARD. read-only
status string The authorization hold status. read-only
userTransactionTime string The formatted time at which the user made this authorization hold. none

Enumerated Values

Property Value
creditDebitIndicator DBIT
creditDebitIndicator CRDT
source CARD
source ACCOUNT
status PENDING
status REVERSED
status SETTLED
status EXPIRED

AuthorizationHoldAmountAdjustmentRequest

{
  "advice": true,
  "amount": 0,
  "currencyCode": "string",
  "encodedKey": "string",
  "externalReferenceId": "string"
}

A request to decrease/increase the amount of an authorization hold.

Properties

Name Type Description Restrictions
advice boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be subtracted/added to the authorization hold amount. For the decrease: if the amount is greater or equal to the authorization hold amount, then the authorization hold is reversed. none
currencyCode string The ISO currency code in which the hold was created. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalReferenceId string The external reference ID of the decrease/increase request (not of the authorization hold). none

AuthorizationHoldConfiguration

{
  "daysToExpiration": 0,
  "description": "string",
  "mcc": 0
}

Represents the authorization hold

Properties

Name Type Description Restrictions
daysToExpiration (required) integer(int32) The number of days until the expiration for the authorization hold. none
description string The description of the authorization hold. none
mcc (required) integer(int32) The merchant category code (MCC) of the authorization hold. none

AuthorizationHoldsConfiguration

{
  "authorizationHolds": [
    {
      "daysToExpiration": 0,
      "description": "string",
      "mcc": 0
    }
  ],
  "defaultAuthorizationHold": {
    "daysToExpiration": 0,
    "description": "string",
    "mcc": 0
  }
}

Represents the authorization holds

Properties

Name Type Description Restrictions
authorizationHolds [AuthorizationHoldConfiguration] The authorization holds none
defaultAuthorizationHold AuthorizationHoldConfiguration Represents the authorization hold none

AvailableOption

{
  "score": 0,
  "selectionId": "string",
  "value": "string"
}

Represents one option of a selection custom field definition.

Properties

Name Type Description Restrictions
score number The score of the option. none
selectionId (required) string The system-generated ID of the option. none
value (required) string The name of the option. none

BackgroundProcess

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "endDate": "2016-09-06T13:37:50+03:00",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "CANCEL",
  "type": "CRON_JOBS"
}

Represents details of the Background Process

Properties

Name Type Description Restrictions
creationDate string(date-time) When this process was created. Stored as Organization Time read-only
encodedKey string The encoded key of the entity, generated, globally unique read-only
endDate string(date-time) When this process was ended. Stored as Organization Time read-only
startDate string(date-time) When this process was started. Stored as Organization Time read-only
state string The current status of this process none
type string The type of the background process none

Enumerated Values

Property Value
state QUEUED
state IN_PROGRESS
state COMPLETE
state NOT_FOUND
state CANCEL
state TO_BE_CANCELED
state TIMED_OUT
state ERROR
state TRANSIENT_ERROR
state OVERRIDDEN
state RECOVERABLE_ERROR
type CRON_JOBS
type MANUAL_CRON_JOBS_TRIGGER

Balances

{
  "feesBalance": 0,
  "feesDue": 0,
  "feesPaid": 0,
  "holdBalance": 0,
  "interestBalance": 0,
  "interestDue": 0,
  "interestFromArrearsBalance": 0,
  "interestFromArrearsDue": 0,
  "interestFromArrearsPaid": 0,
  "interestPaid": 0,
  "penaltyBalance": 0,
  "penaltyDue": 0,
  "penaltyPaid": 0,
  "principalBalance": 0,
  "principalDue": 0,
  "principalPaid": 0,
  "redrawBalance": 0
}

The loan account balance details.

Properties

Name Type Description Restrictions
feesBalance number The fees balance. Represents the total fees expected to be paid on this account at a given moment. read-only
feesDue number The fees due. Representing the total fees due for the account. read-only
feesPaid number The fees paid. Represents the total fees paid for the account. read-only
holdBalance number The sum of all the authorization hold amounts on this account. read-only
interestBalance number Represents the total interest owed by the client (total interest applied for account minus interest paid). read-only
interestDue number The interest due. Indicates how much interest it's due for the account at this moment. read-only
interestFromArrearsBalance number The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid). read-only
interestFromArrearsDue number The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment. read-only
interestFromArrearsPaid number The interest from arrears paid, indicates total interest from arrears paid into the account. read-only
interestPaid number The interest paid, indicates total interest paid into the account. read-only
penaltyBalance number The penalty balance. Represents the total penalty expected to be paid on this account at a given moment. read-only
penaltyDue number The penalty due. Represents the total penalty amount due for the account. read-only
penaltyPaid number The Penalty paid. Represents the total penalty amount paid for the account. read-only
principalBalance number The total principal owned by the client, from now on (principal disbursed - principal paid). read-only
principalDue number The principal due, indicates how much principal it's due at this moment. read-only
principalPaid number The principal paid, holds the value of the total paid into the account. read-only
redrawBalance number The total redraw amount owned by the client, from now on. none

BaseApiConsumerAccess

{
  "administratorAccess": true,
  "apiAccess": true,
  "creditOfficerAccess": true,
  "permissions": [
    "AUDIT_TRANSACTIONS"
  ]
}

Represents the API consumer permissions and access rights.

Properties

Name Type Description Restrictions
administratorAccess boolean TRUE if the API consumer has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
apiAccess boolean TRUE if the API consumer can authenticate and interact with Mambu APIs, FALSE otherwise. The API consumer may still require additional permissions for specific API requests. read-only
creditOfficerAccess boolean TRUE if the API consumer has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
permissions [string] Permissions for the API consumer. The non-admin API consumers and users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none

BaseUserAccess

{
  "administratorAccess": true,
  "apiAccess": true,
  "creditOfficerAccess": true,
  "deliveryAccess": true,
  "mambuAccess": true,
  "permissions": [
    "AUDIT_TRANSACTIONS"
  ],
  "supportAccess": true,
  "tellerAccess": true
}

Represents the user permissions and access rights.

Properties

Name Type Description Restrictions
administratorAccess boolean TRUE if the user has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
apiAccess boolean TRUE if the user can authenticate and interact with Mambu APIs, FALSE otherwise. The user may still require additional permissions for specific API requests. none
creditOfficerAccess boolean TRUE if the user has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
deliveryAccess boolean TRUE if the user is part of the Mambu delivery team, FALSE otherwise. read-only
mambuAccess boolean TRUEif the user can log in to the Mambu UI using their login credentials,FALSE` otherwise. none
permissions [string] Permissions for the user. The non-admin users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none
supportAccess boolean TRUE if the user can provide Mambu technical support, FALSE otherwise. read-only
tellerAccess boolean TRUE if the user has the teller user type, FALSE otherwise. Tellers have access to the teller module and specific tellering permissions, which allow them to take actions such as opening or closing tills, posting transactions on a till, and adding and removing cash from a till. none

BillingCycleDays

{
  "days": [
    0
  ]
}

Defines the billing cycles settings for a loan account

Properties

Name Type Description Restrictions
days [integer] The billing cycle start days in case it is enabled none

BillingCyclesProductSettings

{
  "enabled": true,
  "startDays": [
    0
  ]
}

Defines the billing cycles settings for revolving credit products

Properties

Name Type Description Restrictions
enabled boolean The billing cycle status if it is enabled or disabled none
startDays [integer] The billing cycle start days in case it is enabled none

BlockFund

{
  "accountKey": "string",
  "amount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "externalReferenceId": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "seizedAmount": 0,
  "state": "PENDING"
}

Represents the block fund amount that can be later seized on the account

Properties

Name Type Description Restrictions
accountKey string The key of the account which block fund belongs to read-only
amount (required) number The amount to be blocked none
creationDate string(date-time) The date at which the block fund was created read-only
externalReferenceId (required) string The external reference ID to be used to reference the block fund in subsequent requests none
lastModifiedDate string(date-time) The date at which the block fund was created read-only
notes string Notes about this block fund none
seizedAmount number The amount that has been seized read-only
state string The state of the block fund read-only

Enumerated Values

Property Value
state PENDING
state SEIZED
state REMOVED
state PARTIALLY_SEIZED

Branch

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "branchHolidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "phoneNumber": "string",
  "state": "ACTIVE"
}

Represents a branch.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
_Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
addresses [Address] The list of branch addresses. none
branchHolidays [Holiday] The list of branch holidays. none
creationDate string(date-time) The creation date of the branch. none
emailAddress string The branch email address. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
id (required) string The branch ID, which must be unique. none
lastModifiedDate string(date-time) The last date when the branch was modified. none
name (required) string The branch name. none
notes string The notes or description attached to this object. none
phoneNumber string The branch phone number. none
state string The branch state. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE

BranchConfiguration

{
  "address": {
    "city": "string",
    "country": "string",
    "line1": "string",
    "line2": "string",
    "postcode": "string",
    "region": "string"
  },
  "customFieldValueSets": [
    {
      "groupedCustomFieldValues": [
        {
          "customFieldValues": [
            {
              "customFieldId": "string",
              "value": "string"
            }
          ],
          "index": 0
        }
      ],
      "id": "string",
      "standardCustomFieldValues": [
        {
          "customFieldId": "string",
          "value": "string"
        }
      ]
    }
  ],
  "emailAddress": "string",
  "holidays": [
    {
      "dayOfMonth": 0,
      "id": 0,
      "isAnnuallyRecurring": true,
      "monthOfYear": 0,
      "name": "string",
      "year": 0
    }
  ],
  "id": "string",
  "name": "string",
  "notes": "string",
  "phoneNumber": "string",
  "state": "ACTIVE"
}

Model representation of the configuration for a branch.

Properties

Name Type Description Restrictions
address AddressDetails Represents an address. none
customFieldValueSets [CustomFieldValueSetConfiguration] Custom fields value sets of the branch. Ordered by the set id. none
emailAddress string Branch email address. none
holidays [HolidayDetails] Holidays of the branch. The yaml file dictates the ordering. none
id (required) string User-defined ID, globally unique. Branches are ordered by id in the yaml file. none
name (required) string Name of the branch. none
notes string Notes for the branch. none
phoneNumber string Branch phone number, as a string. none
state (required) string Indicates the current state of the branch. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE

BranchSettings

{
  "availableProductBranches": [
    "string"
  ],
  "forAllBranches": true
}

Holds information about branch availability for the product.

Properties

Name Type Description Restrictions
availableProductBranches [string] Holds the encoded keys of the branches this product should be available for. none
forAllBranches boolean Indicates if this product should be available for all branches none

BranchesConfiguration

{
  "branches": [
    {
      "address": {
        "city": "string",
        "country": "string",
        "line1": "string",
        "line2": "string",
        "postcode": "string",
        "region": "string"
      },
      "customFieldValueSets": [
        {
          "groupedCustomFieldValues": [
            {
              "customFieldValues": [
                {
                  "customFieldId": "string",
                  "value": "string"
                }
              ],
              "index": 0
            }
          ],
          "id": "string",
          "standardCustomFieldValues": [
            {
              "customFieldId": "string",
              "value": "string"
            }
          ]
        }
      ],
      "emailAddress": "string",
      "holidays": [
        {
          "dayOfMonth": 0,
          "id": 0,
          "isAnnuallyRecurring": true,
          "monthOfYear": 0,
          "name": "string",
          "year": 0
        }
      ],
      "id": "string",
      "name": "string",
      "notes": "string",
      "phoneNumber": "string",
      "state": "ACTIVE"
    }
  ]
}

Model representation of the branches configuration

Properties

Name Type Description Restrictions
branches (required) [BranchConfiguration] List of all branches ordered by id. none

BulkDepositTransactionsInput

{
  "transactions": [
    [
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Number_Field": "123987",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "GHI-789",
        "amount": 200,
        "externalId": "46290",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-1234-abc",
        "transactionDetails": {
          "transactionChannelId": "cash",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      },
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "FALSE",
          "Example_Number_Field": "567432",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "DEF-456",
        "amount": 302,
        "externalId": "1234",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-5678-def",
        "transactionDetails": {
          "transactionChannelId": "cheque",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      },
      {
        "_EXAMPLE_CUSTOM_FIELDS": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Number_Field": "192837",
          "Example_Text_Field": "Up to 255 characters of Text"
        },
        "accountId": "ABC-123",
        "amount": 546.5,
        "externalId": "5678",
        "notes": "some notes about this transaction",
        "paymentOrderId": "PAY-9876-ghi",
        "transactionDetails": {
          "transactionChannelId": "bank",
          "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
        }
      }
    ]
  ]
}

Represents the request payload for creating a bulk deposit transactions.

Properties

Name Type Description Restrictions
transactions [DepositTransactionBulkableInputDTO] The list of transactions none

BulkInterestAccountSettingsAvailabilityFilter

{
  "ids": [
    "string"
  ],
  "productId": "string"
}

Represents the filter to be used for selecting the accounts to which new interest availability settings will be pushed. One of the 2 fields: productId or ids should be supplied

Properties

Name Type Description Restrictions
ids [string] Ids of accounts that should be processed none
productId string Product id to be used for selecting all accounts that should be processed none

BulkInterestAccountSettingsAvailabilityInput

{
  "accountFilter": {
    "ids": [
      "string"
    ],
    "productId": "string"
  },
  "interestAvailability": {
    "encodedKey": "string",
    "interestRateSettings": {
      "interestRate": 0,
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    },
    "startDate": "1987-04-26",
    "type": "INTEREST"
  }
}

Represents the bulk payload for storing interest availabilities to a group of accounts

Properties

Name Type Description Restrictions
accountFilter (required) BulkInterestAccountSettingsAvailabilityFilter Represents the filter to be used for selecting the accounts to which new interest availability settings will be pushed. One of the 2 fields: productId or ids should be supplied none
interestAvailability (required) InterestAccountSettingsAvailability Interest Availability of a Deposit Account none

BulkProcessStatus

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "string",
      "errorSource": "string",
      "externalId": "string",
      "indexInRequest": 0
    }
  ],
  "processedItems": [
    {
      "externalId": "string",
      "id": "string",
      "indexInRequest": 0
    }
  ],
  "status": "QUEUED"
}

Holds information about the status of a bulk process

Properties

Name Type Description Restrictions
errors [BulkProcessingError] List of errors none
processedItems [BulkProcessingSuccess] List of successful processed items none
status string Bulk process status none

Enumerated Values

Property Value
status QUEUED
status IN_PROGRESS
status COMPLETE
status NOT_FOUND
status CANCEL
status TO_BE_CANCELED
status TIMED_OUT
status ERROR
status TRANSIENT_ERROR
status OVERRIDDEN
status RECOVERABLE_ERROR

BulkProcessingError

{
  "errorCode": 0,
  "errorReason": "string",
  "errorSource": "string",
  "externalId": "string",
  "indexInRequest": 0
}

Holds information about the error encountered processing an item in bulk

Properties

Name Type Description Restrictions
errorCode integer(int32) Numeric value associated to the error reason none
errorReason string Error reason none
errorSource string Details about the error none
externalId string Optional field populated only when request payload contains an externalId none
indexInRequest integer(int32) The index of the entity/item from bulk request that failed on processing none

BulkProcessingSuccess

{
  "externalId": "string",
  "id": "string",
  "indexInRequest": 0
}

Holds details about successful processed item

Properties

Name Type Description Restrictions
externalId string Optional field populated only when request payload contains an externalId none
id string Unique identifier for the newly created resource none
indexInRequest integer(int32) The index of the entity/item from bulk request that failed on processing none

Card

{
  "referenceToken": "string"
}

Returns a card that can be associated to a deposit or loan account. Cards consist only of card reference tokens and the card details are not stored in Mambu.

Properties

Name Type Description Restrictions
referenceToken (required) string The card's reference token. none

CardAcceptor

{
  "city": "string",
  "country": "string",
  "mcc": 0,
  "name": "string",
  "state": "string",
  "street": "string",
  "zip": "string"
}

The details of the card acceptor (merchant) in a transaction hold.

Properties

Name Type Description Restrictions
city string The city in which the card acceptor has the business. none
country string The country in which the card acceptor has the business. none
mcc integer(int32) The Merchant Category Code of the card acceptor. none
name string The name of the card acceptor. none
state string The state in which the card acceptor has the business. none
street string The street in which the card acceptor has the business. none
zip string The ZIP code of the location in which the card acceptor has the business. none

CardTransaction

{
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalAuthorizationReferenceId": "string",
  "externalReferenceId": "string",
  "userTransactionTime": "string"
}

A card transaction entry which will have a corresponding a financial transaction performed.

Properties

Name Type Description Restrictions
advice (required) boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be withdrawn in the financial transaction. none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
userTransactionTime string The formatted time at which the user made this card transaction. none

CardTransactionInput

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "advice": true,
  "amount": 0,
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalAuthorizationReferenceId": "string",
  "externalReferenceId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "increaseAmountIfNeeded": true,
  "partial": true,
  "transactionChannelId": "string",
  "userTransactionTime": "string"
}

A card transaction entry which will have a corresponding a financial transaction performed.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
advice (required) boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be withdrawn in the financial transaction. none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
creditDebitIndicator string If present, indicates that the card transaction is a refund, and whether is credited or debited none
currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
firstRepaymentDate string(date-time) The date of the first repayment for the loan account (as Organization Time) none
increaseAmountIfNeeded boolean Increase available amount if needed none
partial boolean Whether the given request should be a partial clearing or not. none
transactionChannelId (required) string The ID of the channel through which the payment is done. none
userTransactionTime string The formatted time at which the user made this card transaction. none

Enumerated Values

Property Value
creditDebitIndicator DBIT
creditDebitIndicator CRDT

CardTransactionOutput

{
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalAuthorizationReferenceId": "string",
  "externalReferenceId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "increaseAmountIfNeeded": true,
  "linkedTransaction": {
    "linkedTransactionKey": "string",
    "linkedTransactionType": "LOAN"
  },
  "partial": true,
  "transactionChannelId": "string",
  "userTransactionTime": "string"
}

A card transaction output after a financial transaction was performed.

Properties

Name Type Description Restrictions
advice (required) boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be withdrawn in the financial transaction. none
balances AccountBalances Account balances presented to inquirer such as card processor none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
creditDebitIndicator string If present, indicates that the card transaction is a refund, and whether is credited or debited none
currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalAuthorizationReferenceId string The external authorization hold reference ID, which relates this card transaction to a previous authorization hold. none
externalReferenceId (required) string The external reference ID to be used to reference the card transaction in subsequent requests. none
firstRepaymentDate string(date-time) The date of the first repayment for the loan account (as Organization Time) none
increaseAmountIfNeeded boolean Increase available amount if needed none
linkedTransaction LinkedTransaction The details of the linked financial transaction triggered by the card transaction. none
partial boolean Whether the given request should be a partial clearing or not. none
transactionChannelId (required) string The ID of the channel through which the payment is done. none
userTransactionTime string The formatted time at which the user made this card transaction. none

Enumerated Values

Property Value
creditDebitIndicator DBIT
creditDebitIndicator CRDT

CardTransactionReversal

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "currencyCode": "string",
  "encodedKey": "string",
  "externalReferenceId": "string",
  "id": 0,
  "transactionChannelId": "string"
}

A full or partial reversal of a card transaction.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount (required) number The amount of money to be credited in the client's account from the original card transaction. none
currencyCode string The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalReferenceId (required) string The external reference ID to be used to reference the card reversal transaction in subsequent requests. none
id integer(int64) The id of the Deposit Transaction read-only
transactionChannelId string The ID of the channel through which the payment is done. If the value is not present, the value from the source card transaction is copied. none

Centre

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "meetingDay": "string",
  "name": "string",
  "notes": "string",
  "state": "ACTIVE"
}

Represents a centre. A centre is a common meeting area that credit officers and the individual and group clients go to. Each centre is assigned to a branch (a branch can have multiple centres) and might have a specific meeting day and location.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
_Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
addresses [Address] The addresses of this centre. none
assignedBranchKey string The encoded key of the branch this centre is assigned to. none
creationDate string(date-time) The date the centre was created. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
id string The ID of the centre, which must be unique, and can be generated and customized. none
lastModifiedDate string(date-time) The last time the centre was modified. none
meetingDay string The day of the week when repayments are collected. This influences the repayments schedule, upon update all repayments are updated to this day of the week. none
name string The name of the centre. none
notes string The notes or description attached to this object. none
state string The state of the centre. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE

CentreConfiguration

{
  "address": {
    "city": "string",
    "country": "string",
    "line1": "string",
    "line2": "string",
    "postcode": "string",
    "region": "string"
  },
  "assignedBranchId": "string",
  "customFieldValueSets": [
    {
      "groupedCustomFieldValues": [
        {
          "customFieldValues": [
            {
              "customFieldId": "string",
              "value": "string"
            }
          ],
          "index": 0
        }
      ],
      "id": "string",
      "standardCustomFieldValues": [
        {
          "customFieldId": "string",
          "value": "string"
        }
      ]
    }
  ],
  "id": "string",
  "meetingDay": "MONDAY",
  "name": "string",
  "notes": "string",
  "state": "ACTIVE"
}

Model representation of the configuration for a centre.

Properties

Name Type Description Restrictions
address AddressDetails Represents an address. none
assignedBranchId string The ID of the branch this centre was assigned to. none
customFieldValueSets [CustomFieldValueSetConfiguration] Custom fields value sets of the centre. none
id (required) string User-defined ID, globally unique. none
meetingDay string The meeting day for the centre. none
name (required) string Name of the centre. none
notes string Notes of the centre. none
state (required) string Indicates the current state of the centre. none

Enumerated Values

Property Value
meetingDay MONDAY
meetingDay TUESDAY
meetingDay WEDNESDAY
meetingDay THURSDAY
meetingDay FRIDAY
meetingDay SATURDAY
meetingDay SUNDAY
state ACTIVE
state INACTIVE

CentresConfiguration

{
  "centres": [
    {
      "address": {
        "city": "string",
        "country": "string",
        "line1": "string",
        "line2": "string",
        "postcode": "string",
        "region": "string"
      },
      "assignedBranchId": "string",
      "customFieldValueSets": [
        {
          "groupedCustomFieldValues": [
            {
              "customFieldValues": [
                {
                  "customFieldId": "string",
                  "value": "string"
                }
              ],
              "index": 0
            }
          ],
          "id": "string",
          "standardCustomFieldValues": [
            {
              "customFieldId": "string",
              "value": "string"
            }
          ]
        }
      ],
      "id": "string",
      "meetingDay": "MONDAY",
      "name": "string",
      "notes": "string",
      "state": "ACTIVE"
    }
  ]
}

Model representation of the centres configuration.

Properties

Name Type Description Restrictions
centres (required) [CentreConfiguration] List of all centres none

ChangeArrearsSettingsInput

{
  "arrearsTolerancePeriod": 0,
  "entryDate": "2016-09-06T13:37:50+03:00",
  "notes": "string"
}

Represents the request payload for performing an arrears settings change action

Properties

Name Type Description Restrictions
arrearsTolerancePeriod (required) integer(int32) The new arrears tolerance period to be available on the account none
entryDate (required) string(date-time) The date when to change the arrears settings none
notes string The notes for the change arrears settings action performed on the loan account none

ChangeDueDatesSettingsInput

{
  "entryDate": "2016-09-06T13:37:50+03:00",
  "fixedDaysOfMonth": [
    0
  ],
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for performing change due dates settings action

Properties

Name Type Description Restrictions
entryDate string(date-time) The date when to change the due dates settings - deprecated, use valueDate instead none
fixedDaysOfMonth (required) [integer] The new fixed days of month to be used on the account none
notes string The notes for the change due dates settings action performed on the loan account none
valueDate string(date-time) The date when to change the due dates settings none

ChangeInterestRateAction

{
  "interestRate": 0,
  "notes": "string",
  "valueDate": "1987-04-26"
}

Change deposit account interest rate

Properties

Name Type Description Restrictions
interestRate (required) number The new interest rate to set on the account. none
notes string The notes or description attached to this object. none
valueDate (required) string(date) The date when the interest rate is changed. none

ChangeInterestRateLoanAccountInput

{
  "interestRate": 0,
  "interestSpread": 0,
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for performing an interest rate change action

Properties

Name Type Description Restrictions
interestRate number The new interest rate to be available on the account none
interestSpread number The new interest spread to be available on the account none
notes string The notes for the change interest rate action performed on the loan account none
valueDate (required) string(date-time) The date when to change the interest rate (as Organization Time) none

ChangePeriodicPaymentLoanAccountInput

{
  "notes": "string",
  "periodicPayment": 0,
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for performing a periodic payment change action

Properties

Name Type Description Restrictions
notes string The notes for the change periodic payment action performed on the loan account none
periodicPayment (required) number The new periodic payment to be available on the account none
valueDate (required) string(date-time) The date when to change the periodic payment (as Organization Time) none

ChangeRepaymentValueLoanAccountInput

{
  "amount": 0,
  "notes": "string",
  "percentage": 0,
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for performing a repayment value change action

Properties

Name Type Description Restrictions
amount number Fixed amount for being used for the repayments principal due none
notes string Notes for the repayment value change action performed on the loan account none
percentage number Percentage of principal amount used for the repayments principal due none
valueDate (required) string(date-time) Date when to change the repayment value (as Organization Time) none

ChangeWithholdingTaxAction

{
  "withholdingTaxSourceKey": "string"
}

Change deposit account withholding tax rate

Properties

Name Type Description Restrictions
withholdingTaxSourceKey (required) string The ID or encoded key of the new withholding tax to use for the account. none

Client

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "_Example_Grouped_CF_Set": [
    {
      "Example_Checkbox_Field": "TRUE",
      "Example_Free_Text_Field": "A free text field up to 255 characters in length",
      "Example_Number_Field": "46290",
      "Example_Select_Field": [
        {
          "example_option_id": "123",
          "example_option_value": "option 1"
        },
        {
          "example_option_id": "456",
          "example_option_value": "option 7"
        }
      ],
      "_index": "0"
    }
  ],
  "activationDate": "2016-09-06T13:37:50+03:00",
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "birthDate": "1987-04-26",
  "clientRoleKey": "string",
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "firstName": "string",
  "gender": "MALE",
  "groupKeys": [
    "string"
  ],
  "groupLoanCycle": 0,
  "homePhone": "string",
  "id": "string",
  "idDocuments": [
    {
      "attachments": [
        {
          "creationDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "fileName": "string",
          "fileSize": 0,
          "id": 0,
          "lastModifiedDate": "2016-09-06T13:37:50+03:00",
          "location": "string",
          "name": "string",
          "notes": "string",
          "ownerKey": "string",
          "ownerType": "CLIENT",
          "type": "string"
        }
      ],
      "clientKey": "string",
      "documentId": "string",
      "documentType": "string",
      "encodedKey": "string",
      "identificationDocumentTemplateKey": "string",
      "indexInList": 0,
      "issuingAuthority": "string",
      "validUntil": "1987-04-26"
    }
  ],
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "loanCycle": 0,
  "middleName": "string",
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "mobilePhone2": "string",
  "notes": "string",
  "portalSettings": {
    "encodedKey": "string",
    "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
    "portalState": "ENABLED"
  },
  "preferredLanguage": "ENGLISH",
  "profilePictureKey": "string",
  "profileSignatureKey": "string",
  "state": "PENDING_APPROVAL"
}

Represents a client.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
_Example_Grouped_CF_Set [_Example_Grouped_CF_Set] [An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.] none
activationDate string(date-time) The date when a client was set as active for the first time. read-only
addresses [Address] The addresses associated with this client. none
approvedDate string(date-time) The date when a client was approved. read-only
assignedBranchKey string The encoded key of the branch a client is assigned to. none
assignedCentreKey string The encoded key of the centre a client is assigned to. none
assignedUserKey string The encoded key of the user a client is assigned to. none
birthDate string(date) The client's date of birth. none
clientRoleKey string A role which describes the intended use of a client in the system. none
closedDate string(date-time) The date when the client state was changed to closed. read-only
creationDate string(date-time) The date a client was created. read-only
emailAddress string The client's email address. none
encodedKey string The encoded key of the client, which is unique and generated. read-only
firstName (required) string The first name, personal name, given name, or forename of the client. none
gender string The client's gender, the options are male or female. none
groupKeys [string] The groups to which this client belongs. none
groupLoanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client's group; when the closing operation is reverted, this is reduced. read-only
homePhone string The client's home phone number. none
id string The ID of the client, which can be generated and customized - but must be unique. none
idDocuments [IdentificationDocument] The identification documents for this client. none
lastModifiedDate string(date-time) The last date a client was modified. read-only
lastName (required) string The last name, surname, or family name of the client. none
loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for a client; when the closing operation is reverted, this is reduced. read-only
middleName string The middle name of the client. none
migrationEventKey string The migration event encoded key associated with a client. read-only
mobilePhone string The client's mobile phone number. none
mobilePhone2 string The client's second mobile phone number. none
notes string The additional notes about a client. none
portalSettings PortalSettings Represents portal settings for an individual client. none
preferredLanguage string The client's preferred language. This will determine the language for the reports, schedules, and account statements you generate for the client. none
profilePictureKey string The encoded key of a client's profile picture. read-only
profileSignatureKey string The encoded key of the client's profile signature. read-only
state string The state of a client. It shows where the client is in the client life cycle. none

Enumerated Values

Property Value
gender MALE
gender FEMALE
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE
state PENDING_APPROVAL
state INACTIVE
state ACTIVE
state EXITED
state BLACKLISTED
state REJECTED

ClientFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The unit that composes the list used for Clients searching

Properties

Name Type Description Restrictions
field (required) string The fields to perform the search. They can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId]. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field creditOfficerKey
field clientRoleKey
field branchKey
field centreKey
field groupKey
field fullName
field firstName
field middleName
field lastName
field creationDate
field lastModifiedDate
field id
field depositsBalance
field loansBalance
field pendingLoanAmount
field approvedLoanAmount
field totalBalance
field totalDue
field homePhoneNumber
field mobilePhoneNumber
field mobilePhoneNumber2
field emailAddress
field clientAddress
field birthdate
field gender
field loanCycle
field groupLoanCycle
field clientState
field portalState
field preferredLanguage
field groupId
field _Example_Custom_Fields.Example_Free_Text_Field
field _Example_Custom_Fields.Example_Number_Field
field _Example_Custom_Fields.Example_Checkbox_Field
field _Example_Custom_Fields.Example_Select_Field
field _Example_Custom_Fields.Example_Datetime_Field
field _Example_Custom_Fields.Example_Date_Field
field _Example_Custom_Fields.Example_ClientLink_Field
field _Example_Custom_Fields.Example_GroupLink_Field
field _Example_Custom_Fields.Example_UserLink_Field
field _Example_Grouped_CF_Set.grp_set_1
field _Example_Grouped_CF_Set.grp_set_clt_2
field _Example_Grouped_CF_Set.grp_set_fld_3
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

ClientRole

{
  "canGuarantee": true,
  "canOpenAccounts": true,
  "clientType": "CLIENT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "encodedKey": "string",
  "id": "string",
  "idPattern": "string",
  "name": "string",
  "requireID": true,
  "useDefaultAddress": true
}

Represents a client or group role.

Properties

Name Type Description Restrictions
canGuarantee boolean TRUE if clients with this client role can be used as guarantors, FALSE otherwise. none
canOpenAccounts boolean TRUE if new accounts for this client type can be created, FALSE otherwise. none
clientType string The type of the client for which this role was created. none
creationDate string(date-time) The creation date of the client role. read-only
description string The text description for this client role. none
encodedKey string The encoded key of the client, which is unique and generated. read-only
id string The ID of the client role, which can be generated and customized - but must be unique. none
idPattern string The pattern used in generating the client ID. none
name string The name of the client role. none
requireID boolean TRUE if identification documents must be provided for the client to be created, FALSE otherwise. Does not apply for groups. none
useDefaultAddress boolean TRUE if the Mambu default address section is available, FALSE otherwise. none

Enumerated Values

Property Value
clientType CLIENT
clientType GROUP

ClientRoleConfiguration

{
  "canGuarantee": true,
  "canOpenAccounts": true,
  "description": "string",
  "id": "string",
  "idPattern": "string",
  "name": "string",
  "requireIdentificationDocuments": true,
  "useDefaultAddress": true
}

Represents the client role configuration.

Properties

Name Type Description Restrictions
canGuarantee boolean TRUE if clients with this client role can be used as guarantors, FALSE otherwise. none
canOpenAccounts boolean TRUE if new accounts for this client type can be created, FALSE otherwise. none
description string The text description for this client role. none
id (required) string The ID of the client role, can be generated and customized, unique. none
idPattern string The pattern used in generating the client ID. none
name (required) string The name of the client role. none
requireIdentificationDocuments boolean TRUE if identification documents must be provided for the client to be created, FALSE otherwise. Does not apply for groups. none
useDefaultAddress boolean TRUE if the Mambu default address section is available, FALSE otherwise. none

ClientRolesConfiguration

{
  "defaultRole": {
    "canGuarantee": true,
    "canOpenAccounts": true,
    "description": "string",
    "id": "string",
    "idPattern": "string",
    "name": "string",
    "requireIdentificationDocuments": true,
    "useDefaultAddress": true
  },
  "roles": [
    {
      "canGuarantee": true,
      "canOpenAccounts": true,
      "description": "string",
      "id": "string",
      "idPattern": "string",
      "name": "string",
      "requireIdentificationDocuments": true,
      "useDefaultAddress": true
    }
  ],
  "type": "CLIENT"
}

Model representation of the clients roles configuration.

Properties

Name Type Description Restrictions
defaultRole (required) ClientRoleConfiguration Represents the client role configuration. none
roles [ClientRoleConfiguration] List of all client roles, order by their appearance in the yaml file. none
type (required) string The type of the client for which this role was created. none

Enumerated Values

Property Value
type CLIENT
type GROUP

ClientSearchCriteria

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Wrapper that holds a list of filtering criteria and a sorting criteria for clients

Properties

Name Type Description Restrictions
filterCriteria (required) [ClientFilterCriteria] The list of filtering criteria none
sortingCriteria ClientSortingCriteria The sorting criteria used for Clients none

ClientSortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

The sorting criteria used for Clients

Properties

Name Type Description Restrictions
field (required) string The field to sort by. It can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field id
field fullName
field firstName
field middleName
field lastName
field creationDate
field lastModifiedDate
field depositsBalance
field loansBalance
field pendingLoanAmount
field approvedLoanAmount
field totalBalance
field totalDue
field homePhoneNumber
field mobilePhoneNumber
field mobilePhoneNumber2
field emailAddress
field birthdate
field loanCycle
field groupLoanCycle
field portalState
order ASC
order DESC

ClientsRolesConfiguration

{
  "rolesConfiguration": [
    {
      "defaultRole": {
        "canGuarantee": true,
        "canOpenAccounts": true,
        "description": "string",
        "id": "string",
        "idPattern": "string",
        "name": "string",
        "requireIdentificationDocuments": true,
        "useDefaultAddress": true
      },
      "roles": [
        {
          "canGuarantee": true,
          "canOpenAccounts": true,
          "description": "string",
          "id": "string",
          "idPattern": "string",
          "name": "string",
          "requireIdentificationDocuments": true,
          "useDefaultAddress": true
        }
      ],
      "type": "CLIENT"
    }
  ]
}

Model representation of the clients roles configuration.

Properties

Name Type Description Restrictions
rolesConfiguration (required) [ClientRolesConfiguration] List of all roles for available account holder types. Ordered by the account holder parameter if provided, ascending otherwise none

CollateralAssetFilter

{
  "branchKeys": [
    "string"
  ],
  "currencies": [
    "string"
  ],
  "productKeys": [
    "string"
  ]
}

Represents the input for the collateral assets reevaluation background task.

Properties

Name Type Description Restrictions
branchKeys [string] Assets of the loan accounts that will be filtered by the branch keys in the background process none
currencies [string] Assets of the loan accounts that will be filtered by the currency codes in the background process none
productKeys [string] Assets of the loan accounts that will be filtered by the product keys in the background process none

CollateralAssetsReevaluationResponse

{
  "bulkProcessKey": "string",
  "status": "QUEUED"
}

Holds the information about collateral assets reevaluation status.

Properties

Name Type Description Restrictions
bulkProcessKey string The encoded key of the collateral assets reevaluation task none
status string The collateral assets reevaluation status none

Enumerated Values

Property Value
status QUEUED
status IN_PROGRESS
status COMPLETE
status NOT_FOUND
status CANCEL
status TO_BE_CANCELED
status TIMED_OUT
status ERROR
status TRANSIENT_ERROR
status OVERRIDDEN
status RECOVERABLE_ERROR

Comment

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "text": "string",
  "userKey": "string"
}

Represents information about the comment data transfer object.

Properties

Name Type Description Restrictions
creationDate string(date-time) The creation date of the comment. read-only
encodedKey string The comments's encoded key, which is auto-generated and unique. read-only
lastModifiedDate string(date-time) The last date when this comment was modified. read-only
ownerKey string The encoded key of the entity that owns this comment. none
ownerType string The type of the entity that owns this comment. none
text string The message in the comment. none
userKey string The user's key. read-only

Enumerated Values

Property Value
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

CommunicationMessage

{
  "body": "string",
  "clientKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "depositAccountKey": "string",
  "destination": "string",
  "encodedKey": "string",
  "event": "MANUAL",
  "failureCause": "string",
  "failureReason": "MESSAGING_EXCEPTION",
  "groupKey": "string",
  "loanAccountKey": "string",
  "numRetries": 0,
  "referenceId": "string",
  "repaymentKey": "string",
  "sendDate": "2016-09-06T13:37:50+03:00",
  "senderKey": "string",
  "state": "SENT",
  "subject": "string",
  "templateKey": "string",
  "type": "EMAIL",
  "userKey": "string"
}

Represents a communication message.

Properties

Name Type Description Restrictions
body string The contents of the message. none
clientKey string The client the message was sent to. none
creationDate string(date-time) The date the communication message was created in UTC. none
depositAccountKey string The deposit account that triggered this message. none
destination string The destination (phone number or email address) this message was sent to. none
encodedKey string The encoded key of the communication message, which is generated automatically, and must be unique. none
event string The event that triggered this message. none
failureCause string The failure code if the message failed to send. none
failureReason string The reason for the communication message failure. none
groupKey string The group the message was sent to. none
loanAccountKey string The loan account that triggered this message. none
numRetries integer(int32) The number of retries to send the message. none
referenceId string The reference ID of the communication message, generated by the SMS dispatcher. none
repaymentKey string The repayment that triggered this message. none
sendDate string(date-time) The date the communication message was sent in UTC. none
senderKey string The encoded key of the sender. If specified, it should be the encoded key of the current user. none
state string The state of the message. none
subject string The subject of the message. none
templateKey string The communication message template key. none
type string The type of communication message. none
userKey string The user the message was sent to. none

Enumerated Values

Property Value
event MANUAL
event DO_NOTHING
event CLIENT_CREATED
event CLIENT_APPROVED
event GROUP_ACTIVITY
event GROUP_CREATED
event LOAN_CREATED
event INTEREST_RATE_CHANGED
event CLIENT_REJECTED
event CLIENT_ACTIVITY
event LOAN_REPAYMENT
event LOAN_REPAYMENT_REVERSAL
event FEE_APPLIED
event FEE_ADJUSTED
event FEE_CHARGED
event PENALTY_APPLIED
event PENALTY_ADJUSTMENT
event FEES_DUE_REDUCED
event FEE_REDUCTION_ADJUSTMENT
event LOAN_APPROVAL
event LOAN_ACCOUNT_CLOSURE
event LOAN_ACCOUNT_WRITE_OFF
event LOAN_ACCOUNT_REJECTION
event LOAN_ACCOUNT_RESCHEDULED
event LOAN_ACCOUNT_REFINANCED
event REPAYMENT_REMINDER
event ACCOUNT_IN_ARREARS
event LOAN_DISBURSEMENT
event LOAN_DISBURSEMENT_REVERSAL
event LOAN_ACCOUNT_ACTIVITY
event LOAN_ANTICIPATED_DISBURSEMENT
event SAVINGS_CREATED
event SAVINGS_DEPOSIT
event SAVINGS_DEPOSIT_REVERSAL
event SAVINGS_APPROVAL
event SAVINGS_ACCOUNT_ACTIVATED
event SAVINGS_ACCOUNT_CLOSURE
event SAVINGS_ACCOUNT_REJECTION
event SAVINGS_WITHDRAWAL
event SAVINGS_WITHDRAWAL_REVERSAL
event SAVINGS_ACCOUNT_ACTIVITY
event DEPOSIT_INTEREST_APPLIED
event DEPOSIT_INTEREST_APPLIED_ADJUSTMENT
event ACCOUNT_AUTHORISATION_HOLD_CREATED
event ACCOUNT_AUTHORISATION_HOLD_REVERSED
event ACCOUNT_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_CREATED
event CARDS_AUTHORISATION_HOLD_SETTLED
event CARDS_AUTHORISATION_HOLD_AMOUNT_DECREASED
event CARDS_AUTHORISATION_HOLD_AMOUNT_INCREASED
event CARDS_AUTHORISATION_HOLD_EXPIRED
event CARDS_AUTHORISATION_HOLD_REVERSED
event PORTAL_ACTIVATED
event PORTAL_PASSWORD_RESET
event END_OF_DAY_PROCESSING_COMPLETED
event DATA_ACCESS_STATE_CHANGED
event CREDIT_ARRANGEMENT_CREATED
event CREDIT_ARRANGEMENT_CLOSED
event CREDIT_ARRANGEMENT_APPROVED
event CREDIT_ARRANGEMENT_REJECTED
event CREDIT_ARRANGEMENT_WITHDRAWN
event CREDIT_ARRANGEMENT_DELETED
event CREDIT_ARRANGEMENT_ACCOUNT_ADDED
event CREDIT_ARRANGEMENT_ACCOUNT_REMOVED
event CREDIT_ARRANGEMENT_EDITED
event PAYMENT_ORDER_ACTIVITY
event COLLECTION_ORDER_ACTIVITY
event JOURNAL_ENTRY_ADDED
event JOURNAL_ENTRY_ADJUSTED
event SAVINGS_TRANSACTION_EDITED
failureReason MESSAGING_EXCEPTION
failureReason INVALID_SMTP_CREDENTIALS
failureReason UNSUPPORTED_ENCODING_EXCEPTION
failureReason EMAIL_SERVICE_NOT_ENABLED
failureReason SMS_TOO_LONG
failureReason SMS_SERVICE_NOT_ENABLED
failureReason SMS_NOT_SENT
failureReason SMS_SERVICE_ERROR
failureReason SMS_CONNECTION_EXCEPTION
failureReason WEBHOOK_NOTIFICATIONS_DISABLED
failureReason INVALID_HTTP_RESPONSE
failureReason HTTP_ERROR_WHILE_SENDING
failureReason INVALID_JSON_BODY_SYNTAX
failureReason MISSING_TEMPLATE_KEY
failureReason MAX_MESSAGE_SIZE_LIMIT_EXCEEDED
failureReason UNDEFINED_DESTINATION
failureReason INVALID_HTTP_PROTOCOL
failureReason BLACKLISTED_URL
failureReason INVALID_SMS_GATEWAY_CREDENTIALS
failureReason MISSING_SMS_RECIPIENT
failureReason SMS_GATEWAY_ERROR
failureReason MISSING_EMAIL_RECIPIENT_ADDRESS
failureReason OTHER
state SENT
state QUEUED
state QUEUED_FOR_STREAM
state WAITING
state SENDING_ASYNC
state FAILED
type EMAIL
type SMS
type WEB_HOOK
type EVENT_STREAM
type TASK

CommunicationMessageAction

{
  "messages": [
    "string"
  ]
}

Represents a list of failed communication messages to resend.

Properties

Name Type Description Restrictions
messages (required) [string] The list of failed communication messages to resend. none

CommunicationMessageEnqueueAction

{
  "endDate": "2016-09-06T13:37:50+03:00",
  "startDate": "2016-09-06T13:37:50+03:00",
  "templateTypes": [
    "EMAIL"
  ]
}

Represents the time interval to resend messages.

Properties

Name Type Description Restrictions
endDate (required) string(date-time) The upper limit until which created messages will be enqueued. none
startDate (required) string(date-time) The lower limit from which created messages will be enqueued. none
templateTypes [string] The list of template message types to enqueue. none

CommunicationMessageFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The unit that composes the list used for communication messages client directed searching

Properties

Name Type Description Restrictions
field (required) string The field(s) to use to perform the search. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field creationDate
field sendDate
field senderKey
field clientKey
field groupKey
field userKey
field state
field failureReason
field failureCause
field destination
field type
field event
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

CommunicationMessageSearchSortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

The sorting criteria used for Messages search.

Properties

Name Type Description Restrictions
field (required) string Sort Messages By none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field creationDate
field sendDate
field senderKey
field clientKey
field groupKey
field userKey
field type
order ASC
order DESC

CommunicationMessagesSearchSortCriteria

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

The unit that composes the body used used for communication messages client directed searching.

Properties

Name Type Description Restrictions
filterCriteria (required) [CommunicationMessageFilterCriteria] The list of filtering criteria. none
sortingCriteria (required) CommunicationMessageSearchSortingCriteria The sorting criteria used for Messages search. none

Constraint

{
  "constraints": [
    {
      "criteria": "AMOUNT",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "matchFiltersOption": "ALL",
  "usage": "UNCONSTRAINED"
}

The constraints applied to the transaction channel

Properties

Name Type Description Restrictions
constraints [TransactionChannelConstraint] Holds the custom constraints, only for the limited usage case. For the unconstrainedcase, no constraints are applied none
matchFiltersOption string Holds the match filter option for the constraints. It can be ALL so all the constraints must match, or ANY so at least one must match none
usage string States the limited/unconstrained usage of the transaction channel none

Enumerated Values

Property Value
matchFiltersOption ALL
matchFiltersOption ANY
usage UNCONSTRAINED
usage LIMITED

ConstraintConfiguration

{
  "criteria": "AMOUNT",
  "filterElement": "EQUALS",
  "values": [
    "string"
  ]
}

Model representation of the constraint of a transaction channel configuration.

Properties

Name Type Description Restrictions
criteria (required) string Specifies the criteria based on which the constraint will be applied. none
filterElement (required) string Specifies the operator of the constraint. none
values [string] The values of the constraint. Depending on the type of constraint the list will contain a variable number of values. none

Enumerated Values

Property Value
criteria AMOUNT
criteria TYPE
criteria PRODUCT
filterElement EQUALS
filterElement EMPTY
filterElement NOT_EMPTY
filterElement MORE_THAN
filterElement LESS_THAN
filterElement BETWEEN
filterElement IN

ConstraintsConfiguration

{
  "constraints": [
    {
      "criteria": "AMOUNT",
      "filterElement": "EQUALS",
      "values": [
        "string"
      ]
    }
  ],
  "matchFilter": "ALL",
  "usage": "UNCONSTRAINED_USAGE"
}

Model representation of the constraints of a transaction channel configuration.

Properties

Name Type Description Restrictions
constraints [ConstraintConfiguration] The constraints of the configuration, only for the limited usage case. For the unconstrained case, no constraints are applied none
matchFilter string The match filter of the constraints. none
usage (required) string States the limited/unconstrained usage of the transaction channel none

Enumerated Values

Property Value
matchFilter ALL
matchFilter ANY
usage UNCONSTRAINED_USAGE
usage LIMITED_USAGE

CreditArrangement

{
  "amount": 0,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "availableCreditAmount": 0,
  "closedDate": "2016-09-06T13:37:50+03:00",
  "consumedCreditAmount": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "expireDate": "2016-09-06T13:37:50+03:00",
  "exposureLimitType": "APPROVED_AMOUNT",
  "holderKey": "string",
  "holderType": "CLIENT",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "startDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING_APPROVAL",
  "subState": "PENDING_APPROVAL"
}

Represents a credit arrangement.

Properties

Name Type Description Restrictions
amount (required) number The maximum credit amount the client can be exposed to. none
approvedDate string(date-time) The date when the credit arrangement was approved. read-only
availableCreditAmount number The available amount of the credit arrangement. read-only
closedDate string(date-time) The date when the credit arrangement was closed. read-only
consumedCreditAmount number The consumed amount of the credit arrangement, which is calculated as the difference between the amount and available amount. read-only
creationDate string(date-time) The date when the credit arrangement was created. read-only
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
encodedKey string The encoded key of the credit arrangement, it is auto generated, and unique. read-only
expireDate (required) string(date-time) The date when the credit arrangement expires. none
exposureLimitType string The type of exposure limit calculation method used for the credit arrangement. none
holderKey (required) string The encoded key of the credit arrangement holder (individual client or group). none
holderType (required) string The type of the credit arrangement holder (individual client or group). none
id string The ID of credit arrangement, can be generated and customized, and must be unique. none
lastModifiedDate string(date-time) The last date when the credit arrangement was modified. read-only
notes string The notes or description of the credit arrangement. none
startDate (required) string(date-time) The start date from which the credit arrangement became active. none
state string The state of the credit arrangement. read-only
subState string The substate of credit arrangement. read-only

Enumerated Values

Property Value
exposureLimitType APPROVED_AMOUNT
exposureLimitType OUTSTANDING_AMOUNT
holderType CLIENT
holderType GROUP
state PENDING_APPROVAL
state APPROVED
state ACTIVE
state CLOSED
state WITHDRAWN
state REJECTED
subState PENDING_APPROVAL
subState APPROVED
subState ACTIVE
subState CLOSED
subState WITHDRAWN
subState REJECTED

CreditArrangementAccounts

{
  "depositAccounts": [
    {
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PENDING_APPROVAL",
      "accountType": "CURRENT_ACCOUNT",
      "accruedAmounts": {
        "interestAccrued": 0,
        "negativeInterestAccrued": 0,
        "overdraftInterestAccrued": 0,
        "technicalOverdraftInterestAccrued": 0
      },
      "activationDate": "2016-09-06T13:37:50+03:00",
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "availableBalance": 0,
        "blockedBalance": 0,
        "feesDue": 0,
        "forwardAvailableBalance": 0,
        "holdBalance": 0,
        "lockedBalance": 0,
        "overdraftAmount": 0,
        "overdraftInterestDue": 0,
        "technicalOverdraftAmount": 0,
        "technicalOverdraftInterestDue": 0,
        "totalBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currencyCode": "string",
      "encodedKey": "string",
      "id": "string",
      "interestSettings": {
        "interestPaymentSettings": {
          "interestPaymentDates": [
            {
              "day": 0,
              "month": 0
            }
          ],
          "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
        },
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "internalControls": {
        "maxDepositBalance": 0,
        "maxWithdrawalAmount": 0,
        "recommendedDepositAmount": 0,
        "targetAmount": 0
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "linkedSettlementAccountKeys": [
        "string"
      ],
      "lockedDate": "2016-09-06T13:37:50+03:00",
      "maturityDate": "2016-09-06T13:37:50+03:00",
      "migrationEventKey": "string",
      "name": "string",
      "notes": "string",
      "overdraftInterestSettings": {
        "interestRateSettings": {
          "encodedKey": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "encodedKey": "string",
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ],
          "interestSpread": 0
        }
      },
      "overdraftSettings": {
        "allowOverdraft": true,
        "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
        "overdraftLimit": 0
      },
      "productTypeKey": "string",
      "withholdingTaxSourceKey": "string"
    }
  ],
  "loanAccounts": [
    {
      "accountArrearsSettings": {
        "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
        "encodedKey": "string",
        "monthlyToleranceDay": 0,
        "nonWorkingDaysMethod": "INCLUDED",
        "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
        "toleranceFloorAmount": 0,
        "tolerancePercentageOfOutstandingPrincipal": 0,
        "tolerancePeriod": 0
      },
      "accountHolderKey": "string",
      "accountHolderType": "CLIENT",
      "accountState": "PARTIAL_APPLICATION",
      "accountSubState": "PARTIALLY_DISBURSED",
      "accruedInterest": 0,
      "accruedPenalty": 0,
      "activationTransactionKey": "string",
      "allowOffset": true,
      "approvedDate": "2016-09-06T13:37:50+03:00",
      "arrearsTolerancePeriod": 0,
      "assets": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "originalAmount": 0,
          "originalCurrency": {
            "code": "AED",
            "currencyCode": "string"
          }
        }
      ],
      "assignedBranchKey": "string",
      "assignedCentreKey": "string",
      "assignedUserKey": "string",
      "balances": {
        "feesBalance": 0,
        "feesDue": 0,
        "feesPaid": 0,
        "holdBalance": 0,
        "interestBalance": 0,
        "interestDue": 0,
        "interestFromArrearsBalance": 0,
        "interestFromArrearsDue": 0,
        "interestFromArrearsPaid": 0,
        "interestPaid": 0,
        "penaltyBalance": 0,
        "penaltyDue": 0,
        "penaltyPaid": 0,
        "principalBalance": 0,
        "principalDue": 0,
        "principalPaid": 0,
        "redrawBalance": 0
      },
      "closedDate": "2016-09-06T13:37:50+03:00",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "creditArrangementKey": "string",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "daysInArrears": 0,
      "daysLate": 0,
      "disbursementDetails": {
        "disbursementDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
        "fees": [
          {
            "amount": 0,
            "encodedKey": "string",
            "percentage": 0,
            "predefinedFeeEncodedKey": "string"
          }
        ],
        "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
        "transactionDetails": {
          "encodedKey": "string",
          "internalTransfer": true,
          "targetDepositAccountKey": "string",
          "transactionChannelId": "string",
          "transactionChannelKey": "string"
        }
      },
      "encodedKey": "string",
      "fundingSources": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT",
          "id": "string",
          "interestCommission": 0,
          "sharePercentage": 0
        }
      ],
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "guarantors": [
        {
          "amount": 0,
          "assetName": "string",
          "depositAccountKey": "string",
          "encodedKey": "string",
          "guarantorKey": "string",
          "guarantorType": "CLIENT"
        }
      ],
      "id": "string",
      "interestAccruedInBillingCycle": 0,
      "interestCommission": 0,
      "interestFromArrearsAccrued": 0,
      "interestSettings": {
        "accountInterestRateSettings": [
          {
            "encodedKey": "string",
            "indexSourceKey": "string",
            "interestRate": 0,
            "interestRateCeilingValue": 0,
            "interestRateFloorValue": 0,
            "interestRateReviewCount": 0,
            "interestRateReviewUnit": "DAYS",
            "interestRateSource": "FIXED_INTEREST_RATE",
            "interestSpread": 0,
            "validFrom": "2016-09-06T13:37:50+03:00"
          }
        ],
        "accrueInterestAfterMaturity": true,
        "accrueLateInterest": true,
        "interestApplicationMethod": "AFTER_DISBURSEMENT",
        "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
        "interestCalculationMethod": "FLAT",
        "interestChargeFrequency": "ANNUALIZED",
        "interestRate": 0,
        "interestRateChangePMTAdjustmentThreshold": {
          "method": "WORKING_DAYS",
          "numberOfDays": 0
        },
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "interestType": "SIMPLE_INTEREST"
      },
      "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
      "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
      "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
      "lastLockedDate": "2016-09-06T13:37:50+03:00",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
      "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
      "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
      "loanAmount": 0,
      "loanName": "string",
      "lockedAccountTotalDueType": "BALANCE_AMOUNT",
      "lockedOperations": [
        "APPLY_INTEREST"
      ],
      "migrationEventKey": "string",
      "modifyInterestForFirstInstallment": true,
      "notes": "string",
      "originalAccountKey": "string",
      "paymentHolidaysAccruedInterest": 0,
      "paymentMethod": "HORIZONTAL",
      "penaltySettings": {
        "loanPenaltyCalculationMethod": "NONE",
        "penaltyRate": 0
      },
      "plannedInstallmentFees": [
        {
          "amount": 0,
          "applyOnDate": "2016-09-06T13:37:50+03:00",
          "encodedKey": "string",
          "installmentKey": "string",
          "installmentNumber": 0,
          "predefinedFeeKey": "string"
        }
      ],
      "prepaymentSettings": {
        "applyInterestOnPrepaymentMethod": "AUTOMATIC",
        "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
        "prepaymentRecalculationMethod": "NO_RECALCULATION",
        "principalPaidInstallmentStatus": "PARTIALLY_PAID"
      },
      "principalPaymentSettings": {
        "amount": 0,
        "encodedKey": "string",
        "includeFeesInFloorAmount": true,
        "includeInterestInFloorAmount": true,
        "percentage": 0,
        "principalCeilingValue": 0,
        "principalFloorValue": 0,
        "principalPaymentMethod": "FLAT",
        "totalDueAmountFloor": 0,
        "totalDuePayment": "FLAT"
      },
      "productTypeKey": "string",
      "redrawSettings": {
        "restrictNextDueWithdrawal": true
      },
      "rescheduledAccountKey": "string",
      "scheduleSettings": {
        "billingCycle": {
          "days": [
            0
          ]
        },
        "defaultFirstRepaymentDueDateOffset": 0,
        "fixedDaysOfMonth": [
          0
        ],
        "gracePeriod": 0,
        "gracePeriodType": "NONE",
        "hasCustomSchedule": true,
        "paymentPlan": [
          {
            "amount": 0,
            "encodedKey": "string",
            "toInstallment": 0
          }
        ],
        "periodicPayment": 0,
        "previewSchedule": {
          "numberOfPreviewedInstalments": 0
        },
        "principalRepaymentInterval": 0,
        "repaymentInstallments": 0,
        "repaymentPeriodCount": 0,
        "repaymentPeriodUnit": "DAYS",
        "repaymentScheduleMethod": "NONE",
        "scheduleDueDatesMethod": "INTERVAL",
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "settlementAccountKey": "string",
      "taxRate": 0,
      "terminationDate": "2016-09-06T13:37:50+03:00",
      "tranches": [
        {
          "amount": 0,
          "disbursementDetails": {
            "disbursementTransactionKey": "string",
            "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": "string",
          "fees": [
            {
              "amount": 0,
              "encodedKey": "string",
              "percentage": 0,
              "predefinedFeeEncodedKey": "string"
            }
          ],
          "trancheNumber": 0
        }
      ]
    }
  ]
}

Represents loan and deposit accounts linked to a credit arrangement.

Properties

Name Type Description Restrictions
depositAccounts [DepositAccount] List of the deposit accounts linked to the credit arrangement. none
loanAccounts [LoanAccount] List of loan accounts linked to the credit arrangement. none

CreditArrangementAction

{
  "action": "APPROVE",
  "notes": "string"
}

The state change to perform on the credit arrangement.

Properties

Name Type Description Restrictions
action (required) string The action type to be applied. none
notes string The notes related to the action performed. none

Enumerated Values

Property Value
action APPROVE
action UNDO_APPROVE
action REJECT
action UNDO_REJECT
action WITHDRAW
action UNDO_WITHDRAW
action CLOSE
action UNDO_CLOSE

CreditArrangementFilterCriteria

{
  "field": "id",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

Represents credit arrangment filter and search criteria.

Properties

Name Type Description Restrictions
field (required) string Contains the actual searching fields none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field id
field startDate
field expireDate
field approvedDate
field state
field subState
field exposureLimitType
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

CreditArrangementSchedule

{
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Represents the credit arrangement schedule.

Properties

Name Type Description Restrictions
installments [Installment] The list of installments for the credit arrangement. none

CreditArrangementSearchCriteria

{
  "filterCriteria": [
    {
      "field": "id",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "creationDate",
    "order": "ASC"
  }
}

Represents the filtering and sorting criteria when searching credit arrangements.

Properties

Name Type Description Restrictions
filterCriteria [CreditArrangementFilterCriteria] The list of filtering criteria. none
sortingCriteria CreditArrangementSortingCriteria The sorting criteria used for credit arrangement client directed query none

CreditArrangementSettings

{
  "creditArrangementRequirement": "OPTIONAL"
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
creditArrangementRequirement string Shows whether accounts created after this product can/should be part of a line of credit. none

Enumerated Values

Property Value
creditArrangementRequirement OPTIONAL
creditArrangementRequirement REQUIRED
creditArrangementRequirement NOT_REQUIRED

CreditArrangementSortingCriteria

{
  "field": "creationDate",
  "order": "ASC"
}

The sorting criteria used for credit arrangement client directed query

Properties

Name Type Description Restrictions
field (required) string Contains the actual sorting fields none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field creationDate
field startDate
field expireDate
field amount
order ASC
order DESC

CreditorReferenceInformation

{
  "reference": "string",
  "referenceIssuer": "string",
  "referenceType": "string"
}

Represents the reference to the underlying documents of the payment.

Properties

Name Type Description Restrictions
reference string The reference information of the creditor's underlying documents none
referenceIssuer string The entity that assigns the reference type none
referenceType string The type of creditor reference none

CurrenciesConfiguration

{
  "baseCurrency": {
    "code": "string",
    "digitsAfterDecimal": 0,
    "name": "string",
    "symbol": "string",
    "symbolPosition": "BEFORE_NUMBER",
    "type": "FIAT_CURRENCY"
  },
  "foreignCurrencies": [
    {
      "accountingRates": [
        {
          "rate": 0,
          "startDate": "2016-09-06T13:37:50+03:00"
        }
      ],
      "currency": {
        "code": "string",
        "digitsAfterDecimal": 0,
        "name": "string",
        "symbol": "string",
        "symbolPosition": "BEFORE_NUMBER",
        "type": "FIAT_CURRENCY"
      },
      "exchangeRates": [
        {
          "buyRate": 0,
          "sellRate": 0,
          "startDate": "2016-09-06T13:37:50+03:00"
        }
      ]
    }
  ],
  "startDate": "1987-04-26"
}

Represents the currencies configuration.

Properties

Name Type Description Restrictions
baseCurrency (required) CurrencyConfiguration Represents the currency configuration. none
foreignCurrencies [ForeignCurrencyConfiguration] The list of all the foreign currencies. It is ordered by currency code in ascending order. It can be empty. none
startDate string(date) The date starting from which the configuration is applied and/or returned, based on the organization timezone. It may be null if all the data is returned or updated. none

Currency

{
  "code": "AED",
  "currencyCode": "string"
}

Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency.

Properties

Name Type Description Restrictions
code string Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies. none
currencyCode string Currency code for NON_FIAT currency. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAG
code XAU
code XAF
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP
code NON_FIAT

CurrencyConfiguration

{
  "code": "string",
  "digitsAfterDecimal": 0,
  "name": "string",
  "symbol": "string",
  "symbolPosition": "BEFORE_NUMBER",
  "type": "FIAT_CURRENCY"
}

Represents the currency configuration.

Properties

Name Type Description Restrictions
code string The unique currency code. none
digitsAfterDecimal integer(int32) The number of decimals of the currency. none
name string The currency name. none
symbol string The currency symbol. none
symbolPosition string The position of the currency symbol. none
type string The type of the currency. none

Enumerated Values

Property Value
symbolPosition BEFORE_NUMBER
symbolPosition AFTER_NUMBER
type FIAT_CURRENCY
type CRYPTOCURRENCY
type NON_TRADITIONAL_CURRENCY

CurrencyDetails

{
  "baseCurrency": true,
  "code": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencySymbolPosition": "BEFORE_NUMBER",
  "digitsAfterDecimal": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "numericCode": "string",
  "symbol": "string",
  "type": "FIAT_CURRENCY"
}

Represents a currency.

Properties

Name Type Description Restrictions
baseCurrency (required) boolean TRUE if the currency is the base currency, FALSE otherwise. It cannot be changed and it's a read-only field not required for update operations. read-only
code (required) string The currency code, which cannot be changed once the currency is created. none
creationDate string(date-time) The date this currency was created. It cannot be changed and it's a read-only field not required for update operations. read-only
currencySymbolPosition (required) string The currency symbol position. none
digitsAfterDecimal integer(int32) The number of digits that are supported for a given currency. none
lastModifiedDate string(date-time) The last date this currency was modified. It's updated automatically and it's a read-only field not required for update operations. read-only
name (required) string The name of the currency. none
numericCode string The currency numeric code. none
symbol (required) string The currency symbol. none
type (required) string The type of the currency. none

Enumerated Values

Property Value
currencySymbolPosition BEFORE_NUMBER
currencySymbolPosition AFTER_NUMBER
type FIAT_CURRENCY
type CRYPTOCURRENCY
type NON_TRADITIONAL_CURRENCY

CustomFieldAvailableOption

{
  "score": 0,
  "selectionKey": "string",
  "value": "string"
}

Represents one option of a selection custom field definition.

Properties

Name Type Description Restrictions
score number The score of the option. none
selectionKey string The system-generated ID of the option. none
value string The name of the option. none

CustomFieldConfiguration

{
  "availableForAll": true,
  "default": true,
  "dependentFieldId": "string",
  "displaySettings": {
    "description": "string",
    "displayName": "string",
    "fieldSize": "SHORT"
  },
  "editRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  },
  "id": "string",
  "required": true,
  "selectionOptions": [
    {
      "availableOptions": [
        {
          "score": 0,
          "selectionId": "string",
          "value": "string"
        }
      ],
      "forSelectionId": "string"
    }
  ],
  "state": "ACTIVE",
  "type": "FREE_TEXT",
  "usage": [
    {
      "default": true,
      "id": "string",
      "required": true
    }
  ],
  "validationRules": {
    "unique": true,
    "validationPattern": "string"
  },
  "viewRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  }
}

Represents the custom field definition configuration.

Properties

Name Type Description Restrictions
availableForAll boolean TRUE if a custom field is available for all objects, FALSE otherwise. none
default boolean none none
dependentFieldId string Can be defined only for selection custom field definitions. Indicates the parent custom field definition on which the dependency is based upon. none
displaySettings (required) DisplaySettings Represents the display settings of a custom field definition. none
editRights AccessRights Represents the access rights configuration. none
id (required) string The user-defined ID, which is globally unique. none
required boolean none none
selectionOptions [SelectionOption] Can be defined only for selection custom field definitions. Indicates that the field has predefined selections and only those can be used to populate it. none
state (required) string Indicates whether the custom field definition is active or inactive. none
type (required) string The type of custom field definition. none
usage [Usage] Defines the usage at the record type level. The custom field definition is going to be available only for the record types that are referenced in the list by ID. Mutually exclusive with usage defined on custom field definition level by therequired and default properties. For selection custom field definitions that have a dependentFieldId set, the usage is inherited from the dependent field and must not be defined. none
validationRules ValidationRules Represents the settings for field input validation. none
viewRights AccessRights Represents the access rights configuration. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE
type FREE_TEXT
type SELECTION
type NUMBER
type CHECKBOX
type DATE
type DATE_TIME
type CLIENT_LINK
type GROUP_LINK
type USER_LINK

CustomFieldDisplaySettings

{
  "builtInId": "FIRST_NAME",
  "description": "string",
  "displayName": "string",
  "fieldSize": "SHORT",
  "position": 0
}

Represents the display settings of a custom field definition.

Properties

Name Type Description Restrictions
builtInId string The original ID of the built-in custom field definition. none
description string The user-provided description of the custom field definition. none
displayName string The user-provided name of the custom field definition. none
fieldSize string The custom field value display size in the UI. none
position integer(int32) The custom field definition position in the custom field set. none

Enumerated Values

Property Value
builtInId FIRST_NAME
builtInId MIDDLE_NAME
builtInId LAST_NAME
builtInId BIRTHDATE
builtInId GENDER
builtInId MOBILE_PHONE
builtInId MOBILE_PHONE_2
builtInId HOME_PHONE
builtInId EMAIL_ADDRESS
fieldSize SHORT
fieldSize LONG

CustomFieldEditRights

{
  "allUsers": true,
  "roles": [
    "string"
  ]
}

Represents the edit rights for custom field values for a particular custom field definition.

Properties

Name Type Description Restrictions
allUsers boolean TRUE if custom field values of a custom field definition can be edited by all users, FALSE if custom field values of a custom field definition can only be edited by users with the specified roles. none
roles [string] The list of IDs of the roles that have edit rights for the custom field values of a custom field definition if it is not accessible by all users. none

CustomFieldIdentity

{
  "encodedKey": "string",
  "id": "string"
}

A simple representation, holds only the information that identifies the custom field

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the entity, generated, globally unique read-only
id string User-provided ID of the custom field none

CustomFieldMeta

{
  "availableFor": "CLIENT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "dependentFieldKey": "string",
  "displaySettings": {
    "builtInId": "FIRST_NAME",
    "description": "string",
    "displayName": "string",
    "fieldSize": "SHORT",
    "position": 0
  },
  "editRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  },
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "selectionOptions": [
    {
      "availableOptions": [
        {
          "score": 0,
          "selectionKey": "string",
          "value": "string"
        }
      ],
      "forSelectionKey": "string",
      "forValue": "string"
    }
  ],
  "state": "ACTIVE",
  "type": "FREE_TEXT",
  "usage": [
    {
      "default": true,
      "objectKey": "string",
      "required": true
    }
  ],
  "valueValidationSettings": {
    "unique": true,
    "validationPattern": "string"
  },
  "viewRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  }
}

Represents a custom field definition.

Properties

Name Type Description Restrictions
availableFor string The entity type the custom field definition is associated with. none
creationDate string(date-time) The date the custom field definition was created. none
dependentFieldKey string Can be defined only for selection custom field definitions. Indicates the parent custom field definition on which the dependency is based upon. none
displaySettings CustomFieldDisplaySettings Represents the display settings of a custom field definition. none
editRights CustomFieldEditRights Represents the edit rights for custom field values for a particular custom field definition. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
id string The user-defined ID, which is globally unique. none
lastModifiedDate string(date-time) The date the latest update was performed for this custom field definition. none
selectionOptions [CustomFieldSelectionOption] Can be defined only for selection custom field definitions. Indicates that the field has predefined selections and only those can be used to populate it. none
state string Indicates whether the custom field definition is active or inactive. none
type string The type of custom field definition. none
usage [CustomFieldUsage] Represents the usage settings of a custom field definition. none
valueValidationSettings CustomFieldValueValidationSettings Represents the settings for field input validation. none
viewRights CustomFieldViewRights Represents the view rights for custom field values for a particular custom field definition. none

Enumerated Values

Property Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER
state ACTIVE
state INACTIVE
type FREE_TEXT
type SELECTION
type NUMBER
type CHECKBOX
type DATE
type DATE_TIME
type CLIENT_LINK
type GROUP_LINK
type USER_LINK

CustomFieldSelectionOption

{
  "availableOptions": [
    {
      "score": 0,
      "selectionKey": "string",
      "value": "string"
    }
  ],
  "forSelectionKey": "string",
  "forValue": "string"
}

Represents the information related to the options of a selection custom field definition.

Properties

Name Type Description Restrictions
availableOptions [CustomFieldAvailableOption] The list of options that that are available for the dependent selection custom field value based on the selected parent custom field value. none
forSelectionKey string The key for the parent selection custom field value. none
forValue string The parent selection custom field value. none

CustomFieldSetConfiguration

{
  "availableFor": "CLIENT",
  "customFields": [
    {
      "availableForAll": true,
      "default": true,
      "dependentFieldId": "string",
      "displaySettings": {
        "description": "string",
        "displayName": "string",
        "fieldSize": "SHORT"
      },
      "editRights": {
        "allUsers": true,
        "roles": [
          "string"
        ]
      },
      "id": "string",
      "required": true,
      "selectionOptions": [
        {
          "availableOptions": [
            {
              "score": 0,
              "selectionId": "string",
              "value": "string"
            }
          ],
          "forSelectionId": "string"
        }
      ],
      "state": "ACTIVE",
      "type": "FREE_TEXT",
      "usage": [
        {
          "default": true,
          "id": "string",
          "required": true
        }
      ],
      "validationRules": {
        "unique": true,
        "validationPattern": "string"
      },
      "viewRights": {
        "allUsers": true,
        "roles": [
          "string"
        ]
      }
    }
  ],
  "description": "string",
  "id": "string",
  "name": "string",
  "type": "SINGLE"
}

Represents the custom field set configuration.

Properties

Name Type Description Restrictions
availableFor (required) string The entity associated with the custom field set. none
customFields [CustomFieldConfiguration] The list of custom field definitions associated with the custom field set. none
description string The user-provided description of the custom field set. none
id (required) string The user-defined ID, which is globally unique. none
name (required) string The user-provided name of the custom field set, unique for each custom field set type. none
type (required) string Defines how the custom field set will be used in the UI and how the custom field values will be stored. For the SINGLE custom field set type, the custom field set is displayed in the UI and can be used only once on one entity. For the GROUPED custom field set type, the custom field set is allowed multiple times for the same entity. none

Enumerated Values

Property Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER
type SINGLE
type GROUPED

CustomFieldSetDisplaySettings

{
  "builtIn": true,
  "displayName": "string",
  "position": 0
}

Wrapper holds the display properties of a Custom Field Set

Properties

Name Type Description Restrictions
builtIn boolean This is used only for builtIn custom field sets and can have two possible values:
True - when this is a "mambu" field set,
False - when this is a tenant-defined field set
none
displayName string User-provided name of the custom field set none
position integer(int32) Represents the order of the custom field set (starts from 0) none

CustomFieldSetMeta

{
  "availableFor": "CLIENT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "customFields": [
    {
      "encodedKey": "string",
      "id": "string"
    }
  ],
  "description": "string",
  "displaySettings": {
    "builtIn": true,
    "displayName": "string",
    "position": 0
  },
  "encodedKey": "string",
  "fieldSetType": "STANDARD",
  "id": "string"
}

Model representation of a Custom Field Set

Properties

Name Type Description Restrictions
availableFor string Indicates the entity that the custom field set is associated with (eg. clients or any entity that allows CF definition) none
creationDate string(date-time) Date at which the custom field set was created read-only
customFields [CustomFieldIdentity] This section lists all the custom fields associated with this set none
description string Free text field to store eventual notes with regard to custom field group purpose/details none
displaySettings CustomFieldSetDisplaySettings Wrapper holds the display properties of a Custom Field Set none
encodedKey string The encoded key of the entity, generated, globally unique read-only
fieldSetType string The usage decides how the custom field set will be used in the UI and how the custom field values will be stored. For STANDARD set type the custom field set can be used only once (i.e Personal Information). For GROUPED set type the custom field set can be used multiple times (i.e Addresses). For further details please see here none
id string User-defined ID, gobally unique none

Enumerated Values

Property Value
availableFor CLIENT
availableFor GROUP
availableFor CREDIT_ARRANGEMENT
availableFor LOAN_ACCOUNT
availableFor GUARANTOR
availableFor ASSET
availableFor DEPOSIT_ACCOUNT
availableFor DEPOSIT_PRODUCT
availableFor TRANSACTION_CHANNEL
availableFor TRANSACTION_TYPE
availableFor BRANCH
availableFor CENTRE
availableFor USER
fieldSetType STANDARD
fieldSetType GROUPED

CustomFieldUsage

{
  "default": true,
  "objectKey": "string",
  "required": true
}

Represents the usage settings of the custom field definition.

Properties

Name Type Description Restrictions
default boolean TRUE if the field is displayed by default on create or edit pages for this record type, FALSE otherwise. none
objectKey string The key of the record type. none
required boolean TRUE if the field is required for this record type, FALSE otherwise. none

CustomFieldValueConfiguration

{
  "customFieldId": "string",
  "value": "string"
}

Response representation of a custom field value configuration.

Properties

Name Type Description Restrictions
customFieldId (required) string User-defined ID, globally unique. none
value (required) string Custom field value none

CustomFieldValueGroupConfiguration

{
  "customFieldValues": [
    {
      "customFieldId": "string",
      "value": "string"
    }
  ],
  "index": 0
}

Response representation of a custom field values group configuration.

Properties

Name Type Description Restrictions
customFieldValues (required) [CustomFieldValueConfiguration] Custom field values of the group. none
index (required) integer(int32) Index representing the id of custom field values in a set. none

CustomFieldValueSetConfiguration

{
  "groupedCustomFieldValues": [
    {
      "customFieldValues": [
        {
          "customFieldId": "string",
          "value": "string"
        }
      ],
      "index": 0
    }
  ],
  "id": "string",
  "standardCustomFieldValues": [
    {
      "customFieldId": "string",
      "value": "string"
    }
  ]
}

Response representation of a custom field set values configuration.

Properties

Name Type Description Restrictions
groupedCustomFieldValues [CustomFieldValueGroupConfiguration] Custom field values for group type sets. Ordered by the group index that must start from 0. none
id (required) string User-defined set ID, globally unique. none
standardCustomFieldValues [CustomFieldValueConfiguration] Custom field values for standard type sets. Ordered by custom field id. none

CustomFieldValueValidationSettings

{
  "unique": true,
  "validationPattern": "string"
}

Represents the settings for field input validation.

Properties

Name Type Description Restrictions
unique boolean TRUE if this field does not allow duplicate values, FALSE otherwise. none
validationPattern string The expected format for the input. none

CustomFieldViewRights

{
  "allUsers": true,
  "roles": [
    "string"
  ]
}

Represents the view rights for custom field values for a particular custom field definition.

Properties

Name Type Description Restrictions
allUsers boolean TRUE if custom field values of a custom field definition can be viewed by all users, FALSE if custom field values of a custom field definition can only be viewed by users with the specified roles. none
roles [string] Lists the IDs of the roles that have view rights for the custom field values of a custom field definition if it is not accessible by all users. none

CustomFieldsConfiguration

{
  "customFieldSets": [
    {
      "availableFor": "CLIENT",
      "customFields": [
        {
          "availableForAll": true,
          "default": true,
          "dependentFieldId": "string",
          "displaySettings": {
            "description": "string",
            "displayName": "string",
            "fieldSize": "SHORT"
          },
          "editRights": {
            "allUsers": true,
            "roles": [
              "string"
            ]
          },
          "id": "string",
          "required": true,
          "selectionOptions": [
            {
              "availableOptions": [
                {
                  "score": 0,
                  "selectionId": "string",
                  "value": "string"
                }
              ],
              "forSelectionId": "string"
            }
          ],
          "state": "ACTIVE",
          "type": "FREE_TEXT",
          "usage": [
            {
              "default": true,
              "id": "string",
              "required": true
            }
          ],
          "validationRules": {
            "unique": true,
            "validationPattern": "string"
          },
          "viewRights": {
            "allUsers": true,
            "roles": [
              "string"
            ]
          }
        }
      ],
      "description": "string",
      "id": "string",
      "name": "string",
      "type": "SINGLE"
    }
  ]
}

Model representation of the custom field configuration. The request body must be in YAML format. Please refer to the example provided at the update endpoint of the Custom Fields Configuration resource.

Properties

Name Type Description Restrictions
customFieldSets (required) [CustomFieldSetConfiguration] List of all custom field sets. none

CustomPaymentAmount

{
  "amount": 0,
  "customPaymentAmountType": "PRINCIPAL",
  "predefinedFeeKey": "string",
  "taxOnAmount": 0
}

Custom payment amount for a specific element type

Properties

Name Type Description Restrictions
amount (required) number The amount of the payment paid in the transaction for the given type. none
customPaymentAmountType (required) string The type of the custom payment none
predefinedFeeKey string The encodedKey of the predefined fee to be paid. none
taxOnAmount number The amount of the taxes paid in the transaction for the given type. none

Enumerated Values

Property Value
customPaymentAmountType PRINCIPAL
customPaymentAmountType INTEREST
customPaymentAmountType MANUAL_FEE
customPaymentAmountType UPFRONT_DISBURSEMENT_FEE
customPaymentAmountType LATE_REPAYMENT_FEE
customPaymentAmountType PAYMENT_DUE_FEE
customPaymentAmountType PENALTY

CustomPredefinedFee

{
  "amount": 0,
  "encodedKey": "string",
  "percentage": 0,
  "predefinedFeeEncodedKey": "string"
}

The custom predefined fees, they may be used as the expected predefined fees that will be applied on the disbursement.

Properties

Name Type Description Restrictions
amount number The amount of the custom fee. none
encodedKey string The encoded key of the custom predefined fee, auto generated, unique. read-only
percentage number The percentage of the custom fee. none
predefinedFeeEncodedKey string The encoded key of the predefined fee none

DashboardConfiguration

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "name": "LATEST_ACTIVITY"
}

Response representation of the dashboard configuration

Properties

Name Type Description Restrictions
creationDate string(date-time) The date dashboard configuration was created none
encodedKey string The encoded key of the dashboard configuration, auto generated, unique none
name string The Dashboard option name none

Enumerated Values

Property Value
name LATEST_ACTIVITY
name TASKS
name FAVOURITE_VIEWS
name INDICATORS
name CURRENT_TILLS
name CLIENTS
name UPCOMING_REPAYMENTS
name NONE

DaysInMonth

{
  "daysInMonth": [
    0
  ],
  "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
}

Enumeration for days of month and method of handling shorter months.

Properties

Name Type Description Restrictions
daysInMonth [integer] Specifies the day(s) of the month when the interest application dates should be. Only available if the Interest Application Method is InterestApplicationMethodDTO#FIXED_DAYS_OF_MONTH. Currently only 1 value can be specified. none
shortMonthHandlingMethod string Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected. Only available if the Interest Application Method is InterestApplicationMethodDTO#FIXED_DAYS_OF_MONTH. none

Enumerated Values

Property Value
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

DecimalConstraints

{
  "defaultValue": 0,
  "encodedKey": "string",
  "maxValue": 0,
  "minValue": 0
}

Decimal constraints, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
encodedKey string The encoded key of the decimal constraint, auto generated, unique read-only
maxValue number The maximum value. none
minValue number The minimum value. none

DecimalInterval

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Decimal constraints, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
maxValue number The maximum value. none
minValue number The minimum value. none

DepositAccount

{
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PENDING_APPROVAL",
  "accountType": "CURRENT_ACCOUNT",
  "accruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "activationDate": "2016-09-06T13:37:50+03:00",
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "availableBalance": 0,
    "blockedBalance": 0,
    "feesDue": 0,
    "forwardAvailableBalance": 0,
    "holdBalance": 0,
    "lockedBalance": 0,
    "overdraftAmount": 0,
    "overdraftInterestDue": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestDue": 0,
    "totalBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currencyCode": "string",
  "encodedKey": "string",
  "id": "string",
  "interestSettings": {
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "internalControls": {
    "maxDepositBalance": 0,
    "maxWithdrawalAmount": 0,
    "recommendedDepositAmount": 0,
    "targetAmount": 0
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestCalculationDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastInterestStoredDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastOverdraftInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "linkedSettlementAccountKeys": [
    "string"
  ],
  "lockedDate": "2016-09-06T13:37:50+03:00",
  "maturityDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "notes": "string",
  "overdraftInterestSettings": {
    "interestRateSettings": {
      "encodedKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ],
      "interestSpread": 0
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
    "overdraftLimit": 0
  },
  "productTypeKey": "string",
  "withholdingTaxSourceKey": "string"
}

Represents information about a deposit account.

Properties

Name Type Description Restrictions
accountHolderKey (required) string The encoded key of the account holder, which is an individual client or group. none
accountHolderType (required) string The account holder type. none
accountState string The state of the deposit account. read-only
accountType string The deposit account type and the product that it belongs to. none
accruedAmounts DepositAccountAccruedAmounts Represents information about the accrued amounts of deposit accounts. none
activationDate string(date-time) The date when the deposit account was activated, in the organization's timezone and time format. read-only
approvedDate string(date-time) The date when the deposit account was approved, in the organization's timezone and time format. read-only
assignedBranchKey string The key of the branch that this deposit account is assigned to. none
assignedCentreKey string The key of the centre that this account is assigned to. none
assignedUserKey string The key of the user that this deposit is assigned to. none
balances DepositAccountBalances Represents information about the balances of a deposit account. none
closedDate string(date-time) The date when the deposit account was closed, in UTC. read-only
creationDate string(date-time) The date this deposit account was created, in UTC. read-only
creditArrangementKey string The key to the credit arrangement where this account is registered. none
currencyCode string The currency code. none
encodedKey string The encoded key of the deposit account, which is auto-generated and unique. read-only
id string The ID of the deposit account, which can be generated and customized - but must be unique. none
interestSettings DepositAccountInterestSettings Represents information about the deposit account's interest settings. none
internalControls DepositAccountInternalControls Represents information about internal controls. none
lastAccountAppraisalDate string(date-time) The date when the account was last evaluated for interest calculations and maturity, in the organization's timezone and time format. read-only
lastInterestCalculationDate string(date-time) The date when interest was last calculated for the account, in the organization's timezone and time format. read-only
lastInterestReviewDate string(date-time) The date when regular interest was last reviewed, in the organization's timezone and time format. read-only
lastInterestStoredDate string(date-time) The date when interest was last applied on the account, in the organization's timezone and time format. read-only
lastModifiedDate string(date-time) The last update date for the deposit account, in UTC. read-only
lastOverdraftInterestReviewDate string(date-time) The date when the overdraft interest was last reviewed, in the organization's timezone and time format. read-only
lastSetToArrearsDate string(date-time) The date when the deposit account was set to In Arrears, or null if the account is not In Arrears. The date is in the organization's timezone and time format. read-only
linkedSettlementAccountKeys [string] Lists all loan account keys on which the deposit account is used as the settlement account. read-only
lockedDate string(date-time) The date when the deposit account was locked, in the organization's timezone and time format. read-only
maturityDate string(date-time) The date when the account matures, for fixed or compulsory savings plans, in the organization's timezone and time format. read-only
migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, you can track which migration event it came from. read-only
name (required) string The deposit account name. none
notes string The notes or description attached to this object. none
overdraftInterestSettings DepositAccountOverdraftInterestSettings Represents information about a deposit account's overdraft interest settings. none
overdraftSettings DepositAccountOverdraftSettings Represents information about a deposit account's overdraft settings. none
productTypeKey (required) string The key to the product type that this account is based on. none
withholdingTaxSourceKey string The tax source where the account withholding taxes will be updated. none

Enumerated Values

Property Value
accountHolderType CLIENT
accountHolderType GROUP
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState MATURED
accountState LOCKED
accountState DORMANT
accountState CLOSED
accountState CLOSED_WRITTEN_OFF
accountState WITHDRAWN
accountState CLOSED_REJECTED
accountType CURRENT_ACCOUNT
accountType REGULAR_SAVINGS
accountType FIXED_DEPOSIT
accountType SAVINGS_PLAN
accountType INVESTOR_ACCOUNT

DepositAccountAccruedAmounts

{
  "interestAccrued": 0,
  "negativeInterestAccrued": 0,
  "overdraftInterestAccrued": 0,
  "technicalOverdraftInterestAccrued": 0
}

Represents information about the accrued amounts of deposit accounts.

Properties

Name Type Description Restrictions
interestAccrued number The amount of positive interest that has been accrued in the account. read-only
negativeInterestAccrued number The amount of negative interest that has been accrued in the account. read-only
overdraftInterestAccrued number The amount of overdraft interest that has been accrued in the account. read-only
technicalOverdraftInterestAccrued number The amount of technical overdraft interest that has been accrued in the account. read-only

DepositAccountAction

{
  "action": "APPROVE",
  "notes": "string"
}

Represents the action details for a deposit account.

Properties

Name Type Description Restrictions
action (required) string The action type to be applied. none
notes string The notes related to the action performed. none

Enumerated Values

Property Value
action APPROVE
action UNDO_APPROVE
action LOCK
action UNLOCK
action CLOSE
action CLOSE_WITHDRAW
action CLOSE_REJECT
action CLOSE_WRITE_OFF

DepositAccountBalances

{
  "availableBalance": 0,
  "blockedBalance": 0,
  "feesDue": 0,
  "forwardAvailableBalance": 0,
  "holdBalance": 0,
  "lockedBalance": 0,
  "overdraftAmount": 0,
  "overdraftInterestDue": 0,
  "technicalOverdraftAmount": 0,
  "technicalOverdraftInterestDue": 0,
  "totalBalance": 0
}

Represents information about the balances of a deposit account.

Properties

Name Type Description Restrictions
availableBalance number The current available balance for deposit transactions. read-only
blockedBalance number The sum of all the blocked amounts on an account. read-only
feesDue number The amount of fees due to be paid on this account. read-only
forwardAvailableBalance number The sum of all the authorization hold amounts that have CRDT as the creditDebitIndicator for an account. read-only
holdBalance number The sum of all the authorization hold amounts that have DBIT as the creditDebitIndicator for an account. read-only
lockedBalance number The locked amount that is not available for withdrawal in the account. For more information, see Deposit Account Overview Details. read-only
overdraftAmount number The overdraft amount that has been taken out in the account. For more information, see Overdraft Products. read-only
overdraftInterestDue number The amount of interest due to be paid on an account as a result of an authorized overdraft. read-only
technicalOverdraftAmount number The technical overdraft amount that has been taken out in the account. For more information, see Technical Overdraft. read-only
technicalOverdraftInterestDue number The amount of interest due to be paid on an account as a result of a technical overdraft. read-only
totalBalance number The current balance of the account. read-only

DepositAccountDocument

{}

Properties

None

DepositAccountFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

Represents the filter list used for searching deposit accounts.

Properties

Name Type Description Restrictions
field (required) string The fields to search, which can be enumerated values or custom fields using the format [customFieldSetId].[customFieldId]. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field id
field name
field accountHolderKey
field clientId
field groupId
field accountHolderName
field accountState
field accountType
field creationDate
field activationDate
field approvedDate
field lastModifiedDate
field maturityDate
field lastSetToArrearsDate
field closedDate
field accruedAmounts.interestAccrued
field accruedAmounts.overdraftInterestAccrued
field accruedAmounts.technicalOverdraftInterestAccrued
field maxBalance
field balances.availableBalance
field balances.blockedBalance
field balances.feesDue
field balances.lockedBalance
field balances.overdraftAmount
field balances.overdraftInterestDue
field balances.technicalOverdraftAmount
field balances.totalBalance
field balances.holdBalance
field assignedBranchKey
field assignedCentreKey
field assignedUserKey
field currencyCode
field interestSettings.interestRate
field currentInterestTier.endingBalance
field currentInterestTier.index
field currentInterestTier.interestRate
field currentInterestTier.startingBalance
field internalControls.maxWithdrawalAmount
field internalControls.recommendedDepositAmount
field internalControls.targetAmount
field lengthInDays
field overdraftRiskLevelKey
field overdraftAvailableLimit
field overdraftDaysInArrears
field overdraftInArrears
field overdraftInterestSettings.interestRateSettings.interestRate
field overdraftInterestSettings.interestRateSettings.interestSpread
field currentOverdraftInterestTier.endingBalance
field currentOverdraftInterestTier.index
field currentOverdraftInterestTier.interestRate
field currentOverdraftInterestTier.startingBalance
field overdraftSettings.overdraftExpiryDate
field overdraftSettings.overdraftLimit
field overdraftSettings.allowOverdraft
field productTypeKey
field productCategory
field taxApplied
field withholdingTaxSourceKey
field taxRate
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

DepositAccountInterestAvailabilitySettings

{
  "interestRate": 0,
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ],
  "interestSpread": 0
}

Interest Rate Settings for Deposit Account Interest Availability

Properties

Name Type Description Restrictions
interestRate number The interest rate for the deposit account none
interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers. An interest rate tier holds the values to define how the interest is computed none
interestSpread number The rate based on which the interest is accrued and applied for accounts with InterestRateSource#INDEX_INTEREST_RATE none

DepositAccountInterestPaymentSettings

{
  "interestPaymentDates": [
    {
      "day": 0,
      "month": 0
    }
  ],
  "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
}

Represents information about the interest payment settings.

Properties

Name Type Description Restrictions
interestPaymentDates [MonthAndDay] The list of all dates when the interest is paid into the deposit account. none
interestPaymentPoint string The interest payment point, which specifies when the interest should be paid to the account. none

Enumerated Values

Property Value
interestPaymentPoint FIRST_DAY_OF_MONTH
interestPaymentPoint EVERY_WEEK
interestPaymentPoint EVERY_OTHER_WEEK
interestPaymentPoint EVERY_MONTH
interestPaymentPoint EVERY_3_MONTHS
interestPaymentPoint ON_FIXED_DATES
interestPaymentPoint DAILY
interestPaymentPoint ANNUALLY
interestPaymentPoint BI_ANNUALLY
interestPaymentPoint ON_ACCOUNT_MATURITY

DepositAccountInterestRateSettings

{
  "encodedKey": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ],
  "interestSpread": 0
}

Represents information about the interest rate settings for deposit accounts.

Properties

Name Type Description Restrictions
encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
interestRate number The interest rate for the deposit account. none
interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
interestRateSource string The interest calculation method used. read-only
interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositAccountInterestRateTier

{
  "encodedKey": "string",
  "endingBalance": 0,
  "endingDay": 0,
  "interestRate": 0
}

Represents information about how interest rate is calculated.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
endingDay integer(int32) The end date for the account period. Used to determine if this interest rate tier is used or not. none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

DepositAccountInterestSettings

{
  "interestPaymentSettings": {
    "interestPaymentDates": [
      {
        "day": 0,
        "month": 0
      }
    ],
    "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
  },
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  }
}

Represents information about the deposit account's interest settings.

Properties

Name Type Description Restrictions
interestPaymentSettings DepositAccountInterestPaymentSettings Represents information about the interest payment settings. none
interestRateSettings DepositAccountInterestRateSettings Represents information about the interest rate settings for deposit accounts. none

DepositAccountInternalControls

{
  "maxDepositBalance": 0,
  "maxWithdrawalAmount": 0,
  "recommendedDepositAmount": 0,
  "targetAmount": 0
}

Represents information about internal controls.

Properties

Name Type Description Restrictions
maxDepositBalance number The maximum deposit balance of the account. none
maxWithdrawalAmount number The maximum amount allowed for a withdrawal. none
recommendedDepositAmount number The recommended amount for a deposit. none
targetAmount number The target amount for a deposit made towards a savings goal. none

DepositAccountOverdraftInterestRateSettings

{
  "encodedKey": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ],
  "interestSpread": 0
}

Represents information about overdraft interest rate settings for deposit accounts.

Properties

Name Type Description Restrictions
encodedKey string The encoded key for the set of interest settings, which is auto-generated and unique. read-only
interestChargeFrequency string The interest charge frequency, which shows how often interest is charged on loan or deposit accounts. none
interestChargeFrequencyCount integer(int32) The number of times to apply interest in a time period. none
interestRate number The interest rate for the deposit account. none
interestRateReviewCount integer(int32) The number of times to review the interest rate in a time period. none
interestRateReviewUnit string The time unit to use to determine the frequency of interest rate reviews. none
interestRateSource string The interest calculation method used. read-only
interestRateTerms string The terms for how interest rate is determined when accruing for an account. none
interestRateTiers [DepositAccountInterestRateTier] The list of interest rate tiers, which hold the values to define how interest is calculated. none
interestSpread number The index interest rate that is used to calculate the interest rate that is applied to accounts. none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositAccountOverdraftInterestSettings

{
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  }
}

Represents information about a deposit account's overdraft interest settings.

Properties

Name Type Description Restrictions
interestRateSettings DepositAccountOverdraftInterestRateSettings Represents information about overdraft interest rate settings for deposit accounts. none

DepositAccountOverdraftSettings

{
  "allowOverdraft": true,
  "overdraftExpiryDate": "2016-09-06T13:37:50+03:00",
  "overdraftLimit": 0
}

Represents information about a deposit account's overdraft settings.

Properties

Name Type Description Restrictions
allowOverdraft boolean TRUE if this account supports overdraft, FALSE otherwise. none
overdraftExpiryDate string(date-time) The expiration date of an overdraft. none
overdraftLimit number The limit amount that may be taken out as overdraft, where null means 0. none

DepositAccountSearchCriteria

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Represents the filtering criteria list and the sorting criteria for searching deposit accounts.

Properties

Name Type Description Restrictions
filterCriteria [DepositAccountFilterCriteria] The list of filtering criteria. none
sortingCriteria DepositAccountSortingCriteria The sorting criteria used for searching deposit accounts. none

DepositAccountSortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

The sorting criteria used for searching deposit accounts.

Properties

Name Type Description Restrictions
field (required) string The field to use to sort the selection. This can be an enumerated value or a custom field using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field id
field name
field creationDate
field activationDate
field approvedDate
field lastModifiedDate
field maturityDate
field lastSetToArrearsDate
field closedDate
field accountHolderName
field accruedAmounts.interestAccrued
field accruedAmounts.overdraftInterestAccrued
field accruedAmounts.technicalOverdraftInterestAccrued
field maxBalance
field balances.availableBalance
field balances.blockedBalance
field balances.feesDue
field balances.lockedBalance
field balances.overdraftAmount
field balances.technicalOverdraftAmount
field balances.totalBalance
field balances.holdBalance
field balances.overdraftInterestDue
field assignedBranchKey
field assignedCentreKey
field assignedUserKey
field interestSettings.interestRate
field currentInterestTier.startingBalance
field currentInterestTier.endingBalance
field currentInterestTier.index
field currentInterestTier.interestRate
field currentOverdraftInterestTier.startingBalance
field currentOverdraftInterestTier.endingBalance
field currentOverdraftInterestTier.index
field currentOverdraftInterestTier.interestRate
field internalControls.maxWithdrawalAmount
field internalControls.recommendedDepositAmount
field internalControls.targetAmount
field notes
field taxApplied
field taxRate
field withholdingTaxSourceKey
field lengthInDays
field productCategory
field overdraftInterestSettings.interestRateSettings.interestSpread
field overdraftInterestSettings.interestRateSettings.interestRate
field overdraftSettings.allowOverdraft
field overdraftSettings.overdraftExpiryDate
field overdraftSettings.overdraftLimit
field overdraftDaysInArrears
field overdraftInArrears
field overdraftAvailableLimit
order ASC
order DESC

DepositAffectedAmounts

{
  "feesAmount": 0,
  "fractionAmount": 0,
  "fundsAmount": 0,
  "interestAmount": 0,
  "overdraftAmount": 0,
  "overdraftFeesAmount": 0,
  "overdraftInterestAmount": 0,
  "technicalOverdraftAmount": 0,
  "technicalOverdraftInterestAmount": 0
}

The amounts affected after completing the deposit transaction

Properties

Name Type Description Restrictions
feesAmount number Amount of fees involved in a transaction that affects an account with positive balance none
fractionAmount number In the case of an LOAN_FRACTION_BOUGHT this represent the fraction amount which was bought from another investor none
fundsAmount number Balance change amount involved in a transaction that affects an account with positive balance none
interestAmount number Amount of interest involved in a transaction that affects an account with positive balance none
overdraftAmount number The amount of money that was added/subtracted from the account by this transaction as overdraft none
overdraftFeesAmount number Fees amount involved in a transaction that affects an overdraft none
overdraftInterestAmount number Interest amount involved in a transaction that affects an overdraft none
technicalOverdraftAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft none
technicalOverdraftInterestAmount number The amount of money that was added/subtracted from the account by this transaction as technical overdraft interest none

DepositFee

{
  "amount": 0,
  "name": "string",
  "predefinedFeeKey": "string",
  "taxAmount": 0,
  "trigger": "MANUAL"
}

An amount of predefined fee that was applied or paid on an account.

Properties

Name Type Description Restrictions
amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
name string The name of the predefined fee read-only
predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
trigger string Shows the event that will trigger a fee read-only

Enumerated Values

Property Value
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY

DepositGLAccountingRule

{
  "encodedKey": "string",
  "financialResource": "PORTFOLIO_CONTROL",
  "glAccountKey": "string"
}

The GL accounting rule, it maps a financial resource with a GL account for a specific product (i.e loan or saving).

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the accounting rule, auto generated, unique. read-only
financialResource (required) string General Ledger Financial Resources used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries none
glAccountKey (required) string The encoded key of the account that is mapped to the financialResource none

Enumerated Values

Property Value
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER

DepositGLAccountingRuleConfiguration

{
  "financialResource": "PORTFOLIO_CONTROL",
  "glAccountCode": "string"
}

The GL accounting rule, it maps a financial resource with a GL account for a specific product.

Properties

Name Type Description Restrictions
financialResource string General ledger financial resource used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries. none
glAccountCode string The unique identifier of the account that is mapped to the financial resource. none

Enumerated Values

Property Value
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER

DepositInterestAccruedAmounts

{
  "interestAccrued": 0,
  "negativeInterestAccrued": 0,
  "overdraftInterestAccrued": 0,
  "technicalOverdraftInterestAccrued": 0
}

Represents the accrued interest amounts for an Interest Applied deposit transaction.

Properties

Name Type Description Restrictions
interestAccrued number The amount of positive interest accrued since last interest application/activation date and applied within Interest Applied transaction none
negativeInterestAccrued number The amount of negative interest accrued since last interest application/activation date and applied within Interest Applied transaction none
overdraftInterestAccrued number The amount of overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none
technicalOverdraftInterestAccrued number The amount of technical overdraft interest accrued since last interest application/activation date and applied within Interest Applied transaction none

DepositMaturitySettings

{
  "maturityPeriod": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "maturityPeriodUnit": "DAYS"
}

The maturity settings for the product.

Properties

Name Type Description Restrictions
maturityPeriod IntegerInterval Decimal integer, like min/max/default. none
maturityPeriodUnit string maturity period measurement unit none

Enumerated Values

Property Value
maturityPeriodUnit DAYS
maturityPeriodUnit WEEKS
maturityPeriodUnit MONTHS

DepositNewAccountSettings

{
  "idGeneratorType": "INCREMENTAL_NUMBER",
  "idPattern": "string"
}

New Account settings for deposit accounts

Properties

Name Type Description Restrictions
idGeneratorType (required) string The type of generator used for IDs creation. none
idPattern (required) string The pattern that will be used for ID validation (as referred to as an input mask). none

Enumerated Values

Property Value
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN

DepositOverdraftInterestSettings

{
  "indexInterestRate": 0,
  "interestRate": 0
}

Holds the deposit overdraft interest settings

Properties

Name Type Description Restrictions
indexInterestRate number The value of the index interest rate set or changed in this transaction none
interestRate number The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches none

DepositOverdraftSettings

{
  "overdraftLimit": 0
}

Holds the deposit overdraft settings for a transaction

Properties

Name Type Description Restrictions
overdraftLimit number The overdraft limit that was set or changed in this transaction none

DepositProduct

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string"
      }
    ],
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_DEPOSIT",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      {
        "code": "AED",
        "currencyCode": "string"
      }
    ]
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string"
          }
        ],
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "state": "ACTIVE",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestPaidIntoAccount": true,
    "interestPaymentSettings": {
      "interestPaymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
    },
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "maturitySettings": {
    "maturityPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "overdraftInterestSettings": {
    "daysInYear": "ACTUAL_365_FIXED",
    "interestCalculationBalance": "MINIMUM",
    "interestRateSettings": {
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    }
  },
  "overdraftSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "CURRENT_ACCOUNT"
}

A deposit product defines the terms and constraints on deposit accounts

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
accountingSettings (required) DepositProductAccountingSettings Accounting settings, defines the accounting settings for the product. none
availabilitySettings DepositProductAvailabilitySettings Holds information about product availability. none
category string Indicates the category that the product belongs to none
creationDate string(date-time) The date this product was created none
creditArrangementSettings CreditArrangementSettings The funding settings, holds the settings regarding the funding for the loan product. none
currencySettings DepositProductCurrencySettings Currency settings for the product. none
encodedKey string The encoded key of the deposit product, auto generated, unique read-only
feesSettings DepositProductFeeSettings Defines fees settings for the product. none
id (required) string The id of the product, can be generated and customized, unique none
interestSettings DepositProductInterestSettings The interest settings, defines constraints regarding interest that will be used on the deposit account based on this product. none
internalControls DepositProductInternalControls Constraints and automated actions and that will be applied on the accounts. none
lastModifiedDate string(date-time) The last date the product was updated none
maturitySettings DepositMaturitySettings The maturity settings for the product. none
name (required) string The name of the product none
newAccountSettings (required) DepositNewAccountSettings New Account settings for deposit accounts none
notes string Some notes/a description about the product none
offsetSettings DepositProductOffsetSettings The offset settings, holds information about offset. none
overdraftInterestSettings OverdraftInterestSettings Overdraft settings for the product none
overdraftSettings DepositProductOverdraftSettings The overdraft settings of the deposit product none
state (required) string Indicates the current state of the product none
taxSettings DepositProductTaxSettings Tax settings, defines some settings for taxes on the loan product none
templates [DocumentTemplate] Template documents of the product. none
type (required) string Indicates the type of product. none

Enumerated Values

Property Value
category PERSONAL_DEPOSIT
category BUSINESS_DEPOSIT
category DAILY_BANKING_ACCOUNTS
category BUSINESS_BANKING_ACCOUNTS
category STORED_VALUE_ACCOUNTS
category UNCATEGORIZED
state ACTIVE
state INACTIVE
type CURRENT_ACCOUNT
type REGULAR_SAVINGS
type FIXED_DEPOSIT
type SAVINGS_PLAN
type INVESTOR_ACCOUNT

DepositProductAccountingConfiguration

{
  "accountingMethod": "NONE",
  "accountingRules": [
    {
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountCode": "string"
    }
  ],
  "interestAccrualCalculation": "NONE",
  "interestAccruedAccountingMethod": "NONE"
}

Accounting settings, defines the accounting settings configuration of the product.

Properties

Name Type Description Restrictions
accountingMethod string The method of calculation used for accounting. none
accountingRules [DepositGLAccountingRuleConfiguration] The list of accounting rules of the product. none
interestAccrualCalculation string The calculation method used for the interest accrued. none
interestAccruedAccountingMethod string The accounting method used for the interest accrued. none

Enumerated Values

Property Value
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
interestAccrualCalculation NONE
interestAccrualCalculation AGGREGATED_AMOUNT
interestAccrualCalculation BREAKDOWN_PER_ACCOUNT
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH

DepositProductAccountingSettings

{
  "accountingMethod": "NONE",
  "accountingRules": [
    {
      "encodedKey": "string",
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountKey": "string"
    }
  ],
  "interestAccruedAccountingMethod": "NONE"
}

Accounting settings, defines the accounting settings for the product.

Properties

Name Type Description Restrictions
accountingMethod (required) string A list of accounting rules for a product. none
accountingRules [DepositGLAccountingRule] A list of accounting rules for the product. none
interestAccruedAccountingMethod string A list of accounting rules for a product. none

Enumerated Values

Property Value
accountingMethod NONE
accountingMethod CASH
accountingMethod ACCRUAL
interestAccruedAccountingMethod NONE
interestAccruedAccountingMethod DAILY
interestAccruedAccountingMethod END_OF_MONTH

DepositProductAction

{
  "action": "UPDATE_INTEREST_SETTINGS"
}

Specify the batch update action details for a deposit product.

Properties

Name Type Description Restrictions
action (required) string The action type to be applied. When UPDATE_INTEREST_SETTINGS action type is used, all the existing deposit accounts will be updated with the latest interest-related fields at the end of day job execution none

Enumerated Values

Property Value
action UPDATE_INTEREST_SETTINGS

DepositProductActionResponse

{
  "state": "QUEUED"
}

Represents the response returned after a batch update action for a deposit product.

Properties

Name Type Description Restrictions
state string The state of the deposit product action read-only

Enumerated Values

Property Value
state QUEUED

DepositProductAvailabilityConfiguration

{
  "branchSettings": {
    "allBranches": true,
    "branches": [
      "string"
    ]
  },
  "forGroups": true,
  "forIndividuals": true
}

Holds information about product availability.

Properties

Name Type Description Restrictions
branchSettings ProductBranchConfiguration Holds information about branch availability for the product. none
forGroups boolean Marks this product as available for groups. none
forIndividuals boolean Marks this product as available for individuals. none

DepositProductAvailabilitySettings

{
  "availableFor": [
    "INDIVIDUALS"
  ],
  "branchSettings": {
    "availableProductBranches": [
      "string"
    ],
    "forAllBranches": true
  }
}

Holds information about product availability.

Properties

Name Type Description Restrictions
availableFor [string] Holds the entities this product is available for. i.e Individuals none
branchSettings BranchSettings Holds information about branch availability for the product. none

DepositProductConfiguration

{
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountCode": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "availabilitySettings": {
    "branchSettings": {
      "allBranches": true,
      "branches": [
        "string"
      ]
    },
    "forGroups": true,
    "forIndividuals": true
  },
  "category": "PERSONAL_DEPOSIT",
  "creditArrangementSettings": {
    "requirement": "OPTIONAL"
  },
  "currencySettings": {
    "currencies": [
      "string"
    ]
  },
  "description": "string",
  "feeSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountCode": "string"
          }
        ],
        "active": true,
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "id": "string",
        "name": "string",
        "trigger": "MANUAL"
      }
    ]
  },
  "id": "string",
  "interestSettings": {
    "calculationBalance": "MINIMUM",
    "collectInterestWhenLocked": true,
    "daysInYear": "ACTUAL_365_FIXED",
    "interestGainsProvidedEndDate": "1987-04-26",
    "interestGainsProvidedStartDate": "1987-04-26",
    "interestRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceId": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maximumBalance": 0,
    "paidIntoAccount": true,
    "paymentSettings": {
      "paymentDates": [
        {
          "day": 0,
          "month": 0
        }
      ],
      "paymentPoint": "FIRST_DAY_OF_MONTH"
    }
  },
  "internalControlsSettings": {
    "allowOffset": true,
    "dormancyPeriodDays": 0,
    "maxWithdrawalAmount": 0,
    "openingBalance": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "recommendedDepositAmount": 0
  },
  "maturitySettings": {
    "maturityPeriodInterval": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "maturityPeriodUnit": "DAYS"
  },
  "name": "string",
  "newAccountSettings": {
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "overdraftInterestSettings": {
    "allowOverdraft": true,
    "allowTechnicalOverdraft": true,
    "calculationBalance": "MINIMUM",
    "daysInYear": "ACTUAL_365_FIXED",
    "interestRateSettings": {
      "allowNegativeInterestRate": true,
      "indexSourceId": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "endingDay": 0,
          "interestRate": 0
        }
      ]
    },
    "maxOverdraftLimit": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "withholdingTaxEnabled": true
  },
  "type": "CURRENT_ACCOUNT"
}

Model representation of the configuration for a deposit product.

Properties

Name Type Description Restrictions
accountingSettings DepositProductAccountingConfiguration Accounting settings, defines the accounting settings configuration of the product. none
availabilitySettings DepositProductAvailabilityConfiguration Holds information about product availability. none
category string Indicates the category that the product belongs to. none
creditArrangementSettings DepositProductCreditArrangementConfiguration The funding settings, holds the settings regarding the funding for the product. none
currencySettings DepositProductCurrencyConfiguration The currency settings for the product. none
description string Description for the product. none
feeSettings DepositProductFeeConfiguration Defines the fee settings of the product. none
id (required) string User-defined ID, globally unique. none
interestSettings DepositProductInterestConfiguration The interest settings, defines constraints regarding interest that will be used on the deposit account based on this product. none
internalControlsSettings DepositProductInternalControlsConfiguration Constraints and automated actions that will be applied on the accounts. none
maturitySettings DepositProductMaturityConfiguration Maturity settings for deposit accounts none
name (required) string Name of deposits product. none
newAccountSettings DepositProductNewAccountConfiguration New Account settings for deposit accounts none
overdraftInterestSettings DepositProductOverdraftInterestConfiguration The overdraft interest settings, defines constraints regarding interest that will be used on the account created based on this product. none
state (required) string Indicates the current state of the product. none
taxSettings DepositProductTaxConfiguration Defines some settings for taxes on the deposit product none
type (required) string The type of deposit product. This influences the behavior and possible parameters of the account. none

Enumerated Values

Property Value
category PERSONAL_DEPOSIT
category BUSINESS_DEPOSIT
category DAILY_BANKING_ACCOUNTS
category BUSINESS_BANKING_ACCOUNTS
category STORED_VALUE_ACCOUNTS
category UNCATEGORIZED
state ACTIVE
state INACTIVE
type CURRENT_ACCOUNT
type REGULAR_SAVINGS
type FIXED_DEPOSIT
type SAVINGS_PLAN
type INVESTOR_ACCOUNT

DepositProductCreditArrangementConfiguration

{
  "requirement": "OPTIONAL"
}

The funding settings, holds the settings regarding the funding for the product.

Properties

Name Type Description Restrictions
requirement string Shows whether accounts created after this product can/should be part of a line of credit. none

Enumerated Values

Property Value
requirement OPTIONAL
requirement REQUIRED
requirement NOT_REQUIRED

DepositProductCurrencyConfiguration

{
  "currencies": [
    "string"
  ]
}

The currency settings for the product.

Properties

Name Type Description Restrictions
currencies [string] Currencies that can be used by accounts of the product. none

DepositProductCurrencySettings

{
  "currencies": [
    {
      "code": "AED",
      "currencyCode": "string"
    }
  ]
}

Currency settings for the product.

Properties

Name Type Description Restrictions
currencies [Currency] Currencies that can be used by accounts of this product none

DepositProductDecimalConstraintsConfiguration

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Used for keeping decimal constraints.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
maxValue number The maximum value. none
minValue number The minimum value. none

DepositProductFeeConfiguration

{
  "allowArbitraryFees": true,
  "fees": [
    {
      "accountingRules": [
        {
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountCode": "string"
        }
      ],
      "active": true,
      "amount": 0,
      "amountCalculationFunctionName": "string",
      "amountCalculationMethod": "FLAT",
      "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
      "id": "string",
      "name": "string",
      "trigger": "MANUAL"
    }
  ]
}

Defines the fee settings of the product.

Properties

Name Type Description Restrictions
allowArbitraryFees boolean Indicates if arbitrary fees will be allowed. none
fees [DepositProductPredefinedFeeConfiguration] List of all fees that can be applied for accounts of this deposit product. none

DepositProductFeeSettings

{
  "allowArbitraryFees": true,
  "fees": [
    {
      "accountingRules": [
        {
          "encodedKey": "string",
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountKey": "string"
        }
      ],
      "amount": 0,
      "amountCalculationFunctionName": "string",
      "amountCalculationMethod": "FLAT",
      "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "feeApplication": "REQUIRED",
      "id": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "state": "ACTIVE",
      "trigger": "MANUAL"
    }
  ]
}

Defines fees settings for the product.

Properties

Name Type Description Restrictions
allowArbitraryFees boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount. none
fees [DepositProductPredefinedFee] List of all fees that can be applied for accounts of this loan product. none

DepositProductInterestConfiguration

{
  "calculationBalance": "MINIMUM",
  "collectInterestWhenLocked": true,
  "daysInYear": "ACTUAL_365_FIXED",
  "interestGainsProvidedEndDate": "1987-04-26",
  "interestGainsProvidedStartDate": "1987-04-26",
  "interestRateSettings": {
    "accrueInterestAfterMaturity": true,
    "allowNegativeInterestRate": true,
    "indexSourceId": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ]
  },
  "maximumBalance": 0,
  "paidIntoAccount": true,
  "paymentSettings": {
    "paymentDates": [
      {
        "day": 0,
        "month": 0
      }
    ],
    "paymentPoint": "FIRST_DAY_OF_MONTH"
  }
}

The interest settings, defines constraints regarding interest that will be used on the deposit account based on this product.

Properties

Name Type Description Restrictions
calculationBalance string The balance which is used for the interest calculation. none
collectInterestWhenLocked boolean Whether locked accounts still collect Interest or not. none
daysInYear string How many days in a year should be used for interest calculations. none
interestGainsProvidedEndDate string(date) The date when the accounts under this product, will no longer have interest gains provided none
interestGainsProvidedStartDate string(date) The date when the accounts of this product will start to have interest gains provided. Starting with this date 0 interest rate is enforced on the accounts of this product. none
interestRateSettings DepositProductInterestRateConfiguration The interest rate settings, defines constraints regarding interest that will be used on the deposit account based on this product. none
maximumBalance number The maximum balance used for Interest calculation. none
paidIntoAccount boolean If interest should be payed into the deposit account. none
paymentSettings DepositProductPaymentConfiguration Defines the interest payment settings for the deposit product and for deposits created based on this product none

Enumerated Values

Property Value
calculationBalance MINIMUM
calculationBalance AVERAGE
calculationBalance END_OF_DAY
calculationBalance MINIMUM_TO_END_OF_DAY
calculationBalance FRENCH_INTEREST_ACCRUAL
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_364
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear BUS_252
daysInYear E30_42_365

DepositProductInterestRateConfiguration

{
  "accrueInterestAfterMaturity": true,
  "allowNegativeInterestRate": true,
  "indexSourceId": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ]
}

The interest rate settings, defines constraints regarding interest that will be used on the deposit account based on this product.

Properties

Name Type Description Restrictions
accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date. none
allowNegativeInterestRate boolean Interest rate review frequency unit count. none
indexSourceId string Index rate source id. none
interestChargeFrequency string The interval used for determining how often the interest is charged. none
interestChargeFrequencyCount integer(int32) The count of units to apply over the interval. none
interestRate DepositProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count. none
interestRateReviewUnit string Interest rate review frequency measurement unit. none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate). none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account. none
interestRateTiers [DepositProductInterestRateTierConfiguration] The list of interest rate tiers available for the current settings instance. none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositProductInterestRateSettings

{
  "accrueInterestAfterMaturity": true,
  "allowNegativeInterestRate": true,
  "encodedKey": "string",
  "indexSourceKey": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ]
}

The interest settings, defines constraints regarding interest that will be used on the deposit created based on this product.

Properties

Name Type Description Restrictions
accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date none
allowNegativeInterestRate boolean Indicator whether the deposit product allows negative values for interest rate none
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
indexSourceKey string Index rate source key. none
interestChargeFrequency string The interval used for determining how often is interest charged none
interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
interestRate DecimalInterval Decimal constraints, like min/max/default. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count none
interestRateReviewUnit string Interest rate review frequency measurement unit none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
interestRateTiers [DepositProductInterestRateTier] The list of interest rate tiers available for the current settings instance none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositProductInterestRateTier

{
  "encodedKey": "string",
  "endingBalance": 0,
  "endingDay": 0,
  "interestRate": 0
}

Used or TIERED interest rates, holds the values to define how the interest is computed

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
endingDay integer(int32) The top-limit value for the account period since activation in order to determine if this tier is used or not none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

DepositProductInterestRateTierConfiguration

{
  "endingBalance": 0,
  "endingDay": 0,
  "interestRate": 0
}

Holds the values to define how the interest is computed

Properties

Name Type Description Restrictions
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
endingDay integer(int32) The top-limit value for the account period since activation in order to determine if this tier is used or not none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

DepositProductInterestSettings

{
  "collectInterestWhenLocked": true,
  "daysInYear": "ACTUAL_365_FIXED",
  "interestCalculationBalance": "MINIMUM",
  "interestGainsProvidedEndDate": "1987-04-26",
  "interestGainsProvidedStartDate": "1987-04-26",
  "interestPaidIntoAccount": true,
  "interestPaymentSettings": {
    "interestPaymentDates": [
      {
        "day": 0,
        "month": 0
      }
    ],
    "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
  },
  "interestRateSettings": {
    "accrueInterestAfterMaturity": true,
    "allowNegativeInterestRate": true,
    "encodedKey": "string",
    "indexSourceKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ]
  },
  "maximumBalance": 0
}

The interest settings, defines constraints regarding interest that will be used on the deposit account based on this product.

Properties

Name Type Description Restrictions
collectInterestWhenLocked boolean Whether locked accounts still collect Interest or not none
daysInYear string How many days in a year should be used for interest calculations none
interestCalculationBalance string The balance which is used for the Interest calculation none
interestGainsProvidedEndDate string(date) The date when the accounts under this product, will no longer have interest gains provided none
interestGainsProvidedStartDate string(date) The date when the accounts of this product will start to have interest gains provided. Starting with this date 0 interest rate is enforced on the accounts of this product. none
interestPaidIntoAccount boolean If interest should be payed into the deposit account none
interestPaymentSettings InterestPaymentSettings Defines the interest payment settings for the deposit product and for deposits created based on this product none
interestRateSettings DepositProductInterestRateSettings The interest settings, defines constraints regarding interest that will be used on the deposit created based on this product. none
maximumBalance number The maximum balance used for Interest calculation none

Enumerated Values

Property Value
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear E30_42_365
daysInYear BUS_252
interestCalculationBalance MINIMUM
interestCalculationBalance AVERAGE
interestCalculationBalance END_OF_DAY
interestCalculationBalance MINIMUM_TO_END_OF_DAY
interestCalculationBalance FRENCH_INTEREST_ACCRUAL

DepositProductInternalControls

{
  "dormancyPeriodDays": 0,
  "maxWithdrawalAmount": 0,
  "openingBalance": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "recommendedDepositAmount": 0
}

Constraints and automated actions and that will be applied on the accounts.

Properties

Name Type Description Restrictions
dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
maxWithdrawalAmount number Max amount per withdrawal none
openingBalance AmountDecimalInterval Decimal constraints, like min/max/default. none
recommendedDepositAmount number Recommended amount for a deposit none

DepositProductInternalControlsConfiguration

{
  "allowOffset": true,
  "dormancyPeriodDays": 0,
  "maxWithdrawalAmount": 0,
  "openingBalance": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "recommendedDepositAmount": 0
}

Constraints and automated actions that will be applied on the accounts.

Properties

Name Type Description Restrictions
allowOffset boolean Specifies the offset availability of the product. none
dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
maxWithdrawalAmount number Max amount per withdrawal none
openingBalance DepositProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
recommendedDepositAmount number Recommended amount for a deposit none

DepositProductMaturityConfiguration

{
  "maturityPeriodInterval": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "maturityPeriodUnit": "DAYS"
}

Maturity settings for deposit accounts

Properties

Name Type Description Restrictions
maturityPeriodInterval DepositProductMaturityIntervalConfiguration Maturity period interval constraints none
maturityPeriodUnit string Maturity period measurement unit none

Enumerated Values

Property Value
maturityPeriodUnit DAYS
maturityPeriodUnit WEEKS
maturityPeriodUnit MONTHS

DepositProductMaturityIntervalConfiguration

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Maturity period interval constraints

Properties

Name Type Description Restrictions
defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
maxValue integer(int32) The maximum value. none
minValue integer(int32) The minimum value. none

DepositProductNewAccountConfiguration

{
  "idGeneratorType": "INCREMENTAL_NUMBER",
  "idPattern": "string"
}

New Account settings for deposit accounts

Properties

Name Type Description Restrictions
idGeneratorType string The type of generator used for IDs creation. none
idPattern string The pattern that will be used for ID validation (as referred to as an input mask). none

Enumerated Values

Property Value
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN

DepositProductOffsetSettings

{
  "allowOffset": true
}

The offset settings, holds information about offset.

Properties

Name Type Description Restrictions
allowOffset boolean Specify if the product allow to create accounts which can be used as offset for loans none

DepositProductOverdraftInterestConfiguration

{
  "allowOverdraft": true,
  "allowTechnicalOverdraft": true,
  "calculationBalance": "MINIMUM",
  "daysInYear": "ACTUAL_365_FIXED",
  "interestRateSettings": {
    "allowNegativeInterestRate": true,
    "indexSourceId": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ]
  },
  "maxOverdraftLimit": 0
}

The overdraft interest settings, defines constraints regarding interest that will be used on the account created based on this product.

Properties

Name Type Description Restrictions
allowOverdraft boolean Whether the accounts for this product may have overdraft. none
allowTechnicalOverdraft boolean Whether the accounts for this product may have technical overdraft. none
calculationBalance string The balance which is used for the interest calculation. none
daysInYear string How many days in a year should be used for interest calculations. none
interestRateSettings DepositProductOverdraftInterestRateConfiguration The overdraft interest rate settings, defines constraints regarding interest that will be used on the account created based on this product. none
maxOverdraftLimit number How much money may be taken out for the account to go negative. none

Enumerated Values

Property Value
calculationBalance MINIMUM
calculationBalance AVERAGE
calculationBalance END_OF_DAY
calculationBalance MINIMUM_TO_END_OF_DAY
calculationBalance FRENCH_INTEREST_ACCRUAL
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_364
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear BUS_252
daysInYear E30_42_365

DepositProductOverdraftInterestRateConfiguration

{
  "allowNegativeInterestRate": true,
  "indexSourceId": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "endingBalance": 0,
      "endingDay": 0,
      "interestRate": 0
    }
  ]
}

The overdraft interest rate settings, defines constraints regarding interest that will be used on the account created based on this product.

Properties

Name Type Description Restrictions
allowNegativeInterestRate boolean Interest rate review frequency unit count. none
indexSourceId string Index rate source id. none
interestChargeFrequency string The interval used for determining how often the interest is charged. none
interestChargeFrequencyCount integer(int32) The count of units to apply over the interval. none
interestRate DepositProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count. none
interestRateReviewUnit string Interest rate review frequency measurement unit. none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate). none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account. none
interestRateTiers [DepositProductInterestRateTierConfiguration] The list of interest rate tiers available for the current settings instance. none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositProductOverdraftInterestRateSettings

{
  "indexSourceKey": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "interestRate": 0
    }
  ]
}

The overdraft interest settings, defines constraints regarding interest that will be used on the account created based on this product.

Properties

Name Type Description Restrictions
indexSourceKey string Index rate source key. none
interestChargeFrequency string The interval used for determining how often is interest charged none
interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
interestRate DecimalInterval Decimal constraints, like min/max/default. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count none
interestRateReviewUnit string Interest rate review frequency measurement unit none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
interestRateTiers [DepositProductOverdraftInterestRateTier] The list of interest rate tiers available for the current settings instance none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

DepositProductOverdraftInterestRateTier

{
  "encodedKey": "string",
  "endingBalance": 0,
  "interestRate": 0
}

Used for TIERED interest rates, holds the values to define how the interest is computed

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

DepositProductOverdraftSettings

{
  "allowOverdraft": true,
  "allowTechnicalOverdraft": true,
  "maxOverdraftLimit": 0
}

The overdraft settings of the deposit product

Properties

Name Type Description Restrictions
allowOverdraft boolean Whether the accounts for this product may have overdraft none
allowTechnicalOverdraft boolean Whether the accounts for this product may have technical overdraft none
maxOverdraftLimit number How much money may be taken out for the account to go negative none

DepositProductPaymentConfiguration

{
  "paymentDates": [
    {
      "day": 0,
      "month": 0
    }
  ],
  "paymentPoint": "FIRST_DAY_OF_MONTH"
}

Defines the interest payment settings for the deposit product and for deposits created based on this product

Properties

Name Type Description Restrictions
paymentDates [MonthAndDayConfiguration] List of all dates on which the interest is payed into deposit account none
paymentPoint string Specifies when the interest should be paid to the deposit account none

Enumerated Values

Property Value
paymentPoint FIRST_DAY_OF_MONTH
paymentPoint EVERY_WEEK
paymentPoint EVERY_OTHER_WEEK
paymentPoint EVERY_MONTH
paymentPoint EVERY_3_MONTHS
paymentPoint ON_FIXED_DATES
paymentPoint DAILY
paymentPoint ANNUALLY
paymentPoint BI_ANNUALLY
paymentPoint ON_ACCOUNT_MATURITY

DepositProductPredefinedFee

{
  "accountingRules": [
    {
      "encodedKey": "string",
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountKey": "string"
    }
  ],
  "amount": 0,
  "amountCalculationFunctionName": "string",
  "amountCalculationMethod": "FLAT",
  "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "feeApplication": "REQUIRED",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "state": "ACTIVE",
  "trigger": "MANUAL"
}

The response representation of the PredefinedFee. Represents a fee with a defined name and a fixed value.

Properties

Name Type Description Restrictions
accountingRules [DepositGLAccountingRule] A list of accounting rules defined for this fee. If null, product default rules are selected. none
amount number The amount of the fee none
amountCalculationFunctionName string External function none
amountCalculationMethod string The amount from which the fee is calculated using percentageAmount none
applyDateMethod string Shows when a fee should be applied; to be used with monthly deposit fees none
creationDate string(date-time) Shows the creation date of the fee none
encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
feeApplication (required) string The type of fee application when disbursement is applied none
id string The id of the fee none
lastModifiedDate string(date-time) Shows the last modified date of the fee none
name string The name of the fee none
state (required) string Indicates the state of the fee none
trigger (required) string Shows the event that will trigger a fee none

Enumerated Values

Property Value
amountCalculationMethod FLAT
amountCalculationMethod MAMBU_FUNCTION
applyDateMethod MONTHLY_FROM_ACTIVATION
applyDateMethod FIRST_OF_EVERY_MONTH
feeApplication REQUIRED
feeApplication OPTIONAL
state ACTIVE
state INACTIVE
trigger MANUAL
trigger MONTHLY_FEE
trigger ARBITRARY

DepositProductPredefinedFeeConfiguration

{
  "accountingRules": [
    {
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountCode": "string"
    }
  ],
  "active": true,
  "amount": 0,
  "amountCalculationFunctionName": "string",
  "amountCalculationMethod": "FLAT",
  "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
  "id": "string",
  "name": "string",
  "trigger": "MANUAL"
}

Represents the configuration for a predefined fee.

Properties

Name Type Description Restrictions
accountingRules [DepositGLAccountingRuleConfiguration] A list of accounting rules defined for this fee. none
active boolean Indicates if the fee is active. none
amount number The amount of the fee. none
amountCalculationFunctionName string External function none
amountCalculationMethod string The amount from which the fee is calculated. none
applyDateMethod string Shows when a fee should be applied; to be used with monthly deposit fees. none
id string The id of the fee. none
name string The name of the fee. none
trigger string Shows the event that will trigger a fee. none

Enumerated Values

Property Value
amountCalculationMethod FLAT
amountCalculationMethod MAMBU_FUNCTION
applyDateMethod MONTHLY_FROM_ACTIVATION
applyDateMethod FIRST_OF_EVERY_MONTH
trigger MANUAL
trigger MONTHLY_FEE

DepositProductTaxConfiguration

{
  "withholdingTaxEnabled": true
}

Defines some settings for taxes on the deposit product

Properties

Name Type Description Restrictions
withholdingTaxEnabled boolean Whether withholding taxes are enabled for this product or not none

DepositProductTaxSettings

{
  "withholdingTaxEnabled": true
}

Tax settings, defines some settings for taxes on the loan product

Properties

Name Type Description Restrictions
withholdingTaxEnabled boolean Whether withholding taxes are enabled for this product or not none

DepositProductsConfiguration

{
  "depositProducts": [
    {
      "accountingSettings": {
        "accountingMethod": "NONE",
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountCode": "string"
          }
        ],
        "interestAccrualCalculation": "NONE",
        "interestAccruedAccountingMethod": "NONE"
      },
      "availabilitySettings": {
        "branchSettings": {
          "allBranches": true,
          "branches": [
            "string"
          ]
        },
        "forGroups": true,
        "forIndividuals": true
      },
      "category": "PERSONAL_DEPOSIT",
      "creditArrangementSettings": {
        "requirement": "OPTIONAL"
      },
      "currencySettings": {
        "currencies": [
          "string"
        ]
      },
      "description": "string",
      "feeSettings": {
        "allowArbitraryFees": true,
        "fees": [
          {
            "accountingRules": [
              {
                "financialResource": "PORTFOLIO_CONTROL",
                "glAccountCode": "string"
              }
            ],
            "active": true,
            "amount": 0,
            "amountCalculationFunctionName": "string",
            "amountCalculationMethod": "FLAT",
            "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
            "id": "string",
            "name": "string",
            "trigger": "MANUAL"
          }
        ]
      },
      "id": "string",
      "interestSettings": {
        "calculationBalance": "MINIMUM",
        "collectInterestWhenLocked": true,
        "daysInYear": "ACTUAL_365_FIXED",
        "interestGainsProvidedEndDate": "1987-04-26",
        "interestGainsProvidedStartDate": "1987-04-26",
        "interestRateSettings": {
          "accrueInterestAfterMaturity": true,
          "allowNegativeInterestRate": true,
          "indexSourceId": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ]
        },
        "maximumBalance": 0,
        "paidIntoAccount": true,
        "paymentSettings": {
          "paymentDates": [
            {
              "day": 0,
              "month": 0
            }
          ],
          "paymentPoint": "FIRST_DAY_OF_MONTH"
        }
      },
      "internalControlsSettings": {
        "allowOffset": true,
        "dormancyPeriodDays": 0,
        "maxWithdrawalAmount": 0,
        "openingBalance": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "recommendedDepositAmount": 0
      },
      "maturitySettings": {
        "maturityPeriodInterval": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "maturityPeriodUnit": "DAYS"
      },
      "name": "string",
      "newAccountSettings": {
        "idGeneratorType": "INCREMENTAL_NUMBER",
        "idPattern": "string"
      },
      "overdraftInterestSettings": {
        "allowOverdraft": true,
        "allowTechnicalOverdraft": true,
        "calculationBalance": "MINIMUM",
        "daysInYear": "ACTUAL_365_FIXED",
        "interestRateSettings": {
          "allowNegativeInterestRate": true,
          "indexSourceId": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "endingBalance": 0,
              "endingDay": 0,
              "interestRate": 0
            }
          ]
        },
        "maxOverdraftLimit": 0
      },
      "state": "ACTIVE",
      "taxSettings": {
        "withholdingTaxEnabled": true
      },
      "type": "CURRENT_ACCOUNT"
    }
  ]
}

Model representation of the deposit products configuration

Properties

Name Type Description Restrictions
depositProducts (required) [DepositProductConfiguration] List of all deposit products. none

DepositTaxes

{
  "taxRate": 0
}

The taxes applied within a transaction

Properties

Name Type Description Restrictions
taxRate number The tax rate that was set or changed in this transaction none

DepositTerms

{
  "interestSettings": {
    "indexInterestRate": 0,
    "interestRate": 0
  },
  "overdraftInterestSettings": {
    "indexInterestRate": 0,
    "interestRate": 0
  },
  "overdraftSettings": {
    "overdraftLimit": 0
  }
}

The deposit transaction terms

Properties

Name Type Description Restrictions
interestSettings DepositTransactionInterestSettings The interest settings, holds all the properties regarding interests for the deposit account none
overdraftInterestSettings DepositOverdraftInterestSettings Holds the deposit overdraft interest settings none
overdraftSettings DepositOverdraftSettings Holds the deposit overdraft settings for a transaction none

DepositTransaction

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the action performed on an Deposit Account after which the account's amount changes its value.

Properties

Name Type Description Restrictions
accountBalances DepositTransactionBalances The balances changed within a transaction. none
adjustmentTransactionKey string The key of the deposit transaction where the adjustment for this transaction was made (if any adjustment was involved) none
affectedAmounts DepositAffectedAmounts The amounts affected after completing the deposit transaction none
amount number How much was added/removed in account none
blockId string The block fund id associated with the transaction none
bookingDate string(date-time) The date when corresponding JE is booked (as Organization Time) none
branchKey string The branch where the transaction was performed read-only
cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
centreKey string The center where the transaction was performed read-only
creationDate string(date-time) The date when this deposit transaction was created read-only
currencyCode string The currency in which this transaction was posted none
encodedKey string The encoded key of the deposit transaction, auto generated, unique read-only
externalId string The external id of the deposit transaction, customizable, unique none
fees [DepositFee] All the amounts that have been applied or paid within this transaction and involved predefined fees read-only
holdExternalReferenceId string The external id of an account authorization hold none
id string The id of the deposit transaction, auto generated, unique none
interestAccruedAmounts DepositInterestAccruedAmounts Represents the accrued interest amounts for an Interest Applied deposit transaction. none
migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, track which 'migration event' they came from none
notes string Extra notes about this deposit transaction none
originalTransactionKey string The encodedKey of the transaction that was adjusted as part of this one. Available only for adjustment transactions none
parentAccountKey string The key of the parent deposit account none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the deposit transaction, customizable none
taxes DepositTaxes The taxes applied within a transaction none
terms DepositTerms The deposit transaction terms none
tillKey string The till key associated with this transaction none
transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
type string The type of the deposit transaction none
userKey string The person that performed the transaction none
valueDate string(date-time) Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time) none

Enumerated Values

Property Value
type IMPORT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type DEPOSIT
type ADJUSTMENT
type WITHDRAWAL
type WITHDRAWAL_ADJUSTMENT
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type FEE_APPLIED
type FEE_ADJUSTED
type FEES_DUE_REDUCED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type NET_DIFF_INTEREST
type FEE_REDUCTION_ADJUSTMENT
type WITHHOLDING_TAX
type WITHHOLDING_TAX_ADJUSTMENT
type INTEREST_RATE_CHANGED
type OVERDRAFT_INTEREST_RATE_CHANGED
type OVERDRAFT_LIMIT_CHANGED
type BRANCH_CHANGED
type LOAN_FUNDED
type LOAN_FUNDED_ADJUSTMENT
type LOAN_REPAID
type LOAN_REPAID_ADJUSTMENT
type LOAN_FRACTION_BOUGHT
type LOAN_FRACTION_BOUGHT_ADJUSTMENT
type LOAN_FRACTION_SOLD
type LOAN_FRACTION_SOLD_ADJUSTMENT
type SEIZED_AMOUNT

DepositTransactionAdjustmentDetails

{
  "bookingDate": "2020-12-09T13:01:22+01:00",
  "notes": "some notes, for example, the reason for adjustment"
}

Contains the details of the transaction adjustment

Properties

Name Type Description Restrictions
bookingDate string(date-time) Date when the adjustment transaction is logged into accounting. Can be null. Available only for DEPOSIT and WITHDRAWAL none
notes (required) string Notes detailing why the transaction is adjusted none

DepositTransactionBalances

{
  "totalBalance": 0
}

The balances changed within a transaction.

Properties

Name Type Description Restrictions
totalBalance number The running balance owed by deposit none

DepositTransactionBulkableInputDTO

[
  {
    "_EXAMPLE_CUSTOM_FIELDS": {
      "Example_Checkbox_Field": "TRUE",
      "Example_Number_Field": "123987",
      "Example_Text_Field": "Up to 255 characters of Text"
    },
    "accountId": "GHI-789",
    "amount": 200,
    "externalId": "46290",
    "notes": "some notes about this transaction",
    "paymentOrderId": "PAY-1234-abc",
    "transactionDetails": {
      "transactionChannelId": "cash",
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "_EXAMPLE_CUSTOM_FIELDS": {
      "Example_Checkbox_Field": "FALSE",
      "Example_Number_Field": "567432",
      "Example_Text_Field": "Up to 255 characters of Text"
    },
    "accountId": "DEF-456",
    "amount": 302,
    "externalId": "1234",
    "notes": "some notes about this transaction",
    "paymentOrderId": "PAY-5678-def",
    "transactionDetails": {
      "transactionChannelId": "cheque",
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  },
  {
    "_EXAMPLE_CUSTOM_FIELDS": {
      "Example_Checkbox_Field": "TRUE",
      "Example_Number_Field": "192837",
      "Example_Text_Field": "Up to 255 characters of Text"
    },
    "accountId": "ABC-123",
    "amount": 546.5,
    "externalId": "5678",
    "notes": "some notes about this transaction",
    "paymentOrderId": "PAY-9876-ghi",
    "transactionDetails": {
      "transactionChannelId": "bank",
      "transactionChannelKey": "8a194075720ece2c017226fcf55e0064"
    }
  }
]

Represents the request payload for creating a deposit transactions when sent in bulk.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
accountId (required) string The id of the account none
amount (required) number The amount that was added to an account none
externalId string The external id of the deposit transaction, customizable, unique none
holdExternalReferenceId string The external id of an account authorization hold none
notes string Extra notes about this deposit transaction none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the deposit transaction, customizable none
skipMaximumBalanceValidation boolean Flag indicating that a maximum balance validation should be skipped none
transactionDetails TransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none

DepositTransactionDocument

{}

Properties

None

DepositTransactionFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The unit that composes the list used for Deposit transactions client directed searching

Properties

Name Type Description Restrictions
field (required) string The fields to search can be the enumerated values or a custom field using the format [customFieldSetId].[customFieldId].
Field with limited capabilities
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field id
field externalId
field holdExternalReferenceId
field productID
field currencyCode
field branchID
field branchKey
field centreID
field centreKey
field tillID
field tillKey
field amount
field affectedAmounts.fundsAmount
field affectedAmounts.interestAmount
field affectedAmounts.feesAmount
field parentAccountKey
field parentAccountID
field productTypeKey
field paymentOrderId
field userKey
field adjustmentTransactionID
field adjustmentTransactionKey
field originalTransactionKey
field originalTransactionID
field transactionDetails.transactionChannelKey
field transactionDetails.transactionChannelId
field type
field creationDate
field accountBalances.totalBalance
field valueDate
field taxes.taxRate
field terms.interestSettings.interestRate
field fees.trigger
field fees.name
field fees.predefinedFeeKey
field wasAdjusted
field typeIsAdjustment
field affectedAmounts.overdraftAmount
field affectedAmounts.overdraftInterestAmount
field affectedAmounts.overdraftFeesAmount
field affectedAmounts.technicalOverdraftAmount
field affectedAmounts.technicalOverdraftInterestAmount
field terms.overdraftInterestSettings.interestRate
field terms.overdraftInterestSettings.indexInterestRate
field _Example_Custom_Fields.Example_Free_Text_Field
field _Example_Custom_Fields.Example_Number_Field
field _Example_Custom_Fields.Example_Checkbox_Field
field _Example_Custom_Fields.Example_Select_Field
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

DepositTransactionInput

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "holdExternalReferenceId": "string",
  "notes": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "skipMaximumBalanceValidation": true,
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type DEPOSIT.

Properties

Name Type Description Restrictions
amount (required) number The amount that was added to an account none
bookingDate string(date-time) The date of Journal Entry (as Organization Time) none
externalId string The external id of the deposit transaction, customizable, unique none
holdExternalReferenceId string The external id of an account authorization hold none
notes string Extra notes about this deposit transaction none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the deposit transaction, customizable none
skipMaximumBalanceValidation boolean Flag indicating that a maximum balance validation should be skipped none
transactionDetails TransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
valueDate string(date-time) The entry date of the deposit (as Organization Time) none

DepositTransactionInterestSettings

{
  "indexInterestRate": 0,
  "interestRate": 0
}

The interest settings, holds all the properties regarding interests for the deposit account

Properties

Name Type Description Restrictions
indexInterestRate number The value of the index interest rate set or changed in this transaction none
interestRate number The interest rate for the deposit account none

DepositTransactionSearchCriteria

{
  "filterCriteria": [
    {
      "field": "type",
      "operator": "IN",
      "values": [
        "FEE_APPLIED",
        "WITHDRAWAL"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "valueDate",
    "order": "ASC"
  }
}

Wrapper that holds a list of filtering criteria and a sorting criteria for Deposit transaction client directed query

Properties

Name Type Description Restrictions
filterCriteria (required) [DepositTransactionFilterCriteria] The list of filtering criteria none
sortingCriteria DepositTransactionSortingCriteria The sorting criteria used for Deposit transactions client directed query none

DepositTransactionSortingCriteria

{
  "field": "id",
  "order": "ASC"
}

The sorting criteria used for Deposit transactions client directed query

Properties

Name Type Description Restrictions
field (required) string The field to use to sort the selection. The field can be an enumerated value or a custom field using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field id
field externalId
field parentAccountId
field productId
field valueDate
field creationDate
field amount
field branchId
field centreId
field tillId
field fees.name
field transactionDetails.transactionChannelId
field taxes.taxRate
field terms.interestSettings.interestRate
field terms.overdraftInterestSettings.interestRate
field terms.overdraftSettings.overdraftLimit
field affectedAmounts.interestAmount
field affectedAmounts.feesAmount
field accountBalances.totalBalance
order ASC
order DESC

DepositsTransaction

{
  "deposit": {
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "externalId": "string",
    "holdExternalReferenceId": "string",
    "notes": "string",
    "paymentDetails": {
      "creditor": {
        "name": "string"
      },
      "creditorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "creditorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "debtor": {
        "name": "string"
      },
      "debtorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "debtorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "paymentIdentification": {
        "endToEndIdentification": "string",
        "instructionIdentification": "string",
        "transactionIdentification": "string"
      },
      "paymentTypeInformation": {
        "serviceLevel": {
          "code": "string"
        }
      },
      "remittanceInformation": {
        "structured": {
          "creditorReferenceInformation": {
            "reference": "string",
            "referenceIssuer": "string",
            "referenceType": "string"
          }
        },
        "unstructured": "string"
      }
    },
    "paymentOrderId": "string",
    "skipMaximumBalanceValidation": true,
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "valueDate": "2016-09-06T13:37:50+03:00"
  },
  "fee": {
    "amount": 0,
    "externalId": "string",
    "notes": "string",
    "predefinedFeeKey": "string"
  },
  "withdrawal": {
    "amount": 0,
    "bookingDate": "2016-09-06T13:37:50+03:00",
    "externalId": "string",
    "holdExternalReferenceId": "string",
    "notes": "string",
    "paymentDetails": {
      "creditor": {
        "name": "string"
      },
      "creditorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "creditorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "debtor": {
        "name": "string"
      },
      "debtorAccount": {
        "currency": "string",
        "identification": {
          "iban": "string",
          "other": {
            "identification": "string",
            "scheme": "string"
          }
        }
      },
      "debtorAgent": {
        "financialInstitutionIdentification": {
          "bic": "string"
        }
      },
      "paymentIdentification": {
        "endToEndIdentification": "string",
        "instructionIdentification": "string",
        "transactionIdentification": "string"
      },
      "paymentTypeInformation": {
        "serviceLevel": {
          "code": "string"
        }
      },
      "remittanceInformation": {
        "structured": {
          "creditorReferenceInformation": {
            "reference": "string",
            "referenceIssuer": "string",
            "referenceType": "string"
          }
        },
        "unstructured": "string"
      }
    },
    "paymentOrderId": "string",
    "transactionDetails": {
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    },
    "valueDate": "2016-09-06T13:37:50+03:00"
  }
}

Transaction to be executed.

Properties

Name Type Description Restrictions
deposit DepositTransactionInput Represents the request payload for creating a transaction of type DEPOSIT. none
fee FeeAppliedDepositTransactionInput Represents the request payload for creating a transaction of type FEE_APPLIED. none
withdrawal WithdrawalDepositTransactionInput Represents the input for a withdrawal transaction. none

DisbursementDetails

{
  "disbursementDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
  "fees": [
    {
      "amount": 0,
      "encodedKey": "string",
      "percentage": 0,
      "predefinedFeeEncodedKey": "string"
    }
  ],
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "transactionDetails": {
    "encodedKey": "string",
    "internalTransfer": true,
    "targetDepositAccountKey": "string",
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  }
}

The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees.

Properties

Name Type Description Restrictions
disbursementDate string(date-time) The activation date, the date when the disbursement actually took place. none
encodedKey string The encoded key of the disbursement details, auto generated, unique read-only
expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none
transactionDetails LoanTransactionDetails Represents the loan transaction details. none

DisbursementDetailsForSchedulePreview

{
  "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
  "fees": [
    {
      "amount": 0,
      "encodedKey": "string",
      "percentage": 0,
      "predefinedFeeEncodedKey": "string"
    }
  ],
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
}

The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees.

Properties

Name Type Description Restrictions
expectedDisbursementDate string(date-time) The date of the expected disbursement.Stored as Organization Time. none
fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
firstRepaymentDate string(date-time) The date of the expected first repayment. Stored as Organization Time. none

DisbursementLoanTransactionInput

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "percentage": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "originalCurrencyCode": "string",
  "shiftAdjustableInterestPeriods": true,
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedAccountId": "string",
    "linkedAccountKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

The input representation of a loan transaction when making a disbursement

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount number The amount to disburse none
bookingDate string(date-time) The date when disbursement is logged into accounting none
externalId string The external id of the disbursement transaction. Customizable and unique none
fees [FeeInput] The list of the fees to apply none
firstRepaymentDate string(date-time) The date of the first repayment for the loan account (as Organization Time) none
notes string Extra notes related to disbursement action or transaction none
originalCurrencyCode string The currency for the disbursement transaction none
shiftAdjustableInterestPeriods boolean Indicates whether the validFrom dates from Adjustable Interest Rates can be shifted automatically or not none
transactionDetails TransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
transferDetails DisbursementTransferDetailsInput Represents the input for the transfer details for a disbursement transaction none
valueDate string(date-time) The date of the disbursal (as Organization Time) none

DisbursementTransferDetailsInput

{
  "linkedAccountId": "string",
  "linkedAccountKey": "string"
}

Represents the input for the transfer details for a disbursement transaction

Properties

Name Type Description Restrictions
linkedAccountId string The id of the linked deposit account none
linkedAccountKey string The encoded key of the linked deposit account none

DisplaySettings

{
  "description": "string",
  "displayName": "string",
  "fieldSize": "SHORT"
}

Represents the display settings of a custom field definition.

Properties

Name Type Description Restrictions
description string The user-provided description of the custom field definition. none
displayName (required) string The user-provided name of the custom field definition. none
fieldSize (required) string The custom field value display size in the UI. none

Enumerated Values

Property Value
fieldSize SHORT
fieldSize LONG

Document

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "fileName": "string",
  "fileSize": 0,
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "location": "string",
  "name": "string",
  "notes": "string",
  "ownerKey": "string",
  "ownerType": "CLIENT",
  "type": "string"
}

Holds information regarding the documents uploaded as attachments

Properties

Name Type Description Restrictions
creationDate string(date-time) The creation date of the document, stored as UTC read-only
encodedKey string The document encodedKey read-only
fileName string The original file name of the document none
fileSize integer(int64) The file size of the document none
id (required) integer(int64) The document id none
lastModifiedDate string(date-time) The last modified date of the document, stored as UTC read-only
location string Location where the document can be found, eg /myfiles/mypicture.jpeg none
name (required) string The name of the document none
notes string Detailed notes about the document none
ownerKey string Represents the holder of this document. If null, means nobody is the owner of this document read-only
ownerType string Determines the owner type of the document read-only
type (required) string The extension of the document none

Enumerated Values

Property Value
ownerType CLIENT
ownerType GROUP
ownerType LOAN_PRODUCT
ownerType SAVINGS_PRODUCT
ownerType CENTRE
ownerType BRANCH
ownerType USER
ownerType LOAN_ACCOUNT
ownerType DEPOSIT_ACCOUNT
ownerType ID_DOCUMENT
ownerType LINE_OF_CREDIT
ownerType GL_JOURNAL_ENTRY

DocumentTemplate

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "type": "ACCOUNT"
}

Template documents of the product.

Properties

Name Type Description Restrictions
creationDate string(date-time) The creation date of the document read-only
encodedKey string The document encodedKey read-only
lastModifiedDate string(date-time) The last modified date of the document read-only
name string The name the document none
type string The type of the template none

Enumerated Values

Property Value
type ACCOUNT
type TRANSACTION
type ACCOUNT_WITH_TRANSACTIONS

DuplicateClientFieldsConfiguration

{
  "duplicateClientChecks": [
    "DOCUMENT_ID_AND_TYPE"
  ],
  "duplicateClientConstraintAction": "NONE"
}

The duplicate client constraints configuration that are available in the administration and can be performed

Properties

Name Type Description Restrictions
duplicateClientChecks [string] Constraints regarding what fields can't be duplicate between two clients, ordered alphabetically none
duplicateClientConstraintAction (required) string Action to be taken if constraints exists and are not met none

Enumerated Values

Property Value
duplicateClientConstraintAction NONE
duplicateClientConstraintAction WARNING
duplicateClientConstraintAction ERROR

DuplicateFieldConstraint

{
  "active": true,
  "dataField": "string",
  "dataItemType": "LOANS",
  "encodedKey": "string",
  "groupIndex": 0
}

Represents a duplicate constraint which needs to apply when saving entities

Properties

Name Type Description Restrictions
active boolean The check will be performed if the field is true none
dataField string The ENUM data field when the field is an ENUM none
dataItemType string The type of the owner (entity) to whom a data field belongs to none
encodedKey string The encoded key of the duplicate field constraint, auto generated, unique none
groupIndex integer(int32) Used for creating an AND clause between constraints none

Enumerated Values

Property Value
dataItemType LOANS
dataItemType SAVINGS
dataItemType CLIENT
dataItemType CLIENT_ROLE
dataItemType GROUP
dataItemType GROUP_ROLE
dataItemType TRANSACTION
dataItemType JOURNAL_ENTRY
dataItemType INTEREST_ACCRUAL_BREAKDOWN
dataItemType BRANCH
dataItemType CENTRE
dataItemType USER
dataItemType LOAN_PRODUCT
dataItemType SAVINGS_PRODUCT
dataItemType NOTIFICATION_MESSAGE
dataItemType NOTIFICATION_TEMPLATE
dataItemType REPAYMENT
dataItemType REPAYMENT_COLLECTION
dataItemType ACTIVITY
dataItemType LINE_OF_CREDIT
dataItemType IDENTIFICATION_DOCUMENT
dataItemType ATTACHMENT
dataItemType CURRENCY
dataItemType PRODUCT
dataItemType REVENUE
dataItemType EXPENSE
dataItemType OUTSTANDING_PORTFOLIO_ACCOUNTS
dataItemType OUTSTANDING_PORTFOLIO_AMOUNTS
dataItemType CREATED_ACCOUNTS
dataItemType WRITTEN_OFF_LOANS
dataItemType DISBURSED_LOANS
dataItemType LOAN_GROUP
dataItemType TRANCHE
dataItemType DISBURSEMENT_DETAILS
dataItemType TRANSACTION_DETAILS
dataItemType TRANSACTION_CHANNEL
dataItemType CUSTOM_PREDEFINED_FEE
dataItemType CUSTOM_FIELD_SELECTION
dataItemType PREDEFINED_FEE
dataItemType LOAN_TRANSACTION
dataItemType SAVINGS_TRANSACTION
dataItemType CARD_TRANSACTION_REVERSAL
dataItemType COMPOSED_TRANSACTIONS
dataItemType UNION_TRANSACTIONS
dataItemType INVESTOR_FUND
dataItemType PRINCIPAL_PAYMENT_SETTINGS
dataItemType LOAN_ACCOUNT_GUARANTY
dataItemType TASK
dataItemType DOCUMENT_TEMPLATE
dataItemType INDEX_RATE
dataItemType INDEX_RATE_SOURCE
dataItemType INTEREST_PRODUCT_SETTINGS
dataItemType MCC_EXPIRATION
dataItemType PRODUCT_ARREARS_SETTINGS
dataItemType ACCOUNT_INTEREST_RATE_SETTINGS
dataItemType LENDING_ACCOUNT_CONTRACT
dataItemType REVOLVING_ACCOUNT

EndOfDayProcessingConfiguration

{
  "accountingCutOffTime": "string",
  "endOfDayProcessingMethod": "MANUAL"
}

Model representation of the end of day processing configuration.

Properties

Name Type Description Restrictions
accountingCutOffTime string The accounting cut off time. Only set if the processing method is automatic. none
endOfDayProcessingMethod (required) string The end of the day processing method. none

Enumerated Values

Property Value
endOfDayProcessingMethod MANUAL
endOfDayProcessingMethod AUTOMATIC

ErrorResponse

{
  "errors": [
    {
      "errorCode": 0,
      "errorReason": "SUCCESS",
      "errorSource": "string"
    }
  ]
}

Properties

Name Type Description Restrictions
errors [RestError] [Errors which can be generated by malformed requests or requests which do not pass validation. For more information on each error, see API Responses and Error Codes] none

ExchangeRateConfiguration

{
  "buyRate": 0,
  "sellRate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

Model representation of an exchange rate configuration.

Properties

Name Type Description Restrictions
buyRate number The buy exchange rate. none
sellRate number The sell exchange rate. none
startDate string(date-time) The exchange rate applies starting with this date. none

Fee

{
  "amount": 0,
  "name": "string",
  "predefinedFeeKey": "string",
  "taxAmount": 0,
  "trigger": "MANUAL"
}

An amount of predefined fee that was applied or paid on an account.

Properties

Name Type Description Restrictions
amount number The amount of the fee that was applied/paid in the transaction for the given predefined fee. none
name string The name of the predefined fee read-only
predefinedFeeKey (required) string The encoded key of the predefined fee, auto generated, unique none
taxAmount number The amount of the taxes on fee that was applied/paid in the transaction. none
trigger string Shows the event that will trigger a fee read-only

Enumerated Values

Property Value
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE

FeeAmortizationConfiguration

{
  "amortizationProfile": "NONE",
  "amortizationRescheduleConfiguration": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
  "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
  "intervalCount": 0,
  "intervalType": "PREDEFINED_INTERVALS",
  "periodCount": 0,
  "periodUnit": "DAYS"
}

The settings for defining period intervals.

Properties

Name Type Description Restrictions
amortizationProfile string Type of amortization profile used for fee none
amortizationRescheduleConfiguration string Flag for signaling if fee amortization should be continued or finished at account reschedule/refinance none
frequency string Frequency settings of the fee amortization none
intervalCount integer(int32) Total number of intervals none
intervalType string Defines the options for an interval none
periodCount integer(int32) Period count used in conjunction with periodUnit to determine the next date of the interval none
periodUnit string Amortization unit to determine the interval between amortizations none

Enumerated Values

Property Value
amortizationProfile NONE
amortizationProfile SUM_OF_YEARS_DIGITS
amortizationProfile STRAIGHT_LINE
amortizationProfile EFFECTIVE_INTEREST_RATE
amortizationRescheduleConfiguration END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT
amortizationRescheduleConfiguration CONTINUE_AMORTIZATION_ON_THE_RESCHEDULED_REFINANCED_ACCOUNT
frequency ACCOUNT_INSTALLMENTS_DUE_DATES
frequency ACCOUNT_INSTALLMENTS_DUE_DATES_DAILY_BOOKING
frequency CUSTOM_INTERVAL
intervalType PREDEFINED_INTERVALS
intervalType FULL_TERM
periodUnit DAYS
periodUnit WEEKS
periodUnit MONTHS
periodUnit YEARS

FeeAmount

{
  "due": 0,
  "expected": 0,
  "expectedUnapplied": 0,
  "paid": 0
}

Represents a fee amount.

Properties

Name Type Description Restrictions
due number The due amount. none
expected number The expected amount, which is sum of paid and due amounts. none
expectedUnapplied number The expected amount, which is the sum of unapplied fee and planned fee due amounts. none
paid number The paid amount. none

FeeAppliedDepositTransactionInput

{
  "amount": 0,
  "externalId": "string",
  "notes": "string",
  "predefinedFeeKey": "string"
}

Represents the request payload for creating a transaction of type FEE_APPLIED.

Properties

Name Type Description Restrictions
amount number The value of the fee applied on the account none
externalId string The external id of the current transaction, customizable, unique none
notes string Extra notes about the current transaction none
predefinedFeeKey string The encodedKey of the predefined fee that defines the current fee none

FeeInput

{
  "amount": 0,
  "percentage": 0,
  "predefinedFeeKey": "string"
}

An amount of predefined fee to apply on account.

Properties

Name Type Description Restrictions
amount number The amount of the fee to apply none
percentage number The percentage of the fee to apply none
predefinedFeeKey (required) string The encoded key of the predefined fee none

FeeLoanTransactionInput

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
  "installmentNumber": 0,
  "notes": "string",
  "predefinedFeeKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type FEE_APPLIED

Properties

Name Type Description Restrictions
amount number The fee amount to be applied on the account none
bookingDate string(date-time) The date when the fee transaction is logged into accounting (as Organization Time) none
externalId string The external id of the repayment transaction, customizable, unique none
firstRepaymentDate string(date-time) The date of the first repayment for the loan account (as Organization Time) none
installmentNumber integer(int32) The installment number on which the fee will be applied none
notes string Extra notes about the current transaction none
predefinedFeeKey string The encodedKey of the predefined fee that defines the current fee none
valueDate string(date-time) The date when to apply the fee (as Organization Time) none

FeeTaxSettings

{
  "taxableCalculationMethod": "DEFAULT"
}

Tax settings for a specific Predefined fee that overrides the tax settings of Loan Product

Properties

Name Type Description Restrictions
taxableCalculationMethod string Marks a specific fee as non-taxable (taxes are not calculated for it).Feature is in the Early Stage. To be enabled by request. none

Enumerated Values

Property Value
taxableCalculationMethod DEFAULT
taxableCalculationMethod NON_TAXABLE
taxableCalculationMethod CUSTOM_TAX

FeesSettings

{
  "allowArbitraryFees": true,
  "fees": [
    {
      "accountingRules": [
        {
          "encodedKey": "string",
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountKey": "string",
          "transactionChannelKey": "string"
        }
      ],
      "amortizationSettings": {
        "amortizationProfile": "NONE",
        "encodedKey": "string",
        "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
        "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
        "intervalCount": 0,
        "intervalType": "PREDEFINED_INTERVALS",
        "periodCount": 0,
        "periodUnit": "DAYS"
      },
      "amount": 0,
      "amountCalculationFunctionName": "string",
      "amountCalculationMethod": "FLAT",
      "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "feeApplication": "REQUIRED",
      "id": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "percentageAmount": 0,
      "state": "ACTIVE",
      "taxSettings": {
        "taxableCalculationMethod": "DEFAULT"
      },
      "trigger": "MANUAL"
    }
  ]
}

Defines fees settings for the product.

Properties

Name Type Description Restrictions
allowArbitraryFees boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount. none
fees [PredefinedFee] List of all fees that can be applied for accounts of this loan product. none

FinancialInstitutionIdentification

{
  "bic": "string"
}

The identification of the financial institution

Properties

Name Type Description Restrictions
bic string Business identifier code none

ForeignAmount

{
  "accountingRate": {
    "encodedKey": "string",
    "endDate": "2016-09-06T13:37:50+03:00",
    "fromCurrencyCode": "string",
    "rate": 0,
    "startDate": "2016-09-06T13:37:50+03:00",
    "toCurrencyCode": "string"
  },
  "amount": 0,
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  }
}

Represents the details of general ledger journal entries posted in foreign currency.

Properties

Name Type Description Restrictions
accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
amount number The foreign currency amount of the accounting entry. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none

ForeignCurrencyConfiguration

{
  "accountingRates": [
    {
      "rate": 0,
      "startDate": "2016-09-06T13:37:50+03:00"
    }
  ],
  "currency": {
    "code": "string",
    "digitsAfterDecimal": 0,
    "name": "string",
    "symbol": "string",
    "symbolPosition": "BEFORE_NUMBER",
    "type": "FIAT_CURRENCY"
  },
  "exchangeRates": [
    {
      "buyRate": 0,
      "sellRate": 0,
      "startDate": "2016-09-06T13:37:50+03:00"
    }
  ]
}

Represents a foreign currency configuration.

Properties

Name Type Description Restrictions
accountingRates [AccountingRateConfiguration] The accounting rate for the current currency and base currency. Ordered by start date in ascending order. none
currency CurrencyConfiguration Represents the currency configuration. none
exchangeRates [ExchangeRateConfiguration] The exchange rate for the current currency and base currency. Ordered by start date in ascending order. none

FourEyesPrinciple

{
  "activeForLoanApproval": true
}

Settings for Four Eyes Principle

Properties

Name Type Description Restrictions
activeForLoanApproval boolean Requires separate users to create and approve loan accounts none

FourEyesPrincipleConfiguration

{
  "activeForLoans": true
}

Configuration for Four Eyes Principle

Properties

Name Type Description Restrictions
activeForLoans boolean Requires separate users to create and approve loan accounts none

FundingSettings

{
  "enabled": true,
  "funderInterestCommission": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
  "lockFundsAtApproval": true,
  "organizationInterestCommission": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "requiredFunds": 0
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
enabled boolean Indicates whether the product has the investor funds enabled or not. none
funderInterestCommission DecimalConstraints Decimal constraints, like min/max/default. none
funderInterestCommissionAllocationType string Define how the Interest is allocated to the investors(if the investors can define their own percentages for their own contribution to the loan, or if all of them are using the same percentage). none
lockFundsAtApproval boolean Shows whether investor funds are locked or not at the loan account's approval. none
organizationInterestCommission DecimalConstraints Decimal constraints, like min/max/default. none
requiredFunds number The required investor funds percentage, for opening an account with external funding. If null, the investor funds are not enabled. none

Enumerated Values

Property Value
funderInterestCommissionAllocationType PERCENTAGE_OF_LOAN_FUNDING
funderInterestCommissionAllocationType FIXED_INTEREST_COMMISSIONS

FundingSettingsConfiguration

{
  "enabled": true,
  "funderInterestCommission": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
  "lockFundsAtApproval": true,
  "organizationInterestCommission": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "requiredFunds": 0
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
enabled boolean Indicates whether the product has the investor funds enabled or not. none
funderInterestCommission LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
funderInterestCommissionAllocationType string Define how the Interest is allocated to the investors(if the investors can define their own percentages for their own contribution to the loan, or if all of them are using the same percentage). none
lockFundsAtApproval boolean Shows whether investor funds are locked or not at the loan account's approval. none
organizationInterestCommission LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
requiredFunds number The required investor funds percentage, for opening an account with external funding. If null, the investor funds are not enabled. none

Enumerated Values

Property Value
funderInterestCommissionAllocationType PERCENTAGE_OF_LOAN_FUNDING
funderInterestCommissionAllocationType FIXED_INTEREST_COMMISSIONS

FundingSourcePurchase

{
  "amount": 0,
  "depositAccountKey": "string",
  "price": 0
}

Funding source purchase, hold information about a funding source purchase (buyer, price, amount)

Properties

Name Type Description Restrictions
amount (required) number The amount bought (a portion of the whole fraction being sold) none
depositAccountKey string The buyer funding account (savings account) key none
price (required) number The price paid for the amount none

GLAccount

{
  "activated": true,
  "allowManualJournalEntries": true,
  "balance": 0,
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "description": "string",
  "encodedKey": "string",
  "glCode": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "migrationEventKey": "string",
  "name": "string",
  "stripTrailingZeros": true,
  "type": "ASSET",
  "usage": "DETAIL"
}

Represents a general ledger account.

Properties

Name Type Description Restrictions
activated boolean TRUE if the account is activated and may be used, FALSE otherwise. none
allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. none
balance number If the GET /glaccounts API request contains both parameters from={date}&to={date}, the value of balance is equal to Net Change. If the request only contains to={date}, or none of the two, the balance is equal to Closing Balance. none
creationDate string(date-time) The creation date for this account, which is stored as UTC. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
description string A description of the general ledger account. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
glCode string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
lastModifiedDate string(date-time) The last modification date and time, which is stored as UTC. none
migrationEventKey string The data migration event key if the general ledger account was created as a part of a data migration event. none
name string The name of the general ledger account. none
stripTrailingZeros boolean TRUE if trailing zeros are stripped, FALSE otherwise. none
type string The general ledger account type. none
usage string The usage type of the general ledger account. DETAIL accounts are used to stores transaction balances. HEADER accounts are used to organise and group detail accounts for reporting purposes. none

Enumerated Values

Property Value
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER

GLAccountAmount

{
  "amount": 0,
  "glAccount": "string"
}

Represents the general ledger account and amount used in a journal entry record.

Properties

Name Type Description Restrictions
amount (required) number The amount which was debited or credited. none
glAccount (required) string Represents the general ledger account code of the the general ledger account that was debited or credited. none

GLAccountInput

{
  "allowManualJournalEntries": true,
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "description": "string",
  "glCode": "string",
  "name": "string",
  "stripTrailingZeros": true,
  "type": "ASSET",
  "usage": "DETAIL"
}

Represents the request payload for creating a GL Account

Properties

Name Type Description Restrictions
allowManualJournalEntries boolean TRUE if manual journal entries are allowed, FALSE otherwise. This is only available for Detail Accounts. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
description string The description of the general ledger account. none
glCode (required) string The general ledger code used to identify different account types. Also used for grouping and categorizing accounts. For example: an account code of '3201' is considered a subtype of '3200'. none
name (required) string The name of the general ledger account. none
stripTrailingZeros boolean TRUE to strip trailing zeros, FALSE otherwise. Only available for Header Accounts. none
type (required) string The general ledger account type. none
usage (required) string DETAIL for general ledger accounts that log transactions, and HEADER for general ledger accounts used for reporting and organizational purposes. none

Enumerated Values

Property Value
type ASSET
type LIABILITY
type EQUITY
type INCOME
type EXPENSE
usage DETAIL
usage HEADER

GLAccountingRule

{
  "encodedKey": "string",
  "financialResource": "PORTFOLIO_CONTROL",
  "glAccountKey": "string",
  "transactionChannelKey": "string"
}

The GL accounting rule, it maps a financial resource with a GL account for a specific product (i.e loan or saving).

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the accounting rule, auto generated, unique. read-only
financialResource (required) string General Ledger Financial Resources used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries none
glAccountKey (required) string The encoded key of the account that is mapped to the financialResource none
transactionChannelKey string The key of the transaction rule that uses this rule none

Enumerated Values

Property Value
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER

GLJournalEntry

{
  "accountKey": "string",
  "amount": 0,
  "assignedBranchKey": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "entryID": 0,
  "foreignAmount": {
    "accountingRate": {
      "encodedKey": "string",
      "endDate": "2016-09-06T13:37:50+03:00",
      "fromCurrencyCode": "string",
      "rate": 0,
      "startDate": "2016-09-06T13:37:50+03:00",
      "toCurrencyCode": "string"
    },
    "amount": 0,
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    }
  },
  "glAccount": {
    "activated": true,
    "allowManualJournalEntries": true,
    "balance": 0,
    "creationDate": "2016-09-06T13:37:50+03:00",
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    },
    "description": "string",
    "encodedKey": "string",
    "glCode": "string",
    "lastModifiedDate": "2016-09-06T13:37:50+03:00",
    "migrationEventKey": "string",
    "name": "string",
    "stripTrailingZeros": true,
    "type": "ASSET",
    "usage": "DETAIL"
  },
  "notes": "string",
  "productKey": "string",
  "productType": "LOAN",
  "reversalEntryKey": "string",
  "transactionId": "string",
  "type": "DEBIT",
  "userKey": "string"
}

Represents a general ledger journal entry.

Properties

Name Type Description Restrictions
accountKey string The account associated with this journal entry. Null if the journal entry is not associated to any account. none
amount number The amount which was debited or credited in the organization's currency. none
assignedBranchKey string The key of the assigned branch for this general ledger journal entry. none
bookingDate string(date-time) The date and time when the general ledger journal entry was recorded. none
creationDate string(date-time) The creation date of the general ledger journal entry. read-only
encodedKey string The encoded key of the entity, generated, globally unique read-only
entryID integer(int64) The ID of the general ledger journal entry. read-only
foreignAmount GLJournalEntryForeignAmount Represents the details of the general ledger journal entry amount posted in foreign currency. none
glAccount GLAccount Represents a general ledger account. none
notes string Optional notes entered by the user when they performed the journal entry. none
productKey string The product associated with this journal entry. Null if the journal entry is not associated with any product. none
productType string The product type that is referenced by the account key. Null if the journal entry is not associated to any product. none
reversalEntryKey string The entry key of the general ledger journal entry that reverses this general ledger journal entry. Null if the general ledger journal entry isn't reversed. none
transactionId string The transation ID, which is not unique. none
type string The general ledger journal entry type, which may be debit or credit. none
userKey string The encoded key of the user that performed the transaction. none

Enumerated Values

Property Value
productType LOAN
productType SAVINGS
type DEBIT
type CREDIT

GLJournalEntryFilterCriteria

{
  "field": "productType",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

Represents the filtering criteria used for searching general ledger journal entries.

Properties

Name Type Description Restrictions
field (required) string The fields used to search. These fields can be from the enumerated values or you can specify a custom field using the format [customFieldSetId].[customFieldId]. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field productType
field glAccountKey
field userKey
field encodedKey
field entryId
field bookingDate
field creationDate
field transactionId
field glAccountId
field glAccountType
field source
field debit
field credit
field foreignDebit
field foreignCredit
field loanAccountId
field foreignCurrencyCode
field assignedBranchKey
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

GLJournalEntryForeignAmount

{
  "accountingRate": {
    "encodedKey": "string",
    "endDate": "2016-09-06T13:37:50+03:00",
    "fromCurrencyCode": "string",
    "rate": 0,
    "startDate": "2016-09-06T13:37:50+03:00",
    "toCurrencyCode": "string"
  },
  "amount": 0,
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  }
}

Represents the details of the general ledger journal entry amount posted in foreign currency.

Properties

Name Type Description Restrictions
accountingRate AccountingRate Represents the conversion rate used in accounting to convert amounts from one currency to organisation currency none
amount number The amount of an accounting entry in foreign currency. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none

GLJournalEntrySearchCriteria

{
  "filterCriteria": [
    {
      "field": "productType",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Represents the list of filtering criteria and the sorting criteria when searching general ledger journal entries.

Properties

Name Type Description Restrictions
filterCriteria [GLJournalEntryFilterCriteria] The list of filtering criteria. none
sortingCriteria GLJournalEntrySortingCriteria Represents the sorting criteria used for general ledger journal entries. none

GLJournalEntrySortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

Represents the sorting criteria used for general ledger journal entries.

Properties

Name Type Description Restrictions
field (required) string The field that can be used to sort the selection. These fields can be from the enumerated values or you can specify a custom field using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field entryId
field bookingDate
field creationDate
field transactionId
field glAccountName
field glAccountId
field glAccountType
field debit
field credit
field foreignDebit
field foreignCredit
field loanAccountId
field userName
field user
field branchName
field foreignCurrency
order ASC
order DESC

GeneralSetup

{
  "accountingCutOffTime": "string",
  "approvalDisbursalTwoManRuleEnabled": true,
  "arrearsDaysBeforeWriteOff": 0,
  "assignmentConstraints": [
    "BRANCH"
  ],
  "automatedAccountingClosuresInterval": 0,
  "clientIdFormat": "string",
  "dashboardConfigurations": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "name": "LATEST_ACTIVITY"
    }
  ],
  "dateFormats": {
    "property1": "string",
    "property2": "string"
  },
  "decimalSeparator": "COMMA",
  "defaultClientRoleKey": "string",
  "defaultClientState": "PENDING_APPROVAL",
  "defaultGroupRoleKey": "string",
  "defaultLineOfCreditState": "PENDING_APPROVAL",
  "defaultTransactionChannelKey": "string",
  "duplicateClientChecks": [
    {
      "active": true,
      "dataField": "string",
      "dataItemType": "LOANS",
      "encodedKey": "string",
      "groupIndex": 0
    }
  ],
  "duplicateClientConstraintAction": "NONE",
  "enabledComponents": [
    "LOANS"
  ],
  "encodedKey": "string",
  "eodProcessingMethod": "AUTOMATIC",
  "exposureAmount": 0,
  "exposureType": "UNLIMITED",
  "groupIdFormat": "string",
  "groupSizeLimitType": "HARD",
  "interBranchTransferGLAccountKey": "string",
  "lineOfCreditIdFormat": "string",
  "maxAllowedIdDocumentAttachments": 0,
  "maxAllowedJournalEntryDocumentAttachments": 0,
  "maxAllowedUndoClosurePeriod": 0,
  "maxGroupSizeLimit": 0,
  "minGroupSizeLimit": 0,
  "multipleGroupMemberships": "UNLIMITED",
  "multipleLoans": "UNLIMITED",
  "otherIdDocumentsEnabled": true,
  "overdraftInterestEodBalanceDate": "2016-09-06T13:37:50+03:00",
  "tillIdFormat": "string"
}

Represents the general setup for an organization.

Properties

Name Type Description Restrictions
accountingCutOffTime string The accounting cut off time. none
approvalDisbursalTwoManRuleEnabled boolean TRUE if separate users are required for approval and disbursal, FALSE otherwise. none
arrearsDaysBeforeWriteOff integer(int32) The number of days that are required before an account can be written off. none
assignmentConstraints [string] The list of required assignments for clients and groups. none
automatedAccountingClosuresInterval integer(int32) The interval (number of days) between the execution of automated accounting closures. If this number is 0, automated closure is performed. none
clientIdFormat string The pattern for generating individual client IDs. none
dashboardConfigurations [DashboardConfiguration] The dashboard configuration. none
dateFormats object The date (dd-MM-yyyy) or date time (dd-MM-yyyy HH:mm:ss) formats. none
» additionalProperties string none none
decimalSeparator string The symbol used to mark the border between the integral and the fractional parts of a decimal numeral. none
defaultClientRoleKey string The client role used as default. none
defaultClientState string The client default state. none
defaultGroupRoleKey string The group role used as default. none
defaultLineOfCreditState string The line of credit default state. none
defaultTransactionChannelKey string The transaction channel that is used as the default. none
duplicateClientChecks [DuplicateFieldConstraint] The list of duplicate client constraints that are available in the administration and can be performed. none
duplicateClientConstraintAction string The action to be taken when the duplicate client validation fails. none
enabledComponents [string] The list of all the enabled components for the current tenant. none
encodedKey string The encoded key of the general setup, which is auto generated, and unique. none
eodProcessingMethod string The end of day (EOD) processing settings. The AUTOMATIC EOD processing runs every midnight. The MANUAL EOD processing runs when the client initiates the action from the Mambu UI. none
exposureAmount number The maximum exposure amount. none
exposureType string The maximum exposure a client can have in outstanding loans at any time. none
groupIdFormat string The pattern for generating group client IDs. none
groupSizeLimitType string The group size limitation type. none
interBranchTransferGLAccountKey string The key of the general ledger (GL) account which will be used for inter-branch transfers. none
lineOfCreditIdFormat string The unique pattern after which all the lines of credit IDs should be created. none
maxAllowedIdDocumentAttachments integer(int32) The maximum allowed ID document attachments. none
maxAllowedJournalEntryDocumentAttachments integer(int32) The maximum allowed journal entry attachments. none
maxAllowedUndoClosurePeriod integer(int32) The maximum number of days users are allowed to undo of close obligations met for a loan account. none
maxGroupSizeLimit integer(int32) The maximum group size allowed. A null value means the limit is ignored. none
minGroupSizeLimit integer(int32) The minimum group size allowed. A null value means the limit is ignored. none
multipleGroupMemberships string The constraint on whether clients can belong to more than one group or not. none
multipleLoans string The option that shows if multiple loans are allowed or not. none
otherIdDocumentsEnabled boolean TRUE if other ID documents are enabled, FALSE otherwise. none
overdraftInterestEodBalanceDate string(date-time) The date used when computing overdraft interest for savings accounts. none
tillIdFormat string The unique pattern after which all the till IDs should be created. none

Enumerated Values

Property Value
decimalSeparator COMMA
decimalSeparator POINT
defaultClientState PENDING_APPROVAL
defaultClientState INACTIVE
defaultClientState ACTIVE
defaultClientState EXITED
defaultClientState BLACKLISTED
defaultClientState REJECTED
defaultLineOfCreditState PENDING_APPROVAL
defaultLineOfCreditState APPROVED
defaultLineOfCreditState ACTIVE
defaultLineOfCreditState CLOSED
defaultLineOfCreditState WITHDRAWN
defaultLineOfCreditState REJECTED
duplicateClientConstraintAction NONE
duplicateClientConstraintAction WARNING
duplicateClientConstraintAction ERROR
eodProcessingMethod AUTOMATIC
eodProcessingMethod MANUAL
exposureType UNLIMITED
exposureType SUM_OF_LOANS
exposureType SUM_OF_LOANS_MINUS_SAVINGS
groupSizeLimitType HARD
groupSizeLimitType WARNING
groupSizeLimitType NONE
multipleGroupMemberships UNLIMITED
multipleGroupMemberships ONE_GROUP
multipleLoans UNLIMITED
multipleLoans ONE_LOAN

GetAuthorizationHold

{
  "accountKey": "string",
  "advice": true,
  "amount": 0,
  "balances": {
    "accountId": "string",
    "availableBalance": 0,
    "cardType": "DEBIT",
    "creditLimit": 0,
    "currencyCode": "string",
    "totalBalance": 0
  },
  "cardAcceptor": {
    "city": "string",
    "country": "string",
    "mcc": 0,
    "name": "string",
    "state": "string",
    "street": "string",
    "zip": "string"
  },
  "cardToken": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditDebitIndicator": "DBIT",
  "currencyCode": "string",
  "customExpirationPeriod": 0,
  "encodedKey": "string",
  "exchangeRate": 0,
  "externalReferenceId": "string",
  "originalAmount": 0,
  "originalCurrency": "string",
  "partial": true,
  "referenceDateForExpiration": "2016-09-06T13:37:50+03:00",
  "source": "CARD",
  "status": "PENDING",
  "userTransactionTime": "string"
}

Details for retrieving a authorization hold. Deprecated due to encodedKey field.

Properties

Name Type Description Restrictions
accountKey string The key of the account linked with the authorization hold. read-only
advice (required) boolean Whether the given request should be accepted without balance validations. none
amount (required) number The amount of money to be held as a result of the authorization hold request. none
balances AccountBalances Account balances presented to inquirer such as card processor none
cardAcceptor CardAcceptor The details of the card acceptor (merchant) in a transaction hold. none
cardToken string The reference token of the card. read-only
creationDate string(date-time) The organization time when the authorization hold was created read-only
creditDebitIndicator string Indicates whether the authorization hold amount is credited or debited.If not provided, the default values is DBIT. none
currencyCode string The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency. none
customExpirationPeriod integer(int32) The custom expiration period for the hold which overwrites mcc and default expiration periods none
encodedKey string The internal ID of the authorization hold, auto generated, unique. read-only
exchangeRate number The exchange rate for the original currency. none
externalReferenceId (required) string The external reference ID to be used to reference the account hold in subsequent requests. none
originalAmount number The original amount of money to be held as a result of the authorization hold request. none
originalCurrency string The original currency in which the hold was created. none
partial boolean Indicates whether the authorization is partial or not none
referenceDateForExpiration string(date-time) The date to consider as start date when calculating the number of days passed until expiration read-only
source string Indicates the source of the authorization hold, the default values is CARD. read-only
status string The authorization hold status. read-only
userTransactionTime string The formatted time at which the user made this authorization hold. none

Enumerated Values

Property Value
creditDebitIndicator DBIT
creditDebitIndicator CRDT
source CARD
source ACCOUNT
status PENDING
status REVERSED
status SETTLED
status EXPIRED

GetCardTransaction

{
  "accountBalances": {
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "feesAmount": 0,
    "fractionAmount": 0,
    "fundsAmount": 0,
    "interestAmount": 0,
    "overdraftAmount": 0,
    "overdraftFeesAmount": 0,
    "overdraftInterestAmount": 0,
    "technicalOverdraftAmount": 0,
    "technicalOverdraftInterestAmount": 0
  },
  "amount": 0,
  "blockId": "string",
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "cardTransactionReversals": [
    {
      "_Example_Custom_Fields": {
        "Example_Checkbox_Field": "TRUE",
        "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
        "Example_Date_Field": "2018-12-14",
        "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
        "Example_Free_Text_Field": "A free text field up to 255 characters in length",
        "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
        "Example_Number_Field": "46290",
        "Example_Select_Field": {
          "example_option_id": "873023434",
          "example_option_value": "option 5"
        },
        "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
      },
      "amount": 0,
      "currencyCode": "string",
      "encodedKey": "string",
      "externalReferenceId": "string",
      "id": 0,
      "transactionChannelId": "string"
    }
  ],
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currencyCode": "string",
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "holdExternalReferenceId": "string",
  "id": "string",
  "interestAccruedAmounts": {
    "interestAccrued": 0,
    "negativeInterestAccrued": 0,
    "overdraftInterestAccrued": 0,
    "technicalOverdraftInterestAccrued": 0
  },
  "migrationEventKey": "string",
  "notes": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "taxes": {
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftInterestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "overdraftSettings": {
      "overdraftLimit": 0
    }
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Details for retrieving a card financial transaction.

Properties

Name Type Description Restrictions
accountBalances DepositTransactionBalances The balances changed within a transaction. none
adjustmentTransactionKey string The key of the deposit transaction where the adjustment for this transaction was made (if any adjustment was involved) none
affectedAmounts DepositAffectedAmounts The amounts affected after completing the deposit transaction none
amount number How much was added/removed in account none
blockId string The block fund id associated with the transaction none
bookingDate string(date-time) The date when corresponding JE is booked (as Organization Time) none
branchKey string The branch where the transaction was performed read-only
cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
cardTransactionReversals [CardTransactionReversal] Object containing all the associated reversal transactions. none
centreKey string The center where the transaction was performed read-only
creationDate string(date-time) The date when this deposit transaction was created read-only
currencyCode string The currency in which this transaction was posted none
encodedKey string The encoded key of the deposit transaction, auto generated, unique read-only
externalId string The external id of the deposit transaction, customizable, unique none
fees [DepositFee] All the amounts that have been applied or paid within this transaction and involved predefined fees read-only
holdExternalReferenceId string The external id of an account authorization hold none
id string The id of the deposit transaction, auto generated, unique none
interestAccruedAmounts DepositInterestAccruedAmounts Represents the accrued interest amounts for an Interest Applied deposit transaction. none
migrationEventKey string The migration event encoded key associated with this deposit account. If this account was imported, track which 'migration event' they came from none
notes string Extra notes about this deposit transaction none
originalTransactionKey string The encodedKey of the transaction that was adjusted as part of this one. Available only for adjustment transactions none
parentAccountKey string The key of the parent deposit account none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the deposit transaction, customizable none
taxes DepositTaxes The taxes applied within a transaction none
terms DepositTerms The deposit transaction terms none
tillKey string The till key associated with this transaction none
transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
type string The type of the deposit transaction none
userKey string The person that performed the transaction none
valueDate string(date-time) Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time) none

Enumerated Values

Property Value
type IMPORT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type DEPOSIT
type ADJUSTMENT
type WITHDRAWAL
type WITHDRAWAL_ADJUSTMENT
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type FEE_APPLIED
type FEE_ADJUSTED
type FEES_DUE_REDUCED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type NET_DIFF_INTEREST
type FEE_REDUCTION_ADJUSTMENT
type WITHHOLDING_TAX
type WITHHOLDING_TAX_ADJUSTMENT
type INTEREST_RATE_CHANGED
type OVERDRAFT_INTEREST_RATE_CHANGED
type OVERDRAFT_LIMIT_CHANGED
type BRANCH_CHANGED
type LOAN_FUNDED
type LOAN_FUNDED_ADJUSTMENT
type LOAN_REPAID
type LOAN_REPAID_ADJUSTMENT
type LOAN_FRACTION_BOUGHT
type LOAN_FRACTION_BOUGHT_ADJUSTMENT
type LOAN_FRACTION_SOLD
type LOAN_FRACTION_SOLD_ADJUSTMENT
type SEIZED_AMOUNT

GracePeriodSettings

{
  "gracePeriod": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "gracePeriodType": "NONE"
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
gracePeriod IntegerIntervalConstraints Decimal integer, like min/max/default. none
gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none

Enumerated Values

Property Value
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS

Group

{
  "addresses": [
    {
      "city": "string",
      "country": "string",
      "encodedKey": "string",
      "indexInList": 0,
      "latitude": 0,
      "line1": "string",
      "line2": "string",
      "longitude": 0,
      "parentKey": "string",
      "postcode": "string",
      "region": "string"
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "emailAddress": "string",
  "encodedKey": "string",
  "groupMembers": [
    {
      "clientKey": "string",
      "roles": [
        {
          "encodedKey": "string",
          "groupRoleNameKey": "string",
          "roleName": "string",
          "roleNameId": "string"
        }
      ]
    }
  ],
  "groupName": "string",
  "groupRoleKey": "string",
  "homePhone": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanCycle": 0,
  "migrationEventKey": "string",
  "mobilePhone": "string",
  "notes": "string",
  "preferredLanguage": "ENGLISH"
}

A group is a type of client that can represent a non-physical person such as a company client or a grouping of individual clients. A group can have its own accounts and can optionally have individual clients as members, in which case they also need to have an individual profile in Mambu.

Properties

Name Type Description Restrictions
addresses [Address] The addresses associated with this group. none
assignedBranchKey string Key of the branch this group is assigned to. none
assignedCentreKey string Key of the centre this group is assigned to. none
assignedUserKey string Key of the user this group is assigned to. none
creationDate string(date-time) The date the group was created. read-only
emailAddress string The email address associated with the group. none
encodedKey (required) string The encoded key of the group, which is auto generated, and must be unique. read-only
groupMembers [GroupMember] The members of this group. none
groupName (required) string The name of the group. none
groupRoleKey string A role which describes the intended use of a group in the system. none
homePhone string The home phone number associated with the group. none
id (required) string The ID of the group, which can be generated and customized, but must be unique. none
lastModifiedDate string(date-time) The last date the group was updated. read-only
loanCycle integer(int32) Number of paid and closed (with 'obligations met') accounts for this client. When the closing operation is reverted, this is reduced. read-only
migrationEventKey string The migration event encoded key associated with this group. read-only
mobilePhone string The mobile phone number associated with the group. none
notes string Extra notes about this group. none
preferredLanguage string The preferred language associated with the group (used for the notifications). none

Enumerated Values

Property Value
preferredLanguage ENGLISH
preferredLanguage PORTUGESE
preferredLanguage SPANISH
preferredLanguage RUSSIAN
preferredLanguage FRENCH
preferredLanguage GEORGIAN
preferredLanguage CHINESE
preferredLanguage INDONESIAN
preferredLanguage ROMANIAN
preferredLanguage BURMESE
preferredLanguage GERMAN
preferredLanguage PORTUGUESE_BRAZIL
preferredLanguage VIETNAMESE
preferredLanguage ITALIAN
preferredLanguage PHRASE

GroupFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The unit that composes the list used for Groups searching

Properties

Name Type Description Restrictions
field (required) string The fields to perform the search. They can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId]. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field id
field creationDate
field groupRoleKey
field branchKey
field centreKey
field creditOfficerKey
field groupName
field lastModifiedDate
field preferredLanguage
field depositsBalance
field loansBalance
field totalBalance
field numberOfMembers
field loanCycle
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

GroupMember

{
  "clientKey": "string",
  "roles": [
    {
      "encodedKey": "string",
      "groupRoleNameKey": "string",
      "roleName": "string",
      "roleNameId": "string"
    }
  ]
}

Represents a group member. A group member is person that uses the services of the bank and is member of a group. Group members may have associated information, such as their client key and a list of roles they have within the group.

Properties

Name Type Description Restrictions
clientKey (required) string The encoded key of the client assigned as member of the group. none
roles [GroupRole] The group role name associated with a group member. none

GroupRole

{
  "encodedKey": "string",
  "groupRoleNameKey": "string",
  "roleName": "string",
  "roleNameId": "string"
}

Represents a group role. A group role, or group role name, is the role of a group member within the group - for example, money collector. One member could have many roles within a group.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the group role name, which is auto generated, and unique. read-only
groupRoleNameKey (required) string The group role name key. none
roleName string The group role name. read-only
roleNameId string The group role name ID. read-only

GroupRoleNameConfiguration

{
  "id": "string",
  "name": "string"
}

Represents a group role name configuration.

Properties

Name Type Description Restrictions
id (required) string The user-defined ID, which must be globally unique. none
name (required) string The name of the group role. none

GroupRoleNamesConfiguration

{
  "groupRoleNames": [
    {
      "id": "string",
      "name": "string"
    }
  ]
}

Represents the group role names configuration.

Properties

Name Type Description Restrictions
groupRoleNames (required) [GroupRoleNameConfiguration] List of all group role names. none

GroupSearchCriteria

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Wrapper that holds a list of filtering criteria and a sorting criteria for Groups client directed query

Properties

Name Type Description Restrictions
filterCriteria (required) [GroupFilterCriteria] The list of filtering criteria none
sortingCriteria GroupSortingCriteria The sorting criteria used for Groups search none

GroupSizeLimitConfiguration

{
  "groupSizeLimitType": "HARD",
  "maxGroupSizeLimit": 0,
  "minGroupSizeLimit": 0
}

Configuration for the group size limitations

Properties

Name Type Description Restrictions
groupSizeLimitType (required) string Group Size Limit Type none
maxGroupSizeLimit integer(int32) Maximum group size none
minGroupSizeLimit integer(int32) Minimum group size none

Enumerated Values

Property Value
groupSizeLimitType HARD
groupSizeLimitType WARNING
groupSizeLimitType NONE

GroupSortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

The sorting criteria used for Groups search

Properties

Name Type Description Restrictions
field (required) string The field to sort by. It can be a native field (one from the provided list) or otherwise can specify a custom field definitionusing the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field id
field creationDate
field groupName
field lastModifiedDate
field depositsBalance
field loansBalance
field totalBalance
field loanCycle
order ASC
order DESC

Guarantor

{
  "amount": 0,
  "assetName": "string",
  "depositAccountKey": "string",
  "encodedKey": "string",
  "guarantorKey": "string",
  "guarantorType": "CLIENT"
}

Guarantor, holds information about a client guaranty entry. It can be defined based on another client which guarantees (including or not a savings account whether it is a client of the organization using Mambu or not) or based on a value the client holds (an asset)

Properties

Name Type Description Restrictions
amount (required) number The amount used by the client for the guaranty none
assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
encodedKey string The encoded key of the security, auto generated, unique. read-only
guarantorKey (required) string The key of the client/group used as the guarantor. none
guarantorType (required) string The type of the guarantor (client/group) none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

GuarantorFullDetails

{
  "_Guarantor_Default_Guarantors": {
    "Example_Checkbox_Guarantors": "TRUE",
    "Example_Free_Text_Guarantors": "string",
    "Example_Number_Field_Guarantors": "string",
    "Example_Select_Field_Guarantors": "Option 1"
  },
  "amount": 0,
  "assetName": "string",
  "depositAccountKey": "string",
  "encodedKey": "string",
  "guarantorKey": "string",
  "guarantorType": "CLIENT"
}

Guarantor, holds information about a client guaranty entry. It can be defined based on another client which guarantees (including or not a savings account whether it is a client of the organization using Mambu or not) or based on a value the client holds (an asset)

Properties

Name Type Description Restrictions
_Guarantor_Default_Guarantors _Guarantor_Default_Guarantors Default custom field set used only for grouping guarantor custom fields none
amount (required) number The amount used by the client for the guaranty none
assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
encodedKey string The encoded key of the security, auto generated, unique. read-only
guarantorKey (required) string The key of the client/group used as the guarantor. none
guarantorType (required) string The type of the guarantor (client/group) none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

Holiday

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "date": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "isAnnuallyRecurring": true,
  "name": "string"
}

Represents the holiday.

Properties

Name Type Description Restrictions
creationDate string(date-time) The date when the holiday was created. none
date string(date) The date the holiday takes place. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
id integer(int64) The ID of the holiday. none
isAnnuallyRecurring boolean TRUE if a holiday is annually recurring, FALSE otherwise. none
name string The name of the holiday. none

HolidayDetails

{
  "dayOfMonth": 0,
  "id": 0,
  "isAnnuallyRecurring": true,
  "monthOfYear": 0,
  "name": "string",
  "year": 0
}

Response representation of a holiday

Properties

Name Type Description Restrictions
dayOfMonth (required) integer(int32) Day of the month of the holiday none
id (required) integer(int64) The id of the Holiday none
isAnnuallyRecurring (required) boolean If holiday occurs every year none
monthOfYear (required) integer(int32) Month of the year of the holiday none
name (required) string The description of the Holiday none
year (required) integer(int32) Year of holiday none

Holidays

{
  "holidays": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "date": "1987-04-26",
      "encodedKey": "string",
      "id": 0,
      "isAnnuallyRecurring": true,
      "name": "string"
    }
  ],
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Represents the holidays of the organization.

Properties

Name Type Description Restrictions
holidays [Holiday] The general holidays of the organization. none
nonWorkingDays [string] The non-working days of the organization. none

HolidaysConfiguration

{
  "holidays": [
    {
      "dayOfMonth": 0,
      "id": 0,
      "isAnnuallyRecurring": true,
      "monthOfYear": 0,
      "name": "string",
      "year": 0
    }
  ],
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Represents the holidays of the organization.

Properties

Name Type Description Restrictions
holidays [HolidayDetails] The general holidays of the organization. none
nonWorkingDays [string] The non-working days of the organization. none

IdentificationDocument

{
  "attachments": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "fileName": "string",
      "fileSize": 0,
      "id": 0,
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "location": "string",
      "name": "string",
      "notes": "string",
      "ownerKey": "string",
      "ownerType": "CLIENT",
      "type": "string"
    }
  ],
  "clientKey": "string",
  "documentId": "string",
  "documentType": "string",
  "encodedKey": "string",
  "identificationDocumentTemplateKey": "string",
  "indexInList": 0,
  "issuingAuthority": "string",
  "validUntil": "1987-04-26"
}

An Id document represents a document that can be used to identify a person like a passport, a drivers license an id card etc.

Properties

Name Type Description Restrictions
attachments [Document] A list containing information about the attached files for this document none
clientKey string The encoded key of the client that owns this document read-only
documentId (required) string The id of the document none
documentType (required) string The type of the document, Passport, Id card Drivers license, etc. none
encodedKey string The encoded key of the document, generated, unique read-only
identificationDocumentTemplateKey string Encoded key of the template used for this document none
indexInList integer(int32) This document's index in the list of documents none
issuingAuthority string Authority that issued the document, eg. Police none
validUntil string(date) Date when the validity of the document ends none

IdentificationDocumentTemplate

{
  "allowAttachments": true,
  "documentIdTemplate": "string",
  "documentType": "string",
  "encodedKey": "string",
  "id": "string",
  "issuingAuthority": "string",
  "mandatory": true
}

Represents a template for identification documents.

Properties

Name Type Description Restrictions
allowAttachments boolean TRUE if a template allows files to be attached, FALSE otherwise. none
documentIdTemplate string The ID template constraint to define the ID number length and format. Templates consist of the characters #, @, and $, where # specifies a number, @ a letter, and $ a number or a letter. none
documentType string The type of the document. For example, passport. none
encodedKey string The encoded key of the ID template. It is auto generated and unique. read-only
id string The unique identifier for the template. none
issuingAuthority string The authority that issued the document. none
mandatory boolean TRUE if a template is mandatory for all the individual clients, FALSE otherwise. none

IdentificationDocumentTemplateConfiguration

{
  "allowAttachments": true,
  "documentIdTemplate": "string",
  "documentType": "string",
  "id": "string",
  "issuingAuthority": "string",
  "mandatoryForClients": true
}

Represents a template for identification documents.

Properties

Name Type Description Restrictions
allowAttachments (required) boolean TRUE if a template allows files to be attached, FALSE otherwise. none
documentIdTemplate (required) string The ID template constraint to define the ID number length and format. Templates consist of the characters #, @, and $, where # specifies a number, @ a letter, and $ a number or a letter. none
documentType (required) string The type of the document. For example, passport. none
id (required) string The unique identifier for the template. none
issuingAuthority (required) string The authority that issued the document. none
mandatoryForClients (required) boolean TRUE if a template is mandatory for all the clients, FALSE otherwise. none

IdentificationDocumentTemplatesConfiguration

{
  "idDocumentTemplates": [
    {
      "allowAttachments": true,
      "documentIdTemplate": "string",
      "documentType": "string",
      "id": "string",
      "issuingAuthority": "string",
      "mandatoryForClients": true
    }
  ]
}

Represents the templates for identification documents

Properties

Name Type Description Restrictions
idDocumentTemplates [IdentificationDocumentTemplateConfiguration] The templates for id documents none

IndexRate

{
  "assignedIndexRateSourceKey": "string",
  "encodedKey": "string",
  "id": "string",
  "notes": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00",
  "userKey": "string"
}

Represents an index rate.

Properties

Name Type Description Restrictions
assignedIndexRateSourceKey string The index rate source that the index rate belongs to. read-only
encodedKey string The encoded key of the index rate, which is auto generated, and unique. read-only
id string The ID of the index rate, which can be generated and customized, and must be unique. none
notes string The notes or description attached to this object. none
rate number The percentage value of the index rate. none
startDate string(date-time) The date when the index rate starts being the active rate for its source. none
userKey string The key for the user that last modified the index rate. read-only

IndexRateConfiguration

{
  "id": "string",
  "notes": "string",
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

Represents the configuration for an index rate.

Properties

Name Type Description Restrictions
id (required) string The ID of the index rate, which must be unique. none
notes string The notes or description attached to this object. none
rate (required) number The percentage value of the index rate. none
startDate (required) string(date-time) The date when the index rate starts being the active rate for its source. none

IndexRateSource

{
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string",
  "type": "INTEREST_RATE"
}

Represents an index rate source.

Properties

Name Type Description Restrictions
creationDate string(date-time) The creation date of the index rate source read-only
encodedKey string The encoded key of the index rate source, which is auto generated, and unique. read-only
id string The ID of the index rate source, which can be generated and customized, and must be unique. none
lastModifiedDate string(date-time) The last date this rate source was modified read-only
name string The name of the index rate source. none
notes string The notes about the the index rate source. none
type string The type of index rate source. none

Enumerated Values

Property Value
type INTEREST_RATE
type TAX_RATE
type WITHHOLDING_TAX_RATE
type PRINCIPAL_TAX_RATE

IndexRateSourceConfiguration

{
  "id": "string",
  "indexRates": [
    {
      "id": "string",
      "notes": "string",
      "rate": 0,
      "startDate": "2016-09-06T13:37:50+03:00"
    }
  ],
  "name": "string",
  "notes": "string",
  "type": "INTEREST_RATE"
}

Represents the configuration for an index rate source.

Properties

Name Type Description Restrictions
id (required) string The ID of the index rate source, which must be unique. none
indexRates (required) [IndexRateConfiguration] The list of index rates associated with the index rate source. none
name (required) string The name of the index rate source. none
notes string The notes or description attached to this object. none
type (required) string The type of index rate source. none

Enumerated Values

Property Value
type INTEREST_RATE
type TAX_RATE
type WITHHOLDING_TAX_RATE

IndexRatesConfiguration

{
  "indexRateSources": [
    {
      "id": "string",
      "indexRates": [
        {
          "id": "string",
          "notes": "string",
          "rate": 0,
          "startDate": "2016-09-06T13:37:50+03:00"
        }
      ],
      "name": "string",
      "notes": "string",
      "type": "INTEREST_RATE"
    }
  ]
}

Represents the index rates configuration.

Properties

Name Type Description Restrictions
indexRateSources (required) [IndexRateSourceConfiguration] List of all index rate sources. none

Installment

{
  "dueDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "expectedClosingBalance": 0,
  "fee": {
    "amount": {
      "due": 0,
      "expected": 0,
      "expectedUnapplied": 0,
      "paid": 0
    },
    "tax": {
      "due": 0,
      "expected": 0,
      "paid": 0
    }
  },
  "feeDetails": [
    {
      "amount": {
        "due": 0,
        "expected": 0,
        "paid": 0,
        "reduced": 0
      },
      "encodedKey": "string",
      "id": "string",
      "name": "string",
      "tax": {
        "due": 0,
        "expected": 0,
        "paid": 0,
        "reduced": 0
      }
    }
  ],
  "interest": {
    "amount": {
      "due": 0,
      "expected": 0,
      "paid": 0
    },
    "tax": {
      "due": 0,
      "expected": 0,
      "paid": 0
    }
  },
  "interestAccrued": 0,
  "isPaymentHoliday": true,
  "lastPaidDate": "2016-09-06T13:37:50+03:00",
  "number": "string",
  "parentAccountKey": "string",
  "penalty": {
    "amount": {
      "due": 0,
      "expected": 0,
      "paid": 0
    },
    "tax": {
      "due": 0,
      "expected": 0,
      "paid": 0
    }
  },
  "principal": {
    "amount": {
      "due": 0,
      "expected": 0,
      "paid": 0
    }
  },
  "repaidDate": "2016-09-06T13:37:50+03:00",
  "state": "PENDING"
}

Represents a single installment details structure.

Properties

Name Type Description Restrictions
dueDate string(date-time) The installment due date. none
encodedKey string The encoded key of the installment, which is auto generated, and unique. read-only
expectedClosingBalance number The expected closing balance is the remaining amount per installment only applicable for interest only equal installment products. none
fee InstallmentFee Represents an installment fee structure. none
feeDetails [InstallmentFeeDetails] The breakdown of the fee amounts that have been applied to the loan account. none
interest InstallmentAllocationElementTaxableAmount Represents an installment allocation element taxable amount structure. none
interestAccrued number The interest accrued calculated on previous repayment closing balance only applicable interest only equal installment products. none
isPaymentHoliday boolean TRUE if a payment holiday is offered for the installment, FALSE otherwise. none
lastPaidDate string(date-time) The installment last paid date. none
number string The order number of an installment among all the installments generated for a loan. Loan installments are put in ascending order by due date. The order number only applies to the content of a particular JSON response therefore it is not unique. none
parentAccountKey string The parent account key of the installment. none
penalty InstallmentAllocationElementTaxableAmount Represents an installment allocation element taxable amount structure. none
principal InstallmentAllocationElementAmount Represents an installment allocation element amount structure. none
repaidDate string(date-time) The installment repaid date. none
state string The installment state. none

Enumerated Values

Property Value
state PENDING
state LATE
state PAID
state PARTIALLY_PAID
state GRACE

InstallmentAllocationElementAmount

{
  "amount": {
    "due": 0,
    "expected": 0,
    "paid": 0
  }
}

Represents an installment allocation element amount structure.

Properties

Name Type Description Restrictions
amount Amount Represents a simple installment amount structure. none

InstallmentAllocationElementTaxableAmount

{
  "amount": {
    "due": 0,
    "expected": 0,
    "paid": 0
  },
  "tax": {
    "due": 0,
    "expected": 0,
    "paid": 0
  }
}

Represents an installment allocation element taxable amount structure.

Properties

Name Type Description Restrictions
amount Amount Represents a simple installment amount structure. none
tax Amount Represents a simple installment amount structure. none

InstallmentFee

{
  "amount": {
    "due": 0,
    "expected": 0,
    "expectedUnapplied": 0,
    "paid": 0
  },
  "tax": {
    "due": 0,
    "expected": 0,
    "paid": 0
  }
}

Represents an installment fee structure.

Properties

Name Type Description Restrictions
amount FeeAmount Represents a fee amount. none
tax Amount Represents a simple installment amount structure. none

InstallmentFeeDetails

{
  "amount": {
    "due": 0,
    "expected": 0,
    "paid": 0,
    "reduced": 0
  },
  "encodedKey": "string",
  "id": "string",
  "name": "string",
  "tax": {
    "due": 0,
    "expected": 0,
    "paid": 0,
    "reduced": 0
  }
}

Represents fee details for an installment.

Properties

Name Type Description Restrictions
amount AmountWithReduced Represents a simple installment amount structure. none
encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
id string The id of the fee, provided by the client none
name string The name of the fee none
tax AmountWithReduced Represents a simple installment amount structure. none

IntegerInterval

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Decimal integer, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
maxValue integer(int32) The maximum value. none
minValue integer(int32) The minimum value. none

IntegerIntervalConfiguration

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Decimal integer, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
maxValue integer(int32) The maximum value. none
minValue integer(int32) The minimum value. none

IntegerIntervalConstraints

{
  "defaultValue": 0,
  "encodedKey": "string",
  "maxValue": 0,
  "minValue": 0
}

Decimal integer, like min/max/default.

Properties

Name Type Description Restrictions
defaultValue integer(int32) The default value, will be used in case no other value was filled in by the user. none
encodedKey string The encoded key of the integer constraint, auto generated, unique read-only
maxValue integer(int32) The maximum value. none
minValue integer(int32) The minimum value. none

InterBranchTransferRuleConfiguration

{
  "glCode": "string",
  "id": "string",
  "leftBranchId": "string",
  "rightBranchId": "string"
}

Represents a custom accounting rule for inter-branch transfers. The specified general ledger account will be used for the given branches, instead of the default general ledger account code for inter-branch transfers.

Properties

Name Type Description Restrictions
glCode (required) string The unique identifier of the account that is mapped to the financialResource value. none
id (required) string A user-defined unique ID. Note that the rules are ordered by ID in the YAML file. none
leftBranchId (required) string The ID of the left branch of the accounting rule. none
rightBranchId (required) string The ID of the right branch of the accounting rule. none

InterestAccountSettingsAvailability

{
  "encodedKey": "string",
  "interestRateSettings": {
    "interestRate": 0,
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Interest Availability of a Deposit Account

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the Interest Availability, auto generated, unique. read-only
interestRateSettings (required) DepositAccountInterestAvailabilitySettings Interest Rate Settings for Deposit Account Interest Availability none
startDate (required) string(date) Start date of the Interest Availability. none
type (required) string Type of the interest. none

Enumerated Values

Property Value
type INTEREST
type OVERDRAFT
type TECHNICAL_OVERDRAFT

InterestAccountSettingsAvailabilityForUpdate

{
  "encodedKey": "string",
  "interestRateSettings": {
    "interestRate": 0,
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  }
}

Interest Availability of a Deposit Account

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the Interest Availability, auto generated, unique. read-only
interestRateSettings (required) DepositAccountInterestAvailabilitySettings Interest Rate Settings for Deposit Account Interest Availability none

InterestAccountSettingsAvailabilityResponse

{
  "encodedKey": "string",
  "interestRateSettings": {
    "encodedKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "endingDay": 0,
        "interestRate": 0
      }
    ],
    "interestSpread": 0
  },
  "startDate": "1987-04-26",
  "type": "INTEREST"
}

Interest Availability of a Deposit Account

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the Interest Availability, auto generated, unique. read-only
interestRateSettings DepositAccountInterestRateSettings Represents information about the interest rate settings for deposit accounts. none
startDate string(date) Start date of the Interest Availability. none
type string Type of the interest. none

Enumerated Values

Property Value
type INTEREST
type OVERDRAFT
type TECHNICAL_OVERDRAFT

InterestAccrualBreakdown

{
  "accountId": "string",
  "accountKey": "string",
  "amount": 0,
  "bookingDate": "string",
  "branchKey": "string",
  "branchName": "string",
  "creationDate": "string",
  "entryId": 0,
  "entryType": "string",
  "foreignAmount": {
    "accountingRate": {
      "encodedKey": "string",
      "endDate": "2016-09-06T13:37:50+03:00",
      "fromCurrencyCode": "string",
      "rate": 0,
      "startDate": "2016-09-06T13:37:50+03:00",
      "toCurrencyCode": "string"
    },
    "amount": 0,
    "currency": {
      "code": "AED",
      "currencyCode": "string"
    }
  },
  "glAccountId": "string",
  "glAccountKey": "string",
  "glAccountName": "string",
  "glAccountType": "string",
  "parentEntryId": 0,
  "productId": "string",
  "productKey": "string",
  "productType": "string",
  "transactionId": "string"
}

Represents an interest accrual breakdown entry.

Properties

Name Type Description Restrictions
accountId string The loan or deposit account ID for which interest is accrued. none
accountKey string The encoded key of the loan or deposit account for which interest is accrued. none
amount number The interest accrued amount for the account in this entry. none
bookingDate string The booking date in the organization's timezone. none
branchKey string The encoded key of the account's branch. none
branchName string The name of the account's branch none
creationDate string The creation date and time of the entry in UTC. none
entryId integer(int64) The generated ID of the interest accrual per account entry. none
entryType string Debit or Credit. none
foreignAmount ForeignAmount Represents the details of general ledger journal entries posted in foreign currency. none
glAccountId string The ID of the general ledger account. none
glAccountKey string The encoded key of the general ledger account used for logging the interest accrual. none
glAccountName string The name of the general ledger account. none
glAccountType string The general ledger account type, which can be: ASSET, LIABILITY, EQUITY, INCOME, or EXPENSE. none
parentEntryId integer(int64) The ID of the general ledger journal entry that logged the interest accrual sum for all accounts of the same product. none
productId string The ID of the account's product. none
productKey string The encoded key of the account's product. none
productType string The product type. none
transactionId string The journal entry transaction ID. none

InterestAccrualFilterCriteria

{
  "field": "entryId",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

Represents the filter criteria used for searching interest accrual entries.

Properties

Name Type Description Restrictions
field (required) string Contains the fields to use for searching. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field entryId
field glAccountKey
field parentEntryId
field productType
field bookingDate
field creationDate
field transactionId
field glAccountId
field glAccountType
field debit
field credit
field branchKey
field accountKey
field productKey
field accountId
field foreignCredit
field foreignDebit
field foreignCurrencyCode
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

InterestAccrualSearchCriteria

{
  "filterCriteria": [
    {
      "field": "entryId",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "entryId",
    "order": "ASC"
  }
}

Represents the filtering criteria list and sorting criteria for searching interest accrual entries.

Properties

Name Type Description Restrictions
filterCriteria [InterestAccrualFilterCriteria] The list of filtering criteria. none
sortingCriteria InterestAccrualSortingCriteria The sorting criteria used for sorting interest accrual entries. none

InterestAccrualSortingCriteria

{
  "field": "entryId",
  "order": "ASC"
}

The sorting criteria used for sorting interest accrual entries.

Properties

Name Type Description Restrictions
field (required) string The field to use as the sorting criteria. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field entryId
field parentEntryId
field bookingDate
field creationDate
field transactionId
field glAccountType
field debit
field credit
field accountId
field foreignCredit
field foreignDebit
field foreignCurrencyCode
order ASC
order DESC

InterestPaymentSettings

{
  "interestPaymentDates": [
    {
      "day": 0,
      "month": 0
    }
  ],
  "interestPaymentPoint": "FIRST_DAY_OF_MONTH"
}

Defines the interest payment settings for the deposit product and for deposits created based on this product

Properties

Name Type Description Restrictions
interestPaymentDates [MonthAndDay] List of all dates on which the interest is payed into deposit account none
interestPaymentPoint string Specifies when the interest should be paid to the deposit account none

Enumerated Values

Property Value
interestPaymentPoint FIRST_DAY_OF_MONTH
interestPaymentPoint EVERY_WEEK
interestPaymentPoint EVERY_OTHER_WEEK
interestPaymentPoint EVERY_MONTH
interestPaymentPoint EVERY_3_MONTHS
interestPaymentPoint ON_FIXED_DATES
interestPaymentPoint DAILY
interestPaymentPoint ANNUALLY
interestPaymentPoint BI_ANNUALLY
interestPaymentPoint ON_ACCOUNT_MATURITY

InterestProductSettings

{
  "accrueInterestAfterMaturity": true,
  "allowNegativeInterestRate": true,
  "encodedKey": "string",
  "indexSourceKey": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateCeilingValue": 0,
  "interestRateFloorValue": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "encodedKey": "string",
      "endingBalance": 0,
      "interestRate": 0
    }
  ]
}

The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product.

Properties

Name Type Description Restrictions
accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date none
allowNegativeInterestRate boolean Indicator whether the loan product allows negative values for interest rate or interest spread none
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
indexSourceKey string Index rate source key. none
interestChargeFrequency string The interval used for determining how often is interest charged none
interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
interestRate DecimalInterval Decimal constraints, like min/max/default. none
interestRateCeilingValue number Interest spread + index interest rate can't be more than this amount (valid only for index interest rate products). none
interestRateFloorValue number Interest spread + index interest rate can't be less than this amount (valid only for index interest rate products). none
interestRateReviewCount integer(int32) Interest rate review frequency unit count none
interestRateReviewUnit string Interest rate review frequency measurement unit none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
interestRateTiers [InterestRateTier] The list of interest rate tiers available for the current settings instance none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

InterestRateChangePMTAdjustmentThreshold

{
  "method": "WORKING_DAYS",
  "numberOfDays": 0
}

Represents interest rate change threshold settings for loan accounts and loan products.

Properties

Name Type Description Restrictions
method string The method used to calculate the interest rate change threshold. none
numberOfDays integer(int32) The number of days that trigger an interest rate change. none

Enumerated Values

Property Value
method WORKING_DAYS
method CALENDAR_DAYS

InterestRateTier

{
  "encodedKey": "string",
  "endingBalance": 0,
  "interestRate": 0
}

Used or TIERED interest rates, holds the values to define how the interest is computed

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate tier, auto generated, unique read-only
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

InterestSettings

{
  "accountInterestRateSettings": [
    {
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestRate": 0,
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "validFrom": "2016-09-06T13:37:50+03:00"
    }
  ],
  "accrueInterestAfterMaturity": true,
  "accrueLateInterest": true,
  "interestApplicationMethod": "AFTER_DISBURSEMENT",
  "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
  "interestCalculationMethod": "FLAT",
  "interestChargeFrequency": "ANNUALIZED",
  "interestRate": 0,
  "interestRateChangePMTAdjustmentThreshold": {
    "method": "WORKING_DAYS",
    "numberOfDays": 0
  },
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestSpread": 0,
  "interestType": "SIMPLE_INTEREST"
}

The interest settings, holds all the properties regarding interests for the loan account.

Properties

Name Type Description Restrictions
accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
accrueInterestAfterMaturity boolean The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date. none
accrueLateInterest boolean Indicates whether late interest is accrued for this loan account read-only
interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
interestChargeFrequency string The interest change frequency. Holds the possible values for how often is interest charged on loan or deposit accounts none
interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
interestRateReviewCount integer(int32) Interest rate update frequency unit count. none
interestRateReviewUnit string The interest rate review unit. Defines the interest rate update frequency measurement unit. none
interestRateSource string The interest rate source. Represents the interest calculation method: fixed or (interest spread + active organization index interest rate) none
interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none
interestType string The possible values for how we compute and apply the interest none

Enumerated Values

Property Value
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST

InterestSettingsForSchedulePreview

{
  "accountInterestRateSettings": [
    {
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestRate": 0,
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "validFrom": "2016-09-06T13:37:50+03:00"
    }
  ],
  "interestRate": 0,
  "interestSpread": 0
}

The interest settings, holds all the properties regarding interests for the loan account.

Properties

Name Type Description Restrictions
accountInterestRateSettings [AccountInterestRateSettings] The interest settings details for schedule preview. none
interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none
interestSpread number Interest to be added to active organization index interest rate in order to find out actual interest rate none

InternalControls

{
  "dormancyPeriodDays": 0,
  "fourEyesPrinciple": {
    "activeForLoanApproval": true
  },
  "lockSettings": {
    "cappingConstraintType": "SOFT_CAP",
    "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
    "cappingPercentage": 0,
    "lockPeriodDays": 0
  }
}

Constraints and automated actions and that will be applied on the accounts.

Properties

Name Type Description Restrictions
dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
fourEyesPrinciple FourEyesPrinciple Settings for Four Eyes Principle none
lockSettings LockSettings Settings applied when transitioning accounts to Locked state none

InternalControlsConfiguration

{
  "allowMultipleGroupMemberships": true,
  "allowMultipleLoans": true,
  "approvalDisbursalTwoManRuleEnabled": true,
  "arrearsDaysBeforeWriteOff": 0,
  "assignmentConstraints": [
    "BRANCH"
  ],
  "availableDashboardSections": [
    "LATEST_ACTIVITY"
  ],
  "defaultClientState": "PENDING_APPROVAL",
  "defaultLineOfCreditState": "PENDING_APPROVAL",
  "duplicateClientFieldsConfiguration": {
    "duplicateClientChecks": [
      "DOCUMENT_ID_AND_TYPE"
    ],
    "duplicateClientConstraintAction": "NONE"
  },
  "fourEyesPrincipleConfiguration": {
    "activeForLoans": true
  },
  "groupSizeLimit": {
    "groupSizeLimitType": "HARD",
    "maxGroupSizeLimit": 0,
    "minGroupSizeLimit": 0
  },
  "loanExposure": {
    "exposureAmount": 0,
    "exposureType": "UNLIMITED"
  },
  "maxAllowedUndoClosurePeriod": 0
}

Model representation of the internal controls configuration.

Properties

Name Type Description Restrictions
allowMultipleGroupMemberships (required) boolean Option that shows if a client can be member of multiple groups none
allowMultipleLoans (required) boolean Option that shows if multiple loans are allowed or not none
approvalDisbursalTwoManRuleEnabled (required) boolean Requires separate users for approvals and disbursals none
arrearsDaysBeforeWriteOff (required) integer(int32) Number of days that are required before an account can be written off none
assignmentConstraints (required) [string] List of required assignments for Clients and Groups, ordered alphabetically none
availableDashboardSections (required) [string] List of available dashboard sections, ordered alphabetically none
defaultClientState (required) string The state that a client it's set when it's created none
defaultLineOfCreditState (required) string The state that a line of credit it's set when it's created none
duplicateClientFieldsConfiguration (required) DuplicateClientFieldsConfiguration The duplicate client constraints configuration that are available in the administration and can be performed none
fourEyesPrincipleConfiguration FourEyesPrincipleConfiguration Configuration for Four Eyes Principle none
groupSizeLimit (required) GroupSizeLimitConfiguration Configuration for the group size limitations none
loanExposure (required) LoanExposureConfiguration Configuration for maximum exposure to a client none
maxAllowedUndoClosurePeriod (required) integer(int32) Maximum of days we allow users to undo of close obligations met for an loan account none

Enumerated Values

Property Value
defaultClientState PENDING_APPROVAL
defaultClientState INACTIVE
defaultLineOfCreditState PENDING_APPROVAL
defaultLineOfCreditState APPROVED

InvestorFund

{
  "amount": 0,
  "assetName": "string",
  "depositAccountKey": "string",
  "encodedKey": "string",
  "guarantorKey": "string",
  "guarantorType": "CLIENT",
  "id": "string",
  "interestCommission": 0,
  "sharePercentage": 0
}

Contains the details about an investor fund including fields like encoded key, guarantor type, amount and guarantor key

Properties

Name Type Description Restrictions
amount (required) number The amount used by the client for the guaranty none
assetName string The name of a value the client guarantees with (populated when the guaranty type is ASSET) none
depositAccountKey string The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
guarantorKey (required) string The key of the client/group used as the guarantor. none
guarantorType (required) string The type of the guarantor (client/group) none
id string Investor fund unique identifier. All versions of an investor fund will have same id. none
interestCommission number The constraint minimum value none
sharePercentage number Percentage of loan shares this investor owns none

Enumerated Values

Property Value
guarantorType CLIENT
guarantorType GROUP

LinkedTransaction

{
  "linkedTransactionKey": "string",
  "linkedTransactionType": "LOAN"
}

The details of the linked financial transaction triggered by the card transaction.

Properties

Name Type Description Restrictions
linkedTransactionKey string The encodedKey of the linked financial transaction. none
linkedTransactionType string The type of the linked transaction (Deposit / Loan). none

Enumerated Values

Property Value
linkedTransactionType LOAN
linkedTransactionType DEPOSIT

LoanAccount

{
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.

Properties

Name Type Description Restrictions
accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
accountHolderKey (required) string The encoded key of the account holder. none
accountHolderType (required) string The type of the account holder. none
accountState string The state of the loan account. none
accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
accruedInterest number The amount of interest that has been accrued in the loan account. none
accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
activationTransactionKey string The encoded key of the transaction that activated the loan account. none
allowOffset boolean DEPRECATED - Will always be false. none
approvedDate string(date-time) The date the loan account was approved. none
arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
assets [Asset] The list of assets associated with the current loan account. none
assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
assignedCentreKey string The key of the centre this account is assigned to. none
assignedUserKey string The key of the user this loan account is assigned to. none
balances Balances The loan account balance details. none
closedDate string(date-time) The date the loan was closed. none
creationDate string(date-time) The date the loan account was created. none
creditArrangementKey string The key to the line of credit where this account is registered to. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
fundingSources [InvestorFund] The list of funds associated with the loan account. none
futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
guarantors [Guarantor] The list of guarantees associated with the loan account. none
id string The ID of the loan account, it can be generated and customized, and must be unique. none
interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
lastModifiedDate string(date-time) The last date the loan was updated. none
lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
loanAmount (required) number The loan amount. none
loanName string The name of the loan account. none
lockedAccountTotalDueType string The locked account total due type. none
lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
notes string The notes about this loan account. none
originalAccountKey string The key of the original rescheduled or refinanced loan account. none
paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
settlementAccountKey string The encoded key of the settlement account. none
taxRate number The tax rate. none
terminationDate string(date-time) The date this loan account was terminated. none
tranches [LoanTranche] The list of disbursement tranches available for the loan account. none

Enumerated Values

Property Value
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL

LoanAccountAction

{
  "action": "REQUEST_APPROVAL",
  "notes": "string"
}

Represents information for an action to perform on a loan account.

Properties

Name Type Description Restrictions
action (required) string The action type to be applied. none
notes string The notes related to the action performed. none

Enumerated Values

Property Value
action REQUEST_APPROVAL
action SET_INCOMPLETE
action APPROVE
action UNDO_APPROVE
action REJECT
action WITHDRAW
action CLOSE
action UNDO_REJECT
action UNDO_WITHDRAW
action UNDO_CLOSE

LoanAccountDocument

{}

Properties

None

LoanAccountFilterCriteria

{
  "field": "accountHolderKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

Wrapper that holds a list of filtering criteria and a sorting criteria for Loan account directed query

Properties

Name Type Description Restrictions
field (required) string Contains the actual searching fields that can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId]. none
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field accountHolderKey
field productTypeKey
field loanRiskLevelKey
field encodedKey
field loanName
field id
field accountHolderId
field recipient
field creationDate
field approvedDate
field lastModifiedDate
field lastSetToArrearsDate
field lastLockedDate
field closedDate
field daysInArrears
field daysLate
field accountSubState
field accountState
field loanAmount
field numInstallments
field balances.principalDue
field balances.principalPaid
field balances.principalBalance
field balances.interestDue
field balances.interestPaid
field balance.interestBalance
field accruedInterest
field balances.feesDue
field balances.feesBalance
field balances.feesPaid
field penaltySettings.loanPenaltyCalculationMethod
field balances.penaltyDue
field balances.penaltyPaid
field balances.penaltyBalance
field accruedPenalty
field penaltySettings.penaltyRate
field arrearsTolerancePeriod
field interestSettings.interestRate
field interestSettings.interestSpread
field totalPaid
field totalBalance
field totalDue
field firstRepaymentDate
field lastPaymentDate
field lastPaymentAmount
field expectedMaturityDate
field rescheduledAccountKey
field refinancedAccountId
field originalAccountKey
field taxRate
field taxPaid
field taxDue
field settlementAccountKey
field interestCommission
field fundingSources.amount
field fundingSources.sharePercentage
field numberOfFunds
field fundsEnabled
field availableAmount
field wasRescheduled
field wasRefinanced
field prepaymentSettings.prepaymentRecalculationMethod
field prepaymentSettings.applyInterestOnPrepaymentMethod
field latePaymentsRecalculationMethod
field balances.redrawBalance
field expectedPrincipalRedraw
field tranches.parentAccountKey
field tranches.disbursementDetails.disbursementTransactionKey
field tranches.amount
field tranches.disbursementDetails.expectedDisbursementDate
field disbursementDetails.expectedDisbursementDate
field disbursementDetails.disbursementDate
field lastAccountAppraisalDate
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

LoanAccountFullDetails

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "accountArrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "accountHolderKey": "string",
  "accountHolderType": "CLIENT",
  "accountState": "PARTIAL_APPLICATION",
  "accountSubState": "PARTIALLY_DISBURSED",
  "accruedInterest": 0,
  "accruedPenalty": 0,
  "activationTransactionKey": "string",
  "allowOffset": true,
  "approvedDate": "2016-09-06T13:37:50+03:00",
  "arrearsTolerancePeriod": 0,
  "assets": [
    {
      "_Asset_Default_Assets": {
        "Example_Checkbox_Field_Assets": "TRUE",
        "Example_Free_Text_Field_Assets": "string",
        "Example_Number_Field_Assets": "string",
        "Example_Select_Field_Assets": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "originalAmount": 0,
      "originalCurrency": {
        "code": "AED",
        "currencyCode": "string"
      }
    }
  ],
  "assignedBranchKey": "string",
  "assignedCentreKey": "string",
  "assignedUserKey": "string",
  "balances": {
    "feesBalance": 0,
    "feesDue": 0,
    "feesPaid": 0,
    "holdBalance": 0,
    "interestBalance": 0,
    "interestDue": 0,
    "interestFromArrearsBalance": 0,
    "interestFromArrearsDue": 0,
    "interestFromArrearsPaid": 0,
    "interestPaid": 0,
    "penaltyBalance": 0,
    "penaltyDue": 0,
    "penaltyPaid": 0,
    "principalBalance": 0,
    "principalDue": 0,
    "principalPaid": 0,
    "redrawBalance": 0
  },
  "closedDate": "2016-09-06T13:37:50+03:00",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementKey": "string",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "daysInArrears": 0,
  "daysLate": 0,
  "disbursementDetails": {
    "disbursementDate": "2016-09-06T13:37:50+03:00",
    "encodedKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00",
    "transactionDetails": {
      "encodedKey": "string",
      "internalTransfer": true,
      "targetDepositAccountKey": "string",
      "transactionChannelId": "string",
      "transactionChannelKey": "string"
    }
  },
  "encodedKey": "string",
  "fundingSources": [
    {
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT",
      "id": "string",
      "interestCommission": 0,
      "sharePercentage": 0
    }
  ],
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestAccruedInBillingCycle": 0,
  "interestCommission": 0,
  "interestFromArrearsAccrued": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "accrueInterestAfterMaturity": true,
    "accrueLateInterest": true,
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestChargeFrequency": "ANNUALIZED",
    "interestRate": 0,
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestSpread": 0,
    "interestType": "SIMPLE_INTEREST"
  },
  "lastAccountAppraisalDate": "2016-09-06T13:37:50+03:00",
  "lastInterestAppliedDate": "2016-09-06T13:37:50+03:00",
  "lastInterestReviewDate": "2016-09-06T13:37:50+03:00",
  "lastLockedDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastSetToArrearsDate": "2016-09-06T13:37:50+03:00",
  "lastTaxRateReviewDate": "2016-09-06T13:37:50+03:00",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "loanAmount": 0,
  "loanName": "string",
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "migrationEventKey": "string",
  "modifyInterestForFirstInstallment": true,
  "notes": "string",
  "originalAccountKey": "string",
  "paymentHolidaysAccruedInterest": 0,
  "paymentMethod": "HORIZONTAL",
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "penaltyRate": 0
  },
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": 0,
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "productTypeKey": "string",
  "redrawSettings": {
    "restrictNextDueWithdrawal": true
  },
  "rescheduledAccountKey": "string",
  "scheduleSettings": {
    "billingCycle": {
      "days": [
        0
      ]
    },
    "defaultFirstRepaymentDueDateOffset": 0,
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "gracePeriodType": "NONE",
    "hasCustomSchedule": true,
    "paymentPlan": [
      {
        "amount": 0,
        "encodedKey": "string",
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS",
    "repaymentScheduleMethod": "NONE",
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "settlementAccountKey": "string",
  "taxRate": 0,
  "terminationDate": "2016-09-06T13:37:50+03:00",
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
accountArrearsSettings AccountArrearsSettings The account arrears settings, holds the required information for the arrears settings of an account. none
accountHolderKey (required) string The encoded key of the account holder. none
accountHolderType (required) string The type of the account holder. none
accountState string The state of the loan account. none
accountSubState string A second state for the loan account. Beside the account state, a second substate is sometimes necessary to provide more information about the exact lifecycle state of a loan account.For example, even if the account state of a loan account is ACTIVE, it can also have a substate of LOCKED. none
accruedInterest number The amount of interest that has been accrued in the loan account. none
accruedPenalty number The accrued penalty, represents the amount of penalty that has been accrued in the loan account. none
activationTransactionKey string The encoded key of the transaction that activated the loan account. none
allowOffset boolean DEPRECATED - Will always be false. none
approvedDate string(date-time) The date the loan account was approved. none
arrearsTolerancePeriod integer(int32) The arrears tolerance (period or day of month) depending on the product settings. none
assets [AssetFullDetails] The list of assets associated with the current loan account. none
assignedBranchKey string The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. none
assignedCentreKey string The key of the centre this account is assigned to. none
assignedUserKey string The key of the user this loan account is assigned to. none
balances Balances The loan account balance details. none
closedDate string(date-time) The date the loan was closed. none
creationDate string(date-time) The date the loan account was created. none
creditArrangementKey string The key to the line of credit where this account is registered to. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
daysInArrears integer(int32) The number of days the loan account is in arrears. read-only
daysLate integer(int32) The number of days a repayment for the loan account is late. read-only
disbursementDetails DisbursementDetails The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
encodedKey string The encoded key of the loan account, it is auto generated, and must be unique. read-only
fundingSources [InvestorFund] The list of funds associated with the loan account. none
futurePaymentsAcceptance string Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. none
guarantors [GuarantorFullDetails] The list of guarantees associated with the loan account. none
id string The ID of the loan account, it can be generated and customized, and must be unique. none
interestAccruedInBillingCycle number The interest that is accrued in the current billing cycle. read-only
interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. none
interestFromArrearsAccrued number The amount of interest from arrears that has been accrued in the loan account. read-only
interestSettings (required) InterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
lastAccountAppraisalDate string(date-time) The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. none
lastInterestAppliedDate string(date-time) The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. none
lastInterestReviewDate string(date-time) The date the interest was reviewed last time, stored in the organization time format and time zone. none
lastLockedDate string(date-time) The date when the loan account was set for the last time in the LOCKED state expressed in the organization time format and time zone. If null, the account is not locked anymore. none
lastModifiedDate string(date-time) The last date the loan was updated. none
lastSetToArrearsDate string(date-time) The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. none
lastTaxRateReviewDate string(date-time) The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. none
latePaymentsRecalculationMethod string The overdue payments recalculation method inherited from the loan product on which this loan account is based. none
loanAmount (required) number The loan amount. none
loanName string The name of the loan account. none
lockedAccountTotalDueType string The locked account total due type. none
lockedOperations [string] A list with operations which are locked when the account is in the AccountState.LOCKED substate. none
migrationEventKey string The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from. none
modifyInterestForFirstInstallment boolean Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency read-only
notes string The notes about this loan account. none
originalAccountKey string The key of the original rescheduled or refinanced loan account. none
paymentHolidaysAccruedInterest number The amount of interest that has been accrued during payment holidays in the loan account. none
paymentMethod string The interest payment method that determines whether the payments are made horizontally (on the repayments) or vertically (on the loan account). none
penaltySettings PenaltySettings The penalty settings, holds all the fields regarding penalties none
plannedInstallmentFees [PlannedInstallmentFee] The list with manual fees planned on the installments of the loan account. none
prepaymentSettings PrepaymentSettings The prepayment settings, holds all prepayment properties. none
principalPaymentSettings PrincipalPaymentAccountSettings The principal payment account settings, holds the required information for the principal payment process of an account. none
productTypeKey (required) string The key for the type of loan product that this loan account is based on. none
redrawSettings LoanAccountRedrawSettings Represents the redraw settings for a loan account. none
rescheduledAccountKey string The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. none
scheduleSettings (required) ScheduleSettings The schedule settings, holds all schedule properties. none
settlementAccountKey string The encoded key of the settlement account. none
taxRate number The tax rate. none
terminationDate string(date-time) The date this loan account was terminated. none
tranches [LoanTranche] The list of disbursement tranches available for the loan account. none

Enumerated Values

Property Value
accountHolderType CLIENT
accountHolderType GROUP
accountState PARTIAL_APPLICATION
accountState PENDING_APPROVAL
accountState APPROVED
accountState ACTIVE
accountState ACTIVE_IN_ARREARS
accountState CLOSED
accountSubState PARTIALLY_DISBURSED
accountSubState LOCKED
accountSubState LOCKED_CAPPING
accountSubState REFINANCED
accountSubState RESCHEDULED
accountSubState WITHDRAWN
accountSubState REPAID
accountSubState REJECTED
accountSubState WRITTEN_OFF
accountSubState TERMINATED
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS
paymentMethod HORIZONTAL
paymentMethod VERTICAL

LoanAccountPayOffInput

{
  "externalId": "string",
  "notes": "string",
  "payOffAdjustableAmounts": {
    "feesPaid": 0,
    "interestPaid": 0,
    "penaltyPaid": 0
  },
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  }
}

Represents the information for loan account pay off action.

Properties

Name Type Description Restrictions
externalId string The external ID for the repayment transaction. none
notes string The notes for the repayment transaction logged for the pay off action. none
payOffAdjustableAmounts PayOffAdjustableAmounts Adjustable amounts to be paid for Pay Off action none
transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none

LoanAccountPreviewProcessPMTTransactionally

{
  "error": "string",
  "info": "string",
  "result": {
    "differences": true,
    "existingSchedule": [
      {
        "dueDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedClosingBalance": 0,
        "fee": {
          "amount": {
            "due": 0,
            "expected": 0,
            "expectedUnapplied": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "feeDetails": [
          {
            "amount": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            },
            "encodedKey": "string",
            "id": "string",
            "name": "string",
            "tax": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            }
          }
        ],
        "interest": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "interestAccrued": 0,
        "isPaymentHoliday": true,
        "lastPaidDate": "2016-09-06T13:37:50+03:00",
        "number": "string",
        "parentAccountKey": "string",
        "penalty": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "principal": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "repaidDate": "2016-09-06T13:37:50+03:00",
        "state": "PENDING"
      }
    ],
    "schedule": [
      {
        "dueDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "expectedClosingBalance": 0,
        "fee": {
          "amount": {
            "due": 0,
            "expected": 0,
            "expectedUnapplied": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "feeDetails": [
          {
            "amount": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            },
            "encodedKey": "string",
            "id": "string",
            "name": "string",
            "tax": {
              "due": 0,
              "expected": 0,
              "paid": 0,
              "reduced": 0
            }
          }
        ],
        "interest": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "interestAccrued": 0,
        "isPaymentHoliday": true,
        "lastPaidDate": "2016-09-06T13:37:50+03:00",
        "number": "string",
        "parentAccountKey": "string",
        "penalty": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          },
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "principal": {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0
          }
        },
        "repaidDate": "2016-09-06T13:37:50+03:00",
        "state": "PENDING"
      }
    ]
  },
  "status": "string"
}

Payload structure to preview the schedules of a loan account when processing PMT transactionally.

Properties

Name Type Description Restrictions
error string The error code of the request. none
info string Additional information about the request. none
result LoanAccountSchedulesPreviewProcessPMTTransactionally Payload structure to preview the loan account schedule differences when processing PMT transactionally. none
status string The status of the request. none

LoanAccountRedrawSettings

{
  "restrictNextDueWithdrawal": true
}

Represents the redraw settings for a loan account.

Properties

Name Type Description Restrictions
restrictNextDueWithdrawal (required) boolean TRUE if withdrawing amounts that reduce the next due instalment repayment is restricted, FALSE otherwise. none

LoanAccountRepaymentScheduleVersioning

{
  "encodedKey": "string",
  "id": 0,
  "loanAccountChangedEventKey": "string",
  "loanTransactionKey": "string",
  "versioningContent": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Represents a single repayment versioning details structure.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the versioning. read-only
id integer(int64) The repayment schedule versioning ID. none
loanAccountChangedEventKey string The loan account event which triggered the versioning. none
loanTransactionKey string The loan transaction key which triggered the versioning. none
versioningContent [Installment] The loan account repayment schedule versioning list. none

LoanAccountSchedule

{
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "installments": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Represents a single loan account schedule structure.

Properties

Name Type Description Restrictions
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
installments [Installment] The loan account schedule installments list. none

LoanAccountSchedulesPreviewProcessPMTTransactionally

{
  "differences": true,
  "existingSchedule": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ],
  "schedule": [
    {
      "dueDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "expectedClosingBalance": 0,
      "fee": {
        "amount": {
          "due": 0,
          "expected": 0,
          "expectedUnapplied": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "feeDetails": [
        {
          "amount": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          },
          "encodedKey": "string",
          "id": "string",
          "name": "string",
          "tax": {
            "due": 0,
            "expected": 0,
            "paid": 0,
            "reduced": 0
          }
        }
      ],
      "interest": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "interestAccrued": 0,
      "isPaymentHoliday": true,
      "lastPaidDate": "2016-09-06T13:37:50+03:00",
      "number": "string",
      "parentAccountKey": "string",
      "penalty": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        },
        "tax": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "principal": {
        "amount": {
          "due": 0,
          "expected": 0,
          "paid": 0
        }
      },
      "repaidDate": "2016-09-06T13:37:50+03:00",
      "state": "PENDING"
    }
  ]
}

Payload structure to preview the loan account schedule differences when processing PMT transactionally.

Properties

Name Type Description Restrictions
differences boolean Whether there differences on schedule or not. none
existingSchedule [Installment] The loan account existing schedule installments list. none
schedule [Installment] The loan account new schedule installments list. none

LoanAccountSearchCriteria

{
  "filterCriteria": [
    {
      "field": "accountHolderKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "encodedKey",
    "order": "ASC"
  }
}

Wrapper that holds a list of filtering criteria and a sorting criteria for Loan account directed query

Properties

Name Type Description Restrictions
filterCriteria [LoanAccountFilterCriteria] The list of filtering criteria none
sortingCriteria LoanAccountSortingCriteria Represents the sorting criteria used for loan account searches. none

LoanAccountSortingCriteria

{
  "field": "encodedKey",
  "order": "ASC"
}

Represents the sorting criteria used for loan account searches.

Properties

Name Type Description Restrictions
field (required) string Contains the field that can be used as sorting selection. Can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field encodedKey
field loanName
field id
field accountHolderId
field recipient
field creationDate
field approvedDate
field lastModifiedDate
field lastSetToArrearsDate
field lastLockedDate
field closedDate
field daysInArrears
field daysLate
field loanAmount
field tranches.amount
field numInstallments
field accruedInterest
field accruedPenalty
field penaltySettings.penaltyRate
field arrearsTolerancePeriod
field interestSettings.interestSpread
field totalPaid
field totalBalance
field totalDue
field firstRepaymentDate
field lastPaymentDate
field lastPaymentAmount
field expectedMaturity
field rescheduledAccountKey
field refinancedAccountId
field originalAccountKey
field taxRate
field taxPaid
field taxDue
field settlementAccountKey
field interestCommission
field numberOfFunds
field fundsEnabled
field availableAmount
field wasRescheduled
field wasRefinanced
field expectedPrincipalRedraw
field balances.principalDue
field balances.principalPaid
field balances.principalBalance
field balances.interestDue
field balances.interestPaid
field balance.interestBalance
field balances.redrawBalance
field balances.feesDue
field balances.feesBalance
field balances.feesPaid
field balances.penaltyDue
field balances.penaltyPaid
field balances.penaltyBalance
field fundingSources.amount
field fundingSources.sharePercentage
order ASC
order DESC

LoanActionDetails

{
  "notes": "string"
}

Represents details about an action performed on a loan account.

Properties

Name Type Description Restrictions
notes string The notes for the action performed on a loan account. none

LoanAffectedAmounts

{
  "deferredInterestAmount": 0,
  "feesAmount": 0,
  "fundersInterestAmount": 0,
  "interestAmount": 0,
  "interestFromArrearsAmount": 0,
  "organizationCommissionAmount": 0,
  "paymentHolidaysInterestAmount": 0,
  "penaltyAmount": 0,
  "principalAmount": 0
}

The amounts affected after completing the loan transaction

Properties

Name Type Description Restrictions
deferredInterestAmount number How much interest pre-paid was added/removed in account, within this transaction (including taxes). none
feesAmount number How much fees was added/removed in account, within this transaction. none
fundersInterestAmount number How much interest is given to the investors, within this transaction (only for p2p products) none
interestAmount number How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field. none
interestFromArrearsAmount number How much interest from arrears was added/removed in account, within this transaction (including taxes). none
organizationCommissionAmount number How much interest is given to the organization, within this transaction (only for p2p products) none
paymentHolidaysInterestAmount number How much Payment Holidays interest was added/removed in account, within this transaction (including taxes). none
penaltyAmount number How much penalties was added/removed in account, within this transaction. none
principalAmount number How much principal was added/removed in account, within this transaction. none

LoanAmountSettings

{
  "loanAmount": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "trancheSettings": {
    "maxNumberOfTranches": 0
  }
}

The amount settings, holds all amount properties.

Properties

Name Type Description Restrictions
loanAmount AmountDecimalConstraints Decimal constraints, like min/max/default. none
trancheSettings TrancheSettings The tranche settings, indicates the settings regarding tranches in case the product is configured to support tranches. none

LoanExposureConfiguration

{
  "exposureAmount": 0,
  "exposureType": "UNLIMITED"
}

Configuration for maximum exposure to a client

Properties

Name Type Description Restrictions
exposureAmount number Maximum amount none
exposureType (required) string Type of maximum exposure to a client none

Enumerated Values

Property Value
exposureType UNLIMITED
exposureType SUM_OF_LOANS
exposureType SUM_OF_LOANS_MINUS_SAVINGS

LoanProduct

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductKey": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "encodedKey": "string",
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountKey": "string",
        "transactionChannelKey": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "adjustInterestForFirstInstallment": true,
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "encodedKey": "string",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "availableProductBranches": [
        "string"
      ],
      "forAllBranches": true
    }
  },
  "category": "PERSONAL_LENDING",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "encodedKey": "string",
  "feesSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "encodedKey": "string",
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountKey": "string",
            "transactionChannelKey": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "encodedKey": "string",
          "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
        "creationDate": "2016-09-06T13:37:50+03:00",
        "encodedKey": "string",
        "feeApplication": "REQUIRED",
        "id": "string",
        "lastModifiedDate": "2016-09-06T13:37:50+03:00",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "encodedKey": "string",
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "encodedKey": "string",
      "includeFeesInFloorAmount": true,
      "includeInterestInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "encodedKey": "string",
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "amortizationPeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "interestAccrualSince": "DISBURSEMENT",
    "numInstallments": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentMethod": "AMOUNT",
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceKey": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "templates": [
    {
      "creationDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "lastModifiedDate": "2016-09-06T13:37:50+03:00",
      "name": "string",
      "type": "ACCOUNT"
    }
  ],
  "type": "FIXED_TERM_LOAN"
}

Represents a loan product.

Properties

Name Type Description Restrictions
accountLinkSettings AccountLinkSettings Defines the settings for account linking. none
accountingSettings AccountingSettings Accounting settings, defines the accounting settings for the product. none
adjustInterestForFirstInstallment boolean TRUE if it is possible to adjust the interest for the first repayment when the first repayment period is different than the repayment frequency, FALSE otherwise. none
allowCustomRepaymentAllocation boolean TRUE if an additional payment may be allocated on the account, ignoring the default repayment allocation order, FALSE otherwise. none
arrearsSettings ProductArrearsSettings The product arrears settings, shows whether the non working days are taken in consideration or not when applying penalties/late fees or when setting an account into arrears none
availabilitySettings ProductAvailabilitySettings Holds information about product availability. none
category string The category of the loan product. none
creationDate string(date-time) The date the loan product was created. none
creditArrangementSettings (required) CreditArrangementSettings The funding settings, holds the settings regarding the funding for the loan product. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
encodedKey string The encoded key of the loan product, it is auto generated, and unique. read-only
feesSettings FeesSettings Defines fees settings for the product. none
fundingSettings FundingSettings The funding settings, holds the settings regarding the funding for the loan product. none
gracePeriodSettings GracePeriodSettings The funding settings, holds the settings regarding the funding for the loan product. none
id (required) string The ID of the loan product, can be generated and customized, and must be unique. none
interestSettings ProductInterestSettings The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product. none
internalControls InternalControls Constraints and automated actions and that will be applied on the accounts. none
lastModifiedDate string(date-time) The last date the loan product was updated. none
loanAmountSettings LoanAmountSettings The amount settings, holds all amount properties. none
name (required) string The name of the loan product. none
newAccountSettings NewAccountSettings The new account settings, defines the settings and constraints used by new loan account created based on this product. none
notes string The notes or description of the loan product. none
offsetSettings OffsetSettings The offset settings, holds information about offset. none
paymentSettings PaymentSettings Defines the payment settings for the loan product and for loans crated based on this product. none
penaltySettings ProductPenaltySettings Defines the penalty settings for the product that will be used by the loan accounts based on this product none
redrawSettings ProductRedrawSettings The redraw settings for the product. none
scheduleSettings LoanProductScheduleSettings Defines the settings and constraints for schedule for the loans that are created based on this product. none
securitySettings SecuritySettings The settings and constraints for securities. none
state string The current state of the loan product. none
taxSettings TaxSettings Tax settings, defines some settings for taxes on the loan product none
templates [DocumentTemplate] The template documents of the loan product. none
type (required) string The type of the loan product. none

Enumerated Values

Property Value
category PERSONAL_LENDING
category PURCHASE_FINANCING
category RETAIL_MORTGAGES
category SME_LENDING
category COMMERCIAL
category UNCATEGORIZED
state ACTIVE
state INACTIVE
type FIXED_TERM_LOAN
type DYNAMIC_TERM_LOAN
type INTEREST_FREE_LOAN
type TRANCHED_LOAN
type REVOLVING_CREDIT
type INTEREST_ONLY_EQUAL_INSTALLMENTS

LoanProductAmountConfiguration

{
  "loanAmount": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "trancheSettings": {
    "maxNumberOfTranches": 0
  }
}

The amount settings, holds all amount properties.

Properties

Name Type Description Restrictions
loanAmount LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
trancheSettings LoanProductTrancheConfiguration Represents the loan product tranche settings. none

LoanProductAvailabilityConfiguration

{
  "availableFor": [
    "INDIVIDUALS"
  ],
  "branchSettings": {
    "allBranches": true,
    "branches": [
      "string"
    ]
  }
}

Holds information about product availability.

Properties

Name Type Description Restrictions
availableFor [string] Holds the entities this product is available for. i.e Individuals none
branchSettings ProductBranchConfiguration Holds information about branch availability for the product. none

LoanProductBillingCyclesConfiguration

{
  "enabled": true,
  "startDays": [
    0
  ]
}

Defines the billing cycles settings for revolving credit products

Properties

Name Type Description Restrictions
enabled boolean If the billing cycle status is enabled or disabled none
startDays [integer] The billing cycle start days in case it is enabled none

LoanProductConfiguration

{
  "accountLinkSettings": {
    "enabled": true,
    "linkableDepositProductId": "string",
    "linkedAccountOptions": [
      "AUTO_LINK_ACCOUNTS"
    ],
    "settlementMethod": "FULL_DUE_AMOUNTS"
  },
  "accountingSettings": {
    "accountingMethod": "NONE",
    "accountingRules": [
      {
        "financialResource": "PORTFOLIO_CONTROL",
        "glAccountCode": "string",
        "transactionChannelId": "string"
      }
    ],
    "interestAccrualCalculation": "NONE",
    "interestAccruedAccountingMethod": "NONE"
  },
  "allowCustomRepaymentAllocation": true,
  "arrearsSettings": {
    "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
    "monthlyToleranceDay": 0,
    "nonWorkingDaysMethod": "INCLUDED",
    "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
    "toleranceFloorAmount": 0,
    "tolerancePercentageOfOutstandingPrincipal": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "tolerancePeriod": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "availabilitySettings": {
    "availableFor": [
      "INDIVIDUALS"
    ],
    "branchSettings": {
      "allBranches": true,
      "branches": [
        "string"
      ]
    }
  },
  "category": "PERSONAL_LENDING",
  "creditArrangementSettings": {
    "creditArrangementRequirement": "OPTIONAL"
  },
  "currency": {
    "code": "AED"
  },
  "feeSettings": {
    "allowArbitraryFees": true,
    "fees": [
      {
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountCode": "string",
            "transactionChannelId": "string"
          }
        ],
        "amortizationSettings": {
          "amortizationProfile": "NONE",
          "amortizationRescheduleConfiguration": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
          "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
          "intervalCount": 0,
          "intervalType": "PREDEFINED_INTERVALS",
          "periodCount": 0,
          "periodUnit": "DAYS"
        },
        "amount": 0,
        "amountCalculationFunctionName": "string",
        "amountCalculationMethod": "FLAT",
        "feeApplication": "REQUIRED",
        "id": "string",
        "name": "string",
        "percentageAmount": 0,
        "state": "ACTIVE",
        "taxSettings": {
          "taxableCalculationMethod": "DEFAULT"
        },
        "trigger": "MANUAL"
      }
    ]
  },
  "fundingSettings": {
    "enabled": true,
    "funderInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
    "lockFundsAtApproval": true,
    "organizationInterestCommission": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "requiredFunds": 0
  },
  "gracePeriodSettings": {
    "gracePeriod": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "gracePeriodType": "NONE"
  },
  "id": "string",
  "interestSettings": {
    "accrueLateInterest": true,
    "compoundingFrequency": "DAILY",
    "daysInYear": "ACTUAL_365_FIXED",
    "indexRateSettings": {
      "accrueInterestAfterMaturity": true,
      "allowNegativeInterestRate": true,
      "indexSourceId": "string",
      "interestChargeFrequency": "ANNUALIZED",
      "interestChargeFrequencyCount": 0,
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestRateTerms": "FIXED",
      "interestRateTiers": [
        {
          "endingBalance": 0,
          "interestRate": 0
        }
      ]
    },
    "interestApplicationDays": {
      "daysInMonth": [
        0
      ],
      "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
    },
    "interestApplicationMethod": "AFTER_DISBURSEMENT",
    "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
    "interestCalculationMethod": "FLAT",
    "interestRateChangePMTAdjustmentThreshold": {
      "method": "WORKING_DAYS",
      "numberOfDays": 0
    },
    "interestRateSettings": [
      {
        "indexSourceId": "string",
        "interestRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE"
      }
    ],
    "interestType": "SIMPLE_INTEREST",
    "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
  },
  "internalControls": {
    "dormancyPeriodDays": 0,
    "fourEyesPrinciple": {
      "activeForLoanApproval": true
    },
    "lockSettings": {
      "cappingConstraintType": "SOFT_CAP",
      "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
      "cappingPercentage": 0,
      "lockPeriodDays": 0
    }
  },
  "loanAmountSettings": {
    "loanAmount": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "trancheSettings": {
      "maxNumberOfTranches": 0
    }
  },
  "name": "string",
  "newAccountSettings": {
    "accountInitialState": "PARTIAL_APPLICATION",
    "idGeneratorType": "INCREMENTAL_NUMBER",
    "idPattern": "string"
  },
  "notes": "string",
  "offsetSettings": {
    "allowOffset": true
  },
  "paymentSettings": {
    "amortizationMethod": "STANDARD_PAYMENTS",
    "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
    "paymentMethod": "HORIZONTAL",
    "prepaymentSettings": {
      "applyInterestOnPrepaymentMethod": "AUTOMATIC",
      "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
      "ercFreeAllowance": 0,
      "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
      "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "principalPaidInstallmentStatus": "PARTIALLY_PAID"
    },
    "principalPaymentSettings": {
      "amount": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "defaultPrincipalRepaymentInterval": 0,
      "includeFeesInFloorAmount": true,
      "percentage": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "principalCeilingValue": 0,
      "principalFloorValue": 0,
      "principalPaymentMethod": "FLAT",
      "totalDueAmountFloor": 0,
      "totalDuePayment": "FLAT"
    },
    "repaymentAllocationOrder": [
      "PRINCIPAL"
    ]
  },
  "penaltySettings": {
    "loanPenaltyCalculationMethod": "NONE",
    "loanPenaltyGracePeriod": 0,
    "penaltyRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    }
  },
  "redrawSettings": {
    "allowRedraw": true
  },
  "scheduleSettings": {
    "billingCycles": {
      "enabled": true,
      "startDays": [
        0
      ]
    },
    "defaultRepaymentPeriodCount": 0,
    "firstRepaymentDueDateOffset": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "fixedDaysOfMonth": [
      0
    ],
    "numInstallments": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0,
      "previewScheduleEnabled": true
    },
    "repaymentPeriodUnit": "DAYS",
    "repaymentReschedulingMethod": "NONE",
    "repaymentScheduleEditOptions": [
      "ADJUST_PAYMENT_DATES"
    ],
    "repaymentScheduleMethod": "NONE",
    "roundingSettings": {
      "repaymentCurrencyRounding": "NO_ROUNDING",
      "repaymentElementsRoundingMethod": "NO_ROUNDING",
      "roundingRepaymentScheduleMethod": "NO_ROUNDING"
    },
    "scheduleDueDatesMethod": "INTERVAL",
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "securitySettings": {
    "isCollateralEnabled": true,
    "isGuarantorsEnabled": true,
    "requiredGuaranties": 0
  },
  "state": "ACTIVE",
  "taxSettings": {
    "taxCalculationMethod": "INCLUSIVE",
    "taxSourceId": "string",
    "taxesOnFeesEnabled": true,
    "taxesOnInterestEnabled": true,
    "taxesOnPenaltyEnabled": true
  },
  "type": "FIXED_TERM_LOAN"
}

Represents a loan product configuration.

Properties

Name Type Description Restrictions
accountLinkSettings AccountLinkConfiguration Represents the settings for linking a deposit account. none
accountingSettings AccountingSettingsConfiguration Accounting settings, defines the accounting settings for the product none
allowCustomRepaymentAllocation boolean TRUE if an additional payment may be allocated on the account, ignoring the default repayment allocation order, FALSE otherwise. none
arrearsSettings ArrearsConfiguration Represents a grouping of all arrears settings. none
availabilitySettings LoanProductAvailabilityConfiguration Holds information about product availability. none
category string The category the loan product belongs to. none
creditArrangementSettings LoanProductCreditArrangementConfiguration The funding settings, holds the settings regarding the funding for the loan product. none
currency LoanProductCurrencyConfiguration Represents a currency eg. USD, EUR. none
feeSettings LoanProductFeeConfiguration Defines the fee settings for loan product. none
fundingSettings FundingSettingsConfiguration The funding settings, holds the settings regarding the funding for the loan product. none
gracePeriodSettings LoanProductGracePeriodConfiguration The funding settings, holds the settings regarding the funding for the loan product. none
id string The ID of the loan product, which must be globally unique. none
interestSettings LoanProductInterestConfiguration The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product. none
internalControls LoanProductInternalControlsConfiguration Constraints and automated actions and that will be applied on the accounts. none
loanAmountSettings LoanProductAmountConfiguration The amount settings, holds all amount properties. none
name string The name of the loan product. none
newAccountSettings LoanProductNewAccountConfiguration The new account settings, defines the settings and constraints used by new loan account created based on this product. none
notes string The notes or description of the loan product. none
offsetSettings LoanProductOffsetConfiguration The offset settings, holds information about offset. none
paymentSettings PaymentConfiguration Model representation of the payment settings configuration none
penaltySettings PenaltyConfiguration Defines the penalty settings for the product that will be used by the loan accounts based on this product none
redrawSettings LoanProductRedrawConfiguration The redraw settings for the product. none
scheduleSettings LoanProductScheduleConfiguration Defines the settings and constraints for schedule for the loans that are created based on this product. none
securitySettings SecuritySettingsConfiguration The settings and constraints for securities. none
state string The current state of the loan product. none
taxSettings LoanProductTaxConfiguration Tax settings, defines some settings for taxes on the loan product none
type string The type of loan product. none

Enumerated Values

Property Value
category PERSONAL_LENDING
category PURCHASE_FINANCING
category RETAIL_MORTGAGES
category SME_LENDING
category COMMERCIAL
category UNCATEGORIZED
state ACTIVE
state INACTIVE
type FIXED_TERM_LOAN
type DYNAMIC_TERM_LOAN
type INTEREST_FREE_LOAN
type TRANCHED_LOAN
type REVOLVING_CREDIT
type INTEREST_ONLY_EQUAL_INSTALLMENTS

LoanProductCreditArrangementConfiguration

{
  "creditArrangementRequirement": "OPTIONAL"
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
creditArrangementRequirement string Shows whether accounts created after this product can/should be part of a line of credit. none

Enumerated Values

Property Value
creditArrangementRequirement OPTIONAL
creditArrangementRequirement REQUIRED
creditArrangementRequirement NOT_REQUIRED

LoanProductCurrencyConfiguration

{
  "code": "AED"
}

Represents a currency eg. USD, EUR.

Properties

Name Type Description Restrictions
code string Code of the currency. none

Enumerated Values

Property Value
code AED
code AFN
code ALL
code AMD
code ANG
code AOA
code ARS
code AUD
code AWG
code AZN
code BAM
code BBD
code BDT
code BGN
code BHD
code BIF
code BMD
code BND
code BOB
code BOV
code BRL
code BSD
code BTN
code BWP
code BYR
code BYN
code BZD
code CAD
code CDF
code CHE
code CHF
code CHW
code CLF
code CLP
code CNY
code COP
code COU
code CRC
code CUC
code CUP
code CVE
code CZK
code DJF
code DKK
code DOP
code DZD
code EGP
code ERN
code ETB
code EUR
code FJD
code FKP
code GBP
code GEL
code GHS
code GIP
code GMD
code GNF
code GTQ
code GYD
code HKD
code HNL
code HRK
code HTG
code HUF
code IDR
code ILS
code INR
code IQD
code IRR
code ISK
code JMD
code JOD
code JPY
code KES
code KGS
code KHR
code KMF
code KPW
code KRW
code KWD
code KYD
code KZT
code LAK
code LBP
code LKR
code LRD
code LSL
code LTL
code LVL
code LYD
code MAD
code MDL
code MGA
code MKD
code MMK
code MNT
code MOP
code MRO
code MRU
code MUR
code MVR
code MWK
code MXN
code MXV
code MYR
code MZN
code NAD
code NGN
code NIO
code NOK
code NPR
code NZD
code OMR
code PAB
code PEN
code PGK
code PHP
code PKR
code PLN
code PYG
code QAR
code RON
code RSD
code RUB
code RWF
code SAR
code SBD
code SCR
code SDG
code SEK
code SGD
code SHP
code SLL
code SOS
code SRD
code STD
code STN
code SVC
code SYP
code SZL
code THB
code TJS
code TMT
code TND
code TOP
code TRY
code TTD
code TWD
code TZS
code UAH
code UGX
code USD
code USN
code UYI
code UYU
code UYW
code UZS
code VED
code VEF
code VES
code VND
code VUV
code WST
code XAF
code XAG
code XAU
code XBA
code XBB
code XBC
code XBD
code XCD
code XDR
code XOF
code XPD
code XPF
code XPT
code XSU
code XTS
code XUA
code XXX
code YER
code ZAR
code ZMK
code ZWL
code ZMW
code SSP

LoanProductDecimalConstraintsConfiguration

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

Used for keeping decimal constraints.

Properties

Name Type Description Restrictions
defaultValue number The default value, will be used in case no other value was filled in by the user. none
maxValue number The maximum value. none
minValue number The minimum value. none

LoanProductFeeConfiguration

{
  "allowArbitraryFees": true,
  "fees": [
    {
      "accountingRules": [
        {
          "financialResource": "PORTFOLIO_CONTROL",
          "glAccountCode": "string",
          "transactionChannelId": "string"
        }
      ],
      "amortizationSettings": {
        "amortizationProfile": "NONE",
        "amortizationRescheduleConfiguration": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
        "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
        "intervalCount": 0,
        "intervalType": "PREDEFINED_INTERVALS",
        "periodCount": 0,
        "periodUnit": "DAYS"
      },
      "amount": 0,
      "amountCalculationFunctionName": "string",
      "amountCalculationMethod": "FLAT",
      "feeApplication": "REQUIRED",
      "id": "string",
      "name": "string",
      "percentageAmount": 0,
      "state": "ACTIVE",
      "taxSettings": {
        "taxableCalculationMethod": "DEFAULT"
      },
      "trigger": "MANUAL"
    }
  ]
}

Defines the fee settings for loan product.

Properties

Name Type Description Restrictions
allowArbitraryFees boolean Indicates if arbitrary fees will be allowed. none
fees [LoanProductPredefinedFeeConfiguration] List of all fees that can be applied for accounts of this loan product. none

LoanProductFourEyesPrincipleConfiguration

{
  "activeForLoanApproval": true
}

Settings for Four Eyes Principle

Properties

Name Type Description Restrictions
activeForLoanApproval boolean Requires separate users to create and approve loan accounts none

LoanProductGLAccountingRuleConfiguration

{
  "financialResource": "PORTFOLIO_CONTROL",
  "glAccountCode": "string",
  "transactionChannelId": "string"
}

The GL accounting rule, it maps a financial resource with a GL account for a specific product.

Properties

Name Type Description Restrictions
financialResource string General ledger financial resource used to setup the product accounting rules and determine the credit and debit accounts when logging journal entries. none
glAccountCode string The unique identifier of the account that is mapped to the financial resource. none
transactionChannelId string The key of the transaction rule that uses this rule none

Enumerated Values

Property Value
financialResource PORTFOLIO_CONTROL
financialResource FUND_SOURCE
financialResource WRITE_OFF_EXPENSE
financialResource INTEREST_INCOME
financialResource TAXES_PAYABLE
financialResource FEE_INCOME
financialResource PENALTY_INCOME
financialResource NEGATIVE_INTEREST_PAYABLE_RECEIVABLE
financialResource NEGATIVE_INTEREST_PAYABLE
financialResource INTEREST_RECEIVABLE
financialResource FEE_RECEIVABLE
financialResource PENALTY_RECEIVABLE
financialResource TAXES_RECEIVABLE
financialResource DEFERRED_INTERESTS_INCOME
financialResource DEFERRED_FEE_INCOME
financialResource DEFERRED_TAXES
financialResource DEPOSIT_REFERENCE
financialResource SAVINGS_CONTROL
financialResource INTEREST_EXPENSE
financialResource INTEREST_PAYABLE
financialResource NEGATIVE_INTEREST_INCOME
financialResource NEGATIVE_INTEREST_RECEIVABLE
financialResource OVERDRAFT_PORTFOLIO_CONTROL
financialResource OVERDRAFT_INTEREST_INCOME
financialResource OVERDRAFT_WRITE_OFF_EXPENSE
financialResource OVERDRAFT_INTEREST_RECEIVABLE
financialResource INTER_BRANCH_TRANSFER

LoanProductGracePeriodConfiguration

{
  "gracePeriod": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "gracePeriodType": "NONE"
}

The funding settings, holds the settings regarding the funding for the loan product.

Properties

Name Type Description Restrictions
gracePeriod IntegerIntervalConstraints Decimal integer, like min/max/default. none
gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none

Enumerated Values

Property Value
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS

LoanProductIndexRateConfiguration

{
  "accrueInterestAfterMaturity": true,
  "allowNegativeInterestRate": true,
  "indexSourceId": "string",
  "interestChargeFrequency": "ANNUALIZED",
  "interestChargeFrequencyCount": 0,
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateCeilingValue": 0,
  "interestRateFloorValue": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE",
  "interestRateTerms": "FIXED",
  "interestRateTiers": [
    {
      "endingBalance": 0,
      "interestRate": 0
    }
  ]
}

The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product.

Properties

Name Type Description Restrictions
accrueInterestAfterMaturity boolean If the product supports this option, specify if the interest should be accrued after the account maturity date none
allowNegativeInterestRate boolean Indicator whether the loan product allows negative values for interest rate or interest spread none
indexSourceId string Id of index source. none
interestChargeFrequency string The interval used for determining how often is interest charged none
interestChargeFrequencyCount integer(int32) the count of units to apply over the interval none
interestRate LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
interestRateCeilingValue number Interest spread + index interest rate can't be more than this amount (valid only for index interest rate products). none
interestRateFloorValue number Interest spread + index interest rate can't be less than this amount (valid only for index interest rate products). none
interestRateReviewCount integer(int32) Interest rate review frequency unit count none
interestRateReviewUnit string Interest rate review frequency measurement unit none
interestRateSource string Interest calculation method: fixed or (interest spread + active organization index interest rate) none
interestRateTerms string The option for how is the interest rate determined when being accrued for an account none
interestRateTiers [LoanProductInterestRateTierConfiguration] The list of interest rate tiers available for the current settings instance none

Enumerated Values

Property Value
interestChargeFrequency ANNUALIZED
interestChargeFrequency EVERY_MONTH
interestChargeFrequency EVERY_FOUR_WEEKS
interestChargeFrequency EVERY_WEEK
interestChargeFrequency EVERY_DAY
interestChargeFrequency EVERY_X_DAYS
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE
interestRateTerms FIXED
interestRateTerms TIERED
interestRateTerms TIERED_PERIOD
interestRateTerms TIERED_BAND

LoanProductInterestConfiguration

{
  "accrueLateInterest": true,
  "compoundingFrequency": "DAILY",
  "daysInYear": "ACTUAL_365_FIXED",
  "indexRateSettings": {
    "accrueInterestAfterMaturity": true,
    "allowNegativeInterestRate": true,
    "indexSourceId": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateCeilingValue": 0,
    "interestRateFloorValue": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "endingBalance": 0,
        "interestRate": 0
      }
    ]
  },
  "interestApplicationDays": {
    "daysInMonth": [
      0
    ],
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "interestApplicationMethod": "AFTER_DISBURSEMENT",
  "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
  "interestCalculationMethod": "FLAT",
  "interestRateChangePMTAdjustmentThreshold": {
    "method": "WORKING_DAYS",
    "numberOfDays": 0
  },
  "interestRateSettings": [
    {
      "indexSourceId": "string",
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE"
    }
  ],
  "interestType": "SIMPLE_INTEREST",
  "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
}

The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product.

Properties

Name Type Description Restrictions
accrueLateInterest boolean Whether late interest should be accrued, applied and paid none
compoundingFrequency string The frequency on which the accrued interest will be added to the principal for interest calculation. It is used only for InterestType.COMPOUNDING_INTEREST none
daysInYear string The days in year that should be used for loan calculations. none
indexRateSettings LoanProductIndexRateConfiguration The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product. none
interestApplicationDays DaysInMonth Enumeration for days of month and method of handling shorter months. none
interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
interestCalculationMethod string The interest calculation method. Holds the type of interest calculation method. none
interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
interestRateSettings [LoanProductInterestRateConfiguration] Adjustable interest rates settings none
interestType string The possible values for how we compute and apply the interest none
scheduleInterestDaysCountMethod string Shows whether all the installments should compute the interest based on the actual number of days or based on the defined repayment periodicity. none

Enumerated Values

Property Value
compoundingFrequency DAILY
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_364
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear BUS_252
daysInYear E30_42_365
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
scheduleInterestDaysCountMethod REPAYMENT_PERIODICITY
scheduleInterestDaysCountMethod ACTUAL_DAYS_COUNT

LoanProductInterestRateConfiguration

{
  "indexSourceId": "string",
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateCeilingValue": 0,
  "interestRateFloorValue": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE"
}

Adjustable interest settings for loan product

Properties

Name Type Description Restrictions
indexSourceId string Index rate source id. none
interestRate LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none

Enumerated Values

Property Value
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE

LoanProductInterestRateTierConfiguration

{
  "endingBalance": 0,
  "interestRate": 0
}

Used or TIERED interest rates, holds the values to define how the interest is computed

Properties

Name Type Description Restrictions
endingBalance number The top-limit value for the account balance in order to determine if this tier is used or not none
interestRate (required) number The rate used for computing the interest for an account which has the balance less than the ending balance none

LoanProductInternalControlsConfiguration

{
  "dormancyPeriodDays": 0,
  "fourEyesPrinciple": {
    "activeForLoanApproval": true
  },
  "lockSettings": {
    "cappingConstraintType": "SOFT_CAP",
    "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
    "cappingPercentage": 0,
    "lockPeriodDays": 0
  }
}

Constraints and automated actions and that will be applied on the accounts.

Properties

Name Type Description Restrictions
dormancyPeriodDays integer(int32) Specifies the number of days for an account to be fully paid in order to auto close it. none
fourEyesPrinciple LoanProductFourEyesPrincipleConfiguration Settings for Four Eyes Principle none
lockSettings LockConfiguration Settings applied when transitioning accounts to Locked state none

LoanProductNewAccountConfiguration

{
  "accountInitialState": "PARTIAL_APPLICATION",
  "idGeneratorType": "INCREMENTAL_NUMBER",
  "idPattern": "string"
}

The new account settings, defines the settings and constraints used by new loan account created based on this product.

Properties

Name Type Description Restrictions
accountInitialState string The initial state of the account when is created. none
idGeneratorType string The type of generator used for IDs creation. none
idPattern string The pattern that will be used for ID validation (as referred to as an input mask). none

Enumerated Values

Property Value
accountInitialState PARTIAL_APPLICATION
accountInitialState PENDING_APPROVAL
accountInitialState APPROVED
accountInitialState ACTIVE
accountInitialState ACTIVE_IN_ARREARS
accountInitialState CLOSED
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN

LoanProductOffsetConfiguration

{
  "allowOffset": true
}

The offset settings, holds information about offset.

Properties

Name Type Description Restrictions
allowOffset boolean Indicates whether the product supports offset none

LoanProductPredefinedFeeConfiguration

{
  "accountingRules": [
    {
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountCode": "string",
      "transactionChannelId": "string"
    }
  ],
  "amortizationSettings": {
    "amortizationProfile": "NONE",
    "amortizationRescheduleConfiguration": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
    "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
    "intervalCount": 0,
    "intervalType": "PREDEFINED_INTERVALS",
    "periodCount": 0,
    "periodUnit": "DAYS"
  },
  "amount": 0,
  "amountCalculationFunctionName": "string",
  "amountCalculationMethod": "FLAT",
  "feeApplication": "REQUIRED",
  "id": "string",
  "name": "string",
  "percentageAmount": 0,
  "state": "ACTIVE",
  "taxSettings": {
    "taxableCalculationMethod": "DEFAULT"
  },
  "trigger": "MANUAL"
}

Represents the configuration for a predefined fee for loan product.

Properties

Name Type Description Restrictions
accountingRules [LoanProductGLAccountingRuleConfiguration] A list of accounting rules defined for this fee. none
amortizationSettings FeeAmortizationConfiguration The settings for defining period intervals. none
amount number The amount of the fee. none
amountCalculationFunctionName string External function none
amountCalculationMethod string The amount from which the fee is calculated. none
feeApplication string The type of fee application when disbursement is applied none
id string The id of the fee. none
name string The name of the fee. none
percentageAmount number The amount of the fee in percents applied to percentSource none
state string The current fee state of loan product none
taxSettings TaxConfiguration Defines settings for taxes on the loan product none
trigger string The event that will trigger a fee. none

Enumerated Values

Property Value
amountCalculationMethod FLAT
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE
amountCalculationMethod REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE_NUMBER_OF_INSTALLMENTS
amountCalculationMethod FLAT_NUMBER_OF_INSTALLMENTS
amountCalculationMethod IOF_PERCENTAGE_OF_DISBURSED_AMOUNT
amountCalculationMethod IOF_PERCENTAGE_OF_INSTALLMENT_PRINCIPAL
amountCalculationMethod IOF_PERCENTAGE_OF_LATE_INSTALLMENT_PRINCIPAL
amountCalculationMethod MAMBU_FUNCTION
feeApplication REQUIRED
feeApplication OPTIONAL
state ACTIVE
state INACTIVE
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE

LoanProductPreviewScheduleConfiguration

{
  "numberOfPreviewedInstalments": 0,
  "previewScheduleEnabled": true
}

Defines the Preview Schedule settings for revolving products

Properties

Name Type Description Restrictions
numberOfPreviewedInstalments integer(int32) none none
previewScheduleEnabled boolean Preview Schedule status. none

LoanProductRedrawConfiguration

{
  "allowRedraw": true
}

The redraw settings for the product.

Properties

Name Type Description Restrictions
allowRedraw boolean Indicates whether the product support redraw (prepayments which are stored at loan account level as a Redrawable balance) none

LoanProductRoundingConfiguration

{
  "repaymentCurrencyRounding": "NO_ROUNDING",
  "repaymentElementsRoundingMethod": "NO_ROUNDING",
  "roundingRepaymentScheduleMethod": "NO_ROUNDING"
}

Defines the rounding settings used in the loan computation.

Properties

Name Type Description Restrictions
repaymentCurrencyRounding (required) string Specifies the repayment currency rounding method. none
repaymentElementsRoundingMethod (required) string Determines how the repayment currency rounding is handled on each element from the schedule. none
roundingRepaymentScheduleMethod (required) string Specifies the rounding repayment schedule method. none

Enumerated Values

Property Value
repaymentCurrencyRounding NO_ROUNDING
repaymentCurrencyRounding ROUND_TO_NEAREST_WHOLE_UNIT
repaymentCurrencyRounding ROUND_UP_TO_NEAREST_WHOLE_UNIT
repaymentElementsRoundingMethod NO_ROUNDING
repaymentElementsRoundingMethod ROUND_ALL
repaymentElementsRoundingMethod PAYMENT_DUE
roundingRepaymentScheduleMethod NO_ROUNDING
roundingRepaymentScheduleMethod ROUND_REMAINDER_INTO_LAST_REPAYMENT
roundingRepaymentScheduleMethod ROUND_PRINCIPAL_AND_INTEREST_REMAINDER_INTO_LAST_REPAYMENT

LoanProductScheduleConfiguration

{
  "billingCycles": {
    "enabled": true,
    "startDays": [
      0
    ]
  },
  "defaultRepaymentPeriodCount": 0,
  "firstRepaymentDueDateOffset": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "fixedDaysOfMonth": [
    0
  ],
  "numInstallments": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "previewSchedule": {
    "numberOfPreviewedInstalments": 0,
    "previewScheduleEnabled": true
  },
  "repaymentPeriodUnit": "DAYS",
  "repaymentReschedulingMethod": "NONE",
  "repaymentScheduleEditOptions": [
    "ADJUST_PAYMENT_DATES"
  ],
  "repaymentScheduleMethod": "NONE",
  "roundingSettings": {
    "repaymentCurrencyRounding": "NO_ROUNDING",
    "repaymentElementsRoundingMethod": "NO_ROUNDING",
    "roundingRepaymentScheduleMethod": "NO_ROUNDING"
  },
  "scheduleDueDatesMethod": "INTERVAL",
  "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
}

Defines the settings and constraints for schedule for the loans that are created based on this product.

Properties

Name Type Description Restrictions
billingCycles LoanProductBillingCyclesConfiguration Defines the billing cycles settings for revolving credit products none
defaultRepaymentPeriodCount integer(int32) Interval Repayment Methodology Settings. none
firstRepaymentDueDateOffset IntegerIntervalConfiguration Decimal integer, like min/max/default. none
fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTH. none
numInstallments IntegerIntervalConfiguration Decimal integer, like min/max/default. none
previewSchedule LoanProductPreviewScheduleConfiguration Defines the Preview Schedule settings for revolving products none
repaymentPeriodUnit string The frequency of the loan repayment. none
repaymentReschedulingMethod (required) string The repayment rescheduling method used in calculations. none
repaymentScheduleEditOptions [string] Shows the properties from the repayment schedule that can be edited. none
repaymentScheduleMethod (required) string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
roundingSettings LoanProductRoundingConfiguration Defines the rounding settings used in the loan computation. none
scheduleDueDatesMethod (required) string The methodology used by this product to compute the due dates of the repayments. none
shortMonthHandlingMethod string Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Schedule Due Dates Method is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTHs. none

Enumerated Values

Property Value
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentReschedulingMethod NONE
repaymentReschedulingMethod NEXT_WORKING_DAY
repaymentReschedulingMethod PREVIOUS_WORKING_DAY
repaymentReschedulingMethod EXTEND_SCHEDULE
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

LoanProductScheduleSettings

{
  "amortizationPeriod": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "billingCycles": {
    "enabled": true,
    "startDays": [
      0
    ]
  },
  "defaultRepaymentPeriodCount": 0,
  "firstRepaymentDueDateOffset": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "fixedDaysOfMonth": [
    0
  ],
  "interestAccrualSince": "DISBURSEMENT",
  "numInstallments": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "previewSchedule": {
    "numberOfPreviewedInstalments": 0,
    "previewScheduleEnabled": true
  },
  "repaymentMethod": "AMOUNT",
  "repaymentPeriodUnit": "DAYS",
  "repaymentReschedulingMethod": "NONE",
  "repaymentScheduleEditOptions": [
    "ADJUST_PAYMENT_DATES"
  ],
  "repaymentScheduleMethod": "NONE",
  "roundingSettings": {
    "repaymentCurrencyRounding": "NO_ROUNDING",
    "repaymentElementsRoundingMethod": "NO_ROUNDING",
    "roundingRepaymentScheduleMethod": "NO_ROUNDING"
  },
  "scheduleDueDatesMethod": "INTERVAL",
  "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
}

Defines the settings and constraints for schedule for the loans that are created based on this product.

Properties

Name Type Description Restrictions
amortizationPeriod ProductAmortizationPeriod It holds information about the loan product amortization period. The PMT is calculated as the loan would have [amortisationPeriod] instalments none
billingCycles BillingCyclesProductSettings Defines the billing cycles settings for revolving credit products none
defaultRepaymentPeriodCount integer(int32) Interval Repayment Methodology Settings. none
firstRepaymentDueDateOffset IntegerIntervalConstraints Decimal integer, like min/max/default. none
fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTH. none
interestAccrualSince string Represents the moment the interest will start getting accrued. none
numInstallments IntegerIntervalConstraints Decimal integer, like min/max/default. none
previewSchedule PreviewScheduleSettings Defines the Preview Schedule settings for revolving products none
repaymentMethod string The repayment method value none
repaymentPeriodUnit string The frequency of the loan repayment. none
repaymentReschedulingMethod (required) string The repayment rescheduling method used in calculations. none
repaymentScheduleEditOptions [string] Shows the properties from the repayment schedule can be edited. none
repaymentScheduleMethod (required) string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
roundingSettings RoundingSettings Defines the rounding settings used in the loan computation. none
scheduleDueDatesMethod (required) string The methodology used by this product to compute the due dates of the repayments. none
shortMonthHandlingMethod string Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Schedule Due Dates Method is ScheduleDueDatesMethodDTO#FIXED_DAYS_OF_MONTHs. none

Enumerated Values

Property Value
interestAccrualSince DISBURSEMENT
interestAccrualSince DUE_DATE
repaymentMethod AMOUNT
repaymentMethod INSTALLMENTS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentReschedulingMethod NONE
repaymentReschedulingMethod NEXT_WORKING_DAY
repaymentReschedulingMethod PREVIOUS_WORKING_DAY
repaymentReschedulingMethod EXTEND_SCHEDULE
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

LoanProductTaxConfiguration

{
  "taxCalculationMethod": "INCLUSIVE",
  "taxSourceId": "string",
  "taxesOnFeesEnabled": true,
  "taxesOnInterestEnabled": true,
  "taxesOnPenaltyEnabled": true
}

Tax settings, defines some settings for taxes on the loan product

Properties

Name Type Description Restrictions
taxCalculationMethod string Shows whether the tax is added on top of the target amount or not. none
taxSourceId string tax source id. none
taxesOnFeesEnabled boolean Shows whether taxes on fees are enabled for this product or not. none
taxesOnInterestEnabled boolean Shows whether taxes on interest are enabled for this product or not. none
taxesOnPenaltyEnabled boolean Shows whether taxes on penalties are enabled for this product or not. none

Enumerated Values

Property Value
taxCalculationMethod INCLUSIVE
taxCalculationMethod EXCLUSIVE

LoanProductTrancheConfiguration

{
  "maxNumberOfTranches": 0
}

Represents the loan product tranche settings.

Properties

Name Type Description Restrictions
maxNumberOfTranches integer(int32) The number of tranches supported by the loan product. none

LoanProductsConfiguration

{
  "loanProducts": [
    {
      "accountLinkSettings": {
        "enabled": true,
        "linkableDepositProductId": "string",
        "linkedAccountOptions": [
          "AUTO_LINK_ACCOUNTS"
        ],
        "settlementMethod": "FULL_DUE_AMOUNTS"
      },
      "accountingSettings": {
        "accountingMethod": "NONE",
        "accountingRules": [
          {
            "financialResource": "PORTFOLIO_CONTROL",
            "glAccountCode": "string",
            "transactionChannelId": "string"
          }
        ],
        "interestAccrualCalculation": "NONE",
        "interestAccruedAccountingMethod": "NONE"
      },
      "allowCustomRepaymentAllocation": true,
      "arrearsSettings": {
        "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
        "monthlyToleranceDay": 0,
        "nonWorkingDaysMethod": "INCLUDED",
        "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
        "toleranceFloorAmount": 0,
        "tolerancePercentageOfOutstandingPrincipal": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "tolerancePeriod": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        }
      },
      "availabilitySettings": {
        "availableFor": [
          "INDIVIDUALS"
        ],
        "branchSettings": {
          "allBranches": true,
          "branches": [
            "string"
          ]
        }
      },
      "category": "PERSONAL_LENDING",
      "creditArrangementSettings": {
        "creditArrangementRequirement": "OPTIONAL"
      },
      "currency": {
        "code": "AED"
      },
      "feeSettings": {
        "allowArbitraryFees": true,
        "fees": [
          {
            "accountingRules": [
              {
                "financialResource": "PORTFOLIO_CONTROL",
                "glAccountCode": "string",
                "transactionChannelId": "string"
              }
            ],
            "amortizationSettings": {
              "amortizationProfile": "NONE",
              "amortizationRescheduleConfiguration": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
              "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
              "intervalCount": 0,
              "intervalType": "PREDEFINED_INTERVALS",
              "periodCount": 0,
              "periodUnit": "DAYS"
            },
            "amount": 0,
            "amountCalculationFunctionName": "string",
            "amountCalculationMethod": "FLAT",
            "feeApplication": "REQUIRED",
            "id": "string",
            "name": "string",
            "percentageAmount": 0,
            "state": "ACTIVE",
            "taxSettings": {
              "taxableCalculationMethod": "DEFAULT"
            },
            "trigger": "MANUAL"
          }
        ]
      },
      "fundingSettings": {
        "enabled": true,
        "funderInterestCommission": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "funderInterestCommissionAllocationType": "PERCENTAGE_OF_LOAN_FUNDING",
        "lockFundsAtApproval": true,
        "organizationInterestCommission": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "requiredFunds": 0
      },
      "gracePeriodSettings": {
        "gracePeriod": {
          "defaultValue": 0,
          "encodedKey": "string",
          "maxValue": 0,
          "minValue": 0
        },
        "gracePeriodType": "NONE"
      },
      "id": "string",
      "interestSettings": {
        "accrueLateInterest": true,
        "compoundingFrequency": "DAILY",
        "daysInYear": "ACTUAL_365_FIXED",
        "indexRateSettings": {
          "accrueInterestAfterMaturity": true,
          "allowNegativeInterestRate": true,
          "indexSourceId": "string",
          "interestChargeFrequency": "ANNUALIZED",
          "interestChargeFrequencyCount": 0,
          "interestRate": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "interestRateCeilingValue": 0,
          "interestRateFloorValue": 0,
          "interestRateReviewCount": 0,
          "interestRateReviewUnit": "DAYS",
          "interestRateSource": "FIXED_INTEREST_RATE",
          "interestRateTerms": "FIXED",
          "interestRateTiers": [
            {
              "endingBalance": 0,
              "interestRate": 0
            }
          ]
        },
        "interestApplicationDays": {
          "daysInMonth": [
            0
          ],
          "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
        },
        "interestApplicationMethod": "AFTER_DISBURSEMENT",
        "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
        "interestCalculationMethod": "FLAT",
        "interestRateChangePMTAdjustmentThreshold": {
          "method": "WORKING_DAYS",
          "numberOfDays": 0
        },
        "interestRateSettings": [
          {
            "indexSourceId": "string",
            "interestRate": {
              "defaultValue": 0,
              "maxValue": 0,
              "minValue": 0
            },
            "interestRateCeilingValue": 0,
            "interestRateFloorValue": 0,
            "interestRateReviewCount": 0,
            "interestRateReviewUnit": "DAYS",
            "interestRateSource": "FIXED_INTEREST_RATE"
          }
        ],
        "interestType": "SIMPLE_INTEREST",
        "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
      },
      "internalControls": {
        "dormancyPeriodDays": 0,
        "fourEyesPrinciple": {
          "activeForLoanApproval": true
        },
        "lockSettings": {
          "cappingConstraintType": "SOFT_CAP",
          "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
          "cappingPercentage": 0,
          "lockPeriodDays": 0
        }
      },
      "loanAmountSettings": {
        "loanAmount": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "trancheSettings": {
          "maxNumberOfTranches": 0
        }
      },
      "name": "string",
      "newAccountSettings": {
        "accountInitialState": "PARTIAL_APPLICATION",
        "idGeneratorType": "INCREMENTAL_NUMBER",
        "idPattern": "string"
      },
      "notes": "string",
      "offsetSettings": {
        "allowOffset": true
      },
      "paymentSettings": {
        "amortizationMethod": "STANDARD_PAYMENTS",
        "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
        "paymentMethod": "HORIZONTAL",
        "prepaymentSettings": {
          "applyInterestOnPrepaymentMethod": "AUTOMATIC",
          "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
          "ercFreeAllowance": 0,
          "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
          "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
          "prepaymentRecalculationMethod": "NO_RECALCULATION",
          "principalPaidInstallmentStatus": "PARTIALLY_PAID"
        },
        "principalPaymentSettings": {
          "amount": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "defaultPrincipalRepaymentInterval": 0,
          "includeFeesInFloorAmount": true,
          "percentage": {
            "defaultValue": 0,
            "maxValue": 0,
            "minValue": 0
          },
          "principalCeilingValue": 0,
          "principalFloorValue": 0,
          "principalPaymentMethod": "FLAT",
          "totalDueAmountFloor": 0,
          "totalDuePayment": "FLAT"
        },
        "repaymentAllocationOrder": [
          "PRINCIPAL"
        ]
      },
      "penaltySettings": {
        "loanPenaltyCalculationMethod": "NONE",
        "loanPenaltyGracePeriod": 0,
        "penaltyRate": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        }
      },
      "redrawSettings": {
        "allowRedraw": true
      },
      "scheduleSettings": {
        "billingCycles": {
          "enabled": true,
          "startDays": [
            0
          ]
        },
        "defaultRepaymentPeriodCount": 0,
        "firstRepaymentDueDateOffset": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "fixedDaysOfMonth": [
          0
        ],
        "numInstallments": {
          "defaultValue": 0,
          "maxValue": 0,
          "minValue": 0
        },
        "previewSchedule": {
          "numberOfPreviewedInstalments": 0,
          "previewScheduleEnabled": true
        },
        "repaymentPeriodUnit": "DAYS",
        "repaymentReschedulingMethod": "NONE",
        "repaymentScheduleEditOptions": [
          "ADJUST_PAYMENT_DATES"
        ],
        "repaymentScheduleMethod": "NONE",
        "roundingSettings": {
          "repaymentCurrencyRounding": "NO_ROUNDING",
          "repaymentElementsRoundingMethod": "NO_ROUNDING",
          "roundingRepaymentScheduleMethod": "NO_ROUNDING"
        },
        "scheduleDueDatesMethod": "INTERVAL",
        "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
      },
      "securitySettings": {
        "isCollateralEnabled": true,
        "isGuarantorsEnabled": true,
        "requiredGuaranties": 0
      },
      "state": "ACTIVE",
      "taxSettings": {
        "taxCalculationMethod": "INCLUSIVE",
        "taxSourceId": "string",
        "taxesOnFeesEnabled": true,
        "taxesOnInterestEnabled": true,
        "taxesOnPenaltyEnabled": true
      },
      "type": "FIXED_TERM_LOAN"
    }
  ]
}

Represents the loan products configuration.

Properties

Name Type Description Restrictions
loanProducts [LoanProductConfiguration] The list of all loan products. none

LoanRiskLevelConfiguration

{
  "arrearsFrom": 0,
  "arrearsTo": 0,
  "id": "string",
  "name": "string",
  "provisioningPercent": 0
}

Represents the configuration for a loan risk level.

Properties

Name Type Description Restrictions
arrearsFrom (required) integer(int32) The lower level of the band of number of days the account is at risk. none
arrearsTo (required) integer(int32) The upper level of the band of number of days the account is at risk. none
id (required) string The user-defined ID, which is globally unique. none
name (required) string The name of the loan risk level. none
provisioningPercent number The amount to provision at this level (as a percentage). none

LoanRiskLevelsConfiguration

{
  "loanRiskLevels": [
    {
      "arrearsFrom": 0,
      "arrearsTo": 0,
      "id": "string",
      "name": "string",
      "provisioningPercent": 0
    }
  ]
}

Represents the loan risk levels configuration.

Properties

Name Type Description Restrictions
loanRiskLevels (required) [LoanRiskLevelConfiguration] The loan risk levels, ordered alphabetically by ID. none

LoanTerms

{
  "interestSettings": {
    "indexInterestRate": 0,
    "interestRate": 0
  },
  "periodicPayment": 0,
  "principalPaymentAmount": 0,
  "principalPaymentPercentage": 0
}

The loan transaction terms

Properties

Name Type Description Restrictions
interestSettings TransactionInterestSettings The interest settings, holds all the properties regarding interests for the loan account. none
periodicPayment number The periodic payment value logged when changing it for a Balloon Payments account none
principalPaymentAmount number The principal payment flat amount logged when changing it for a Revolving Credit account none
principalPaymentPercentage number The principal payment percentage value logged when changing it for a Revolving Credit account none

LoanTranche

{
  "amount": 0,
  "disbursementDetails": {
    "disbursementTransactionKey": "string",
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
  },
  "encodedKey": "string",
  "fees": [
    {
      "amount": 0,
      "encodedKey": "string",
      "percentage": 0,
      "predefinedFeeEncodedKey": "string"
    }
  ],
  "trancheNumber": 0
}

In some cases organizations may approve loans but not disburse the full amount initially. They would like to spread the disbursement (and risk) over time. Likewise for the client, they may not need the full loan amount up front. They may want to have a loan to buy some equipment for their business but will make one purchase today and another purchase in a few months. In these cases, they don't need the full amount and wouldn't want to pay interest on cash they don't need yet. A solution for this matter is the usage of disbursement in tranches. This class holds the information required for one of this tranche.

Properties

Name Type Description Restrictions
amount (required) number The amount this tranche has available for disburse none
disbursementDetails TrancheDisbursementDetails The disbursement details regarding a loan tranche. none
encodedKey string The encoded key of the transaction details , auto generated, unique. read-only
fees [CustomPredefinedFee] Fees that are associated with this tranche none
trancheNumber integer(int32) Index indicating the tranche number none

LoanTransaction

{
  "accountBalances": {
    "advancePosition": 0,
    "arrearsPosition": 0,
    "expectedPrincipalRedraw": 0,
    "principalBalance": 0,
    "redrawBalance": 0,
    "totalBalance": 0
  },
  "adjustmentTransactionKey": "string",
  "affectedAmounts": {
    "deferredInterestAmount": 0,
    "feesAmount": 0,
    "fundersInterestAmount": 0,
    "interestAmount": 0,
    "interestFromArrearsAmount": 0,
    "organizationCommissionAmount": 0,
    "paymentHolidaysInterestAmount": 0,
    "penaltyAmount": 0,
    "principalAmount": 0
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "branchKey": "string",
  "cardTransaction": {
    "advice": true,
    "amount": 0,
    "cardAcceptor": {
      "city": "string",
      "country": "string",
      "mcc": 0,
      "name": "string",
      "state": "string",
      "street": "string",
      "zip": "string"
    },
    "cardToken": "string",
    "currencyCode": "string",
    "encodedKey": "string",
    "externalAuthorizationReferenceId": "string",
    "externalReferenceId": "string",
    "userTransactionTime": "string"
  },
  "centreKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": {
    "code": "AED",
    "currencyCode": "string"
  },
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "encodedKey": "string",
  "externalId": "string",
  "fees": [
    {
      "amount": 0,
      "name": "string",
      "predefinedFeeKey": "string",
      "taxAmount": 0,
      "trigger": "MANUAL"
    }
  ],
  "id": "string",
  "installmentEncodedKey": "string",
  "migrationEventKey": "string",
  "notes": "string",
  "originalAmount": 0,
  "originalCurrencyCode": "string",
  "originalTransactionKey": "string",
  "parentAccountKey": "string",
  "parentLoanTransactionKey": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "taxes": {
    "deferredTaxOnInterestAmount": 0,
    "taxOnFeesAmount": 0,
    "taxOnInterestAmount": 0,
    "taxOnInterestFromArrearsAmount": 0,
    "taxOnPaymentHolidaysInterest": 0,
    "taxOnPenaltyAmount": 0,
    "taxRate": 0
  },
  "terms": {
    "interestSettings": {
      "indexInterestRate": 0,
      "interestRate": 0
    },
    "periodicPayment": 0,
    "principalPaymentAmount": 0,
    "principalPaymentPercentage": 0
  },
  "tillKey": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "transferDetails": {
    "linkedDepositTransactionKey": "string",
    "linkedLoanTransactionKey": "string"
  },
  "type": "IMPORT",
  "userKey": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the action performed on a loan account after which the account's amount changes its value.

Properties

Name Type Description Restrictions
accountBalances TransactionBalances The balances changed within a transaction. none
adjustmentTransactionKey string The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved). none
affectedAmounts LoanAffectedAmounts The amounts affected after completing the loan transaction none
amount number The amount that was added or removed on the loan account. none
bookingDate string(date-time) The date when the corresponding journal entry is booked. none
branchKey string The branch where the transaction was performed. none
cardTransaction CardTransaction A card transaction entry which will have a corresponding a financial transaction performed. none
centreKey string The center where the transaction was performed. none
creationDate string(date-time) The date when this loan transaction was created. none
currency Currency Represents a currency. To represent a fiat currency, the code value and the currencyCode value must be the ISO-4217 currency code of the fiat currency. To represent a non-fiat currency, the code value must be NON_FIAT and the currencyCode value must be the currency code of the non-fiat currency. none
customPaymentAmounts [CustomPaymentAmount] The list of custom amounts which the user has paid as part of this transaction. none
encodedKey string The encoded key of the loan transaction, which is auto generated, and must be unique. none
externalId string The external ID of the loan transaction, it is customizable, and must be unique. none
fees [Fee] The amounts that have been applied or paid as part of this transaction and involved predefined fees. none
id string The ID of the loan transaction, can be generated and customized, and must be unique. none
installmentEncodedKey string The specific installment encoded key associated to the loan transaction. none
migrationEventKey string The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from. none
notes string The notes or description for the loan transaction. none
originalAmount number The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field. none
originalCurrencyCode string The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency. none
originalTransactionKey string The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions. none
parentAccountKey string The key of the parent loan account. none
parentLoanTransactionKey string The key of the parent loan transaction. none
prepaymentRecalculationMethod string The prepayment recalculation method of the loan transaction. none
taxes Taxes The taxes applied within a transaction. none
terms LoanTerms The loan transaction terms none
tillKey string The till key associated with the transaction. none
transactionDetails TransactionDetails Contains the details about transaction including fields like transaction channel key and channel id none
transferDetails TransferDetails Represents the transfer details, such as the linked transaction key none
type string The type of loan transaction. none
userKey string The user that performed the transaction. none
valueDate string(date-time) The date of the entry in the organization time format and timezone. none

Enumerated Values

Property Value
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
type IMPORT
type DISBURSEMENT
type DISBURSEMENT_ADJUSTMENT
type WRITE_OFF
type WRITE_OFF_ADJUSTMENT
type REPAYMENT
type PAYMENT_MADE
type WITHDRAWAL_REDRAW
type WITHDRAWAL_REDRAW_ADJUSTMENT
type FEE_APPLIED
type FEE_CHARGED
type FEES_DUE_REDUCED
type FEE_ADJUSTMENT
type PENALTY_APPLIED
type PENALTY_ADJUSTMENT
type PENALTIES_DUE_REDUCED
type REPAYMENT_ADJUSTMENT
type PAYMENT_MADE_ADJUSTMENT
type INTEREST_RATE_CHANGED
type TAX_RATE_CHANGED
type PENALTY_RATE_CHANGED
type INTEREST_APPLIED
type INTEREST_APPLIED_ADJUSTMENT
type INTEREST_DUE_REDUCED
type PENALTY_REDUCTION_ADJUSTMENT
type FEE_REDUCTION_ADJUSTMENT
type INTEREST_REDUCTION_ADJUSTMENT
type DEFERRED_INTEREST_APPLIED
type DEFERRED_INTEREST_APPLIED_ADJUSTMENT
type DEFERRED_INTEREST_PAID
type DEFERRED_INTEREST_PAID_ADJUSTMENT
type INTEREST_LOCKED
type FEE_LOCKED
type PENALTY_LOCKED
type INTEREST_UNLOCKED
type FEE_UNLOCKED
type PENALTY_UNLOCKED
type REDRAW_TRANSFER
type REDRAW_REPAYMENT
type REDRAW_TRANSFER_ADJUSTMENT
type REDRAW_REPAYMENT_ADJUSTMENT
type TRANSFER
type TRANSFER_ADJUSTMENT
type BRANCH_CHANGED
type TERMS_CHANGED
type CARD_TRANSACTION_REVERSAL
type CARD_TRANSACTION_REVERSAL_ADJUSTMENT
type DUE_DATE_CHANGED
type DUE_DATE_CHANGED_ADJUSTMENT
type ACCOUNT_TERMINATED
type ACCOUNT_TERMINATED_ADJUSTMENT

LoanTransactionAdjustmentDetails

{
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "installments": [
    {
      "amountToAdd": 0,
      "installmentKey": "string"
    }
  ],
  "notes": "string"
}

Contains the details of the transaction adjustment

Properties

Name Type Description Restrictions
bookingDate string(date-time) Date when the adjustment transaction is logged into accounting. Can be null. Available only for REPAYMENT, PAYMENT_MADE and FEE none
installments [AdjustTransactionInstallmentDetailsDTO] Details of installments with their corresponding amounts to be added to the reduced fee/penalty none
notes (required) string Notes detailing why the transaction is adjusted none

LoanTransactionDetails

{
  "encodedKey": "string",
  "internalTransfer": true,
  "targetDepositAccountKey": "string",
  "transactionChannelId": "string",
  "transactionChannelKey": "string"
}

Represents the loan transaction details.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the entity, generated, globally unique read-only
internalTransfer boolean Whether the transaction was transferred between loans or deposit accounts none
targetDepositAccountKey string In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made. none
transactionChannelId string The ID of the transaction channel associated with the transaction details. none
transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none

LoanTransactionDetailsInput

{
  "transactionChannelId": "string",
  "transactionChannelKey": "string"
}

Contains the details about transaction including fields like transaction channel key and channel ID

Properties

Name Type Description Restrictions
transactionChannelId string The id of the transaction channel associated with the transaction details input. none
transactionChannelKey string The encoded key of the transaction channel associated with the transaction details input. none

LoanTransactionFilterCriteria

{
  "field": "encodedKey",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The unit that composes the list used for Loan transaction client directed queries searching

Properties

Name Type Description Restrictions
field (required) string Contains the actual searching fields that can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId].
Field with limited capabilities
operator (required) string Operator
secondValue string The second value to match the searching criteria, when the BETWEEN operator is used. none
value string The value to match the searching criteria. none
values [string] List of values when the IN operator is used. none

Enumerated Values

Property Value
field encodedKey
field id
field externalId
field creationDate
field valueDate
field parentAccountKey
field productTypeKey
field productID
field type
field amount
field originalAmount
field originalCurrencyCode
field affectedAmounts.principalAmount
field affectedAmounts.interestAmount
field affectedAmounts.fundersInterestAmount
field affectedAmounts.organizationCommissionAmount
field affectedAmounts.deferredInterestAmount
field affectedAmounts.feesAmount
field affectedAmounts.penaltyAmount
field taxes.taxRate
field accountBalances.totalBalance
field accountBalances.advancePosition
field accountBalances.arrearsPosition
field accountBalances.expectedPrincipalRedraw
field accountBalances.redrawBalance
field accountBalances.principalBalance
field userKey
field branchKey
field branchID
field centreKey
field centreID
field tillKey
field tillID
field adjustmentTransactionKey
field originalTransactionKey
field terms.interestSettings.interestRate
field transactionDetails.transactionChannelKey
field transactionDetails.transactionChannelId
field wasAdjusted
field typeIsAdjustment
field fees.predefinedFeeKey
field fees.trigger
field fees.name
field parentAccountID
field adjustmentTransactionID
field originalTransactionID
field _Example_Custom_Fields.Example_Free_Text_Field
field _Example_Custom_Fields.Example_Number_Field
field _Example_Custom_Fields.Example_Checkbox_Field
field _Example_Custom_Fields.Example_Select_Field
operator EQUALS
operator EQUALS_CASE_SENSITIVE
operator DIFFERENT_THAN
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator ON
operator AFTER
operator AFTER_INCLUSIVE
operator BEFORE
operator BEFORE_INCLUSIVE
operator STARTS_WITH
operator STARTS_WITH_CASE_SENSITIVE
operator IN
operator TODAY
operator THIS_WEEK
operator THIS_MONTH
operator THIS_YEAR
operator LAST_DAYS
operator EMPTY
operator NOT_EMPTY

LoanTransactionSearchCriteria

{
  "filterCriteria": [
    {
      "field": "encodedKey",
      "operator": "EQUALS",
      "secondValue": "string",
      "value": "string",
      "values": [
        "string"
      ]
    }
  ],
  "sortingCriteria": {
    "field": "id",
    "order": "ASC"
  }
}

Represents the filtering and sorting criteria when searching loan transactions.

Properties

Name Type Description Restrictions
filterCriteria [LoanTransactionFilterCriteria] The list of filtering criteria. none
sortingCriteria LoanTransactionSortingCriteria The sorting criteria used for when searching loan transactions. none

LoanTransactionSortingCriteria

{
  "field": "id",
  "order": "ASC"
}

The sorting criteria used for when searching loan transactions.

Properties

Name Type Description Restrictions
field (required) string Contains the field that can be used as sorting selection. Can be native (one from the provided list) or otherwise can specify a custom field using the format [customFieldSetId].[customFieldId]. none
order string The sorting order: ASC or DESC. The default order is DESC. none

Enumerated Values

Property Value
field id
field externalId
field creationDate
field valueDate
field parentAccountId
field productId
field amount
field originalAmount
field originalCurrencyCode
field branchId
field centreId
field tillId
field terms.interestSettings.interestRate
field transactionDetails.transactionChannelId
field fees.name
field accountBalances.totalBalance
field accountBalances.principalBalance
field accountBalances.redrawBalance
field accountBalances.expectedPrincipalRedraw
field accountBalances.advancePosition
field accountBalances.arrearsPosition
field affectedAmounts.principalAmount
field affectedAmounts.interestAmount
field affectedAmounts.interestFromArrearsAmount
field affectedAmounts.deferredInterestAmount
field affectedAmounts.feesAmount
field affectedAmounts.penaltyAmount
field affectedAmounts.organizationCommissionAmount
field affectedAmounts.fundersInterestAmount
field taxes.taxRate
order ASC
order DESC

LockConfiguration

{
  "cappingConstraintType": "SOFT_CAP",
  "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
  "cappingPercentage": 0,
  "lockPeriodDays": 0
}

Settings applied when transitioning accounts to Locked state

Properties

Name Type Description Restrictions
cappingConstraintType string Specifies constraint types for capping charges. none
cappingMethod string Specifies how principal will be used when calculating capping charges. none
cappingPercentage number Specifies the percentage of principal that cannot be exceeded by the sum of interest, fees and penalty balances. none
lockPeriodDays integer(int32) Specifies the number of days for in which the account will be locked if it stays in arrears. none

Enumerated Values

Property Value
cappingConstraintType SOFT_CAP
cappingConstraintType HARD_CAP
cappingMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
cappingMethod ORIGINAL_PRINCIPAL_PERCENTAGE

LockLoanAccountInput

{
  "lockedAccountTotalDueType": "BALANCE_AMOUNT",
  "lockedOperations": [
    "APPLY_INTEREST"
  ],
  "notes": "string"
}

Represents the information for locking an account.

Properties

Name Type Description Restrictions
lockedAccountTotalDueType string The locked account total due type. none
lockedOperations [string] A list with operations which are locked when the account is in sub-state AccountState.LOCKED. Allowed options are APPLY_INTEREST, APPLY_PENALTIES and APPLY_FEES. none
notes string The notes about the account locking operation. none

Enumerated Values

Property Value
lockedAccountTotalDueType BALANCE_AMOUNT
lockedAccountTotalDueType DUE_AMOUNT_ON_LATE_INSTALLMENTS

LockLoanTransactionsWrapper

{
  "loanTransactions": [
    {
      "accountBalances": {
        "advancePosition": 0,
        "arrearsPosition": 0,
        "expectedPrincipalRedraw": 0,
        "principalBalance": 0,
        "redrawBalance": 0,
        "totalBalance": 0
      },
      "adjustmentTransactionKey": "string",
      "affectedAmounts": {
        "deferredInterestAmount": 0,
        "feesAmount": 0,
        "fundersInterestAmount": 0,
        "interestAmount": 0,
        "interestFromArrearsAmount": 0,
        "organizationCommissionAmount": 0,
        "paymentHolidaysInterestAmount": 0,
        "penaltyAmount": 0,
        "principalAmount": 0
      },
      "amount": 0,
      "bookingDate": "2016-09-06T13:37:50+03:00",
      "branchKey": "string",
      "cardTransaction": {
        "advice": true,
        "amount": 0,
        "cardAcceptor": {
          "city": "string",
          "country": "string",
          "mcc": 0,
          "name": "string",
          "state": "string",
          "street": "string",
          "zip": "string"
        },
        "cardToken": "string",
        "currencyCode": "string",
        "encodedKey": "string",
        "externalAuthorizationReferenceId": "string",
        "externalReferenceId": "string",
        "userTransactionTime": "string"
      },
      "centreKey": "string",
      "creationDate": "2016-09-06T13:37:50+03:00",
      "currency": {
        "code": "AED",
        "currencyCode": "string"
      },
      "customPaymentAmounts": [
        {
          "amount": 0,
          "customPaymentAmountType": "PRINCIPAL",
          "predefinedFeeKey": "string",
          "taxOnAmount": 0
        }
      ],
      "encodedKey": "string",
      "externalId": "string",
      "fees": [
        {
          "amount": 0,
          "name": "string",
          "predefinedFeeKey": "string",
          "taxAmount": 0,
          "trigger": "MANUAL"
        }
      ],
      "id": "string",
      "installmentEncodedKey": "string",
      "migrationEventKey": "string",
      "notes": "string",
      "originalAmount": 0,
      "originalCurrencyCode": "string",
      "originalTransactionKey": "string",
      "parentAccountKey": "string",
      "parentLoanTransactionKey": "string",
      "prepaymentRecalculationMethod": "NO_RECALCULATION",
      "taxes": {
        "deferredTaxOnInterestAmount": 0,
        "taxOnFeesAmount": 0,
        "taxOnInterestAmount": 0,
        "taxOnInterestFromArrearsAmount": 0,
        "taxOnPaymentHolidaysInterest": 0,
        "taxOnPenaltyAmount": 0,
        "taxRate": 0
      },
      "terms": {
        "interestSettings": {
          "indexInterestRate": 0,
          "interestRate": 0
        },
        "periodicPayment": 0,
        "principalPaymentAmount": 0,
        "principalPaymentPercentage": 0
      },
      "tillKey": "string",
      "transactionDetails": {
        "transactionChannelId": "string",
        "transactionChannelKey": "string"
      },
      "transferDetails": {
        "linkedDepositTransactionKey": "string",
        "linkedLoanTransactionKey": "string"
      },
      "type": "IMPORT",
      "userKey": "string",
      "valueDate": "2016-09-06T13:37:50+03:00"
    }
  ]
}

Represents a wrapper over a list of loan transactions, to be used when locking and unlocking an account.

Properties

Name Type Description Restrictions
loanTransactions [LoanTransaction] The list of loan transactions none

LockSettings

{
  "cappingConstraintType": "SOFT_CAP",
  "cappingMethod": "OUTSTANDING_PRINCIPAL_PERCENTAGE",
  "cappingPercentage": 0,
  "lockPeriodDays": 0
}

Settings applied when transitioning accounts to Locked state

Properties

Name Type Description Restrictions
cappingConstraintType string Specifies constraint types for capping charges. none
cappingMethod string Specifies how principal will be used when calculating capping charges. none
cappingPercentage number Specifies the percentage of principal that cannot be exceeded by the sum of interest, fees and penalty balances. none
lockPeriodDays integer(int32) Specifies the number of days for in which the account will be locked if it stays in arrears. none

Enumerated Values

Property Value
cappingConstraintType SOFT_CAP
cappingConstraintType HARD_CAP
cappingMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
cappingMethod ORIGINAL_PRINCIPAL_PERCENTAGE

MonthAndDay

{
  "day": 0,
  "month": 0
}

Wrapper for month and day for instances where the year isn't needed

Properties

Name Type Description Restrictions
day integer(int32) The day in the month none
month integer(int32) The month of the year none

MonthAndDayConfiguration

{
  "day": 0,
  "month": 0
}

Wrapper for month and day for instances where the year isn't needed

Properties

Name Type Description Restrictions
day integer(int32) The day in the month none
month integer(int32) The month of the year none

MultipleAtomicGroupsInput

{
  "atomicGroups": [
    {
      "atomicGroupId": "string",
      "transactions": [
        {
          "deposit": {
            "amount": 0,
            "bookingDate": "2016-09-06T13:37:50+03:00",
            "externalId": "string",
            "holdExternalReferenceId": "string",
            "notes": "string",
            "paymentDetails": {
              "creditor": {
                "name": "string"
              },
              "creditorAccount": {
                "currency": "string",
                "identification": {
                  "iban": "string",
                  "other": {
                    "identification": "string",
                    "scheme": "string"
                  }
                }
              },
              "creditorAgent": {
                "financialInstitutionIdentification": {
                  "bic": "string"
                }
              },
              "debtor": {
                "name": "string"
              },
              "debtorAccount": {
                "currency": "string",
                "identification": {
                  "iban": "string",
                  "other": {
                    "identification": "string",
                    "scheme": "string"
                  }
                }
              },
              "debtorAgent": {
                "financialInstitutionIdentification": {
                  "bic": "string"
                }
              },
              "paymentIdentification": {
                "endToEndIdentification": "string",
                "instructionIdentification": "string",
                "transactionIdentification": "string"
              },
              "paymentTypeInformation": {
                "serviceLevel": {
                  "code": "string"
                }
              },
              "remittanceInformation": {
                "structured": {
                  "creditorReferenceInformation": {
                    "reference": "string",
                    "referenceIssuer": "string",
                    "referenceType": "string"
                  }
                },
                "unstructured": "string"
              }
            },
            "paymentOrderId": "string",
            "skipMaximumBalanceValidation": true,
            "transactionDetails": {
              "transactionChannelId": "string",
              "transactionChannelKey": "string"
            },
            "valueDate": "2016-09-06T13:37:50+03:00"
          },
          "fee": {
            "amount": 0,
            "externalId": "string",
            "notes": "string",
            "predefinedFeeKey": "string"
          },
          "withdrawal": {
            "amount": 0,
            "bookingDate": "2016-09-06T13:37:50+03:00",
            "externalId": "string",
            "holdExternalReferenceId": "string",
            "notes": "string",
            "paymentDetails": {
              "creditor": {
                "name": "string"
              },
              "creditorAccount": {
                "currency": "string",
                "identification": {
                  "iban": "string",
                  "other": {
                    "identification": "string",
                    "scheme": "string"
                  }
                }
              },
              "creditorAgent": {
                "financialInstitutionIdentification": {
                  "bic": "string"
                }
              },
              "debtor": {
                "name": "string"
              },
              "debtorAccount": {
                "currency": "string",
                "identification": {
                  "iban": "string",
                  "other": {
                    "identification": "string",
                    "scheme": "string"
                  }
                }
              },
              "debtorAgent": {
                "financialInstitutionIdentification": {
                  "bic": "string"
                }
              },
              "paymentIdentification": {
                "endToEndIdentification": "string",
                "instructionIdentification": "string",
                "transactionIdentification": "string"
              },
              "paymentTypeInformation": {
                "serviceLevel": {
                  "code": "string"
                }
              },
              "remittanceInformation": {
                "structured": {
                  "creditorReferenceInformation": {
                    "reference": "string",
                    "referenceIssuer": "string",
                    "referenceType": "string"
                  }
                },
                "unstructured": "string"
              }
            },
            "paymentOrderId": "string",
            "transactionDetails": {
              "transactionChannelId": "string",
              "transactionChannelKey": "string"
            },
            "valueDate": "2016-09-06T13:37:50+03:00"
          }
        }
      ]
    }
  ]
}

Represents the request payload for creating multiple transactions atomically in groups.

Properties

Name Type Description Restrictions
atomicGroups [AtomicGroup] Atomic Groups list none

MultipleAtomicGroupsResponse

{
  "atomicGroups": [
    "string"
  ],
  "requestId": "string"
}

Represents the response for accepting multiple transactions atomically in groups.

Properties

Name Type Description Restrictions
atomicGroups [string] Ordered unique ids for processing accepted atomic groups none
requestId string Unique id for the accepted async request none

NewAccountSettings

{
  "accountInitialState": "PARTIAL_APPLICATION",
  "idGeneratorType": "INCREMENTAL_NUMBER",
  "idPattern": "string"
}

The new account settings, defines the settings and constraints used by new loan account created based on this product.

Properties

Name Type Description Restrictions
accountInitialState (required) string The initial state of the account when is created. none
idGeneratorType (required) string The type of generator used for IDs creation. none
idPattern (required) string The pattern that will be used for ID validation (as referred to as an input mask). none

Enumerated Values

Property Value
accountInitialState PARTIAL_APPLICATION
accountInitialState PENDING_APPROVAL
accountInitialState APPROVED
accountInitialState ACTIVE
accountInitialState ACTIVE_IN_ARREARS
accountInitialState CLOSED
idGeneratorType INCREMENTAL_NUMBER
idGeneratorType RANDOM_PATTERN

NonWorkingDays

{
  "nonWorkingDays": [
    "MONDAY"
  ]
}

Represents the non-working days of the organization.

Properties

Name Type Description Restrictions
nonWorkingDays (required) [string] The non-working days of the organization. none

ObjectLabelConfiguration

{
  "labels": [
    {
      "pluralValue": "string",
      "singularValue": "string",
      "type": "CLIENT"
    }
  ],
  "language": "ENGLISH"
}

Represents the object label

Properties

Name Type Description Restrictions
labels [ObjectLabelValueConfiguration] The object labels values none
language (required) string The language used for the object label none

Enumerated Values

Property Value
language ENGLISH
language PORTUGESE
language SPANISH
language RUSSIAN
language FRENCH
language GEORGIAN
language CHINESE
language INDONESIAN
language ROMANIAN
language BURMESE
language GERMAN
language PORTUGUESE_BRAZIL
language VIETNAMESE
language ITALIAN
language PHRASE

ObjectLabelValueConfiguration

{
  "pluralValue": "string",
  "singularValue": "string",
  "type": "CLIENT"
}

Represents the object label value

Properties

Name Type Description Restrictions
pluralValue (required) string The plural value none
singularValue (required) string The singular value none
type (required) string The type of the object label none

Enumerated Values

Property Value
type CLIENT
type GROUP
type BRANCH
type CENTRE
type CREDIT_OFFICER
type INTEREST
type FEE
type LOAN

ObjectLabelsConfiguration

{
  "objectLabels": [
    {
      "labels": [
        {
          "pluralValue": "string",
          "singularValue": "string",
          "type": "CLIENT"
        }
      ],
      "language": "ENGLISH"
    }
  ]
}

Represents the object labels

Properties

Name Type Description Restrictions
objectLabels (required) [ObjectLabelConfiguration] The object labels none

OffsetSettings

{
  "allowOffset": true
}

The offset settings, holds information about offset.

Properties

Name Type Description Restrictions
allowOffset boolean Indicates whether the product supports offset none

Organization

{
  "address": {
    "city": "string",
    "country": "string",
    "line1": "string",
    "line2": "string",
    "postcode": "string",
    "region": "string"
  },
  "decimalSeparator": "COMMA",
  "emailAddress": "string",
  "institutionName": "string",
  "localDateFormat": "string",
  "localDateTimeFormat": "string",
  "phoneNumber": "string"
}

Response representation of the organization configuration details

Properties

Name Type Description Restrictions
address AddressDetails Represents an address. none
decimalSeparator (required) string Symbol used to mark the border between the integral and the fractional parts of a decimal numeral none
emailAddress string The email address of the organization none
institutionName (required) string The name of the organization none
localDateFormat (required) string The format used to represent the date none
localDateTimeFormat (required) string The format used to represent the time and date none
phoneNumber string The phone number of the organization none

Enumerated Values

Property Value
decimalSeparator COMMA
decimalSeparator POINT

OrganizationSetup

{
  "address": {
    "city": "string",
    "country": "string",
    "encodedKey": "string",
    "indexInList": 0,
    "latitude": 0,
    "line1": "string",
    "line2": "string",
    "longitude": 0,
    "parentKey": "string",
    "postcode": "string",
    "region": "string"
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "currency": "string",
  "dateFormat": "dd-MM-yyyy",
  "dateTimeFormat": "dd-MM-yyyy HH:mm:ss",
  "decimalSeparator": "COMMA",
  "emailAddress": "string",
  "institutionName": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "phoneNumber": "string",
  "timeZoneID": "string"
}

Response representation of the organization setup details

Properties

Name Type Description Restrictions
address Address Represents an address. none
creationDate string(date-time) The creation date of the organization read-only
currency string The currency of the organization, must be the same as the existing one read-only
dateFormat (required) string The format used to represent the date none
dateTimeFormat (required) string The format used to represent the time and date none
decimalSeparator (required) string Symbol used to mark the border between the integral and the fractional parts of a decimal numeral none
emailAddress string The email address of the organization none
institutionName (required) string The name of the organization none
lastModifiedDate string(date-time) The last modified date of the organization read-only
phoneNumber string The phone number of the organization none
timeZoneID string The timezone id, must be the same as the existing one read-only

Enumerated Values

Property Value
decimalSeparator COMMA
decimalSeparator POINT

OtherAccountIdentification

{
  "identification": "string",
  "scheme": "string"
}

Represents other way of identification for the account.

Properties

Name Type Description Restrictions
identification string The identification of the payer/payee none
scheme string The identification scheme none

OverdraftInterestSettings

{
  "daysInYear": "ACTUAL_365_FIXED",
  "interestCalculationBalance": "MINIMUM",
  "interestRateSettings": {
    "indexSourceKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "interestRate": 0
      }
    ]
  }
}

Overdraft settings for the product

Properties

Name Type Description Restrictions
daysInYear string How many days in a year should be used for interest calculations none
interestCalculationBalance string The balance which is used for the overdraft interest calculation. Default value is MINIMUM. If set to null on a PUT call and the product allows overdrafts, the null value is ignored and not changed. none
interestRateSettings DepositProductOverdraftInterestRateSettings The overdraft interest settings, defines constraints regarding interest that will be used on the account created based on this product. none

Enumerated Values

Property Value
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear E30_42_365
daysInYear BUS_252
interestCalculationBalance MINIMUM
interestCalculationBalance AVERAGE
interestCalculationBalance END_OF_DAY
interestCalculationBalance MINIMUM_TO_END_OF_DAY
interestCalculationBalance FRENCH_INTEREST_ACCRUAL

Party

{
  "name": "string"
}

The details of the party for a transaction

Properties

Name Type Description Restrictions
name string The name of the party none

PatchOperation

{
  "from": "string",
  "op": "ADD",
  "path": "string",
  "value": {}
}

A single change that needs to be made to a resource

Properties

Name Type Description Restrictions
from string The field from where a value should be moved, when using move none
op (required) string The change to perform none
path (required) string The field to perform the operation on none
value object The value of the field, can be null none

Enumerated Values

Property Value
op ADD
op REPLACE
op REMOVE
op MOVE

PatchOperationsList

[
  {
    "from": "string",
    "op": "ADD",
    "path": "string",
    "value": {}
  }
]

Properties

Name Type Description Restrictions
anonymous [PatchOperation] [A single change that needs to be made to a resource] none

PayOffAdjustableAmounts

{
  "feesPaid": 0,
  "interestPaid": 0,
  "penaltyPaid": 0
}

Adjustable amounts to be paid for Pay Off action

Properties

Name Type Description Restrictions
feesPaid number The fee amount to be paid for Pay Off action none
interestPaid number The interest amount to be paid for Pay Off action none
penaltyPaid number The penalty amount to be paid for Pay Off action none

PaymentConfiguration

{
  "amortizationMethod": "STANDARD_PAYMENTS",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "paymentMethod": "HORIZONTAL",
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "ercFreeAllowance": 0,
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "defaultPrincipalRepaymentInterval": 0,
    "includeFeesInFloorAmount": true,
    "percentage": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "repaymentAllocationOrder": [
    "PRINCIPAL"
  ]
}

Model representation of the payment settings configuration

Properties

Name Type Description Restrictions
amortizationMethod string Payments Method used by loan accounts for repayments schedule generation. none
latePaymentsRecalculationMethod string Recalculate the schedule when late payments are posted on dynamic Equal Installments loans. none
paymentMethod string The payment method. Represents the interest payment method that determines whether the payments are made Horizontally (on the Repayments) or Vertically (on the Loan Account) none
prepaymentSettings PrepaymentConfiguration The prepayment settings, holds all prepayment properties. none
principalPaymentSettings PrincipalPaymentConfiguration Defines the principal payment settings constraints for the loans that will be created based on this product. none
repaymentAllocationOrder [string] A list of basic repayment allocation elements such as the principal, interest & fees. none

Enumerated Values

Property Value
amortizationMethod STANDARD_PAYMENTS
amortizationMethod BALLOON_PAYMENTS
amortizationMethod OPTIMIZED_PAYMENTS
amortizationMethod PAYMENT_PLAN
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
paymentMethod HORIZONTAL
paymentMethod VERTICAL

PaymentDetails

{
  "creditor": {
    "name": "string"
  },
  "creditorAccount": {
    "currency": "string",
    "identification": {
      "iban": "string",
      "other": {
        "identification": "string",
        "scheme": "string"
      }
    }
  },
  "creditorAgent": {
    "financialInstitutionIdentification": {
      "bic": "string"
    }
  },
  "debtor": {
    "name": "string"
  },
  "debtorAccount": {
    "currency": "string",
    "identification": {
      "iban": "string",
      "other": {
        "identification": "string",
        "scheme": "string"
      }
    }
  },
  "debtorAgent": {
    "financialInstitutionIdentification": {
      "bic": "string"
    }
  },
  "paymentIdentification": {
    "endToEndIdentification": "string",
    "instructionIdentification": "string",
    "transactionIdentification": "string"
  },
  "paymentTypeInformation": {
    "serviceLevel": {
      "code": "string"
    }
  },
  "remittanceInformation": {
    "structured": {
      "creditorReferenceInformation": {
        "reference": "string",
        "referenceIssuer": "string",
        "referenceType": "string"
      }
    },
    "unstructured": "string"
  }
}

The payment information including account identification details

Properties

Name Type Description Restrictions
creditor Party The details of the party for a transaction none
creditorAccount AccountDetails The account currency and identification none
creditorAgent Agent The agent details for a party none
debtor Party The details of the party for a transaction none
debtorAccount AccountDetails The account currency and identification none
debtorAgent Agent The agent details for a party none
paymentIdentification PaymentIdentification The payment identification details none
paymentTypeInformation PaymentTypeInformation The information specifying the type of transaction none
remittanceInformation RemittanceInformation The information specifying the payment items that are intended to settle none

PaymentIdentification

{
  "endToEndIdentification": "string",
  "instructionIdentification": "string",
  "transactionIdentification": "string"
}

The payment identification details

Properties

Name Type Description Restrictions
endToEndIdentification string Identifier assigned by the initiating party to the transaction. Limited to 35 characters none
instructionIdentification string Identifier of a payment instruction none
transactionIdentification string Identifier unique for a period assigned by the first initiating party to the transaction none

PaymentMadeTransactionInput

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type PAYMENT_MADE

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount (required) number The amount of the payment none
bookingDate string(date-time) The booking date of the payment made transaction (as Organization Time) none
externalId string The external id of the payment made transaction, customizable, unique none
notes string Notes about the payment made transaction. The notes can have at most 255 characters in length. none
originalCurrencyCode string The currency code for the payment made transaction none
transactionDetails LoanTransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
valueDate string(date-time) The entry date of the payment made transaction (as Organization Time) none

PaymentSettings

{
  "amortizationMethod": "STANDARD_PAYMENTS",
  "latePaymentsRecalculationMethod": "OVERDUE_INSTALLMENTS_INCREASE",
  "paymentMethod": "HORIZONTAL",
  "prepaymentSettings": {
    "applyInterestOnPrepaymentMethod": "AUTOMATIC",
    "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
    "ercFreeAllowance": 0,
    "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
    "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
    "prepaymentRecalculationMethod": "NO_RECALCULATION",
    "principalPaidInstallmentStatus": "PARTIALLY_PAID"
  },
  "principalPaymentSettings": {
    "amount": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "defaultPrincipalRepaymentInterval": 0,
    "encodedKey": "string",
    "includeFeesInFloorAmount": true,
    "includeInterestInFloorAmount": true,
    "percentage": {
      "defaultValue": 0,
      "encodedKey": "string",
      "maxValue": 0,
      "minValue": 0
    },
    "principalCeilingValue": 0,
    "principalFloorValue": 0,
    "principalPaymentMethod": "FLAT",
    "totalDueAmountFloor": 0,
    "totalDuePayment": "FLAT"
  },
  "repaymentAllocationOrder": [
    "PRINCIPAL"
  ]
}

Defines the payment settings for the loan product and for loans crated based on this product.

Properties

Name Type Description Restrictions
amortizationMethod string Payments Method used by loan accounts for repayments schedule generation. none
latePaymentsRecalculationMethod (required) string Recalculate the schedule when late payments are posted on dynamic Equal Installments loans. none
paymentMethod (required) string The payment method. Represents the interest payment method that determines whether the payments are made Horizontally (on the Repayments) or Vertically (on the Loan Account) none
prepaymentSettings ProductPrepaymentSettings Defines the prepayment settings for the product none
principalPaymentSettings PrincipalPaymentProductSettings Defines the principal payment settings constraints for the loans that will be created based on this product. none
repaymentAllocationOrder (required) [string] A list of basic repayment allocation elements such as the principal, interest & fees. none

Enumerated Values

Property Value
amortizationMethod STANDARD_PAYMENTS
amortizationMethod BALLOON_PAYMENTS
amortizationMethod OPTIMIZED_PAYMENTS
amortizationMethod PAYMENT_PLAN
latePaymentsRecalculationMethod OVERDUE_INSTALLMENTS_INCREASE
latePaymentsRecalculationMethod LAST_INSTALLMENT_INCREASE
paymentMethod HORIZONTAL
paymentMethod VERTICAL

PaymentTypeInformation

{
  "serviceLevel": {
    "code": "string"
  }
}

The information specifying the type of transaction

Properties

Name Type Description Restrictions
serviceLevel ServiceLevel The rules under which the transaction should be processed none

PenaltyConfiguration

{
  "loanPenaltyCalculationMethod": "NONE",
  "loanPenaltyGracePeriod": 0,
  "penaltyRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  }
}

Defines the penalty settings for the product that will be used by the loan accounts based on this product

Properties

Name Type Description Restrictions
loanPenaltyCalculationMethod (required) string The penalty calculation method none
loanPenaltyGracePeriod integer(int32) Number of days to wait before applying the loan penalty amounts none
penaltyRate LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none

Enumerated Values

Property Value
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL

PenaltySettings

{
  "loanPenaltyCalculationMethod": "NONE",
  "penaltyRate": 0
}

The penalty settings, holds all the fields regarding penalties

Properties

Name Type Description Restrictions
loanPenaltyCalculationMethod string The last penalty calculation method, represents on what amount are the penalties calculated. none
penaltyRate number The penalty rate, represents the rate (in percent) which is charged as a penalty. none

Enumerated Values

Property Value
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL

PeriodIntervalSettings

{
  "amortizationProfile": "NONE",
  "encodedKey": "string",
  "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
  "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
  "intervalCount": 0,
  "intervalType": "PREDEFINED_INTERVALS",
  "periodCount": 0,
  "periodUnit": "DAYS"
}

The settings for defining period intervals.

Properties

Name Type Description Restrictions
amortizationProfile string Type of amortization profile used for fee none
encodedKey string The encoded key of the period interval settings, auto generated, unique. read-only
feeAmortizationUponRescheduleRefinanceOption string Flag for signaling if fee amortization should be continued or finished at account reschedule/refinance none
frequency string Frequency settings of the fee amortization none
intervalCount integer(int32) Total number of intervals none
intervalType string Defines the options for an interval none
periodCount integer(int32) Period count used in conjunction with periodUnit to determine the next date of the interval none
periodUnit string Amortization unit to determine the interval between amortizations none

Enumerated Values

Property Value
amortizationProfile NONE
amortizationProfile SUM_OF_YEARS_DIGITS
amortizationProfile STRAIGHT_LINE
amortizationProfile EFFECTIVE_INTEREST_RATE
feeAmortizationUponRescheduleRefinanceOption END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT
feeAmortizationUponRescheduleRefinanceOption CONTINUE_AMORTIZATION_ON_THE_RESCHEDULED_REFINANCED_ACCOUNT
frequency ACCOUNT_INSTALLMENTS_DUE_DATES
frequency ACCOUNT_INSTALLMENTS_DUE_DATES_DAILY_BOOKING
frequency CUSTOM_INTERVAL
intervalType PREDEFINED_INTERVALS
intervalType FULL_TERM
periodUnit DAYS
periodUnit WEEKS
periodUnit MONTHS
periodUnit YEARS

PeriodicPayment

{
  "amount": 0,
  "encodedKey": "string",
  "toInstallment": 0
}

For fixed term loans there is the possibility to define a payment plan. A payment plan consists of multiple periodic payments. This class holds information about a periodic payment.

Properties

Name Type Description Restrictions
amount (required) number The PMT value used in periodic payment none
encodedKey string The encoded key of the periodic payment, auto generated, unique. read-only
toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none

PeriodicPaymentForSchedulePreview

{
  "amount": 0,
  "toInstallment": 0
}

For fixed term loans there is the possibility to define a payment plan. A payment plan consists of multiple periodic payments. This class holds information about a periodic payment for schedule preview.

Properties

Name Type Description Restrictions
amount (required) number The PMT value used in periodic payment none
toInstallment (required) integer(int32) The installment's position up to which the PMT will be used none

PlannedFeeKeys

{
  "encodedKeys": [
    "string"
  ]
}

The planned installment fees encoded keys list

Properties

Name Type Description Restrictions
encodedKeys (required) [string] The list of encoded keys of the planned installment fees. none

PlannedInstallmentFee

{
  "amount": 0,
  "applyOnDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "installmentKey": "string",
  "installmentNumber": 0,
  "predefinedFeeKey": "string"
}

The planned fee details holds the information related to the installment key, predefined fee key and amount

Properties

Name Type Description Restrictions
amount number The amount of the planned fee. none
applyOnDate string(date-time) The date when a planned fee should be applied, overriding due date of the installment. It should match the interval of the installment. If it belongs to the first installment, it should be between disbursement date and installment due date. Returned only if its value has been previously set. none
encodedKey string The encoded key of the planned installment fee, auto generated, unique. read-only
installmentKey string The encoded key of the installment on which the predefined fee is planned. none
installmentNumber integer(int32) The number of the installment for which the predefined fee is planned. It is used only in the case when fees are created at the same time as the loan account or during preview schedule, before account creation. In all other cases, this field will be nil and installmentKey will be used to identify an installment. none
predefinedFeeKey (required) string The encoded key of the predefined fee which is planned. none

PortalSettings

{
  "encodedKey": "string",
  "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
  "portalState": "ENABLED"
}

Represents portal settings for an individual client.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the entity, generated, globally unique read-only
lastLoggedInDate string(date-time) The last date the client logged in to the portal. none
portalState string The state of the client's portal preferences. none

Enumerated Values

Property Value
portalState ENABLED
portalState DISABLED

PostAccountingRateDTO

{
  "rate": 0,
  "startDate": "2016-09-06T13:37:50+03:00"
}

The representation of a payload for creating Accounting Rate

Properties

Name Type Description Restrictions
rate (required) number Value of conversions rate used in accounting to convert amounts from one currency to organisation currency none
startDate string(date-time) The start date from which the accounting rate will be applied (as Organization time) none

PostGLJournalEntriesDTO

{
  "branchId": "string",
  "credits": [
    {
      "amount": 0,
      "glAccount": "string"
    }
  ],
  "date": "2016-09-06T13:37:50+03:00",
  "debits": [
    {
      "amount": 0,
      "glAccount": "string"
    }
  ],
  "notes": "string",
  "transactionId": "string"
}

Represents the information to create general ledger journal entries.

Properties

Name Type Description Restrictions
branchId string The ID of the assigned branch for the journal entries. none
credits [GLAccountAmount] The list of general ledger accounts to be credited with corresponding amounts. none
date (required) string(date-time) The date and time when the general ledger journal entries were recorded, also known as the booking date. none
debits [GLAccountAmount] The list of general ledger accounts to be debited with corresponding amounts. none
notes string The notes entered when the journal entry was posted. none
transactionId string A non-unique trasanction ID. This will be autogenerated if an ID is not provided. none

PredefinedFee

{
  "accountingRules": [
    {
      "encodedKey": "string",
      "financialResource": "PORTFOLIO_CONTROL",
      "glAccountKey": "string",
      "transactionChannelKey": "string"
    }
  ],
  "amortizationSettings": {
    "amortizationProfile": "NONE",
    "encodedKey": "string",
    "feeAmortizationUponRescheduleRefinanceOption": "END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT",
    "frequency": "ACCOUNT_INSTALLMENTS_DUE_DATES",
    "intervalCount": 0,
    "intervalType": "PREDEFINED_INTERVALS",
    "periodCount": 0,
    "periodUnit": "DAYS"
  },
  "amount": 0,
  "amountCalculationFunctionName": "string",
  "amountCalculationMethod": "FLAT",
  "applyDateMethod": "MONTHLY_FROM_ACTIVATION",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "feeApplication": "REQUIRED",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "percentageAmount": 0,
  "state": "ACTIVE",
  "taxSettings": {
    "taxableCalculationMethod": "DEFAULT"
  },
  "trigger": "MANUAL"
}

The response representation of the PredefinedFee. Represents a fee with a defined name and a fixed value.

Properties

Name Type Description Restrictions
accountingRules [GLAccountingRule] A list of accounting rules defined for this fee. If null, product default rules are selected. none
amortizationSettings PeriodIntervalSettings The settings for defining period intervals. none
amount number The amount of the fee none
amountCalculationFunctionName string Mambu Function name used for the fee calculation none
amountCalculationMethod string The amount from which the fee is calculated using percentageAmount none
applyDateMethod string Shows when a fee should be applied; to be used with monthly deposit fees none
creationDate string(date-time) Shows the creation date of the fee none
encodedKey string The encoded key of the predefined fee, auto generated, unique read-only
feeApplication (required) string The type of fee application when disbursement is applied none
id string The id of the fee none
lastModifiedDate string(date-time) Shows the last modified date of the fee none
name string The name of the fee none
percentageAmount number The amount of the fee in percents applied to percentSource none
state (required) string Indicates the state of the fee none
taxSettings FeeTaxSettings Tax settings for a specific Predefined fee that overrides the tax settings of Loan Product none
trigger (required) string Shows the event that will trigger a fee none

Enumerated Values

Property Value
amountCalculationMethod FLAT
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE
amountCalculationMethod REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE
amountCalculationMethod LOAN_AMOUNT_PERCENTAGE_NUMBER_OF_INSTALLMENTS
amountCalculationMethod FLAT_NUMBER_OF_INSTALLMENTS
amountCalculationMethod IOF_PERCENTAGE_OF_DISBURSED_AMOUNT
amountCalculationMethod IOF_PERCENTAGE_OF_INSTALLMENT_PRINCIPAL
amountCalculationMethod IOF_PERCENTAGE_OF_LATE_INSTALLMENT_PRINCIPAL
amountCalculationMethod MAMBU_FUNCTION
applyDateMethod MONTHLY_FROM_ACTIVATION
applyDateMethod FIRST_OF_EVERY_MONTH
feeApplication REQUIRED
feeApplication OPTIONAL
state ACTIVE
state INACTIVE
trigger MANUAL
trigger MANUAL_PLANNED
trigger DISBURSEMENT
trigger CAPITALIZED_DISBURSEMENT
trigger UPFRONT_DISBURSEMENT
trigger LATE_REPAYMENT
trigger PAYMENT_DUE
trigger PAYMENT_DUE_APPLIED_ON_DUE_DATES
trigger ARBITRARY
trigger IOF
trigger EARLY_REPAYMENT_CHARGE

PrepaymentConfiguration

{
  "applyInterestOnPrepaymentMethod": "AUTOMATIC",
  "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
  "ercFreeAllowance": 0,
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "principalPaidInstallmentStatus": "PARTIALLY_PAID"
}

The prepayment settings, holds all prepayment properties.

Properties

Name Type Description Restrictions
applyInterestOnPrepaymentMethod string Whether the interest on prepayment is applied manual or automatic. none
elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
ercFreeAllowance number ERC free allowance in percentage none
futurePaymentsAcceptance (required) string Shows whether the future payments are allowed or not for this product (repayment transactions with entry date set in the future) none
prepaymentAcceptance string Shows whether the pre-payments are allowed or not for this product. none
prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none

Enumerated Values

Property Value
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
prepaymentAcceptance ACCEPT_PREPAYMENTS
prepaymentAcceptance NO_PREPAYMENTS
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID

PrepaymentSettings

{
  "applyInterestOnPrepaymentMethod": "AUTOMATIC",
  "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "principalPaidInstallmentStatus": "PARTIALLY_PAID"
}

The prepayment settings, holds all prepayment properties.

Properties

Name Type Description Restrictions
applyInterestOnPrepaymentMethod string Apply interest on prepayment method copied from loan product on which this account is based. none
elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated. none
prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based. none
principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product). none

Enumerated Values

Property Value
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID

PreviewLoanAccountSchedule

{
  "disbursementDetails": {
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
  },
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "interestRate": 0,
    "interestSpread": 0
  },
  "loanAmount": 0,
  "plannedInstallmentFees": [
    {
      "amount": 0,
      "applyOnDate": "2016-09-06T13:37:50+03:00",
      "encodedKey": "string",
      "installmentKey": "string",
      "installmentNumber": 0,
      "predefinedFeeKey": "string"
    }
  ],
  "productTypeKey": "string",
  "scheduleSettings": {
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "paymentPlan": [
      {
        "amount": 0,
        "toInstallment": 0
      }
    ],
    "periodicPayment": 0,
    "principalRepaymentInterval": 0,
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS"
  },
  "topUpAmount": 0,
  "tranches": [
    {
      "amount": 0,
      "disbursementDetails": {
        "disbursementTransactionKey": "string",
        "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
      },
      "encodedKey": "string",
      "fees": [
        {
          "amount": 0,
          "encodedKey": "string",
          "percentage": 0,
          "predefinedFeeEncodedKey": "string"
        }
      ],
      "trancheNumber": 0
    }
  ]
}

Payload structure to preview loan account schedule.

Properties

Name Type Description Restrictions
disbursementDetails DisbursementDetailsForSchedulePreview The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees. none
interestCommission number The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enable none
interestSettings InterestSettingsForSchedulePreview The interest settings, holds all the properties regarding interests for the loan account. none
loanAmount (required) number The loan amount none
plannedInstallmentFees [PlannedInstallmentFee] A list with planned manual fees to be applied on the installments for schedule preview. none
productTypeKey (required) string The key to the type of product that this account is based on. none
scheduleSettings ScheduleSettingsForSchedulePreview The schedule settings, holds all schedule properties needed for schedule preview request. none
topUpAmount number The top up amount in case of a refinanced account none
tranches [LoanTranche] List of tranches to be considered for schedule preview. none

PreviewPayOffDueAmountsInAFutureDateInput

{
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the information to preview the pay off due amounts in a future date.

Properties

Name Type Description Restrictions
valueDate (required) string(date-time) The date until which the amounts due for pay off should be calculated none

PreviewPayOffDueAmountsInAFutureDateWrapper

{
  "earlyRepaymentCharge": 0,
  "feeBalance": 0,
  "interestBalance": 0,
  "penaltyBalance": 0,
  "principalBalance": 0,
  "totalBalance": 0
}

Represents a wrapper over a set of due amounts representing pay off due amounts in a future date

Properties

Name Type Description Restrictions
earlyRepaymentCharge number The early repayment charge balance due when pay off the account in a future date none
feeBalance number The fee balance due when pay off the account in a future date none
interestBalance number The interest balance due when pay off the account in a future date none
penaltyBalance number The penalty balance due when pay off the account in a future date none
principalBalance number The principal balance due when pay off the account in a future date none
totalBalance number The total balance due when pay off the account in a future date none

PreviewScheduleSettings

{
  "numberOfPreviewedInstalments": 0,
  "previewScheduleEnabled": true
}

Defines the Preview Schedule settings for revolving products

Properties

Name Type Description Restrictions
numberOfPreviewedInstalments integer(int32) Number of Previewed Instalments. none
previewScheduleEnabled boolean Preview Schedule status. none

PrincipalPaymentAccountSettings

{
  "amount": 0,
  "encodedKey": "string",
  "includeFeesInFloorAmount": true,
  "includeInterestInFloorAmount": true,
  "percentage": 0,
  "principalCeilingValue": 0,
  "principalFloorValue": 0,
  "principalPaymentMethod": "FLAT",
  "totalDueAmountFloor": 0,
  "totalDuePayment": "FLAT"
}

The principal payment account settings, holds the required information for the principal payment process of an account.

Properties

Name Type Description Restrictions
amount number Fixed amount for being used for the repayments principal due. none
encodedKey string The encoded key of the principal payment base settings, auto generated, unique. read-only
includeFeesInFloorAmount boolean Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
includeInterestInFloorAmount boolean Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
percentage number Percentage of principal amount used for the repayments principal due. none
principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
principalPaymentMethod string The method of principal payment for revolving credit. none
totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
totalDuePayment string The method of total due payment for revolving credit none

Enumerated Values

Property Value
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE

PrincipalPaymentConfiguration

{
  "amount": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "defaultPrincipalRepaymentInterval": 0,
  "includeFeesInFloorAmount": true,
  "percentage": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "principalCeilingValue": 0,
  "principalFloorValue": 0,
  "principalPaymentMethod": "FLAT",
  "totalDueAmountFloor": 0,
  "totalDuePayment": "FLAT"
}

Defines the principal payment settings constraints for the loans that will be created based on this product.

Properties

Name Type Description Restrictions
amount LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
defaultPrincipalRepaymentInterval integer(int32) How many repayments the principal has to be paid none
includeFeesInFloorAmount boolean If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
percentage LoanProductDecimalConstraintsConfiguration Used for keeping decimal constraints. none
principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
principalPaymentMethod string The method of principal payment for revolving credit none
totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
totalDuePayment string The method of total due payment for revolving credit none

Enumerated Values

Property Value
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE

PrincipalPaymentProductSettings

{
  "amount": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "defaultPrincipalRepaymentInterval": 0,
  "encodedKey": "string",
  "includeFeesInFloorAmount": true,
  "includeInterestInFloorAmount": true,
  "percentage": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  },
  "principalCeilingValue": 0,
  "principalFloorValue": 0,
  "principalPaymentMethod": "FLAT",
  "totalDueAmountFloor": 0,
  "totalDuePayment": "FLAT"
}

Defines the principal payment settings constraints for the loans that will be created based on this product.

Properties

Name Type Description Restrictions
amount AmountDecimalConstraints Decimal constraints, like min/max/default. none
defaultPrincipalRepaymentInterval integer(int32) How many repayments the principal has to be paid none
encodedKey string The encoded key of the settings, auto generated, unique read-only
includeFeesInFloorAmount boolean If true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account none
includeInterestInFloorAmount boolean If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account none
percentage DecimalConstraints Decimal constraints, like min/max/default. none
principalCeilingValue number The maximum principal due amount a repayment made with this settings can have none
principalFloorValue number The minimum principal due amount a repayment made with this settings can have none
principalPaymentMethod string The method of principal payment for revolving credit none
totalDueAmountFloor number The minimum total due amount a repayment made with this settings can have none
totalDuePayment string The method of total due payment for revolving credit none

Enumerated Values

Property Value
principalPaymentMethod FLAT
principalPaymentMethod OUTSTANDING_PRINCIPAL_PERCENTAGE
principalPaymentMethod PRINCIPAL_PERCENTAGE_LAST_DISB
principalPaymentMethod TOTAL_BALANCE_PERCENTAGE
principalPaymentMethod TOTAL_BALANCE_FLAT
principalPaymentMethod TOTAL_PRINCIPAL_PERCENTAGE
totalDuePayment FLAT
totalDuePayment OUTSTANDING_PRINCIPAL_PERCENTAGE
totalDuePayment PRINCIPAL_PERCENTAGE_LAST_DISB
totalDuePayment TOTAL_BALANCE_PERCENTAGE
totalDuePayment TOTAL_BALANCE_FLAT
totalDuePayment TOTAL_PRINCIPAL_PERCENTAGE

ProductAmortizationPeriod

{
  "defaultValue": 0,
  "maxValue": 0,
  "minValue": 0
}

It holds information about the loan product amortization period. The PMT is calculated as the loan would have [amortisationPeriod] instalments

Properties

Name Type Description Restrictions
defaultValue integer(int32) default value none
maxValue integer(int32) max value none
minValue integer(int32) min value none

ProductArrearsSettings

{
  "dateCalculationMethod": "ACCOUNT_FIRST_WENT_TO_ARREARS",
  "encodedKey": "string",
  "monthlyToleranceDay": 0,
  "nonWorkingDaysMethod": "INCLUDED",
  "toleranceCalculationMethod": "ARREARS_TOLERANCE_PERIOD",
  "toleranceFloorAmount": 0,
  "tolerancePercentageOfOutstandingPrincipal": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "tolerancePeriod": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  }
}

The product arrears settings, shows whether the non working days are taken in consideration or not when applying penalties/late fees or when setting an account into arrears

Properties

Name Type Description Restrictions
dateCalculationMethod string The arrears date calculation method. none
encodedKey string The encoded key of the arrears base settings, auto generated, unique. read-only
monthlyToleranceDay integer(int32) Defines the tolerance monthly date none
nonWorkingDaysMethod string Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears none
toleranceCalculationMethod string Defines the tolerance calculation method none
toleranceFloorAmount number The tolerance floor amount. none
tolerancePercentageOfOutstandingPrincipal DecimalInterval Decimal constraints, like min/max/default. none
tolerancePeriod IntegerIntervalConstraints Decimal integer, like min/max/default. none

Enumerated Values

Property Value
dateCalculationMethod ACCOUNT_FIRST_WENT_TO_ARREARS
dateCalculationMethod LAST_LATE_REPAYMENT
dateCalculationMethod ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD
nonWorkingDaysMethod INCLUDED
nonWorkingDaysMethod EXCLUDED
toleranceCalculationMethod ARREARS_TOLERANCE_PERIOD
toleranceCalculationMethod MONTHLY_ARREARS_TOLERANCE_DAY

ProductAvailabilitySettings

{
  "availableFor": [
    "INDIVIDUALS"
  ],
  "branchSettings": {
    "availableProductBranches": [
      "string"
    ],
    "forAllBranches": true
  }
}

Holds information about product availability.

Properties

Name Type Description Restrictions
availableFor [string] Holds the entities this product is available for. i.e Individuals none
branchSettings BranchSettings Holds information about branch availability for the product. none

ProductBranchConfiguration

{
  "allBranches": true,
  "branches": [
    "string"
  ]
}

Holds information about branch availability for the product.

Properties

Name Type Description Restrictions
allBranches boolean Indicates if this product should be available for all branches none
branches [string] Holds the ids of the branches this product should be available for. none

ProductInterestRateSettings

{
  "encodedKey": "string",
  "indexSourceKey": "string",
  "interestRate": {
    "defaultValue": 0,
    "maxValue": 0,
    "minValue": 0
  },
  "interestRateCeilingValue": 0,
  "interestRateFloorValue": 0,
  "interestRateReviewCount": 0,
  "interestRateReviewUnit": "DAYS",
  "interestRateSource": "FIXED_INTEREST_RATE"
}

Adjustable interest rates settings

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the interest rate settings, auto generated, unique read-only
indexSourceKey string Index rate source key. none
interestRate DecimalInterval Decimal constraints, like min/max/default. none
interestRateCeilingValue number Maximum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateFloorValue number Minimum value allowed for index based interest rate. Valid only for index interest rate. none
interestRateReviewCount integer(int32) Interest rate review frequency unit count. Valid only for index interest rate. none
interestRateReviewUnit string Interest rate review frequency measurement unit. Valid only for index interest rate. none
interestRateSource (required) string Interest calculation method: fixed or indexed(interest spread + active organization index interest rate) none

Enumerated Values

Property Value
interestRateReviewUnit DAYS
interestRateReviewUnit WEEKS
interestRateReviewUnit MONTHS
interestRateSource FIXED_INTEREST_RATE
interestRateSource INDEX_INTEREST_RATE

ProductInterestSettings

{
  "accrueLateInterest": true,
  "compoundingFrequency": "DAILY",
  "daysInYear": "ACTUAL_365_FIXED",
  "indexRateSettings": {
    "accrueInterestAfterMaturity": true,
    "allowNegativeInterestRate": true,
    "encodedKey": "string",
    "indexSourceKey": "string",
    "interestChargeFrequency": "ANNUALIZED",
    "interestChargeFrequencyCount": 0,
    "interestRate": {
      "defaultValue": 0,
      "maxValue": 0,
      "minValue": 0
    },
    "interestRateCeilingValue": 0,
    "interestRateFloorValue": 0,
    "interestRateReviewCount": 0,
    "interestRateReviewUnit": "DAYS",
    "interestRateSource": "FIXED_INTEREST_RATE",
    "interestRateTerms": "FIXED",
    "interestRateTiers": [
      {
        "encodedKey": "string",
        "endingBalance": 0,
        "interestRate": 0
      }
    ]
  },
  "interestApplicationDays": {
    "daysInMonth": [
      0
    ],
    "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
  },
  "interestApplicationMethod": "AFTER_DISBURSEMENT",
  "interestBalanceCalculationMethod": "ONLY_PRINCIPAL",
  "interestCalculationMethod": "FLAT",
  "interestRateChangePMTAdjustmentThreshold": {
    "method": "WORKING_DAYS",
    "numberOfDays": 0
  },
  "interestRateSettings": [
    {
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestRate": {
        "defaultValue": 0,
        "maxValue": 0,
        "minValue": 0
      },
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE"
    }
  ],
  "interestType": "SIMPLE_INTEREST",
  "scheduleInterestDaysCountMethod": "REPAYMENT_PERIODICITY"
}

The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product.

Properties

Name Type Description Restrictions
accrueLateInterest boolean Whether late interest should be accrued, applied and paid none
compoundingFrequency string The frequency on which the accrued interest will be added to the principal for interest calculation. It is used only for InterestType.COMPOUNDING_INTEREST none
daysInYear (required) string The days in year that should be used for loan calculations. none
indexRateSettings InterestProductSettings The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product. none
interestApplicationDays DaysInMonth Enumeration for days of month and method of handling shorter months. none
interestApplicationMethod string The interest application method. Represents the interest application method that determines whether the interest gets applied on the account's disbursement or on each repayment. none
interestBalanceCalculationMethod string The interest balance calculation method. Represents the option which determines the way the balance for the account's interest is computed. none
interestCalculationMethod (required) string The interest calculation method. Holds the type of interest calculation method. none
interestRateChangePMTAdjustmentThreshold InterestRateChangePMTAdjustmentThreshold Represents interest rate change threshold settings for loan accounts and loan products. none
interestRateSettings [ProductInterestRateSettings] Adjustable interest rates settings none
interestType string The possible values for how we compute and apply the interest none
scheduleInterestDaysCountMethod (required) string Shows whether all the installments should compute the interest based on the actual number of days or based on the defined repayment periodicity. none

Enumerated Values

Property Value
compoundingFrequency DAILY
daysInYear ACTUAL_365_FIXED
daysInYear ACTUAL_364
daysInYear ACTUAL_360
daysInYear ACTUAL_ACTUAL_ISDA
daysInYear E30_360
daysInYear BUS_252
daysInYear E30_42_365
interestApplicationMethod AFTER_DISBURSEMENT
interestApplicationMethod REPAYMENT_DUE_DATE
interestApplicationMethod FIXED_DAYS_OF_MONTH
interestBalanceCalculationMethod ONLY_PRINCIPAL
interestBalanceCalculationMethod PRINCIPAL_AND_INTEREST
interestCalculationMethod FLAT
interestCalculationMethod DECLINING_BALANCE
interestCalculationMethod DECLINING_BALANCE_DISCOUNTED
interestCalculationMethod EQUAL_INSTALLMENTS
interestType SIMPLE_INTEREST
interestType CAPITALIZED_INTEREST
interestType COMPOUNDING_INTEREST
scheduleInterestDaysCountMethod REPAYMENT_PERIODICITY
scheduleInterestDaysCountMethod ACTUAL_DAYS_COUNT

ProductPenaltySettings

{
  "loanPenaltyCalculationMethod": "NONE",
  "loanPenaltyGracePeriod": 0,
  "penaltyRate": {
    "defaultValue": 0,
    "encodedKey": "string",
    "maxValue": 0,
    "minValue": 0
  }
}

Defines the penalty settings for the product that will be used by the loan accounts based on this product

Properties

Name Type Description Restrictions
loanPenaltyCalculationMethod (required) string The penalty calculation method none
loanPenaltyGracePeriod integer(int32) Number of days to wait before applying the loan penalty amounts none
penaltyRate DecimalConstraints Decimal constraints, like min/max/default. none

Enumerated Values

Property Value
loanPenaltyCalculationMethod NONE
loanPenaltyCalculationMethod OVERDUE_BALANCE
loanPenaltyCalculationMethod OVERDUE_BALANCE_AND_INTEREST
loanPenaltyCalculationMethod OUTSTANDING_PRINCIPAL

ProductPrepaymentSettings

{
  "applyInterestOnPrepaymentMethod": "AUTOMATIC",
  "elementsRecalculationMethod": "PRINCIPAL_EXPECTED_FIXED",
  "ercFreeAllowance": 0,
  "futurePaymentsAcceptance": "NO_FUTURE_PAYMENTS",
  "prepaymentAcceptance": "ACCEPT_PREPAYMENTS",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "principalPaidInstallmentStatus": "PARTIALLY_PAID"
}

Defines the prepayment settings for the product

Properties

Name Type Description Restrictions
applyInterestOnPrepaymentMethod string Whether the interest on prepayment is applied manual or automatic. none
elementsRecalculationMethod string The elements recalculation method, indicates how the declining balance with equal installments repayments are recalculated none
ercFreeAllowance number ERC free allowance in percentage none
futurePaymentsAcceptance (required) string Shows whether the future payments are allowed or not for this product (repayment transactions with entry date set in the future) none
prepaymentAcceptance string Shows whether the pre-payments are allowed or not for this product. none
prepaymentRecalculationMethod string Prepayment recalculation method copied from the loan product on which this account is based none
principalPaidInstallmentStatus string Installment status for the case when principal is paid off (copied from loan product) none

Enumerated Values

Property Value
applyInterestOnPrepaymentMethod AUTOMATIC
applyInterestOnPrepaymentMethod MANUAL
elementsRecalculationMethod PRINCIPAL_EXPECTED_FIXED
elementsRecalculationMethod TOTAL_EXPECTED_FIXED
futurePaymentsAcceptance NO_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_FUTURE_PAYMENTS
futurePaymentsAcceptance ACCEPT_OVERPAYMENTS
prepaymentAcceptance ACCEPT_PREPAYMENTS
prepaymentAcceptance NO_PREPAYMENTS
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW
principalPaidInstallmentStatus PARTIALLY_PAID
principalPaidInstallmentStatus PAID
principalPaidInstallmentStatus ORIGINAL_TOTAL_EXPECTED_PAID

ProductRedrawSettings

{
  "allowRedraw": true
}

The redraw settings for the product.

Properties

Name Type Description Restrictions
allowRedraw (required) boolean Indicates whether the product support redraw (prepayments which are stored at loan account level as a Redrawable balance) none

RedrawRepaymentTransactionInputDTO

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type REDRAW_REPAYMENT

Properties

Name Type Description Restrictions
amount number The amount of the redraw repayment none
bookingDate string(date-time) The booking date of the repayment (as Organization Time) none
notes string Extra notes about the redraw repayment transaction. Notes can have at most 255 characters in length. none
valueDate string(date-time) The entry date of the repayment (as Organization Time) none

RefinanceDisbursementDetails

{
  "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
  "fees": [
    {
      "amount": 0,
      "encodedKey": "string",
      "percentage": 0,
      "predefinedFeeEncodedKey": "string"
    }
  ],
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
}

The disbursement details, allowed on the loan account refinance

Properties

Name Type Description Restrictions
expectedDisbursementDate string(date-time) The date of the expected disbursement none
fees [CustomPredefinedFee] List of fees that should be applied at the disbursement time. none
firstRepaymentDate (required) string(date-time) The date of the expected first payment none

RefinanceLoanAccount

{
  "accountArrearsSettings": {
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "disbursementDetails": {
    "expectedDisbursementDate": "2016-09-06T13:37:50+03:00",
    "fees": [
      {
        "amount": 0,
        "encodedKey": "string",
        "percentage": 0,
        "predefinedFeeEncodedKey": "string"
      }
    ],
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
  },
  "encodedKey": "string",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "interestRate": 0,
    "interestSpread": 0
  },
  "loanName": "string",
  "notes": "string",
  "penaltySettings": {
    "penaltyRate": 0
  },
  "principalPaymentSettings": {
    "amount": 0,
    "percentage": 0
  },
  "productTypeKey": "string",
  "scheduleSettings": {
    "billingCycleDays": {
      "days": [
        0
      ]
    },
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS"
  }
}

The new loan account settings, allowed on the loan account refinance

Properties

Name Type Description Restrictions
accountArrearsSettings RestructureAccountArrearsSettings The arrears settings, allowed on the loan account restructure none
disbursementDetails (required) RefinanceDisbursementDetails The disbursement details, allowed on the loan account refinance none
encodedKey string The encoded key of the entity, generated, globally unique read-only
guarantors [GuarantorFullDetails] The guarantees associated with the refinanced loan account none
id string Id of the new loan account. none
interestSettings RestructureInterestSettings The interest settings, allowed on the loan account restructure none
loanName string The name of the new loan account. none
notes string The loan account notes none
penaltySettings RestructurePenaltySettings The penalty settings, allowed on the loan account restructure. none
principalPaymentSettings RestructurePrincipalPaymentAccountSettings The principal payment account settings, allowed on the loan account restructure none
productTypeKey (required) string The key of the loan product that this account is based on none
scheduleSettings RestructureScheduleSettings The schedule settings, allowed on the loan account restructure none

RefinanceLoanAccountAction

{
  "loanAccount": {
    "accountArrearsSettings": {
      "tolerancePercentageOfOutstandingPrincipal": 15,
      "tolerancePeriod": 3
    },
    "disbursementDetails": {
      "expectedDisbursementDate": "2021-12-30T13:37:50+03:00",
      "fees": [
        {
          "amount": 10,
          "predefinedFeeEncodedKey": "def456"
        }
      ],
      "firstRepaymentDate": "2022-01-31T13:37:50+03:00"
    },
    "guarantors": [
      {
        "amount": 20000,
        "assetName": "Maserati",
        "guarantorKey": "ghi789",
        "guarantorType": "ASSET"
      }
    ],
    "id": "LOAN-1234",
    "interestSettings": {
      "interestRate": 1.5,
      "interestSpread": 0
    },
    "loanName": "home improvement loan",
    "notes": "a loan to create a new wing for the mansion",
    "penaltySettings": {
      "penaltyRate": 0
    },
    "principalPaymentSettings": {
      "amount": 0,
      "percentage": 0
    },
    "productTypeKey": "abc123",
    "scheduleSettings": {
      "billingCycleDays": {
        "days": [
          30
        ]
      },
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 3,
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "repaymentInstallments": 24,
      "repaymentPeriodCount": 30,
      "repaymentPeriodUnit": "DAYS"
    }
  },
  "topUpAmount": 10000,
  "writeOffAmounts": {
    "fee": 0,
    "interest": 0,
    "penalty": 0
  }
}

The request structure for performing the refinance loan account action

Properties

Name Type Description Restrictions
keepSameAccountId boolean Keep same account ID option none
loanAccount (required) RefinanceLoanAccount The new loan account settings, allowed on the loan account refinance none
topUpAmount (required) number The top-up amount none
writeOffAmounts RefinanceWriteOffAmounts The write-off amounts, allowed on the loan account refinance none

RefinanceWriteOffAmounts

{
  "fee": 0,
  "interest": 0,
  "penalty": 0
}

The write-off amounts, allowed on the loan account refinance

Properties

Name Type Description Restrictions
fee number Fee write-off amount none
interest number Interest write-off amount none
penalty number Penalty write-off amount none

RemittanceInformation

{
  "structured": {
    "creditorReferenceInformation": {
      "reference": "string",
      "referenceIssuer": "string",
      "referenceType": "string"
    }
  },
  "unstructured": "string"
}

The information specifying the payment items that are intended to settle

Properties

Name Type Description Restrictions
structured Structured The information specifying the payment items that are intended to settle none
unstructured string Information supplied to match the items of the payment in an unstructured form none

RemoveCreditArrangementAccountInput

{
  "accountId": "string",
  "accountType": "LOAN"
}

Represents the account to remove from the credit arrangement.

Properties

Name Type Description Restrictions
accountId (required) string The encoded key of the account. none
accountType (required) string The type of the account. none

Enumerated Values

Property Value
accountType LOAN
accountType DEPOSIT

ReopenDepositAction

{
  "notes": "string"
}

Reopen a deposit account

Properties

Name Type Description Restrictions
notes string The notes or description attached to this object. none

RepaymentLoanTransactionInput

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "customPaymentAmounts": [
    {
      "amount": 0,
      "customPaymentAmountType": "PRINCIPAL",
      "predefinedFeeKey": "string",
      "taxOnAmount": 0
    }
  ],
  "externalId": "string",
  "installmentEncodedKey": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "prepaymentRecalculationMethod": "NO_RECALCULATION",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type REPAYMENT

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount (required) number The amount of the repayment none
bookingDate string(date-time) The booking date of the repayment (as Organization Time) none
customPaymentAmounts [CustomPaymentAmount] The list of custom amounts of the repayment none
externalId string The external id of the repayment transaction, customizable, unique none
installmentEncodedKey string The encoded key of the schedule installment to which this repayment is associated none
notes string Extra notes about the repayment transaction. Notes can have at most 255 characters in length. none
originalCurrencyCode string The currency code for the repayment transaction none
prepaymentRecalculationMethod string The prepayment recalculation method of the repayment none
transactionDetails LoanTransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
valueDate string(date-time) The entry date of the repayment (as Organization Time) none

Enumerated Values

Property Value
prepaymentRecalculationMethod NO_RECALCULATION
prepaymentRecalculationMethod RESCHEDULE_REMAINING_REPAYMENTS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
prepaymentRecalculationMethod RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
prepaymentRecalculationMethod REDUCE_AMOUNT_PER_INSTALLMENT
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS
prepaymentRecalculationMethod REDUCE_NUMBER_OF_INSTALLMENTS_NEW

RescheduleDisbursementDetails

{
  "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
}

The disbursement details, allowed on the loan account restructure

Properties

Name Type Description Restrictions
firstRepaymentDate (required) string(date-time) The date of the expected first payment none

RescheduleLoanAccount

{
  "accountArrearsSettings": {
    "tolerancePercentageOfOutstandingPrincipal": 0,
    "tolerancePeriod": 0
  },
  "disbursementDetails": {
    "firstRepaymentDate": "2016-09-06T13:37:50+03:00"
  },
  "encodedKey": "string",
  "guarantors": [
    {
      "_Guarantor_Default_Guarantors": {
        "Example_Checkbox_Guarantors": "TRUE",
        "Example_Free_Text_Guarantors": "string",
        "Example_Number_Field_Guarantors": "string",
        "Example_Select_Field_Guarantors": "Option 1"
      },
      "amount": 0,
      "assetName": "string",
      "depositAccountKey": "string",
      "encodedKey": "string",
      "guarantorKey": "string",
      "guarantorType": "CLIENT"
    }
  ],
  "id": "string",
  "interestCommission": 0,
  "interestSettings": {
    "accountInterestRateSettings": [
      {
        "encodedKey": "string",
        "indexSourceKey": "string",
        "interestRate": 0,
        "interestRateCeilingValue": 0,
        "interestRateFloorValue": 0,
        "interestRateReviewCount": 0,
        "interestRateReviewUnit": "DAYS",
        "interestRateSource": "FIXED_INTEREST_RATE",
        "interestSpread": 0,
        "validFrom": "2016-09-06T13:37:50+03:00"
      }
    ],
    "interestRate": 0,
    "interestSpread": 0
  },
  "loanName": "string",
  "notes": "string",
  "penaltySettings": {
    "penaltyRate": 0
  },
  "principalPaymentSettings": {
    "amount": 0,
    "percentage": 0
  },
  "productTypeKey": "string",
  "scheduleSettings": {
    "billingCycleDays": {
      "days": [
        0
      ]
    },
    "fixedDaysOfMonth": [
      0
    ],
    "gracePeriod": 0,
    "periodicPayment": 0,
    "previewSchedule": {
      "numberOfPreviewedInstalments": 0
    },
    "repaymentInstallments": 0,
    "repaymentPeriodCount": 0,
    "repaymentPeriodUnit": "DAYS"
  }
}

The new loan account settings, allowed on the loan account reschedule

Properties

Name Type Description Restrictions
accountArrearsSettings RestructureAccountArrearsSettings The arrears settings, allowed on the loan account restructure none
disbursementDetails (required) RescheduleDisbursementDetails The disbursement details, allowed on the loan account restructure none
encodedKey string The encoded key of the entity, generated, globally unique read-only
guarantors [GuarantorFullDetails] The guarantees associated with the rescheduled loan account none
id string Id of the new loan account. none
interestCommission number The interest commission none
interestSettings RestructureInterestSettings The interest settings, allowed on the loan account restructure none
loanName string The name of the new loan account. none
notes string Notes for the rescheduled loan account none
penaltySettings RestructurePenaltySettings The penalty settings, allowed on the loan account restructure. none
principalPaymentSettings RestructurePrincipalPaymentAccountSettings The principal payment account settings, allowed on the loan account restructure none
productTypeKey (required) string The key of the loan product that this account is based on none
scheduleSettings RestructureScheduleSettings The schedule settings, allowed on the loan account restructure none

RescheduleLoanAccountAction

{
  "loanAccount": {
    "accountArrearsSettings": {
      "tolerancePercentageOfOutstandingPrincipal": 15,
      "tolerancePeriod": 3
    },
    "disbursementDetails": {
      "firstRepaymentDate": "2021-12-30T13:37:50+03:00"
    },
    "guarantors": [
      {
        "amount": 5000,
        "assetName": "Tesla car",
        "guarantorType": "ASSET"
      }
    ],
    "id": "LOAN-abc123",
    "interestCommission": 1.5,
    "interestSettings": {
      "interestRate": 7,
      "interestSpread": 0.75
    },
    "loanName": "Business Loan",
    "notes": "A loan for expanding the business",
    "penaltySettings": {
      "penaltyRate": 0
    },
    "principalPaymentSettings": {
      "amount": 0,
      "percentage": 0
    },
    "productTypeKey": "def456",
    "scheduleSettings": {
      "billingCycleDays": {
        "days": [
          30
        ]
      },
      "fixedDaysOfMonth": [
        0
      ],
      "gracePeriod": 0,
      "periodicPayment": 0,
      "previewSchedule": {
        "numberOfPreviewedInstalments": 0
      },
      "repaymentInstallments": 0,
      "repaymentPeriodCount": 0,
      "repaymentPeriodUnit": "DAYS"
    }
  },
  "writeOffAmounts": {
    "fee": 0,
    "interest": 0,
    "penalty": 0,
    "principal": 0
  }
}

The request payload for performing a reschedule loan account action

Properties

Name Type Description Restrictions
keepSameAccountId boolean Keep same account ID option none
loanAccount (required) RescheduleLoanAccount The new loan account settings, allowed on the loan account reschedule none
writeOffAmounts RescheduleWriteOffAmounts The write-off amounts, allowed on the loan account reschedule none

RescheduleWriteOffAmounts

{
  "fee": 0,
  "interest": 0,
  "penalty": 0,
  "principal": 0
}

The write-off amounts, allowed on the loan account reschedule

Properties

Name Type Description Restrictions
fee number Fee write-off amount none
interest number Interest write-off amount none
penalty number Penalty write-off amount none
principal number Principal write-off amount none

RestError

{
  "errorCode": 0,
  "errorReason": "SUCCESS",
  "errorSource": "string"
}

Errors which can be generated by malformed requests or requests which do not pass validation. For more information on each error, see API Responses and Error Codes

Properties

Name Type Description Restrictions
errorCode integer(int32) none none
errorReason string none none
errorSource string none none

Enumerated Values

Property Value
errorReason SUCCESS
errorReason INVALID_BASIC_AUTHORIZATION
errorReason INVALID_CREDENTIALS
errorReason INVALID_API_OPERATION
errorReason INVALID_PARAMETERS
errorReason METHOD_NOT_IMPLEMENTED
errorReason INTERNAL_ERROR
errorReason API_NOT_AUTHORIZED
errorReason USER_TRANSACTION_LIMIT_EXCEEDED
errorReason API_CONFIGURATION_ERROR
errorReason INVALID_TENANT_ID
errorReason INVALID_PAGINATION_OFFSET_VALUE
errorReason OUT_OF_BOUNDS_PAGINATION_OFFSET_VALUE
errorReason INVALID_PAGINATION_LIMIT_VALUE
errorReason OUT_OF_BOUNDS_PAGINATION_LIMIT_VALUE
errorReason INVALID_PERMISSIONS
errorReason INVALID_IP_ADDRESS
errorReason INACTIVE_USER
errorReason NO_API_ACCESS
errorReason FEATURE_DISABLED
errorReason MAX_FILE_SIZE_EXCEEDED
errorReason MAX_FILENAME_LENGTH_EXCEEDED
errorReason UNSUPPORTED_CHARACTER_ENCODING
errorReason INVALID_API_PROTOCOL
errorReason EXCESSIVE_INVALID_REQUESTS
errorReason INCONSISTENT_IDENTIFIER_WITH_JSON
errorReason INVALID_JSON_SYNTAX
errorReason PARAMETER_NOT_ALLOWED
errorReason START_DATE_AFTER_END_DATE
errorReason OBJECT_NOT_FOUND
errorReason MISSING_ENTITY_JSON
errorReason MISSING_REQUIRED_PARAMETER
errorReason READ_ONLY_MODE
errorReason UNSUPPORTED_PAGINATION
errorReason NOT_AVAILABLE_FOR_API_V1
errorReason BLOCKING_OPERATION_IN_PROGRESS
errorReason QUERY_TIMEOUT_EXCEPTION
errorReason OUT_OF_BOUNDS_PAGINATION_OFFSET_AND_LIMIT_PAIR
errorReason NON_REVERSIBLE_WRITE_OFF
errorReason NON_WEEKLY_LOAN_REPAYMENTS
errorReason INVALID_LOAN_ACCOUNT_ID
errorReason INVALID_AMOUNT
errorReason INVALID_DATE
errorReason INVALID_NOTES
errorReason INVALID_TRANSACTION_TYPE_ID
errorReason INVALID_ACCOUNT_STATE
errorReason INVALID_FEE
errorReason LOAN_PRODUCT_MISMATCH
errorReason INVALID_FIELD_FOR_TRANSACTION_TYPE
errorReason INACTIVE_TRANSACTION_TYPE
errorReason EXCESS_REPAYMENT_ERROR
errorReason TRANSACTION_LOGGED_AFTER_NOT_DISBURSED_TRANCHE
errorReason UNDEFINED_ACCOUNT_FOR_FINANCIAL_RESOURCE_ERROR
errorReason INVALID_ACCOUNT_FOR_JOURNAL_ENTRY_ERROR
errorReason MISSING_LOAN_ID
errorReason MAXIMUM_EXPOSURE_EXCEEDED
errorReason INVALID_STATE_TRANSITION
errorReason NUMBER_OF_LOANS_EXCEEDED
errorReason INVALID_FIRST_REPAYMENT_DUE_DATE
errorReason INVALID_REPAYMENT_DUE_DAY
errorReason INVALID_INTEREST_RATE
errorReason INVALID_INSTALLMENTS
errorReason MISSING_LINKED_ACCOUNT
errorReason PREPAYMENT_NOT_ALLOWED_ERROR
errorReason REPAYMENT_DATE_IN_THE_FUTURE_ERROR
errorReason INVALID_DISBURSEMENT_DATE
errorReason ILLEGAL_LOAN_PARAMETERS_MODIFICATION
errorReason ORIGINAL_ACCOUNT_HAS_FUNDS
errorReason INVALID_ACCOUNT_STATE_FOR_REPAYMENTS
errorReason DISBURSEMENT_FEES_EXCEED_LOAN_AMOUNT
errorReason INTEREST_CANNOT_BE_APPLIED
errorReason ENTRY_DATE_BEFORE_OTHER_TRANSACTION
errorReason INCONSISTENT_SCHEDULE_PRINCIPAL_DUE_WITH_LOAN_AMOUNT
errorReason ACCOUNT_HAS_NO_ACCRUED_INTEREST
errorReason INTEREST_ALREADY_APPLIED_ON_DISBURSEMENT_ACCOUNT
errorReason INCONSISTENT_WITH_FIXED_DAYS_OF_MONTH
errorReason NEGATIVE_PRINCIPAL_FOR_INSTALLMENT
errorReason INVALID_TAX_RATE
errorReason INSUFFICIENT_GUARANTEES
errorReason MISSING_REPAYMENT_PERIOD_COUNT
errorReason MISSING_REPAYMENT_INTERVAL
errorReason FUTURE_PAYMENT_NOT_ALLOWED_ERROR
errorReason DISBURSEMENT_WITH_ZERO_LOAN_AMOUNT_NOT_ALLOWED
errorReason MINIMUM_ARREARS_DAYS_NOT_REACHED
errorReason ACCOUNT_ALREADY_UNLOCKED
errorReason LOAN_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING
errorReason RESCHEDULED_LOAN
errorReason REFINANCED_LOAN
errorReason INVALID_PRODUCT_WITH_FUNDING_SOURCE_DISABLED
errorReason INVALID_ID
errorReason FAILED_TO_GENERATE_IDENTIFIER
errorReason INCONSISTENT_ACCOUNT_ID_WITH_ACCOUNT_HOLDER_TYPE
errorReason INVALID_ASSET_NAME
errorReason GUARANTOR_KEY_NOT_ALLOWED
errorReason GUARANTOR_SAVINGS_KEY_NOT_ALLOWED
errorReason INVALID_GUARANTOR_KEY
errorReason INVALID_SAVINGS_ACCOUNT_KEY
errorReason INVALID_GUARANTOR_STATE
errorReason DUPLICATED_GUARANTOR_WITHOUT_SAVINGS_ACCOUNT
errorReason DUPLICATED_SAVINGS_ACCOUNT
errorReason INSUFFICIENT_SAVINGS_ACCOUNT_BALANCE
errorReason INVALID_SAVINGS_ACCOUNT_STATE
errorReason DUPLICATED_ASSET
errorReason GUARANTOR_ASSET_NAME_NOT_ALLOWED
errorReason TRANSACTION_NOT_FOUND
errorReason INVALID_TRANSACTION_TYPE
errorReason UNREVERSED_TRANSACTION_LOGGED_AFTER_CURRENT_ONE
errorReason INVALID_GUARANTOR_PERMISSION
errorReason INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_ACCOUNTS
errorReason MISSING_PENALTY_RATE
errorReason INVALID_REPAYMENT_NUMBER
errorReason MISSING_REPAYMENT_NUMBER
errorReason INVALID_REPAYMENT_STATE
errorReason CENTRE_MEETING_DAY_IN_NON_WORKING_DAY
errorReason ARBITRARY_FEE_NOT_ALLOWED
errorReason INVALID_REPAYMENT_ID
errorReason ACCOUNT_BALANCE_OUTSIDE_CONSTRAINTS
errorReason EDITING_DATE_NOT_IN_CENTER_MEETING_DAY
errorReason CUSTOM_MADE_INSTALLMENT_ADDED_BEFORE_PAID_INSTALLMENT
errorReason EDITING_REPAYMENTS_NOT_ALLOWED
errorReason INTEREST_BALANCE_CANT_BE_EDITED_AT_SPECIFIED_DATE
errorReason INVALID_DUE_DATE
errorReason NEGATIVE_BALANCE
errorReason NON_POSITIVE_TOTAL_BALANCE
errorReason PARAMS_INCONSISTENT_WITH_PRODUCT_RULES
errorReason INVALID_GRACE_PERIOD
errorReason INVALID_ANTICIPATED_DISBURSEMENT
errorReason INVALID_REPAYMENT_FREQUENCY
errorReason INVALID_PRINCIPAL_REPAYMENT_INVERVAL
errorReason INVALID_PRODUCT_STATE
errorReason BALLOON_PAYMENTS_NOT_ALLOWED_BY_PRODUCT
errorReason MANDATORY_PERIODIC_PAYMENT
errorReason PERIODIC_PAYMENT_GREATER_THAN_LOAN_AMOUNT
errorReason MISSING_INTEREST_RATE_SPREAD_ON_PRODUCT
errorReason FIRST_REPAYMENT_DATE_BEFORE_EXPECTED_DISBURSEMENT_DATE
errorReason INVALID_PENALTY_RATE
errorReason CANNOT_EDIT_SOLIDARITY_LOANS
errorReason INVALID_INTEREST_SPREAD
errorReason INVALID_PERIODIC_PAYMENT
errorReason UNKNOWN_LOAN_ACCOUNT_ERROR
errorReason MISSING_GROUP_ID
errorReason INVALID_GROUP_ID
errorReason INVALID_FULL_DETAILS
errorReason INVALID_INDICATORS
errorReason GROUP_NOT_FOUND
errorReason INVALID_PARAMATERS_FOR_PRODUCT
errorReason INVALID_USER_WHO_APPROVED_THE_LOAN_CANNOT_DISBURSE_IT
errorReason FOUR_EYES_PRINCIPLE_DISABLED_ON_GENERAL_SETTINGS
errorReason USER_WHO_CREATED_OR_EDITED_THE_LOAN_ACCOUNT_CANNOT_APPROVE_IT
errorReason INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_PARAMETER
errorReason ADJUST_INTEREST_FOR_THE_FIRST_INSTALLMENT_WHEN_PERIOD_IS_DIFFERENT_THAN_THE_REPAYMENT_PERIOD_FEATURE_TOGGLE_IS_DISABLED
errorReason INVALID_GROUP_SIZE
errorReason MULTIPLE_GROUP_MEMBERSHIP
errorReason INVALID_GROUP_ROLE_NAME_KEY
errorReason GROUP_ROLE_CLIENT_NOT_GROUP_MEMBER
errorReason TRANSACTION_ALREADY_REVERSED
errorReason INVALID_TRANSACTION_ID
errorReason TRANSACTION_ID_AND_ACCOUNT_MISMATCH
errorReason TRANSACTION_LOGGED_FOR_CLOSED_TILL
errorReason TILL_BALANCE_ABOVE_MAX
errorReason TILL_BALANCE_UNDER_MIN
errorReason TRANSACTION_MADE_FROM_A_TRANSFER
errorReason TRANSACTION_MADE_FROM_A_DISBURSEMENT
errorReason DEPOSIT_ACCOUNT_HAS_MATURITY_DATE_SET
errorReason BALANCE_IS_NULL
errorReason GUARANTOR_NOT_ALLOWED_BY_PRODUCT
errorReason COLLATERAL_NOT_ALLOWED_BY_PRODUCT
errorReason CANNOT_CHANGE_TILL_BALANCE
errorReason ASYNC_TRANSACTION_IN_PROGRESS
errorReason UNEXPECTED_ASYNC_TRANSACTION_ERROR
errorReason DEDUCTED_FEES_TOTAL_MORE_THAN_LOAN_AMOUNT
errorReason NO_CAPITALIZED_DISBURSEMENT_FESS_WHEN_ZERO_LOAN_AMOUNT
errorReason DISBURSE_TO_SAVINGS_NOT_AVALAIBLE_WITH_INVESTOR_FUNDS
errorReason TRANSACTION_CHANNEL_IS_MANDATORY
errorReason TRANSACTION_CHANNEL_NOT_AVAILABLE_WHEN_DISBURSE_TO_SAVINGS
errorReason GUARANTOR_CANNOT_BE_DELETED
errorReason CUSTOM_AMOUNT_IS_MANDATORY
errorReason INVALID_TRANSACTION_CHANNEL
errorReason MISSING_FEE
errorReason INCONSISTENT_ACCOUNT_FEE_WITH_PRODUCT_FEE
errorReason FULL_TERM_FEE_CANNOT_BE_AMORTIZED_DUE_TO_APPLICATION_DATE
errorReason CANNOT_USE_EFFECTIVE_INTEREST_RATE_FEE_WITHOUT_INTEREST_RATE_VALUE
errorReason TRANSACTION_DETAILS_NOT_AVAILABLE_FOR_PRODUCT
errorReason FEES_NOT_AVAILABLE_FOR_PRODUCT
errorReason EXPECTED_DISBURSEMENT_DATE_NOT_AVAILABLE_FOR_PRODUCT
errorReason FIRST_REPAYMENT_DATE_NOT_AVAILABLE_FOR_PRODUCT
errorReason LOAN_PRODUCT_PREPAYMENT_OPTIONS_MISMATCH
errorReason INVALID_LAST_REPAYMENT_DUE_DATE_CHANGE_BECAUSE_ACCOUNT_HAS_FULL_TERM_FEE_APPLIED
errorReason INVALID_HOLIDAY_SETUP
errorReason REDRAW_DISABLED
errorReason INSUFFICIENT_REDRAW_BALANCE
errorReason INVALID_FEES_DETAILS
errorReason PRODUCT_DOES_NOT_ALLOW_WITHDRAWAL_TRANSACTIONS
errorReason EXCESS_PAYMENT_MADE_AMOUNT
errorReason PRODUCT_DOES_NOT_ALLOW_PAYMENT_MADE_TRANSACTIONS
errorReason MISSING_FEE_KEY
errorReason INVALID_FEE_KEY
errorReason INCONSISTENT_FEE_AMOUNT_WITH_PRODUCT_FEE
errorReason FEE_AMOUNT_MUST_BE_STRICTLY_POSITIVE
errorReason REQUIRED_FEE_MISSING
errorReason FEE_NOT_ACTIVE
errorReason FEE_NOT_ALLOWED
errorReason INCONSISTENT_FIRST_REPAYMENT_DATE_WITH_PRODUCT_OFFSET
errorReason MISSING_ORIGINAL_TRANSACTION_ID
errorReason NEGATIVE_LOAN_BALANCE
errorReason REPAYMENT_WAS_FULLY_PAID
errorReason REPAYMENT_HAS_INTEREST_APPLIED
errorReason DUE_DATE_BEFORE_ACCOUNTING_CLOSURE
errorReason DUE_DATE_BEFORE_LOGGED_TRANSACTION
errorReason INVALID_PARENT_ACCOUNT_KEY
errorReason AUTOMATICALLY_ADDED_INSTALLEMENTS_ARE_NOT_EDITABLE
errorReason PURE_GRACE_INSTALLMENT_ARE_NOT_EDITABLE
errorReason CUSTOM_PAYMENT_NOT_ALLOWED_BY_PRODUCT
errorReason SAME_CUSTOM_PAYMENT_AMOUNT_TYPE_USED_MULTIPLE_TIMES
errorReason CUSTOM_PAYMENT_AMOUNT_DIFFERENT_THAN_TOTAL_PAYMENT_AMOUNT
errorReason ARREARS_TOLERANCE_PERIOD_OUTSIDE_CONSTRAINTS
errorReason NEGATIVE_ARREARS_TOLERANCE_PERIOD
errorReason REQUIRED_ARREARS_TOLERANCE_PERIOD_MISSING
errorReason DUE_DATE_BEFORE_FEE_AMORTIZATION
errorReason MAX_CLIENT_LIMIT_REACHED
errorReason PENALTY_METHOD_NOT_ALLOWED_BY_PRODUCT
errorReason CANNOT_REVERSE_TECHNICAL_OVERDRAFT
errorReason INSUFFICIENT_BALANCE
errorReason INVALID_PRODUCT_TYPE
errorReason DUPLICATE_DISBURSEMENT_FEE
errorReason NO_DUE_AMOUNT_TO_BE_PAID
errorReason UNKNOWN_GROUP_ERROR
errorReason MISSING_CLIENT_ID
errorReason INVALID_CLIENT_ID
errorReason INVALID_CLIENT_KEY
errorReason INVALID_PICTURE_KEY
errorReason INVALID_SIGNATURE_KEY
errorReason INVALID_CLIENT_STATE
errorReason INVALID_CLIENT_ROLE_KEY
errorReason INCONSISTENT_CLIENT_ROLE_WITH_CLIENT_TYPE
errorReason INVALID_DEPENDENT_CUSTOM_FIELD_VALUE
errorReason INVALID_BIRTH_DATE
errorReason DUPLICATE_CLIENT
errorReason INVALID_CLIENT_STATE_TYPE
errorReason INVALID_CLIENT_STATE_TRANSITION
errorReason CLIENT_IS_MEMBER_OF_A_GROUP
errorReason CLIENT_IS_GUARANTOR
errorReason CLIENT_HAS_ACCOUNTS
errorReason CLIENT_ID_ALREADY_IN_USE
errorReason GROUP_ID_ALREADY_IN_USE
errorReason GROUP_HAS_ACCOUNTS
errorReason MISSING_CLIENT_BASIC_DETAILS
errorReason EMAIL_ADDRESS_SIZE_INVALID
errorReason UNKNOWN_CLIENT_ERROR
errorReason INVALID_SAVINGS_ACCOUNT_ID
errorReason BALANCE_BELOW_ZERO
errorReason MISSING_SAVINGS_ID
errorReason BACKDATE_BEFORE_ACTIVATION
errorReason BACKDATE_BEFORE_OTHER_OPERATION
errorReason BACKDATE_SET_IN_THE_FUTURE
errorReason INVALID_DEPOSIT_AMOUNT
errorReason INVALID_DEPOSIT_ACCOUNT_STATE
errorReason LOCKED_SAVINGS_AMOUNT
errorReason SAVINGS_PRODUCT_MISMATCH
errorReason SAVINGS_ACCOUNT_INVALID
errorReason ACCOUNT_ID_ALREADY_IN_USE
errorReason PRODUCT_DOESNT_ALLOW_WITHHOLDING_TAXES
errorReason INVALID_WITHHOLDING_TAX_SOURCE_TYPE
errorReason INVALID_INTEREST_CHARGE_FREQUENCY
errorReason INVALID_INTEREST_CHARGE_FREQUENCY_COUNT
errorReason INVALID_SAVINGS_ACCOUNT_STATE_TRANSITION
errorReason MAXIMUM_WITHDRAWAL_AMOUNT_EXCEEDED
errorReason MAXIMUM_OVERDRAFT_LIMIT_EXCEEDED
errorReason OVERDRAFT_NOT_ALLOWED
errorReason MISSING_INTEREST_RATE_FROM_SAVINGS_PRODUCT
errorReason POSITIVE_SECURED_AMOUNT
errorReason MINIMUM_OPENING_BALANCE_ACHIEVED
errorReason ACCOUNT_HAS_TRANSACTIONS
errorReason INVALID_OVERDRAFT_INTEREST_CHARGE_FREQUENCY
errorReason INVALID_OVERDRAFT_INTEREST_CHARGE_FREQUENCY_COUNT
errorReason RECOMMENDED_DEPOSIT_AMOUNT_INVALID
errorReason MISSING_TYPE_PARAMETER
errorReason INVALID_DEPOSIT_ACCOUNT_ID
errorReason PRODUCT_SPECIFIES_OVERDRAFT_ALLOWED
errorReason PRODUCT_SPECIFIES_OVERDRAFT_NOT_ALLOWED
errorReason CURRENT_ACCOUNT_PRODUCT_DISABLED
errorReason FIXED_DEPOSIT_PRODUCT_DISABLED
errorReason COLLATERAL_FEATURE_DISABLED
errorReason CREDIT_OFFICER_DISABLED
errorReason DATA_EXPORT_DISABLED
errorReason MAX_WITHDRAWAL_CANNOT_BE_NEGATIVE
errorReason WITHHOLDING_TAXES_DISABLED
errorReason FUNDING_SOURCE_DISABLED
errorReason RESET_DATA_DISABLED
errorReason SOLIDARITY_GROUP_DISABLED
errorReason SAVINGS_PLAN_DISABLED
errorReason SAVINGS_ACCOUNT_DISABLED
errorReason REVOLVING_CREDIT_DISABLED
errorReason INDICATORS_DISABLED
errorReason FIXED_TERM_LOAN_DISABLED
errorReason FLAT_INTEREST_DISABLED
errorReason EFFECTIVE_INTEREST_RATE_DISABLED
errorReason RISK_REPORTING_DISABLED
errorReason WITHDRAWAL_PAST_OVERDRAFT_CONSTRAINTS
errorReason INTEREST_FREE_LOAN_DISABLED
errorReason MISSING_DEPOSIT_ID
errorReason INVALID_DEPOSIT_ACCOUNT_NAME
errorReason INTEREST_RATE_REVIEW_UNIT_NOT_AVAILABLE_FOR_FIXED_INTEREST_SOURCE
errorReason INTEREST_RATE_REVIEW_COUNT_NOT_AVAILABLE_FOR_FIXED_INTEREST_SOURCE
errorReason DEPOSIT_PRODUCT_IS_LINKED_BY_LOAN_PRODUCT
errorReason ACTIVATION_DATE_BEFORE_INTEREST_SET_EXTERNALLY_START_DATE
errorReason BACKDATE_EXCEEDS_PROFIT_SHARING_LIMIT
errorReason INVALID_REVOLVING_SETTINGS
errorReason UNKNOWN_SAVINGS_ACCOUNT_ERROR
errorReason TRANSFER_CANT_BE_MADE
errorReason CANNOT_MAKE_TRANSFER_TO_SOURCE_ACCOUNT
errorReason INVALID_TARGET_ACCOUNTING_STATE
errorReason INVALID_TARGET_ACCOUNTING_CURRENCY
errorReason TRANSFER_AMOUNT_IS_NOT_POSITIVE
errorReason INVALID_PRODUCT_ID
errorReason TRANSFER_AS_POSTDATED_PAYMENT
errorReason UNDEFINED_EXCHANGE_RATE_FOR_CURRENCY
errorReason INVALID_PRODUCT_KEY
errorReason CANNOT_MAKE_TRANSFER_TO_FUNDED_ACCOUNTS_WITH_ACCOUNTING_ENABLED
errorReason LINKED_ACCOUNT_DELETION_ERROR
errorReason ACCOUNT_HAS_REMAINING_BALANCE
errorReason CANNOT_DISBURSE_LOCKED_ACCOUNTS
errorReason DISBURSEMENT_DATE_AFTER_LAST_REPAYMENT_DUE_DATE
errorReason INTEREST_RATE_NOT_AVAILABLE_FOR_INDEXED_RATES
errorReason INTEREST_SPREAD_NOT_AVAILABLE_FOR_FIXED_RATES
errorReason TRANCHES_EXPECTED_DISBURSMENT_DATES_NOT_ORDERED
errorReason TRANCHES_NOT_ALLOWED
errorReason TRANCHES_NOT_DEFINED
errorReason MORE_TRANCHES_THAN_ALLOWED
errorReason TOTAL_TRANCHES_AMOUNT_MORE_THAN_LOAN_AMOUNT
errorReason TOTAL_AMOUNT_NOT_EQUAL_WITH_LOAN_AMOUNT
errorReason TRANCHE_AMOUNT_SHOULD_BE_STRICT_POSITIVE
errorReason INVALID_TRANCHE_KEY
errorReason CANNOT_MODIFY_DISBURSED_TRANCHE
errorReason DISBURSEMENT_DATE_BEFORE_NOT_REVERSED_TRANSACTION
errorReason CANNOT_MODIFY_TRANCHES_ON_RESCHEDULED_REFINANCED_ACCOUNTS
errorReason ALL_TRANCHES_ALREADY_DISBURSED
errorReason TRANCHES_CANNOT_BE_EDITED
errorReason INTEREST_RATE_SHOULD_BE_ZERO_OR_EMPTY
errorReason INTEREST_SPREAD_SHOULD_BE_ZERO_OR_EMPTY
errorReason INCONSISTENT_DATE_WITH_NEXT_TRANCHE
errorReason INTEREST_RATE_CANNOT_BE_EDITED_FOR_TIERED_INTEREST_RATES
errorReason INTEREST_SPREAD_CANNOT_BE_EDITED_FOR_TIERED_INTEREST_RATES
errorReason INVALID_INTEREST_RATE_TIERS
errorReason INVALID_OVERDRAFT_INTEREST_RATE_TIERS
errorReason NEGATIVE_LOCKED_BALANCE
errorReason PAY_OFF_INVALID_INTEREST_PAID
errorReason PAY_OFF_INVALID_FEES_PAID
errorReason PAY_OFF_INVALID_PENALTY_PAID
errorReason INTEREST_TYPE_NOT_ALLOWED
errorReason MISSING_CONTRACT
errorReason MISSING_TRANCHE
errorReason MISSING_TRANCHE_FEE
errorReason CANNOT_ADD_NEW_TRANCHE
errorReason INVALID_GL_ACCOUNT_ID
errorReason INVALID_GL_ACCOUNT_TYPE
errorReason JOURNAL_ENTRY_BEFORE_CLOSURE
errorReason DEBITS_DO_NOT_MATCH_CREDITS
errorReason JOURNAL_ENTRY_DATE_NOT_DEFINED
errorReason GL_ACCOUNT_IS_HEADER
errorReason GL_ACCOUNT_DOES_NOT_SUPPORT_MANUALLY_ENTRIES
errorReason NO_INTER_BRANCH_GL_ACCOUNT
errorReason INVALID_JOURNAL_TRANSACTION_ID
errorReason DUPLICATE_JOURNAL_TRANSACTION_ID
errorReason INVALID_ACCOUNTING_DATE_ORDER
errorReason INVALID_ACCOUNTING_DATE_RANGE
errorReason JOURNAL_ENTRY_DATE_IN_THE_FUTURE
errorReason JOURNAL_ENTRY_DATE_IN_THE_PAST_BEFORE_THE_ALLOWED_LIMIT
errorReason INVALID_BOOKING_DATE
errorReason BOOKING_DATE_BEFORE_VALUE_DATE
errorReason FROM_CURRENCY_NOT_DEFINED
errorReason FROM_CURRENCY_IS_NOT_BASE_CURRENCY
errorReason FROM_CURRENCY_DOES_NOT_EXIST
errorReason CURRENCY_SHOULD_BE_DIFFERENT_THEN_ORGANISATION_BASE_CURRENCY
errorReason START_DATE_SHOULD_BE_AFTER_LAST_ACCOUNTING_RATE
errorReason RATE_SHOULD_BE_POSITIVE
errorReason FUTURE_START_DATE_NOT_ALLOWED
errorReason ACCOUNTING_IN_MULTICURRENCY_SHOULD_BE_ENABLED
errorReason GL_JOURNAL_ENTRIES_USING_PREV_ACCOUNTING_RATE_SHOULD_NOT_EXISTS
errorReason ACCOUNTING_REPORT_NOT_FOUND
errorReason GL_ACCOUNT_CODE_IS_NOT_UNIQUE
errorReason INVALID_CURRENCY_CODE
errorReason CURRENCY_NOT_MATCHING
errorReason ACCOUNT_CURRENCY_NOT_MATCH
errorReason MISSING_CURRENCY
errorReason INVALID_EXCHANGE_RATE_VALUE
errorReason INCONSISTENT_START_DATE_WITH_TRANSACTIONS
errorReason BUY_RATE_GREATER_THAN_SELL_RATE
errorReason RATE_NOT_SET
errorReason RATE_TO_SAME_CURRENCY
errorReason DATE_BEFORE_LAST_RATE_DATE
errorReason START_DATE_IN_FUTURE
errorReason DATE_ON_LAST_RATE_DATE
errorReason DELETE_BASE_CURRENCY
errorReason CURRENCY_ASSOCIATED_WITH_TRANSACTION
errorReason CURRENCY_USED_IN_PRODUCT_OR_GL_ACCOUNT
errorReason UNDEFINED_ACCOUNTING_RATE_FOR_CURRENCY
errorReason ACCOUNTING_TRANSACTION_CHANNEL_CURRENCY_MISMATCH
errorReason ACCOUNTING_CURRENCIES_NOT_MATCHING
errorReason TRANSACTION_AND_ACCOUNT_CURRENCY_MISMATCH
errorReason CURRENCY_NOT_FOUND
errorReason INVALID_USER_NAME
errorReason INVALID_USER_ID
errorReason INVALID_CREDIT_OFFICER_KEY
errorReason INCONSISTENT_CREDIT_OFFICER_WITH_BRANCH
errorReason MISSING_CREDIT_OFFICER_KEY
errorReason MISSING_BRANCH_KEY
errorReason MISSING_CENTRE_KEY
errorReason INVALID_USER_ROLE_KEY
errorReason USER_IS_LOCKED
errorReason INVALID_PASSWORD
errorReason EMAIL_ADDRESS_ALREADY_REGISTERED_WITH_ANOTHER_USER
errorReason EMAIL_ADDRESS_FORMAT_IS_INVALID
errorReason USERNAME_ALREADY_EXISTS
errorReason MAX_USER_LIMIT_REACHED
errorReason CANNOT_MANAGE_USER_BRANCH
errorReason NOT_ENOUGH_PRIVILDGES_FOR_CHANGING_USER_SETTINGS
errorReason ONLY_ONE_ROLE_ALLOWED
errorReason INVALID_TRANSACTION_LIMIT_TYPE
errorReason NOT_ENOUGH_PRIVILEDGES_TO_CREATE_ADMIN_USER
errorReason CANNOT_HAVE_NEGATIVE_TRANSACTION_LIMITS
errorReason INVALID_VALUE_FOR_MANAGED_BRANCHES
errorReason CANNOT_HAVE_ADMIN_WITHOUT_FULL_BRANCHES_ACCESS
errorReason CANNOT_HAVE_OFFICER_ADMIN_WITHOUT_MANAGE_OTHER_ENTITIES_ACCESS
errorReason INCONSISTENT_CAN_MANAGE_BRANCHES_WITH_CAN_MANAGE_ENTITIES
errorReason MISSING_EMAIL_ADDRESS
errorReason MISSING_MOBILE_PHONE
errorReason CANNOT_UPDATE_INACTIVE_OR_LOCKED_USERS
errorReason ROLE_AND_ACCESS_MISMATCH
errorReason MISSING_ACCESS_RIGHTS
errorReason PHONE_NUMBER_IS_MISSING
errorReason TWO_FACTOR_AUTHENTICATION_NOT_AVAILABLE
errorReason USERNAME_CANNOT_BE_CHANGED
errorReason INVALID_ACCESS_RIGHTS
errorReason MISSING_ASSIGNED_BRANCH
errorReason CANNOT_DELETE_LAST_USER
errorReason CANNOT_DEACTIVATE_LAST_USER
errorReason CANNOT_HAVE_ADMIN_WITHOUT_MAMBU_ACCESS
errorReason CANNOT_UPDATE_FEDERATED_USER
errorReason CANNOT_UPDATE_SUPPORT_USER
errorReason CANNOT_CHANGE_ROLE_FOR_FEDERATED_USER
errorReason CANNOT_LOCK_USER_FROM_API
errorReason CANNOT_DELETE_SUPPORT_USER_BY_REGULAR_USER
errorReason CANNOT_DELETE_ADMIN_USER
errorReason CANNOT_DELETE_USER_WITH_PERFORMED_ACTIVITIES
errorReason CANNOT_DELETE_SELF
errorReason CANNOT_DEACTIVATE_SELF
errorReason CANNOT_UPDATE_DELIVERY_USER
errorReason CANNOT_DELETE_DELIVERY_USER_BY_REGULAR_USER
errorReason CANNOT_DELETE_USED_USER
errorReason CANNOT_CHANGE_BRANCH_IN_FEDERATED_CONTEXT
errorReason INVALID_BRANCH_ID
errorReason INVALID_BRANCH_KEY
errorReason INVALID_MANAGED_BRANCH_ID
errorReason BRANCH_IS_NOT_ACTIVE
errorReason EMPTY_BRANCH_NAME
errorReason ENCODED_KEY_NOT_NULL
errorReason INVALID_CENTRE_KEY
errorReason INVALID_CENTRE_ID
errorReason INCONSISTENT_CENTRE_WITH_BRANCH
errorReason CENTRE_IS_NOT_ACTIVE
errorReason INCONSISTENT_VALUE_WITH_CUSTOM_FIELD_TYPE
errorReason REQUIRED_CUSTOM_FIELD_MISSING
errorReason INVALID_CUSTOM_FIELD_ID
errorReason MAX_CUSTOM_FIELD_VALUE_LENGTH_EXCEEDED
errorReason INVALID_CUSTOM_FIELD_ENTITY_KEY
errorReason VIEW_TYPE_NOT_MATCHING_RESOURCE
errorReason VIEW_NOT_ACCESSIBLE_FOR_USER
errorReason CUSTOM_FIELD_DEACTIVATED
errorReason CUSTOM_FIELD_REQUIRED
errorReason CUSTOM_FIELD_NOT_AVAILABLE_FOR_ENTITY
errorReason INVALID_CUSTOM_FIELD_LINKED_ENTITY_KEY
errorReason DEPENDENT_CUSTOM_FIELD_VALUE_REQUIRED
errorReason INCONSISTENT_VALUE_WITH_SET_TYPE
errorReason GROUPED_INDEXES_NOT_CONSECUTIVE
errorReason TO_MANY_VALUES_FOR_SAME_GROUPED_CUSTOM_FIELD
errorReason INVALID_CUSTOM_FIELD_GROUP_INDEX
errorReason INCONSISTENT_CUSTOM_FIELD_VALUE_WITH_PATTERN
errorReason DUPLICATE_CUSTOM_FIELD_VALUES
errorReason CUSTOM_FIELD_SET_CHANGE_NOT_ALLOWED
errorReason CUSTOM_FIELD_SET_NULL
errorReason CUSTOM_FIELD_USAGE_CHANGE_NOT_ALLOWED
errorReason DATATYPE_OR_TYPE_CHANGED
errorReason CUSTOM_FIELD_NAME_NOT_UNIQUE
errorReason ENCODED_KEY_MUST_BE_EMPTY_ON_CREATE
errorReason CUSTOM_FIELDS_NEED_CHANNEL_PROVIDED
errorReason DUPLICATE_UNIQUE_VALUE
errorReason REFERRED_IN_CUSTOM_FIELD
errorReason TRANSACTION_TYPE_NOT_ACCEPTING_CUSTOM_FIELDS
errorReason INVALID_CUSTOM_FIELD_KEY
errorReason BUILT_IN_CUSTOM_FIELD_CHANGE_NOT_ALLOWED
errorReason EITHER_LABEL_ID_OR_LABEL_VALUE_MUST_BE_PROVIDED_FOR_SELECTION
errorReason INVALID_SELECTION_ID
errorReason INVALID_ID_DOCUMENT
errorReason REQUIRED_ID_DOCUMENT_MISSING
errorReason ADDING_OTHER_ID_DOCUMENTS_IS_DISABLED
errorReason INVALID_ID_DOCUMENT_TEMPLATE_KEY
errorReason DOCUMENT_CANNOT_BE_DELETED
errorReason INVALID_DOCUMENT_ID
errorReason INVALID_FILE_EXTENSION
errorReason FILE_EXTENSION_NOT_ALLOWED
errorReason INCONSISTENT_EXTENSION_WITH_FILE_CONTENT
errorReason MALWARE_CONTENT_DETECTED
errorReason INVALID_FILENAME
errorReason NO_PROFILE_PICTURE_SET
errorReason NO_PROFILE_SIGNATURE_SET
errorReason HAS_DOCUMENT_ATTACHED
errorReason UNSUPPORTED_IMAGE_TYPE
errorReason INVALID_TASK_ID
errorReason INVALID_TASK_STATE_AND_COMPLETION_DATE
errorReason INVALID_TASK_FIELD_CHANGE
errorReason INVALID_TASK_STATUS
errorReason INVALID_TASK_TITLE_LENGTH
errorReason HAS_TASK_ATTACHED
errorReason EDITING_VIEW_TYPE_NOT_ALLOWED
errorReason INVALID_CUSTOM_FIELD_SET_ID
errorReason TRANSACTION_LINKED_TO_A_REPAYMENT
errorReason ANTIVIRUS_NOT_AVAILABLE
errorReason INVALID_BACKDATED_TRANSACTION
errorReason CUSTOM_FIELD_LIMIT_EXCEEDED
errorReason MISSING_FROM_DATE
errorReason MISSING_TO_DATE
errorReason MAXIMUM_ONE_FILTER_ALLOWED
errorReason TILL_BALANCE_OUTSIDE_CONSTRAINTS
errorReason TRANSACTION_IS_NOT_WITHIN_CHANNEL_CONSTRAINTS
errorReason INVALID_ADDRESS
errorReason CLIENT_ROLE_DOES_NOT_ALLOW_ADDRESS
errorReason ADDRESS_CHANGE_NOT_ALLOWED
errorReason INVALID_ADDRESS_LINE1
errorReason INVALID_ADDRESS_LINE2
errorReason INVALID_CITY
errorReason INVALID_REGION
errorReason INVALID_POSTCODE
errorReason INVALID_COUNTRY
errorReason DATA_IMPORT_IN_PROGRESS
errorReason DATABASE_BACKUP_IN_PROGRESS
errorReason DATABASE_BACKUP_NOT_FOUND
errorReason CLIENT_IN_MIGRATION
errorReason INVALID_NUMBER_OF_SHEETS
errorReason UNDEFINED_SHEET
errorReason WRONG_SHEET_POSITION
errorReason INVALID_NUMBER_OF_COLUMNS_FOR_SHEET
errorReason UNDEFINED_COLUMN
errorReason WRONG_COLUMN_POSITION
errorReason INVALID_ASSIGNMENT
errorReason INVALID_INDEX_RATE_SOURCE_ID
errorReason START_DATE_BEFORE_LAST_INDEX_REVIEWD_DATE
errorReason INVALID_INDEX_RATE_START_DATE
errorReason NO_INDEX_RATE_AVAILABLE
errorReason NO_TAX_RATE_AVAILABLE
errorReason INVALID_INDEX_RATE_SOURCE
errorReason INDEX_RATE_SOURCE_IN_USE
errorReason NON_TAXABLE_FEE_NOT_ALLOWED
errorReason NON_TAXABLE_FEE_NOT_ALLOWED_ON_FIXED_PRODUCT
errorReason INVALID_INDEX_RATE_ID
errorReason DUPLICATE_INDEX_RATE_ID
errorReason DUPLICATE_INDEX_RATE_SOURCE_ID
errorReason INCONSISTENT_GROUP_MEMBER_PARENT_KEY
errorReason INCONSISTENT_GROUP_MEMBER_ENCODED_KEY
errorReason INCONSISTENT_GROUP_ROLE_PARENT_KEY
errorReason INCONSISTENT_GROUP_ROLE_ENCODED_KEY
errorReason PRODUCT_LINE_OF_CREDIT_AFFILIATION_CONSTRAINT_MISMATCH
errorReason DISBURSEMENT_DATE_BEFORE_LINE_OF_CREDIT_START_DATE
errorReason MATURITY_DATE_AFTER_LINE_OF_CREDIT_END_DATE
errorReason LINE_OF_CREDIT_AMOUNT_EXCEEDED
errorReason LINE_OF_CREDIT_REQUIRED_EXCEPTION
errorReason OVERDRAFT_EXPIRY_DATE_AFTER_LINE_OF_CREDIT_END_DATE
errorReason CANNOT_CREATE_ACCOUNT_WITH_LINE_OF_CREDIT
errorReason LINE_OF_CREDIT_REQUIRES_OVERDRAFT_MAX_LIMIT
errorReason LINE_OF_CREDIT_REQUIRES_OVERDRAFT_EXPIRY_DATE
errorReason INVALID_LINE_OF_CREDIT_ID
errorReason ACCOUNT_ALREADY_ON_LINE_OF_CREDIT
errorReason INCONSISTENT_LINE_OF_CREDIT_CLIENT_WITH_ACCOUNT_OWNER
errorReason ACCOUNT_IS_NOT_PART_OF_LINE_OF_CREDIT
errorReason INVALID_LINE_OF_CREDIT_STATE
errorReason HAS_LINES_OF_CREDIT
errorReason LINE_OF_CREDIT_ID_ALREADY_IN_USE
errorReason EXPIRE_DATE_BEFORE_START_DATE
errorReason INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_LINES_OF_CREDIT
errorReason MISSING_LINE_OF_CREDIT_START_DATE
errorReason MISSING_LINE_OF_CREDIT_EXPIRE_DATE
errorReason MISSING_LINE_OF_CREDIT_AMOUNT
errorReason LINE_OF_CREDIT_AMOUNT_NOT_STRICTLY_POSITIVE
errorReason INVALID_ACCOUNT_HOLDER_ID
errorReason MISSING_ACCOUNT_HOLDER_KEY
errorReason MISSING_ACCOUNT_HOLDER_TYPE
errorReason ACCOUNT_HOLDER_NOT_FOUND
errorReason INVALID_ACCOUNT_HOLDER_STATE
errorReason NO_ORGANIZATION_ICON
errorReason NO_ORGANIZATION_LOGO
errorReason MISSING_TEXT
errorReason MAX_TEXT_LENGTH_EXCEEDED
errorReason NUM_INSTALLMENTS_NOT_AVAILABLE_FOR_REVOLVING_CREDIT
errorReason PRINCIPAL_PAYMENT_INCONSISTENT_WITH_PRODUCT
errorReason SCHEDULE_PREVIEW_NOT_AVAILABLE_FOR_REVOLVING_CREDIT
errorReason AMOUNT_MORE_THAN_CURRENT_AVAILABLE_AMOUNT
errorReason INCONSISTENT_WITH_CENTRE_MEETING_DAY
errorReason FIELD_IS_NOT_EDITABLE
errorReason RESCHEDULED_REPAYMENT_BEFORE_DISBURSEMENT_DATE
errorReason INVALID_DISBURSEMENT_DATE_FOR_REVOLVING_PRODUCT
errorReason FIELD_NOT_ALLOWED
errorReason OPERATION_NOT_ALLOWED_ON_FIELD
errorReason INVALID_FILTER_VALUES
errorReason INVALID_FILTER_SELECTION
errorReason INVALID_FILTER_ELEMENT
errorReason INVALID_FILTER_VALUE
errorReason INVALID_FILTER_SECOND_VALUE
errorReason TOO_MANY_FILTERS_PROVIDED
errorReason INVALID_FILTER_DATA_ITEM_TYPE
errorReason INSUFFICIENT_FUNDS_ACCOUNT_BALANCE
errorReason INSUFFICIENT_FUNDS_TOTAL_AMOUNT
errorReason FUNDS_NOT_ALLOWED
errorReason FUNDING_AMOUNT_MUST_BE_STRICTLY_POSITIVE
errorReason FUNDER_INTEREST_COMMISSION_CONSTRAINTS_VALIDATION
errorReason MISSING_FUNDER_INTEREST_COMMISSION
errorReason INVALID_FUND_ENCODED_KEY
errorReason INVESTORS_TOTAL_AMOUNT_MORE_THAN_LOAN_AMOUNT
errorReason INVALID_FUND_ID
errorReason INACTIVE_FUND_ID
errorReason INVALID_FUNDED_ACCOUNT_STATE
errorReason FUND_SELL_WITH_NO_PURCHASES
errorReason FUND_OVERSELL
errorReason INVALID_SELLER_FUND_AMOUNT
errorReason INVALID_SELLER_FUND_STATE
errorReason INVALID_SELLER_FUNDING_ACCOUNT
errorReason INVALID_INVESTMENT_PERCENTAGES_FOR_AMOUNTS
errorReason FUND_SELF_SELL
errorReason INVALID_BUYER_FUNDING_ACCOUNT
errorReason DUPLICATE_BUYER_FUNDING_ACCOUNT
errorReason INVALID_BUYER_FUND_AMOUNT
errorReason INVALID_FUND_PURCHASE_PRICE
errorReason INSUFFICIENT_BUYER_FUNDING_ACCOUNT_FUNDS
errorReason LOAN_ACCOUNT_NOT_FUNDED_BY_SAVINGS_ACCOUNT
errorReason INVALID_INTEREST_RATE_AGAINST_INTEREST_COMMISSION
errorReason INVALID_SAVINGS_ACCOUNT_TYPE_FOR_FUNDING
errorReason DUPLICATED_SAVINGS_ACCOUNT_FOR_FUNDING
errorReason INVALID_FIXED_DAYS_OF_MONTH
errorReason INVALID_SORTING_COLUMN
errorReason COLUMN_NOT_SORTABLE
errorReason INVALID_SORTING_ORDER
errorReason ACCOUNT_TYPE_DOES_NOT_ALLOW_FIELD
errorReason INVALID_GUARANTY_ENCODED_KEY
errorReason INVALID_GUARANTY_TYPE
errorReason INVALID_GUARANTOR_TYPE
errorReason GUARANTY_KEY_TYPE_MISMATCH
errorReason LOAN_ACCOUNT_NOT_FUNDED_BY_DEPOSIT_ACCOUNT
errorReason ORIGINAL_AMOUNT_AND_ORIGINAL_CURRENCY_NOT_ALLOWED
errorReason INVALID_TEMPLATE_ID
errorReason INVALID_TEMPLATE_TYPE
errorReason MISSING_FIXED_DAYS_OF_MONTH
errorReason FIXED_DAYS_OF_MONTH_NOT_ALLOWED
errorReason REPAYMENT_FREQUENCY_NOT_ALLOWED
errorReason REPAYMENT_PERIOD_COUNT_NOT_ALLOWED
errorReason APPLIED_INTEREST_BALANCE_CANNOT_BE_REALLOCATED
errorReason INVALID_NEW_TOTAL_LOAN_AMOUNT
errorReason NEGATIVE_WRITE_OFF_AMOUNT
errorReason POSITIVE_REDRAW_BALANCE_WITH_DUE_INSTALLMENTS
errorReason CAPITALIZED_AMOUNTS_NOT_ALLOWED_DUE_TO_DIFFERENT_ACCOUNTING
errorReason TOP_UP_AMOUNT_IS_MANDATORY
errorReason RESTRUCTURE_DETAILS_ARE_MANDATORY
errorReason NEGATIVE_TOP_UP_AMOUNT
errorReason WRITE_OFF_AMOUNT_MORE_THAN_BALANCE_AMOUNT
errorReason CANNOT_REFINANCE_REVOLVING_CREDIT_LOAN
errorReason POSITIVE_CAPITALIZED_AMOUNTS_FOR_LOAN_FUNDED_NOT_ALLOWED
errorReason WRITE_OFF_AMOUNT_FOR_LOAN_FUNDED_DIFFERENT_BY_BALANCE_AMOUNT
errorReason CURRENCY_NOT_AVAILABLE_FOR_PRODUCT
errorReason CURRENCY_NOT_EDITABLE
errorReason TELLER_CANNOT_POST_TRANSACTION_IN_MULTI_CURRENCY
errorReason NOT_ENOUGH_PRINCIPAL_TO_CONTINUE_FEE_AMORTIZATION
errorReason MISSING_TEMPLATE_KEY
errorReason TELLER_CANNOT_POST_TRANSACTION_WITHOUT_OPENED_TILL
errorReason SETTINGS_ONLY_AVAILABLE_FOR_REVOLVING_CREDIT_ACCOUNTS
errorReason INCONSISTENT_FLAT_AMOUNT_WITH_PRODUCT_CONSTRAINTS
errorReason INCONSISTENT_PERCENTANGE_WITH_PRODUCT_CONSTRAINTS
errorReason AMOUNT_REQUIRED_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD
errorReason PERCENTAGE_REQUIRED_FOR_PRINCIPAL_PAYMENT_PERCENTAGE_METHOD
errorReason AMOUNT_ONLY_AVAILABLE_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD
errorReason PERCENTAGE_ONLY_AVAILABLE_FOR_PRINCIPAL_PERCENTAGE_METHOD
errorReason INVALID_PRINCIPAL_PAYMENT_FLAT_AMOUNT_WITH_DECIMALS
errorReason INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_VALUE
errorReason CANT_EDIT_LOCKED_OPERATIONS_IN_LOCKED_CAPPING_STATE
errorReason CANT_UNLOCK_WHEN_INCOME_BALANCE_IS_OVER_PRINCIPAL_CAPPING_CONSTRAINTS
errorReason CANNOT_BULK_REVERSE_INTERNAL_TRANSFER_REPAYMENT
errorReason CANNOT_BULK_REAPPLY_TRANSACTION_BECAUSE_LOCKED_TRANSACTIONS_LOGGED_AFTER_IT
errorReason CANNOT_BULK_REAPPLY_POSTDATED_REPAYMENTS
errorReason CANNOT_BULK_REVERSE_ACTIVATION_TRANSACTION
errorReason CLOSURE_DATE_AFTER_MAX_ALLOWED_UNDO_CLOSURE_PERIOD
errorReason CLOSURE_DATE_BEFORE_GL_ACCOUNT_CLOSURE
errorReason MISSING_ORGANIZATION_INTEREST_COMMISSION
errorReason INSUFFICIENT_TRANSACTION_AMOUNT
errorReason CANNOT_REVERSE_INTEREST_ON_DISBURSEMENT
errorReason TRANSACTION_TYPE_IS_IRREVERSIBLE
errorReason INTEREST_APPLIED_WITH_NULL_AMOUNT
errorReason CANNOT_REVERSE_OFFSET_DEPOSIT_TRANSACTION
errorReason CANNOT_LOCK_CAPPING_ACCOUNT_INVALID_ACCOUNT_ID
errorReason CANNOT_LOCK_CAPPING_ACCOUNT_INVALID_ACCOUNT_STATE_FOR_LOCK
errorReason INCOME_BALANCE_CONSTRAINTS_EXCEEDED
errorReason CANNOT_BULK_REVERSE_LOAN_FRACTION_SOLD
errorReason LATE_FEE_TRANSACTIONS_LOGGED_AFTER_REPAYMENT_TO_REAPPLY_ON_FIXED_ACCOUNT
errorReason INVALID_ORGANIZATION_INTEREST_COMMISSION
errorReason ACCOUNT_ALREADY_LOCKED
errorReason CANNOT_BULK_ADJUST_ACTIVATION_TRANSACTION
errorReason PAYMENT_DUE_FEE_APPLIED_ON_DUE_DATES_TRANSACTIONS_LOGGED_AFTER_REPAYMENT_TO_REAPPLY_ON_FIXED_ACCOUNT
errorReason REALLOCATION_CAN_BE_DONE_ONLY_ON_FUTURE_REPAYMENTS
errorReason REALLOCATION_NOT_ALLOWED_ON_GRACE_INSTALLMENTS
errorReason INVALID_PRINCIPAL_PAYMENT_METHOD
errorReason CANT_EDIT_LOCKED_ACCOUNT_DUE_AMOUNT_TYPE
errorReason REPAYMENT_VALUE_CHANGE_NOT_ALLOWED
errorReason NON_DYNAMIC_ACCOUNT_INSTALLMENT_DELETION_NOT_ALLOWED
errorReason NON_DYNAMIC_ACCOUNT_INSTALLMENT_ADDITION_NOT_ALLOWED
errorReason INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED
errorReason INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED_FOR_LOAN_PRODUCT_TYPE
errorReason INSTALLMENT_WITH_INTEREST_APPLIED_CANNOT_BE_EDITED
errorReason UNABLE_TO_DETERMINE_DELETED_REPAYMENTS
errorReason PAID_OR_PURE_GRACE_INSTALLMENT_CANNOT_BE_DELETED
errorReason UNABLE_TO_DELETE_NON_CUSTOM_ADDED_REPAYMENT_FOR_REVOLVING_ACCOUNT
errorReason INVALID_NUMBER_OF_INSTALLMENTS
errorReason INVALID_PRINCIPAL_AMOUNT_WITH_DECIMALS
errorReason INCONSISTENT_WITH_LINE_OF_CREDIT_VALID_UNTIL_DATE
errorReason DUE_DATES_NOT_UNIQUE
errorReason NON_ZERO_PRINCIPAL_REPAYMENT_CANNOT_BE_DELETED
errorReason NON_DYNAMIC_ACCOUNT_REPAYMENT_DELETION_NOT_ALLOWED
errorReason INVALID_LOAN_ACCOUNT_STATE_FOR_FUNDS_EDIT
errorReason ENTRY_DATE_AFTER_MATURITY_DATE_WITH_LATE_FEES_AND_BULK_REVERSAL
errorReason DIFFERENT_ACCOUNTING_STATE_BETWEEN_INVOLVED_PRODUCTS
errorReason ACCOUNT_ALREADY_LINKED
errorReason PRODUCT_DOES_NOT_ALLOW_LINKING
errorReason UNLINKABLE_SAVINGS_PRODUCT
errorReason INVALID_SAVINGS_ACCOUNT_HOLDER
errorReason LINK_BETWEEN_ACCOUNTS_DOES_NOT_EXIST
errorReason NON_NATIVE_GRACE_INSTALLMENT_CANNOT_BE_EDITED
errorReason NON_NATIVE_GRACE_INSTALLMENT_CANNOT_BE_DELETED
errorReason INSUFFICIENT_ACCOUNT_BALANCE
errorReason INVALID_SAVINGS_ACCOUNT_TYPE
errorReason MATURITY_PERIOD_ALREADY_STARTED
errorReason LOAN_PRODUCT_PRINCIPAL_PAID_INSTALLMENT_STATUS_MISMATCH
errorReason CANNOT_DELETE_LINK_FOR_ACTIVATED_OFFSET_LOAN
errorReason INVALID_LANGUAGE
errorReason INVALID_LINKED_SETTLEMENT_ACCOUNT_KEYS
errorReason SAVINGS_ACCOUNT_ALREADY_LINKED
errorReason INSTALLMENT_WITH_PENALTY_APPLIED_CANNOT_BE_EDITED
errorReason INSTALLMENT_DUE_DATE_MOVED_BEFORE_LAST_PENALTY_APPLIED_DATE
errorReason MATURITY_PERIOD_NOT_STARTED
errorReason INVALID_AMOUNT_WITH_DECIMALS
errorReason PAYMENT_HOLIDAY_INVALID_INSTALLMENT_STATE
errorReason PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_ALREADY_HAVE_PAYMENT_HOLIDAYS
errorReason PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_INTEREST_APPLIED
errorReason PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_FEE_APPLIED
errorReason PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PENALTY_APPLIED
errorReason RESEND_FAILED_NOTIFICATION_FAILED
errorReason INVALID_NOTIFICATION_MESSAGE_STATE
errorReason DUPLICATED_NOTIFICATION_ENCODED_KEY
errorReason MAXIMUM_NUMBER_OF_NOTIFICATIONS_TO_RESEND_EXCEEDED
errorReason DUE_DATES_NOT_IN_ASCENDING_ORDER
errorReason ACCOUNT_PRODUCT_BRANCH_AVAILABILITY_MISMATCH
errorReason CLIENT_HAS_ACTIVE_ACCOUNTS_WITH_PRODUCT_BRANCH_AVAILABILITY_MISMATCH
errorReason PRODUCT_HAS_ASSOCIATED_ACCOUNTS
errorReason MAX_NUMBER_OF_FILTERS_REACHED
errorReason MAX_NUMBER_OF_COLUMNS_REACHED
errorReason USAGE_RIGHTS_ROLE_NOT_AVAILABLE
errorReason CURRENCY_NOT_DEFINED
errorReason BASE_CURRENCY_CANNOT_BE_REMOVED
errorReason CURRENCY_IN_USE_CANNOT_BE_REMOVED
errorReason CURRENCY_DOES_NOT_EXIST
errorReason NON_ZERO_INTEREST_PAID_CANNOT_BE_DELETED
errorReason INVALID_PRINCIPAL_AMOUNT
errorReason INVALID_INSTALLMENT_DUE_DATES_ORDER
errorReason INSTALLMENT_DUE_DATE_BEFORE_DISBURSEMENT
errorReason INVALID_INSTALLMENT_INDEX
errorReason INSTALLMENT_ADDED_BEFORE_INTEREST_APPLIED
errorReason ONLY_ONE_INSTALLMENT_PER_OPERATION_FOR_DBEI
errorReason MISSING_DUE_DATE_OF_ADDED_INSTALLMENT
errorReason INVALID_REMOVED_INSTALLMENT
errorReason INSTALLMENT_WITH_PAID_AMOUNTS_CANNOT_BE_REMOVED
errorReason INSTALLMENT_ADDED_BEFORE_PAYMENT
errorReason CURRENCY_CANNOT_BE_CHANGED
errorReason ONLY_ORGANISATION_BASE_CURRENCY_IS_ALLOWED
errorReason INVALID_COMMUNICATION_MESSAGE_ENCODED_KEY
errorReason INVALID_EMAIL_SUBJECT
errorReason CANNOT_ADJUST_OFFSET_DEPOSIT_TRANSACTION
errorReason INVALID_CREDIT_ARRANGEMENT_ID
errorReason INVALID_CREDIT_ARRANGEMENT_STATE
errorReason CREDIT_ARRANGEMENT_ID_ALREADY_IN_USE
errorReason INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_CREDIT_ARRANGEMENTS
errorReason CREDIT_ARRANGEMENT_AMOUNT_NOT_STRICTLY_POSITIVE
errorReason PRODUCT_CREDIT_ARRANGEMENT_AFFILIATION_CONSTRAINT_MISMATCH
errorReason ACCOUNT_ALREADY_ON_CREDIT_ARRANGEMENT
errorReason INCONSISTENT_CREDIT_ARRANGEMENT_CLIENT_WITH_ACCOUNT_OWNER
errorReason CREDIT_ARRANGEMENT_REQUIRES_OVERDRAFT_EXPIRE_DATE
errorReason CREDIT_ARRANGEMENT_REQUIRES_OVERDRAFT_MAX_LIMIT
errorReason CREDIT_ARRANGEMENT_AMOUNT_EXCEEDED
errorReason MATURITY_DATE_AFTER_CREDIT_ARRANGEMENT_END_DATE
errorReason OVERDRAFT_EXPIRY_DATE_AFTER_CREDIT_ARRANGEMENT_END_DATE
errorReason DISBURSEMENT_DATE_BEFORE_CREDIT_ARRANGEMENT_START_DATE
errorReason CREDIT_ARRANGEMENT_REQUIRED_EXCEPTION
errorReason ACCOUNT_IS_NOT_PART_OF_CREDIT_ARRANGEMENT
errorReason CREDIT_ARRANGEMENT_ILLEGAL_PARAMETER_MODIFICATION
errorReason CREDIT_ARRANGEMENT_HAS_NON_CLOSED_ACCOUNTS
errorReason BASE_CURRENCY_NOT_UNIQUE
errorReason CURRENCY_SYMBOL_LENGTH_OUTSIDE_CONSTRAINTS
errorReason INEXISTING_CURRENCY_SYMBOL
errorReason INVALID_TO_INSTALLMENT_POSITION
errorReason INVALID_PMT_VALUE
errorReason PAYMENT_PLAN_NOT_AVAILABLE
errorReason AT_LEAST_ONE_PERIODIC_PAYMENT_PLAN_MANDATORY
errorReason SUM_OF_PERIODIC_PAYMENTS_LESS_OR_EQUAL_WITH_LOAN_AMOUNT
errorReason PAYMENT_PLAN_ENTRIES_NOT_ORDERED
errorReason INTEREST_RATE_COMPUTATION_ERROR
errorReason INVALID_PERIODIC_PAYMENT_ENCODED_KEY
errorReason DUPLICATED_PERIODIC_PAYMENT_ENCODED_KEY
errorReason INVALID_INTEREST_CHARGE_FREQUENCY_METHOD_MUST_BE_NULL
errorReason INVALID_DAYS_IN_YEARS_METHOD_MUST_BE_NULL
errorReason PAYMENT_HOLIDAYS_INTEREST_CANT_BE_APPLIED_DURING_HOLIDAY_INSTALLMENTS
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_ACCOUNTS_WITH_PAYMENT_DUE_FEE_APPLIED_ON_DUE_DATES
errorReason ACCOUNT_HAS_NO_PAYMENT_HOLIDAYS_ACCRUED_INTEREST
errorReason ACCOUNT_HAS_LESS_PAYMENT_HOLIDAY_ACCRUED_INTEREST_THAN_THE_PROVIDED_AMOUNT_TO_APPLY
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_WITHOUT_PAYMENT_HOLIDAYS
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_REPAYMENTS_POSTED
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_INTEREST_APPLIED
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_FEE_APPLIED
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PENALTY_APPLIED
errorReason PRODUCT_ID_ALREADY_IN_USE
errorReason INVALID_ROUNDING_REPAYMENT_CURRENCY_FOR_PRODUCT
errorReason SDK_CLIENT_COULD_NOT_BE_GENERATED
errorReason SDK_CLIENT_LANGUAGES_COULD_NOT_BE_OBTAINED
errorReason MAXIMUM_NUMBER_OF_COMMUNICATION_MESSAGES_TO_RESEND_EXCEEDED
errorReason RESEND_FAILED_COMMUNICATON_FAILED
errorReason DUPLICATE_ENCODED_KEY
errorReason MESSAGE_STATE_MUST_BE_FAILED
errorReason NO_MESSAGE_FOUND
errorReason MESSAGE_NOT_FOUND
errorReason MISSING_ENCODED_KEY
errorReason URL_CONTAINS_QUOTES
errorReason MISSING_RECIPIENT
errorReason RECIPIENT_NOT_ALLOWED
errorReason INVALID_CLIENT_RECIPIENT
errorReason INVALID_CREDIT_OFFICER_RECIPIENT
errorReason INVALID_GROUP_ROLE_RECIPIENT
errorReason INVALID_CUSTOM_FIELD_RECIPIENT
errorReason INVALID_EVENT
errorReason INVALID_TARGET
errorReason INVALID_PLACEHOLDER
errorReason INVALID_FIELD_LENGTH
errorReason INVALID_WEBHOOK_REQUEST_TYPE
errorReason URL_CONTAINS_INVALID_PLACEHOLDERS
errorReason MESSAGE_BODY_SIZE_EXCEEDS_LIMIT
errorReason INVALID_CUSTOM_REQUEST_HEADERS
errorReason CARD_REFERENCE_TOKEN_FORMAT_INVALID
errorReason CARD_REFERENCE_TOKEN_ALREADY_IN_USE
errorReason CARD_REFERENCE_HAS_ASSOCIATED_HOLDS_OR_TRANSACTIONS
errorReason CARD_REFERENCE_NOT_FOUND
errorReason DUPLICATE_AUTHORIZATION_HOLD
errorReason DUPLICATE_CARD_TRANSACTION
errorReason AVAILABLE_BALANCE_BELOW_ZERO
errorReason AUTHORIZATION_HOLD_NOT_FOUND
errorReason INVALID_AUTHORIZATION_HOLD_STATE
errorReason CARD_TRANSACTION_CANNOT_BE_ADJUSTED
errorReason TECHNICAL_OVERDRAFT_IS_NOT_ALLOWED_FOR_PRODUCT
errorReason CARD_TRANSACTION_NOT_FOUND
errorReason CARD_TRANSACTION_MAX_REVERSAL_AMOUNT_EXCEEDED
errorReason CARDS_FEATURE_DISABLED
errorReason ACCOUNT_AUTHORIZATION_HOLD_NOT_FOUND
errorReason INVALID_CUSTOM_EXPIRATION_PERIOD
errorReason INVALID_ACCOUNT_TYPE_FOR_CARD_OPERATION
errorReason PRODUCT_MUST_BE_ACTIVE
errorReason TARGET_AMOUNT_IS_NEGATIVE
errorReason MAX_WITHDRAWAL_AMOUNT_OUTSIDE_CONSTRAINTS
errorReason ACCOUNT_HOLDER_KEY_INVALID
errorReason ACCOUNT_HOLDER_TYPE_INVALID
errorReason INVALID_WITHHOLDING_TAX_SOURCE_KEY
errorReason INTEREST_RATE_OUTSIDE_CONSTRAINTS
errorReason INVALID_INTEREST_PAYMENT_POINT
errorReason INVALID_INTEREST_PAYMENT_DATES
errorReason REQUIRED_OVERDRAFT_INTEREST_RATE
errorReason REQUIRED_OVERDRAFT_EXPIRY_DATE
errorReason REQUIRED_OVERDRAFT_LIMIT
errorReason DEPOSIT_ACCOUNT_FIELD_NOT_EDITABLE
errorReason DEPOSIT_PRODUCT_MISMATCH
errorReason ACCOUNT_TYPE_DOES_NOT_ALLOW_RECOMMENDED_DEPOSIT_AMOUNT
errorReason ACCOUNT_TYPE_DOES_NOT_ALLOW_MAX_WITHDRAWAL_AMOUNT
errorReason ACCOUNT_TYPE_DOES_NOT_ALLOW_TARGET_AMOUNT
errorReason REQUIRED_INTEREST_RATE
errorReason INTEREST_RATE_SHOULD_BE_NULL
errorReason OVERDRAFT_INTEREST_RATE_SHOULD_BE_NULL
errorReason OVERDRAFT_INTEREST_SPREAD_SHOULD_BE_NULL
errorReason INVALID_ACCOUNT_TYPE
errorReason INVALID_ACCOUNT_KEY
errorReason INTEREST_RATE_SHOULD_BE_ZERO_FOR_DEPOSIT_ACCOUNTS_WITH_EXTERNAL_INTEREST
errorReason UNABLE_TO_RECALCULATE_SCHEDULE
errorReason UNABLE_TO_APPRAISE_LOAN_ACCOUNT
errorReason TRANSACTION_MADE_BY_A_DISBURSEMENT_FEE
errorReason INVALID_TARGET_ACCOUNT_TYPE
errorReason NEGATIVE_TARGET_ACCOUNT_BALANCE
errorReason ZERO_DISBURSE_AMOUNT
errorReason INVESTOR_FUNDED_LOAN_ACCOUNT
errorReason INVALID_TARGET_ACCOUNT_HOLDER_KEY
errorReason TRANSFER_NOTES_LENGTH_EXCEEDS_MAXIMUM_SIZE
errorReason CANNOT_MAKE_TRANSFER_FOR_FOREIGN_CURRENCY_IF_ACCOUNTING_ENABLED
errorReason CARD_TRANSACTION_INVALID_REVERSAL_AMOUNT
errorReason INVALID_AMORTIZATION_PROFILE
errorReason AMORTIZATION_PROFILE_NOT_ALLOWED
errorReason INVALID_AMORTIZATION_FREQUENCY
errorReason INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT
errorReason INVALID_AMORTIZATION_SETTINGS
errorReason AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_TOTAL_STEPS_NOT_ALLOWED
errorReason AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT_NOT_ALLOWED
errorReason AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT_NOT_ALLOWED
errorReason INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_TOTAL_STEPS
errorReason INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT
errorReason AMORTIZATION_SETTINGS_NOT_ALLOWED
errorReason INVALID_INTEREST_RATE_TERMS
errorReason TRANSACTION_DISBURSEMENT_DATE_DOES_NOT_MATCH_WITH_TRANCH_EXPECTED_DATE
errorReason DUPLICATE_TRANSACTION_CHANNEL_NAME
errorReason DUPLICATE_TRANSACTION_CHANNEL_ID
errorReason TRANSACTION_CHANNEL_ID_CONTAINS_SPACES
errorReason INVALID_TRANSACTION_CHANNEL_LOAN_CONSTRAINTS
errorReason INVALID_TRANSACTION_CHANNEL_SAVINGS_CONSTRAINTS
errorReason INVALID_TRANSACTION_CHANNEL_ACCOUNT_USAGE
errorReason CANNOT_DELETE_DEFAULT_TRANSACTION_CHANNEL
errorReason TRANSACTION_CHANNEL_IN_USE
errorReason TRANSACTION_CHANNEL_CANNOT_BE_DEACTIVATED
errorReason INCONSISTENT_TRANSACTION_USER_KEY_WITH_ACCOUNT_USER
errorReason INCONSISTENCY_BETWEEN_CHANNEL_KEY_AND_ID
errorReason INCONSISTENT_TRANSACTION_PRODUCT_KEY_WITH_ACCOUNT_PRODUCT
errorReason DUPLICATE_ID
errorReason DUPLICATE_NAME
errorReason ID_CONTAINS_SPACES
errorReason INVALID_EXTERNAL_ID
errorReason EXTERNAL_ID_ALREADY_EXISTS
errorReason INVALID_ASSIGNMENT_FROM_NO_MEETING_DAY
errorReason HOLDER_HAS_ACCOUNTS_IN_DIFFERENT_BRANCH_WITH_CENTRE_OR_CREDITOFFICER_MISMATCH
errorReason ACCOUNT_ALREADY_DISBURSED
errorReason ACCOUNT_APPROVED_AMOUNT_HAS_BEEN_EXCEEDED
errorReason AMORTIZATION_FREQUENCY_INTERVAL_TYPE_NOT_ALLOWED
errorReason AMORTIZATION_FREQUENCY_INTERVAL_COUNT_NOT_ALLOWED
errorReason INVALID_AMORTIZATION_FREQUENCY_INTERVAL_TYPE
errorReason INVALID_AMORTIZATION_FREQUENCY_PREDEFINED_INTERVALS_UNIT
errorReason NEGATIVE_DEFAULT_INTEREST_RATE
errorReason NEGATIVE_MIN_INTEREST_RATE
errorReason NEGATIVE_MAX_INTEREST_RATE
errorReason INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason DEFAULT_MIN_MAX_NOT_AVAILABLE
errorReason INTEREST_RATE_TERMS_ARE_READONLY
errorReason INTEREST_CALCULATION_BALANCE_METHOD_READONLY
errorReason INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED
errorReason INTERNAL_TRANSFER_CANNOT_USE_CUSTOM_FIELDS
errorReason INCONSISTENT_FEE_CALCULATION_METHOD_WITH_INCLUDE_FEE_IN_FLOOR_AMOUNT_OPTION_ENABLED
errorReason INCONSISTENT_FEE_CALCULATION_METHOD_WITH_TOTAL_BALANCE_OPTION_ENABLED
errorReason INCONSISTENT_LATE_REPAYMENT_FEE_TRIGGER_WITH_TOTAL_BALANCE_OPTION_ENABLED
errorReason INACTIVE_ACCOUNT_BRANCH
errorReason INCONSISTENT_ACCOUNT_BRANCH_ASSOCIATION_CENTRE_OR_CREDITOFFICER_MISMATCH
errorReason INVALID_ACCOUNT_BRANCH_ASSIGNMENT_DUE_CENTRE_MEETING_DAY_MISMATCH
errorReason CANNOT_CHANGE_LOAN_GROUP_BRANCH_FOR_A_SOLIDARITY_GROUP
errorReason CANNOT_CHANGE_LOAN_ACCOUNT_BRANCH_WHEN_RESHEDULE_REFINANCE
errorReason INVALID_FEE_APPLICATION
errorReason INVALID_FEE_AMORTIZATION_UPON_RESCHEDULE_REFINANCE_OPTION
errorReason FEE_AMORTIZATION_UPON_RESCHEDULE_REFINANCE_OPTION_IS_MANDATORY
errorReason FEE_TRIGGER_NOT_ALLOWED
errorReason NOT_ADJUSTED_TRANSACTION_LOGGED_AFTER_CURRENT_ONE
errorReason CANNOT_ADJUST_INTEREST_ON_DISBURSEMENT
errorReason TRANSACTION_TYPE_DOES_NOT_ALLOW_ADJUSTMENT
errorReason TRANSACTION_ALREADY_ADJUSTED
errorReason PAYMENT_DUE_FEES_ON_DUE_DATES_TRIGGER_NOT_ALLOWED
errorReason DEPOSIT_INTEREST_FEATURE_DISABLED
errorReason INVALID_FEE_AMOUNT_CALCULATION_FUNCTION
errorReason COULD_NOT_INVOKE_FEE_AMOUNT_CALCULATION_FUNCTION
errorReason FUNCTION_CALCULATED_FEE_AMOUNT_IS_ZERO
errorReason CANNOT_CREATE_NEW_USER_IN_FEDERATED_CONTEXT
errorReason EMPTY_CUSTOM_FIELD_ID
errorReason ACCOUNT_ALREADY_CLOSED
errorReason INVALID_GUARANTEE_TYPE
errorReason ORIGINAL_ACCOUNT_NOT_FOUND
errorReason INVALID_ORIGINAL_ACCOUNT_STATE
errorReason INCONSISTENT_AMORTIZATION_ACCOUNTING_SETUP
errorReason PAYMENT_DUE_FEES_ON_DUE_DATES_NOT_ALLOWED_AT_RESCHEDULE_REFINANCE
errorReason TAXES_ON_PRODUCT_NOT_ALLOWED
errorReason TAX_CALCULATION_METHOD_NOT_ALLOWED
errorReason TAXES_NOT_EDITABLE
errorReason CANNOT_APPLY_REPAYMENT_ON_ZERO_BALANCE_ACCOUNT
errorReason LOCKED_BALANCE_NOT_ALLOWED
errorReason INEXISTING_TOLERANCE_CALCULATION_METHOD
errorReason ARREARS_TOLERANCE_DAY_OUTSIDE_CONSTRAINTS
errorReason INCONSISTENT_ARREARS_TOLERANCE_VALUES_WITH_ARREARS_TOLERANCE_METHOD
errorReason SAVINGS_PRODUCT_DOES_NOT_ALLOW_OFFSET_LINKING
errorReason INVALID_SETTLEMENT_ACCOUNT_KEY
errorReason INVALID_SETTLEMENT_ACCOUNT_STATE
errorReason INVALID_DATA_MIGRATION_EVENT_KEY
errorReason ANOTHER_TASK_IN_PROGRESS
errorReason INVALID_DATA_IMPORT_TASK_KEY
errorReason DEPOSIT_ACCOUNT_LINKED_TO_LOAN_ACCOUNTS_ON_DIFFERENT_BRANCHES
errorReason SAVINGS_ACCOUNT_LINKED_TO_LOAN_ACCOUNTS_ON_DIFFERENT_BRANCHES
errorReason INVALID_DEPOSIT_ACCOUNT_HOLDER
errorReason UNLINKABLE_DEPOSIT_PRODUCT
errorReason INEXISTING_DATE_CALCULATION_METHOD
errorReason INEXISTING_NON_WORKING_DAYS_METHOD
errorReason MESSAGE_SENDING_ERROR
errorReason CONNECTION_CLOSING_ERROR
errorReason CONSUMER_SERVICE_STARTING_ERROR
errorReason CONSUMER_SERVICE_ALREADY_STARTED
errorReason CONSUMER_UNSUBSCRIPTION_FAILED
errorReason CONSUMER_SUBSCRIPTION_FAILED
errorReason INVALID_SUPPORT_ROLE_ASSOCIATION
errorReason INVALID_SUPPORT_ROLE_NAME
errorReason INVALID_SUPPORT_ROLE_USER_RIGHTS
errorReason INVALID_SUPPORT_ROLE_PERMISSIONS
errorReason LOAN_ACCOUNT_FIELD_NOT_EDITABLE
errorReason INCOMPATIBLE_ARREARS_TOLERANCE_METHOD_AND_PRODUCT_TYPE
errorReason TRANSACTION_CHANNEL_NOT_ALLOWED_WHEN_DISBURSE_TO_DEPOSIT
errorReason INVALID_TARGET_ACCOUNT_STATE_FOR_DEPOSIT
errorReason FEE_AMOUNT_ALREADY_DEFINED_IN_PRODUCT
errorReason MANDATORY_FEE_AMOUNT
errorReason INVALID_SORTING_SELECTION
errorReason BLACKLISTED_CLIENT_NOT_EDITABLE
errorReason INVALID_STRING_VALUE
errorReason NOTIFICATION_STATE_IS_REQUIRED
errorReason NOTIFICATION_EVENT_MESSAGE_IS_REQUIRED
errorReason INSTALLMENT_NUMBER_MANDATORY_FOR_FIXED_ACCOUNTS
errorReason CLIENT_ID_ANONYMIZATION_ERROR
errorReason INSTALLMENT_NUMBER_NOT_ALLOWED_FOR_DYNAMIC_ACCOUNTS
errorReason INVALID_INSTALLMENT_NUMBER
errorReason CANNOT_APPLY_FEE_ON_PAID_INSTALLMENT
errorReason MANDATORY_ACCOUNT_HOLDER_TYPE
errorReason CLIENT_DOES_NOT_HAVE_EXITED_STATE
errorReason UNSUBSCRIBE_CLIENT_FROM_NOTIFICATIONS_ERROR
errorReason CLIENT_PERSONAL_INFORMATION_ANONYMIZATION_ERROR
errorReason CLIENT_LOAN_ACCOUNTS_ANONYMIZATION_ERROR
errorReason CLIENT_SAVINGS_ACCOUNTS_ANONYMIZATION_ERROR
errorReason CLIENT_LINES_OF_CREDIT_ANONYMIZATION_ERROR
errorReason CLIENT_GUARANTEES_ANONYMIZATION_ERROR
errorReason CLIENT_NOTIFICATION_MESSAGES_ANONYMIZATION_ERROR
errorReason CLIENT_ASSOCIATED_TASKS_ANONYMIZATION_ERROR
errorReason INVALID_API_KEY
errorReason API_KEY_REFRESH_ERROR
errorReason FILE_NOT_FOUND
errorReason UPLOADED_FILE_NOT_FOUND
errorReason MISSING_CLIENT_ROLE
errorReason BACKGROUND_PROCESS_STATE_IS_REQUIRED
errorReason BACKGROUND_PROCESS_STATE_CANNOT_BE_IN_PROGRESS
errorReason BACKGROUND_PROCESS_STATE_IS_NOT_QUEUED_OR_IN_PROGRESS
errorReason BACKGROUND_PROCESS_CANCELING_FEATURE_IS_DISABLED
errorReason BACKGROUND_PROCESS_HAS_NOT_EXCEEDED_MAXIMUM_DURATION
errorReason BACKGROUND_PROCESS_IS_NOT_THE_LATEST
errorReason NOT_ALLOWED_TO_CREATE_REOPEN_ACCOUNTS_WITH_RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
errorReason NOT_ALLOWED_TO_CREATE_REOPEN_ACCOUNTS_WITH_DEPRECATED_REDUCE_NUMBER_OF_INSTALLMENTS
errorReason NOT_ALLOWED_TO_REOPEN_REVOLVING_ACCOUNTS_WITHOUT_KEEP_EMPTY_INSTALLMENTS_SCHEDULE
errorReason FEATURE_NOT_ENABLED
errorReason INVALID_SESSION
errorReason AUTOMATIC_END_OF_DAY_PROCESSING
errorReason NOT_END_OF_DAY_PROCESS
errorReason ACCOUNT_NOT_ACTIVE
errorReason DUPLICATE_ENTRY_FOR_CUSTOM_FIELD_VALUE
errorReason ACCOUNT_ACTIVATION_FAILED
errorReason INSUFFICIENT_AVAILABLE_AMOUNT_FOR_AUTHORIZATION_HOLD_ON_LOANS
errorReason INVALID_MCC_EXPIRATION_ENTRY
errorReason MCC_ALREADY_EXISTS
errorReason MCC_EXPIRATION_ENTRY_NOT_FOUND
errorReason PRODUCT_DISBURSEMENT_FEES_PREVENT_CARD_ATTACHMENT
errorReason INVALID_API_CONSUMER_USERNAME
errorReason YAML_PROCESSING_FAILED
errorReason CARD_TRANSACTION_REVERSAL_CANNOT_BE_ADJUSTED
errorReason DUPLICATE_CUSTOM_FIELD_SELECTION_ID
errorReason INVALID_CREDIT_DEBIT_INDICATOR_FOR_OPERATION
errorReason CREDIT_DEBIT_INDICATOR_MISMATCH
errorReason INVALID_CREDIT_DEBIT_INDICATOR_FOR_LOANS
errorReason CREDIT_DEBIT_CARD_TRANSACTION_FEATURE_DISABLED
errorReason BLANK_INSTITUTION_NAME
errorReason INSTITUTION_NAME_LENGTH
errorReason BLANK_DECIMAL_SEPARATOR
errorReason INVALID_DECIMAL_SEPARATOR
errorReason BLANK_DATE
errorReason INVALID_DATE_FORMAT
errorReason HAS_INVALID_DATE_CHARACTER
errorReason MISSING_REQUIRED_DATE_CHARACTER
errorReason BLANK_DATE_TIME
errorReason INVALID_DATE_TIME_FORMAT
errorReason HAS_INVALID_DATE_TIME_CHARACTER
errorReason MISSING_REQUIRED_DATE_TIME_CHARACTER
errorReason INVALID_TERMINATION_DATE
errorReason LOAN_ACCOUNT_ALREADY_FULLY_PAID
errorReason TERMINATE_LOAN_ACCOUNT_FEATURE_DISABLED
errorReason LATE_REPAYMENT_FEES_PRODUCT_NOT_ALLOWED
errorReason LOAN_ACCOUNT_SCHEDULE_EDITING_NOT_ALLOWED
errorReason AGGREGATOR_INSTALLMENT_ALREADY_HAS_CUSTOM_DUE_DATE
errorReason TERMINATED_ACCOUNT_DOES_NOT_ALLOW_EDITING_AGGREGATOR_INSTALLMENT
errorReason INVALID_SETUP_OF_LOAN_ACCOUNT_TO_TERMINATE
errorReason LOAN_ACCOUNT_TERMINATION_AFTER_LAST_INSTALLMENT_DUE_DATE
errorReason LOAN_ACCOUNT_ALREADY_TERMINATED
errorReason ROLE_ID_ALREADY_IN_USE
errorReason INVALID_CHARACTERS_IN_ROLE_ID
errorReason ROLE_NAME_ALREADY_IN_USE
errorReason REMOVED_ADMIN_FOR_CURRENT_USER
errorReason ADDED_ADMIN_FOR_CURRENT_USER
errorReason REMOVED_MAMBU_ACCESS_RIGHT_FOR_CURRENT_USER
errorReason MISSING_REQUIRED_BRANCH
errorReason CANNOT_REMOVE_TELLER_PROPERTY
errorReason CANNOT_CHANGE_BRANCH_ASSIGNMENT
errorReason CANNOT_DELETE_TELLER
errorReason A_TELLER_CANNOT_BE_ADMINISTRATOR
errorReason CREDIT_OFFICER_PROPERTY_REMOVED
errorReason CREDIT_OFFICER_PROPERTY_REMOVED_FROM_ROLE
errorReason USER_BRANCH_CHANGE
errorReason USER_DEACTIVATED
errorReason USER_DELETED
errorReason SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_AN_ADMINISTRATOR
errorReason SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_A_TELLER
errorReason SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_A_REGULAR_USER
errorReason SUPPORT_ROLE_NAME_CANNOT_BE_CHANGED
errorReason SUPPORT_ROLE_USER_RIGHTS_CANNOT_BE_CHANGED
errorReason SUPPORT_ROLE_PERMISSIONS_MUST_BE_VIEW_ONLY
errorReason INVALID_ROLE_NAME
errorReason ROLES_CONFIGURATION_EMPTY
errorReason INVALID_ROLE_ID
errorReason ROLE_IN_USE
errorReason SUPPORT_ROLE_CANNOT_BE_DELETED
errorReason NULL_OR_EMPTY_ID
errorReason MISSING_ROLE_NAME
errorReason DELIVERY_ROLE_CANNOT_BE_DELETED
errorReason DELIVERY_ROLE_NAME_CANNOT_BE_CHANGED
errorReason DELIVERY_ROLE_USER_RIGHTS_CANNOT_BE_CHANGED
errorReason DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_A_REGULAR_USER
errorReason DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_AN_ADMINISTRATOR
errorReason DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_A_TELLER
errorReason HYBRID_GROUP_NOT_AVAILABLE_FOR_DBEI_CAPITALIZED_INTEREST
errorReason HYBRID_GROUP_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason PRODUCT_LINKING_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason FUNDING_SOURCES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason TAXES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason REDRAW_AND_OFFSET_SETTINGS_ENABLED_SIMULTANEOUSLY
errorReason HYBRID_GROUP_NOT_AVAILABLE_FOR_OFFSET_LOAN
errorReason INCONSISTENT_OFFSET_SETTINGS_WITH_PRODUCT_CONFIGURATION
errorReason INCONSISTENT_OFFSET_SETTINGS_WITH_OFFSET_FEATURE
errorReason PRODUCT_LINKING_IS_MANDATORY_WHEN_OFFSET_ENABLED
errorReason LINKED_DEPOSIT_PRODUCT_DOES_NOT_ALLOW_OFFSET
errorReason LINKED_DEPOSIT_PRODUCT_DOES_NOT_EXIST
errorReason FUNDING_SOURCES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED
errorReason TAXES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED
errorReason ACCOUNT_HAS_POSITIVE_OR_ZERO_BALANCE
errorReason ACCOUNT_DOES_NOT_ALLOW_OVERDRAFT
errorReason INVALID_NOTES_LENGTH
errorReason FEE_AMORTIZATION_PROFILE_CANNOT_BE_CHANGED
errorReason FEE_AMORTIZATION_FREQUENCY_CANNOT_BE_CHANGED
errorReason FEE_AMORTIZATION_PROFILE_IS_NOT_PROVIDED
errorReason WITHDRAWAL_AMOUNT_GREATER_THAN_DUE_AMOUNT
errorReason WITHDRAWAL_COVERING_LATE_REPAYMENTS_NOT_ALLOWED_WITHOUT_REDRAW_REPAYMENT
errorReason OFFSET_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY
errorReason REDRAW_OFFSET_SIMULTANEOUSLY_INVALID_SETTLEMENT_OPTIONS
errorReason INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED_FOR_DEPOSIT_PRODUCT_SETTINGS
errorReason INTEREST_RATE_CHANGED_NOT_ALLOWED_INTEREST_APPLIANCE_TRANSACTIONS_AFTER_VALUE_DATE
errorReason BLOCKED_BALANCE_SHOULD_BE_ZERO_OR_NULL
errorReason FORWARD_AVAILABLE_BALANCE_SHOULD_BE_ZERO_OR_NULL
errorReason CUSTOM_FIELD_DEFAULT_SET_CANNOT_BE_MORE_THAN_ONE
errorReason CUSTOM_FIELD_DEFAULT_SET_ID_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_DEFAULT_SET_NAME_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_DEFAULT_DESCRIPTION_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_DEFAULT_SET_TYPE_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_SET_BLANK_ID
errorReason CUSTOM_FIELD_SET_INVALID_ID_LENGTH
errorReason CUSTOM_FIELD_SET_INVALID_ID_FORMAT
errorReason CUSTOM_FIELD_SET_MISSING_ID_PREFIX
errorReason CUSTOM_FIELD_SET_DUPLICATE_ID
errorReason CUSTOM_FIELD_SET_ID_RESERVED_KEYWORD
errorReason CUSTOM_FIELD_SET_BLANK_NAME
errorReason CUSTOM_FIELD_SET_NAME_LENGTH
errorReason CUSTOM_FIELD_SET_DUPLICATE_NAME
errorReason CUSTOM_FIELD_SET_TYPE_REQUIRED
errorReason CUSTOM_FIELD_SET_TYPE_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_SET_AVAILABLE_FOR_REQUIRED
errorReason CUSTOM_FIELD_SET_AVAILABLE_FOR_CANNOT_BE_CHANGED
errorReason CUSTOM_FIELD_BLANK_ID
errorReason CUSTOM_FIELD_INVALID_ID_LENGTH
errorReason CUSTOM_FIELD_INVALID_ID_FORMAT
errorReason CUSTOM_FIELD_DUPLICATE_ID
errorReason CUSTOM_FIELD_RESERVED_ID
errorReason CUSTOM_FIELD_BLANK_NAME
errorReason CUSTOM_FIELD_NAME_LENGTH
errorReason CUSTOM_FIELD_DUPLICATE_NAME
errorReason CUSTOM_FIELD_DEPENDENT_INVALID_TYPE_FOR_FIELD_WITH_DEPENDENT_FIELD
errorReason CUSTOM_FIELD_DEPENDENT_FIELD_DOES_NOT_EXIST_IN_SET
errorReason CUSTOM_FIELD_DEPENDENT_INVALID_TYPE_FOR_THE_DEPENDENT_FIELD
errorReason CUSTOM_FIELD_SELECTIONS_OPTION_CANNOT_BE_DELETED
errorReason CUSTOM_FIELD_SELECTIONS_FOR_SELECTION_ID_PRESENT_BUT_NO_DEPENDENT_FIELD
errorReason CUSTOM_FIELD_SELECTIONS_DEPENDENT_FIELD_PRESENT_BUT_FOR_SELECTION_IS_MISSING
errorReason CUSTOM_FIELD_SELECTIONS_FOR_SELECTION_ID_COULD_NOT_BE_FOUND_IN_THE_DEPENDENT_FIELD
errorReason CUSTOM_FIELD_SELECTIONS_DUPLICATED_SELECTION_IDS
errorReason CUSTOM_FIELD_SELECTIONS_SELECTION_ID_SHOULD_NOT_BE_EMPTY
errorReason CUSTOM_FIELD_SELECTIONS_SELECTION_ID_CONTAINS_INVALID_CHARACTERS
errorReason CUSTOM_FIELD_SELECTIONS_INVALID_SCORE_NUMBER
errorReason CUSTOM_FIELD_SELECTIONS_DEPENDENT_FIELD_OPTIONS_NOT_COVERED
errorReason CUSTOM_FIELD_SELECTIONS_DUPLICATE_OPTION_VALUES
errorReason CUSTOM_FIELD_SELECTIONS_VALUE_CANNOT_BE_EMPTY
errorReason CUSTOM_FIELD_SELECTIONS_CIRCULAR_DEPENDENCY
errorReason CUSTOM_FIELD_SELECTION_OPTIONS_ARE_REQUIRED
errorReason CUSTOM_FIELD_ACCESS_RIGHTS_INVALID_ROLE_ID
errorReason CUSTOM_FIELD_SUPPORT_ROLE_INVALID_RIGHTS
errorReason CUSTOM_FIELD_BLANK_ROLE_ID
errorReason CUSTOM_FIELD_USAGE_BLANK_ID
errorReason CUSTOM_FIELD_USAGE_ID_NOT_FOUND
errorReason CUSTOM_FIELD_INVALID_USAGE_FOR_RECORD_TYPE
errorReason CUSTOM_FIELD_INVALID_USAGE_FOR_FIELD
errorReason CUSTOM_FIELD_USAGE_FOR_RECORD_TYPE_NOT_ALLOWED
errorReason CUSTOM_FIELD_USAGE_FOR_RECORD_TYPE_REQUIRED
errorReason CUSTOM_FIELD_SELECTION_USAGE_NOT_ALLOWED
errorReason CUSTOM_FIELD_SELECTION_REQUIRED_NOT_ALLOWED
errorReason CUSTOM_FIELD_SELECTION_DEFAULT_NOT_ALLOWED
errorReason CUSTOM_FIELD_BLANK_TYPE
errorReason CUSTOM_FIELD_TYPE_CHANGED
errorReason CUSTOM_FIELD_VALIDATION_RULES_NOT_ALLOWED
errorReason CUSTOM_FIELD_VALIDATION_RULES_DUPLICATE_VALUES
errorReason CUSTOM_FIELD_STATE_REQUIRED
errorReason CUSTOM_FIELD_DISPLAY_SETTINGS_REQUIRED
errorReason CUSTOM_FIELD_DESCRIPTION_LENGTH_EXCEEDED
errorReason CUSTOM_FIELD_SIZE_REQUIRED
errorReason CUSTOM_FIELD_SET_BUILT_IN_USAGE
errorReason CUSTOM_FIELD_DUPLICATE_USAGE_ID
errorReason CUSTOM_FIELD_DUPLICATE_ROLE_ID
errorReason CUSTOM_FIELD_ACCESS_RIGHTS_REQUIRED
errorReason CUSTOM_FIELD_ACCESS_RIGHTS_ROLES_REQUIRED
errorReason CUSTOM_FIELD_ACCESS_RIGHTS_ALL_USERS_REQUIRED
errorReason CUSTOM_FIELD_ACCESS_RIGHTS_ALL_USERS_FALSE_WHEN_ROLES_SPECIFIED
errorReason CUSTOM_FIELD_SELECTION_OPTIONS_NULL
errorReason CUSTOM_FIELD_AVAILABLE_OPTIONS_NULL
errorReason CUSTOM_FIELD_NULL_USAGE
errorReason CUSTOM_FIELD_SET_NULL_FIELD
errorReason CUSTOM_FIELDS_CONFIGURATION_EMPTY
errorReason CUSTOM_FIELD_SET_NULL_ENTRY
errorReason CONFIGURATION_AS_CODE_UPDATE_IN_PROGRESS
errorReason CONFIGURATION_AS_CODE_FEATURE_DISABLED
errorReason PREPAYMENT_RECALCULATION_METHOD_ON_REPAYMENT_NOT_ALLOWED_FOR_LOAN_ACCOUNT
errorReason PREPAYMENT_RECALCULATION_METHOD_ON_REPAYMENT_NOT_SUPPORTED
errorReason CONFLICT_BETWEEN_EDIT_SCHEDULE_OPERATIONS_AND_ATTEMPTED_PREPAYMENT_RECALCULATION_METHOD
errorReason CONFLICT_BETWEEN_PREPAYMENT_RECALCULATION_METHOD_FROM_TRANSACTIONS_AND_NEW_SCHEDULE_EDIT
errorReason EDITING_INSTALLMENTS_DUE_BEFORE_LAST_PAID_INSTALLMENT_IS_NOT_ALLOWED
errorReason INVALID_INSTALLMENT_KEY
errorReason INVALID_REPAYMENT_AMOUNT_FOR_SPECIFIC_INSTALLMENT
errorReason SPECIFIC_INSTALLMENT_REPAYMENTS_NOT_ALLOWED_IF_GENERIC_REPAYMENTS_EXIST
errorReason GENERIC_REPAYMENTS_NOT_ALLOWED_IF_SPECIFIC_INSTALLMENT_REPAYMENTS_EXIST
errorReason INSTALLMENT_ALREADY_PAID
errorReason PREPAYMENT_RECALCULATION_METHOD_NOT_SUPPORTED
errorReason ONLY_IOI_METHOD_SUPPORTED
errorReason ACCRUE_LATE_INTEREST_NOT_SUPPORTED
errorReason ONLY_PARTIALLY_PAID_STATUS_SUPPORTED
errorReason ONLY_NO_PENALTY_PRODUCTS_SUPPORTED
errorReason ACCOUNT_IS_LOCKED
errorReason ONLY_STANDARD_PAYMENTS_SUPPORTED
errorReason ARBITRARY_FEES_NOT_SUPPORTED
errorReason TAXES_ON_INTEREST_NOT_SUPPORTED
errorReason REPAYMENT_DUE_DATE_DUPLICATED
errorReason TAXES_ON_FEE_NOT_SUPPORTED
errorReason CHANGING_NO_OF_POSITIVE_PRINCIPAL_INSTALLMENTS_NOT_ALLOWED
errorReason INSTALLMENTS_ADJUSTMENT_DETAILS_NOT_EXPECTED
errorReason INSTALLMENTS_ADJUSTMENT_DETAILS_NOT_EXPECTED_BULK
errorReason INSTALLMENTS_ADJUSTMENT_DETAILS_MISSING
errorReason INSTALLMENT_NOT_FOUND
errorReason INSTALLMENT_DUPLICATED
errorReason INSTALLMENT_STATE_NOT_ALLOWED
errorReason NOT_ALLOWED_FOR_CURRENT_ACCOUNT_TYPE
errorReason NOT_ALLOWED_BEFORE_ACTIVATION_DATE
errorReason NOT_ALLOWED_BEFORE_OR_DURING_PAID_INSTALLMENT
errorReason GET_NOTIFICATION_MESSAGE_UPDATE_FAILURE
errorReason INVALID_CUSTOM_FILTER_CONSTRAINT_OPERATOR
errorReason EMPTY_CUSTOM_FILTER_CONSTRAINT_VALUE
errorReason INVALID_CUSTOM_FILTER_CONSTRAINT_VALUE
errorReason INVALID_CUSTOM_FILTER_CONSTRAINT_OPERATOR_USAGE
errorReason EMPTY_TRANSACTION_CHANNEL_NAME
errorReason EMPTY_TRANSACTION_CHANNEL_ID
errorReason INVALID_CUSTOM_FILTER_CONSTRAINT_TYPE
errorReason INVALID_CUSTOM_FILTER_USAGE
errorReason INVALID_CUSTOM_FILTER_CRITERIA
errorReason INTEREST_ACCRUAL_BREAKDOWN_INTERNAL_ERROR
errorReason INTEREST_ACCRUAL_BREAKDOWN_BAD_REQUEST
errorReason INTEREST_VALID_FROM_DATE_BEFORE_INDEX_INTEREST_RATE_DATE
errorReason DISBURSEMENT_DATE_DIFFERENT_THAN_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE
errorReason ANTICIPATED_DISBURSEMENT_DATE_NOT_EQUAL_WITH_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE
errorReason ACCOUNT_INTEREST_SPREAD_IS_NOT_BETWEEN_LIMITS
errorReason ACCOUNT_INTEREST_RATE_IS_NOT_BETWEEN_LIMITS
errorReason PRODUCT_DOES_NOT_SUPPORT_ADJUSTABLE_RATES
errorReason MISSING_ADJUSTABLE_RATES
errorReason NOT_ALLOW_NEGATIVE_FLOOR_OR_CEILING_VALUE
errorReason FLOOR_VALUE_GREATER_THAN_CEILING_VALUE_ERROR
errorReason INCONSISTENT_INDEX_SOURCE_KEY_ON_ACCOUNT_LEVEL
errorReason INCONSISTENT_FIXED_INTEREST_RATE_SOURCE_SETUP_ON_ACCOUNT_LEVEL
errorReason INVALID_DISBURSEMENT_DATE_NOT_EQUAL_WITH_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE
errorReason DUPLICATE_BLOCK_ID
errorReason INVALID_BLOCK_FUND_STATE
errorReason BLOCK_FUND_DOES_NOT_EXIST
errorReason S3_REGION_NOT_FOUND
errorReason INVALID_TRANSACTION_CHANNEL_ID
errorReason INVALID_ACCOUNTING_METHOD
errorReason MISSING_RULE
errorReason NOT_REQUIRED_RULE
errorReason HEADER_ACCOUNT_NOT_ALLOWED
errorReason INVALID_GLACCOUNT_TYPE
errorReason RULE_WITHOUT_GLACCOUNT
errorReason INVALID_INTEREST_ACCRUED_METHOD
errorReason GLACCOUNTS_ARE_NOT_IN_ORGANIZATION_OR_PRODUCT_CURRENCY
errorReason INCONSISTENT_GLACCOUNTS_CURRENCY_SETUP
errorReason INCONSISTENT_FEE_GLACCOUNTS_CURRENCY_SETUP
errorReason INVALID_GL_ACCOUNT_CURRENCY
errorReason CANNOT_EDIT_GL_ACCOUNT_CURRENCY_AS_ACCOUNT_IS_IN_USE
errorReason FOREIGN_CURRENCY_IS_NOT_ALLOWED
errorReason INEXISTING_GLACCOUNT
errorReason GLACCOUNTS_ARE_NOT_IN_PRODUCT_CURRENCY
errorReason CHANGE_ARREARS_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_TOLERANCE_CALCULATION_METHOD
errorReason INVALID_BULK_PROCESS_KEY
errorReason BULK_API_REQUEST_SIZE_LIMIT_REACHED
errorReason POSITIVE_AMOUNT_REQUIRED
errorReason ID_NOT_UNIQUE
errorReason ENCODED_KEY_NOT_FOUND
errorReason CHANGE_MONTHLY_REPAYMENT_DAY_NOT_ALLOWED_FOR_ACCOUNTS_WITH_CUSTOM_SCHEDULE
errorReason CHANGE_MONTHLY_REPAYMENT_DAY_ALLOWED_ONLY_FOR_ACCOUNTS_WITH_A_SINGLE_FIXED_DAY_OF_MONTH
errorReason INVALID_INTEREST_ROUNDING_VERSION
errorReason FEE_NOT_AVAILABLE_FOR_PRODUCT
errorReason MAXIMUM_DEPOSIT_BALANCE_EXCEEDED
errorReason MAX_DEPOSIT_BALANCE_NOT_AVAILABLE_FOR_INVESTOR_ACCOUNTS
errorReason INVALID_INTEREST_AVAILABILITY
errorReason INTEREST_TYPE_NOT_SUPPORTED
errorReason PRODUCT_DOES_NOT_ALLOW_INTEREST_SETTINGS
errorReason PRODUCT_DOES_NOT_ALLOW_NEGATIVE_INTEREST_RATE
errorReason INVALID_INTEREST_RATE_SETTINGS
errorReason DELETE_FIRST_INTEREST_AVAILABILITY_NOT_ALLOWED
errorReason INTEREST_AVAILABILITY_DOES_NOT_BELONG_TO_SAVINGS_ACCOUNT
errorReason INTEREST_RATE_TERMS_NOT_SUPPORTED
errorReason OPERATIONS_ON_BACKDATED_INTEREST_AVAILABILITY_NOT_ALLOWED_FOR_CURRENT_ACCOUNT_STATE
errorReason BULK_INTEREST_AVAILABILITY_ACCOUNTS_LIMIT_REACHED
errorReason BRANCHES_CONFIGURATION_EMPTY
errorReason NULL_BRANCH_ENTRY
errorReason BRANCH_NAME_LENGTH
errorReason BLANK_BRANCH_NAME
errorReason BRANCH_ID_LENGTH
errorReason BLANK_BRANCH_ID
errorReason DUPLICATE_BRANCH_ID
errorReason BRANCH_EMAIL_FORMAT
errorReason BRANCH_EMAIL_LENGTH
errorReason BRANCH_PHONE_LENGTH
errorReason ADDRESS_FIELD_LENGTH
errorReason BLANK_HOLIDAY_ID
errorReason INVALID_HOLIDAY_ID
errorReason DUPLICATE_HOLIDAY_ID
errorReason BLANK_HOLIDAY_NAME
errorReason HOLIDAY_NAME_LENGTH
errorReason HOLIDAY_DAY_OF_MONTH_ERROR
errorReason HOLIDAY_MONTH_OF_YEAR_ERROR
errorReason HOLIDAY_YEAR_ERROR
errorReason HOLIDAY_VALID_DATE_ERROR
errorReason CANNOT_DEACTIVATE_BRANCH
errorReason HOLIDAY_EMPTY_ANNUALLY_RECURRING
errorReason HOLIDAY_EMPTY_DATE
errorReason CENTRE_CONFIGURATION_EMPTY
errorReason CENTRE_ID_LENGTH
errorReason BLANK_CENTRE_ID
errorReason DUPLICATE_CENTRE_ID
errorReason CENTRE_NAME_LENGTH
errorReason BLANK_CENTRE_NAME
errorReason INVALID_CENTRE_MEETING_DAY
errorReason BLANK_CENTRE_BRANCH_ID
errorReason BRANCH_IS_INACTIVE
errorReason BRANCH_DOES_NOT_EXIST
errorReason CENTRE_STATE_BLANK
errorReason NULL_CENTRE_ENTRY
errorReason DEPOSIT_PRODUCT_CONFIGURATION_EMPTY
errorReason BLANK_DEPOSIT_PRODUCT_NAME
errorReason BLANK_DEPOSIT_PRODUCT_ID
errorReason DEPOSIT_PRODUCT_ID_LENGTH
errorReason DEPOSIT_PRODUCT_DUPLICATE_ID
errorReason DEPOSIT_PRODUCT_CONFIGURATION_NULL_ENTRY
errorReason DEPOSIT_PRODUCT_NAME_LENGTH
errorReason BLANK_DEPOSIT_PRODUCT_TYPE
errorReason BLANK_DEPOSIT_PRODUCT_CATEGORY
errorReason BLANK_DEPOSIT_PRODUCT_NEW_ACCOUNT_SETTINGS
errorReason BLANK_DEPOSIT_PRODUCT_ID_PATTERN
errorReason DEPOSIT_PRODUCT_ID_PATTERN_LENGTH
errorReason DEPOSIT_PRODUCT_INVALID_ID_PATTERN_FORMAT
errorReason DEPOSIT_PRODUCT_INVALID_ID_PATTERN_NUMBER
errorReason BLANK_DEPOSIT_PRODUCT_ID_GENERATOR_TYPE
errorReason DEPOSIT_PRODUCT_AVAILABILITY_SETTINGS_BLANK
errorReason DEPOSIT_PRODUCT_BRANCH_AVAILABILITY_SETTINGS_BLANK
errorReason DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_BLANK
errorReason DEPOSIT_PRODUCT_AVAILABILITY_BRANCH_DOES_NOT_EXIST
errorReason DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_FALSE
errorReason DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_TRUE
errorReason DEPOSIT_PRODUCT_AVAILABILITY_DUPLICATE_BRANCH
errorReason DEPOSIT_PRODUCT_AVAILABILITY_INACTIVE_BRANCH
errorReason DEPOSIT_PRODUCT_AVAILABILITY_FOR_INDIVIDUALS_BLANK
errorReason DEPOSIT_PRODUCT_AVAILABILITY_FOR_GROUPS_BLANK
errorReason DEPOSIT_PRODUCT_CURRENCY_NOT_DEFINED
errorReason BLANK_DEPOSIT_PRODUCT_CURRENCY
errorReason DEPOSIT_PRODUCT_MULTIPLE_CURRENCIES_NOT_ALLOWED
errorReason DEPOSIT_PRODUCT_INVALID_MATURITY_MIN_MAX
errorReason DEPOSIT_PRODUCT_INVALID_WITHHOLDING_TAX_ENABLED
errorReason DEPOSIT_PRODUCT_NEGATIVE_TERM_LENGTH
errorReason DEPOSIT_PRODUCT_FIELD_NOT_EDITABLE
errorReason DEPOSIT_PRODUCT_INTERNAL_CONTROL_DORMANCY_RANGE
errorReason DEPOSIT_PRODUCT_INTERNAL_CONTROL_RECOMMENDED_AMOUNT_RANGE
errorReason DEPOSIT_PRODUCT_INTERNAL_CONTROL_MAX_WITHDRAWAL_AMOUNT_RANGE
errorReason DEPOSIT_PRODUCT_INTERNAL_CONTROL_INVALID_OPENING_BALANCE
errorReason DEPOSIT_PRODUCT_INTERNAL_CONTROL_ALLOW_OFFSET_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_FREQUENCY
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_DAYS_IN_YEAR_METHOD_NOT_ALLOWED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_DAYS_IN_YEAR
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_DEFAULT_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_MAX_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_MIN_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_DEFAULT_MIN_MAX_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEX_INTEREST_RATE_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_INDEX_RATE_SOURCE_KEY
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_MANDATORY_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_MANDATORY_REVIEW_UNIT
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_MANDATORY_REVIEW_COUNT
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INTEREST_REVIEW_COUNT
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_FOR_REGULAR_INTEREST_FEATURE_DISABLED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_READONLY_INTEREST_RATE_TERMS
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEXED_INTEREST_RATE_SOURCE_DEFINED_FOR_FIXED_INTEREST_RATE_SOURCE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_MAXIMUM_BALANCE_VALUE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_MAXIMUM_BALANCE_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIERED_BAND_NOT_AVAILABLE_FOR_INTEREST
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIERS_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_TIERS
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_ENDING_DAY_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_ENDING_BALANCE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_ENDING_BALANCE_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_DOES_NOT_ALLOW_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_ENDING_DAY
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_NOT_ENABLED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_MAMBU_NOT_ENABLED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_CANNOT_DISABLE_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_NOT_ALLOWED_FOR_INTEREST_RATE_TERM
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_PRODUCT_TYPE_NOT_ALLOWS_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_NOT_ALLOWED_WITHHOLDING_TAXES_AND_NEGATIVE_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_WITHHOLDING_TAX_NOT_AVAILABLE_INTEREST_TIERED_BAND
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_NOT_ALLOWED
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_DAYS_IN_YEAR_METHOD
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INDEX_RATE_SOURCE_KEY
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_ENDING_DAY_LESS_THAN_STARTING_DAY
errorReason DEPOSIT_PRODUCT_INTEREST_SETTINGS_ENDING_BALANCE_LESS_THAN_STARTING_BALANCE
errorReason SAVINGS_FEE_INCOMPATIBLE_INPUT
errorReason ARBITRARY_SAVINGS_FEE_NOT_ALLOWED
errorReason SAVINGS_FEE_BLANK_ID
errorReason CANNOT_DELETE_SAVINGS_FEE
errorReason INTEREST_ACCRUED_METHOD_INVALID
errorReason INVALID_INTEREST_ACCRUAL_CALCULATION
errorReason ACCOUNTING_RULE_WITHOUT_GLACCOUNT
errorReason HEADER_GL_ACCOUNT_NOT_ALLOWED
errorReason DISABLED_DEPOSIT_INTEREST_FEATURE
errorReason NOT_REQUIRED_ACCOUNTING_RULE
errorReason INVALID_RULE_GLACCOUNT_TYPE
errorReason INVALID_GLACCOUNT_CURRENCY
errorReason INCONSISTENT_CURRENCY_SETUP_FOR_GLACCOUNTS
errorReason INCONSISTENT_CURRENCY_SETUP_ON_FEE_GLACCOUNTS
errorReason MISSING_ACCOUNTING_RULE
errorReason ACCOUNTING_ACTIONS_NOT_FULLY_DEFINED
errorReason ACCOUNTING_RULE_CURRENCY_NOT_DEFINED
errorReason GL_RULE_CURRENCY_NOT_DEFINED
errorReason DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MAX_LIMIT
errorReason DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_MAX_LIMIT
errorReason DEPOSIT_PRODUCT_OVERDRAFT_ALLOW_TECHNICAL_OVERDRAFT_CANNOT_BE_DISABLED
errorReason DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INTEREST_SETTINGS
errorReason DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MIN_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MAX_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INDEX_RATE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INTEREST_REVIEW_UNIT
errorReason DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_INTEREST_REVIEW_COUNT
errorReason DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_DAYS_IN_YEAR
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INVALID_DAYS_IN_YEAR_VALUE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_TIERED_BAND_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_TIERED_PERIOD_NOT_AVAILABLE
errorReason UPDATE_DEPOSIT_PRODUCTS_ERROR
errorReason DEPOSIT_PRODUCT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_CRYPTOCURRENCIES
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_CRYPTOCURRENCIES
errorReason DEPOSIT_PRODUCT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_NON_TRADITIONAL_CURRENCIES
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_NON_TRADITIONAL_CURRENCIES
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INDEX_RATE_AVAILABLE_ONLY_FOR_FIXED_TERMS
errorReason DEPOSIT_PRODUCT_HAS_ASSOCIATED_LOAN_PRODUCTS
errorReason DEPOSIT_PRODUCT_INTEREST_RATE_MUST_BE_ZERO_FOR_PRODUCTS_WITH_EXTERNAL_INTEREST
errorReason DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_DEFAULT_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SOURCE_IS_MANDATORY
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_MIN_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_MAX_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_DEFAULT_INTEREST_RATE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_MIN_MAX_DEFAULT_TUPLE_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_EMPTY_INTEREST_SETTINGS
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INDEX_INTEREST_NOT_AVAILABLE
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INTEREST_RATE_SOURCE_IS_MANDATORY
errorReason DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_CALCULATION_FREQUENCY
errorReason CF_SET_ID_ERROR
errorReason CF_SET_INVALID_ID
errorReason CF_SET_DUPLICATE_ID
errorReason CF_GROUPED_SET_EMPTY_ERROR
errorReason CF_GROUPED_SET_INDEX_DUPLICATE_ERROR
errorReason CF_STANDARD_VALUES_DEFINED_FOR_GROUPED_SET_ERROR
errorReason CF_GROUPED_VALUES_DEFINED_FOR_STANDARD_SET_ERROR
errorReason CF_GROUPED_SET_CF_ID_DUPLICATE_ERROR
errorReason CF_STANDARD_SET_CF_ID_DUPLICATE_ERROR
errorReason CUSTOM_FIELD_ID_BLANK_ERROR
errorReason CUSTOM_FIELD_ID_INVALID_ERROR
errorReason CF_VALUE_CHECKBOX_TYPE_INVALID_ERROR
errorReason CF_VALUE_CLIENT_LINK_TYPE_INVALID_ERROR
errorReason CF_VALUE_DATE_TYPE_INVALID_ERROR
errorReason CF_VALUE_GROUP_LINK_TYPE_INVALID_ERROR
errorReason CF_VALUE_NUMBER_TYPE_INVALID_ERROR
errorReason CF_VALUE_SELECTION_TYPE_INVALID_ERROR
errorReason CF_VALUE_USER_LINK_TYPE_INVALID_ERROR
errorReason CF_VALUES_EMPTY_ERROR
errorReason CF_GROUPED_SET_NULL_INDEX_ERROR
errorReason CF_GROUPED_SET_INDEX_UNORDERED_ERROR
errorReason DUPLICATE_NON_WORKING_DAYS
errorReason INVALID_GENERAL_HOLIDAY_IDENTIFIER
errorReason HOLIDAY_ID_NOT_UNIQUE_INVALID_OPERATION
errorReason HOLIDAY_ID_OUT_OF_LIMITS
errorReason CLIENT_ROLE_EMPTY_CONFIGURATION
errorReason CLIENT_ROLE_NULL_ROLES_CONFIG
errorReason CLIENT_ROLE_NULL_ROLES
errorReason CLIENT_ROLE_ID_LENGTH
errorReason CLIENT_ROLE_BLANK_ID
errorReason CLIENT_ROLE_DUPLICATE_ID
errorReason CLIENT_ROLE_NAME_LENGTH
errorReason CLIENT_ROLE_BLANK_NAME
errorReason CLIENT_ROLE_DUPLICATE_NAME
errorReason CLIENT_ROLE_IDENTIFICATION_DOCUMENT_ERROR
errorReason CLIENT_ROLE_ID_TEMPLATE_LENGTH
errorReason CLIENT_ROLE_ID_TEMPLATE_FORMAT
errorReason CLIENT_ROLE_DESCRIPTION_LENGTH
errorReason CLIENT_ROLE_DEFAULT_ROLE_REQUIRED
errorReason CLIENT_ROLE_BLANK_TYPE
errorReason CLIENT_ROLE_DUPLICATE_TYPES
errorReason DEFAULT_ROLE_ID
errorReason EXPOSURE_AMOUNT_RANGE_VIOLATION
errorReason EXPOSURE_AMOUNT_REQUIRED
errorReason ARREARS_DAYS_BEFORE_WRITE_OFF_RANGE_VIOLATION
errorReason MAX_ALLOWED_UNDO_CLOSURE_PERIOD_RANGE_VIOLATION
errorReason MIN_GROUP_SIZE_LIMIT_RANGE_VIOLATION
errorReason MIN_GROUP_SIZE_LIMIT_REQUIRED
errorReason MAX_GROUP_SIZE_LIMIT_RANGE_VIOLATION
errorReason MAX_LOWER_THAN_MIN_GROUP_SIZE_LIMIT
errorReason MAX_GROUP_SIZE_LIMIT_REQUIRED
errorReason LOAN_RISK_LEVELS_CONFIGURATION_EMPTY
errorReason NULL_LOAN_RISK_LEVEL_ENTRY
errorReason LOAN_RISK_LEVEL_ID_LENGTH
errorReason BLANK_LOAN_RISK_LEVEL_ID
errorReason DUPLICATE_LOAN_RISK_LEVEL_ID
errorReason NON_ALPHANUMERIC_LOAN_RISK_LEVEL_ID
errorReason LOAN_RISK_LEVEL_NAME_LENGTH
errorReason LOAN_RISK_LEVEL_NAME_BLANK
errorReason NEGATIVE_ARREARS_DAYS_NUMBER
errorReason EMPTY_ARREARS_DAYS_NUMBER
errorReason ARREARS_DAYS_NUMBER_SIZE
errorReason BLANK_PROVISIONING_PERCENT
errorReason GROUP_ROLE_NAMES_EMPTY_CONFIGURATION
errorReason GROUP_ROLE_NAMES_NULL_CONFIG
errorReason GROUP_ROLE_NAME_BLANK_ID
errorReason GROUP_ROLE_NAME_ID_LENGTH
errorReason GROUP_ROLE_NAME_DUPLICATE_ID
errorReason GROUP_ROLE_NAME_BLANK_NAME
errorReason GROUP_ROLE_NAME_LENGTH
errorReason OBJECT_LABELS_CONFIGURATION_EMPTY
errorReason NULL_OBJECT_LABELS_ENTITY
errorReason DUPLICATE_OBJECT_LABEL_PAIR
errorReason INVALID_NUMBER_OF_OBJECT_LABEL_PAIRS
errorReason NULL_OBJECT_LABELS_VALUE_ENTITY
errorReason MISSING_LANGUAGE
errorReason DUPLICATE_LANGUAGE
errorReason EMPTY_SINGULAR_OBJECT_LABEL_VALUE
errorReason EMPTY_PLURAL_OBJECT_LABEL_VALUE
errorReason ACCOUNTING_RULE_BLANK_ID
errorReason ID_NOT_ALPHANUMERIC
errorReason INVALID_ID_LENGTH
errorReason ACCOUNTING_RULE_DUPLICATE_ID
errorReason ACCOUNTING_RULES_CONFIGURATION_EMPTY
errorReason NULL_CUSTOM_ACCOUNTING_RULE_ENTRY
errorReason DUPLICATE_RULE_FOR_CURRENCY
errorReason BRANCHES_ARE_EQUAL
errorReason GLACCOUNT_NOT_SET
errorReason BRANCHES_NOT_SET
errorReason GLACCOUNT_DOESNT_EXIST
errorReason BRANCHES_MUST_BE_SET
errorReason BOTH_BRANCHES_MUST_BE_SET_OR_BOTH_BRANCHES_NOT_SET
errorReason DEFAULT_RULE_ALLOWS_ONLY_GLACCOUNT_IN_ORGBASE_CURRENCY
errorReason ONLY_FOREIGN_CURRENCY_ALLOWED_FOR_ALL_BRANCHES_TO_ALL_BRANCHES_RULE
errorReason GLACCOUNT_MUST_HAVE_ORGBASE_CURRENCY
errorReason NEGATIVE_AUTOMATED_ACCOUNTING_CLOSURES_INTERVAL
errorReason AUTOMATED_ACCOUNTING_CLOSURES_INTERVAL_EXCEEDS_LIMIT
errorReason DEFAULT_GLACCOUNT_DOESNT_EXIST
errorReason ACCOUNTING_RULE_INVALID_BRANCH_ID
errorReason ACCOUNTING_RULE_EMPTY_BRANCH_ID
errorReason AUTHORIZATION_HOLDS_CONFIGURATION_EMPTY
errorReason NULL_AUTHORIZATION_HOLD_ENTITY
errorReason NULL_DEFAULT_AUTHORIZATION_HOLD_ENTITY
errorReason NON_EMPTY_MCC_FOR_DEFAULT_AUTHORIZATION_HOLD
errorReason NON_EMPTY_DESCRIPTION_FOR_DEFAULT_AUTHORIZATION_HOLD
errorReason INVALID_DAYS_TO_EXPIRE_FOR_DEFAULT_AUTHORIZATION_HOLD
errorReason EMPTY_MCC_FOR_AUTHORIZATION_HOLD
errorReason INVALID_DAYS_TO_EXPIRE_FOR_AUTHORIZATION_HOLD
errorReason INVALID_DESCRIPTION_FOR_AUTHORIZATION_HOLD
errorReason NON_UNIQUE_MCC_FOR_AUTHORIZATION_HOLD
errorReason ID_DOCUMENT_TEMPLATES_CONFIGURATION_EMPTY
errorReason NULL_ID_DOCUMENT_TEMPLATE_ENTRY
errorReason ID_DOCUMENT_TEMPLATE_ID_LENGTH
errorReason BLANK_ID_DOCUMENT_TEMPLATE
errorReason DUPLICATE_ID_DOCUMENT_TEMPLATE_ID
errorReason NON_ALPHANUMERIC_ID_DOCUMENT_TEMPLATE_ID
errorReason BLANK_DOCUMENT_TYPE
errorReason DOCUMENT_TYPE_LENGTH
errorReason BLANK_DOCUMENT_ID_TEMPLATE
errorReason DOCUMENT_ID_TEMPLATE_LENGTH
errorReason BLANK_ISSUING_AUTHORITY
errorReason ISSUING_AUTHORITY_LENGTH
errorReason BLANK_MANDATORY_FOR_CLIENT
errorReason BLANK_ALLOW_ATTACHMENTS
errorReason BASE_CURRENCY
errorReason BASE_CURRENCY_REQUIRED
errorReason BASE_CURRENCY_EDITED
errorReason CURRENCY_CODE_REQUIRED
errorReason CURRENCY_NAME_REQUIRED
errorReason CURRENCY_SYMBOL_REQUIRED
errorReason SYMBOL_POSITION_REQUIRED
errorReason CURRENCY_NAME_LENGTH
errorReason CURRENCY_SYMBOL_LENGTH
errorReason CURRENCY_REQUIRED
errorReason FOREIGN_CURRENCY_NULL_ENTRIES
errorReason DUPLICATE_BASE_CURRENCY
errorReason DUPLICATE_FOREIGN_CURRENCY
errorReason EXCHANGE_RATE_REQUIRED
errorReason BUY_EXCHANGE_RATE_REQUIRED
errorReason SELL_EXCHANGE_RATE_REQUIRED
errorReason ACCOUNTING_RATES_REQUIRED
errorReason ACCOUNTING_RATE_REQUIRED
errorReason ACCOUNTING_RATE_CAN_NOT_BE_SET
errorReason BUY_EXCHANGE_RATE_RANGE_VIOLATION
errorReason SELL_EXCHANGE_RATE_RANGE_VIOLATION
errorReason ACCOUNTING_RATE_RANGE_VIOLATION
errorReason RATE_START_DATE_REQUIRED
errorReason EXCHANGE_RATES_NULL_ENTRIES
errorReason BUY_RATE_GRATER_THAN_SELL_RATE
errorReason ACCOUNTING_RATES_NULL_ENTRIES
errorReason START_DATE_BEFORE_PREVIOUS_RATE
errorReason EDIT_EXISTING_RATE_NOT_ALLOWED
errorReason EXISTING_RATES_REMOVAL_NOT_ALLOWED
errorReason GL_JOURNAL_ENTRIES_USING_CURRENT_RATES
errorReason BEFORE_CONFIGURATION_START_DATE
errorReason MULTICURRENCY_FEATURE_IS_DISABLED
errorReason DUPLICATE_RATE_START_DATE
errorReason CUSTOM_PAYMENT_AMOUNT_DUPLICATE_PREDEFINED_FEE
errorReason CUSTOM_PAYMENT_AMOUNT_TYPE_DISALLOWS_PREDEFINED_FEE
errorReason CUSTOM_PAYMENT_AMOUNT_TYPE_DOES_NOT_MATCH_PREDEFINED_FEE
errorReason CUSTOM_PAYMENT_AMOUNT_TYPE_SHOULD_HAVE_FEE_NAME_FIRST
errorReason EXCHANGE_RATE_SHOULD_BE_EMPTY
errorReason CURRENCY_CODE_LENGTH
errorReason CURRENCY_CODE_INVALID_CHARACTERS
errorReason INVALID_CURRENCY_TYPE
errorReason INVALID_YAML_SYNTAX
errorReason LOAN_PRODUCT_CONFIGURATION_EMPTY
errorReason LOAN_PRODUCT_CONFIGURATION_NULL_ENTRY
errorReason LOAN_PRODUCT_DUPLICATE_ID
errorReason LOAN_PRODUCT_ID_LENGTH
errorReason LOAN_PRODUCT_NAME_LENGTH
errorReason BLANK_LOAN_PRODUCT_ID
errorReason BLANK_LOAN_PRODUCT_NAME
errorReason BLANK_LOAN_PRODUCT_TYPE
errorReason BLANK_LOAN_PRODUCT_CATEGORY
errorReason UPDATE_LOAN_PRODUCTS_ERROR
errorReason UPDATE_LOAN_PRODUCTS_UNKNOWN_ERROR
errorReason LOAN_PRODUCT_FEE_BLANK_ID
errorReason LOAN_PRODUCT_GL_ACCOUNT_CODE_IS_NOT_PRESENT
errorReason LOAN_PRODUCT_TRANSACTION_CHANNEL_ID_IS_NOT_PRESENT
errorReason LOAN_PRODUCT_FEE_TRIGGER_MANDATORY
errorReason LOAN_PRODUCT_FEE_APPLICATION_MANDATORY
errorReason LOAN_PRODUCT_FEE_STATE_MANDATORY
errorReason ARREARS_SETTINGS_INEXISTING_ARREARS_SETTINGS
errorReason ARREARS_SETTINGS_INEXISTING_TOLERANCE_CALCULATION_METHOD
errorReason ARREARS_SETTINGS_INEXISTING_DATE_CALCULATION_METHOD
errorReason ARREARS_SETTINGS_INEXISTING_NON_WORKING_DAYS_METHOD
errorReason ARREARS_SETTINGS_NON_POSITIVE_ARREARS_TOLERANCE_PERIOD
errorReason ARREARS_SETTINGS_NON_POSITIVE_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE
errorReason ARREARS_SETTINGS_TOLERANCE_DAY_OUTSIDE_CONSTRAINTS
errorReason ARREARS_SETTINGS_TOLERANCE_CALCULATION_METHOD_CAN_NOT_BE_CHANGED
errorReason ARREARS_SETTINGS_INCOMPATIBLE_TOLERANCE_METHOD_AND_PRODUCT_TYPE
errorReason ARREARS_SETTINGS_INCONSISTENT_TOLERANCE_VALUES_WITH_ARREARS_TOLERANCE_METHOD
errorReason ARREARS_SETTINGS_INVALID_TOLERANCE_PERIOD_MIN_MAX_DEFAULT_TUPLE
errorReason ARREARS_SETTINGS_NON_POSITIVE_TOLERANCE_FLOOR_AMOUNT
errorReason ARREARS_SETTINGS_INVALID_TOLERANCE_PERCENTAGE_OF_OUTSTANDING_BALANCE_MIN_MAX_DEFAULT_TUPLE
errorReason ARREARS_SETTINGS_TOLERANCE_AMOUNT_FEATURE_NOT_ENABLED
errorReason ARREARS_SETTINGS_DATE_CALCULATION_METHOD_NOT_ALLOWED
errorReason ARREARS_SETTINGS_INVALID_TOLERANCE_AMOUNT_SETTINGS
errorReason PRODUCT_LINKING_INCONSISTENT_LINKABLE_SAVINGS_PRODUCT_KEY_WITH_LINKING_STATE
errorReason PRODUCT_LINKING_INCONSISTENT_AUTO_LINK_ACCOUNTS_WITH_LINKING_STATE
errorReason PRODUCT_LINKING_INCONSISTENT_AUTO_CREATE_LINKED_ACCOUNTS_WITH_LINKING_STATE
errorReason PRODUCT_LINKING_INCONSISTENT_AUTO_LINK_ACCOUNTS_WITH_LINKING_PRODUCT
errorReason PRODUCT_LINKING_INCONSISTENT_AUTO_CREATE_LINKED_ACCOUNTS_WITH_LINKING_PRODUCT
errorReason PRODUCT_LINKING_PRODUCTS_HOLDER_INCOMPATIBILITY
errorReason PRODUCT_LINKING_LOAN_HOLDER_INCOMPATIBILITY
errorReason PRODUCT_LINKING_OVERDRAFT_INCOMPATIBILITY
errorReason PRODUCT_LINKING_ACCOUNTING_INCOMPATIBILITY
errorReason PRODUCT_LINKING_NON_OFFSET_SAVING_PRODUCT
errorReason PRODUCT_LINKING_INVALID_PRODUCT_LINKING_STATE
errorReason PRODUCT_LINKING_LINKED_PRODUCT_CURRENCY_MISMATCH
errorReason PRODUCT_LINKING_LINKED_PRODUCT_ACCOUNTING_CURRENCY_MISMATCH
errorReason LOAN_PRODUCT_ACCOUNT_LINK_CONFIGURATION_INVALID_DEPOSIT_PRODUCT_ID
errorReason LOAN_PRODUCT_ACCOUNT_LINK_CONFIGURATION_SETTLEMENT_METHOD_CANNOT_BE_NULL
errorReason FUNDING_SETTINGS_ORGANIZATION_MIN_INTEREST_COMMISSION_GREATER_THAN_MAX_INTEREST
errorReason FUNDING_SETTINGS_FUNDER_MIN_INTEREST_COMMISSION_GREATER_THAN_MAX_INTEREST
errorReason FUNDING_SETTINGS_FUNDER_AND_ORGANIZATION_MIN_INTEREST_COMMISSION_SUM_GREATER_THAN_MAX_INTEREST_RATE
errorReason FUNDING_SETTINGS_INVALID_ORGANIZATION_MIN_MAX_DEFAULT_ORDER
errorReason FUNDING_SETTINGS_INVALID_FUNDER_MIN_MAX_DEFAULT_ORDER
errorReason FUNDING_SETTINGS_FUNDER_INTEREST_COMMISSION_MUST_BE_NULL
errorReason FUNDING_SETTINGS_NULL_FUNDER_INTEREST_COMMISSION_ALLOCATION_TYPE_FOR_ENABLED_FUNDING
errorReason FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_MIN_VALUE
errorReason FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_DEFAULT_VALUE
errorReason FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_MAX_VALUE
errorReason FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_MIN_VALUE
errorReason FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_DEFAULT_VALUE
errorReason FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_MAX_VALUE
errorReason FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_NOT_AVAILABLE_FOR_PRODUCT
errorReason FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_MISSING_FOR_PRODUCT
errorReason FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_ALTERED
errorReason FUNDING_SETTINGS_INVALID_ID
errorReason LOAN_PRODUCT_FUNDING_SETTINGS_ORGANIZATION_INTEREST_COMMISSION_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_FUNDING_SETTINGS_FUNDER_INTEREST_COMMISSION_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_DORMANCY_PERIOD_RANGE_VIOLATION
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_LOCK_PERIOD_RANGE_VIOLATION
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_CAPPING_PERCENTAGE_RANGE_VIOLATION
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_INCONSISTENT_CAPPING_SETTINGS
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_INCONSISTENT_CAPPING_METHOD
errorReason LOAN_PRODUCT_INTERNAL_CONTROLS_FOUR_EYES_PRINCIPLE_NOT_ENABLED
errorReason LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_EDITABLE
errorReason LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_ALLOWED
errorReason LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_ALLOWED_ON_PRODUCT_WITH_PAYMENT_DUE_FEES_ON_DUE_DATES
errorReason LOAN_PRODUCT_TAX_CONFIGURATION_TAX_CALCULATION_METHOD_NOT_ALLOWED
errorReason LOAN_PRODUCT_TAX_CONFIGURATION_INVALID_TAX_SOURCE_ID
errorReason LOAN_PRODUCT_INTEREST_SETTINGS
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_APPLICATION_METHOD
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_METHOD
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_BALANCE_CALCULATION_METHOD
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_TYPE
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_DAYS_IN_YEAR
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_SCHEDULE_INTEREST_DAYS_COUNT_METHOD
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SOURCE
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_INTEREST_RATE_INVALID
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_INDEX_SOURCE_ID
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_TERMS
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATES_MISMATCH
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_DUPLICATE_ID
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_ID
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_METHOD_MISMATCH
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_APPLICATION_METHOD_MISMATCH
errorReason LOAN_PRODUCT_INDEX_RATE_SETTINGS_ACCRUE_INTEREST_AFTER_MATURITY
errorReason LOAN_PRODUCT_INDEX_RATE_SETTINGS_ACCRUE_INTEREST_AFTER_MATURITY_MISMATCH
errorReason LOAN_PRODUCT_NON_POSITIVE_FLOOR_OR_CEILING_VALUE
errorReason LOAN_PRODUCT_FLOOR_VALUE_GREATER_THAN_CEILING_VALUE
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PAYMENT_METHOD
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_AMORTIZATION_METHOD
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_LATE_PAYMENT_RECALCULATION_METHOD
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_REPAYMENT_ALLOCATION_ORDER
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PREPAYMENT_SETTINGS_PREPAYMENT_ACCEPTANCE
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PREPAYMENT_SETTINGS_FUTURE_PAYMENTS_ACCEPTANCE
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_AMOUNT_INVALID
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_PERCENTAGE_INVALID
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_PAYMENT_METHOD_MISMATCH
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_FLOOR_MISMATCH
errorReason LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_TOTAL_PAYMENT_AND_PRINCIPAL_PAYMENT_PAIR_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_ACCOUNTING_SETTINGS_ACCOUNTING_METHOD
errorReason LOAN_PRODUCT_ACCOUNTING_SETTINGS_INTEREST_ACCRUAL_CALCULATION_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_ACCOUNTING_RULES_GL_ACCOUNT_CODE_MANDATORY
errorReason LOAN_PRODUCT_ACCOUNTING_RULES_FINANCIAL_RESOURCE_MANDATORY
errorReason LOAN_PRODUCT_PENALTY_SETTINGS_PENALTY_CALCULATION_METHOD
errorReason LOAN_PRODUCT_AVAILABILITY_SETTINGS_AVAILABLE_FOR_ENTRY_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_AVAILABILITY_SETTINGS_BRANCH_ID_DOES_NOT_EXIST
errorReason LOAN_PRODUCT_AVAILABILITY_SETTINGS_ALL_BRANCHES_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_AVAILABILITY_SETTINGS_ALL_BRANCHES_MUST_BE_SET
errorReason LOAN_PRODUCT_CREDIT_ARRANGEMENT_REQUIREMENT_SETTINGS
errorReason LOAN_PRODUCT_OFFSET_SETTINGS_ALLOW_OFFSET
errorReason LOAN_PRODUCT_REDRAW_SETTINGS_ALLOW_REDRAW
errorReason LOAN_PRODUCT_LOAN_AMOUNT_SETTINGS_MAX_NUMBER_OF_TRANCHES
errorReason LOAN_PRODUCT_GRACE_PERIOD_SETTINGS_GRACE_PERIOD_TYPE
errorReason LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ID_GENERATOR_TYPE
errorReason LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ID_PATTERN
errorReason LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ACCOUNT_INITIAL_STATE
errorReason LOAN_PRODUCT_CURRENCY_CODE
errorReason LOAN_PRODUCT_CURRENCY_CODE_INVALID
errorReason LOAN_PRODUCT_SCHEDULE_SETTINGS_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_SCHEDULE_SETTINGS_REPAYMENT_ELEMENTS_ROUNDING_METHOD_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_SCHEDULE_SETTINGS_BILLING_CYCLES_ENABLED_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_SCHEDULE_SETTINGS_PREVIEW_SCHEDULE_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_SCHEDULE_SETTINGS_PREVIEW_SCHEDULE_ENABLED_CANNOT_BE_NULL
errorReason DUPLICATE_ID_WHEN_CREATING_LOAN_ACCOUNT
errorReason INVALID_API_CONSUMER_ID
errorReason API_CONSUMER_BRANCH_CHANGE
errorReason API_CONSUMER_HAS_ASSIGNED_CLIENTS_OR_GROUPS
errorReason CANNOT_DELETE_SUPPORT_USER_BY_REGULAR_API_CONSUMER
errorReason CANNOT_DELETE_DELIVERY_USER_BY_REGULAR_API_CONSUMER
errorReason CANNOT_DELETE_API_CONSUMER_WITH_PERFORMED_ACTIVITIES
errorReason API_CONSUMER_ALREADY_EXISTS
errorReason CANNOT_UPDATE_API_CONSUMER_NAME
errorReason INVALID_API_CONSUMER_NAME_FORMAT
errorReason INVALID_API_KEY_ID
errorReason MISSING_API_CONSUMER_NAME
errorReason ROLE_DOES_NOT_HAVE_APIS_ACCESS
errorReason INVALID_API_CONSUMER_ROLE_KEY
errorReason API_CONSUMER_INVALID_PERMISSIONS
errorReason API_CONSUMER_MISSING_PERMISSIONS
errorReason DEADLOCK_ERROR
errorReason TRANSACTION_CHANNELS_CONFIGURATION_EMPTY
errorReason TRANSACTION_CHANNEL_NULL_ROLES_CONFIG
errorReason DEFAULT_TRANSACTION_CHANNEL_ID
errorReason BLANK_TRANSACTION_CHANNEL_ID
errorReason TRANSACTION_CHANNEL_ID_LENGTH
errorReason DEFAULT_TRANSACTION_CHANNEL_CONFIG_ID
errorReason DEFAULT_TRANSACTION_CHANNEL_STATE
errorReason DEFAULT_TRANSACTION_CHANNEL_REQUIRED
errorReason TRANSACTION_CHANNEL_NAME_LENGTH
errorReason TRANSACTION_CHANNEL_BLANK_NAME
errorReason TRANSACTION_CHANNEL_DUPLICATE_NAME
errorReason TRANSACTION_CHANNEL_STATE_BLANK
errorReason TRANSACTION_CHANNEL_GL_ACCOUNT_DOES_NOT_EXIST
errorReason CONSTRAINTS_BLOCK_NULL
errorReason CONSTRAINT_ENTRY_NULL
errorReason CONSTRAINT_USAGE_NULL
errorReason INVALID_UNCONSTRAINED_USAGE
errorReason INVALID_LIMITED_USAGE
errorReason CONSTRAINT_MATCH_FILTER_INVALID
errorReason CONSTRAINT_MATCH_FILTER_NULL
errorReason AMOUNT_CONSTRAINT_INVALID_FILTER
errorReason TRANSACTION_CONSTRAINT_INVALID_FILTER
errorReason PRODUCT_CONSTRAINT_INVALID_FILTER
errorReason BETWEEN_FILTER_INVALID_VALUES
errorReason EXISTENCE_FILTER_INVALID_VALUES
errorReason COMPARATOR_FILTER_INVALID_VALUES
errorReason IN_FILTER_INVALID_VALUES
errorReason LOANS_IN_FILTER_INVALID_ID
errorReason SAVINGS_IN_FILTER_INVALID_ID
errorReason LOANS_IN_FILTER_INVALID_TYPE_VALUE
errorReason SAVINGS_IN_FILTER_INVALID_TYPE_VALUE
errorReason ACCESS_RIGHTS_BLANK
errorReason ACCESS_RIGHTS_ALL_USERS_BLANK
errorReason ACCESS_RIGHTS_ALL_USERS_FALSE
errorReason ACCESS_RIGHTS_BLANK_ROLE_ID
errorReason ACCESS_RIGHTS_DUPLICATE_ROLE_ID
errorReason ACCESS_RIGHTS_INVALID_ROLE_ID
errorReason ACCESS_RIGHTS_ALL_USERS_TRUE
errorReason END_OF_DAY_PROCESSING_NULL_PROCESSING_METHOD
errorReason END_OF_DAY_PROCESSING_INVALID_FORMAT
errorReason END_OF_DAY_PROCESSING_ACCOUNTING_CUT_OFF_FEATURE
errorReason INDEX_RATES_EMPTY_CONFIGURATION
errorReason INDEX_RATE_SOURCE_NULL_ENTRY
errorReason INDEX_RATE_SOURCE_NULL_RATES
errorReason INDEX_RATE_SOURCE_ID_INVALID
errorReason INDEX_RATE_SOURCE_ID_DUPLICATE
errorReason INDEX_RATE_SOURCE_NAME_EMPTY
errorReason INDEX_RATE_SOURCE_NAME_TOO_LONG
errorReason INDEX_RATE_SOURCE_NOTES_TOO_LONG
errorReason INDEX_RATE_SOURCE_NAME_DUPLICATE
errorReason INDEX_RATE_SOURCE_TYPE_INCORRECT
errorReason INDEX_RATE_SOURCE_TYPE_IN_USE
errorReason INDEX_RATE_CANNOT_BE_CHANGED
errorReason INDEX_RATE_ID_INVALID
errorReason INDEX_RATE_ID_DUPLICATE
errorReason INDEX_RATE_RATE_EMPTY
errorReason INDEX_RATE_RATE_RANGE_VIOLATION
errorReason INDEX_RATE_NOTES_TOO_LONG
errorReason INDEX_RATE_START_DATE_EMPTY
errorReason INDEX_RATE_START_DATE_DUPLICATE
errorReason INDEX_RATE_START_DATE_BEFORE_REVIEWED_DATE
errorReason PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PLANNED_FEE_DEFINED
errorReason PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PLANNED_FEE_DEFINED
errorReason INSTALLMENT_WITH_PLANNED_FEES_DELETED
errorReason PRODUCT_DOES_NOT_ALLOW_PLANNED_FEES
errorReason DUPLICATE_PLANNED_INSTALLMENT_FEES
errorReason PLANNED_FEE_INSTALLMENT_NUMBER_INVALID
errorReason UPDATE_ONLY_PLANNED_FEES_MODE
errorReason CREATE_ONLY_PLANNED_FEES_MODE
errorReason PLANNED_FEE_ENCODED_KEY_INVALID
errorReason CANNOT_APPLY_PLANNED_FEES
errorReason APPLY_ON_DATE_INVALID
errorReason APPLY_ON_DATE_MUST_BE_NULL
errorReason CANNOT_UNDO_DISBURSMENT_WITH_PLANNED_FEES_APPLY_ON_DATE
errorReason LOAN_PRODUCT_INVALID_NUMBER_OF_IOF_FEES
errorReason LOAN_PRODUCT_IOF_FEES_NOT_ALLOWED_FOR_PRODUCT
errorReason LOAN_PRODUCT_NO_TAX_CALCULATION_ALLOWED_FOR_IOF_FEES
errorReason LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_IOF_FEES
errorReason LOAN_PRODUCT_INVALID_IOF_FEE_PERCENTAGE
errorReason CURRENCY_CODE_EXCEEDS_LENGTH
errorReason CURRENCY_CODE_CANNOT_BE_BLANK
errorReason CURRENCY_CODE_CONTAINS_INVALID_CHARACTERS
errorReason CURRENCY_NAME_LENGTH_OUTSIDE_CONSTRAINTS
errorReason DECIMAL_DIGITS_OUTSIDE_CONSTRAINTS
errorReason CUSTOMISABLE_CURRENCIES_FEATURES_NOT_ENABLED
errorReason DUPLICATE_CURRENCY_CODE
errorReason CURRENCY_TYPE_REQUIRED
errorReason INVALID_FIAT_CURRENCY_TYPE
errorReason INVALID_CUSTOM_CURRENCY_TYPE
errorReason CURRENCY_CRYPTO_FEATURE
errorReason CURRENCY_NON_TRADITIONAL_CURRENCIES_FEATURE
errorReason CURRENCY_CANNOT_BE_FIAT
errorReason CURRENCY_TYPE_NULL
errorReason CURRENCY_INVALID_FIAT_TYPE
errorReason CURRENCY_INVALID_DIGITS_AFTER_DECIMAL
errorReason LOAN_PRODUCT_NO_OPTION_SPECIFIED
errorReason LOAN_PRODUCT_HYBRID_GROUP_AND_INDIVIDUAL_OR_PURE_GROUP
errorReason LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_TRANCHED_LOAN
errorReason LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_OFFSET_LOAN
errorReason LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_DBEI_CAPITALIZED_INTEREST
errorReason LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason LOAN_PRODUCT_DOES_NOT_EXIST
errorReason LOAN_PRODUCT_NOT_ACTIVATED
errorReason LOAN_PRODUCT_EMPTY_ID
errorReason LOAN_PRODUCT_EMPTY_NAME
errorReason LOAN_PRODUCT_USER_NOT_AUTHORIZED
errorReason LOAN_PRODUCT_LOAN_AMOUNT_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_NON_POSITIVE_LOAN_AMOUNT
errorReason LOAN_PRODUCT_NON_POSITIVE_MIN_LOAN_AMOUNT
errorReason LOAN_PRODUCT_NON_POSITIVE_MAX_LOAN_AMOUNT
errorReason LOAN_PRODUCT_INVALID_LOAN_AMOUNT_MIN_MAX_DEFAULT_TUPLE
errorReason LOAN_PRODUCT_LOAN_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING
errorReason LOAN_PRODUCT_NON_POSITIVE_DEFAULT_INTEREST_RATE
errorReason LOAN_PRODUCT_NON_POSITIVE_MIN_INTEREST_RATE
errorReason LOAN_PRODUCT_NON_POSITIVE_MAX_INTEREST_RATE
errorReason LOAN_PRODUCT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason LOAN_PRODUCT_NEGATIVE_PENALTY_RATE
errorReason LOAN_PRODUCT_PENALTY_RATE_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_INVALID_PENALTY_RATE
errorReason LOAN_PRODUCT_NON_POSITIVE_DEFAULT_PENALTY_RATE
errorReason LOAN_PRODUCT_NON_POSITIVE_MIN_PENALTY_RATE
errorReason LOAN_PRODUCT_NON_POSITIVE_MAX_PENALTY_RATE
errorReason LOAN_PRODUCT_INVALID_PENALTY_RATE_MIN_MAX_DEFAULT_TUPLE
errorReason LOAN_PRODUCT_PENALTY_METHOD_NOT_ALLOWED_BY_PRODUCT
errorReason LOAN_PRODUCT_NON_POSITIVE_DEFAULT_INSTALLMENT
errorReason LOAN_PRODUCT_NON_POSITIVE_MIN_INSTALLMENT
errorReason LOAN_PRODUCT_NON_POSITIVE_MAX_INSTALLMENT
errorReason LOAN_PRODUCT_INVALID_INSTALLMENTS_MIN_MAX_DEFAULT_TUPLE
errorReason LOAN_PRODUCT_SCHEDULE_DUE_DATES_METHOD_MISMATCH
errorReason LOAN_PRODUCT_FIXED_DAYS_OF_MONTH_MISMATCH
errorReason LOAN_PRODUCT_SHORT_MONTH_HANDLING_METHOD_MISMATCH
errorReason LOAN_PRODUCT_NUMBER_OF_REPAYMENTS_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_NON_POSITIVE_NUMBER_OF_REPAYMENTS
errorReason LOAN_PRODUCT_NON_ZERO_NUMBER_OF_REPAYMENTS
errorReason LOAN_PRODUCT_REPAYMENT_PERIOD_UNIT_MISMATCH
errorReason LOAN_PRODUCT_INVALID_PERIOD_UNIT
errorReason LOAN_PRODUCT_REPAYMENT_PERIOD_COUNT_MISMATCH
errorReason LOAN_PRODUCT_EMPTY_NUMBER_OF_REPAYMENTS
errorReason LOAN_PRODUCT_INVALID_FIRST_REPAYMENT_DATE
errorReason LOAN_PRODUCT_PRINCIPAL_PAYMENT_INTERVAL_MISMATCH
errorReason LOAN_PRODUCT_EMPTY_PRINCIPAL_PAYMENT_INTERVAL
errorReason LOAN_PRODUCT_GRACE_PERIOD_TYPE_MISMATCH
errorReason LOAN_PRODUCT_NON_POSITIVE_GRACE_PERIOD
errorReason LOAN_PRODUCT_NON_POSITIVE_MIN_GRACE_PERIOD
errorReason LOAN_PRODUCT_NON_POSITIVE_MAX_GRACE_PERIOD
errorReason LOAN_PRODUCT_GRACE_PERIOD_TYPE_NOT_ALLOWED_BY_PRODUCT
errorReason LOAN_PRODUCT_DEFAULT_GRACE_PERIOD_VALUE_NOT_ALLOWED
errorReason LOAN_PRODUCT_MIN_GRACE_PERIOD_VALUE_NOT_ALLOWED
errorReason LOAN_PRODUCT_MAX_GRACE_PERIOD_VALUE_NOT_ALLOWED
errorReason LOAN_PRODUCT_GRACE_PERIOD_LENGTH_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_LOAN_TYPE_MISMATCH
errorReason LOAN_PRODUCT_INVALID_FIRST_REPAYMENT_DATE_OFFSET
errorReason LOAN_PRODUCT_OFFSET_APPLICABLE_ONLY_FOR_INTERVAL_SCHEDULE_DUE_DATE_METHOD
errorReason LOAN_PRODUCT_NON_POSITIVE_INTEREST_RATE
errorReason LOAN_PRODUCT_INTEREST_RATE_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_INTEREST_RATE_SHOULD_BE_ZERO
errorReason LOAN_PRODUCT_INTEREST_CHARGE_FREQUENCY_MISMATCH
errorReason LOAN_PRODUCT_INTEREST_RATE_SOURCE
errorReason LOAN_PRODUCT_INTEREST_RATE_REVIEW_COUNT
errorReason LOAN_PRODUCT_INTEREST_RATE_REVIEW_UNIT
errorReason LOAN_PRODUCT_NULL_INTEREST_RATE
errorReason LOAN_PRODUCT_NOT_NULL_INTEREST_RATE
errorReason LOAN_PRODUCT_NULL_INTEREST_SPREAD
errorReason LOAN_PRODUCT_NOT_NULL_INTEREST_SPREAD
errorReason LOAN_PRODUCT_REPAYMENT_SCHEDULE_TYPE_MISMATCH
errorReason LOAN_PRODUCT_PAYMENT_METHOD_MISMATCH
errorReason LOAN_PRODUCT_INCONSISTENT_MAX_INSTALLMENTS_WITH_DEFAULT_PRINCIPAL_PAYMENT
errorReason LOAN_PRODUCT_GRACE_MAX_INSTALLMENTS_IS_OVER_NUM_MAX_INSTALLEMENT
errorReason LOAN_PRODUCT_GRACE_INSTALLMENTS_IS_OVER_NUM_INSTALLMENT
errorReason LOAN_PRODUCT_EMPTY_ARREARS_TOLERANCE_PERIOD
errorReason LOAN_PRODUCT_EMPTY_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE
errorReason LOAN_PRODUCT_ARREARS_TOLERANCE_PERIOD_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE_OUTSIDE_CONSTRAINTS
errorReason LOAN_PRODUCT_INCONSISTENT_ARREARS_TOLERANCE_PERIOD_SETUP
errorReason LOAN_PRODUCT_INCONSISTENT_TOLERANCE_PERCENTAGE_WITH_FLOOR_AMOUNT
errorReason LOAN_PRODUCT_NOT_A_READ_ONLY_FIELD
errorReason LOAN_PRODUCT_EMPTY_REPAYMENT_PERIOD
errorReason LOAN_PRODUCT_NON_POSITIVE_REQUIRED_GUARANTY_PERCENTAGE
errorReason LOAN_PRODUCT_GUARANTORS_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY
errorReason LOAN_PRODUCT_INVALID_ELEMENTS_ROUNDING_METHOD
errorReason LOAN_PRODUCT_LOCKED_LOAN_ACCOUNT
errorReason LOAN_PRODUCT_INVESTOR_FUNDED_LOAN_ACCOUNT
errorReason LOAN_PRODUCT_INVALID_PRODUCT_WITH_FUNDING_SOURCE_DISABLED
errorReason LOAN_PRODUCT_PAYMENT_PLAN_NOT_ALLOWED_FOR_PRODUCT_TYPE
errorReason LOAN_PRODUCT_PAYMENT_PLAN_NOT_EDITABLE
errorReason LOAN_PRODUCT_CUSTOM_PAYMENT_ALLOCATION_NOT_ALLOWED_FOR_PRODUCT_TYPE
errorReason LOAN_PRODUCT_INVALID_PENALTY_CALCULATION_METHOD_FOR_REPAYMENTS_SCHEDULE_METHOD
errorReason LOAN_PRODUCT_INVALID_ROUNDING_REPAYMENT_SCHEDULE_METHOD
errorReason LOAN_PRODUCT_INVALID_ROUNDING_REPAYMENT_CURRENCY_FOR_PRODUCT
errorReason LOAN_PRODUCT_INVALID_NEW_ACCOUNT_STATE
errorReason LOAN_PRODUCT_EMPTY_INTEREST_SETTINGS
errorReason LOAN_PRODUCT_INTEREST_APPLICATION_METHOD_NOT_EDITABLE
errorReason LOAN_PRODUCT_REPAYMENT_RESCHEDULING_METHOD_NOT_EDITABLE
errorReason LOAN_PRODUCT_EMPTY_REPAYMENT_RESCHEDULING_METHOD
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_FLAT_AMOUNTS_TUPLE
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_TUPLE
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_VALUE
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_FLOOR_AMOUNT
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_CEILING_AMOUNT
errorReason LOAN_PRODUCT_INCONSISTENT_PRINCIPAL_PAYMENT_FLOOR_CEILING_AMOUNTS
errorReason LOAN_PRODUCT_MISSING_FIXED_DAYS_OF_MONTH
errorReason LOAN_PRODUCT_INTEREST_BALANCE_CALCULATION_METHOD_NOT_ALLOWED
errorReason LOAN_PRODUCT_DAYS_IN_YEAR_METHOD_NOT_ALLOWED
errorReason LOAN_PRODUCT_AMORTIZATION_PROFILE_ON_FEES_NOT_ALLOWED
errorReason LOAN_PRODUCT_INCONSISTENT_INTEREST_CALCULATION_METHOD
errorReason LOAN_PRODUCT_INCONSISTENT_INTEREST_RATE_SOURCE_TYPE
errorReason LOAN_PRODUCT_INCONSISTENT_SCHEDULE_DUE_DATES_METHOD
errorReason LOAN_PRODUCT_INCONSISTENT_SCHEDULE_EDIT_OPTIONS
errorReason LOAN_PRODUCT_INCONSISTENT_LATE_REPAYMENTS_RECALCULATION_METHOD
errorReason LOAN_PRODUCT_FUTURE_PREPAYMENTS_NOT_ALLOWED
errorReason LOAN_PRODUCT_NON_POSITIVE_CAPPING_PERCENTAGE
errorReason LOAN_PRODUCT_NON_POSITIVE_INTEREST_COMMISSION
errorReason LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_INTERVAL_MISMATCH
errorReason LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_MUST_BE_ZERO
errorReason LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_MUST_BE_NULL
errorReason LOAN_PRODUCT_MISSING_REPAYMENT_AMOUNT_FLOOR
errorReason LOAN_PRODUCT_PRINCIPAL_PAYMENT_METHOD_CANNOT_BE_CHANGED_FOR_PRODUCTS_WITH_ACCOUNTS
errorReason LOAN_PRODUCT_INVALID_PREPAYMENT_RECALCULATION_METHOD
errorReason LOAN_PRODUCT_PRINCIPAL_PAID_INSTALLMENT_STATUS_SHOULD_BE_NULL
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_PAID_INSTALLMENT_STATUS
errorReason LOAN_PRODUCT_APPLY_INTEREST_ON_PREPAYMENT_METHOD_CANNOT_BE_NULL
errorReason LOAN_PRODUCT_APPLY_INTEREST_ON_PREPAYMENT_METHOD_SHOULD_BE_NULL
errorReason LOAN_PRODUCT_INVALID_APPLY_INTEREST_ON_PREPAYMENT_METHOD
errorReason LOAN_PRODUCT_INTEREST_RATE_SHOULD_BE_NULL
errorReason LOAN_PRODUCT_NUMBER_OF_INSTALLMENTS_SHOULD_BE_NULL
errorReason LOAN_PRODUCT_INVALID_REPAYMENT_INTEREST_DAYS_COUNT_METHOD
errorReason LOAN_PRODUCT_INVALID_PRINCIPAL_REPAYMENT_INTERVAL
errorReason LOAN_PRODUCT_INVALID_INTEREST_CHARGE_FREQUENCY_METHOD_MUST_BE_NULL
errorReason LOAN_PRODUCT_INVALID_DAYS_IN_YEARS_METHOD_MUST_BE_NULL
errorReason LOAN_PRODUCT_INCONSISTENT_FEE_CALCULATION_METHOD_WITH_INCLUDE_FEE_IN_FLOOR_AMOUNT_OPTION_ENABLED
errorReason LOAN_PRODUCT_INCONSISTENT_FEE_CALCULATION_METHOD_WITH_TOTAL_BALANCE_OPTION_ENABLED
errorReason LOAN_PRODUCT_INCONSISTENT_LATE_REPAYMENT_FEE_TRIGGER_WITH_TOTAL_BALANCE_OPTION_ENABLED
errorReason LOAN_PRODUCT_INCONSISTENT_AMORTIZATION_ACCOUNTING_SETUP
errorReason LOAN_PRODUCT_PAYMENT_DUE_FEES_ON_DUE_DATES_NOT_ALLOWED_AT_RESCHEDULE_REFINANCE
errorReason LOAN_PRODUCT_ONLY_ACCRUE_LATE_INTEREST_OPTION_IS_ALLOWED
errorReason LOAN_PRODUCT_INTEREST_TYPE_NOT_ALLOWED
errorReason LOAN_PRODUCT_INCONSISTENT_PRINCIPAL_PAYMENT_SETTINGS_FIELD_VALUE_WITH_PAYMENT_METHOD_TYPE
errorReason LOAN_PRODUCT_AMOUNT_ONLY_AVAILABLE_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD
errorReason LOAN_PRODUCT_PERCENTAGE_ONLY_AVAILABLE_FOR_PERCENTAGE_PRINCIPAL_PAYMENT_METHOD
errorReason LOAN_PRODUCT_INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_OPTION
errorReason LOAN_PRODUCT_INVALID_SCHEDULE_DAYS_COUNT_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_OPTION
errorReason LOAN_PRODUCT_ADJUST_INTEREST_FOR_THE_FIRST_INSTALLMENT_WHEN_PERIOD_IS_DIFFERENT_THAN_THE_REPAYMENT_PERIOD_FEATURE_IS_DISABLED
errorReason LOAN_PRODUCT_INVALID_ACCOUNTING_METHOD
errorReason LOAN_PRODUCT_MISSING_RULE
errorReason LOAN_PRODUCT_NOT_REQUIRED_RULE
errorReason LOAN_PRODUCT_HEADER_ACCOUNT_NOT_ALLOWED
errorReason LOAN_PRODUCT_INVALID_GLACCOUNT_TYPE
errorReason LOAN_PRODUCT_RULE_WITHOUT_GLACCOUNT
errorReason LOAN_PRODUCT_INVALID_INTEREST_ACCRUED_METHOD
errorReason LOAN_PRODUCT_DEPOSIT_INTEREST_FEATURE_IS_DISABLED
errorReason LOAN_PRODUCT_INVALID_INTEREST_ACCRUAL_CALCULATION
errorReason LOAN_PRODUCT_GLACCOUNTS_ARE_NOT_IN_ORGANIZATION_OR_PRODUCT_CURRENCY
errorReason LOAN_PRODUCT_GLACCOUNTS_ARE_NOT_IN_PRODUCT_CURRENCY
errorReason LOAN_PRODUCT_INCONSISTENT_GLACCOUNTS_CURRENCY_SETUP
errorReason LOAN_PRODUCT_INCONSISTENT_FEE_GLACCOUNTS_CURRENCY_SETUP
errorReason LOAN_PRODUCT_EMPTY_BRANCHES_LIST_AND_ALL_BRANCHES_IS_FALSE
errorReason LOAN_PRODUCT_NON_EMPTY_BRANCHES_LIST_AND_ALL_BRANCHES_IS_TRUE
errorReason LOAN_PRODUCT_DUPLICATES_IN_THE_BRANCHES_LIST
errorReason LOAN_PRODUCT_INACTIVE_BRANCH_IN_BRANCHES_LIST
errorReason LOAN_PRODUCT_INCONSISTENT_REDRAW_SETTINGS_WITH_PRODUCT_CONFIGURATION
errorReason LOAN_PRODUCT_INCONSISTENT_REDRAW_SETTINGS_WITH_REDRAW_FACILITY
errorReason LOAN_PRODUCT_REDRAW_AND_OFFSET_SETTINGS_ENABLED_SIMULTANEOUSLY
errorReason LOAN_PRODUCT_LINKING_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason LOAN_PRODUCT_FUNDING_SOURCES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason LOAN_PRODUCT_TAXES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED
errorReason LOAN_PRODUCT_INCONSISTENT_OFFSET_SETTINGS_WITH_PRODUCT_CONFIGURATION
errorReason LOAN_PRODUCT_INCONSISTENT_OFFSET_SETTINGS_WITH_OFFSET_FEATURE
errorReason LOAN_PRODUCT_FUNDING_SOURCES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED
errorReason LOAN_PRODUCT_TAXES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED
errorReason LOAN_PRODUCT_LINKING_IS_MANDATORY_WHEN_OFFSET_ENABLED
errorReason LOAN_PRODUCT_LINKED_DEPOSIT_PRODUCT_DOES_NOT_EXIST
errorReason LOAN_PRODUCT_LINKED_DEPOSIT_PRODUCT_DOES_NOT_ALLOW_OFFSET
errorReason LOAN_PRODUCT_OFFSET_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY
errorReason LOAN_PRODUCT_REDRAW_OFFSET_SIMULTANEOUSLY_INVALID_SETTLEMENT_OPTIONS
errorReason LOAN_PRODUCT_INVALID_SETTINGS
errorReason LOAN_PRODUCT_TOTAL_AMOUNT_NOT_EQUAL_WITH_LOAN_AMOUNT
errorReason LOAN_PRODUCT_TOTAL_AMOUNT_MORE_THAN_LOAN_AMOUNT
errorReason LOAN_PRODUCT_INVALID_TOTAL_AMOUNT
errorReason LOAN_PRODUCT_INVALID_DISBURSEMENT_DATE
errorReason LOAN_PRODUCT_DISBURSEMENT_DATE_IN_HOLIDAY
errorReason LOAN_PRODUCT_NO_TRANCHE_ALLOWED
errorReason LOAN_PRODUCT_NO_TRANCHE_DEFINED
errorReason LOAN_PRODUCT_MORE_TRANCHES_THAN_ALLOWED
errorReason LOAN_PRODUCT_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING
errorReason LOAN_PRODUCT_DISBURSEMENT_DATE_AFTER_LAST_REPAYMENT_DUE_DATE
errorReason LOAN_PRODUCT_NO_INSTALLMENT_TO_ALLOCATE_PRINCIPAL
errorReason LOAN_PRODUCT_NOT_FOUND
errorReason LOAN_PRODUCT_ALREADY_DISBURSED
errorReason LOAN_PRODUCT_INVALID_INDEX
errorReason LOAN_PRODUCT_DISBURSED_FOR_LOAN_GROUP
errorReason LOAN_PRODUCT_CANNOT_DELETE_DISBURSED_TRANCHE
errorReason LOAN_PRODUCT_DISBURSED_TRANCHE_AFTER_NOT_DISBURSED_TRANCHE
errorReason LOAN_PRODUCT_DISBURSEMENT_DATE_BEFORE_NOT_REVERSED_TRANSACTION
errorReason LOAN_PRODUCT_INVALID_ACCOUNT_STATE
errorReason LOAN_PRODUCT_CANNOT_MODIFY_TRANCHES_ON_RESCHEDULED_REFINANCED_ACCOUNTS
errorReason LOAN_PRODUCT_AMOUNT_SHOULD_BE_STRICT_POSITIVE
errorReason LOAN_PRODUCT_BALLOON_PAYMENT_NOT_ALLOWED
errorReason LOAN_PRODUCT_OPTIMIZED_PAYMENT_NOT_ALLOWED
errorReason LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_FIXED_INTEREST_SOURCE_RATE
errorReason LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_INTERVAL_SCHEDULE_DUE_DATES_METHOD
errorReason LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_TAXES_DISABLED
errorReason LOAN_PRODUCT_ACCRUE_INTEREST_AFTER_MATURITY_IS_MANDATORY
errorReason LOAN_PRODUCT_ACCRUE_INTEREST_AFTER_MATURITY_AVALAIBLE_ONLY_FOR_FIXED_LOANS_WITH_INTEREST_APPLIED_ON_REPAYMENT
errorReason LOAN_PRODUCT_ARBITRARY_FEE_NOT_ALLOWED
errorReason LOAN_PRODUCT_INCOMPATIBLE_FIELDS
errorReason LOAN_PRODUCT_INVALID_FIXED_ACCOUNT_REPAYMENT
errorReason LOAN_PRODUCT_NOT_POSITIVE_LOAN_BALANCE
errorReason LOAN_PRODUCT_INVALID_AMOUNT
errorReason LOAN_PRODUCT_FULL_TERM_FEE_CANNOT_BE_AMORTIZED_DUE_TO_APPLICATION_DATE
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_PROFILE
errorReason LOAN_PRODUCT_AMORTIZATION_PROFILE_NOT_ALLOWED
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_INTERVAL_TYPE
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_PREDEFINED_INTERVALS_UNIT
errorReason LOAN_PRODUCT_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT_NOT_ALLOWED
errorReason LOAN_PRODUCT_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT_NOT_ALLOWED
errorReason LOAN_PRODUCT_INVALID_AMORTIZATION_SETTINGS
errorReason LOAN_PRODUCT_AMORTIZATION_SETTINGS_NOT_ALLOWED
errorReason LOAN_PRODUCT_CANNOT_USE_EFFECTIVE_INTEREST_RATE_FEE_WITHOUT_INTEREST_RATE_VALUE
errorReason LOAN_PRODUCT_AMORTIZATION_FREQUENCY_INTERVAL_TYPE_NOT_ALLOWED
errorReason LOAN_PRODUCT_AMORTIZATION_FREQUENCY_INTERVAL_COUNT_NOT_ALLOWED
errorReason LOAN_PRODUCT_INVALID_FEE_APPLICATION
errorReason LOAN_PRODUCT_INCONSISTENT_STATE_OF_ORIGINAL_SCHEDULE_FOR_FEE_APPLICATION
errorReason LOAN_PRODUCT_INVALID_FEE_AMORTIZATION_UPON_RESCHEDULE_OPTION
errorReason LOAN_PRODUCT_FEE_AMORTIZATION_UPON_RESCHEDULE_OPTION_IS_MANDATORY
errorReason LOAN_PRODUCT_FEE_TRIGGER_NOT_ALLOWED
errorReason LOAN_PRODUCT_FEE_AMOUNT_ALREADY_DEFINED_IN_PRODUCT
errorReason LOAN_PRODUCT_CUSTOM_AMOUNT_IS_MANDATORY
errorReason LOAN_PRODUCT_FEE_AMOUNT_MUST_BE_STRICTLY_POSITIVE
errorReason LOAN_PRODUCT_INVALID_FEE_KEY
errorReason LOAN_PRODUCT_FEE_NOT_ALLOWED
errorReason LOAN_PRODUCT_FEE_NOT_ACTIVE
errorReason LOAN_PRODUCT_PAYMENT_DUE_FEES_ON_DUE_DATES_TRIGGER_NOT_ALLOWED
errorReason LOAN_PRODUCT_FEE_AMORTIZATION_PROFILE_CANNOT_BE_CHANGED
errorReason LOAN_PRODUCT_FEE_AMORTIZATION_FREQUENCY_CANNOT_BE_CHANGED
errorReason LOAN_PRODUCT_FEE_AMORTIZATION_PROFILE_IS_NOT_PROVIDED
errorReason LOAN_PRODUCT_MANUAL_PLANNED_NOT_ALLOWED_FOR_PRODUCT
errorReason LOAN_PRODUCT_NEGATIVE_DEFAULT_INTEREST_RATE
errorReason LOAN_PRODUCT_NEGATIVE_MIN_INTEREST_RATE
errorReason LOAN_PRODUCT_NEGATIVE_MAX_INTEREST_RATE
errorReason LOAN_PRODUCT_DEFAULT_MIN_MAX_NOT_AVAILABLE
errorReason LOAN_PRODUCT_INTEREST_RATE_TERMS_ARE_READONLY
errorReason LOAN_PRODUCT_INTEREST_CALCULATION_BALANCE_METHOD_READONLY
errorReason LOAN_PRODUCT_INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED
errorReason LOAN_PRODUCT_NO_INDEX_RATE_AVAILABLE
errorReason LOAN_PRODUCT_INVALID_INTEREST_RATE_SOURCE
errorReason LOAN_PRODUCT_INVALID_INTEREST_REVIEW_COUNT
errorReason LOAN_PRODUCT_INVALID_INTEREST_REVIEW_UNIT
errorReason LOAN_PRODUCT_INVALID_INTEREST_PAYMENT_POINT
errorReason LOAN_PRODUCT_INVALID_COMPOUNDING_FREQUENCY
errorReason LOAN_PRODUCT_INVALID_INTEREST_TYPE
errorReason LOAN_PRODUCT_TIERED_BAND_AVAILABLE_ONLY_FOR_CURRENT_ACCOUNT
errorReason LOAN_PRODUCT_OVERDRAFT_OR_TECHNICAL_OVERDRAFT_MANDATORY_FOR_TIERED_BAND
errorReason LOAN_PRODUCT_ADJUSTABLE_INTEREST_RATES_TOGGLE_NOT_ENABLED
errorReason LOAN_PRODUCT_INCONSISTENT_INTEREST_SETTINGS_WITH_ADJUSTABLE_INTEREST_RATES
errorReason LOAN_PRODUCT_INVALID_INTEREST_FLOOR_VALUE
errorReason LOAN_PRODUCT_INVALID_INTEREST_CEILING_VALUE
errorReason LOAN_PRODUCT_INVALID_INDEX_RATE_SOURCE_KEY
errorReason LOAN_PRODUCT_ADJUSTABLE_INTEREST_RATES_NOT_SUPPORTED_FOR_PRODUCT_SETUP
errorReason LOAN_PRODUCT_DOES_NOT_ALLOW_MULTIPLE_FIXED_INTEREST_RATES
errorReason LOAN_PRODUCT_DOES_NOT_ALLOW_SAME_INDEX_SOURCE_FOR_MULTIPLE_INDEX_INTEREST_RATES
errorReason LOAN_PRODUCT_DELETING_ADJUSTABLE_INTEREST_RATES_NOT_ALLOWED_FOR_PRODUCT_WITH_ACTIVE_ACCOUNTS
errorReason LOAN_PRODUCT_INTEREST_RATE_REVIEW_UNIT_IS_MANDATORY_FOR_INDEX_INTEREST_RATE
errorReason LOAN_PRODUCT_INTEREST_RATE_REVIEW_COUNT_IS_MANDATORY_FOR_INDEX_INTEREST_RATE
errorReason LOAN_PRODUCT_INVALID_ENCODED_KEY_FOR_INTEREST_RATE
errorReason LOAN_PRODUCT_NO_INDEX_RATE_SOURCE_AVAILABLE
errorReason LOAN_PRODUCT_INDEX_INTEREST_RATE_AVAILABLE_ONLY_FOR_FIXED_INTEREST_TERMS
errorReason LOAN_PRODUCT_NEGATIVE_INTEREST_RATE_MANDATORY_FOR_INDEX_INTEREST_RATE
errorReason LOAN_PRODUCT_INDEX_RATE_FOR_REGULAR_INTEREST_FEATURE_DISABLED
errorReason LOAN_PRODUCT_SETTINGS_FOR_INDEXED_INTEREST_RATE_SOURCE_DEFINED_FOR_FIXED_INTEREST_RATE_SOURCE
errorReason LOAN_PRODUCT_READONLY_INTEREST_SETTINGS_FIELDS
errorReason LOAN_PRODUCT_INTEREST_RATE_SOURCE_IS_MANDATORY
errorReason LOAN_PRODUCT_CURRENCY_NOT_DEFINED
errorReason LOAN_PRODUCT_BASE_CURRENCY_CANNOT_BE_REMOVED
errorReason LOAN_PRODUCT_CURRENCY_IN_USE_CANNOT_BE_REMOVED
errorReason LOAN_PRODUCT_CURRENCY_CANNOT_BE_CHANGED
errorReason LOAN_PRODUCT_ONLY_ORGANISATION_BASE_CURRENCY_IS_ALLOWED
errorReason LOAN_PRODUCT_MULTIPLE_CURRENCIES_NOT_ALLOWED_FOR_DEPOSIT_PRODUCT
errorReason LOAN_PRODUCT_TRANSACTION_AND_ACCOUNT_CURRENCY_MISMATCH
errorReason LOAN_PRODUCT_CURRENCY_NOT_FOUND
errorReason LOAN_PRODUCT_DUPLICATE_CLIENT_ID
errorReason LOAN_PRODUCT_ACCOUNT_ID_ALREADY_IN_USE
errorReason LOAN_PRODUCT_INVALID_GROUP_ID
errorReason LOAN_PRODUCT_GROUP_ID_ALREADY_IN_USE
errorReason LOAN_PRODUCT_ID_ALREADY_IN_USE
errorReason LOAN_PRODUCT_ROLE_ID_ALREADY_IN_USE
errorReason LOAN_PRODUCT_LATE_PAYMENT_RECALCULATION_METHOD_INVALID_VALUE
errorReason LOAN_PRODUCT_LATE_PAYMENT_RECALCULATION_METHOD_NULL_VALUE
errorReason LOAN_PRODUCT_NON_TAXABLE_FEE_NOT_ALLOWED
errorReason LOAN_PRODUCT_NON_TAXABLE_FEE_NOT_ALLOWED_ON_FIXED_PRODUCT
errorReason LOAN_PRODUCT_FEATURE_IS_DISABLED
errorReason LOAN_PRODUCT_ACCOUNTING_ACTIONS_NOT_DEFINED
errorReason LOAN_PRODUCT_LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_IOF_FEES
errorReason LOAN_PRODUCT_DUPLICATED_DISBURSEMENT_DATE
errorReason LOAN_PRODUCT_DISBURSEMENT_DATES_ARE_NOT_IN_ORDER
errorReason LOAN_PRODUCT_CANNOT_MODIFY_DISBURSED_TRANCHE
errorReason LOAN_PRODUCT_DUPLICATE_TRANCHE_KEY
errorReason LOAN_PRODUCT_CANNOT_MODIFY_TRANCHE
errorReason LOAN_PRODUCT_MISSING_TRANCHE
errorReason LOAN_PRODUCT_MISSING_TRANCHE_FEE
errorReason LOAN_PRODUCT_NEGATIVE_LOAN_BALANCE
errorReason LOAN_PRODUCT_REVIEW_COUNT_MUST_BE_GREATER_THAN_ZERO
errorReason LOAN_PRODUCT_INTEREST_SETTINGS_APPLICATION_METHOD_INVALID_PARAMETERS
errorReason LOAN_PRODUCT_INTEREST_APPLICATION_METHOD_MISMATCH_WITH_APPLY_INTEREST_ON_PREPAYMENT
errorReason LOAN_PRODUCT_INTEREST_RATE_CHANGE_PMT_ADJUSTMENT_THRESHOLD_FEATURE_IS_DISABLED
errorReason LOAN_PRODUCT_INTEREST_RATE_CHANGE_PMT_ADJUSTMENT_THRESHOLD_DAYS_BIGGER_THAT_INSTALLMENT_DURATION
errorReason INTEREST_RATE_CHANGE_PMT_ADJUSTMENT_THRESHOLD_MISSING_VALUE
errorReason INTEREST_RATE_CHANGE_PMT_ADJUSTMENT_THRESHOLD_INVALID_NUMBER_OF_DAYS
errorReason ACCOUNT_WITH_NO_REPAYMENT_SCHEDULE_VERSIONING
errorReason LOAN_PRODUCT_PENALTY_SETTINGS_PENALTY_CALCULATION_FUNCTION_MISSING
errorReason OVERDUE_PENALTIES_ACCRUAL_MECHANISM_FEATURE_IS_DISABLED
errorReason LOAN_ACCOUNT_IS_MISSING_INTEREST_RATE_CHANGE_PMT_ADJUSTMENT_THRESHOLD
errorReason LOAN_ACCOUNT_IS_NOT_EDITABLE
errorReason MFUNCTION_ALREADY_EXISTS
errorReason MFUNCTION_SERVICE_NOT_READY
errorReason MFUNCTION_INTERNAL_ERROR
errorReason MFUNCTION_OPERATION_IN_PROGRESS
errorReason MFUNCTION_MAX_FUNCTION_COUNT_LIMIT_REACHED
errorReason MFUNCTION_INTERNAL_LIMIT_REACHED
errorReason MFUNCTION_UNSUPPORTED_EXTENSION_POINT
errorReason MFUNCTION_MAPPED_FUNCTION_CANNOT_BE_DELETED
errorReason MFUNCTION_TOO_MANY_LOG_REQUESTS
errorReason MFUNCTION_MAX_SUBSCRIPTION_COUNT_LIMIT_REACHED
errorReason MFUNCTION_WITH_SUBSCRIPTION_CAN_NOT_BE_DELETED
errorReason MFUNCTION_MAX_SUBSCRIPTION_PER_TOPIC_LIMIT_REACHED
errorReason MFUNCTION_MAX_SECRET_COUNT_PER_TENANT_LIMIT_REACHED
errorReason MFUNCTION_BINDING_IS_INVALID
errorReason MFUNCTION_BINDING_FUNCTION_IS_MISSING
errorReason MFUNCTION_BINDING_FUNCTION_IS_INACTIVE
errorReason MFUNCTION_INCORRECT_EXTENSION_POINT
errorReason MAMBU_FUNCTIONS_FEATURE_IS_DISABLED
errorReason CUSTOM_PAYMENT_FOR_PREDEFINED_FEE_NOT_EXISTS_ON_SCHEDULE
errorReason CUSTOM_PAYMENT_NOT_PROCESSED_AS_FEE_ALREADY_PAID
errorReason CUSTOM_PAYMENT_NOT_PROCESSED_AS_EXCEEDS_PREDEFINED_FEE

RestructureAccountArrearsSettings

{
  "tolerancePercentageOfOutstandingPrincipal": 0,
  "tolerancePeriod": 0
}

The arrears settings, allowed on the loan account restructure

Properties

Name Type Description Restrictions
tolerancePercentageOfOutstandingPrincipal number The arrears tolerance amount none
tolerancePeriod integer(int32) The arrears tolerance period value none

RestructureInterestSettings

{
  "accountInterestRateSettings": [
    {
      "encodedKey": "string",
      "indexSourceKey": "string",
      "interestRate": 0,
      "interestRateCeilingValue": 0,
      "interestRateFloorValue": 0,
      "interestRateReviewCount": 0,
      "interestRateReviewUnit": "DAYS",
      "interestRateSource": "FIXED_INTEREST_RATE",
      "interestSpread": 0,
      "validFrom": "2016-09-06T13:37:50+03:00"
    }
  ],
  "interestRate": 0,
  "interestSpread": 0
}

The interest settings, allowed on the loan account restructure

Properties

Name Type Description Restrictions
accountInterestRateSettings [AccountInterestRateSettings] Adjustable interest rates settings for loan account none
interestRate number The interest rate for the restructured loan account none
interestSpread number The interest spread for the restructured loan account none

RestructurePenaltySettings

{
  "penaltyRate": 0
}

The penalty settings, allowed on the loan account restructure.

Properties

Name Type Description Restrictions
penaltyRate number The penalty rate none

RestructurePrincipalPaymentAccountSettings

{
  "amount": 0,
  "percentage": 0
}

The principal payment account settings, allowed on the loan account restructure

Properties

Name Type Description Restrictions
amount number Fixed principal payment amount none
percentage number Principal payment percentage none

RestructureScheduleSettings

{
  "billingCycleDays": {
    "days": [
      0
    ]
  },
  "fixedDaysOfMonth": [
    0
  ],
  "gracePeriod": 0,
  "periodicPayment": 0,
  "previewSchedule": {
    "numberOfPreviewedInstalments": 0
  },
  "repaymentInstallments": 0,
  "repaymentPeriodCount": 0,
  "repaymentPeriodUnit": "DAYS"
}

The schedule settings, allowed on the loan account restructure

Properties

Name Type Description Restrictions
billingCycleDays BillingCycleDays Defines the billing cycles settings for a loan account none
fixedDaysOfMonth [integer] The days of the month, when the repayment due dates should be none
gracePeriod integer(int32) The grace period none
periodicPayment number The periodic payment none
previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
repaymentInstallments integer(int32) The number of installments none
repaymentPeriodCount integer(int32) The payments frequency per set period of time none
repaymentPeriodUnit string The period of time, within which the payments frequency is set none

Enumerated Values

Property Value
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS

RevolvingAccountSettings

{
  "numberOfPreviewedInstalments": 0
}

The number of previewed instalments for an account

Properties

Name Type Description Restrictions
numberOfPreviewedInstalments integer(int32) The number of previewed instalments none

Role

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "creationDate": "2016-09-06T13:37:50+03:00",
  "encodedKey": "string",
  "id": "string",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "name": "string",
  "notes": "string"
}

Represents a user role.

Properties

Name Type Description Restrictions
access BaseUserAccess Represents the user permissions and access rights. none
creationDate string(date-time) The date when the role was created in UTC. read-only
encodedKey string The encoded key of the entity, generated automatically, globally unique. read-only
id string The ID of the role, which can be generated and customized, but must be unique. none
lastModifiedDate string(date-time) The last time the role was modified in UTC. read-only
name (required) string The unique name of the role. none
notes string The notes about the role. none

RoleConfiguration

{
  "accessRights": [
    "MAMBU"
  ],
  "administrator": true,
  "creditOfficer": true,
  "delivery": true,
  "id": "string",
  "name": "string",
  "notes": "string",
  "permissions": [
    "AUDIT_TRANSACTIONS"
  ],
  "support": true,
  "teller": true
}

Represents the role configuration.

Properties

Name Type Description Restrictions
accessRights [string] A list of predefined access rights. none
administrator boolean TRUE if this role gives admin access, FALSE otherwise. none
creditOfficer boolean TRUE if this role is associated with a credit officer user, FALSE otherwise. none
delivery boolean TRUE if this role gives delivery access, FALSE otherwise. none
id (required) string The user-defined ID, which is globally unique. none
name (required) string The user-defined name, which is globally unique. none
notes string The user-defined notes for this particular role. none
permissions [string] A list of predefined permissions. none
support boolean TRUE if this role gives support access, FALSE otherwise. none
teller boolean TRUE if this role gives tellering access, FALSE otherwise. none

RoleIdentifier

{
  "encodedKey": "string",
  "id": "string"
}

Represents the role identifier.

Properties

Name Type Description Restrictions
encodedKey string The encoded key of the entity, generated automatically, globally unique. read-only
id string The ID of the role, which can be generated and customized, but must be unique. none

RolesConfiguration

{
  "roles": [
    {
      "accessRights": [
        "MAMBU"
      ],
      "administrator": true,
      "creditOfficer": true,
      "delivery": true,
      "id": "string",
      "name": "string",
      "notes": "string",
      "permissions": [
        "AUDIT_TRANSACTIONS"
      ],
      "support": true,
      "teller": true
    }
  ]
}

Represents the roles configuration.

Properties

Name Type Description Restrictions
roles (required) [RoleConfiguration] List of all roles. none

RoundingSettings

{
  "repaymentCurrencyRounding": "NO_ROUNDING",
  "repaymentElementsRoundingMethod": "NO_ROUNDING",
  "roundingRepaymentScheduleMethod": "NO_ROUNDING"
}

Defines the rounding settings used in the loan computation.

Properties

Name Type Description Restrictions
repaymentCurrencyRounding (required) string Specifies the repayment currency rounding method. none
repaymentElementsRoundingMethod (required) string Determines how the repayment currency rounding is handled on each element from the schedule. none
roundingRepaymentScheduleMethod (required) string Specifies the rounding repayment schedule method. none

Enumerated Values

Property Value
repaymentCurrencyRounding NO_ROUNDING
repaymentCurrencyRounding ROUND_TO_NEAREST_WHOLE_UNIT
repaymentCurrencyRounding ROUND_UP_TO_NEAREST_WHOLE_UNIT
repaymentElementsRoundingMethod NO_ROUNDING
repaymentElementsRoundingMethod ROUND_ALL
repaymentElementsRoundingMethod PAYMENT_DUE
roundingRepaymentScheduleMethod NO_ROUNDING
roundingRepaymentScheduleMethod ROUND_REMAINDER_INTO_LAST_REPAYMENT
roundingRepaymentScheduleMethod ROUND_PRINCIPAL_AND_INTEREST_REMAINDER_INTO_LAST_REPAYMENT

ScheduleSettings

{
  "billingCycle": {
    "days": [
      0
    ]
  },
  "defaultFirstRepaymentDueDateOffset": 0,
  "fixedDaysOfMonth": [
    0
  ],
  "gracePeriod": 0,
  "gracePeriodType": "NONE",
  "hasCustomSchedule": true,
  "paymentPlan": [
    {
      "amount": 0,
      "encodedKey": "string",
      "toInstallment": 0
    }
  ],
  "periodicPayment": 0,
  "previewSchedule": {
    "numberOfPreviewedInstalments": 0
  },
  "principalRepaymentInterval": 0,
  "repaymentInstallments": 0,
  "repaymentPeriodCount": 0,
  "repaymentPeriodUnit": "DAYS",
  "repaymentScheduleMethod": "NONE",
  "scheduleDueDatesMethod": "INTERVAL",
  "shortMonthHandlingMethod": "LAST_DAY_IN_MONTH"
}

The schedule settings, holds all schedule properties.

Properties

Name Type Description Restrictions
billingCycle BillingCycleDays Defines the billing cycles settings for a loan account none
defaultFirstRepaymentDueDateOffset integer(int32) The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset) none
fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
gracePeriod (required) integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
gracePeriodType string The grace period type. Representing the type of grace period which is possible for a loan account. none
hasCustomSchedule boolean Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due none
paymentPlan [PeriodicPayment] A list of periodic payments for the current loan account. none
periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
previewSchedule RevolvingAccountSettings The number of previewed instalments for an account none
principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none
repaymentScheduleMethod string The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account's life cycle or will be dynamically recomputed when required. none
scheduleDueDatesMethod string The schedule due dates method. Represents the methodology used by this account to compute the due dates of the repayments. none
shortMonthHandlingMethod string The short handling method. Determines how to handle the short months, if they select a fixed day of month > 28. Will be null if no such date is selected and also for the Interval methodology. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none

Enumerated Values

Property Value
gracePeriodType NONE
gracePeriodType PAY_INTEREST_ONLY
gracePeriodType INTEREST_FORGIVENESS
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS
repaymentScheduleMethod NONE
repaymentScheduleMethod FIXED
repaymentScheduleMethod DYNAMIC
scheduleDueDatesMethod INTERVAL
scheduleDueDatesMethod FIXED_DAYS_OF_MONTH
shortMonthHandlingMethod LAST_DAY_IN_MONTH
shortMonthHandlingMethod FIRST_DAY_OF_NEXT_MONTH

ScheduleSettingsForSchedulePreview

{
  "fixedDaysOfMonth": [
    0
  ],
  "gracePeriod": 0,
  "paymentPlan": [
    {
      "amount": 0,
      "toInstallment": 0
    }
  ],
  "periodicPayment": 0,
  "principalRepaymentInterval": 0,
  "repaymentInstallments": 0,
  "repaymentPeriodCount": 0,
  "repaymentPeriodUnit": "DAYS"
}

The schedule settings, holds all schedule properties needed for schedule preview request.

Properties

Name Type Description Restrictions
fixedDaysOfMonth [integer] Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH. none
gracePeriod integer(int32) The grace period. Represents the grace period for loan repayment - in number of installments. none
paymentPlan [PeriodicPaymentForSchedulePreview] A list of periodic payments for the current loan account. none
periodicPayment number The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments none
principalRepaymentInterval integer(int32) The principal repayment interval. Indicates the interval of repayments that the principal has to be paid. none
repaymentInstallments integer(int32) The repayment installments. Represents how many installments are required to pay back the loan. none
repaymentPeriodCount integer(int32) The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option. none
repaymentPeriodUnit string The repayment period unit. Represents the frequency of loan repayment. none

Enumerated Values

Property Value
repaymentPeriodUnit DAYS
repaymentPeriodUnit WEEKS
repaymentPeriodUnit MONTHS
repaymentPeriodUnit YEARS

SecretKey

{
  "secretKey": "string"
}

Representation of an API Consumer's Secret Key

Properties

Name Type Description Restrictions
secretKey string The secret key read-only

SecuritySettings

{
  "isCollateralEnabled": true,
  "isGuarantorsEnabled": true,
  "requiredGuaranties": 0
}

The settings and constraints for securities.

Properties

Name Type Description Restrictions
isCollateralEnabled boolean Shows whether collateral (assets or other goods) are accepted in order to reach required securities percentage from loan amount, as defined in this product. none
isGuarantorsEnabled boolean Shows whether guarantors (other clients) are accepted in order to reach the required securities percentage from loan amount, as defined in this product. none
requiredGuaranties number The securities percentage from loan amount that is needed in order for this account to be approved. Null if the securities are not required. none

SecuritySettingsConfiguration

{
  "isCollateralEnabled": true,
  "isGuarantorsEnabled": true,
  "requiredGuaranties": 0
}

The settings and constraints for securities.

Properties

Name Type Description Restrictions
isCollateralEnabled boolean Shows whether collateral (assets or other goods) are accepted in order to reach required securities percentage from loan amount, as defined in this product. none
isGuarantorsEnabled boolean Shows whether guarantors (other clients) are accepted in order to reach the required securities percentage from loan amount, as defined in this product. none
requiredGuaranties number The securities percentage from loan amount that is needed in order for this account to be approved. Null if the securities are not required. none

SeizeBlockAmount

{
  "amount": 500,
  "blockId": "block-007",
  "externalId": "case-1234abc1",
  "notes": "amount seized due to investigation",
  "transactionChannelId": "cash"
}

Represents the information for seizing a block amount on a deposit account.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount number The amount of the block fund none
blockId (required) string The id of the block fund none
externalId string The external id of the current transaction, customizable, unique none
notes string Extra notes about the current transaction none
transactionChannelId (required) string The id of the channel through which the transaction is done. none

SelectionOption

{
  "availableOptions": [
    {
      "score": 0,
      "selectionId": "string",
      "value": "string"
    }
  ],
  "forSelectionId": "string"
}

Represents the information related to the options of a selection custom field definition.

Properties

Name Type Description Restrictions
availableOptions (required) [AvailableOption] The list of options that that are available for the dependent selection custom field value based on the selected parent custom field value. none
forSelectionId string The ID for the parent selection custom field value. Can only be set if the custom field has the dependent field defined. none

SellFundingSourceAction

{
  "purchases": [
    {
      "amount": 0,
      "depositAccountKey": "string",
      "price": 0
    }
  ]
}

Allows specifying sell function source action details

Properties

Name Type Description Restrictions
purchases [FundingSourcePurchase] Funding source purchase list none

ServiceLevel

{
  "code": "string"
}

The rules under which the transaction should be processed

Properties

Name Type Description Restrictions
code string The code for a pre-agreed service or level of service between the parties none

StartMaturityAction

{
  "maturityDate": "1987-04-26",
  "notes": "string"
}

The action to start the maturity period for a deposit account

Properties

Name Type Description Restrictions
maturityDate string(date) The date when the maturity period starts. none
notes string The notes or description attached to this object. none

Structured

{
  "creditorReferenceInformation": {
    "reference": "string",
    "referenceIssuer": "string",
    "referenceType": "string"
  }
}

The information specifying the payment items that are intended to settle

Properties

Name Type Description Restrictions
creditorReferenceInformation CreditorReferenceInformation Represents the reference to the underlying documents of the payment. none

Task

{
  "assignedUserKey": "string",
  "createdByFullName": "string",
  "createdByUserKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "description": "string",
  "dueDate": "1987-04-26",
  "encodedKey": "string",
  "id": 0,
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "status": "OPEN",
  "taskLinkKey": "string",
  "taskLinkType": "CLIENT",
  "templateKey": "string",
  "title": "string"
}

Represents a human task that can be assigned by one user to another. When a task is created, it's status is set to OPEN.

Properties

Name Type Description Restrictions
assignedUserKey (required) string The key of the user this task is assigned to. none
createdByFullName string The name of the user who created the task. read-only
createdByUserKey string The key of the user that created this task. The value is not editable and it is populated at task creation with the current user key. read-only
creationDate string(date-time) The date when the task was created. read-only
description string The description of the task. none
dueDate (required) string(date) The due date when the task has to be completed. none
encodedKey string The encoded key of the task, which is auto generated, and must be unique. read-only
id integer(int64) The ID of the task, which is uniquely generated for the task. none
lastModifiedDate string(date-time) The last date when the task was modified. read-only
status string The status of this task, a new task always has an OPEN status. none
taskLinkKey string The individual linked to this task. If null, it means nobody is linked to this task. none
taskLinkType string The type of the owner represented by the task link key. none
templateKey string The template key used to create the task. read-only
title (required) string The title of the task. none

Enumerated Values

Property Value
status OPEN
status COMPLETED
taskLinkType CLIENT
taskLinkType GROUP
taskLinkType LOAN_PRODUCT
taskLinkType SAVINGS_PRODUCT
taskLinkType CENTRE
taskLinkType BRANCH
taskLinkType USER
taskLinkType LOAN_ACCOUNT
taskLinkType DEPOSIT_ACCOUNT
taskLinkType ID_DOCUMENT
taskLinkType LINE_OF_CREDIT
taskLinkType GL_JOURNAL_ENTRY

TaxConfiguration

{
  "taxableCalculationMethod": "DEFAULT"
}

Defines settings for taxes on the loan product

Properties

Name Type Description Restrictions
taxableCalculationMethod string Shows whether the tax is added on top of the target amount or not. none

Enumerated Values

Property Value
taxableCalculationMethod DEFAULT
taxableCalculationMethod NON_TAXABLE
taxableCalculationMethod CUSTOM_TAX

TaxSettings

{
  "taxCalculationMethod": "INCLUSIVE",
  "taxSourceKey": "string",
  "taxesOnFeesEnabled": true,
  "taxesOnInterestEnabled": true,
  "taxesOnPenaltyEnabled": true
}

Tax settings, defines some settings for taxes on the loan product

Properties

Name Type Description Restrictions
taxCalculationMethod string Shows whether the tax is added on top of the target amount or not. none
taxSourceKey string The tax source from where the loan account taxes will be updated. none
taxesOnFeesEnabled boolean Shows whether taxes on fees are enabled for this product or not. none
taxesOnInterestEnabled boolean Shows whether taxes on interest are enabled for this product or not. none
taxesOnPenaltyEnabled boolean Shows whether taxes on penalties are enabled for this product or not. none

Enumerated Values

Property Value
taxCalculationMethod INCLUSIVE
taxCalculationMethod EXCLUSIVE

Taxes

{
  "deferredTaxOnInterestAmount": 0,
  "taxOnFeesAmount": 0,
  "taxOnInterestAmount": 0,
  "taxOnInterestFromArrearsAmount": 0,
  "taxOnPaymentHolidaysInterest": 0,
  "taxOnPenaltyAmount": 0,
  "taxRate": 0
}

The taxes applied within a transaction.

Properties

Name Type Description Restrictions
deferredTaxOnInterestAmount number How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field. none
taxOnFeesAmount number How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction. none
taxOnInterestAmount number How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction. none
taxOnInterestFromArrearsAmount number The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction. none
taxOnPaymentHolidaysInterest number The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction. none
taxOnPenaltyAmount number How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction. none
taxRate number The tax rate that was set or changed in this transaction. none

TerminateLoanAccountInput

{
  "notes": "string",
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for the terminate a loan account action

Properties

Name Type Description Restrictions
notes string The notes for the terminate action performed on the loan account none
valueDate (required) string(date-time) The date when terminate the loan account none

TrancheDisbursementDetails

{
  "disbursementTransactionKey": "string",
  "expectedDisbursementDate": "2016-09-06T13:37:50+03:00"
}

The disbursement details regarding a loan tranche.

Properties

Name Type Description Restrictions
disbursementTransactionKey string The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement none
expectedDisbursementDate string(date-time) The date when this tranche is supposed to be disbursed (as Organization Time) none

TrancheSettings

{
  "maxNumberOfTranches": 0
}

The tranche settings, indicates the settings regarding tranches in case the product is configured to support tranches.

Properties

Name Type Description Restrictions
maxNumberOfTranches integer(int32) The number of tranches supported by the loan product none

TransactionBalances

{
  "advancePosition": 0,
  "arrearsPosition": 0,
  "expectedPrincipalRedraw": 0,
  "principalBalance": 0,
  "redrawBalance": 0,
  "totalBalance": 0
}

The balances changed within a transaction.

Properties

Name Type Description Restrictions
advancePosition number Captures the advance (prepaid) amount. none
arrearsPosition number Captures the arrears position amount for the account in arrears. none
expectedPrincipalRedraw number The difference between principal balance and redraw balance after each transaction performed on the loan account. none
principalBalance number The account redraw balance captured after the transaction update. none
redrawBalance number The account redraw balance captured after the transaction update. none
totalBalance number The running balance still owed for the loan. none

TransactionChannel

{
  "availableForAll": true,
  "depositConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "encodedKey": "string",
  "glAccount": "string",
  "id": "string",
  "isDefault": true,
  "loanConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "operator": "EQUALS",
        "secondValue": "string",
        "value": "string",
        "values": [
          "string"
        ]
      }
    ],
    "matchFiltersOption": "ALL",
    "usage": "UNCONSTRAINED"
  },
  "name": "string",
  "state": "ACTIVE",
  "usageRights": [
    "string"
  ]
}

Represents a transaction channel.

Properties

Name Type Description Restrictions
availableForAll boolean TRUE if the transaction channel is available for all users, FALSE otherwise. none
depositConstraints (required) Constraint The constraints applied to the transaction channel none
encodedKey string The encoded key of the entity, generated, globally unique read-only
glAccount (required) string The general ledger (GL) account associated with the transaction channel. none
id (required) string The ID of the transaction channel. none
isDefault boolean TRUE if the transaction channel is set as the default, FALSE otherwise. read-only
loanConstraints (required) Constraint The constraints applied to the transaction channel none
name (required) string The name of the transaction channel. none
state string The state of the transaction channel. none
usageRights [string] The usage rights that describe the transaction channel. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE

TransactionChannelConfiguration

{
  "glAccountCode": "string",
  "id": "string",
  "loansConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "filterElement": "EQUALS",
        "values": [
          "string"
        ]
      }
    ],
    "matchFilter": "ALL",
    "usage": "UNCONSTRAINED_USAGE"
  },
  "name": "string",
  "savingsConstraints": {
    "constraints": [
      {
        "criteria": "AMOUNT",
        "filterElement": "EQUALS",
        "values": [
          "string"
        ]
      }
    ],
    "matchFilter": "ALL",
    "usage": "UNCONSTRAINED_USAGE"
  },
  "state": "ACTIVE",
  "usageRights": {
    "allUsers": true,
    "roles": [
      "string"
    ]
  }
}

Model representation of the configuration for a transaction channel.

Properties

Name Type Description Restrictions
glAccountCode string The code of the GLAccount of the transaction channel. none
id (required) string User-defined ID, unique in the configuration. none
loansConstraints ConstraintsConfiguration Model representation of the constraints of a transaction channel configuration. none
name (required) string Name of the transaction channel none
savingsConstraints ConstraintsConfiguration Model representation of the constraints of a transaction channel configuration. none
state (required) string State of the transaction channel none
usageRights AccessRights Represents the access rights configuration. none

Enumerated Values

Property Value
state ACTIVE
state INACTIVE

TransactionChannelConstraint

{
  "criteria": "AMOUNT",
  "operator": "EQUALS",
  "secondValue": "string",
  "value": "string",
  "values": [
    "string"
  ]
}

The constraints applied on the transaction channel

Properties

Name Type Description Restrictions
criteria (required) string Defines the criteria on which the constraint is applied none
operator (required) string Defines the constraint operator. Example: in 'Amount Equals 100' it is the 'Equals' none
secondValue string The second filtering value of the filter parameter (constraint). It might not exist. Example: it represents '500' from 'Amount Between 100 and 500' none
value string The first filtering value of the filter constraint. Example: it represents 'Disbursement' from 'Type equals Disbursement' and it also represents 100 from 'Amount Between 100 and 500' none
values [string] Filtering values used for the Product and Type criteria, where filtering might be applied on one or more values read-only

Enumerated Values

Property Value
criteria AMOUNT
criteria TYPE
criteria PRODUCT
operator EQUALS
operator EMPTY
operator NOT_EMPTY
operator MORE_THAN
operator LESS_THAN
operator BETWEEN
operator IN

TransactionChannelsConfiguration

{
  "defaultTransactionChannel": {
    "glAccountCode": "string",
    "id": "string",
    "loansConstraints": {
      "constraints": [
        {
          "criteria": "AMOUNT",
          "filterElement": "EQUALS",
          "values": [
            "string"
          ]
        }
      ],
      "matchFilter": "ALL",
      "usage": "UNCONSTRAINED_USAGE"
    },
    "name": "string",
    "savingsConstraints": {
      "constraints": [
        {
          "criteria": "AMOUNT",
          "filterElement": "EQUALS",
          "values": [
            "string"
          ]
        }
      ],
      "matchFilter": "ALL",
      "usage": "UNCONSTRAINED_USAGE"
    },
    "state": "ACTIVE",
    "usageRights": {
      "allUsers": true,
      "roles": [
        "string"
      ]
    }
  },
  "transactionChannels": [
    {
      "glAccountCode": "string",
      "id": "string",
      "loansConstraints": {
        "constraints": [
          {
            "criteria": "AMOUNT",
            "filterElement": "EQUALS",
            "values": [
              "string"
            ]
          }
        ],
        "matchFilter": "ALL",
        "usage": "UNCONSTRAINED_USAGE"
      },
      "name": "string",
      "savingsConstraints": {
        "constraints": [
          {
            "criteria": "AMOUNT",
            "filterElement": "EQUALS",
            "values": [
              "string"
            ]
          }
        ],
        "matchFilter": "ALL",
        "usage": "UNCONSTRAINED_USAGE"
      },
      "state": "ACTIVE",
      "usageRights": {
        "allUsers": true,
        "roles": [
          "string"
        ]
      }
    }
  ]
}

Model representation of the transaction channels configuration.

Properties

Name Type Description Restrictions
defaultTransactionChannel (required) TransactionChannelConfiguration Model representation of the configuration for a transaction channel. none
transactionChannels (required) [TransactionChannelConfiguration] List of all transaction channels. none

TransactionDetails

{
  "transactionChannelId": "string",
  "transactionChannelKey": "string"
}

Contains the details about transaction including fields like transaction channel key and channel id

Properties

Name Type Description Restrictions
transactionChannelId string The id of the transaction channel associated with the transaction details. none
transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none

TransactionDetailsInput

{
  "transactionChannelId": "string",
  "transactionChannelKey": "string"
}

Contains the details about transaction including fields like transaction channel key and channel ID

Properties

Name Type Description Restrictions
transactionChannelId string The id of the transaction channel associated with the transaction details. none
transactionChannelKey string The encoded key of the transaction channel associated with the transaction details. none

TransactionInterestSettings

{
  "indexInterestRate": 0,
  "interestRate": 0
}

The interest settings, holds all the properties regarding interests for the loan account.

Properties

Name Type Description Restrictions
indexInterestRate number The value of the index interest rate none
interestRate number The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount. none

TransferDepositTransactionInput

{
  "_Example_Custom_Field_Set_Transaction": {
    "Example_Checkbox_Custom_Field": "TRUE"
  },
  "amount": 200,
  "externalId": "46290",
  "notes": "some notes about this transaction",
  "paymentOrderId": "PAY-1234-abc",
  "transferDetails": {
    "linkedAccountId": "LMPG508",
    "linkedAccountKey": "8a19c32b72eac4420172efcb0f176bbd",
    "linkedAccountType": "LOAN"
  },
  "valueDate": "2020-12-08T17:00:00+01:00"
}

Represents the input for a transfer deposit transaction.

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount (required) number The amount to transfer from account none
encodedKey string The encoded key of the entity, generated, globally unique read-only
externalId string The external id of the transfer transaction, customizable, unique none
notes string Extra notes about this deposit transaction none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the transfer transaction, customizable none
transferDetails (required) TransferDetailsInput Represents the input for the transfer details for a transfer transaction none
valueDate string(date-time) The entry date of the transfer. If not specified it is considered the current date (as Organization Time) none

TransferDetails

{
  "linkedDepositTransactionKey": "string",
  "linkedLoanTransactionKey": "string"
}

Represents the transfer details, such as the linked transaction key

Properties

Name Type Description Restrictions
linkedDepositTransactionKey string The key of the related deposit transaction none
linkedLoanTransactionKey string The key of the related loan transaction none

TransferDetailsInput

{
  "linkedAccountId": "string",
  "linkedAccountKey": "string",
  "linkedAccountType": "LOAN"
}

Represents the input for the transfer details for a transfer transaction

Properties

Name Type Description Restrictions
linkedAccountId string The id of the linked account none
linkedAccountKey string The encoded key of the linked account none
linkedAccountType (required) string The type of the linked account. Can be LOAN or DEPOSIT none

Enumerated Values

Property Value
linkedAccountType LOAN
linkedAccountType DEPOSIT

TriggerDatabaseBackupRequest

{
  "callback": "string",
  "createBackupFromDate": "2016-09-06T13:37:50+03:00",
  "tables": [
    "string"
  ]
}

Represents a request for triggering a database backup.

Properties

Name Type Description Restrictions
callback string If provided, it needs to be a valid URL. It will be a webhook call that will later execute when the backup is complete. none
createBackupFromDate string(date-time) If provided, it needs to be a date time from which the backup should include data. If not provided, the backup will include all the data. none
tables [string] If provided, it needs to be a list of tables that exist in the database schema. The backup will only include the specified tables. If not provided, the backup will include all tables. none

TriggerDatabaseBackupResponse

{
  "state": "QUEUED"
}

Represents a response for triggering a database backup

Properties

Name Type Description Restrictions
state string The state of the database backup process read-only

Enumerated Values

Property Value
state QUEUED
state IN_PROGRESS
state COMPLETE
state NOT_FOUND
state CANCEL
state TO_BE_CANCELED
state TIMED_OUT
state ERROR
state TRANSIENT_ERROR
state OVERRIDDEN
state RECOVERABLE_ERROR

TriggerHourlyAndEndOfDayProcessingResponse

{
  "state": "QUEUED"
}

Represents the response for triggering hourly and end of day processing

Properties

Name Type Description Restrictions
state string The state of the hourly end of day processing read-only

Enumerated Values

Property Value
state QUEUED
state IN_PROGRESS
state COMPLETE
state NOT_FOUND
state CANCEL
state TO_BE_CANCELED
state TIMED_OUT
state ERROR
state TRANSIENT_ERROR
state OVERRIDDEN
state RECOVERABLE_ERROR

UndoMaturityAction

{
  "notes": "string"
}

The action to undo the maturity period for a deposit account

Properties

Name Type Description Restrictions
notes string The notes or description attached to this object. none

UnlockLoanAccountInput

{
  "notes": "string"
}

Represents the request payload for unlocking an account

Properties

Name Type Description Restrictions
notes string Extra notes about the current unlocking of account none

Usage

{
  "default": true,
  "id": "string",
  "required": true
}

Represents the usage settings of the custom field definition.

Properties

Name Type Description Restrictions
default boolean none none
id string The user-defined ID of the associated entity. The ID must already exist. none
required boolean none none

User

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "creationDate": "2016-09-06T13:37:50+03:00",
  "email": "string",
  "encodedKey": "string",
  "firstName": "string",
  "homePhone": "string",
  "id": "string",
  "language": "ENGLISH",
  "lastLoggedInDate": "2016-09-06T13:37:50+03:00",
  "lastModifiedDate": "2016-09-06T13:37:50+03:00",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "userState": "ACTIVE",
  "username": "string"
}

Represents a user.

Properties

Name Type Description Restrictions
access (required) UserAccess Represents the user permissions and access rights. none
assignedBranchKey string The encoded key of the branch this user is assigned to. none
creationDate string(date-time) The date the user was created in UTC. read-only
email string The user email address. Used by Mambu for sending automated notifications or for getting passwords. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
firstName (required) string The first name of the user. none
homePhone string The user's home phone number, which can also contain characters. none
id string The ID of the user, which is generated automatically, but must be unique. read-only
language string The Mambu display language for the user. The Mambu UI will be displayed in the selected language. Please note: for portuguese, you must use the incorrect spelling PORTUGESE. none
lastLoggedInDate string(date-time) The last time the user logged in in UTC. read-only
lastModifiedDate string(date-time) The last time the user was modified in UTC. read-only
lastName string The last name of the user. none
mobilePhone string The user's mobile phone number, which can also contain characters. none
notes string The additional information for the user. none
role RoleIdentifier Represents the role identifier. none
title string The user title. none
transactionLimits object The user transaction limits. none
» additionalProperties integer(int32) none none
twoFactorAuthentication boolean TRUE if the user has two-factor authentication setup, FALSE otherwise. If two-factor authentication is enabled, a user will be sent an SMS to their registered mobile number, which they will need to enter in the Mambu login screen, in addition to their password. none
userState string The current state of the user. none
username (required) string The Mambu login user name. none

Enumerated Values

Property Value
language ENGLISH
language PORTUGESE
language SPANISH
language RUSSIAN
language FRENCH
language GEORGIAN
language CHINESE
language INDONESIAN
language ROMANIAN
language BURMESE
language GERMAN
language PORTUGUESE_BRAZIL
language VIETNAMESE
language ITALIAN
language PHRASE
userState ACTIVE
userState INACTIVE
userState LOCKED

UserAccess

{
  "administratorAccess": true,
  "apiAccess": true,
  "canManageAllBranches": true,
  "canManageEntitiesAssignedToOtherOfficers": true,
  "creditOfficerAccess": true,
  "deliveryAccess": true,
  "mambuAccess": true,
  "managedBranches": [
    {
      "branchKey": "string"
    }
  ],
  "permissions": [
    "AUDIT_TRANSACTIONS"
  ],
  "supportAccess": true,
  "tellerAccess": true
}

Represents the user permissions and access rights.

Properties

Name Type Description Restrictions
administratorAccess boolean TRUE if the user has the administrator user type, FALSE otherwise. Administrators (admins) have all permissions and can perform any action in Mambu. none
apiAccess boolean TRUE if the user can authenticate and interact with Mambu APIs, FALSE otherwise. The user may still require additional permissions for specific API requests. none
canManageAllBranches (required) boolean TRUE if the user has access to all branches, FALSE if the user only has access to specific branches. none
canManageEntitiesAssignedToOtherOfficers (required) boolean TRUE if a credit officer user can access entities (for example, clients or accounts) assigned to other credit officers, FALSE otherwise. none
creditOfficerAccess boolean TRUE if the user has the credit officer user type, FALSE otherwise. Credit officers have the option of having clients and groups assigned to them. none
deliveryAccess boolean TRUE if the user is part of the Mambu delivery team, FALSE otherwise. read-only
mambuAccess boolean TRUEif the user can log in to the Mambu UI using their login credentials,FALSE` otherwise. none
managedBranches [UserManagedBranch] The list of branches that can be managed by the user. If the user has the canManageAllBranches property set to TRUE, this list does not apply. none
permissions [string] Permissions for the user. The non-admin users are authorized to do actions based a set of permissions in order to access Mambu features. Permissions may be relevant for the API and/or the Mambu UI. none
supportAccess boolean TRUE if the user can provide Mambu technical support, FALSE otherwise. read-only
tellerAccess boolean TRUE if the user has the teller user type, FALSE otherwise. Tellers have access to the teller module and specific tellering permissions, which allow them to take actions such as opening or closing tills, posting transactions on a till, and adding and removing cash from a till. none

UserManagedBranch

{
  "branchKey": "string"
}

Represents a branch that can be managed by the user or API consumer.

Properties

Name Type Description Restrictions
branchKey string The encoded key of the branch, it is automatically generated. read-only

User_Request

{
  "access": {
    "administratorAccess": true,
    "apiAccess": true,
    "canManageAllBranches": true,
    "canManageEntitiesAssignedToOtherOfficers": true,
    "creditOfficerAccess": true,
    "deliveryAccess": true,
    "mambuAccess": true,
    "managedBranches": [
      {
        "branchKey": "string"
      }
    ],
    "permissions": [
      "AUDIT_TRANSACTIONS"
    ],
    "supportAccess": true,
    "tellerAccess": true
  },
  "assignedBranchKey": "string",
  "email": "string",
  "encodedKey": "string",
  "firstName": "string",
  "homePhone": "string",
  "language": "ENGLISH",
  "lastName": "string",
  "mobilePhone": "string",
  "notes": "string",
  "password": "string",
  "role": {
    "encodedKey": "string",
    "id": "string"
  },
  "title": "string",
  "transactionLimits": {
    "property1": 0,
    "property2": 0
  },
  "twoFactorAuthentication": true,
  "username": "string"
}

Allows the creation of a user

Properties

Name Type Description Restrictions
access (required) UserAccess Represents the user permissions and access rights. none
assignedBranchKey string The encoded key of the branch this user is assigned to. none
email string The user email address. Used by Mambu for sending automated notifications or for getting passwords. none
encodedKey string The encoded key of the entity, generated, globally unique read-only
firstName (required) string The first name of the user. none
homePhone string The user's home phone number, which can also contain characters. none
language string The Mambu display language for the user. The Mambu UI will be displayed in the selected language. Please note: for portuguese, you must use the incorrect spelling PORTUGESE. none
lastName string The last name of the user. none
mobilePhone string The user's mobile phone number, which can also contain characters. none
notes string The additional information for the user. none
password (required) string Password used by the user none
role RoleIdentifier Represents the role identifier. none
title string The user title. none
transactionLimits object The user transaction limits. none
» additionalProperties integer(int32) none none
twoFactorAuthentication boolean TRUE if the user has two-factor authentication setup, FALSE otherwise. If two-factor authentication is enabled, a user will be sent an SMS to their registered mobile number, which they will need to enter in the Mambu login screen, in addition to their password. none
username (required) string The Mambu login user name. none

Enumerated Values

Property Value
language ENGLISH
language PORTUGESE
language SPANISH
language RUSSIAN
language FRENCH
language GEORGIAN
language CHINESE
language INDONESIAN
language ROMANIAN
language BURMESE
language GERMAN
language PORTUGUESE_BRAZIL
language VIETNAMESE
language ITALIAN
language PHRASE

ValidationRules

{
  "unique": true,
  "validationPattern": "string"
}

Represents the settings for field input validation.

Properties

Name Type Description Restrictions
unique boolean TRUE if this field does not allow duplicate values, FALSE otherwise. none
validationPattern string The expected format for the input. none

WithdrawalDepositTransactionInput

{
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "holdExternalReferenceId": "string",
  "notes": "string",
  "paymentDetails": {
    "creditor": {
      "name": "string"
    },
    "creditorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "creditorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "debtor": {
      "name": "string"
    },
    "debtorAccount": {
      "currency": "string",
      "identification": {
        "iban": "string",
        "other": {
          "identification": "string",
          "scheme": "string"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "string"
      }
    },
    "paymentIdentification": {
      "endToEndIdentification": "string",
      "instructionIdentification": "string",
      "transactionIdentification": "string"
    },
    "paymentTypeInformation": {
      "serviceLevel": {
        "code": "string"
      }
    },
    "remittanceInformation": {
      "structured": {
        "creditorReferenceInformation": {
          "reference": "string",
          "referenceIssuer": "string",
          "referenceType": "string"
        }
      },
      "unstructured": "string"
    }
  },
  "paymentOrderId": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the input for a withdrawal transaction.

Properties

Name Type Description Restrictions
amount (required) number The amount to withdraw from account none
bookingDate string(date-time) The date of the withdrawal when the transaction is logged into accounting. If not specified it is considered the value date none
externalId string The external id of the withdrawal transaction, customizable, unique none
holdExternalReferenceId string The external id of an account authorization hold none
notes string Extra notes about this withdrawal transaction none
paymentDetails PaymentDetails The payment information including account identification details none
paymentOrderId string The payment order id of the withdrawal transaction, customizable none
transactionDetails TransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
valueDate string(date-time) The entry date of the withdrawal. If not specified it is considered the current date (as Organization Time) none

WithdrawalRedrawTransactionInput

{
  "_Example_Custom_Fields": {
    "Example_Checkbox_Field": "TRUE",
    "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
    "Example_Date_Field": "2018-12-14",
    "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
    "Example_Free_Text_Field": "A free text field up to 255 characters in length",
    "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
    "Example_Number_Field": "46290",
    "Example_Select_Field": {
      "example_option_id": "873023434",
      "example_option_value": "option 5"
    },
    "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
  },
  "amount": 0,
  "bookingDate": "2016-09-06T13:37:50+03:00",
  "externalId": "string",
  "notes": "string",
  "originalCurrencyCode": "string",
  "transactionDetails": {
    "transactionChannelId": "string",
    "transactionChannelKey": "string"
  },
  "valueDate": "2016-09-06T13:37:50+03:00"
}

Represents the request payload for creating a transaction of type WITHDRAWAL_REDRAW

Properties

Name Type Description Restrictions
_Example_Custom_Fields _Example_Custom_Fields An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields. none
amount (required) number The amount to be withdrawn from redraw balance none
bookingDate string(date-time) The booking date of the withdrawal transaction (as Organization Time) none
externalId string The external id of the withdrawal transaction, customizable, unique none
notes string Extra notes about the withdrawal transaction. Notes can have at most 255 characters in length. none
originalCurrencyCode string The currency code for the transaction none
transactionDetails LoanTransactionDetailsInput Contains the details about transaction including fields like transaction channel key and channel ID none
valueDate string(date-time) The value date of the withdrawal transaction (as Organization Time) none

_Asset_Default_Assets

{
  "Example_Checkbox_Field_Assets": "TRUE",
  "Example_Free_Text_Field_Assets": "string",
  "Example_Number_Field_Assets": "string",
  "Example_Select_Field_Assets": "Option 1"
}

Default custom field set used only for grouping asset custom fields

Properties

Name Type Description Restrictions
Example_Checkbox_Field_Assets string none none
Example_Free_Text_Field_Assets string none none
Example_Number_Field_Assets string(number) none none
Example_Select_Field_Assets string none none

Enumerated Values

Property Value
Example_Checkbox_Field_Assets TRUE
Example_Checkbox_Field_Assets FALSE
Example_Select_Field_Assets Option 1
Example_Select_Field_Assets Option 2
Example_Select_Field_Assets Option 3

_Example_Custom_Fields

{
  "Example_Checkbox_Field": "TRUE",
  "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c",
  "Example_Date_Field": "2018-12-14",
  "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
  "Example_Free_Text_Field": "A free text field up to 255 characters in length",
  "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
  "Example_Number_Field": "46290",
  "Example_Select_Field": {
    "example_option_id": "873023434",
    "example_option_value": "option 5"
  },
  "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c"
}

An example of some custom field values. For more information on working with custom fields using the API, see Using Custom Fields.

Properties

Name Type Description Restrictions
Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
Example_ClientLink_Field string A client link field stores the encodedKey of a client. none
Example_Date_Field string(date) A date field takes a date in YYYY-MM-DD format. none
Example_Datetime_Field string(datetime) A date field takes a timestamp in YYYY-MM-DDThh:mm:ss.SSS+hh:mm format. none
Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
Example_GroupLink_Field string A group link field takes the encodedKey of a group. none
Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
Example_Select_Field object A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
Example_UserLink_Field string A user link field takes the encodedKey of a Mambu user. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE

_Example_Grouped_CF_Set

{
  "Example_Checkbox_Field": "TRUE",
  "Example_Free_Text_Field": "A free text field up to 255 characters in length",
  "Example_Number_Field": "46290",
  "Example_Select_Field": [
    {
      "example_option_id": "123",
      "example_option_value": "option 1"
    },
    {
      "example_option_id": "456",
      "example_option_value": "option 7"
    }
  ],
  "_index": "0"
}

An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see Grouped Custom Fields.

Properties

Name Type Description Restrictions
Example_Checkbox_Field string A field that will appear as a checkbox in the UI. In the API, the value will be TRUE or FALSE as a string. The value must be provided as a string, not a boolean. none
Example_Free_Text_Field any A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API. none
Example_Number_Field string(number) A field supporting numbers only. Please note: the value is to be provided as a string. none
Example_Select_Field array A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values. none
_index string(number) The index for this set of grouped custom field values. none

Enumerated Values

Property Value
Example_Checkbox_Field TRUE
Example_Checkbox_Field FALSE

_Guarantor_Default_Guarantors

{
  "Example_Checkbox_Guarantors": "TRUE",
  "Example_Free_Text_Guarantors": "string",
  "Example_Number_Field_Guarantors": "string",
  "Example_Select_Field_Guarantors": "Option 1"
}

Default custom field set used only for grouping guarantor custom fields

Properties

Name Type Description Restrictions
Example_Checkbox_Guarantors string none none
Example_Free_Text_Guarantors string none none
Example_Number_Field_Guarantors string(number) none none
Example_Select_Field_Guarantors string none none

Enumerated Values

Property Value
Example_Checkbox_Guarantors TRUE
Example_Checkbox_Guarantors FALSE
Example_Select_Field_Guarantors Option 1
Example_Select_Field_Guarantors Option 2
Example_Select_Field_Guarantors Option 3