Top Banner
Mambu Data Dictionary Mambu Version: V5.0 - 4ef24fa Description This document describe the database structure and fields used in Mambu for the purposes of supporting the Mambu APIs, Business Intelligence Reporting & enabling data migration procedures Overview Mambu is built on a relational database system, but is often de-normalized and put the dependency on the application to maintain certain level of integrity. For instance, a loan account has a foreign key to its holder which may be a client or a group. Here we indicate which fields are also logically required or currently unused (or reserved for future use). This document focuses on tables which are importable or accessible via APIs - the rest are summarized in little detail at the end. Common Fields All tables have a primary key called encodedKey. This key is Universally unique identifier (UUID ) generated by the application at the time of creating or storing the object Many tables will also have fields called creationDate and lastModifiedDate indicating when the object was created and last modified. Time Stamps Most time stamps in Mambu are stored in UTC. Some variation to this are pure dates which have meaning for the organization itself. For instance, if a repayment is due on June 16th, 2010 it will be stored as “June 16, 2010 00:00:00” in the database. The application logic then takes care of ensuring that this repayment is set to in arrears as appropriate for the organizations’ time zone.
112

Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Apr 19, 2018

Download

Documents

nguyenbao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Mambu Data Dictionary

Mambu Version: V5.0 - 4ef24fa

Description

This document describe the database structure and fields used in Mambu for the purposes of supporting the Mambu APIs, Business Intelligence Reporting & enabling data migration

procedures

Overview Mambu is built on a relational database system, but is often de-normalized and put the dependency on the application to maintain certain level of integrity. For instance, a loan account has a foreign key to its holder which may be a client or a group. Here we indicate which fields are also logically required or currently unused (or reserved for future use). This document focuses on tables which are importable or accessible via APIs - the rest are summarized in little detail at the end. Common Fields All tables have a primary key called encodedKey. This key is Universally unique identifier (UUID) generated by the application at the time of creating or storing the object Many tables will also have fields called creationDate and lastModifiedDate indicating when the object was created and last modified. Time Stamps Most time stamps in Mambu are stored in UTC. Some variation to this are pure dates which have meaning for the organization itself. For instance, if a repayment is due on June 16th, 2010 it will be stored as “June 16, 2010 00:00:00” in the database. The application logic then takes care of ensuring that this repayment is set to in arrears as appropriate for the organizations’ time zone.

Page 2: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

In each entity’s table presented in this document, for it’s date fields extra info will be found about what value is stored in the database (UTC or Organization Time).

Mambu Data Dictionary - 1

Page 3: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Table of Contents

Mambu Data Dictionary

Table of Contents Diagrams AccountLink Activity Address AmortizationAmount BackgroundProcess BackgroundProcessProgress BackgroundTask BatchMigration Branch Centre Client ClientRole ColumnConfiguration Comment Currency CurrencyMapping CustomConfigurationInfo CustomField CustomFieldLink CustomFieldSelection CustomFieldSet CustomFieldValue CustomFilter CustomFilterConstraint CustomMenuItem CustomPredefinedFee CustomPreference CustomRepaymentSettings CustomView DecimalIntervalConstraints

Mambu Data Dictionary - 2

Page 4: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

DisbursementDetails Document ExchangeRate FailedAttempt GeneralSettings GLAccount GLAccountingRule GLAccountsClosure GLJournalEntriesSummary GLJournalEntryInterestAccrualLog GLJournalEntry Group GroupMember GroupRole GroupRoleName Guaranty IdentificationDocument IdentificationDocumentTemplate Image IndexRate IndexRateSource InterestAccountSettings InterestBaseSettings InterestProductSettings InterestRateTier LineOfCredit LoanAccount LoanGroup LoanProduct LoanTranche LoanTransaction LoanTransactionTerms MessageTemplate MessageTemplateRecipient NonWorkingDay NotificationMessage ObjectLabel Organization OrganizationBranding

Mambu Data Dictionary - 3

Page 5: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

PeriodicPayment PeriodIntervalSettings PredefinedFee PredefinedFeeAmount PrincipalPaymentAccountSettings PrincipalPaymentBaseSettings PrincipalPaymentProductSettings ProductArrearsSettings ProductSecuritySettings Repayment RepaymentFeeDetails SavingsAccount SavingsProduct SavingsTransaction Task Till TransactionChannel TransactionDetails User UserManagedBranch Other Tables Appendix 1

Activity types Indicators types

Diagrams The following diagrams help capture the relationships of the models described below. It is centered around the main relationship of Client, Loans & Savings

Mambu Data Dictionary - 4

Page 6: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Mambu Data Dictionary - 5

Page 7: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Mambu Data Dictionary - 6

Page 8: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Mambu Data Dictionary - 7

Page 9: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

AccountLink Description Represents a link created between a loan account and a deposit account. These links are used to be able to pay the loan account due amounts in the due date of a repayment, automatically, via transfers from the linked deposit account. Fields

NAME TYPE DESCRIPTION

loanAccountKey String The key of loan account with which the deposit account is linked. Required

savingsAccountKey

String

The key of deposit account linked to the loan account.Required

creationDate Date The date when the link was created - Stored as UTC

lastModifiedDate Date The date when the link was changed - Stored as UTC

Activity Description Each action that takes place in the application is followed by an activity that is logged and posted on the dashboard and on the activity feed. Fields

NAME TYPE DESCRIPTION

transactionID Long The id of the transaction contained in the activity.

timestamp String The time when the activity was logged.

type String Enum

The type of the activity. See Activity types from Appendix 1.

clientKey String Set to client encoded key if the activity is associated with a client

groupKey String Set to group encoded key if the activity is associated with a

Mambu Data Dictionary - 8

Page 10: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

group

branchKey String Set to branch encoded key if the activity is associated with a particular branch

centreKey String Set to centre encoded key if the activity is associated with a particular centre

loanProductKey String Set to loan product encoded key if the activity is associated with a particular product (eg. account activity)

loanAccountKey String Set to loan account encoded key if the activity is associated with a particular loan account

savingsProductKey String Set to loan product encoded key if the activity is associated with a particular product (eg. account activity)

savingsAccountKey String Set to loan account encoded key if the activity is associated with a particular loan account

userKey String The user key of the user (activity actor) who was logged in and performed the activity

assignedUserKey String Set to a user who is assigned to be notified about this activity (such being the owner of the clients) also, is used as the assigned user key of the entity for whom the activity is placed (the credit officer of the client, for example)

glAccountKey String Set to gl account encoded key if the activity is associated with a particular gl account

glAccountsClosureKey

String Set to GlAccountClosure encoded key if the activity is associated with a particular accounting closure

notes String The notes logged within the activity.

entityType

Enum String

Field used for generic activities and specifies entity type (Eg. CLIENT, GROUP, BRANCH)

entityKey String Used for generic activities and specifies the key of the linked entity (CLIENT, GROUP, etc)

parent

Activity Specifies the parent activity if any

activityChanges List <Activity>

Specifies a list of sub activities

lineOfCreditKey String The key of the line of credit involved in this activity

fieldChanges List<FieldC List of field changes

Mambu Data Dictionary - 9

Page 11: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

hangeItem>

taskKey String The key of the task involved in this activity

assignedCentreKey String The key of the centre involved in this activity

fieldChangeName FieldChangeName

The field which corresponds to this activity in the case when it is a sub-activity

Address Description Captures address information about clients, groups, etc. Foreign key (parentKey) relies on primary keys being UUIDs. Parents may have any number of addresses. For instance, the address field may have a parentKey = “abc” which refer to the Client.encodedKey = “abc”. As such, addresses are to be retrieved via their parents. Fields

NAME TYPE DESCRIPTION

parentKey String Foreign key as to who this address belongs to. For instance may refer to a client or a group, etc. Required

addressType Enum String

Type of address. Unused

line1 String First line of the address

line2 String Second line of the address

city String City of the address

region String Sub-region of the address. Unused.

postcode String Postal code of the address

country String Country of the address

