Upload
others
View
32
Download
0
Embed Size (px)
Citation preview
Mambu Data Dictionary
Mambu Version: V9.0
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 denormalized 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.
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
Table of Contents
Mambu Data Dictionary
Table of Contents Diagrams AccountLink Activity Address AmortizationAmount AuthorizationHold BackgroundProcess BackgroundProcessProgress BackgroundTask BatchMigration Branch CardAcceptor CardReference CardTransactionSource Centre Client ClientRole ColumnConfiguration Comment Currency CurrencyMapping CustomConfigurationInfo CustomField CustomFieldLink CustomFieldSelection CustomFieldSet CustomFieldValue CustomFilter CustomFilterConstraint CustomMenuItem CustomPaymentAmount
Mambu Data Dictionary 2
CustomPredefinedFee CustomPreference CustomRepaymentSettings CustomView DecimalIntervalConstraints DisbursementDetails Document ExchangeRate FailedAttempt FederatedAuthenticationSettings GeneralSettings GLAccount GLAccountingRule GLAccountsClosure GLJournalEntriesSummary GLJournalEntryInterestAccrualLog GLJournalEntry Group GroupMember GroupRole GroupRoleName Guaranty IdentificationDocument IdentificationDocumentTemplate Image IndexRate IndexRateSource InterBranchTransferRule InterestAccountSettings InterestBaseSettings InterestProductSettings InterestRateTier LineOfCredit LoanAccount LoanGroup LoanProduct LoanProductBranch LoanTranche LoanTransaction
Mambu Data Dictionary 3
LoanTransactionTerms MccExpiration MessageTemplate MessageTemplateRecipient NonWorkingDay NotificationMessage ObjectLabel Organization OrganizationBranding PeriodicPayment PeriodIntervalSettings PredefinedFee PredefinedFeeAmount PrincipalPaymentAccountSettings PrincipalPaymentBaseSettings PrincipalPaymentProductSettings ProductArrearsSettings ProductSecuritySettings ProductRedrawSettings Repayment RepaymentFeeDetails SavingsAccount SavingsProduct SavingsProductBranch SavingsTransaction SavingsTransactionGuarantyMapping Task Till TransactionChannel TransactionDetails User UserManagedBranch Other Tables Appendix 1
Activity types Indicators types
Mambu Data Dictionary 4
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 5
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
AccountArrearsSettings Description Entity holding the required information for the arrears settings of an account. Fields NAME TYPE DESCRIPTION
tolerancePeriod Integer The allowed period for loan to be in arrears.
monthlyToleranceDay
Integer
Represents the monthly arrears tolerance day value.
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
Mambu Data Dictionary 8
NAME TYPE DESCRIPTION
transactionID Long The id of the transaction contained in the activity.
timestamp Date 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 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)
Mambu Data Dictionary 9
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<FieldChangeItem>
List of field changes
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 subactivity
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 Subregion of the address. Unused.
postcode String Postal code of the address
Mambu Data Dictionary 10
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.
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.
AuthorizationHold Description Model used for keeping authorization requests.
Mambu Data Dictionary 11
Fields NAME TYPE DESCRIPTION
lastModifiedDate Datetime
As UTC.
creationDate Datetime
As UTC. Required
cardReferenceToken Varchar The card reference token used to reference the user card.
externalReferenceId Varchar The external reference Id to be used to reference this request in the subsequent requests
amount Decimal The amount to be hold. Required
isAdvice Bit Whenever the given request should be accepted without any validations. Required
currencyCode Varchar The ISO currency code, in which the request was made
userTransactionTime Varchar The moment of time at which the transaction occurred. The format is caller dependant and it not restricted in any way. Could be dates, timestamps, epoch millis etc.
cardAcceptor Varchar Entity used for keeping card acceptor provided details like, the state, country, etc from which the request was made
state Varchar The current Authorization Hold state. Can be: CANCELED The previously registered was canceled and
the balances updated PENDING The request was registered, the available
amount was updated, but the transaction was not applied yet
SETTLED The request was registered and the specific transaction was applied in Mambu
Required
referenceDateForExpiration
DateTime
The date to consider as start date when calculating the number of days passed until expiration (stored as UTC).
BackgroundProcess Description The execution of a process started by a user, that is done in the background
Mambu Data Dictionary 12
Fields NAME TYPE DESCRIPTION
state Enum String
The current status of this process: IN_PROGRESS COMPLETE NOT_FOUND CANCEL ERROR OVERRIDDEN
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.
creationDate Date When this process was created. Stored as Organization Time
simpleException String A simple exception information summary for failed processes
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)
Mambu Data Dictionary 13
progressType ProgressType
How this progress is measured
BackgroundTask Description Represents a task which is submitted for background processing 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’)
BaseArrearsSettings Description Base class for all the entities grouping settings related to arrears settings. Fields
Mambu Data Dictionary 14
NAME TYPE DESCRIPTION
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
toleranceCalculationMethod
String The method used to compute arrears day. Must be one of: ARREARS_TOLERANCE_PERIOD MONTHLY_ARREARS_TOLERANCE_DAY
Required
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
type Varchar Holds the type of migration that contains the row information.
Branch Description A Branch is the main division criteria of the organization. Fields NAME TYPE DESCRIPTION
Mambu Data Dictionary 15
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
CardAcceptor Description Used for keeping card acceptor details linked to Hold and Financial Transaction requests. Fields NAME TYPE DESCRIPTION
mcc Int The business code of the acceptor, the code can be used for authorization holds expiration. For example for some MCC values, the hold could expire faster.
name Varchar The name of the acceptor.
city Varchar The city of the acceptor.
state Varchar The state of the acceptor.
zip Varchar The zip of the acceptor.
country Varchar The country of the acceptor.
CardReference Description Entity used for keeping the card assignments for an account. An account can have more cards assigned, but a card can be assigned only to one account. Fields NAME TYPE DESCRIPTION
savingsAccountKey Varchar Keeps the encoded key of the savings account for which the cart was referenced. Required
cardReferenceToken Varchar Keeps the card id reference token. Required
Mambu Data Dictionary 16
CardTransactionReversal Description Used for the context that caused a card transaction reversal. Fields NAME TYPE DESCRIPTION
creationDate Datetime Keeps the encoded key of the savings account for which the cart was referenced. Required
cardReferenceToken Varchar The card reference token used to reference the user card.
externalReferenceId Varchar The external reference ID to be used to reference this request in the subsequent requests.
cardTransactionExternalReferenceId
Varchar The reference ID of the corresponding card transaction external reference id
amount Decimal The amount to be debited. Required
currencyCode Varchar The ISO currency code, in which the request was made.
CardTransactionSource Description Used for the context that caused a card transaction. Fields NAME TYPE DESCRIPTION
creationDate Datetime Keeps the encoded key of the savings account for which the cart was referenced. Required
lastModifiedDate Datetime Keeps the card id reference token.
cardReferenceToken Varchar The card reference token used to reference the user card.
externalReferenceId Varchar The external reference ID to be used to reference this request in the subsequent requests.
amount Decimal The amount to be debited. Required
Mambu Data Dictionary 17
isAdvice Bit Whenever the given request should be accepted without any validations(i.e. advice). Required
currencyCode Varchar The ISO currency code, in which the request was made.
userTransactionTime Varchar The date&time string at which the transaction was created by the merchant.
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 from the system)
state Enum String
State of the Centre: Active/Inactive.
Mambu Data Dictionary 18
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) humanreadable 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 Varchar 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 richtext 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.
loanCycle Integer The client’s current individual loan cycles. Autoincrement on successful account closure.
groupLoanCycle Integer The client’s current group loan cycle. That is, how many successful
Mambu Data Dictionary 19
loans they’ve been part of as a group. Autoincremented 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 Fields NAME TYPE DESCRIPTION
Mambu Data Dictionary 20
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 21
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 22
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 23
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 userdefined field which is applicable for any other type of object such as a
Mambu Data Dictionary 24
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, userdefined 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 25
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
temporaryId String Temporary field, valid form of the id
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 26
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 27
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
temporaryId String Temporary field, valid form of the id
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)
Mambu Data Dictionary 28
indexInList Integer Order of the address if the parent holder has multiple addresses (for 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 29
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 30
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
CustomPaymentAmount Description Model capable of holding the custom payment amount introduced by a client for a specific payment amount type. Fields NAME TYPE DESCRIPTION
amount
BigDecimal
The custom payment amount introduced by the client
taxOnAmount BigDecimal
the tax over the custom payment amount introduced by the client.
Mambu Data Dictionary 31
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
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.
Mambu Data Dictionary 32
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).
USER_INPUT, INSTALLMENT_PAID
Required
loanTransactionKey String The key of the loan transaction which caused this custom settings
Mambu Data Dictionary 33
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 34
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 multitenant 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 35
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 36
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.
FederatedAuthenticationSettings Description Holds organization settings about the federation of user authentication. Holds configuration, as example the url of the SAML 2.0 Identity provider along with a certificated in order to externalize the user authentication. Fields NAME TYPE DESCRIPTION
name String The name of the authentication setting
setup Enum Specifies the setup type for the configuration of the federated
Mambu Data Dictionary 37
String authentication: DISABLED not enabled, normal authentication process METADATA_URL the configuration is fed url METADATA_FILE the configuration is fed with metadata file MANUAL the configuration is fed with Identity Provider url
along with the certification fingerprint
url String The federated authentication settings url.
creationDate
Date The date when the link was created Stored as UTC
lastModifiedDate
Date the date when the link was changed Stored as UTC
certificate String The certificate used for Federated configuration
enableSingleLogout
Boolean Whether single logout is supported
idpLogoutUrl
String States the single logout url on the identity provider
federationUsage
String Specifies the usage type for the configuration of the federated authentication (support or regular users)
federationState
String Specifies the state of the federated authentication configuration (support or regular users)
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)
groupIDFormat String Pattern for generating group ids (uses letter & digit symbols as defined in IDGenerator)
Mambu Data Dictionary 38
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. “ddMMyyyy”)
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 CREDIT_OFFICERS
defaultTransactionC String Specifies the defafult transaction channel of the current
Mambu Data Dictionary 39
hannelKey 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 interbranch 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.
maxAllowedJournalEntryDocumentAttachments
Integer The maximum number of attachments for a journal entry. Required.
Mambu Data Dictionary 40
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
activated Boolean Whether the account is activated and may be used. Required
description String Detailed (text) description of the gl account
Mambu Data Dictionary 41
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.
currencyCode String Foreign key to a the Currency table.
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 42
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 43
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 autoincrement 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 44
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 45
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 HTMLformatted 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 46
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 47
organization using Mambu or not) or based on a value the client holds (an asset/collateral) Fields NAME TYPE DESCRIPTION
id Varchar Investor fund identifier. All versions of an investor fund will have same id.
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.
validFrom Datetime The date when the investor started funding the loan account (Organization time)
validUntil Datetime The date when the investor stopped funding the loan account (Organization time)
state Varchar Starting with P2P fractionalization, this entity is also used to hold the history of an investment fund. Having multiple versions, the state is one of the fields that can differentiate or give information regarding the investment fund. Must be one of:
PENDING Default state for the investor fund. ACTIVE State for the case when the loan amount
has been funded. PARTIALLY_BOUGHT Partially bought state for an
investor fund for which a newer version exists due to buying amount
PARTIALLY_SOLD Partially sold state for an investor fund for which a newer version exists due to selling amount
CLOSED State denoting the fact that the fraction
Mambu Data Dictionary 48
itself is closed (the loan is closed) REVERTED State for the case when this specific
Investor entry should be ignored as it was reverted. TOTALLY_SOLD State for the case when the
Investor sells the loan fraction entirely.
investmentPercentage Decimal The investment percentage to be considered for collection of amounts upon repayment for this investor fund
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”)
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
Mambu Data Dictionary 49
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
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
Mambu Data Dictionary 50
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. 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)
Mambu Data Dictionary 51
InterBranchTransferRule Description Class for associating inter branch GL Accounts. The relation between the branches is bidirectional, depending on the actual accounting action. Fields NAME TYPE DESCRIPTION
leftBranchKey
BigDecimal Returns the encoded key of the left branch. A value of null means "Unassigned"
rightBranchKey
BigDecimal
Returns the encoded key of the right branch. A value of null means "Unassigned"
glAccount
GLAccount The general ledger account
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
Mambu Data Dictionary 52
Description Base class for all the entities grouping settings related to how is the interest accrued and applied 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
Mambu Data Dictionary 53
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
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 toplimit value for the account balance in order to determine if this tier is used or not
endingDay Integer The toplimit 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
Mambu Data Dictionary 54
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
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
exposureLimitType Enum String
The calculation method for exposure limit: APPROVED_AMOUNT OUTSTANDING_AMOUNT
LoanAccount Description Stores a loan account or a loan application (which is just a loan account which is not yet active).
Mambu Data Dictionary 55
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
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 substates)
CLOSED_WRITTEN_OFF Account has been closed and any remaining balance due has been written off
Mambu Data Dictionary 56
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
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 substate. 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
Mambu Data Dictionary 57
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 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
Mambu Data Dictionary 58
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
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 prepayments are allowed or not for this account Must be one of the following:
ACCEPT_PREPAYMENTS The prepayments can be posted
NO_PREPAYMENTS No prepayments 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)
Mambu Data Dictionary 59
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 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.
Mambu Data Dictionary 60
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 prepaid 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
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 substate:
APPLY_INTEREST APPLY_FEES APPLY_PENALTIES
Mambu Data Dictionary 61
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.
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 prepayments 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 overpayment.
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.
Mambu Data Dictionary 62
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
interestFromArrearsAccrued
BigDecimal
The amount of interest from arrears that has been accrued in the 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)
interestRoundingVersion
Enum String
Holds the possible values for the version of the algorithm used for applying rounding on the loan accounts interest values:
VERSION_1 VERSION_2
accountArrearsSettingsKey
AccountArrearsSettings
Arrears settings available for the current account.
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.
Mambu Data Dictionary 63
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. 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
Mambu Data Dictionary 64
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 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
Mambu Data Dictionary 65
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 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 prepayments 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
Mambu Data Dictionary 66
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 prepayments 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_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 overpayment.
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
Mambu Data Dictionary 67
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 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
Mambu Data Dictionary 68
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.
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 prepaid 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
Mambu Data Dictionary 69
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.
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 Method used by loan accounts for repayments schedule
Mambu Data Dictionary 70
Enum 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 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<RepaymentScheduleEditO
tThis consist of those schedule options from the repayment that are editable.
Mambu Data Dictionary 71
ption>
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 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
Mambu Data Dictionary 72
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.
duplumBalanceConstraint
BigDecimal
Specifies the percentage of principal balance that cannot be 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
Mambu Data Dictionary 73
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. 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 Autoincrement 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:
Mambu Data Dictionary 74
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 DEFERRED_INTEREST_APPLIED before interest that's
not applied in the account yet gets prepaid, this transaction will be logged in the same time with the repayment transaction, to justify the prepaid interest amount in account's balance
DEFERRED_INTEREST_APPLIED_ADJUSTMENT reversal for DEFERRED_INTEREST_APPLIED transaction
DEFERRED_INTEREST_PAID after interest that was prepaid gets applied in the account, this transaction will be logged with the interest that was prepaid 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
Mambu Data Dictionary 75
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) 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 systemperformed 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)
Mambu Data Dictionary 76
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 BigDecimal
The total principal owned by the client, from now on (principal 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 prepaid was added/removed in account, within this transaction (including taxes)
deferredTaxOnInterestAmount
BigDecimal
How much taxes on the interest that was prepaid 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
Mambu Data Dictionary 77
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_oid
TransactionDetails
Details about transaction.
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.
externalId String The ID added by the customers that accepts alphanumeric characters, underscore and dash. Can be null
fundersInterestAmount
BigDecimal
Amount of interest that goes to the funders (only for P2P accounts with split methodology)
Mambu Data Dictionary 78
organizationCommissionAmount
BigDecimal
Amount of interest that goes to the organization (only for P2P accounts with split methodology)
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
MambuFeatureEntity Description Contains information about Mambu features. Fields NAME TYPE DESCRIPTION
name
Enum String
The name of the mambu feature. Required.
status Enum String
The status of the mambu feature.
usage Enum String
Indicates if mambu feature is used.
creationDate Date The date when the mambu feature was created (stored as UTC). Required.
lastModifiedDate Date The date when the mambu feature was last modified (stored as UTC).
Mambu Data Dictionary 79
MccExpiration Description Contains information on how much an AuthorizationHold can be maintained in the system before expiring it, based on the MCC (Merchant Category Code). Fields NAME TYPE DESCRIPTION
mcc
Integer The Merchant Category Code to hold the expiration information for
daysToExpiration int The number of days to wait before expiring an authorization hold with this entity's MCC
description String The description of the MCC expiration. Unique.
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
Mambu Data Dictionary 80
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.
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.
lastModifiedDate Datetime Stored as UTC.
topic Varchar The topic to which a client can subscribe in order to receive the events
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.
Mambu Data Dictionary 81
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 nonworking for the organization Fields
dayOfWeek
String The day of the week which is nonworking for the organization
creationDate Date The date when the non working day was created (as UTC)
NotificationEventItem Description This entity holds the information necessary to display Notification Events for clients. Fields NAME TYPE DESCRIPTION
type
Enum String
The type of the Event.
status Enum String
The state of the Event.
isRead
Boolean Flag to determine whether the notification was read by the user. Required.
subscriberId String The userKey of the user that owns the job. Required.
taskId
String The taskKey of the job. Required.
Mambu Data Dictionary 82
creationDate
Date The date when the notification event was created (stored as UTC). Required.
lastModified Date The date when the notification event was last modified (stored as UTC). Required.
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.
Mambu Data Dictionary 83
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.
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 usercustomised: 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
Mambu Data Dictionary 84
saved in database or is the default one. Required.
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
Mambu Data Dictionary 85
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
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
Mambu Data Dictionary 86
intervalCount Integer Total number of intervals
intervalType Varchar Defines the options for an interval. Can be: FULL_TERM The number of intervals is
determined programmatically considering a loan account's maturity date
PREDEFINED_INTERVALS The number of intervals is provided by the user
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_PERCENTAGEa 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
Mambu Data Dictionary 87
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
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
Mambu Data Dictionary 88
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
PredefinedFee
The predefined fee for which the amount was applied/paid.
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
Mambu Data Dictionary 89
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
Bit If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account
includeFeesInFloorAmount
Bit If true, the fee will be included along with the principal in the repayment floor amount, for a revolving credit account.
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
Mambu Data Dictionary 90
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
monthlyToleranceDay Integer Represents the monthly arrears tolerance day value..
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
Mambu Data Dictionary 91
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
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 lookup reasons). A repayment captures the schedule and state of repayment, while the actual transaction are captured in the LoanTransaction model.
Mambu Data Dictionary 92
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 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: “'20110907 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)
Mambu Data Dictionary 93
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
taxInterestPaid Decimal The amount of taxes that were paid by the user
organizationCommissionDue
BigDecimal
P2P accounts only the amount of interest allocated to organization as commission
fundersInterestDue
BigDecimal
P2P accounts only the amount of interest allocated to funders
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.
Mambu Data Dictionary 94
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 termdeposit or a checking account is essentially the current account of the client where deposits and withdrawals can be made. 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
Mambu Data Dictionary 95
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) (Organization Time)
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)
Mambu Data Dictionary 96
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
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
Mambu Data Dictionary 97
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
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.
holdBalance Decimal Hold balance of the account (it is included in balance). Required
technicalOverdraftAmount
BigDecimal
How much money has been taken from unplanned overdraft. This balance is usually used when doing advice cards operation(offline cards transactions)
technicalOverdraftInterestAccrued
BigDecimal
The amount of technical overdraft interest that has been accrued in the account
technicalInterestDue BigDecimal
How much interest is due to be *paid* on this account due to technical overdraft
SavingsProduct
Mambu Data Dictionary 98
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
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
Mambu Data Dictionary 99
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
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
Mambu Data Dictionary 100
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 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
Mambu Data Dictionary 101
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
InterestAccruedAccountingMethod
Method being used for maintaining the interest accrued method for the loan product
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.
Mambu Data Dictionary 102
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 Autoincrement unique ID of the savings transaction. Required
parentAccountKey String Foreign key to the savings 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 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
Mambu Data Dictionary 103
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
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 systemperformed 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
Mambu Data Dictionary 104
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
fractionAmount Decimal In a case of an Loan Fraction Bought transactions, this represent the fraction amount which was bought from another investor.
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 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
Mambu Data Dictionary 105
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.
preciseInterestAmount
Decimal Interest amount without rounding(for now populated only for P2P).
technicalOverdraftAmount
BigDecimal
Balance change amount involved in a transaction that affects an technical overdraft
technicalOverdraftInterestAmount
BigDecimal
Interest amount involved in a transaction that affects an technical overdraft
externalId
String The ID set by the customers that accepts alphanumeric characters, underscore and dash. Can be null
creationDate
Date When the transaction occurred (as UTC)
entryDate
Date Date of the entry (eg date of repayment or disbursal, etc.) (as Organization Time)
SavingsTransactionGuarantyMapping Description Saves mapping information between InvestorFund and SavingsTransaction Fields NAME TYPE DESCRIPTION
Mambu Data Dictionary 106
savingsTransactionKey Varchar Encoded key of the SavingsTransaction that has determined the creation of the InvestorFund. Required
oldGuarantyKey Varchar Encoded key of the InvestorFund that was affected due to the specific SavingsTransaction.
newGuarantyKey Varchar Encoded key of the InvestorFund that was created due to the specific SavingsTransaction. Required
Mambu Data Dictionary 107
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.
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
Mambu Data Dictionary 108
taskLinkName String
Till Description A till represents a concept introduced by the Tellering feature. It can be a physical cash box a 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 notrequired. 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
Mambu Data Dictionary 109
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
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.
Mambu Data Dictionary 110
Fields NAME TYPE DESCRIPTION
id String 32 character String hold the ID of the transaction channel
name String
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.
Mambu Data Dictionary 111
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. 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 autoincremented 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
Mambu Data Dictionary 112
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 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
Mambu Data Dictionary 113
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.
provisionedThroughFederation
Boolean If set to true, when editing, the editor must edit the password of the user. It will only be true after a user was provisioned from federated authentication.
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.
Mambu Data Dictionary 114
GroupRoleName Userdefined 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 userdefined holidays which affect things like repayment 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
Mambu Data Dictionary 115
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 reauthenticate 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 (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 usagerights 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. GLJournalEntryForeignAmount Stores foreign currency amount for GL journal entries. UnusedLoanIdInterval Table containing unused numeric loan account ids. Any creation of a loan account with a numeric id will be reflected in this table. CustomPredefinedFeeMapping List of fees that should be applied at the disbursement time CustomViewPreferences Holds specific User preferences related to a custom view DataMigrationEvent Captures a data migration event (import/export) performed by a user. Includes information about the details of the event as well as (for import) the state of the event if it was accepted or reverted DocumentTemplate Representing a document template which can be associated to an entity (ex: templates for products)
Mambu Data Dictionary 116
DocumentTemplateMapping A list with templates associated to this product DuplicateFieldConstraint Storing a duplicate constraint which needs to apply when saving entities EmailNotificationSettings Containing the credentials and settings for the email notifications PasswordResetRequest Stores the password reset requests PortalGeneralSettings General settings for the Portal module including the portal state, what to show for clients and organization stylesheet Role Holding information about roles for users SmsNotificationSettings Containing the credentials and settings for the SMS notifications WebhookNotificationSettings Containing settings for web hook notifications
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 117
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 118
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 119
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 120
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 121