indexInList Int Order of the address if the parent holder has multiple addresses (for display/formatting purposes. That is, 0 is displayed before 1, etc.

latitude Decimal The latitude of the address point.

longitude Decimal The longitude of the address point.

Mambu Data Dictionary - 10

Page 12: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

AmortizationAmount Description An amount that was amortized from a bigger one. When organizations hold an asset, an income or an expense, they want to amortize it over the time. This class is used to amortize a part of the initial amount. Fields

NAME TYPE DESCRIPTION

entryDate Date The date when this amount was recognized as amortized (as Organization Time). Required

creationDate Date The system date when this entry was logged (as UTC). Required

type Enum String

The type of the amortization(regular amortization, reversal, etc.) ● AMORTIZATION, ● AMORTIZATION_ADJUSTMENT

reversalAmountKey String In the case when this amount is reversed the reversalAmountKey represent the key of the amount which reversed this current one

amount BigDecimal

The amount amortized by this instance. Required

taxAmount BigDecimal

The amount of taxes amortized by this instance.

BackgroundProcess Description The execution of a process started by a user, that is done in the background Fields

NAME TYPE DESCRIPTION

state Enum String

The current status of this process: ● IN_PROGRESS ● COMPLETE ● NOT_FOUND ● CANCEL ● ERROR ● OVERRIDDEN

Mambu Data Dictionary - 11

Page 13: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Required

type Enum String

The type of the action: ● ACCOUNTING_BALANCE_SHEET_REPORT ● ACCOUNTING_PRODUCT_LEDGER ● ACCOUNTING_TRIAL_BALANCE_REPORT ● ACCOUNTING_PROFIT_AND_LOSS_REPORT ● STORE_HOLIDAYS ● STORE_HOLIDAYS_FOR_BRANCH ● CRON_JOBS ● GENERATE_GL_ACCOUNTS_CLOSURE

Required

userKey String The key of the user that started this process.

startDate Date When this process was started. Stored as Organization Time.

endDate Date When this process was ended. Stored as Organization Time.

BackgroundProcessProgress Description Entity which correspond to the progress information of a background process Fields

NAME TYPE DESCRIPTION

currentProgress BigDecimal

The process current progress

totalProgress BigDecimal

The process total progress that need to be executed (includes the progress that was executed and the one that needs to be executed)

progressType ProgressType

How this progress is measured

BackgroundTask Description Represents a task which is submitted for background processing

Mambu Data Dictionary - 12

Page 14: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

process BackgroundProcess

The associated background process to this task, it contains information about process state and progress.

progress BackgroundProcessProgress

The associated background process progress to this task.

entityKey String The entity key which for which this task was created.

entityType TargetType

The type of the entity for which this task was created

input JSON Input of the task, JSON serialized version

result JSON Result of the task, JSON serialized version

taskId Long Incremented id used for ordering. (UNIQUE INDEX ‘TASKID_UNIQUE’)

BatchMigration Description Holds information about batch migration scripts. Fields

NAME TYPE DESCRIPTION

entityKey String Maintains the key of the migrated entity.Required

successful Boolean Maintains the state of the migrated entity

exception String Exception of the failed update process

Branch Description A Branch is the main division criteria of the organization.

Mambu Data Dictionary - 13

Page 15: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

name String The name of the branch.

id String An unique user defined ID. Required

phoneNumber String The phone number defined for a branch

emailAddress String The email address defined for a branch

Centre Description A Centre is a common meeting area where credit officers, the individuals 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. Fields

NAME TYPE DESCRIPTION

name String The name of the centre. Required

assignedBranchKey String Foreign key to a Branch. It defines the branch to whom this centre belongs to. Required

id String An unique user defined ID. Required

meetingDay String The day of week when the meeting is scheduled. The clients/groups that are associated to a centre, that have a meeting day, can have the repayments due date in the specified meeting day. The meeting day can be:

● MONDAY ● TUESDAY ● WEDNESDAY ● THURSDAY ● FRIDAY ● SATURDAY ● SUNDAY

notes String Optional notes that can be entered when the centre is created/edited.

migrationEventKey String Foreign key to a specific Migration Event. A centre might be imported using the Data Import feature and all the data imported from a file will be a part of a specific migration event (when this event will be reverted, all the data associated with it will be removed

Mambu Data Dictionary - 14

Page 16: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

from the system)

state Enum String

State of the Centre: Active/Inactive.

Client Description Captures information about individual clients of the MFI. Clients may have their own accounts or belong to groups. Clients are also assigned to users and branches. Custom fields, identification documents & addresses are stored in separate tables Fields

NAME TYPE DESCRIPTION

id String A unique (for Clients) human-readable identifier for the the client id. Generated automatically when storing a client through the application but can be set to anything during import. Required

firstName String The first name(s) of the client. Required.

lastName String The last name(s) of the client. Required

middleName String The middle name(s) of the client.

homePhone String The home phone number of the client

emailAddress String Email address of the client

mobilePhone1 String Mobile phone number of the client

mobilePhone2 String Mobile phone number of the client (secondary)

birthDate Date Date of when the client was born (Organization Time)

gender Enum String

Gender of the client. Must be one of: MALE or FEMALE.

notes String HTML rich-text detailed notes about the client

assignedUserKey String Foreign key to the Users table indicating who the the user assigned to the client is (ie: which credit officer is responsible for them)

assignedBranchKey String Foreign key to the Branch table indicating which branch the client belongs to

assignedCentreKey String Foreign key to the Centre table indicating to which centre the client belogs to.

Mambu Data Dictionary - 15

Page 17: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

loanCycle Integer The client’s current individual loan cycles. Auto-increment on successful account closure.

groupLoanCycle Integer The client’s current group loan cycle. That is, how many successful loans they’ve been part of as a group. Auto-incremented on successful account closure.

profilePictureKey String Foreign key to the Images table containing the image of the client’s profile picture

profileSignatureKey String Foreign key to the Images table containing the signature image for this client

migrationEventKey String Foreign key to a specific Migration Event. A client might be imported using the Data Import feature and all the data imported from a file will be a part of a specific migration event (when this event will be reverted, all the data associated with it will be removed from the system)

state String Enum

Like the accounts, the clients might go to an approval process, by the MFIs. A client can be: - PENDING_APPROVAL: is waiting for approval - INACTIVE: has only inactive accounts - ACTIVE: has at least one active account - EXITED: was closed normally - BLACKLISTED: was closed and blacklisted

approvedDate Date The date when the client was set into APPROVED state (UTC)

activationDate Date The date when the account was set into ACTIVE state (when an active account was created for him) (UTC)

closedDate Date The date when the client was Exited or Blacklisted (UTC)

predefinedFee_encodedKey_oid

String In case this transaction is related to a predefinedFee, this is the key to that predefinedFee

portalPreferencesKey

String Foreign key to the client’s portal preferences object - if preferences have been defined for this client. These is created when the portal is first activated for the client

clientRoleKey String The key of the the client role this client belongs to

ClientRole Description A role which describes the intended use of a Client or Group in the system

Mambu Data Dictionary - 16

Page 18: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

name String The name of the client role

id String The id of the client role

clientType Enum String

The category addressed by this role ● CLIENT ● GROUP

creationDate Date The date when the role was created (as UTC).

createdByUserKey String The key of the user who created the role

index Integer The index giving the order of the roles

canOpenAccounts Boolean Whether this role can open loan/savings accounts.

canGuarantee Boolean Whether this role can guarantee for other clients/groups

requireID Boolean Whether it is mandatory for the client to have an ID

description String Description text for client roles

useDefaultAddress Boolean Field to indicate if this the default address should be ussed

Mambu Data Dictionary - 17

Page 19: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

ColumnConfiguration Description Stores a configuration for loans/savings/clients/groups according to the specified list type. It keeps track of the column order, for the given list, can be shared with other users or can include the computed totals (for the number columns). Fields

NAME TYPE DESCRIPTION

fieldColumns List<FieldColumn> The ordered columns that will be displayed in the list

sortingColumn FieldColumn The column used for sorting

sortingOrder String Enum

Order of sorting, can be: ● ASCENDING ● DESCENDING

customConfigurationInfo CustomConfigurationInfo

Reference to the entity holding common information for the custom configuration enitites

includeTotals Boolean Specifies whether to include total values for the numeric and money columns

includeTimestamp Boolean Whether to include timestamp or not.

Comment Description For each entity available in the application (client, group, account, user, branch etc.) there can be posted comments, by the users. Fields

NAME TYPE DESCRIPTION

parentKey String The parent of the comment is the object it belong to (eg, a client)

userKey String The user who left the comment.

creationDate Date The date when the comment has been created.

Mambu Data Dictionary - 18

Page 20: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

lastModifiedDate Date The date when the comment has been modified last time.

text String The comment text.

Currency Description Holds details about the currency being used by the MFI. Not user configurable. Fields

NAME TYPE DESCRIPTION

code String Official ISO 4217 code, for example: CAD, USD or EUR see http://en.wikipedia.org/wiki/ISO_4217

name String Name of the currency, for example “Canadian dollar”

symbol String Short symbol like ‘$’

digitsAfterDecimal Integer Number of digits which the currency has after the decimal places for display

currencySymbolPosition String Enum

Possible values: ● BEFORE_NUMBER ● AFTER_NUMBER

isBaseCurrency Boolean Whether the currency is the base one used by the organization

creationDate Date UTC date of creation

lastModifiedDate Date UTC date of last modification

CurrencyMapping Description Holds a list of currencies associated to this product. An account for the product can use only the currencies associated to this product.

Mambu Data Dictionary - 19

Page 21: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

parentKey String The encoded key of the parent of the entity mapping.

currencyCode String The currency code associated to this product.Required

index Integer Column used to sort currencies inside list.Required

CustomConfigurationInfo Description Entity holding common information used in the Custom Configuration entities CustomView, CustomFilter or ColumnConfiguration. Fields

userKey String The key of the user who created this configuration

name String The name of the custom configuration

shared Boolean Specfiies whether this configuration is shared with all users.

dataViewType String Enum

View type for this configuration: ● LOANS ● SAVINGS ● etc.

indexInList Integer Specifies the position in an outside collection of custom configurations.

creationDate Date UTC date of creation

lastModifiedDate Date UTC last modified date

CustomField Description A custom field is a user-defined field which is applicable for any other type of object such as a

Mambu Data Dictionary - 20

Page 22: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Client or Group. The CustomField define a type (such as “Education”) and the CustomFieldValue defined the individual stored value for any given client (such as “Bachelors”) Fields

NAME TYPE DESCRIPTION

name String The name of the custom field. Such as ‘Education’ Required

id String Unique, user-defined ID for the custom field object

description String A short description of the specific custom field.

values List <String>

Used to store the predefined values for the dataType.SELECTION custom fields. For example: - name = ‘Occupation’; - values = ‘Teacher’, ‘Student’;

type Enum String Type of custom field. Defines for whom this field is applicable to. Some fields are for clients, whereas other are for groups, etc. Must be one of:

● CLIENT_INFO ● GROUP_INFO ● BRANCH_INFO ● CREDIT_OFFICER_INFO

Required.

dataType Enum String Type of value which is to be stored (refers to the representation of CustomFieldValue.value). Must be one of:

● STRING. ● SELECTION;

Required

isDefault Boolean Whether the field is to be displayed as a default field when creating the client/group/etc. Required

isRequired String Whether the field is required when creating the client/group/etc. Required

amounts HashMap <String, BigDecimal>

With our custom fields, it's easy to assign value amounts to certain field selections. This is really beneficial for social performance monitoring. It assigns values to custom fields selections and allow performing reporting and interface analysis on them.

indexInList Integer Index of the custom field in the list of all custom fields with the same type; -1 means that this custom field was never ordered by the application

state Enum String Custom field state ● NORMAL - The default state for a custom field

Mambu Data Dictionary - 21

Page 23: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● DEACTIVATED - Used to mark the custom field as deactivated

viewRights UsageRights The usage rights that describes the view access to the Custom Field.

editRights UsageRights The usage rights that describes the edit access to the Custom Field.

builtInCustomFieldId

BuiltInCustomFieldId

The field that is part of the builtIn custom fields (custom fields whose values are store in entity table for example Client.firstName).

unique boolean Indicates that the values for this custom field needs to be unique. It can be used only for text type custom fields

lastModifiedDate Date The last date when the custom field was changed - Stored as UTC

creationDate Date The date when the custom field was created - Stored as UTC

CustomFieldLink Description Information about the availability of a custom field for another entity (product, client role) Fields

NAME TYPE DESCRIPTION

entityLinkedKey String The key to the loan, savings product, or client type, this custom field might be assigned to. When the key is set, the custom field can be used for the accounts made after that product Required

customFieldLinks_encodedKey_own

String The key to the custom field. Required

isDefault Boolean Whether the linked custom field is displayed by default when creating a new entity Required

isRequired Boolean Whether the linked custom field is displayed by default for the linked entity. Required

linkType Enum String

Specifies the link type, like product or a client role. Required

Mambu Data Dictionary - 22

Page 24: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

CustomFieldSelection Description Entity holding a selection value for a custom field of type CustomField.DataType.SELECTION. The entity will also keep the score for that given value and if the parent custom field has a dependency on another custom field the dependency rule will be kept in the CustomFilterConstraint. Fields

NAME TYPE DESCRIPTION

constraintKey String The key of the constraint that keeps the dependency on the parent custom field. Can be null if no parent is assigned.

score Decimal The score for the selection (credit scoring feature)

value String Value of the selection that appears in the dropdown

customFieldKey String The key of the custom field associated with this selection

selectionIndex Integer The index in list for this selection

CustomFieldSet Description Defines a set of custom fields for grouping them on the interface Fields

NAME TYPE DESCRIPTION

id String The custom field set identifier.

name String The name of the custom field set Required

notes String A short description of the specific custom field set.

type Enum String Type of custom field set. Defines for whom this set is applicable to. Some fields are for clients, whereas other are for groups, etc. Must be one of:

● CLIENT_INFO

Mambu Data Dictionary - 23

Page 25: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● GROUP_INFO ● BRANCH_INFO ● CREDIT_OFFICER_INFO

Required.

customFields List<CustomField>

A list with all custom fields assigned to this set.

createdDate Date The date when this set was created (as UTC).

lastModifiedDate Date The date when this set was last modified (as UTC).

indexInList Integer Index of the set in the list of all sets with the same type.

usage Enum String Custom field set usage. Enum used for deciding how the Custom field set will be used in the UI and how the custom field values will be stored.

● SINGLE - Default behavior, when the custom field set is displayed in the UI and can be used only once on one entity. The custom fields can be add/removed from the custom field set.

● GROUPED - Custom field set is allowed multiple times for the same entity. The entity can have multiple custom field values for the same custom field.

builtInType BuiltInType Represents the special sets which contains the configurations for fields that are part of the entities

CustomFieldValue Description To store the value for a custom field for a client or group. For instance, if the CustomField is ‘Education’ then the Value may store the string ‘Bachelor’s Degree’ Fields

NAME TYPE DESCRIPTION

parentKey String Foreign key to the holder of this custom field. That is, may refer to the Client.encodedKey or Group.encodedKey, etc. Required

customFieldKey Enum String

Foreign key to the CustomField. Required

value String Value of the field (such as ‘Bachelors’ if the CustomField was Education)

indexInList Integer Order of the address if the parent holder has multiple addresses (for

Mambu Data Dictionary - 24

Page 26: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

display/formatting purposes. That is, 0 is displayed before 1, etc.

amount BigDecimal

With our custom fields, it's easy to assign value amounts to certain field selections. This is really beneficial for social performance monitoring. It assigns values to custom fields selections and allow performing reporting and interface analysis on them.

customFieldSetGroupIndex

Integer Field used for deciding which is the order of the custom field sets for {@link CustomFieldSet.Usage}.GROUPED. Where a custom field set can be duplicated and used multiple times for the same entity

linkedEntityKeyValue

String Key of the linked entity stored as value for the custom field

CustomFilter Description Represents a filter saved by a user for a certain list displayed in the application. Fields

NAME TYPE DESCRIPTION

filterConstraints List<CustomFilterConstraint>

List of filtering constraints for the current filter

CustomFilterConstraint Description Represents a filtering condition as example "Client age BETWEEN 15 AND 100”. Fields

NAME TYPE DESCRIPTION

dataFieldType String Enum

Field type: ● NATIVE ● CUSTOM

dataItemType String Enum

Item type: ● LOANS ● SAVINGS ● etc.

Mambu Data Dictionary - 25

Page 27: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

dataType String Enum

Data type: ● BIG_DECIMAL ● DATE ● LONG ● MONEY ● etc.

dataFieldValue String The name of the data field. For example the constraint “Loan Purpose EQUALS Agriculture Loan” will have as data field value Loan Purpose.

customFieldKey String The custom field key after which the filtering is done.

filterElement String Enum

Filter element: ● EQUALS ● MORE_THAN ● LESS_THAN ● STARTS_WITH ● BETWEEN ● ON ● AFTER ● BEFORE ● TODAY ● THIS_WEEK ● THIS_MONTH ● THIS_YEAR ● LAST_DAYS

value String The first filtering value of the filter. For example the constraint “Loan Purpose EQUALS Agriculture Loan And Science” has as (first) value “Agriculture Loan”.

secondValue The first filtering value of the filter. For example the constraint “Loan Purpose EQUALS Agriculture Loan And Science” has as second value “Science”.

linkingOperator String Enum

The operator on which this constraint is linking to the previous expression. Eg. AND loan.id='B' it is the AND operator part

● AND ● OR

groupNumber Integer Specifies the group expression number for which this constraints is part of.

CustomMenuItem Description Entity class for holding information about a custom menu item. It offers the possibility to customize what menus are to be displayed in the navigation bar along with their name and other defining properties.

Mambu Data Dictionary - 26

Page 28: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

creationDate

Date The date when the custom menu item was created - Stored as UTC

lastModifiedDate Date The last date when the custom menu item was changed - Stored as UTC

userKey String The key of the custom configuration author

name String The name of the custom menu item

type DataItemType

The type of the custom menu item (LOANS, SAVINGS etc)

viewRights UsageRights

The usage rights that describes the view access to the Custom Menu Item.

state CustomMenuItemState

Holds the state which defines the accessibility for the current custom menu item

includeCollections boolean Whether to include collections item in custom transactions menus

CustomPredefinedFee Description Entity class which "customize" a specific predefined fee. When a custom predefined fee is used the details of the predefined fee can be obtained directly from the referenced predefined fee entity or some of the settings as the amount can be customized and obtained directly from this custom predefined fee entity. Fields

NAME TYPE DESCRIPTION

fee

PredefinedFee

The predefined fee to be customized.

amount

BigDecimal

Custom amount for the fee

Mambu Data Dictionary - 27

Page 29: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

CustomPreference Description Model used to maintain custom preferences for a User. Fields

NAME TYPE DESCRIPTION

preferenceType

CustomPreferenceType

Containing values for the opening columns in Trial Balance report.

preferenceViewType

CustomPreferenceViewType

Containing view that offer column preferences functionalities

indexInList Integer Index of the user custom preference in the list of all custom preferences with the same type; -1 means that this custom preference was never ordered by the application

value Boolean

If the column is displayed or not.

CustomRepaymentSettings Description Holds a link between a repayment and a type of settings which were customized by the user for the repayment. Fields

NAME TYPE DESCRIPTION

type Enum String

The type of the settings which were customized by the user for the repayment to which this entity is linked.

● CUSTOM_DUE_DATE, ● CUSTOM_PRINCIPAL

Required

source Enum String

The source of the settings (how the custom settings were created).

Mambu Data Dictionary - 28

Page 30: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● USER_INPUT, ● INSTALLMENT_PAID

Required

loanTransactionKey String The key of the loan transaction which caused this custom settings

Mambu Data Dictionary - 29

Page 31: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

CustomView Description Entity holding information about a custom view. A custom view represents a composition between a CustomFilte, a ColumnConfiguration and a DataField used for sorting purposes. It is used for displaying data represented by data items by offering information for filtering, sorting, arranging and paginating this data. Fields

NAME TYPE DESCRIPTION

filter CustomFilter The custom filter used by the view

columnConfiguration ColumnConfiguration The columns used by the view

customConfigurationInfo CustomConfigurationInfo Holds view data like name, view type

viewMode Enum String

The mode in which the custom view is shown: ● DETAIL ● LIST

Required

parentMenuItemKey String The key of the custom menu item under which this custom view can be found. Required

viewRights UsageRights The usage rights that describes the view access to the Custom View. Required

DecimalIntervalConstraints Description Holds for keeping decimal min/max/default constraints. Fields

NAME TYPE DESCRIPTION

minValue Decimal The constraint minimum value

maxValue Decimal The constraint maximum value

defaultValue Decimal The constraint default value

Mambu Data Dictionary - 30

Page 32: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

DisbursementDetails Description Entity class which holds the informations related to the disbursement details as disbursement date, first repayment date, disbursement fees.

Fields

NAME TYPE DESCRIPTION

expectedDisbursementDate

Date

The expected disbursement date of the account. Stored as Organization Time.

disbursementDate

Date The activation date, the date when the disbursement actually took place. Stored as Organization Time.

firstRepaymentDate

Date The date of the first repayment. Stored as Organization Time.

transactionDetails

TransactionDetails

The input details for the disbursement transaction

fees

List<CustomPredefinedFee>

The list of the custom predefined fees related to account.

Document Description Represents a document stored in Mambu. The actual document data is not stored here in the database but externally in a different file stored, refernced to by the location. The location path is not multi-tenant aware. So even though document may be stored as tenantid/folder/file.jpeg The location will refer to folder/file.jpg and it is up to the remote file retrieval system to retrieve the document

Fields

NAME TYPE DESCRIPTION

id Long The id of the document

Mambu Data Dictionary - 31

Page 33: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

creationDate Date UTC date represents creation date for the document

lastModifiedDate Date UTC date represents last modification date for the document

documentHolderKey String Who is the holder of this document, if null then no holder for the document

documentHolderType String Enum

Type of the holder. Valid values: ● CLIENT ● GROUP ● LOAN_PRODUCT ● SAVINGS_PRODUCT ● CENTRE ● BRANCH ● USER ● LOAN_ACCOUNT ● DEPOSIT_ACCOUNT

name String Document name (provided)

type String Extension type of the document

fileSize Long Size of the file in bytes

originalFilename String Specifies the filename

location String Location of the document where it can be found /a/b/cc.jpg

description String Additional notes about the document

createdByUserKey String The key of the user who created the document

ExchangeRate Description Entity class for holding information about an exchange rate entry. The exchange rate is defined between two currencies (currently between the base currency and another available currency) and offers the rates at which the target currency is sold or bought at a given time by the organization.

Fields

NAME TYPE DESCRIPTION

userKey String The user who added the exchange rate.

fromCurrencyCode String The base currency used in the exchange rate.Required

Mambu Data Dictionary - 32

Page 34: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

toCurrencyCode String The target currency used in the exchange rate.Required

buyRate BigDecimal The rate at which the organization accepts money (e.g. incoming repayments, deposits).Required

sellRate

BigDecimal The rate at which the organization gives money (e.g. disbursals, withdrawals).Required

startDate Date the date when the rate starts to be used (as Organization Time). Required

endDate Date The date when the rate ended to be valid (as Organisation Time)..

FailedAttempt Description Holds login failed attempts Fields

NAME TYPE DESCRIPTION

value String Value used to identify the failed attempt eg. username for login form

count Integer Consecutive failed attempts count

dates List<Date> Maintained in UTC. Stores dates of failed attempts.

GeneralSettings Description Common settings for a Mambu instance which are configured under the Mambu admin. In here we can specify the default transaction channel key used in the organization, or the end of day processing method used. Fields

NAME TYPE DESCRIPTION

clientIDFormat String Pattern for generating client ids (uses letter & digit symbols as defined in IDGenerator)

Mambu Data Dictionary - 33

Page 35: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

groupIDFormat String Pattern for generating group ids (uses letter & digit symbols as defined in IDGenerator)

lineOfCreditIdFormat

String Pattern for generating line of credit ids (uses letter & digit symbols as defined in IDGenerator)

tillIDFormat String Pattern for generating till ids (uses letter & digit symbols as defined in IDGenerator)

decimalSeparator Enum String

Whether numbers are interpreted such as "$10.20" or "$10,20" to mean 10 dollars and 20 cents.

● COMMA ● DECIMAL

dateFormats HashMap<DateFormatType, String>

The possible values the type of a date format can take (DATE_FORMAT or DATE_TIME_FORMAT) together with the format of the date (eg. “dd-MM-yyyy”)

arrearsDaysBeforeWriteOff

Integer Number of days that are required before an account can be written off.

exposureType Enum String

How much a client can have in outstanding loans with the organization at any time.

● UNLIMITED ● SUM_OF_LOANS ● SUM_OF_LOANS_MINUS_SAVINGS

exposureAmount BigDecimal How much (number value) a client can have in outstanding loans with the organization at any time.

multipleLoans Enum String

Shows if multiple loans are allowed or not: ● UNLIMITED ● ONE_LOAN

assignmentConstraints

List<AssignmentConstraints>

List of required assignments for Clients and Groups:

multipleGroupMemberships

Enum String

Constraint on whether clients can belong to more than one group or not.

● UNLIMITED ● ONE GROUP

enabledComponents

List<MambuComponent>

The list of all the enabled components for the current tenant

● LOANS ● DEPOSITS ● BRANCHES ● CENTRES ● CLIENTS ● GROUPS ● ACCOUNTING

Mambu Data Dictionary - 34

Page 36: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● CREDIT_OFFICERS

defaultTransactionChannelKey

String Specifies the defafult transaction channel of the current tenant

defaultClientRoleKey

String Specifies the organization default client role of the current tenant.

defaultGroupRoleKey

String

Specifies the organization default group role of the current tenant.

interBranchTransferGLAccountKey

String The key of the GL Account which will be used for inter-branch transfers.

groupSizeLimitType Enum String

Group size limitation type

minGroupSizeLimit Integer Minimum group size allowed; null values causes ignoring of the limit.

maxGroupSizeLimit Integer Maximum group size allowed; null values causes ignoring of the limit.

defaultClientState Enum String

The state that a client it's set when it's created ● PENDING_APPROVAL ● INACTIVE ● ACTIVE ● EXITED ● BLACKLISTED ● REJECTED

defaultLineOfCreditState

Enum String

The state that a line of credit it's set when it's created ● PENDING_APPROVAL ● APPROVED ● ACTIVE ● CLOSED ● WITHDRAWN ● REJECTED

generalHolidays List<Holiday> List of all general holidays of an organization

approvalDisbursalTwoManRuleEnabled

Boolean If there are required separate users for approvals and disbursals

automatedAccountingClosuresInterval

Integer The interval (number of days) between the execution of automated accounting closures. If this number is 0, no automated closure is performed. Required.

maxAllowedUndoClosurePeriod

Integer Maximum of days we allow users to undo of close obligations met for an loan account. Required.

maxAllowedJournal Integer The maximum number of attachments for a journal entry.

Mambu Data Dictionary - 35

Page 37: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

EntryDocumentAttachments

Required.

eodProcessingMethod

Enum String

Specifies EOD processing settings whether is automatic, runs every midnight or manual, runs when the client initiates the action from the interface.

● AUTOMATIC ● MANUAL

duplicateClientChecks

List<DuplicateFieldConstraint>

List of duplicate constraint which needs to apply when saving clients.

duplicateClientConstraintAction

Enum String

Action to be taken when the duplicate client validation fails ● NONE ● WARNING ● ERROR

otherIdDocumentsEnabled

Boolean Whether the other id documents are enabled or not

GLAccount Description For organizations with accounting enabling, this represents the general ledger account Fields

NAME TYPE DESCRIPTION

glCode String Unique general ledger code for this account. Required

type Enum String

Type of GL Account. Must be one of: ● ASSET ● LIABILITY ● EQUITY ● INCOME ● EXPENSE

Required

usage Enum String

What the account is used for. Either a detailed account which is actually usable for deposits or as a header account which is just for display/organizational purposes. Must be one of:

● DETAIL ● HEADER

Required

name String The name of the GL account. Required

Mambu Data Dictionary - 36

Page 38: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

activated Boolean Whether the account is activated and may be used. Required

description String Detailed (text) description of the gl account

migrationEventKey String Foreign key to a specific Migration Event. A gl account might be imported using the Data Import feature and all the data imported from a file will be a part of a specific migration event (when this event will be reverted, all the data associated with it will be removed from the system)

allowManualJournalEntries

Boolean Whether the gl account accepts journal entries logged manually. The default value is true.

stripTrailingZeros boolean Whether the trailing zeros should be stripped or not when computing accounting reports for Header GL Accounts.

GLAccountingRule Description Holds the accounting definitions for the loan and savings product. A rule associates an accounting resource with a GLAccount and also a TransactionChannel with a GLAccount. Fields

NAME TYPE DESCRIPTION

productKey String Product key associated with this product rule.

predefinedFeeKey String The key of the predefined fee that uses this rule. If this field is null, this rule is not used by a predefined fee.

productType Enum String

Product type (eg: loan or savings) that is being refered to by the product key:

● LOAN ● SAVINGS

financialResource GLFinancialResource

The financial resource associated with this rule.

account GLAccount The account that is mapped to the financialResource.

index Integer Used for ordering of the product rules when they make part from a list.

transactionChannelKey

String The key of the transaction rule that uses this rule.

Mambu Data Dictionary - 37

Page 39: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

GLAccountsClosure Description An Accounts Closure is used to limit backdating of accounting operations. It simulates the accounting action of "book closing". Fields

NAME TYPE DESCRIPTION

closureDate Date The backdate when the accounting was closed (Organization Time) Required

creationDate Date Date/time stamp when the closure was recorded (UTC)

createdByUserKey String Foreign key to the User who performed the closure Required

branchKey String Foreign key of the branch where this closure was logged for

notes String Optional notes entered by the user when they logged the entry

GLJournalEntriesSummary Description Keeps the last states of a bucket of GLJournalEntry unique identified by a branch, GLAccount and a product. Fields

NAME TYPE DESCRIPTION

branchKey String The key of the assigned branch for this journal entries summary

glAccountKey String The key of the assigned gl account for this journal entries summary

balance BigDecimal The balance of this journal entries summary

type EntryType The type of the snapshot CREDIT or DEBIT

creationDate Date UTC date for the creation time

entryDate Date The date for which the summary was generated (as Organization Time)

Mambu Data Dictionary - 38

Page 40: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

GLJournalEntryInterestAccrualLog Description Entity directly linked to a GLJournalEntry used to keep track of some Journal Entries. Fields

NAME TYPE DESCRIPTION

transactionId String The id of the transaction toward which it points

productType ProductType The type of the product related to the GLJournalEntry

lastExecutionDate Date Date stamp of when the execution (update) over Journal Entries occurred. Stored in Organization Time. May be null.

interestAccruedAccoutingMethod

String The type of the accrual accounting managed by the current instance (as Organization Time). Possible values: None, Daily, End of Month

GLJournalEntry Description A Journal Entry is an accounting’s version of a transaction. It records an event being written to the general ledger. Every entry is a Credit or a Debit and as part of a set of a JournalEntries called a transaction. Within such a transaction, the debits must match the credits to ensure the balance sheets balance. Fields

NAME TYPE DESCRIPTION

entryID Long A unique auto-increment id for the gl journal entry. Required

entryDate Date Date/time stamp when the entry was recorded (Organization Time) Required

creationDate Date Date stamp of when the transaction occured. For instance this may

Mambu Data Dictionary - 39

Page 41: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

be when a loan repayment was actually made by the client and the entryDate would be when this was recorded in Mambu (the exact time) (UTC) Required

transactionId String An id for the transaction. Note that this "id" is not unique for any given journal entry. Multiple journal entries may have the same transaction ID which is used for grouping them together. For instance a repayment results in multiple journal entries but will all have the same transaction ID.

accountKey String The key to the account (loan or savings) associated with this journal action. May be null if it’s just a manual journal entry. Set only for On The Fly Closures

productType Enum String

The product/account type which the accountKey is referring to. Must be one of :

● LOAN ● SAVINGS

amount Decimal Amount which was debited or credited. Required

glaccount_encodedkey_oid

String Foreign key to the GLAccount which was debited or credit as part of this transaction. Required.

userKey String Foreign key to the User who performed the journal entry (or the transaction which lead to the automatic journal entry)

assignedBranchKey String Foreign key of the branch where this journal entry was logged for

notes String Optional notes entered by the user when they logged the entry

reversalEntryKey String Foreign key (to self) to the entry where the reversal was made. If it’s null the entry wasn’t reversed, else it contains the key of the reversal entry.

productKey String The Product associated with this journal action

Group Description Stores details about a group of client. A group itself contains a new and a few fields similar to those of Clients. Then, the relationships to the groups (between clients and groups) are described in GroupMember and GroupRole tables

Mambu Data Dictionary - 40

Page 42: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

id String Unique id for the group. Automatically generated by Mambu when groups are stored. Required

groupName String Name of the group. Required

loanCycle Integer For group which recieve loans, this is the current cycle of the group loan

assignedUserKey String Foreign key to the Users table indicating who the the user assigned to the client is (ie: which credit officer is responsible for them)

assignedBranchKey String Foreign key to the Branch table indicating which branch the client belongs to

assignedCentreKey String Foreign key to the Centre table indicating to which centre the group belongs to.

notes String HTML-formatted notes about the group

migrationEventKey String Foreign key to a specific Migration Event. A group might be imported using the Data Import feature and all the data imported from a file will be a part of a specific migration event (when this event will be reverted, all the data associated with it will be removed from the system)

mobilePhone1 String The mobile phone number of the group.

homePhone String The home phone number of the group.

emailAddress String The email address of the group.

clientRoleKey String The key of the role this group belongs to

GroupMember Description Represents a join table between a group and it’s members. Connects the Clients & Groups tables togethers Fields

NAME TYPE DESCRIPTION

groupKey String Foreign key to the Group which this relationship describes. Required

Mambu Data Dictionary - 41

Page 43: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

clientKey String Foreign key to the Client which this relationship describes. Required

indexInList Integer Order of the client in the group clients list. That is, 0 is displayed before 1, etc.

GroupRole Description Represents a relationship of a client in a group as to what their role is. For instance a client may be a President of a Group. Fields

NAME TYPE DESCRIPTION

groupKey String Foreign key to the Group which this relationship describes. Required

clientKey String Foreign key to the Client which this relationship describes. Required

groupRoleNameKey String Foreign key to the GroupRoleName which this relationship describes Required

GroupRoleName Description Entity holding role names for a group. Example: Secretary, President, etc. Fields

name String The name of group role

Guaranty Description Entity holding 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

Mambu Data Dictionary - 42

Page 44: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

organization using Mambu or not) or based on a value the client holds (an asset/collateral) Fields

NAME TYPE DESCRIPTION

amount Decimal The amount used by the client for the guaranty

assetName Date The name of a value the client guarantees with (populated when the guaranty type is ASSET)

guarantorKey String The key of the client used as the guarantor (populated when the guaranty type is GUARANTOR)

savingsAccountKey String The key of the savings account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null

type String Enum

Guaranty type ● GUARANTOR - Value used when the guaranty is

created using a client (guarantor) ● ASSET - Value used when the guaranty is created

using an asset

guarantorType AccountHolderType

The type of the guarantor (client/group)

interestCommission Decimal The Interest commission that is used for funds.

IdentificationDocument Description Stores identification documents associated with individual clients. A client may have an number of identification documents Fields

NAME TYPE DESCRIPTION

clientKey String Foreign key to Client to which this identification document belongs to. Required

documentType String Type of document: eg: Passport

documentID String The document id such as the Passport # (“ABC123”)

issuingAuthority String Who issued this document (Such as “Government”)

Mambu Data Dictionary - 43

Page 45: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

validUntil Date Expiry date of the document (Organization Time)

indexInList Integer Order of the ID document if the parent holder has multiple documents (for display/formatting purposes). That is, 0 is displayed before 1, etc.

IdentificationDocumentTemplate Description Represents a template for identification documents, which defines default document type, issuing authority and adds a constraint to the identification document ID. Fields

NAME TYPE DESCRIPTION

documentType String Type of document: eg: Passport.

issuingAuthority String Who issued this document (Such as “Government”).

documentIdTemplate

String The document id template constraint, that contains letters (@) and digits (#) symbols used to validate the id and can also contain any other static character.

mandatoryForClients

Boolean Whether this template it’s mandatory for all the clients or not.

allowAttachments

Boolean Whether this template allow files to be attached or not.

Image Description Stores an image which can be used in Mambu in various places such as displaying client profile photos. Images are stored in multiple sizes depending on the display needs. Fields

NAME TYPE DESCRIPTION

title String Name of the image

creationDate Date UTC creation date

Mambu Data Dictionary - 44

Page 46: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

lastModifiedDate Date UTC last modified date

description String Description of the image contents

type String Type of the image. May be one of: ‘png’, ‘jpeg’, ‘gif’, etc. Required

largeImage Blob Image data up to 750px in the longest dimension. Required

mediumImage Blob Image data up to 300px in the longest dimension Required

smallThumbnail Blob Image data exactly 50px by 50px in size Required

tinyThumbnail Blob Image data exactly 32px by 32px in size. Required

IndexRate Description Index value used as a base interest rate in some organizations for the calculation of the loan interest rate as relative to this value. The amount they give it out for is fixed, but they or an external source such as the government, etc, may change the base interest rate and this means that the loans need to be updated so that the interest rate value should be changed as well. Fields

NAME TYPE DESCRIPTION

rate Decimal The value of the index interest rate

startDate Date The date from when this index should be used (Organization Time)

userKey String The key of the user who added this index interest rate

notes String Comments

IndexRateSource Description The set of possible sources for an index interest rate that can come from (ex: one source may be LIBOR) or for a tax rate.

Mambu Data Dictionary - 45

Page 47: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

name Decimal Name of the rate source

notes Date Comments

indexType String The types of the Index rate source currently in use by both Loan and Savings products and accounts. Values

● INTEREST_RATE - Percentage applied on top of the interest

● TAX_RATE - Rate percentage applied for calculating the taxes

● WITHHOLDING_TAX_RATE - Rate percentage applied for calculating the taxes for a Savings Product (the Withholding ones)

InterestAccountSettings Description Class for all the entities grouping settings related to how is the interest accrued and applied Fields

NAME TYPE DESCRIPTION

interestRate BigDecimal The rate based on which the interest is accrued and applied for accounts with fixed interest rate

interestSpread

BigDecimal

The rate based on which the interest is accrued and applied for accounts with index interest rate

InterestBaseSettings Description Base class for all the entities grouping settings related to how is the interest accrued and applied

Mambu Data Dictionary - 46

Page 48: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

interestChargeFrequency

InterestChargeFrequencyMethod

The interval used for determining how often is interest charged (e.g. x [weeks])

interestChargeFrequencyCount

Integer

The count of units to apply over the interval (e.g. [x] weeks)

interestRateSource

InterestRateSource

Interest calculation method: fixed or (interest spread + active organization index interest rate)

interestRateReviewUnit

InterestRateReviewUnit

Interest rate review frequency measurement unit

interestRateReviewCount

Integer Interest rate review frequency unit count

interestRateTerms

InterestRateTerms

The option for how is the interest rate determined when being accrued for an account.Required

interestRateTiers List<InterestRateTier>

The list of interest rate tiers available for the current settings instance.

accrueInterestAfterMaturity

Boolean If the product support this option, specify if the interest should be accrued after the account maturity date.

InterestProductSettings Description Base class for all the entities grouping settings related to how is the interest accrued and applied Fields

NAME TYPE DESCRIPTION

indexSourceKey String Index rate source key for the product

defaultInterestRate

BigDecimal Default interest rate(for fixed interest rate)/spread(for index interest rate) used by the product

minInterestRate

BigDecimal

Minimum interest rate(for fixed interest rate)/spread(for index interest rate) used by the product

Mambu Data Dictionary - 47

Page 49: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

maxInterestRate BigDecimal

Maximum interest rate(for fixed interest rate)/spread(for index interest rate) used by the product

interestRateFloorValue

BigDecimal

Interest spread + index interest rate can't be less than this amount (valid only for index interest rate products)

interestRateCeilingValue

BigDecimal

Interest spread + index interest rate can't be more than this amount (valid only for index interest rate products)

InterestRateTier Description Useful for tiered interest rates, holds the values to define how is the interest computed for one of this steps. Fields

NAME TYPE DESCRIPTION

index Integer The index of the interest rate tier.

endingBalance BigDecimal

The top-limit value for the account balance in order to determine if this tier is used or not

endingDay Integer The top-limit value for the account period since activation in order to determine if this tier is used or not

interestRate

BigDecimal

The rate used for computing the interest for an account which has the balance less than the ending balance

LineOfCredit Description A maximum loan amount that can be approved or disbursed for a client or a group. It is a limit also for the period under which the clients/groups are allowed to make loans or overdrafts. Fields

NAME TYPE DESCRIPTION

amount Decimal The amount that client can be exposed to.

expireDate Date Expire date of this line of credit; after this date no other loans/overdrafts (Organization Time)

notes String Comments

Mambu Data Dictionary - 48

Page 50: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

id

String Auto generated unique ID based on pattern defined in GeneralSettings for the line of credit that can be used for identifying the Line Of Credit or for fetching lines of credit from API calls

startDate Date The line of credit start date(UTC) - it must not be null. Represents the starting date from which the line of credit becomes active

creationDate

Date Creation date UTC

approvedDate Date The date when the line of credit was approved if the LOC wasn't approved yet. Stored as Organization Time. Nullable

lastModifiedDate

Date The date when the line of credit was modified - UTC

clientKey String The key of the client associated with the line of credit

groupKey String The key of the group associated with the line of credit

closedDate Date The date when the line of credit was closed (Organization Time)

state Enum String

The state of the line of credit: ● PENDING_APPROVAL ● APPROVED ● ACTIVE ● CLOSED

subState Enum String

The sub state of the Line of Credit ● WITHDRAWN ● REJECTED

LoanAccount Description Stores a loan account or a loan application (which is just a loan account which is not yet active). A loan account always belongs to a client or group and must be of a certain loan product type. Loan accounts store the detailed breakdown of the amounts due & paid. This is redundant and must match with the amounts for all the repayments for the accounts. Like clients and groups, loan accounts are also assigned to users (credit officers) and branches. Fields

NAME TYPE DESCRIPTION

id String Unique ID of the loan account. Required

Mambu Data Dictionary - 49

Page 51: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

accountHolderKey String Foreign key reference to the Client or Group which is holding on this account. Required

accountHolderType String The type of account holder this group has. Must be one of the following and direct to the key referred to by accountHolderKey

● CLIENT ● GROUP

Required

creationDate Date The date when the account was created. Stored as UTC

approvedDate Date Date when this account was last approved or null if not approved. (Organization Time)

lastModifiedDate Date The date when the account was modified the last time. Stored as UTC.

lastSetToArrearsDate

Date Date when the account was last set to In Arrears standing or null if never set (Organization Time)

closedDate Date Date when the account was closed or null if never closed (Organization Time)

accountState Enum String

The current state of the loan account. Must be one of the following:

● PARTIAL_APPLICATION - account has not yet been approved and is pending more information (in draft form)

● PENDING_APPROVAL - account is ready to be approved by users with permission to do so

● APPROVED - account has been approved and is now ready to be disbursed to the client

● ACTIVE - account has been been disbursed and is now active and in good standing

● ACTIVE_IN_ARREARS - the account has been disbursed and is active but is in arrears (e.g.: has repayments which are late)

● CLOSED - the account is no longer active (see accountSubState field for sub-states)

● CLOSED_WRITTEN_OFF - Account has been closed and any remaining balance due has been written off

● CLOSED_REJECTED - Account has gone through the application process and has been rejected

Required

accountSubState Enum String

This field holds a second state for the account. Must be one of the following:

● PARTIALLY_DISBURSED - Related to ACTIVE state, the account is only partially disbursed

● REFINANCED - Related to CLOSED state, the account was closed and refinanced

Mambu Data Dictionary - 50

Page 52: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● RESCHEDULED - Related to CLOSED state, the account was closed and further rescheduled

● WITHDRAWN - Related to CLOSED state, the account was closed before activation

● LOCKED - Related to ACTIVE or ACTIVE_IN_ARREARS states, the account is locked and may not be used further unless unlocked

lastLockedDate Date Date when the account was set for the last time in the LOCKED sub-state. If null, the account is not locked anymore or it was never locked (Organization Time).

rescheduledAccountKey

String Foreign key to another LoanAccount if this account has been closed with state CLOSED_RESCHEDULED. Or null if not rescheduled

productTypeKey String Foreign Key to the LoanProduct with which this account was created. Required

loanName String Display name of the loan account. Often just the same as the product name. Required

loanAmount Decimal The original loan amout given out to the client. Required

principalDue Decimal How much principal it's due at this moment. Required

interestDue Decimal How much interest it's due for the account at this moment. Required

interestPaid Decimal The total interest paid for this loan account. Required

feesDue Decimal The total fees due for this loan account. Required

feesPaid Decimal The total fees paid for this loan account. Required

penaltyDue Decimal The total penalty due for this loan account. Required

penaltyPaid Decimal The total penalty paid for this loan account. Required

repaymentPeriodCount

Integer How often the loan is to be repaid. for instance “1” with the unit being “Days” means every day. Determines the repayment schedule. Required

repaymentPeriodUnit

Enum String

Unit in which the repaymentPeriodCount is being represented. Must be one of:

● DAYS - repaid on a daily basis ● WEEKS - repaid every x weeks ● MONTHS - repaid every x months ● YEARS - repaid every x years

Required

repaymentInstallments

Integer How many installments are required to pay back the loan. Must be same number as number of repayments when loan is initially

Mambu Data Dictionary - 51

Page 53: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

disbursed. Required

gracePeriodType Enum String

Type of Grace period or null if no grace period. Must be one of: ● NONE ● PAY_INTEREST_ONLY - interest is charged and paid

for the repayments (but capital repayment is 0) ● INTEREST_FORGIVENESS - interest is neither charged

nor paid. a pure grace period

gracePeriod Integer Grace period for teh loan account in the number of installments. Ignored if grace period is none or null.

interestRate Decimal The interest rate for the loan account. See the charge frequence for how it is used. Required

interestChargeFrequence

Enum String

Defines how the interest is charge on this loan account. For instance if the interest rate is 5% and the charge frequency is EVERY_DAY then 5% is charged every day to this account when determining the repayment schedule. Must be one of:

● ANNUALIZED - annual repayment schedule (1/yr) ● EVERY_MONTH - monthly interest (12/yr) ● EVERY_FOUR_WEEKS - interest calculated every 4

weeks (13/yrs) ● EVER_DAY - interest calculate every day (365/yr)

Required

interestCalculationMethod

Enum String

The method used for calculating the interest on this loan account. Must be one of:

● FLAT ● DECLINING_BALANCE ● DECLINING_BALANCE_DISCOUNTED - also known as

the french declining balance method Required

interestSpread Decimal Interest to be added to active organization index interest rate in order to find out actual interest rate

assignedUserKey String Foreign key to the User (Credit Officer) who is assigned to his account

assignedBranchKey String Foreign key to the Branch that this account is assigned to

assignedCentreKey String Foreign key to the Centre table indicating to which centre the loan account belogs to.

loanGroup LoanGroup

The loan group this account belongs to (if part of a hybrid loan account or null otherwise).

notes String HTML notes and details about this loan account/application

Mambu Data Dictionary - 52

Page 54: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

migrationEventKey String Foreign key to a specific Migration Event. A loan account might be imported using the Data Import feature and all the data imported from a file will be a part of a specific migration event (when this event will be reverted, all the data associated with it will be removed from the system)

lastAccountAppraisalDate

Date When/if the account had last been evaluated for interest, principal, fees and penalties calculations (UTC)

principalRepaymentInterval

Integer Once at how many repayments has the principal to be paid

principalBalance Decimal The total principal owned by the client, from now on (principal disbursed - principal paid)

redrawBalance Decimal The total redraw amount owned by the client

interestType String The loan account interest type. Must be one of the following: ● SIMPLE_INTEREST - the interest is applied on the

schedule when it is applied in the account ● CAPITALIZED_INTEREST - the interest is capitalized on

the schedule. It will be converted into principal when applied

prepaymentAcceptance

String Whether the pre-payments are allowed or not for this account Must be one of the following:

● ACCEPT_PREPAYMENTS - The pre-payments can be posted

● NO_PREPAYMENTS - No pre-payments are accepted (no repayments posting before due)

interestBalance Decimal The total interest owned by the client, from now on (total interest accrued for account - interest paid)

accruedInterest Decimal How much interest has accrued to the account but is not yet posted

lastInterestAppliedDate

Date Last date when interest was applied (posted) to the account (Organization Time)

feesBalance Decimal How much fees are still due on the account (relevant for fixed accounts only)

penaltyBalance Decimal How much fees are still due on the account (relevant for fixed accounts only)

scheduleDueDatesMethod

String Enum

The methodology used by this product to compute the due dates of the repayments

● INTERVAL - the repayments will be made on a specified interval (e.g. Every 2 Months)

● FIXED_DAYS_OF_MONTH - The repayments will be made each month on some given dates (for example, each month on 10th and 20th means that each month

Mambu Data Dictionary - 53

Page 55: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

there will be two installments, one made on 10 of that month and one on 20)

fixedDaysOfMonth Blob Specifies the days of the month when the repayment due dates should be. Only available if the Repayment methodology is FIXED_DAYS_OF_MONTH

shortMonthHandlingMethod

String Enum

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

taxRate Decimal The current tax rate of the account

lastTaxRateReviewDate

Date When/if the account had last tax rate checked (as Organization Time)

interestApplicationMethod

String Enum

The method used by the loans defining how the interest gets applied

● ON_DISBURSEMENT - All the interest amount gets applied only once, on disbursement time. There is no way of applying interest manually, through the cron jobs, or when performing repayments

● ON_REPAYMENT - The interest gets applied on each repayment and there are multiple ways of performing this. There is an accrued interest, which gets accumulated every day, this determining how much interest needs to be applied on the repayments. The interest can be applied by the cron jobs in the due date of a repayment. The interest can also beapplied manually: behind the scenes, when performing a repayment or explicitly by using the UI function availablefor this.

paymentMethod String Enum

The method used by the loans defining how the payments get performed

● HORIZONTAL - The payment is done horizontally, on the repayments, following the repayment allocation elements order.

● VERTICAL - The payment is done vertically, into the account, following the repayment allocation elements order.

repaymentScheduleMethod

String Enum

The method used by the loans to compute the repayment schedule

● FIXED - The repayment schedule is fixed and doesn't change all over the loan account's lifecycle. More detailed, the principal and interest due which get computed for each repayment doesn't change never, even if a repayment is pre-paid or paid later. Penalties and fees can be applied only on repayments. Still, reduction operations can be performed over the

Mambu Data Dictionary - 54

Page 56: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

principal, interest, fees and penalties amounts (only with special settings enabled)

● DYNAMIC - The repayment schedule is dynamic and will change over the loan account's lifecycle e.g. when entering repayments, on holidays changes or interest rates changes. For example, if paying an amount grater that what it's due at a given time will cause the interest balance to be recomputed and will be lower that the amount initially computed. Penalties and fees can be applied only straight into the account

penaltyRate

Decimal Specifies the rate (in percent) which is charged as a penalty

loanPenaltyCalculationMethod

Enum String

Specifies on what amount are the penalties calculated (Eg. OVERDUE_BALANCE, OVERDUE_BALANCE_AND_INTEREST)

accruedPenalty

Decimal Specifies the amount of penalty that has been accrued in the account

activationTransactionKey

String The key of the transaction that activated this account

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

periodicPayment Decimal The periodic payment amount for the accounts which have balloon payments

lineOfCreditKey String The key to the line of credit where this account is registered

lockedOperations List<LoanAccountOperationType>

A list with operations which are locked when the account is in LOCKED sub-state:

● APPLY_INTEREST ● APPLY_FEES ● APPLY_PENALTIES

principalPaid BigDecimal

Total principal paid into the account

guarantees ArrayList<Guaranty>

The list of guarantees set for the current loan account.

interestCommission BigDecimal

The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled.

Mambu Data Dictionary - 55

Page 57: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

approvedDate Date The date when the loan account has been approved. Stored as Organization Time.

principalPaymentSettings

PrincipalPaymentSettings

Settings available for the current account for the principal payment split on repayments schedule

interestBalanceCalculationMethod

InterestBalanceCalculationMethod

Option which determines the way the balance for the account's interest is computed.

disbursementDetails DisbursementDetails

Reference to entity which holds the disbursement details, the disbursement details can be defined on the account before the disbursement is actually made.

accrueInterestAfterMaturity

Boolean If the product support this option, specify if the interest should be accrued after the account maturity date

prepaymentRecalculationMethod

String Enum

Prepayment recalculation method copied from the loan product on which this account is based. Holds the possible options for how are the pre-payments affecting the number of installments and the amount allocated per installment for a repayments schedule belonging to a DYNAMIC loan account

● NO_RECALCULATION ● RESCHEDULE_REMAINING_REPAYMENTS ● RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER

_OF_TERMS ● RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPA

L_AMOUNT ● RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_R

EPAYMENT_AMOUNT ● REDUCE_AMOUNT_PER_INSTALLMENT ● REDUCE_NUMBER_OF_INSTALLMENTS

principalPaidInstallmentStatus

String Enum

Defines the installment status after the principal was paid off as part of an over-payment.

● PARTIALLY_PAID ● PAID ● ORIGINAL_TOTAL_EXPECTED_PAID

applyInterestOnPrepaymentMethod

Enum Varchar

Apply interest on prepayment method copied from loan product on which this account is based.

latePaymentsRecalculationMethod

Enum Varchar

Overdue payments recalculation method copied from the loan product on which this account is based

elementsRecalculationMethod

Enum String

allowOffset Bit Specify if the account is allowing offset links

interestFromArrearsA BigDecim The amount of interest from arrears that has been accrued in the

Mambu Data Dictionary - 56

Page 58: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

ccrued al account

interestFromArrearsDue

BigDecimal

how much interest from arrears it's due for the account at this moment

interestFromArrearsPaid

BigDecimal

total interest from arrears paid into the account

interestFromArrearsBalance

BigDecimal

the total interest from arrears owned by the client, from now on (total interest from arrears due)

LoanGroup Description For the Hybrid Group product type, this is the model which captures the relationship between a group any any number of loan accounts. A loan group is simply a logical grouping of loan accounts. In the hybrid model, all loan accounts must have the same properties, repayment schedules, etc except that they may have different amounts.

Fields

NAME TYPE DESCRIPTION

group_encodedkey_oid

Enum String

Foreign key of the Group that this loan group belongs to Required

name String Name of the loan group Required

notes String HTML Notes about the loan group.

LoanProduct Description Stores templates that specify some predefined information and constraints that are then applied to the loan accounts, associated with the loan products. Each loan account has to use one product. Products can be defined for Individuals, Pure Groups or Hybrid Groups, can specify a default amount, interest rate, number of installments and also can constrain these fields to some minimum and maximum values. It also defines the interest details and the repayments frequency.

Mambu Data Dictionary - 57

Page 59: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

id String Unique ID of the loan product (specified by the user). Required

creationDate Date The date when the loan product was created. Stored as UTC

cappingPercentage Decimal Specifies the percentage of principal that cannot be exceeded by the sum of interest, fees and penalty balances

cappingApplyAccruedChargesBeforeLocking

Boolean Specifies if the accrued charges should be applied before locking (capping)

cappingMethod String Specifies how principal will be used when calculating capping charges. Must be one of the following:

● OUTSTANDING_PRINCIPAL_PERCENTAGE - As percentage from the outstanding principal

● ORIGINAL_PRINCIPAL_PERCENTAGE - As percentage from the original principal

cappingConstraintType String Specifies constraint types for capping charges. Must be one of the following:

● SOFT_CAP - Interest, fees, penalty are applied. Account is locked in Locked(Capping) state

● HARD_CAP - Interest, fees, penalty are not applied. Account is locked in Locked(Capping) state.

interestType String Specifies interest type for the loan product. Must be one of the following:

● SIMPLE_INTEREST - the interest is applied on the schedule when it is applied in the account

● CAPITALIZED_INTEREST - the interest is capitalized on the schedule. It will be converted into principal when applied

forAllBranches Boolean Field to indicate if this product is available for all branches

lastModifiedDate Date The date when the loan product was modified last time. Stored as UTC.

productName String The name of the product.

productDescription String A short description of the product (why is it recommended, who can use it etc.)

defaultLoanAmount Decimal A default amount for the product (most of the loan accounts are using this default amount).

minLoanAmount Decimal The minimum loan amount for the loan account, to be able to use this product.

maxLoanAmount Decimal The maximum loan amount for the loan account, to be able to

Mambu Data Dictionary - 58

Page 60: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

use this product.

defaultNumInstallments Integer The default number of the repayments.

minNumInstallments Integer The minimum number of repayments for the loan account, to be able to use this product.

maxNumInstallments Integer The maximum number of repayments for the loan account, to be able to use this product

defaultGracePeriod Integer The default grace period that will be defined for the loan accounts that will use this product (if the grace period type is not NONE).

minGracePeriod Integer The minimum grace period that has to be defined for the loan accounts that will use this product (if the grace period type is not NONE).

maxGracePeriod Integer The maximum grace period that has to be defined for the loan accounts that will use this product (if the grace period type is not NONE).

gracePeriodType String Enum

The type of grace period which is possible for a loan account: ● NONE - no grace period ● PAY_INTEREST_ONLY - A grace period during which

interest is charged and paid (i.e. an interest only loan for a period, still generates a full loan repayment schedule but during the grace period the capital repayment is $0)

● INTEREST_FORGIVENESS - interest is neither charged nor paid: a pure grace period;

defaultRepaymentPeriodCount

Integer The repayments frequency. Example: the repayment is due once at 10 days (repayment period units). Required

repaymentPeriodUnit String Enum

The frequency of loan repayment: ● DAYS ● WEEKS ● MONTHS ● YEARS

defaultPenaltyRate Decimal Rate (in percent) which is set as default for new accounts.

minPenaltyRate Decimal Minimum penalty rate which can be set for accounts.

maxPenaltyRate Decimal Maximum penalty rate which can be set for accounts.

activated Boolean Whether this loan product is activated or not (can be used or not).

interestCalculationMethod

String Enum

The method that is used to compute the interest: ● FLAT - interest is calculated only on the original

balance and remains unchanged through out the loan

Mambu Data Dictionary - 59

Page 61: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● DECLINING_BALANCE - interest is paid on the remaining balance

● DECLINING_BALANCE_DISCOUNTED - interest is paid on the remaining balance and the repayments schedule is balanced to create equal repayments

elementsRecalculationMethod

Enum Sting

Determines how the schedule elements are recalculated: ● FIXED_PRINCIPAL_EXPECTED - the principal

expected is kept the same as before, when a prepayment is posted

● FIXED_TOTAL_EXPECTED - The total expected (principal + interest) is kept the same, when a prepayment is posted, interest is recalculated based on the new principal balance and principal is adjusted to match the PMT

prepaymentAcceptance String Enum

Whether the pre-payments are allowed or not for this product (if there can be posted repayments before the due date of that repayment)

defaultPrincipalRepaymentInterval

Integer Once at how many repayments has the principal to be paid

loanPenaltyCalculationMethod

String Enum

Method used for calculating the loan penalty on this product. ● NONE ● OVERDUE_BALANCE ● OVERDUE_BALANCE_AND_INTEREST

loanPenaltyGracePeriod Integer Number of days to wait before applying the loan penalty amounts

repaymentCurrencyRounding

String Enum

Specifies if the repayment schedule should be rounded to the nearest whole unit

● NO_ROUNDING ● ROUND_TO_NEAREST_WHOLE_UNIT

roundingRepaymentsScheduleMethod

String Enum

Specifies the rounding mechanism used when creating the repayment schedule. Example $100 into 3 repayments

● NO_ROUNDING ● ROUND_REMAINDER_INTO_FIRST_REPAYMENT ● ROUND_REMAINDER_INTO_LAST_REPAYMENT

decliningBalancePrepaymetnCalculation

String Enum

Method to use when a prepayment is made in declining balance ● NO_RECALCULATION ● RESCHEDULE_REMAINING_REPAYMENTS ● REDUCE_NUMBER_OF_INSTALLMENTS

prepaymentRecalculationmethod

String Enum

Holds the possible options for how are the pre-payments affecting the number of installments and the amount allocated per installment for a repayments schedule belonging to a DYNAMIC loan account

● NO_RECALCULATION

Mambu Data Dictionary - 60

Page 62: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● RESCHEDULE_REMAINING_REPAYMENTS ● RECALCULATE_SCHEDULE_KEEP_SAME_NUMBE

R_OF_TERMS ● RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIP

AL_AMOUNT ● RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_

REPAYMENT_AMOUNT ● REDUCE_AMOUNT_PER_INSTALLMENT ● REDUCE_NUMBER_OF_INSTALLMENTS

principalPaidInstallmentStatus

String Enum

Defines the installment status after the principal was paid off as part of an over-payment.

● PARTIALLY_PAID ● PAID ● ORIGINAL_TOTAL_EXPECTED_PAID

daysInYear String Enum

Days in a year methodology used for loan interest calculations for this product

● ACTUAL_365_FIXED ● ACTUAL_364 ● ACTUAL_360 ● E30_360

repaymentAllocationOrder

Blob An array list of the order of which to allocate repayments including principal, interest, fees and penalty

defaultPrincipalRepaymentInterval

Integer Frequency at which repayments should be paid on this loan product

idGeneratorType String Enum

The type of the ids that will be generated: ● RANDOM_PATTERN - uses a given pattern to

generate IDs ● INCREMENTAL_NUMBER - increments a given

number to generate IDs

idPattern String The pattern, containing ‘@’ for letters and ‘#’ for digis, for the RANDOM_PATTERN or the starting number for the INCREMENTAL_NUMBER

accountingMethod String Enum

The current accounting state for this product ● NONE - accounting is deactivated ● CASH - uses cash accounting ● ACCRUAL - uses accrual accounting

indexInterestRateSource

String Foreign key to the index interest source being used by the product, if it is using index interest rates

accountLinkingEnabled Boolean Whether this product can be linked to others

autoCreateLinkedAccounts

Boolean Whether account links should be automatically created

autoLinkAccounts Boolean Whether accounts should be automatically linked if possible on

Mambu Data Dictionary - 61

Page 63: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

creation

linkableSavingsProductKey

String Which savings product this account is linked to

repaymentsScheduleEditOptions

List<Enum>

Which rights do users have when editing the schedule of this product (relevant for fixed products only)

scheduleInterestDaysCountMethod

String Enum

Methods that determine how the number of interest days for a repayment are computed (currenty used only by FIXED methods)

● USING_REPAYMENT_PERIODICITY - The number of days in the repayment are ignored .Instead, the number of days is computed by considering that there's no inconsistency between the first repayment length and the repayment frequency

● USING_ACTUAL_DAYS_COUNT - the actual number of days between the first repayment due date and the disbursement date are considered when computing the interest

scheduleDueDatesMethod

String Enum

Method used by the loan accounts to determine the due dates of the repayments:

● INTERVAL - the repayments will be made on a specified interval (e.g. Every 2 Months)

● FIXED_DAYS_OF_MONTH - the repayments will be made each month on some given dates (for example, each month on 10th and 20th means that each month there will be two installments, one made on 10 of that month and one on 20)

fixedDaysOfMonth Blob Specifies the days of the month when the repayment due dates should be. Only available if the Repayment methodology is FIXED_DAYS_OF_MONTH

shortMonthHandlingMethod

String Enum

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 methodlogy. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH

taxesEnabled Boolean Whether taxes are enabled for this product or not

taxSourceKey String The tax source from where the loan account taxes will be updated

taxCalculationMethod

String Enum

The method used by the loans to compute the taxes for the revenues:

● INCLUSIVE - The tax amount is included in the original computed amount.

● EXCLUSIVE - The tax amount is not included on the computed amount.

repaymentScheduleMet String The method used by the loans to compute the repayment

Mambu Data Dictionary - 62

Page 64: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

hod Enum schedule ● FIXED - The repayment schedule is fixed and doesn't

change all over the loan account's lifecycle. More detailed, the principal and interest due which get computed for each repayment doesn't change never, even if a repayment is pre-paid or paid later. Penalties and fees can be applied only on repayments. Still, reduction operations can be performed over the principal, interest, fees and penalties amounts (only with special settings enabled)

● DYNAMIC - The repayment schedule is dynamic and will change over the loan account's lifecycle e.g. when entering repayments, on holidays changes or interest rates changes. For example, if paying an amount grater that what it's due at a given time will cause the interest balance to be recomputed and will be lower that the amount initially computed. Penalties and fees can be applied only straight into the account

futurePaymentsAcceptance

String Enum

Whether future payments are accepted or not by the accounts created for a given loan product

● ACCEPT_FUTURE_PAYMENTS - Future payments can be posted

NO_FUTURE_PAYMENTS - Whether the future payments are accepted

interestApplicationMethod

String Enum

The method used by the loans defining how the interest gets applied

● ON_DISBURSEMENT - All the interest amount gets applied only once, on disbursement time. There is no way of applying interest manually, through the cron jobs, or when performing repayments

● ON_REPAYMENT - The interest gets applied on each repayment and there are multiple ways of performing this. There is an accrued interest, which gets accumulated every day, this determining how much interest needs to be applied on the repayments. The interest can be applied by the cron jobs in the due date of a repayment. The interest can also beapplied manually: behind the scenes, when performing a repayment or explicitly by using the UI function available for this.

paymentMethod String Enum

The method used by the loans defining how the payments get performed

● HORIZONTAL - The payment is done horizontally, on the repayments, following the repayment allocation elements order.

● VERTICAL - The payment is done vertically, into the account, following the repayment allocation elements order.

Mambu Data Dictionary - 63

Page 65: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

dormancyPeriodDays

Integer Specifies the number of days for an account to be fully paid in order to auto close it

settlementOptions String Enum

Specifies how the nightly job will transfer from the due amounts from the linked savings account to the loan account Available options:

● FULL_DUE_AMOUNTS ● PARTIAL_DUE_AMOUNTS

offsetPercentage Decimal Stores the percentange to be used as offset for the loan account schedule calculation.

accountInitialState String Enum

Specifies the initial states for the accounts that will be created using this product. Available states:

● PENDING_APPROVAL ● PARTIAL_APPLICATION ● etc.

maxNumberOfDisbursementTranches

Integer Maximum number of disbursement tranches a loan account account made after this product can have

latePaymentsRecalculationMethod

String Enum

Method used by loan accounts to have the schedule recalculated when late payments are posted on declining balance equal installments accounts

● INCREASE_OVERDUE_INSTALLMENTS - this option will only recalculate the interest due for the next installment (the one where the extra interest caused by the late payment, will be added)

● INCREASE_LAST_INSTALLMENT - this option will recalculate all the next installments, in order to keep the same total expected on the installments.

amortizationMethod String Enum

Method used by loan accounts for repayments schedule generation. It indicates whether the user wan't to define a periodic payment, and round the remaining principal in the last installment, or it wants to allocate the whole principal on the schedule

● STANDARD_PAYMENTS - This option will allow spreading the whole principal amount over the repayments schedule

● BALLOON_PAYMENTS - This option will allow the user defining a periodic payment amount, which will be used on all the installments, except the last one where the remaining principal amount will be posted

interestRateSettings InterestProductSettings

Interest Product Settings which holds information about interest rate applied to the product

lineOfCreditRequirement

String Enum

Specifies whether accounts created after this product can/should be part of a line of credit

Mambu Data Dictionary - 64

Page 66: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Possible values: ● OPTIONAL (account can be part of a line of credit) ● REQUIRED (account should be part of a line of credit) ● NOT_REQUIRED (account should not be part of a line

of credit)

repaymentElementsRoundingMethod

String Enum

Determines how the repayment currency rounding is handled on each element from the schedule:

● NO_ROUNDING ● ROUND_ALL ● PAYMENT_DUE

applyInterestOnPrepaymentMethod

String Enum

Whether the interest on prepayment is applyied manual or automatic.

arrearsTolerancePeriod Integer The allowed period for loan to be in arrears.

loanFees List<PredefinedFee>

List of all fees that can be applied for accounts of this loan product

loanProductRules List<GLAccountingRule>

The list of accounting rules defined for this product. This list includes individual predefined fee rules too

allowArbitraryFees Boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount

repaymentScheduleEditOptions

List<RepaymentScheduleEditOption>

tThis consist of those schedule options from the repayment that are editable.

taxesOnInterestEnabled Boolean Wheter taxes on interest are enabled for this product or not

taxesOnFeesEnabled Boolean Whether taxes on fees are enabled for this product or not

taxesOnPenaltyEnabled Boolean Whether taxes on penalties are enabled for this product or not.

templates List<DocumentTemplate>

A list with templates associated to this product.

productSecuritySettings ProductSecuritySettings

The security settings (guarantors, collateral, investor funds) available for the current product.

defaultFirstRepaymentDueDateOffset

Integer How many days the first repayment due date should be extended(all other due dates from the schedule are relative to

Mambu Data Dictionary - 65

Page 67: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

first repayment due date - they will also be affected by the offset)

minFirstRepaymentDueDateOffset

Integer Minimum number of 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)

maxFirstRepaymentDueDateOffset

Integer Maximum number of 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)

lockPeriodDays Integer Specifies the number of days for in which the account will be locked if it stays in arrears

interestAccruedAccountingMethod

InterestAccruedAccountingMethod

Method being used for maintaining the interest accrued method for the loan product

loanProductType LoanProductType

Specifies the type of the loan product

forIndividuals Boolean Field to indicate if this product is available for individuals, true if available, false otherwise, never null

forPureGroups Boolean Field to indicate if this product is available for pure groups, true if available, false otherwise, never null

forHybridGroups Boolean Field to indicate if this product is available for hybrid groups, true if available, false otherwise, never null

principalPaymentSettings

PrincipalPaymentSettings

The principal payment for repayments due options for the current product

repaymentReschedulingMethod

RepaymentReschedulingMethod

The repayment rescheduling method used in calculations

interestBalanceCalculationMethod

InterestBalanceCalculationMethod

Option which determines the way the balance for the account's interest is computed.

duplumBalanceConstrai BigDeci Specifies the percentage of principal balance that cannot be

Mambu Data Dictionary - 66

Page 68: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

nt mal exceeded by the sum of interest, fees and penalty balances.

arrearsSettingsKey ProductArrearsSettingsKey

Loan product arrears settings

LoanProductBranch Description Stores the association between a loan product and the branches where it is available. Fields

NAME TYPE DESCRIPTION

product LoanProduct The loan product that is associated with a branch

branchKey String The key of the branch that is associated with a loan product

LoanTranche Description Stores the definition of payment types. Organizations often need to collect payments (and make deposits and withdrawals and disbursements) from different payment forms. For instance different bank sources, various payment gateways or agents or simple cash and cheques ( (Eg. Cash, Cheque, Bank or Receipt). These payment types specify, on a product level, which sources are allowed for that product. Fields

NAME TYPE DESCRIPTION

amount Decimal The amount this tranche has available for disburse Required

name String Name of this transaction channel, will be used in display forms when entering payments

channelFields List<ChannelField> Contains the visible fields for this channel.

Mambu Data Dictionary - 67

Page 69: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

ChannelField is an enum and currently holds the values: BANK_NUMBER, RECEPIT_NUMBER, CHECK_NUMBER, ACCOUNT_NUMBER, ROUTING_NUMBER

transactionChannelAccountingRule

GLAccountingRule Stores the connection between a transaction channel and a GL Account

activated Boolean States whether this transaction channel is active and can be used when entering repayments

createdByUserKey String The key of the user who created the channel

creationDate Date Date of creation

index String Transaction channel position in the list of transaction channels displayed in administration

LoanTransaction Description Keeps track of all transactions which occur with loan accounts such as state changes, repayments, fees, etc. Fields

NAME TYPE DESCRIPTION

transactionID Long Auto-increment unique ID of the loan transaction. Required

parentAccountKey String Foreign key to the loan account this transaction refers to. Required

type String Type the transaction. Must be one of: ● CREATION - the loan account was created ● EDIT - the loan account was modified ● DISBURSEMENT - the loan account was disbursed ● STATE_CHANGE - the loan account state changed (eg for

an Approval) ● REPAYMENT - a repayment was applied to the account ● FEE - a fee was applied to the account ● PENALTY_APPLIED - a penalty was applied to the account ● PAYMENT_RESCHEDULE - a repayment balance was

rescheduled ● REPAYMENT_ADJUSTMENT - a previously entered

repayment amount was corrected ● FEE_ADJUSTMENT - a previously applied fee was

adjusted ● PENALTY_ADJUSTMENT - a penalty amount was adjusted ● BRANCH_CHANGED - marks the moment when the parent

account is assigned to a different branch

Mambu Data Dictionary - 68

Page 70: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● DEFERRED_INTEREST_APPLIED - before interest that's not applied in the account yet gets pre-paid, this transaction will be logged in the same time with the repayment transaction, to justify the pre-paid interest amount in account's balance

● DEFERRED_INTEREST_APPLIED_ADJUSTMENT - reversal for DEFERRED_INTEREST_APPLIED transaction

● DEFERRED_INTEREST_PAID - after interest that was pre-paid gets applied in the account, this transaction will be logged with the interest that was pre-paid and now applied, to justify why that applied interest is not reflected in account's balance.

● DEFERRED_INTEREST_PAID_ADJUSTMENT - reversal for DEFERRED_INTEREST_PAID transaction

● DISBURSMENT_ADJUSTMENT - reversal of disbursement ● FEE_CHARGED - a fee being charged to the loan account; ● FEE_LOCKED - when fees on the account are set to locked ● FEE_REDUCTION_ADJUSTMENT - reversal for the

FEES_DUE_REDUCED transaction ● FEE_UNLOCKED - when the fees on the account are set to

unlocked ● FEES_DUE_REDUCED - a decrease over the fees due ● IMPORT - an account being imported ● INTEREST_APPLIED - transaction logged when the

accrued interest it's applied in the account interest balance ● INTEREST_APPLIED_ADJUSTMENT - reversal for the

INTEREST_APPLIED transaction ● INTEREST_DUE_REDUCED - a decrease over the interest

due ● INTEREST_LOCKED - when the interest on account is set

to locked ● INTEREST_RATE_CHANGED - the interest for an account

has been recomputed ● INTEREST_REDUCTION_ADJUSTMENT - reversal for the

INTEREST_DUE_REDUCED transaction ● INTEREST_UNLOCKED - when the interest on account is

set to unlocked ● PENALTIES_DUE_REDUCED - a decrease over the

penalties due ● PENALTY_LOCKED - when the penalties on the account

are set to locked ● PENALTY_REDUCTION_ADJUSTMENT - reversal for the

PENALTIES_DUE_REDUCED transaction ● PENALTY_UNLOCKED - when the penalties on the

account ● TAX_RATE_CHANGED - the tax for an account has been

changed ● TERMS_CHANGED - marks the moment when some loan

terms have changed for a loan account ● TRANSFER - when principal gets transfered from a loan to

another loan ● TRANSFER_ADJUSTMENT - a transfer being adjusted

(reversed)

Mambu Data Dictionary - 69

Page 71: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● WRITE_OFF - loan account being closed off ● WRITE_OFF_ADJUSTMENT - the loan account closure

being reversed Required

comment String The comment which could be provided for a loan transaction.

creationDate Date Date when the transaction occurred (UTC) Required

amount BigDecimal

Amount of the transaction. Eg this may be the amount of repayment or for certain transactions may be null (for state changes for instance.) The amount is expressed relative to how it affects the balance. If a repayment is adjusted (reduced) the amount will be negative.

balance BigDecimal

The balance of the loan account after the transaction

userKey String Foreign key to the User who performed this transaction. If null, it means this was a system-performed transactions (such as an automatic penalty)

branchKey String Foreign key to the branch where this transaction was performed.

centreKey String Foreign key to the centre where this transaction was performed.

reversalTransactionKey

String Foreign key to another loan transaction (to self - LoanTransaction.encodedKey) where the reversal of the current transaction was made. It’s null if the transaction wasn’t reversed. Example: This transaction represents a penalty applied transaction. If this transaction will be reversed, another transaction will be logged and this transaction will remember the key of that one.

entryDate Date Date of the entry (eg date of repayment or disbursal, etc.) (Organization Time)

principalAmount BigDecimal

How much principal was added/removed in account, within this transaction.

interestAmount BigDecimal

How much interest was added/removed in account, within this transaction.

feesAmount BigDecimal

How much fees was added/removed in account, within this transaction.

penaltyAmount BigDecimal

How much penalty was added/removed in account, within this transaction.

redrawBalance BigDecimal

The total redraw amount owned by the client, from now on

principalBalance BigDeci The total principal owned by the client, from now on (principal

Mambu Data Dictionary - 70

Page 72: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

mal disbursed - principal paid)

advancePosition BigDecimal

Captures the advance (prepaid) amount

arrearsPosition BigDecimal

Captures the arrears position amount for the account in arrears

expectedPrincipalRedraw

BigDecimal

Captures the difference between principal balance and redraw balance after each transaction performed on the loan account

taxOnInterestAmount

BigDecimal

How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction

taxOnFeesAmount BigDecimal

How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction

taxOnPenaltyAmount

BigDecimal

how much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction

deferredInterestAmount

BigDecimal

How much interest pre-paid was added/removed in account, within this transaction (including taxes)

deferredTaxOnInterestAmount

BigDecimal

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

migrationEvent DataMigrationEvent

If this transaction was created during import, track which 'migration event' they came from.

originalCurrencyCode

String the currency in which this transaction was posted. The amounts are stored in the base currency, but the user could have enter it in a foreign currency

originalAmount Decimal

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

tillKey String The till key associated with this transaction

loanTransactionTerms

Varchar

Reference to entity which holds specific information related to loan transactions. (Index)

details_encodedKey Transa Details about transaction.

Mambu Data Dictionary - 71

Page 73: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

_oid ctionDetails

indexInterestRate IndexRate

Index value used for the calculation of the loan interest rate.

taxRate IndexRate

The tax rate that was set or changed in this transaction.

productTypeKey String Store the key of the loan product to which the account owning this transaction belongs.

parentLoanTransactionKey

String The key of the parent loan transaction. Right now, we link DEFERRED_INTEREST_APPLIED with REPAYMENT transactions and DEFERRED_INTEREST_PAID with INTEREST_APPLIED transactions, because this transaction comes as a result of logging the parent transaction. Usually, when the parent is reversed, the child should be reversed as well.

interestRate Decimal

The new interest rate for a loan account

interestFromArrearsAmount

BigDecimal

How much interest from arrears was applied/paid in account, within this transaction (including taxes).

taxOnInterestFromArrearsAmount

BigDecimal

The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction.

LoanTransactionTerms Description Entity class which holds specific informations related to loan transaction terms, e.g. principal payment value (amount or percentage). Fields

NAME TYPE DESCRIPTION

principalPaymentAmount

Decimal The principal payment flat amount logged when change it for a revolving credit loan

principalPaymentPercentage

Decimal The principal payment percentage value logged when change it for a revolving credit loan

Mambu Data Dictionary - 72

Page 74: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

MessageTemplate Description A Template for a notification which can be sent by Mambu. Also used by task templating functionality. Fields

NAME TYPE DESCRIPTION

creationDate

Date The creation date of the message template. Stored as UTC.

name String Name of this message template. Required

template String The content of the template.

recipientType RecipientType The type of the message template recipient.

option SubscriptionOption Subscription option for this notification - whether clients opt in or opt out of it.

event TemplateTrigger Event associated with this notification.Required

triggerDays Integer Number of days before/after the trigger when the notification will be sent.

subject String The subject of the message template.

url String The URL of the message template.

activated boolean If the messate template is activated or not

trigger TemplateTriggerType

The trigger of the message template.

customFilter CustomFilter A reference to the custom filter based on which the notification message is created of not

recipient MessageTemplateRecipient

The entity that is going to receive the message. May be a client, group, credit officer or a linked custom field.

authorization AuthorizationType Specifies authorization type (basic or no authorization).

username String User name to be used in authentication token when web hook notification is posted.

password String Password to be used in authentication token when web hook notification is posted.

Mambu Data Dictionary - 73

Page 75: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

contentType ContentType The header to be used when posting the webhook notification.

requestType Varchar The HTTP method to be used when sending the webhook notification.

MessageTemplateRecipient Description Model that maintains the relation between a message template and the recipient type that is going to receive the message. Fields

NAME TYPE DESCRIPTION

recipientType MessageTemplateRecipientType

Describe the type of the recipient that is going to receive the message. May be a client, group, credit officer etc.

groupRole GroupRoleName Which group role (user defined, as president/secretary/etc.) related to the target (client/group) should receive notifications of events.

customField CustomField Which user link related to the target (client/group) should receive notifications of events.

NonWorkingDay Description Represents a day from the week which is non-working for the organization Fields

dayOfWeek

String The day of the week which is non-working for the organization

creationDate Date The date when the non working day was created (as UTC)

Mambu Data Dictionary - 74

Page 76: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

NotificationMessage Description A log of notification messages being sent of different types including the state of the notification, to whom it was send. Fields

NAME TYPE DESCRIPTION

id

Enum String

The id of the notification message.

creationDate Date When the message was created either for immediate sending of queued (as UTC).

sendDate

Date When the message was actually sent (as UTC).

numRetries Integer Number of retries to send the message

type

TemplateType

What type of notification is. Required.

state

MessageState

The state of the message. Required.

failureCause String A failure code if the message failed to send.

failureReason

NotificationMessageFailureReason

Maintains the reason of the notification message failure.

senderKey String Who sent the message. Or null if done automatically by Mambu.

clientKey String Whom the message was sent to.

groupKey String What group the message was sent to.

destination String The destination (phone number or email address) this notification was sent to.

event TemplateTrigger

The event this message was sent for, if any.

body String The actual contents (body) of the message.

subject String The subject of the message.

Mambu Data Dictionary - 75

Page 77: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

loanAccountKey String If the notification was about a loan account this is set to that account.

repaymentKey String If the notification was about a repayment -then this is set to that account.

savingsAccountKey String If the notification was about a savings account - then this is set to that account.

userKey String What user the message was sent to.

templateKey String Key of the associated MessageTemplate.

ObjectLabel Description Captures the settings of custom object labels. For example “Clients” being referred to as “Members” Fields

NAME TYPE DESCRIPTION

type Enum String

The type of the object label which can be user-customised: ● CLIENT ● GROUP ● BRANCH ● CENTRE ● CREDIT_OFFICER

Required.

singularValue String The singular form of the type which is displayed Required.

pluralValue String The plural form of the type which is displayed Required.

language Enum The language in which the object label is displayed. Required.

hasCustomValue Boolean Indicator for showing that this label has a custom value saved in database or is the default one. Required.

Mambu Data Dictionary - 76

Page 78: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Organization Description Stores details about the organization itself such as it's name, address, time zone, etc. Fields

NAME TYPE DESCRIPTION

name String The name of the organization

creationDate Date The date when the organization was created (as Organization Time).

lastModifiedDate Date The date of the last modify performed over the organization (as Organization Time).

phoneNo String The phone number of the organization

emailAddress String The email address of the organization

timeZoneID String Canonical time zone ID of the organization. See http://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid formats Required.

OrganizationBranding Description An organization can store it’s own logo (stored as 300x50 px) and also a small icon, stored as (16x16 px), that will replace the Mambu logos from the website. Fields

NAME TYPE DESCRIPTION

logoImage Byte The logo of the organization. Stores a logo of 300x50.

iconImage Byte The image that will replace the Mambu logos from the website

Mambu Data Dictionary - 77

Page 79: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

PeriodicPayment Description Entity defining a line from the Payment plan, holding the PMT value used to compute the principal and interest for a specific defined number of installments when the schedule is generated. Fields

NAME TYPE DESCRIPTION

index Integer The index of the payment in list

pmt BigDecimal The PMT used for the installments up to the endingInstallmentPosition

endingInstallmentPosition Integer The installment's position up to which the PMT will be used

PeriodIntervalSettings Description Holds settings for defining period intervals. Fields

NAME TYPE DESCRIPTION

frequency String Frequency settings of the fee amortization. Required.

periodUnit String Amortization unit to determine the interval between amortizations

periodCount Integer Period count used in conjunction with periodUnit to determine the next date of the interval

intervalCount Integer Total number of intervals

Mambu Data Dictionary - 78

Page 80: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

PredefinedFee Description Fee with a defined name and a fixed value Fields

NAME TYPE DESCRIPTION

name String The name of the fee

amount BigDecimal The amount of the fee

percentageAmount

BigDecimal The amount of the fee in percents applied to percent source

amountCalculationMethod

Enum String

The amount from which the fee is calculated using percentage amount:

● FLAT - a fix value independent from account to which it is applied (used both for loans and savings)

● LOAN_AMOUNT_PERCENTAGE - a percentage from the loan amount of the loan account to which it is applied (used only for loans)

● REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE-a percentage from the repayment amount of the loan account to which it is applied(used only for loans)

trigger Enum String

The event that will trigger a fee: ● MANUAL - Not automated, initiated by an user

action ● DISBURSEMENT - Applied at loan disbursement.

Disbursement fees are subtracted from loan amount at disbursement

● CAPITALIZED_DISBURSEMENT - Applied at loan disbursement. Capitalized fees are not subtracted from loan amount at disbursement

● LATE_REPAYMENT - Applied once for a repayment when it's due date expired and that repayment was not paid off

● MONTHLY_FEE - Applied every month per account depending on the apply date method

● PAYMENT_DUE - Applied every time a repayment becomes due

● ARBITRARY - Used for the displaying logic of the transactions with arbitrary fees

feeApplication Enum String

The type of fee application when disbursement is applied: ● REQUIRED - fee will be automatically applied into

Mambu Data Dictionary - 79

Page 81: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

account at disbursement ● OPTIONAL - fee can be applied into account at

disbursement. User decide this. Required.

active boolean If the fee is active or not

creationDate Date The date when the fee was created (as UTC).

applyDateMethod Enum String

When should a fee be applied; to be used with monthly deposit fees:

● MONTHLY_FROM_ACTIVATION ● FIRST_OF_EVERY_MONTH

amortizationProfile Enum String

The type of amortization profile used for fee ● NONE, ● SUM_OF_YEARS_DIGITS, ● STRAIGHT_LINE, ● EFFECTIVE_INTEREST_RATE

feeProductRules List<GLAccountingRule>

The list of accounting rules defined for this fee. If null, product default rules are selected

amortizationIntervalSettingsKey

PeriodIntervalSettings

Interest Rate Settings holds information about interest rate applied to the product

PredefinedFeeAmount Description An amount of predefined fee that was applied or paid on an account: - when a fee is applied, the transaction will have a single PredefinedFeeAmount created, that will point to the applied predefined fee - when a fee is paid/reduced, the transaction might have multiple PredefinedFeeAmount created, one for each fee that was paid/reduced Fields

NAME TYPE DESCRIPTION

amount BigDecimal The amount of the fee that was applied/paid in the transaction for the given predefined fee

taxAmount BigDecimal The amount of the taxes on fee that was applied/paid in the transaction.

fee Predefined The predefined fee for which the amount was applied/paid.

Mambu Data Dictionary - 80

Page 82: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fee

amortizedAmounts

List<AmortizationAmount>

The list of amounts that are already amortized from the initial amounts.

PrincipalPaymentAccountSettings Description Entity holding the required information for the principal payment process of an account Fields

NAME TYPE DESCRIPTION

percentage

BigDecimal Percentage of principal amount used for the repayments principal due

amount BigDecimal Fixed amount for being used for the repayments principal due

PrincipalPaymentBaseSettings Description Base class for all the entities grouping settings related to the principal payment process Fields

NAME TYPE DESCRIPTION

principalPaymentMethod

PrincipalPaymentMethod

The method of principal payment for revolving credit

principalCeilingValue

BigDecimal The maximum principal due amount a repayment made with this settings can have

principalFloorValue

BigDecimal The minimum principal due amount a repayment made with this settings can have

includeInterestInFloorAmount

boolean If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account

Mambu Data Dictionary - 81

Page 83: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

PrincipalPaymentProductSettings Description Entity holding the required information for the principal payment settings stored on a product Fields

NAME TYPE DESCRIPTION

defaultAmount

BigDecimal The default principal payment amount for the accounts made after the product using this settings

minAmount

BigDecimal The minimum principal payment amount for the accounts made after the product using this settings

maxAmount

BigDecimal The maximum principal payment amount for the accounts made after the product using this settings

defaultPercentage

BigDecimal The default principal payment percentage for the accounts made after the product using this settings

minPercentage

BigDecimal The minimum principal payment percentage for the accounts made after the product using this settings

maxPercentage BigDecimal The maximum principal payment percentage for the accounts made after the product using this settings

ProductArrearsSettings Description Table used for holding the arrears settings for a product. Fields

NAME TYPE DESCRIPTION

defaultTolerancePeriod Integer Default tolerance period

minTolerancePeriod Integer Minimum tolerance period

maxTolerancePeriod Integer Maximum tolerance period

Mambu Data Dictionary - 82

Page 84: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

dateCalculationMethod String How arrears dates are calculated

nonWorkingDaysMethod String Whether the non working days are taken in consideration or not when applying penalties/late fees or when setting an account into arrears

ProductSecuritySettings Description Table used for storing the investor funds details available for an entity. Fields

NAME TYPE DESCRIPTION

isGuarantorsEnabled

boolean Whether guarantors (other clients) are accepted in order to reach the required securities percentage from loan amount, as defined in this product

isCollateralEnabled

boolean Whether collateral (assets or other goods) are accepted in order to reach required securities percentage from loan amount, as defined in this product

isInvestorFundsEnabled boolean Whether investor funds are accepted in order to allow external funding for an account

requiredGuaranties

Decimal The securities percentage from loan amount that is needed in order for this account to be approved.

requiredInvestorFunds

Decimal The required investor funds percentage, for opening an account with external funding

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)

organizationInterestCommission

DecimalIntervalConstraints

Constraints for organization interest commission

Mambu Data Dictionary - 83

Page 85: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

funderInterestCommission

DecimalIntervalConstraints

Constraints for funder interest commission

lockFundsAtApproval Boolean Whether investor funds are locked or not at the loan account's approval

ProductRedrawSettings Description Table used for storing the redraw settings available for a product. Fields

NAME TYPE DESCRIPTION

allowRedraw

Boolean Flag which indicates if the product has the redraw functionality enabled

Repayment Description Captures the details about repayments which are both due and have been paid off. All repayments belong to a loan account but are also themselves assigned to creditofficer & branches (for performance look-up reasons). A repayment captures the schedule and state of repayment, while the actual transaction are captured in the LoanTransaction model. Fields

NAME TYPE DESCRIPTION

parentAccountKey String Foreign key to the loan account this repayment belongs to. Required

state Enum String

State of the repayment. Must be one of: ● PENDING - the payment is upcoming and is awaiting to be

paid back on the dueDate ● LATE - the repayment is now late (past it’s due date) ● PAID - the repayment has been paid in full

Mambu Data Dictionary - 84

Page 86: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● PARTIALLY_PAID - the repayment has been partially paid, but not in full

● RESCHEDULED - the repayment balances have been rescheduled into other repayments

● GRACE - this repayment is part of a grace period

dueDate Date Date when this repayment is due (ex: “'2011-09-07 00:00:00') (Organization Time) Required

repaidDate Date Date when this repayment has been fully repaid. Null if not fully repaid yet (Organization Time)

lastPaidDate Date Date when the newest repayment has been entered for this repayment (eg, if multiple partial payments - then the latest of those. Null if not paid yet (Organization Time)

lastPenaltyAppliedDate

Date Set to the newest date whenever a penalty is applied to this repayment. Or null if no penalty applied (Organization Time)

principalDue Decimal The amount of principal due for this repayment. Required.

principalPaid Decimal The amount of principal paid for this repayment. Required.

interestDue Decimal The amount of interest paid for this repayment. Required.

interestPaid Decimal The amount of interest due for this repayment. Required.

feesDue Decimal How much fees are still due on this repayment (for fixed accounts only)

feesPaid Decimal How much fees are have been paid on this repayment (for fixed accounts only)

penaltyDue Decimal How much penalty are still due on this repayment (for fixed accounts only)

penaltyPaid Decimal How much penalty has been paid on this repayment (for fixed accounts only)

assignedUserKey String Foreign key to the User (Credit Officer) who is assigned to his account

assignedBranchKey String Foreign key to the Branch that this account is assigned to

assignedCentreKey String Foreign key to the Centre table indicating to which centre the repayment belogs to.

notes String Notes about this repayment. Unused.

taxInterestDue Decimal The amount of taxes that are due at a specified moment in time

Mambu Data Dictionary - 85

Page 87: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

taxInterestPaid Decimal The amount of taxes that were paid by the user

RepaymentFeeDetails Description A model used to keep fee details (fee due, fee paid and taxes per PredefinedFee type) for a specific Repayment. Fields

NAME TYPE DESCRIPTION

loanTransactionKey String The key of the loan transaction of LoanTransactionType FEE type which contains the predefined fee (in PredefinedFeeAmount) for which the amount was applied/paid for the linked repayment

feeDue BigDecimal

The total fee due for the linked PredefinedFee on this repayment.

feePaid BigDecimal

The total fee paid for the linked PredefinedFee on this repayment.

taxOnFeeDue BigDecimal

The amount of tax on fee due for the linked PredefinedFee on this repayment.

taxOnFeePaid BigDecimal

The amount of tax on fee paid for the linked PredefinedFee on this repayment.

SavingsAccount Description A savings account representing also a daily account, a term-deposit or a checking account is essentially the current account of the client where deposits and withdrawals can be made.

Mambu Data Dictionary - 86

Page 88: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

id String Unique ID of the savings account Required

accountHolderKey String Foreign key reference to the Client or Group which is holding on this account. Required

accountHolderType String The type of account holder this group has. Must be one of the following and direct to the key referred to by accountHolderKey

● CLIENT ● GROUP

Required

name String The name of the loan account. Often same as the savings product name. Required.

creationDate Date The date when the savings account was created.Stored as UTC.

lastModifiedDate Date The date when the savings account was modified last time. Stored as UTC.

productTypeKey

String Foreign key to the SavingsProduct which this account is based on. Required

accountType

Enum String

Type of savings account. This must be one of: ● REGULAR_SAVINGS - a current account ● FIXED_DEPOSIT - a deposit is made for a certain time

period until it reaches maturity ● SAVINGS_PLAN - deposits are made over a time until a

target or time period is reached Required

activationDate Date Date when this saving account was activated (Organization Time)

lastInterestCalculationDate

Date Date when/if this account has the interest last calculated. Null if never (Organization Time)

lastInterestStoredDate

Date Date when the account had last the interest applied (that is, stored from accrued to the balance). Null if never (Organization Time)

lastAccountAppraisalDate

Date Date when the account has last been evaluated for interest calculation/maturity. Null if never (UTC)

closedDate

Date Set to when the account was closed (or null if never) (UTC)

Mambu Data Dictionary - 87

Page 89: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

accountState

Enum String

Current state of the account. Must be on one of: ● PENDING_APPROVAL - created but not active and is

pending approval ● APPROVED - approved but not yet active (ie, no

transaction have yet occurred) ● ACTIVE - account is active and is collecting interest,

deposits and withdrawals may be made ● ACTIVE_IN_ARREARS - Account is active but has

outstanding balance ● MATURED - only for fixed deposits or savings plan: the

account has matured and the money may be withdrawn ● LOCKED - the account is locked and may not be used

further unless unlocked ● DORMANT - Savings account state used for accounts

that had been inactive for a number of days (Defined in savings product)

● CLOSED - the account was full emptied and closed because it was no longer being used

● CLOSED_WRITTEN_OFF - Account has been closed and any remaining balance due has been written off

● WITHDRAWN - if the client withdrawn the original application for the account

● CLOSED_REJECTED - Account has gone through the application process and has been rejected

Required

recommendedDepositAmount

Decimal For account which have a recommended deposit amount

maxWidthdrawlAmount

Decimal The max amount that can be withdrawn at any time (or null if no limit)

targetAmount

Decimal For savings plans, this is the savings target amount

maturityDate

Date For a fixed or compulsory savings plan, this is when the account matures (Organization Time)

balance Decimal The current balance of the account. Required.

accruedInterest

Decimal How much interest has been accrued into the account.

interestEarned

Decimal How much interested has been earned (paid into) the account. Already calculated into the current balance.

feesCollected

Decimal How much in fees has been paid by the client for this account. Already calculated into the current balance.

assignedUserKey String Foreign key to the User (Credit Officer) who is assigned to his account

Mambu Data Dictionary - 88

Page 90: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

assignedBranchKey String Foreign key to the Branch that this account is assigned to

assignedCentreKey String Foreign key to the Centre table indicating to which centre the savings account belogs to.

notes String HTML otes about this savings account.

migrationEvent

DataMigrationEvent

If this account was imported, track which 'migration event' they came from

lockedBalance Decimal Locked balance of the account(it is included in balance). No operation can modify the balance of the account and get it lower than this locked balance

interestPaymentPoint

Enum String

Specifies when the interest should be paid to the account (Eg. FIRST_DAY_OF_MONTH, EVERY_3_MONTHS, etc)

interestPaymentDates

Blob List of all dates on which the interest is payed into savings account

overdraftAmount Decimal How much money has been taken out in overdraft

overdraftInterestAccrued

Decimal The amount of overdraft interest that has been accrued in the account

overdraftExpiryDate Date The date after which the account is considered in arrears (as Organization Time)

overdraftLimit Decimal how much may be taken out as overdraft.

allowOverdraft Boolean Whether this account may be overdrafted

withholdingTaxSourceKey

String The tax source from where the account withholding taxes will be updated. Can be null, in which case the account will not have withholding taxes

lastOverdraftInterestReviewDate

Date When the overdraft interest was last time reviewed (as Organization Time)

lineOfCreditKey

String The key to the line of credit where this account is registered

interestDue BigDecimal

How much interest is due to be *paid* on this account

feesDue BigDecimal

How much fees is due to be *paid* on this account

Mambu Data Dictionary - 89

Page 91: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

customFieldValues List<CustomFieldValue>

Custom fields for the current account

interestSettings InterestAccountSettings

The settings which define how is the interest computed and applied over this account

overdraftInterestSettings

InterestAccountSettings

The settings which define how is the overdraft interest computed and applied over this account

lockedDate Date The date when the account was locked(null if not closed). Saved as Organization Time.

currencyCode String The currency code associated to this product.Required.

SavingsProduct Description Stores templates that specify some predefined information and constraints that are then applied to the savings accounts, associated with a specific savings product. Products can be defined for Individuals and Groups and has a specified interest rate and the interest calculation frequency. Fields

NAME TYPE DESCRIPTION

id String Unique ID of the savings product (specified by the user). Required

name String The name of the product.

creationDate Date The date when the savings product was created. Stored as UTC

description String A short description of the product (why is it recommended, who can use it etc.)

lastModifiedDate Date The date when the savings product was modified last time. Stored as UTC.

productType String Enum

The type of savings product/account. This influences the behavior and possible parameters of the account. The savings type can be:

● CURRENT_ACCOUNT - a current which fully allows withdrawals/deposits and overdrafts

Mambu Data Dictionary - 90

Page 92: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● REGULAR_SAVINGS - a standard savings which fully allows withdrawals/deposits

● FIXED_DEPOSIT - a fixed deposit where one deposit is made for a certain time period until it reaches maturity

● SAVINGS_PLAN - a savings plan where savings deposits are made over a certain time period usually with the goal of reaching some savings target. once the time period has experied the account is 'matured' and withdrawals can be made

interestCalculationBalance String Enum

The balance which is used for the Interest calculation ● MINIMUM - the minium balance during that time

period ● AVERAGE - the average balance during that

time period

activated Boolean Whether this product can be used or not.

interestPaymentPoint String Enum

Specifies when the interest should be paid to the account:

● FIRST_DAY_OF_MONTH - interest is paid on day 1 of each month

● EVERY_WEEK - for every week, interest should be paid out each 14 days, first time is after 14 days since the account went active

● EVERY_OTHER_WEEK - for every 2 weeks, interest should be paid out each 14 days, first time is after 14 days since the account went active

● EVERY_MONTH - interest should be paid out after a month since activation. e.g. May 12th went active, so post on June 12th, July 12th

● EVERY_3_MONTHS - interest should be paid out after 3 months (quarterly) since activation. e.g. May 12th went active, so post on August 12th

interestPaymentDates

Blob List of all dates on which the interest is applied into savings account

collectInterestWhenLocked Boolean Whether locked accounts still collect Interest or not (default is true)

recommendedDepositAmount Decimal Recommended amount for a deposit

maxWidthdrawlAmount Decimal Maximum amount per withdrawal

minOpeningBalance Decimal The constraint for the minimum opening balance for a saving account using this product

Mambu Data Dictionary - 91

Page 93: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

maxOpeningBalance Decimal The constraint for the maximum opening balance for a saving account using this product

defaultOpeningBalance Decimal The constraint for the default opening balance for a saving account using this product

minMaturityPeriod Integer How long a fixed deposit or a savings plan can have a maturity period (the minimum period)

maxMaturityPeriod Integer How long a fixed deposit or a savings plan can have a maturity period (the maximum period)

defaultMaturityPeriod Integer How long a fixed deposit or a savings plan can have a maturity period (the default period)

overdraftInterestRateSettings

InterestProductSettings

Settings for the overdraft interest rate

maxOverdraftLimit BigDecimal

How much money may be taken out for the account to go negative

allowOverdraft Boolean Whether the accounts for this product may be overdrafted

maturityPeriodUnit String Enum

How long a fixed deposit or a savings plan can have a maturity period:

● DAYS ● WEEKS ● MONTHS

description String The savings product description

savingsFees List<PredefinedFee>

List of all fees that can be applied for accounts of this savings product

allowArbitraryFees Boolean Only if true users will be able to apply fees, for current object, of type 'Other'; these fees can have any amount

idGeneratorType

String Enum

The type of the ids that will be generated: ● RANDOM_PATTERN - uses a given pattern to

generate IDs ● INCREMENTAL_NUMBER - increments a given

number to generate IDs

idPattern

String The pattern, containing ‘@’ for letters and ‘#’ for digis, for the RANDOM_PATTERN or the starting number for the INCREMENTAL_NUMBER

accountingMethod String Enum

The current accounting state for this product ● NONE - accounting is deactivated ● CASH - uses cash accounting

Mambu Data Dictionary - 92

Page 94: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● ACCRUAL - uses accrual accounting

savingsProductRules List<GLAccountingRule>

The list of accounting rules defined for this product.

dormancyPeriodDays Integer Specifies the number of days for an account to change the state to Dormant

overdraftDaysInYear

String Enum

Number of days in year for which to accrue interest for overdraft account Days in a year methodology used for interest calculations for this product

● ACTUAL_365_FIXED ● ACTUAL_364 ● ACTUAL_360 ● E30_360

withholdingTaxEnabled

Boolean Whether withholding taxes are enabled for this product or not

lineOfCreditRequirement

String Enum

Specifies whether accounts created after this product can/should be part of a line of credit Possible values:

● OPTIONAL (account can be part of a line of credit)

● REQUIRED (account should be part of a line of credit)

● NOT_REQUIRED (account should not be part of a line of credit)

forGroups Boolean If the product is available for groups

templates List<DocumentTemplate>

A list with templates associated to this product.

forIndividuals Boolean If the product is available for individual entities

interestPaidIntoAccount boolean Whether the accounts for this product have interest paid into account

interestRateSettings InterestProductSettings

Interest Rate Settings holds information about interest rate applied to the product.

interestAccruedAccountingMethod

InterestAccruedAccount

Method being used for maintaining the interest accrued method for the loan product

Mambu Data Dictionary - 93

Page 95: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

ingMethod

interestDaysInYear DaysInYearMethod

How many days in a year should be used for interest calculations

allowOffset Bit Specify if the product allow to create accounts which can be used as offset for loans

forAllBranches Boolean Field to indicate if this product is available for all branches

maximumBalance BigDecimal

SavingsProductBranch Description Stores the association between a savings product and the branches where it is available. Fields

NAME TYPE DESCRIPTION

product LoanProduct The savings product that is associated with a branch

branchKey String The key of the branch that is associated with a savings product

SavingsTransaction Description Keeps track of all transactions which occur with savings accounts such as state changes, repayments, fees, etc. Fields

NAME TYPE DESCRIPTION

transactionID Long Auto-increment unique ID of the savings transaction. Required

parentAccountKey String Foreign key to the savings account this transaction refers to. Required

Mambu Data Dictionary - 94

Page 96: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

type String Type the transaction. Must be one of: ● CREATION - the loan account was created ● EDIT - the loan account was modified ● STATE_CHANGE - the loan account state changed (eg

for an Approval) ● DEPOSIT - a deposit into the account ● WITHDRAWAL - a withdrawal from the account ● ADJUSTMENT - an adjustment on a deposit ● INTEREST_APPLIED - accrued interest has been

applied to the acount ● FEE_APPLIED - a fee was applied to the account ● FEE_ADJUSTED - a previously applied fee was adjusted ● WRITE_OFF - an account written off ● WITHDRAWAL_ADJUSTMENT - an adjustment to a

withdrawal ● ADJUSTMENT - reversal of a deposit ● BEGIN_MATURITY_PERIOD - the start of a maturity

period for an account (DEPRECATED) ● BRANCH_CHANGED - marks the moment when the

parent account is assigned to a different branch ● FEE_REDUCTION_ADJUSTMENT - reversal for

FEES_DUE_REDUCED ● FEES_DUE_REDUCED - a fee being decreased ● IMPORT - an account being imported ● INTEREST_APPLIED_ADJUSTMENT - reversal for the

INTEREST_APPLIED transaction ● LOAN_FUNDED - investor funds amount being

transfered to the linked loan account ● LOAN_FUNDED_ADJUSTMENT - reversal for the

LOAN_ACCOUNT_FUNDED transaction ● LOAN_REPAID - investor funds amount being collected

from the linked loan account ● LOAN_REPAID_ADJUSTMENT - reversal for the

LOAN_REPAID transaction ● OVERDRAFT_INTEREST_RATE_CHANGED -the

overdraft interest rate has changed ● TRANSFER - a transfer being made ● TRANSFER_ADJUSTMENT - a transfer being adjusted

(reversed) ● UNDO_BEGIN_MATURITY_PERIOD - reversing the

start of the maturity period for the account (DEPRECATED)

● WITHDRAWAL - a withdrawal being made ● WITHDRAWAL_ADJUSTMENT - a withdrawal being

adjusted ● WITHHOLDING_TAX - tax being applied over an interest

amount (the interest which the clients earn, not the one from the overdrafts)

● WITHHOLDING_TAX_ADJUSTMENT - reversal for the WITHHOLDING_TAX transaction

● WRITE_OFF_ADJUSTMENT - the overdraft write off being adjusted

● Required

Mambu Data Dictionary - 95

Page 97: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

creationDate Date Date when the transaction occurred (UTC) Required

amount Decimal Amount of the transaction. Eg this may be the amount of repayment or for certain transactions may be null (for state changes for instance.) The amount is expressed relative to how it affects the balance. If a repayment is adjusted (reduced) the amount will be negative.

balance Decimal The balance of the loan account after the transaction

userKey String Foreign key to the User who performed this transaction. If null, it means this was a system-performed transactions (such as an automatic penalty)

branchKey String Foreign key to the branch where this transaction was performed.

centreKey String Foreign key to the centre where this transaction was performed.

reversalTransactionKey

Foreign key to another savings transaction (to self - SavingsTransaction.encodedKey) where the reversal of the current transaction was made. It’s null if the transaction wasn’t reversed. Example: This transaction represents a fee applied transaction. If this transaction will be reversed, another transaction will be logged and this transaction will remember the key of the one where the reversal was made.

details_encodedKey_oid

TransactionDetails

Details about the current savings transaction

entryDate Date Date of the entry (e.g. date of withdrawn, etc.) (Organization Time)

linkedLoanTransactionKey

String Foreign key to the LoanTransaction which is associated with this transaction (for example a transfer which causes a repayment)

linkedSavingsTransactionKey

String Foreign key to the SavingsTransaction which is associated with this transaction (for example a transfer which causes a deposit)

overdraftFeesAmount

Decimal Fees amount involved in a transaction that affects an overdraft

interestAmount Decimal Amount of interest involved in a transaction that affects an account with positive balance

feesAmount Decimal Amount of fees involved in a transaction that affects an account with positive balance

overdraftAmount Decimal Balance change amount involved in a transaction that affects an overdraft

fundsAmount Decimal Balance change amount involved in a transaction that affects an

Mambu Data Dictionary - 96

Page 98: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

account with positive balance

overdraftInterestAmount

Decimal Interest amount involved in a transaction that affects an overdraft

migrationEvent DataMigrationEvent

If this transaction was created during import, track which 'migration event' they came from.

taxRate IndexRate

The tax rate that was set or changed in this transaction.

overdraftIndexRate

IndexRate

The index overdraft interest rate that was set or changed in this transaction.

overdraftLimit BigDecimal

The overdraft limit that was set or changed in this transaction

interestRate Decimal The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches.

overdraftInterestRate Decimal The overdraft interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches.

tillKey String The till key associated with this transaction

comment String Comment for the savings transaction.

savingsPredefinedFeeAmounts

List<PredefinedFeeAmount>

All the amounts that have been applied or paid within this transaction and involved predefined fees: - when a fee is applied, the transaction will have a single PredefinedFeeAmount created, that will point to the applied predefined fee - when a fee is paid/reduced, the transaction might have multiple PredefinedFeeAmouns created, one for each fee that was paid/reduced

productTypeKey String Link to the product to which the account owning this transaction belongs to.

currencyCode String Currency code for current transaction.

Task Description Represents a human task that can be assigned by a user to another one. It can be related to a client or a group and also a due date can be specified for it.

Mambu Data Dictionary - 97

Page 99: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

id String The id of the task

creationDate Date UTC date of creation of the task

lastModifiedDate Date UTC date of last modification

dueDate Date Organization time states the due date of the task

completionDate Date Organization time states the date the task was completed

title String Title, summary of the task

description String Description, notes of the task

assignedUser User User assigned to the task

createdByUserKey String The key of the user who createrd the task

status String Enum TaskStatus

Task status with valid values: ● OPEN ● COMPLETED

taskLinkKey String Specifies who is the link to this task. If null, means nobody is linked to this task

taskLinkType String Enum OwnerType

Type of the link. Valid values: ● CLIENT ● GROUP ● LOAN_PRODUCT ● SAVINGS_PRODUCT ● CENTRE ● BRANCH ● USER ● LOAN_ACCOUNT ● DEPOSIT_ACCOUNT

taskLinkName String

Till Description A till represents a concept introduced by the Tellering feature. It can be a physical cash box a

Mambu Data Dictionary - 98

Page 100: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

teller uses, or just a concept such as a when a manager hands cash to a credit officer who leaves for the day (he is then a 'virtual' till) The typical process is that at the beginning of the work day a manager takes out cash from the vault at a branch and distributes it to various tills. He needs to keep track how much is in each till. The tills are then assigned to staff (tellers) who perform transactions during the day with the cash. At the end of the day, they close the till by counting up all the cash, checking it against the transactions that occurred and ensuring there's no discrepancy. The teller may be held responsible for any shortage of cash. The manager then may choose to transfer the cash back to the vault (or it might stay in the till overnight). Fields

NAME TYPE DESCRIPTION

id String The id of the till

userKey String The key of the user who created this till

state String Enum

Till state ● OPEN - Value used after a till was created. When in

this state a till can have money added or removed from the opening amount and it's balance can be affected by transactions logged by the assigned teller

● CLOSED - Value used to mark the till as not-required. In this state, the till cannot have its opening amount or balance changed anymore.

openedDate Date The date when the till was opened (as Organization Time).

closedDate Date The date when the till was closed (as Organization Time).

tellerKey String The key of the teller for which this till is assigned to

vaultAmount Decimal The amount placed in the till. It can be changed by adding or removing money from it, but the user doing this requires special permissions

closingBalance Decimal The amount entered by the user as the available amount in till at its closing time

balanceDifference Decimal The difference between the till's closing amount and the expected cash in till amount

orginalTillKey Used for when reopening a till. When the till is reopened this field is populated with the encoded key of the closed till

Mambu Data Dictionary - 99

Page 101: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

minBalance This field specifies the minimum till balance. Tellers shouldn't be able to post a withdrawal if they don't have enough cash balance => minimum balance should be zero

maxBalance The fields specifies the maximum balance. When tellers reach the maximum allowed balance, they should transfer to vault.

balanceConstraintsType String Enum

Specifies whether the min max balance validation done when posting transaction should restrict its execution (hard), or just display a warning message (soft), or no limitation used. Valid values:

● NONE ● HARD ● SOFT

balance BigDecimal

The amount of money existing in the till (expected cash in till)

TransactionChannel Description 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. Fields

NAME TYPE DESCRIPTION

id String 32 character String hold the ID of the transaction channel

name String

Mambu Data Dictionary - 100

Page 102: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

index Integer The index which gives the order of tranches

createdByUserKey String

creationDate String Stored as UTC

activated Bit

loanConstraintsUsage

String Enum States the limited/unlimited usage of the transaction channel for loan transactions. Enumeration with the types of constraints available for Transaction Channels.

● UNCONSTRAINED_USAGE ● LIMITED_USAGE

loanConstraints Varchar Maintains the custom constraints, if limited usage selected, the transaction channel on loan transactions

savingsConstraintsUsage

String Enum States the limited/unlimited usage of the transaction channel for savings transactions. Enumeration with the types of constraints available for Transaction Channels.

● UNCONSTRAINED_USAGE ● LIMITED_USAGE

savingsConstraints Varchar Maintains the custom constraints, if limited usage selected, the transaction channel on savings transactions.

expectedDisbursementDate

Date The date when this tranche is supposed to be disbursed (as Organization Time)

transactionChannelAccountingRule

String Stores the connection between a GLAccountingRule and TransactionChannel.

usageRights UsageRights The usage rights that describes the transaction channel.

TransactionDetails Description Stores the common details about any financial transaction such as what type of transaction it was, receipt numbers, etc. Referred to by LoanTransaction and SavingsTransaction models. Field are optional and are used for tracking and auditing purposes only.

Mambu Data Dictionary - 101

Page 103: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

Fields

NAME TYPE DESCRIPTION

transactionChannelKey

TransactionChannel

Associated payment type for the transaction

internalTransfer Boolean Whether the transaction was transferred between loans and savings accounts

targetSavingsAccountKey

String In case of a transaction to a savings account this represent the savings akkount key to which the transaction was made

User Description A user is the entity that can access the Mambu application. It can be a person: the manager of the organization, a credit officer or another stuff memeber, or it can be another application (that access the API). Each usert may have some predefined permissions, to be able to access specific sections of the application, or it can be an administrator. It can have an assigned branch (for the credit officers is mandatory to be a part of a branch). Fields

NAME TYPE DESCRIPTION

id Long The id of the user (it’s auto-incremented after each created user).

username String The username (Unique)

password String The encrypted password.

email String The email of the user.

title String The title of the user

firstName String User’s first name

lastName String User’s last name

homePhone String The home phone number of the user

mobilePhone1 String The mobile phone number of the user

language String Enum

The language used for the interface. It can be: ● ENGLISH - default ● PORTUGUESE ● SPANISH

Mambu Data Dictionary - 102

Page 104: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● RUSSIAN ● FRENCH

isAdministrator Boolean Whether this user is an administrator

isCreditOfficer Boolean Whether this user is a credit officer

accessRights String Enum

The access rights an user can have: ● MAMBU ● MOBILE ● APIS

lastLoggedInDate Date The date when the user last logged in the application (UTC)

failedLoginsCount

Integer Stores the number of consecutive failed logins

permissions Permissions

The permissions of this user.

assignedBranchKey String Foreign key to the Branch table indicating which branch the user belongs to

notes String A short description of the user.

transactionLimits HashMap For more serious organization, they often want to be able to restrict different users to different transactional limits, such as some users can't approve accounts over a certain amount or make large withdrawals. An organization can have transactions limits for each user, for approve and disburse loans, entering repayments, making deposits and withdrawns or for applying fees.

twoFactorAuthentication Boolean For any users, a user may set, whether they require to be authenticated with both their phone number as well as an SMS code which they receive

userState String Enum

Whether an user can have access to his Mambu account. Possible states are:

● ACTIVE ● INACTIVE

isSupport Boolean Flag indicating the user is in charge with the Mambu technical support

isTeller Boolean Flag indicating if the user is a teller

failedLoginsDates List<Date >

Stores the dates of failed logins. Maintained in UTC.

Mambu Data Dictionary - 103

Page 105: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

UserManagedBranch Description Entity class for holding information about user’s managed branch. It keeps a relation of 1 to 1 => 1 user 1 branch. The user can manage multiple branches so it will have a collection of UserManagedBranch entities. Fields

branchKey

String The key of the managed branch

indexInList Integer Index of the branch in the list of all branches with the same type, -1 means that this branch was never ordered by the application

MANAGEDBRANCHES_ENCODEDKEY_OWN

String The key of the user

Other Tables Here are the following other tables which are used in Mambu. These tables are not described in details as they should be set up through Mambu and not used during import processes or API calls. They may however come into play for certain business intelligence and data reporting purposes. GroupRoleName - User-defined named of a group role relationship. For instance, “President”. Refereed to by the GroupRole table. CustomReport - stores a custom report created by the user including all the indicators which are in the report, summary, etc. These reports can be created for branches, centres, officers, loan products or savings products. CustomMenuItemPosition - Model used for maintaining the index of a custom menu item in a parent list. Holiday - stores details about user-defined holidays which affect things like repayment

Mambu Data Dictionary - 104

Page 106: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

scheduling. User - Captures details about a user of Mambu such as a credit officer, admin, etc. Often refereed to by other tables as userKey or assignedUserKey Permissions - Stores permissions associated with a user of Mambu. OrganizationSnapshot - holds a snapshot of all organization indicators at a given point in time. Used in the historical analysis graphs MambuServices - Services which are enabled/disabled for different editions/tiers of Mambu and different subscription plans and clients NotificationRequest - Used for request for notifications. Requests may be tied to clients or group and are associated with a specific notification template. NotificationMessageQueue - This entity holds a notification message that is queued in the fact that it is ready to be sent by the jobs responsible for actual message sending (EMail, SMS, Web Hook services). The corresponding table is scanned periodically by jobs that will send out the notifications. LoanRiskLevel - Capture the a loan account risk level band. A band is considered a range of days in arrears for an account (eg: from 5 to 10 days) and a risk level should also have a defined provisioning percentage. This perecentage represents the amount that should be provisioned at this loan risk level ImportedReport - Represents a human task that can be assigned by a user to another one. It can be related to a client or a group and also a due date can be specified for it. UserPreferences - The preferences for a specific user, regarding the list column configurations (for clients, groups, loans, savings and transactions lists) and other configurable components FieldChangeItem - A field change log which is associated with an activity. It stores the name of the changed field, the original and the new value of the field. Dashboard - Stores the user dashboard setting preferences SecuritySettings - Stores the custom organization security settings (session timeout, password complexity, IP address restrictions, maximum number of consecutive failed logins allowed, failed login wait time, password reset link expiration time, whether to re-authenticate on critical actions, the password expiration days etc.) MambuApp - Represents an App in Mambu - an external application added and provided by a 3rd party developer PortalPreferences - A user’s individual portal setting preferences including language, password

Mambu Data Dictionary - 105

Page 107: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

(encrypted) and whether the portal is actually enabled CustomViewPosition - Maintains the index of a custom view UserManagedBranch - Keeps the list of branches that a user can manage. The user branch assignment is kept separately. FieldColumn - Entity for storing a DataField column into the database. ProductSecuritySettings - The security settings (guarantors, collateral, investor funds) available for the an entity. UsageRights - Entity used to maintain the relation between a usage-rights enabled entity and the roles that can edit it. ScheduledProcess - Model for a scheduled process (one time run, at midnight) like the job of updating all account settings from a SavingsProduct. This kind of jobs are currently initiated by changes in the products that need to be mirrored also in the accounts.

Appendix 1 Activity types The type of the activity, contains an object (e.g. client) and an action (e.g. created). Client activities:

● CLIENT_CREATED ● CLIENT_COMMENT_ADDED ● CLIENT_EDITED ● CLIENT_DELETED ● GUARANTOR_SET ● GUARANTOR_REMOVED ● SMS_MESSAGE_SENT ● CLIENT_BRANCH_ASSIGNMENT ● CLIENT_BRANCH_UNASSIGNMENT ● CLIENT_CENTRE_ASSIGNMENT ● CLIENT_CENTRE_UNASSIGNMENT ● CLIENT_CREDIT_OFFICER_ASSIGNMENT ● CLIENT_CREDIT_OFFICER_UNASSIGNMENT ● CLIENT_SET_TO_PENDING ● CLIENT_SET_TO_ACTIVE ● CLIENT_SET_TO_INACTIVE ● CLIENT_SET_TO_BLACKLISTED

Mambu Data Dictionary - 106

Page 108: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● CLIENT_SET_TO_EXITED ● CLIENT_LINE_OF_CREDIT_CREATED ● CLIENT_LINE_OF_CREDIT_EDITED ● CLIENT_LINE_OF_CREDIT_REVOKED

Group activities:

● GROUP_CREATED ● GROUP_COMMENT_ADDED ● GROUP_EDITED ● GROUP_DELETED ● CLIENT_JOINED_GROUP ● CLIENT_LEFT_GROUP ● GROUP_BRANCH_ASSIGNMENT ● GROUP_BRANCH_UNASSIGNMENT ● GROUP_CENTRE_ASSIGNMENT ● GROUP_CENTRE_UNASSIGNMENT ● GROUP_CREDIT_OFFICER_ASSIGNMENT ● GROUP_CREDIT_OFFICER_UNASSIGNMENT ● GROUP_LINE_OF_CREDIT_CREATED ● GROUP_LINE_OF_CREDIT_EDITED ● GROUP_LINE_OF_CREDIT_REVOKED

Branch activities:

● BRANCH_CREATED ● BRANCH_COMMENT_ADDED ● BRANCH_EDITED

Centre activities:

● CENTRE_CREATED ● CENTRE_COMMENT_ADDED ● CENTRE_EDITED ● CENTRE_DELETED

User activities:

● USER_CREATED ● USER_EDITED ● USER_DELETED ● USER_COMMENT_ADDED ● USER_LOGGED_IN ● DATA_IMPORTED ● DATA_IMPORT_APPROVED ● DATA_IMPORT_REVERTED ● USER_BRANCH_ASSIGNMENT ● USER_BRANCH_UNASSIGNMENT

Loan product activities:

● LOAN_PRODUCT_CREATED

Mambu Data Dictionary - 107

Page 109: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● LOAN_PRODUCT_COMMENT_ADDED ● LOAN_PRODUCT_EDITED ● LOAN_PRODUCT_DEACTIVATED ● LOAN_PRODUCT_ACTIVATED ● LOAN_PRODUCT_DELETED

Loan account activities:

● LOAN_ACCOUNT_CREATED ● LOAN_ACCOUNT_EDITED ● LOAN_ACCOUNT_SET_TO_PARTIAL ● LOAN_ACCOUNT_SET_TO_PENDING_APPROVAL ● LOAN_ACCOUNT_SET_TO_APPROVED ● LOAN_ACCOUNT_SET_TO_APPROVED ● LOAN_ACCOUNT_SET_TO_CLOSED_CANCELLED ● LOAN_ACCOUNT_SET_TO_CLOSED_REJECTED ● LOAN_ACCOUNT_SET_TO_CLOSED_RESCHEDULED ● LOAN_ACCOUNT_SET_TO_CLOSED_WRITTEN_OFF ● LOAN_ACCOUNT_SET_TO_CLOSED_OBLIGATIONS_MET ● LOAN_ACCOUNT_SET_TO_ACTIVE ● LOAN_ACCOUNT_DISBURSED ● LOAN_ACCOUNT_SET_TO_IN_ARREARS ● LOAN_ACCOUNT_DELETED ● LOAN_GROUP_DELETED ● TRANCHE_DISBURSED ● TRANCHE_REVERSED ●

Savings product activities:

● SAVINGS_PRODUCT_CREATED ● SAVINGS_PRODUCT_COMMENT_ADDED ● SAVINGS_PRODUCT_EDITED ● SAVINGS_PRODUCT_ACTIVATED ● SAVINGS_PRODUCT_DEACTIVATED ● SAVINGS_PRODUCT_DELETED

Savings account activities:

● SAVING_ACCOUNT_CREATED ● SAVING_ACCOUNT_EDITED ● SAVINGS_ACCOUNT_APPROVED ● SAVINGS_ACCOUNT_ACTIVATED ● SAVINGS_ACCOUNT_CLOSED_WITHDRAWN ● SAVINGS_ACCOUNT_CLOSED_REJECTED ● SAVINGS_ACCOUNT_CLOSED ● SAVINGS_ACCOUNT_MATURED ● SAVINGS_ACCOUNT_SET_TO_PENDING ● SAVINGS_ACCOUNT_MATURITY_SET ● SAVINGS_ACCOUNT_MATURITY_UNSET

Mambu Data Dictionary - 108

Page 110: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

● SAVINGS_ACCOUNT_SET_TO_ARREARS ● SAVINGS_ACCOUNT_WRITEN_OFF ● SAVINGS_ACCOUNT_SET_TO_LOCKED ● SAVINGS_ACCOUNT_DELETED ● SAVINGS_ACCOUNT_SET_TO_DORMANT ● SAVINGS_ACCOUNT_UNDO_DORMANT

Data migration activities:

● DATA_IMPORTED ● DATA_IMPORT_APPROVED ● DATA_IMPORT_REVERTED

SMS activites:

● SMS_MESSAGE_SENT Task activities:

● TASK_CREATED ● TASK_EDITED ● TASK_DELETED ● TASK_COMPLETED ● TASK_UNCOMPLETED

Document activities:

● DOCUMENT_CREATED ● DOCUMENT_EDITED ● DOCUMENT_DELETED

GL Accounts:

● GLACCOUNT_CREATED ● GLACCOUNT_EDITED ● GLACCOUNT_DELETED

GL Accounts Closure:

● GLACCOUNTSCLOSURE_EXECUTED ● GLACCOUNTSCLOSURE_UNDONE

General

● HOLIDAY_SETTINGS_CHANGED

Indicators types NUM_CLIENTS NUM_ACTIVE_CLIENTS

Mambu Data Dictionary - 109

Page 111: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

NUM_INACTIVE_CLIENTS NUM_OPEN_CLIENTS NUM_CLOSED_CLIENTS NUM_EXITED_CLIENTS NUM_PENDING_APPROVAL_CLIENTS NUM_GROUPS_BORROWING AVERAGE_GROUP_SIZE NUM_GROUP_BORROWERS NUM_INDIVIDUAL_BORROWERS PERCENTAGE_OF_FEMALE_BORROWERS NUM_GROUPS_SAVING NUM_INDIVIDUAL_SAVERS NUM_GROUP_SAVERS NUM_GROUPS NUM_HYBRID_GROUPS_BORROWING NUM_HYBRID_GROUP_BORROWERS NUM_ACTIVE_SAVINGS_ACCOUNTS TOTAL_DEPOSITS INTEREST_PAYABLE NUM_LOANS_OUTSTANDING NUM_LOANS_PENDING_DISBURSAL NUM_LOANS_IN_ARREARS NUM_LOANS_AWAITING_APPROVAL PORTFOLIO_PENDING_DISBURSAL GROSS_LOAN_PORTFOLIO AVERAGE_LOAN_BALANCE TOTAL_DISBURSED_ACTIVE_LOANS PROJECTED_LOAN_INTEREST_EARNINGS TOTAL_LOANS_DISBURSED PORTFOLIO_PERCENT_AT_RISK PORTFOLIO_VALUE_AT_RISK PAR_7_DAYS PAR_15_DAYS PAR_30_DAYS PAR_90_DAYS PAR_7_30_DAYS PAR_30_90_DAYS PAR_90_180_DAYS PAR_180_360_DAYS VAR_7_DAYS VAR_15_DAYS VAR_30_DAYS VAR_90_DAYS

Mambu Data Dictionary - 110

Page 112: Mambu Data Dictionary - Amazon S3 · Mambu Data Dictionary Ma mb u V e r s i o n : V 5 . 0 - 4 e f2 4 fa De s c r i p ti o n This document describe the database structure and fields

INTEREST_IN_SUSPENSE NUM_BRANCHES NUM_CREDIT_OFFICERS NUM_LOANS_PER_BRANCH NUM_LOANS_PER_CREDIT_OFFICER NUM_LOAN_ACCOUNTS NUM_USERS

Mambu Data Dictionary - 111