Data Dictionary
  • 28 Mar 2023
  • 195 Minutes To Read
  • Dark
    Light
  • PDF

Data Dictionary

  • Dark
    Light
  • PDF

Description

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

Overview

Mambu is built on a relational database system, but is often de-normalized and puts 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.

Common Fields

All tables have a primary key called encodedKey. This key is a 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 its date fields extra info will be found about what value is stored in the database (UTC or Organization Time).

Undocumented Tables

Some tables in this data dictionary may be undocumented, this can be for a number of reasons. In some cases tables will be created to support upcoming features and documentation added once the feature has been released, in other cases tables are not intended to be modified/used by customers as they contain only Mambu system or UI data such as dashboard view preferences or custom views and menus.


accountarrearssettings

entity holding the required information for the arrears settings of an account.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
monthlytoleranceday int(11) Represents the monthly arrears tolerance day value.
tolerancepercentageofoutstandingprincipal decimal(50,20) Indicates the amount by which an account will be allowed to go into arrears as a percentage of the outstanding principal.
toleranceperiod int(11) The allowed period for loan to be in arrears.



accountarrearssettingsmapping

Describes a link between a loan account and arrears settings when the terms change with a transaction of type TERMS_CHANGED
Column Name Data Type Description
arrearssettingskey varchar(35) The encoded key of the entry in teh arrearssettings table holding the arrears settings.
loanaccountkey varchar(32) The encoded key of the loan account.
loantransactionkey varchar(32) The encoded key of the tranasction which records the change of terms.



accountinginterestaccrualbreakdown

Stores information regarding interest accrual
Column Name Data Type Description
accountencodedkey varchar(32) Reference to the account (loan/savings) encodedkey for which this entry is logged.
accountid varchar(32) Reference to the account (loan/savings) ID for which this entry is logged.
accrualtype varchar(32) The type of interest being accrued. For regular interest accrued, that isn’t paid already INTEREST_ACCRUED. For interest accrued that is already paid after a prepayment PREPAID_INTEREST_ACCRUED.
amount decimal(50,10) The amount accrued.
bookingdate datetime Booking Date of the referenced GL Journal Entry
branchencodedkey varchar(32) Reference to the branch encoded key for which this entry is logged.
creationdate datetime Date and time, in UTC, at which this entry was created.
entryid bigint(20) Reference to GL Journal Entry entry id for which this entry is logged.
entrytype varchar(32) Accounting entry type, for example, DEBIT or CREDIT.
glaccountencodedkey varchar(32) Reference to the GL Account for which this entry is logged
glaccounttype varchar(32) Type of GL Account for which this entry is logged, for example ASSETor INCOME.
id bigint(64) Accounting interest accrual breakdown id
processed tinyint(1) Flag for marking if this entry has been successfully processed and can be removed from this table.
productencodedkey varchar(32) Reference to the product encoded key for which this entry is logged
producttype varchar(32) Reference to the product type for which this entry is logged
sent tinyint(1) Flag for marking is this entry was sent to the internal message broker
transactionid varchar(32) Reference to GL Journal Entry transaction id for which this entry is logged.



accountingloaninterestaccrualsnapshot

stores interest accrual data to generate the aggregated and breakdown amounts on the same data, saved in a snapshot at a specific point in time.
Column Name Data Type Description
accountencodedkey varchar(32) The unique identifier of the account.
accountid varchar(32) The ID of the account.
assignedbranchkey varchar(32) The unique key of the branch to which this account is assinged.
interestamount decimal(50,10) The amount of interest.
productinterestaccrualcalculation varchar(256) The method used to calculate interest accrual. Can be one of NONE, BREAKDOWN_PER_ACCOUNT, or AGGREGATED_AMOUNT.
producttypekey varchar(32) The unique key of the product used to create this account.



accountingnotificationmessage

Column Name Data Type Description
body mediumtext
creationdate datetime
destination varchar(1024)
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
event varchar(256)
failurecause varchar(256)
failurereason varchar(255)
gljournalentrykey varchar(32)
id varchar(256)
numretries int(11)
senddate datetime
state varchar(256)
templatekey varchar(32)
type varchar(256)



accountingnotificationmessagequeue

Column Name Data Type Description
accountingnotificationmessage_encodedkey_oid varchar(32)
creationdate datetime
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
state varchar(256)



accountingrate

table used to store internal currency conversion rates for accounts in different currencies within the same bank. this table is for an upcoming feature.
Column Name Data Type Description
encodedkey varchar(32) A unique keyu for this row.
enddate datetime The last date on which this rate will be valid.
fromcurrencycode varchar(3) Foreign key pointing to a currency defined in the currency table which is to be converted from.
rate decimal(50,20) The currency conversion rate.
startdate datetime The first date on which this rate is valid.
tocurrencycode varchar(3) Foreign key pointing to a currency defined in the currency table that is the output currency of the conversion rate.
userkey varchar(32) Unique key of a user who entered this exchange rate. Foreign key to the user table.



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.
Column Name Data Type Description
creationdate datetime The date when the link was created - Stored as UTC
encodedkey varchar(32) A unique ID used as a key for this table.
lastmodifieddate datetime The date when the link was changed - Stored as UTC
loanaccountkey varchar(32) The key of loan account with which the deposit account is linked. Required
savingsaccountkey varchar(32) The key of deposit account linked to the loan account.Required



accountpaymentholidaysdetails

this table contains details about payment holidays which have been granted for a given loan account and includes the interest amount accrued during the payment holiday period. read our documentation on payment holidays for more information on this feature.
Column Name Data Type Description
accountkey varchar(32) The encoded key for the loan account which has been granted a payment holiday.
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
interestaccrued decimal(50,10) The interest accrued during the payment holiday.



activity

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.
Column Name Data Type Description
activitychanges_integer_idx int(11) For single changes this will always be -1. When a single activity contains multiple changes, this field will indicate the position in the list of changes, starting from 0. For example if multiple holidays can be added for an organization and will be applied when the save button is clicked, there will be one activity of the type HOLIDAY_SETTINGS_CHANGED and multiple activities of the type ENTITY_ADDED. The parent_key will point to the main activity in the set.
assignedcentrekey varchar(32) The key of the centre involved in this activity
assigneduserkey varchar(32) 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)
branchkey varchar(32) Set to branch encoded key if the activity is associated with a particular branch
centrekey varchar(32) Set to centre encoded key if the activity is associated with a particular centre
clientkey varchar(32) Set to client encoded key if the activity is associated with a client
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the fieldchangeitem table.
entitykey varchar(32) Used for generic activities and specifies the key of the linked entity (CLIENT, GROUP, etc)
entitytype varchar(30) Field used for generic activities and specifies entity type (Eg. CLIENT, GROUP, BRANCH)
fieldchangename varchar(256) The field which corresponds to this activity in the case when it is a sub-activity
glaccountkey varchar(32) Set to gl account encoded key if the activity is associated with a particular gl account
glaccountsclosurekey varchar(32) Set to GlAccountClosure encoded key if the activity is associated with a particular accounting closure
groupkey varchar(32) Set to group encoded key if the activity is associated with a group
lineofcreditkey varchar(32) The key of the line of credit involved in this activity
loanaccountkey varchar(32) Set to loan account encoded key if the activity is associated with a particular loan account
loanproductkey varchar(32) Set to loan product encoded key if the activity is associated with a particular product (eg. account activity)
notes varchar(256) The notes logged within the activity.
parent_key varchar(32) Specifies the parent activity if any. The parent is another entry in this table.
savingsaccountkey varchar(32) Set to loan account encoded key if the activity is associated with a particular loan account
savingsproductkey varchar(32) Set to loan product encoded key if the activity is associated with a particular product (eg. account activity)
taskkey varchar(32) The key of the task involved in this activity
timestamp datetime The time when the activity was logged.
transactionid bigint(20) The id of the transaction contained in the activity.
type varchar(256) The type of the activity. See our API v1 reference listing available Activity types.
userkey varchar(32) The user key of the user (activity actor) who was logged in and performed the activity



address

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.
Column Name Data Type Description
addresstype varchar(256) Type of address. Unused
city varchar(256) City of the address
country varchar(256) Country of the address
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
indexinlist int(11) 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(9,6) The latitude of the address point.
line1 varchar(256) First line of the address
line2 varchar(256) Second line of the address
longitude decimal(9,6) The longitude of the address point.
parentkey varchar(32) Foreign key as to who this address belongs to. For instance may refer to a client or a group, etc. Required
postcode varchar(256) Postal code of the address
region varchar(256) Sub-region of the address. Unused.



amortizationamount

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.
Column Name Data Type Description
amortizedamounts_encodedkey_own varchar(32) Encoded key of an entry in the predefinedfeeamount table.
amortizedamounts_integer_idx int(11) In the case this there are more than one amortized amount relating to the same entry in the predefinedfeeamount table, this field shows the index in that list for the current amount.
amount decimal(50,10) The amount amortized by this instance. Required
branchkey varchar(32) Encoded key of the branch.
centrekey varchar(32) Encoded key of the centre.
creationdate datetime The system date when this entry was logged (as UTC). Required
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
entrydate datetime The date when this amount was recognized as amortized (as Organization Time). Required
reversalamountkey varchar(32) In the case when this amount is reversed the reversalAmountKey represents the key of an entry in this table containing the amount which reversed this current one
taxamount decimal(50,10) The amount of taxes amortized by this instance.
type varchar(32) The type of the amortization(regular amortization, reversal, etc.)
- AMORTIZATION,
- AMORTIZATION_ADJUSTMENT



applicationrootencryptionkey

A table holding keys used to encrypt files and data being stored in your Mmabu system.
Column Name Data Type Description
content varchar(256) A key used in encrypting data.
creationdate datetime(6) The date and time at which this key was created, in UTC.
encodedkey varchar(32) A unique key for this row.
iv varchar(256) An initialisation vector used in encrypting data.
lastmodifieddate datetime(6) The date and time, in UTC, on which the key was last modified or replaced.



authorizationhold

The model used for keeping authorization requests.
Column NameData TypeDescription
accountkey varchar(32) The key of the account linked with the authorization hold.
amount decimal(50,10) The amount to hold. Required
cardacceptorkey varchar(32) Link to the entity used for keeping card acceptor provided details like, the state, country, etc from which the request was made
cardreferencetoken varchar(72) The card reference token used to reference the user card.
creationdate datetime(6) As UTC. Required
creditdebitindicator varchar(256)Indicates whether the hold is positive or negative. DBIT is a normal positive hold for card payments, CRDT indicates this hold will add money to the card-holder’s account, for example, for refunds &c..
currencycode varchar(3) The ISO currency code, in which the request was made
encodedkey varchar(32) The encoded key for this database entry. This value is auto-generated and should not be changed.
exchangerate decimal(50,10) The exchange rate used at the time of the transaction to convert between the original and account currency.
externalreferenceid varchar(256) The external reference Id to be used to reference this request in the subsequent requests
isadvice bit(1) Whenever the given request should be accepted without any validations. Required
lastmodifieddate datetime(6) The date on which this row was last modified. As UTC.
originalamount decimal(50,10) The amount of the transaction in the original currency in the case that this transaction was made in a currency different to that of the account.
originalcurrency varchar(32) The currency of the transaction in the case that it was anything other than the currency of the account.
referencedateforexpiration datetime(6) The date to consider as start date when calculating the number of days passed until expiration (stored as UTC).
source varchar(32) Indicates the source of the authorization hold. Can be:
- CARD: The authorization hold has been created using the Cards functionality.
- ACCOUNT: The authorization hold has been created directly in the account.
state varchar(256) 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
usertransactiontime varchar(256) The moment of time at which the transaction occurred. The format is caller dependant and it not restricted in anyway. Could be dates, timestamps, epoch millis etc.



backgroundprocess

the execution of a process started by a user, that is done in the background.
Column Name Data Type Description
creationdate datetime(3) When this process was created. Stored as Organization Time
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
enddate datetime When this process was ended. Stored as Organization Time.
lastheartbeatdate datetime(3) The date and time at which it was last checked that this process is still running.
retryattempts int(11) The number of times the process was retried in the case of failure.
simpleexception varchar(3000) A simple exception information summary for failed processes
startdate datetime When this process was started. Stored as Organization Time.
state varchar(256) The current status of this process:
- IN_PROGRESS
- COMPLETE
- NOT_FOUND
- CANCEL
- ERROR
- OVERRIDDEN
Required
type varchar(256) 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 varchar(32) The key of the user that started this process.



backgroundprocessprogress

entity which correspond to the progress information of a background process.
Column Name Data Type Description
currentprogress decimal(50,20) The process current progress
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the backgroundtask table.
progresstype varchar(256) How this progress is measured
totalprogress decimal(50,20) The process total progress that need to be executed (includes the progress that was executed and the one that needs to be executed)



backgroundtask

represents a task which is submitted for background processing
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field is autogenerated and should not be changed.
entitykey varchar(32) The entity key which for which this task was created.
entitytype varchar(256) The type of the entity for which this task was created
input mediumtext Input of the task, JSON serialized version
processkey varchar(32) Foreign key to the backgroundProcess table. The associated background process to this task, it contains information about process state and progress.
progresskey varchar(32) Foreign key to the backgroundProcessProgress table. The associated background process progress to this task.
result mediumtext Result of the task, JSON serialized version
taskid bigint(20) Incremented id used for ordering. (UNIQUE INDEX ‘TASKID_UNIQUE’)



basearrearssettings

base class for all the entities grouping settings related to arrears settings.
Column Name Data Type Description
datecalculationmethod varchar(256) How arrears dates are calculated. Can be one of
- ACCOUNT_FIRST_WENT_TO_ARREARS
- LAST_LATE_REPAYMENT
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the accountarrearssettings and productarrearssettings tables.
nonworkingdaysmethod varchar(256) Whether the non working days are taken in consideration or not when applying penalties/late fees or when setting an account into arrears. Either INCLUDED or EXCLUDED.
tolerancecalculationmethod varchar(256) The method used to compute arrears day. Must be one of:
- ARREARS_TOLERANCE_PERIOD
- MONTHLY_ARREARS_TOLERANCE_DAY
Required"
toleranceflooramount decimal(50,20) The minimum threshold for marking an account as being in arrears. For example, if the floor is set as 15 euros and a loan account has a tolerance of 10% with 100 euros outstanding principal, it will not be marked as being in arrears as the amount is only 10 euros and so less than the 15 euro floor.



batchmigration

holds information about batch migration scripts.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
entitykey varchar(32) Maintains the key of the migrated entity. Required
exception mediumtext Exception of the failed update process.
successful bit(1) Maintains the state of the migrated entity.
type varchar(32) Holds the type of migration that contains the row information.



batchmigrationarchived

this table is an archive of the batch migration table and was created as part of the v9.47 release to avoid losing existing data.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
entitykey varchar(32) Maintains the key of the migrated entity. Required
exception mediumtext Exception of the failed update process
successful bit(1) Maintains the state of the migrated entity.
type varchar(32) Holds the type of migration that contains the row information.



blockfund

a table describing blocks or seizures of funds in client accounts which are generally made due to a governmental or judicial request, for example garnishment of wages, debt collection or seizure of funds which were generated through the proceeds of criminal activity. blocked funds will not be available to clients.
Column Name Data Type Description
accountkey varchar(32) The encoded of the account for which a certain amount will be blocked.
amount decimal(50,10) The amount of the account owner’s funds which are blocked.
creationdate datetime The date on which this seizure was created.
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
externalreferenceid varchar(512) A reference ID to refer to the blocked funds which is used when unblocking or withdrawing all or part of these funds.
lastmodifieddate datetime The date on which this seizure was last modified.
notes varchar(256) Notes recorded by the user when initiating the seizure.
seizedamount decimal(50,10) The amount which has been blocked for this seizure.
state varchar(256) The state of this block; PENDING, REMOVED or SEIZED.



blockfundtransactionsource

represents a link between a transaction and a portion of an account holder’s balance which has been blocked.
Column Name Data Type Description
blockfundkey varchar(32) The encodedkey of the blocked funds. This links to the blockfund table
blockfundreferenceid varchar(512) The reference ID for the blocked funds. This referes to the externalreferenceid column of the blockfund table.
savingstransactionkey varchar(32) The encoded key of the savings/deposit account transaction. Links to the savingstransaction table.



branch

a branch is the main division criteria of the organization.
Column Name Data Type Description
creationdate datetime The date on which the branch was fdirst created. Stores in the organization’s local time.
emailaddress varchar(256) The email address defined for a branch
encodedkey varchar(32) The encoded key for this database entry. This ID can be used to refer to this entity when using our API.
id varchar(32) A unique user defined ID. Required
lastmodifieddate datetime The date on which the entry was last modified. Stored in the organization’s local time.
name varchar(256) The name of the branch.
notes mediumtext Notes for the branch, usually stored as HTML
phonenumber varchar(256) The phone number defined for a branch
state varchar(255) Indicates whether the branch is ACTIVE or INACTIVE.



branchcustomvalue

Holds values for custom information for branches. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



bulkprocessingprocesseditems

Column Name Data Type Description
bulkitemtemporarilyuuid varchar(32)
bulkkey varchar(32)
creationdate datetime
encodedkey varchar(32)
persistedentitykey varchar(32)



cardacceptor

used for keeping card acceptor details linked to hold and financial transaction requests.
Column Name Data Type Description
city varchar(256) The city of the acceptor.
country varchar(256) The country of the acceptor.
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the authorizationhold table.
mcc int(11) 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(256) The name of the acceptor.
state varchar(256) The state of the acceptor.
street varchar(256) The street and house number of the acceptor.
zip varchar(256) The zip of the acceptor.



cardreference

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.
Column Name Data Type Description
accountkey varchar(32) Keeps the encoded key of the account for which the cart was referenced. Required
cardreferencetoken varchar(72) Keeps the card id reference token. Required
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the authorizationhold table.
type varchar(32) The type of card, ie. debit or credit.



cardtransactionreversal

used for the context that caused a card transaction reversal.
Column Name Data Type Description
amount decimal(50,10) The amount to be debited. Required
cardreferencetoken varchar(72) The card reference token used to reference the user card.
cardtransactionexternalreferenceid varchar(256) The reference ID of the corresponding card transaction external reference id
creationdate datetime(6) Keeps the encoded key of the savings account for which the cart was referenced. Required
currencycode varchar(3) The ISO currency code, in which the request was made.
encodedkey varchar(32) The encoded key for this database entry.
externalreferenceid varchar(256) The external reference ID to be used to reference this request in the subsequent requests.
originaltransactionkey varchar(32) A reference to the original transaction that is being reversed here.
transactionchannelid varchar(32) Foreign key for the transactionChannel table which points to the transaction channel used for this card transaction.
transactionkey varchar(32) The ID for this transaction.



cardtransactionsource

used for the context that caused a card transaction.
Column Name Data Type Description
amount decimal(50,10) The amount to be debited. Required
cardacceptorkey varchar(32) The encodedkey of a row in the cardacceptor table containing details of the acceptor for this transaction.
cardreferencetoken varchar(72) The card reference token used to reference the user card.
creationdate datetime(6) Keeps the encoded key of the savings account for which the cart was referenced. Required
currencycode varchar(3) The ISO currency code, in which the request was made.
encodedkey varchar(32) The encoded key for this database entry.
externalauthorizationreferenceid varchar(256) The external authorization hold reference ID, which relates this card transaction to a previous authorization hold.
externalreferenceid varchar(256) The external reference ID to be used to reference the card transaction in subsequent requests..
isadvice bit(1) Whenever the given request should be accepted without any validations(i.e. advice). Required
lastmodifieddate datetime(6) The date on which this row was last modified. As UTC.
linkedtransactionkey varchar(32) The encodedKey of the linked financial transaction.
linkedtransactiontype varchar(32) The type of the linked transaction (DEPOSIT / LOAN).
transactionchannelid varchar(32) The ID of the channel through which the payment is done.
usertransactiontime varchar(256) The date&time string at which the transaction was created by the merchant.



centre

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.
Column Name Data Type Description
assignedbranchkey varchar(32) Foreign key to a Branch. It defines the branch to whom this centre belongs to. Required
creationdate datetime The date on which the centre was created. Stored in the organization’s local time.
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to get details on a specific Centre.
id varchar(32) An unique user defined ID. Required
lastmodifieddate datetime The date on which the entry was last modified. Stored in the organization’s local time.
meetingday varchar(256) 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
migrationeventkey varchar(32) 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)
name varchar(256) The name of the centre. Required
notes mediumtext Optional notes that can be entered when the centre is created/edited.
state varchar(255) State of the Centre: ACTIVE/INACTIVE.



centrecustomvalue

Holds values for custom information for centres. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



changeduedateevent

Tracks changes made to the due date for loans with fixed day of month payment schedule. This operation will be made via api, read more about how to carry out this operation as well as the product constraints in our repayments schedule editing support article.
Column Name Data Type Description
dayofmonth tinyint(4) The new day of the month on which installments are due.
transactionkey varchar(32) Foreign key which links to an entry in the loantransaction table of the type DUE_DATE_CHANGED.



client

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
Column Name Data Type Description
activationdate datetime The date when the account was set into ACTIVE state (when an active account was created for him) (UTC)
approveddate datetime The date when the client was set into APPROVED state (UTC)
assignedbranchkey varchar(32) Foreign key to the Branch table indicating which branch the client belongs to
assignedcentrekey varchar(32) Foreign key to the Centre table indicating to which centre the client belongs to.
assigneduserkey varchar(32) Foreign key to the Users table indicating who the the user assigned to the client is (ie: which credit officer is responsible for them)
birthdate datetime Date of when the client was born (Organization Time)
clientrolekey varchar(32) The key of the the client role this client belongs to
closeddate datetime The date when the client was Exited or Blacklisted (UTC)
creationdate datetime The date on which this client was first entered into the system.
emailaddress varchar(256) Email address of the client
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to get details on a specific Client and is also used as a foreign key to link with other tables, such as the groupmember, grouprole, passwordresetrequest, identificationdocument tables, among others.
firstname varchar(256) The first name(s) of the client. Required.
gender varchar(256) Gender of the client. Must be one of: MALE or FEMALE.
grouploancycle int(11) The client’s current group loan cycle. That is, how many successful loans they’ve been part of as a group. Auto-incremented on successful account closure.
homephone varchar(256) The home phone number of the client
id varchar(32) A unique (for Clients) human-readable identifier for the the client id. Generated automatically when storing a client through the application but can be set to anything during import. Required
lastmodifieddate datetime The date on which some aspect of this client entry was last modified.
lastname varchar(256) The last name(s) of the client. Required
loancycle int(11) The client’s current individual loan cycles. Auto-increment on successful account closure.
middlename varchar(256) The middle name(s) of the client.
migrationeventkey varchar(32) 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)
mobilephone1 varchar(256) Mobile phone number of the client
mobilephone2 varchar(256) Mobile phone number of the client (secondary)
notes mediumtext HTML rich-text detailed notes about the client
portalpreferenceskey varchar(32) 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
preferredlanguage varchar(32) The language preference for this user. Must be one of ENGLISH, PORTUGUESE, RUSSIAN, SPANISH, FRENCH, CHINESE, GEORGIAN, INDONESIAN, ROMANIAN, BURMESE, GERMAN.
profilepicturekey varchar(32) Foreign key to the Images table containing the image of the client’s profile picture
profilesignaturekey varchar(32) Foreign key to the Images table containing the signature image for this client
state varchar(256) 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



clientcustomvalue

Holds values for custom information for clients. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



clientrole

a role which describes the intended use of a client or group in the system
Column Name Data Type Description
canguarantee bit(1) Whether this role can guarantee for other clients/groups
canopenaccounts bit(1) Whether this role can open loan/savings accounts.
clienttype varchar(255) The category addressed by this role:
- CLIENT
- GROUP
createdbyuserkey varchar(32) The key of the user who created the role
creationdate datetime The date when the role was created (as UTC).
description varchar(256) Description text for client roles
encodedkey varchar(32) The encoded key for this database entry.
id varchar(255) The id of the client role
idpattern varchar(32) The patterm used to generate IDs when new clients are created.
index int(11) The index giving the order of the roles
name varchar(255) The name of the client role
requireid bit(1) Whether it is mandatory for the client to have an ID
usedefaultaddress bit(1) Field to indicate if this the default address should be used



columnconfiguration

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).
Column Name Data Type Description
customconfigurationinfo_encodedkey_oid varchar(32) Foreign key to customConfiguration table with reference to the entity holding common information for the custom configuration enitites
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
includetimestamp bit(1) Whether to include timestamp or not.
includetotals bit(1) Specifies whether to include total values for the numeric and money columns
sortingcolumn_encodedkey_oid varchar(32) Foreign key to the fieldColumn table pointing the column used for sorting.
sortingorder varchar(256) Order of sorting, can be:
- ASCENDING
- DESCENDING



comment

for each entity available in the application (client, group, account, user, branch etc.) there can be posted comments, by the users.
Column Name Data Type Description
creationdate datetime The date when the comment has been created.
encodedkey varchar(32) The globally unique encoded key for this comment.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
parentkey varchar(32) The parent of the comment is the object it belong to (eg, a client)
text mediumtext The comment text.
userkey varchar(32) The user who left the comment.



contract

table used to model the concept of contract. further a contract can have multiple accounts mapped to it.
Column Name Data Type Description
creationdate datetime(6) Date when the contract was created. UTC
encodedkey varchar(32) Primary key of the contract table.
lastmodifieddate datetime(6) Date when the contract was last time modified. UTC
oldcontractkey varchar(32) Encoded key of the old contract entity (i.e SavingsAccount).
productkey varchar(32) Encoded key of the product used by the contract.
userkey varchar(32) Encoded key of the user which triggered the action to create the contract.



contractaccount

table used to hold the mapping between a contract entity and associated accounts.
Column Name Data Type Description
accountkey varchar(32) Identifier of the account which is mapped to the contract.
accountmnemo varchar(256) Indicate the type of the account which is mapped to the contract (i.e MAIN, OVERDRAFT, etc)
closeddate datetime(6) Date when the account was closed, null if the the account is not closed yet. In Organization Time Zone
contractkey varchar(32) Encoded key of the contract to which the account belongs.
creationdate datetime(6) Date when the account mapping was created. UTC
encodedkey varchar(32) Primary key for this table.
lastmodifieddate datetime(6) Date when the account mapping was last time modified. UTC
userkey varchar(32) Encoded key of the user which determined the account mapping to be created.



currency

holds details about the currency being used by the mfi. not user configurable.
Column Name Data Type Description
code varchar(3) Official ISO 4217 code, for example: CAD, USD or EUR. For more information, see ISO 4217 on Wikipedia.
creationdate datetime UTC date of creation
currencysymbolposition varchar(256) Possible values:
- BEFORE_NUMBER
- AFTER_NUMBER
digitsafterdecimal int(11) Number of digits which the currency has after the decimal places for display
isbasecurrency bit(1) Whether the currency is the base one used by the organization
lastmodifieddate datetime Date of last modification. As UTC.
name varchar(256) Name of the currency, for example “Canadian dollar”
symbol varchar(256) Short symbol like ‘$’



currencymapping

holds a list of currencies associated to this product. an account for the product can use only the currencies associated to this product.
Column Name Data Type Description
currencycode varchar(32) The currency code associated to this product. Required
index int(11) Column used to sort currencies inside list. Required
parentkey varchar(32) The encoded key of the parent, foreign key to the currency table.



customconfigurationinfo

entity holding common information used in the custom configuration entities customview, customfilter or columnconfiguration.
Column Name Data Type Description
creationdate datetime UTC date of creation
dataviewtype varchar(256) View type for this configuration:
- LOANS
- SAVINGS
- etc.
encodedkey varchar(32) The encoded key for this configuration, this is an autogenerated and globally unique ID.
indexinlist int(11) Specifies the position in an outside collection of custom configurations.
lastmodifieddate datetime UTC last modified date
name varchar(256) The name of the custom configuration
shared bit(1) Specfiies whether this configuration is shared with all users.
userkey varchar(32) The key of the user who created this configuration



customfield

a custom field is a user-defined field which is applicable for any other type of object such as a 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)
Column Name Data Type Description
amounts mediumblob 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.
builtincustomfieldid varchar(255) The field that is part of the builtIn custom fields (custom fields whose values are store in entity table for example Client.firstName).
creationdate datetime The date when the custom field was created - Stored as UTC
customfieldset_encodedkey_oid varchar(32) Links this entry to a custom field set definded in the customfieldset table.
datatype varchar(256) Type of value which is to be stored (refers to the representation of CustomFieldValue.value). Must be one of:
- STRING
- SELECTION
Required
description varchar(256) A short description of the specific custom field.
editusagerightskey varchar(32) The usage rights that describes the edit access to the Custom Field. Foreign key to the usageRights table.
encodedkey varchar(32) The encoded key of this custom field. Please note: this is an automgenerated ID and not the same as the user defined custom field ID.
id varchar(32) Unique, user-defined ID for the custom field object
indexinlist int(11) 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
isdefault bit(1) Whether the field is to be displayed as a default field when creating the client/group/etc. Required
isrequired bit(1) Whether the field is required when creating the client/group/etc. Required
lastmodifieddate datetime The last date when the custom field was changed - Stored as UTC
name varchar(256) The name of the custom field. Such as ‘Education’Required
state varchar(256) Custom field state
- NORMAL - The default state for a custom field
- DEACTIVATED - Used to mark the custom field as deactivated
temporaryid varchar(32) Temporary field, valid form of the id
type varchar(256) Type of custom field. Defines for whom this field is applicable. 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.
unique bit(1) Indicates that the values for this custom field needs to be unique. It can be used only for text type custom fields
validationpattern varchar(256) If validation has been set for the custom field, for example, the value should only be digits or should be in the format 123-456, the validation pattern will be held in this field.
valuelength varchar(256) Whether the custom field is SHORT or LONG, this mostly has an impact on how the data from this custom field is displayed in the Mambu UI, generally all custom field values have a maximum length of 2048 characters.
values mediumblob Used to store the predefined values for the dataType.SELECTION customFields. For example: - name = ‘Occupation’; - values = ‘Teacher’, ‘Student’;
viewusagerightskey varchar(32) The usage rights that describes the view access to the Custom Field. Foreign key to the usageRights table.



information about the availability of a custom field for another entity (product, client role)
Column Name Data Type Description
customfieldlinks_encodedkey_own varchar(32) The key to the custom field. Required
encodedkey varchar(32) The encoded key for this link, this is an autogenerated and globally unique ID.
entitylinkedkey varchar(32) 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
isdefault bit(1) Whether the linked custom field is displayed by default when creating a new entity. Required
isrequired bit(1) Whether the linked custom field is displayed by default for the linked entity. Required
linktype varchar(32) Specifies the link type, like product or a client role. Required



customfieldselection

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.
Column Name Data Type Description
constraintkey varchar(32) The key of the constraint that keeps the dependency on the parent custom field. Can be null if no parent is assigned.
customfieldkey varchar(32) The key of the custom field associated with this selectible value
encodedkey varchar(32) The encoded key for this selectible value, this is an autogenerated and globally unique value.
id varchar(32) An automatically generated ID for the selectible value.
score decimal(19,0) The score for the selectible value (credit scoring feature).
selectionindex int(11) The index in list for this selectible value.
value varchar(255) Value that appears in the dropdown and can be selected by the user.



customfieldset

defines a set of custom fields for grouping them on the interface
Column Name Data Type Description
builtintype varchar(255) Represents the special sets which contains the configurations for fields that are part of the entities
createddate datetime The date when this set was created (as UTC).
encodedkey varchar(32) The encoded key for this set of custom fields, this is an autogenerated and globally unique ID.
id varchar(32) The custom field set identifier.
indexinlist int(11) Index of the set in the list of all sets with the same type.
lastmodifieddate datetime The date when this set was last modified (as UTC).
name varchar(256) The name of the custom field set. Required
notes mediumtext A short description of the specific custom field set.
temporaryid varchar(32) Temporary field, valid form of the id
type varchar(256) 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
- GROUP_INFO
- BRANCH_INFO
- CREDIT_OFFICER_INFO
Required.
usage varchar(32) 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.



customfieldvalue

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
Column Name Data Type Description
amount decimal(50,10) 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.
customfieldkey varchar(32) Foreign key to the CustomField. Required
customfieldsetgroupindex int(11) 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
encodedkey varchar(32) The encoded key for the value of this custom field, this is an autogenerated and globally unique ID.
indexinlist int(11) Order of the address if the parent holder has multiple addresses (for display/formatting purposes. That is, 0 is displayed before 1, etc.
linkedentitykeyvalue varchar(32) Key of the linked entity stored as value for the custom field
parentkey varchar(32) Foreign key to the holder of this custom field. That is, may refer to the Client.encodedKey or Group.encodedKey, etc. Required
value varchar(2048) Value of the field (such as Bachelors if the CustomField was Education)



customfilter

represents a filter saved by a user for a certain list displayed in the application.
Column Name Data Type Description
customconfigurationinfo_encodedkey_oid varchar(32) Foreign key to the entry in the customConfigurationInfo table containing a configuration information for the current filter
encodedkey varchar(32) The encoded key for this filter, this is an autogenerated and globally unique ID.



customfilterconstraint

represents a filtering condition as example ‘client age between 15 and 100’.
Column Name Data Type Description
customfieldkey varchar(32) The custom field key after which the filtering is done. A reference to the customfield table.
datafieldtype varchar(256) Field type:
- NATIVE
- CUSTOM
datafieldvalue varchar(256) The name of the data field. For example the constraint “Loan Purpose EQUALS Agriculture Loan” will have as data field value Loan Purpose.
dataitemtype varchar(256) Item type:
- LOANS
- SAVINGS
- etc.
datatype varchar(256) Data type:
- BIG_DECIMAL
- DATE
- LONG
- MONEY
- etc.
encodedkey varchar(32) The encoded key for this row, used as the primary key for this table.
filterconstraints_encodedkey_own varchar(32) A reference to the encodedkey field of the entry in the customfilter table to which this constraint relates.
filterconstraints_integer_idx int(11) If one or more filter constraints are set for the same custom filter, this field shows their position in the list. The first constraint having index 0, the second 1 and so on.
filterelement varchar(256) Filter element:
- EQUALS
- MORE_THAN
- LESS_THAN
- STARTS_WITH
- BETWEEN
- ON
- AFTER
- BEFORE
- TODAY
- THIS_WEEK
- THIS_MONTH
- THIS_YEAR
- LAST_DAYS
groupnumber int(11) Specifies the group expression number for which this constraints is part of.
linkingoperator varchar(32) 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
secondvalue varchar(2048) The first filtering value of the filter. For example the constraint “Loan Purpose EQUALS Agriculture Loan And Science” has as second value “Science”.
value varchar(2048) The first filtering value of the filter. For example the constraint “Loan Purpose EQUALS Agriculture Loan And Science” has as (first) value “AgricultureLoan”.



custommenuitem

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.
Column Name Data Type Description
creationdate datetime The date when the custom menu item was created - Stored as UTC
encodedkey varchar(32) The encoded key for this menu item, this is an autogenerated and globally unique ID.
includecollections bit(1) Whether to include collections item in custom transactions menus
lastmodifieddate datetime The last date when the custom menu item was changed - Stored as UTC
name varchar(255) The name of the custom menu item
state varchar(255) Holds the state which defines the accessibility for the current custom menu item
type varchar(255) The type of the custom menu item (LOANS, SAVINGS etc)
userkey varchar(32) The key of the user who created this menu item.
viewusagerightskey varchar(32) Foreign key to the usageRights table entry containing the usage rights that describes the view access to the Custom Menu Item.



custommenuitempostion

model used for maintaining the index of a custom menu item in a parent. list.
Column Name Data Type Description
custommenuitempositions_encodedkey_own varchar(32) Foreign key linking to an entry in the userpreferences table.
encodedkey varchar(32) A unique key for this row.
index int(11) The index of this row.
menuitemkey varchar(32) The ID of the menu item. Foreign key to the custommenuitem table.



custompaymentamount

model capable of holding the custom payment amount introduced by a client for a specific payment amount type.
Column Name Data Type Description
amount decimal(50,10) The custom payment amount introduced by the client.
custompaymentamounts_encodedkey_own varchar(32) The key of the entry in the loantransaction table recording this repayment.
custompaymentamounts_integer_idx int(11) Index in a list when the total sum of this custom payment is allocated to more than one type of charge (eg, interest and princpal or late payment fees and pentalties).
custompaymentamounttype varchar(32) Indicates to which part of the loan this portion of the custom payment relates (UPFRONT_DISBURSEMENT_FEE, INTEREST, PRINCIPAL, MANUAL_FEE, LATE_REPAYMENT_FEE, PAYMENT_DUE_FEE, PENALTY, etc).
encodedkey varchar(32) A unique key for this row.
taxonamount decimal(50,10) the tax over the custom payment amount introduced by the client.



custompredefinedfee

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.
Column Name Data Type Description
amount decimal(50,10) Custom amount for the fee
encodedkey varchar(32) The encoded key for this fee, this is an autogenerated and globally unique ID.
predefinedfeekey varchar(32) Foreign key to the entry int the predefinedFee table containing the predefined fee to be customized.



custompredefinedfeemapping

list of fees that should be applied at the disbursement time.
Column Name Data Type Description
custompredefinedfeekey varchar(32) The encoded of the predefined fee to be applied. Foreign key to custompredefinedfeekey table.
index int(11)
parentkey varchar(32) Link to the entity that caused the fee to be charged, for example, if the fee is incurred on disbursement, this will link to an entry in the disbursementdetails table.



custompreference

model used to maintain custom preferences for a user.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this set of preferences, this is an autogenerated and globally unique ID.
indexinlist int(11) 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
preferencetype varchar(32) Containing values for the opening columns in Trial Balance report.
preferenceviewtype varchar(32) Containing view that offer column preferences functionalities
usercustompreferences_encodedkey_own varchar(32) Foriegn key to link this entry to one in the userpreferences table.
value bit(1) If the column is displayed or not.



customrepaymentsettings

holds a link between a repayment and a type of settings which were customized by the user for the repayment.
Column Name Data Type Description
customsettings_encodedkey_own varchar(32)
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
loantransactionkey varchar(32) The key of the loan transaction which caused this custom settings
source varchar(32) The source of the settings (how the custom settings were created).
- USER_INPUT,
- INSTALLMENT_PAID
Required
type varchar(32) 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



customrepaymenttransactionsettings

records settings for a custom repayment type transaction.
Column Name Data Type Description
encodedkey varchar(32) A unique key.
installmentkey varchar(32) The key of the installment.
prepaymentrecalculationmethod varchar(256) one of:
- NO_RECALCULATION,
- RESCHEDULE_REMAINING_REPAYMENTS,
- RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS,
- RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT,
- RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT,
- REDUCE_AMOUNT_PER_INSTALLMENT,
- REDUCE_NUMBER_OF_INSTALLMENTS,
- REDUCE_NUMBER_OF_INSTALLMENTS_NEW.
repaymenttransactionkey varchar(32) Foreign key linking to an entry in the loantransaction 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.

read more about creating custom reports for our ui on our support page.
Column Name Data Type Description
creationdate datetime The date on which this report was created. As UTC.
description mediumtext A description of this report. This will show up to users when they view the report in the Mambu UI.
encodedkey varchar(32) The encoded key for this report, this is an autogenerated and globally unique ID.
filter varchar(256) Indicates the entity covered by this report. Can be one of BRANCH, SAVINGS_PRODUCT, LOAN_PRODUCT, CENTRE, OFFICER.
indicators mediumblob An array of indicators used in the report.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
name varchar(256) The name of the report.



customview

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.
Column Name Data Type Description
columnconfiguration_encodedkey_oid varchar(32) The columns used by the view
customconfigurationinfo_encodedkey_oid varchar(32) Holds view data like name, view type
encodedkey varchar(32) The encoded key for this view, this is an autogenerated and globally unique ID. This ID is used to call up this view in our UI.
filter_encodedkey_oid varchar(32) The custom filter used by the view
parentmenuitemkey varchar(32) The key of the custom menu item under which this custom view can be found. Required
viewmode varchar(255) The mode in which the custom view is shown:
- DETAIL
- LIST
Required
viewusagerightskey varchar(32) The usage rights that describes the view access to the Custom View. Required



customviewposition

maintains the index of a custom view.
Column Name Data Type Description
customviewspositions_encodedkey_own varchar(32) The encoded key of an entry in the userpreferences table to which these position settings belong.
encodedkey varchar(32) The ID of this entry.
favoritecustomviewspositions_encodedkey_own varchar(32)
index int(11) Index in list for the corresponding view.
parentkey varchar(32) The key of the parent entity relative to which the custom views ordering takes place. Currently, it represents the key of the parent CustomMenuItem or Dashboard for favorited custom views displayed in the dashboard.
viewkey varchar(32) The encoded key of the view from the customview table.



customviewpreferences

holds specific user preferences related to a custom view.
Column Name Data Type Description
customviewkey varchar(32) Foreign key pointing to an entry in the customview table which defines this view.
encodedkey varchar(32) A unique key for this row.
isfavorite bit(1) Whether or not this view has been marked as a favourite by the user.
userkey varchar(32) The encoded key of the user who has set these preferences.



dashboard

stores the user dashboard setting preferences.
Column Name Data Type Description
activitytypes mediumblob An array of activity types displayed on this dashboard.
createdbyuserkey varchar(32) Unique key of the user who created this dashboard. Foreign key pointing to an entry in the user table.
creationdate datetime The date on which this dashboard was created. UTC
encodedkey varchar(32) A unique key for this row.
filterloggedinuseractivities bit(1) Whether the dashboard activity widget diplays all activities or has been filtered.
filterloggedinuserfavoriteviewsdata bit(1) Whether there has been a filter applied to the favourite views widget on this dashboard.
filterloggedinuserindicators bit(1) Whether there is a filter applied to the indicators displayed on this dashboard.
indicators mediumblob An array of indicators displayed on this dashboard, for example, the number of active clients or gross loan portfolio.
lastmodifieddate datetime The date on which this dashboard was last edited. UTC



dashboardconfiguration

Column Name Data Type Description
creationdate datetime(6)
dashboardconfigurations_encodedkey_own varchar(32)
encodedkey varchar(32)
name varchar(256)



databasechangelog

this table acts as an audit log of changes made to the database schema. for more detailed information on changes check our release notes which are published in advance of any changes being made.
Column Name Data Type Description
author varchar(255) The database user who created the change.
comments varchar(255) Any comments relating to the changes made. In most cases our release notes will contain more information.
contexts varchar(255) Whether the changes are pre_migration or
dateexecuted datetime The date and time at which the change was made.
description varchar(255) Indicates what kind of change was made.
exectype varchar(10) Jobs are run pre_migration and post_migration. Post migration jobs are generally to check consistency of data once everything has been migrated to a new schema.
filename varchar(255) The file containing the script to execute and details of the changes.
id varchar(255) An id for reference.
labels varchar(255) This column is not used.
liquibase varchar(20) The liquibase version used to make the changes.
md5sum varchar(35) A hash used as a checksum.
orderexecuted int(11) An index starting at 1 and increasing by 1 for each time the database schema was changed.
tag varchar(255) Tags are sometimes used to provide additional



databasechangeloglock

Column Name Data Type Description
id int(11)
locked bit(1) Whether or not the DB is locked.
lockedby varchar(255)
lockgranted datetime



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.
Column Name Data Type Description
creationdate datetime The date on which this data import oeration was executed.
encodedkey varchar(32) The encoded key of this data migration event.
numcentresimported int(11) The number of centres imported as part of this operation.
numclientsimported int(11) The number of clients who were imported as part of this migration.
numglaccountsimported int(11) The number of general ledger accounts which were imported as part of this job.
numgroupsimported int(11) The number of groups which were imported in this operation.
numloanrepaymentsimported int(11) The number of loan reapayments which were imported as part of this job.
numloansimported int(11) The number of loan accounts which were imported as part of this operation.
numloantransactionsimported int(11) The number of loan transactions which were imported as part of this operation.
numsavingsimported int(11) The number of savings and deposit accounts which were imported during this job.
state varchar(256) The state of the data migration, indicates whether it is pending, has been successfully completed or failed. Can be DRAFT, APPROVED, or REVERTED.
type varchar(256) Whether this is an IMPORT or EXPORT data migration.



dbschemaupgradeprogress

this table tracks jobs relating to upgrading the mambu database. this generally happens when new versions of mambu are released.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this step
endsteptime datetime(3) The time at which the steo completed. UTC
failurereason varchar(3000) The reason in the case that the upgrade process failed.
releaseversion varchar(32) The mambu release version.
stepstarttime datetime(3) The time at which this step started. UTC
stepstatus varchar(256) The current status of this step. SUCCESS indicates the was step completed.
upgradestarttime datetime(3) The start time of the upgrade job that this step belongs to.
upgradestep varchar(256) Which stage of the upgrade this step was; PRE_MIGRATION, MIGRATION, POST_MIGRATION.



decimalintervalconstraints

holds for keeping decimal min/max/default constraints.
Column Name Data Type Description
defaultvalue decimal(50,20) The constraint default value
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
maxvalue decimal(50,20) The constraint maximum value
minvalue decimal(50,20) The constraint minimum value



disbursementdetails

entity class which holds the informations related to the disbursement details as disbursement date, first repayment date, disbursement fees.
Column Name Data Type Description
disbursementdate datetime The activation date, the date when the disbursement actually took place. Stored as Organization Time.
encodedkey varchar(32) The encoded key for this disbursement, this is an autogenerated and globally unique ID.
expecteddisbursementdate datetime The expected disbursement date of the account. Stored as Organization Time.
firstrepaymentdate datetime The date of the first repayment. Stored as Organization Time.
transactiondetailskey varchar(32) Foreign key to the transactionDetails table containing the details for the disbursement transaction.



document

represents a document stored in mambu. the actual document data is not stored here in the database but externally in a different file stored, refernced to by the location. the location path is not multi-tenant aware. so even though document may be stored as tenantid/folder/file.jpeg the location will refer to folder/file.jpg and it is up to the remote file retrieval system to retrieve the document
Column Name Data Type Description
createdbyuserkey varchar(32) The key of the user who created the document
creationdate datetime UTC date represents creation date for the document
description mediumtext Additional notes about the document
documentholderkey varchar(32) Who is the holder of this document, if null then no holder for the document
documentholdertype varchar(256) Type of the holder. Valid values:
- CLIENT
- GROUP
- LOAN_PRODUCT
- SAVINGS_PRODUCT
- CENTRE
- BRANCH
- USER
- LOAN_ACCOUNT
- DEPOSIT_ACCOUNT
encodedkey varchar(32) The encoded key for this document. This is an autogenerated and globally unique ID.
filesize bigint(20) Size of the file in bytes
id bigint(20) The id of the document
lastmodifieddate datetime UTC date represents last modification date for the document
location varchar(256) Location of the document where it can be found /a/b/cc.jpg
name varchar(256) Document name (provided)
originalfilename varchar(256) Specifies the filename
type varchar(256) Extension type of the document



documenttemplate

representing a document template which can be associated to an entity (ex: templates for savings or lending products).
Column Name Data Type Description
content mediumtext The actual template content as HTML.
creationdate datetime The date on which this template was first created.
encodedkey varchar(32) The encoded key for this document template. This
lastmodifieddate datetime The date on which this template was last modified. As UTC.
name varchar(255) The name of this template.
type varchar(32) Indicates what this template will be available for; TRANSACTION or ACCOUNT.



documenttemplatemapping

a list with templates associated to this product.
Column Name Data Type Description
index int(11) The index where multiple templates are associated to the same product.
parentkey varchar(32) The encoded key of a product which has assocated document templates.
templatekey varchar(32) The ID of a template.



duplicatefieldconstraint

stores a duplicate constraint which will be applied when saving entities.
Column Name Data Type Description
active bit(1) Whether or not this constraint is active.
datafield varchar(255) Indicates the field for which these constraints will be valid. For example for a client constraint, the field may be EMAIL_ADDRESS, MOBILE_PHONE_NUMBER
dataitemtype varchar(255) Indicates for which kind of entity these constraints are used, eg, CLIENT, IDENTIFICATION_DOCUMENT etc.
duplicateclientchecks_encodedkey_own varchar(32) Unique key of an entry in the generalsettings table for which these field constraints are used.
encodedkey varchar(32) A unique key for this row.
groupindex int(11) Indicates whether checks are related, for example the combination of a first name and last name or a last name and a birthday.
indexinlist int(11) Index for this row.



emailnotificationsettings

containing the credentials and settings for the email notifications.
Column Name Data Type Description
emailauthentificationmethod varchar(255) The authentication method used for this connection. AUTH_LOGIN for normal username and password authentication.
emailcredentialsprovider varchar(255) CUSTOM indicates that your instance will use their own custom email settings.
emailtransportencryptionmethod varchar(255) Indicates which method is used to encrypt communication between mambu and your email service provider. One of STARTTLS or SSL/TLS.
encodedkey varchar(32) The encoded key for these settings.
fromemail varchar(255) The email address which will appear as the sender for emails sent from your organization.
fromname varchar(255) The name which as appear as the sender for emails sent by your organization.
lastmodifieddate datetime The date on which these settings were last modified.
orgemailusedasfromaddress bit(1) If set to true then the email address set for your organization in the generalSettings table is to be used as the sender email address for emails sent by your organization.
password varchar(255) The password required to access the email service provider.
replaytoemail varchar(255) The email address which will appear in the reply to field for emails sent by your organization.
smtphost varchar(255) The url used to connect to the email service provider using smtp.
smtpport int(11) The post used to connect to the email service provider using smtp
username varchar(255) The username used to log in to the email service provider.



entityfeaturetoggle

Some features will be released to a small number of customers as part of a beta testing phase. This table holds information on such features and whether they have been enabled for a particular mambu instance and entity. If there is an entry in this table for a given entity, the feature toggle is on for that entity.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
entitykey varchar(32) The encoded key of the entity for which the toggle is put in place.
entitytype varchar(50) The type of entity for which the feature is available, for example LOAN_ACCOUNT, CLIENT or GROUP.
feature varchar(256) The feature in question.



exchangerate

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.
Column Name Data Type Description
buyrate decimal(50,20) The rate at which the organization accepts money (e.g. incoming repayments, deposits). Required
encodedkey varchar(32) The encoded key for this entry, this is an autogenerated and globally unique ID.
enddate datetime The date when the rate ended to be valid (as Organization Time).
fromcurrencycode varchar(3) The base currency used in the exchange rate. Required
sellrate decimal(50,20) The rate at which the organization gives money (e.g. disbursals, withdrawals). Required
startdate datetime the date when the rate starts to be used (as Organization Time). Required
tocurrencycode varchar(3) The target currency used in the exchange rate. Required
userkey varchar(32) The user who added the exchange rate.



failedattempt

holds login failed attempts
Column Name Data Type Description
count int(11) Consecutive failed attempts count
dates mediumblob Maintained in UTC. Stores dates of failed attempts.
encodedkey varchar(32) The encoded key for this failed attempt, this is an autogenerated and globally unique ID used to index this table.
type varchar(256) Indicates whether the login attempt was via USERNAME or an API Consumer key, which will have the value IP.
value varchar(255) Value to help identify the actor behind the failed attempt eg. the username if the login form was used



federatedauthenticationsettings

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. check our support page for more information oin using federated authentication with mambu.
Column Name Data Type Description
acsurl varchar(2048) An optional field for added ability to use proxies when using IdP with a dedicated environemnt. This will correlate the Response with the original AuthRequest.
certificate varchar(4096) The certificate from your identify provider.
certificateexpirydate datetime(6) The date on which the certificate is set to expire.
creationdate datetime(6) The date on which these settings were first created.
enablesinglelogout bit(1) Whether Single Log Out is enabled, meaning that when a user logs out of one service, they are logged out of all services.
encodedkey varchar(32) The encoded key for these settings. A unique ID
federationstate varchar(256) Whether federated authentiation is ACTIVE or INACTIVE for this Mambu instance.
federationusage varchar(256) Identifies the type of federation (for REGULAR or support users).
idpissuerid varchar(2048) The issuer ID from your identity provider.
idplogouturl varchar(2048) The URL for intitiating a single logout request. This field should not be changed.
lastmodifieddate datetime(6) The date on which this row was last modified. As UTC.
name varchar(256) The name for this connection to an identity provider.
setup varchar(256) Specifies the setup type for the configuration of the federated 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 varchar(2048) The Single Sign-on Endpoint from your identity provider.



fieldchangeitem

a field change log which is associated with an activity. it stores the name of the changed field, the original and the new value of the field.
Column Name Data Type Description
fieldchangename varchar(256)
fieldchanges_encodedkey_own varchar(32) The encodedkey for a row in the activities table where this change was recorded.
fieldchanges_integer_idx int(11)
fielddetailkey varchar(32)
fielddetailname varchar(256)
id bigint(20)
newvalue mediumtext The new value of the field.
originalvalue mediumtext The original value of the field.



fieldcolumn

entity for storing a datafield column into the database.
Column Name Data Type Description
customfieldkey varchar(32) If this row is relating to a custom field then this will hold the unique key of that custom field in the customfield table.
datafield varchar(255) Field containing the information for this custom field. For example, for a group custom field this could be NUMBER_OF_MEMBERS or CREDIT_OFFER_NAME.
dataitemtype varchar(255) Indicates the type of entity the configuration relates to, for example CLIENT, GROUP, LOANS, SAVINGS, TRANSACTION, …
encodedkey varchar(32) A unique key for this row.
fieldcolumns_encodedkey_own varchar(32) Points to an entry in the columnconfiguration table containing some settings for this column.
fieldcolumns_integer_idx int(11) Index if there is more than one row in this column relating to the same entry in the columnconfiguration table.



generalsettings

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.
Column Name Data Type Description
accountingcutofftime varchar(256) The cutoff time for daily accounting if one has been configured in Administration > Financial Setup > EOD Processing
approvaldisbursaltwomanruleenabled bit(1) If there are required separate users for approvals and disbursals
arrearsdaysbeforewriteooff int(11) Number of days that are required before an account can be written off.
assignmentconstraints mediumblob List of required assignments for Clients and Groups
automatedaccountingclosuresinterval int(11) The interval (number of days) between the execution of automated accounting closures. If this number is 0, no automated closure is performed. Required.
clientidformat varchar(256) Pattern for generating client ids (uses letter & digit symbols as defined in IDGenerator)
dateformats mediumblob The possible values the type of a date format can take (DATE_FORMAT or DATE_TIME_FORMAT) together with the format of the date (eg. “dd-MM-yyyy”)
decimalseperator varchar(256) Whether numbers are interpreted such as "$10.20" or "$10,20" to mean 10 dollars and 20 cents.
- COMMA
- DECIMAL
defaultclientrolekey varchar(32) Specifies the organization default client role of the current tenant.
defaultclientstate varchar(256) The state that a client is set when first created
- PENDING_APPROVAL
- INACTIVE
- ACTIVE
- EXITED
- BLACKLISTED
- REJECTED
defaultgrouprolekey varchar(32) Specifies the organization default group role of the current tenant.
defaultlineofcreditstate varchar(256) The state that a line of credit is set when it’s first created
- PENDING_APPROVAL
- APPROVED
- ACTIVE
- CLOSED
- WITHDRAWN
- REJECTED
defaulttransactionchannelkey varchar(32) Specifies the default transaction channel of the current tenant
duplicateclientconstraintaction varchar(255) Action to be taken when the duplicate client validation fails
- NONE
- WARNING
- ERROR
enabledcomponents mediumblob The list of all the enabled components for the current tenant
- LOANS
- DEPOSITS
- BRANCHES
- CENTRES
- CLIENTS
- GROUPS
- ACCOUNTING
- CREDIT_OFFICERS
encodedkey varchar(32) A unique key for this row.
eodprocessingmethod varchar(256) Specifies EOD processing settings whether is automatic, runs every midnight or manual, runs when the client initiates the action from the interface.
- AUTOMATIC
- MANUAL
exposureamount decimal(50,10) How much (number value) a client can have in outstanding loans with the organization at any time.
exposuretype varchar(256) How much a client can have in outstanding loans with the organization at any time.
- UNLIMITED
- SUM_OF_LOANS
- SUM_OF_LOANS_MINUS_SAVINGS
groupidformat varchar(256) Pattern for generating group ids (uses letter & digit symbols as defined in IDGenerator)
groupsizelimittype varchar(256) Group size limitation type
interbranchtransferglaccountkey varchar(32) The key of the GL Account which will be used for inter-branch transfers.
lineofcreditidformat varchar(32) Pattern for generating line of credit ids (uses letter & digit symbols as defined in IDGenerator)
maxallowediddocumentattachments int(11) The maximum number of identification documents which can be attached to an entity.
maxallowedjournalentrydocumentattachments int(11) The maximum number of attachments for a journal entry. Required.
maxallowedundoclosureperiod int(11) Maximum of days we allow users to undo of close obligations met for a loan account. Required.
maxgroupsizelimit int(11) Maximum group size allowed; null values causes ignoring of the limit.
mingroupsizelimit int(11) Minimum group size allowed; null values causes ignoring of the limit.
multiplegroupmemberships varchar(256) Constraint on whether clients can belong to more than one group or not.
- UNLIMITED
- ONE_GROUP
multipleloans varchar(256) Shows if multiple loans are allowed or not:
- UNLIMITED
- ONE_LOAN
otheriddocumentsenabled bit(1) Whether the other id documents are enabled or not
overdraftinteresteodbalancedate datetime The format for displaying dates and times.
tillidformat varchar(256) Pattern for generating till ids (uses letter & digit symbols as defined in IDGenerator)



glaccount

for organizations with accounting enabling, this represents the general ledger account
Column Name Data Type Description
activated bit(1) Whether the account is activated and may be used. Required
allowmanualjournalentries bit(1) Whether the gl account accepts journal entries logged manually. The default value is true.
creationdate datetime The date on which the GL account was created. UTC
currencycode varchar(3) Foreign key to a the Currency table.
description mediumtext Detailed (text) description of the gl account
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the generalsettings, glaccountingrule, gljournalentriessummary, gljournalentry and interbranchtransferrule tables.
glcode varchar(32) Unique general ledger code for this account. Required
lastmodifieddate datetime The date on which the GL was last modified. UTC
migrationeventkey varchar(32) 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)
name varchar(256) The name of the GL account. Required
striptrailingzeros bit(1) Whether the trailing zeros should be stripped or not when computing accounting reports for Header GL Accounts.
type varchar(256) Type of GL Account. Must be one of:
- ASSET
- LIABILITY
- EQUITY
- INCOME
- EXPENSE
Required
usage varchar(256) 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



glaccountingrule

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.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
financialresource varchar(256) The financial resource associated with this rule.
glaccountkey varchar(32) The account that is mapped to the financialResource.
index int(11) Used for ordering of the product rules when they make part from a list.
predefinedfeekey varchar(32) The key of the predefined fee that uses this rule. If this field is null, this rule is not used by a predefined fee.
productkey varchar(32) Product key associated with this product rule.
producttype varchar(256) Product type (eg: loan or savings) that is being referred to by the product key:
- LOAN
- SAVINGS
transactionchannelkey varchar(32) The key of the transaction rule that uses this rule.



glaccountsclosure

an accounts closure is used to limit backdating of accounting operations. it simulates the accounting action of "book closing".
Column Name Data Type Description
branchkey varchar(32) The branch for which the accounts were closed.
closuredate datetime The date on which the closure was performed. UTC
createdbyuserkey varchar(32) The ID of the user who initiated this closure.
creationdate datetime The date on which this closure was first performed. UTC
encodedkey varchar(32) The encoded key for this database entry.
lastmodifieddate datetime The date on which this closure was last modified. Generally the notes can only be modified after a closure has been performed.
notes varchar(256) Notes entered about the closure.
trigger varchar(256) Indicates whether the closure was MANUAL or AUTOMATIC.



gljournalentriessummary

keeps the last states of a bucket of gljournalentry unique identified by a branch, glaccount and a product.
Column Name Data Type Description
balance decimal(50,10) The balance of this journal entries summary
branchkey varchar(32) The key of the assigned branch for this journal entries summary
creationdate datetime UTC date for the creation time
encodedkey varchar(32) The encoded key for this database entry.
entrydate datetime The date for which the summary was generated (as Organization Time)
glaccountkey varchar(32) The key of the assigned gl account for this journal entries summary
type varchar(256) The type of the snapshot CREDIT or DEBIT



gljournalentry

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.
Column Name Data Type Description
accountkey varchar(32) 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
amount decimal(50,10) Amount which was debited or credited. Required
assignedbranchkey varchar(32) Foreign key of the branch where this journal entry was logged for.
creationdate datetime Date stamp of when the transaction occured. For instance this may 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
encodedkey varchar(32) The encoded key for this GL journal entry.
bookingDate datetime The date and time when an entry is posted to an account on the account servicer's accounting books. As Organization Time. Required
entryid bigint(20) A unique auto-increment id for the gl journal entry. Required
glaccount_encodedkey_oid varchar(32) Foreign key to the GLAccount which was debited or credit as part of this transaction. Required.
notes varchar(256) Optional notes entered by the user when they logged the entry
productkey varchar(32) The Product associated with this journal entry.
producttype varchar(256) The product/account type which the accountKey is referring to. Must be one of:
- LOAN
- SAVINGS
reversalentrykey varchar(32) 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.
transactionid varchar(32) 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.
type varchar(256) The entry type of the Journal Entry, DEBIT or CREDIT.
userkey varchar(32) Foreign key to the User who performed the journal entry (or the transaction which lead to the automatic journal entry).



gljournalentryforeignamount

stores foreign currency amount for gl journal entries.
Column Name Data Type Description
accountingratekey varchar(32) The encoded key of the exchange rate between this foreign currency and the organization base currency.
amount decimal(50,10) The amount in the currency specified in the currencyCode field.
currencycode varchar(3) the ISO currency code of this journal entry.
encodedkey varchar(32) The encoded key for this database entry.
gljournalentrykey varchar(32) The GL journal entry that this currency conversion relates to.



gljournalentryinterestaccruallog

entity directly linked to a gljournalentry used to keep track of some journal entries.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
interestaccruedaccountingmethod varchar(255) Indicates whether CASH or ACCRUAL accounting was used.
lastexecutiondate datetime The date on which interest was last accrued. UTC
producttype varchar(255) The product type that this accrual relates to. Can be either SAVINGS or LOAN.
transactionid varchar(255) The ID of the transaction.



gljournalentryreconciliation

A technical table which may be used when discrepancies are noticed in general ledger journal entries and need to be manually reconciled.
Column Name Data Type Description
accountingratekey varchar(32) Encoded key of an entry in the accountingrate table containing details of the exchange rate if the journal entry is in a different currency to the base currency.
accountkey varchar(32) 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
amount decimal(50,10) Amount which was debited or credited. Required
assignedbranchkey varchar(32) Foreign key of the branch where this journal entry was logged for.
creationdate datetime Date stamp of when the transaction occured. For instance this may 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
encodedkey varchar(32) The encoded key for this GL journal entry.
entrydate datetime Date/time stamp when the entry was recorded. As Organization Time. Required
entryid bigint(20) A unique auto-increment id for the gl journal entry. Required
foreignamount decimal(50,10) The amount if the currency is different to the base currency.
foreigncurrencycode varchar(3) The currency code if the amount is in a currency other than the base currency.
glaccount_encodedkey_oid varchar(32) Foreign key to the GLAccount which was debited or credit as part of this transaction. Required.
id bigint(20)
notes varchar(256) Optional notes entered by the user when they logged the entry
originalencodedkey varchar(32) The unique key of the original journal entry.
processedflag int(1) Whether the current journal entry has been processed.
productkey varchar(32) The Product associated with this journal entry.
producttype varchar(256) The product/account type which the accountKey is referring to. Must be one of:
- LOAN
- SAVINGS
reconciliationnotes varchar(256) Any relevant notes added during the reconciliation process.
reversalentrykey varchar(32) 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.
transactionid varchar(32) 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.
type varchar(256) The entry type of the Journal Entry, DEBIT or CREDIT.
userkey varchar(32) Foreign key to the User who performed the journal entry (or the transaction which lead to the automatic journal entry).



group

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
Column Name Data Type Description
assignedbranchkey varchar(32) Foreign key to the Branch table indicating which branch the client belongs to
assignedcentrekey varchar(32) Foreign key to the Centre table indicating to which centre the group belongs to.
assigneduserkey varchar(32) Foreign key to the Users table indicating who the the user assigned to the client is (ie: which credit officer is responsible for them)
clientrolekey varchar(32) The key of the role this group belongs to
creationdate datetime The date on which this group was first created.
emailaddress varchar(256) The email address of the group.
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to get details on or update a specific group.
groupname varchar(256) Name of the group. Required
homephone varchar(256) The home phone number of the group.
id varchar(32) Unique id for the group. Automatically generated by Mambu when groups are stored. Required
lastmodifieddate datetime The date on which this data relating to this group was last modified.
loancycle int(11) For group which receive loans, this is the current cycle of the group loan
migrationeventkey varchar(32) 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 varchar(256) The mobile phone number of the group.
notes mediumtext HTML-formatted notes about the group
preferredlanguage varchar(32) The language preference for this group. Must be one of ENGLISH, PORTUGUESE, RUSSIAN, SPANISH, FRENCH, CHINESE, GEORGIAN, INDONESIAN, ROMANIAN, BURMESE, GERMAN.



groupcustomvalue

Holds values for custom information for groups. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



groupmember

represents a join table between a group and it’s members. connects the clients & groups tables togethers
Column Name Data Type Description
clientkey varchar(32) Foreign key to the Client which this relationship describes. Required
creationdate datetime The date on which the client was first set as a member of this group.
encodedkey varchar(32) The encoded key for this database entry.
groupkey varchar(32) Foreign key to the Group which this relationship describes. Required
indexinlist int(11) Order of the client in the group clients list. That is, 0 is displayed before 1, etc.



grouprole

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.
Column Name Data Type Description
clientkey varchar(32) Foreign key to the Client which this relationship describes. Required
encodedkey varchar(32) The encoded key for this database entry.
groupkey varchar(32) Foreign key to the Group which this relationship describes. Required
grouprolenamekey varchar(32) Foreign key to the GroupRoleName which this relationship describes. Required
indexinlist int(11) Indicates which position in the list of group roles this Role will occupy.



grouprolename

entity holding role names for a group. example: secretary, president, etc. referred to by the grouprole table.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
name varchar(256) The name of the group role



guaranty

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 organization using mambu or not) or based on a value the client holds (an asset/collateral)
Column Name Data Type Description
amount decimal(50,10) The amount used by the client for the guaranty
assetname varchar(256) The name of a value the client guarantees with (populated when the guaranty type is ASSET)
discriminator varchar(32)
encodedkey varchar(32) A unique key for this row.
funds_encodedkey_own varchar(32) The unique key of an entry in the loanaccount table for which this guaranty has been provided when this guaranty is used as a funding source for the account.
funds_integer_idx int(11) Index if there is more than one guaranty for the same loan account.
guarantees_encodedkey_own varchar(32) The unique key of an entry in the loanaccount table for which this guaranty has been provided.
guarantees_integer_idx int(11) Index if there is more than one guaranty for the same loan account.
guarantorkey varchar(32) The key of the client used as the guarantor (populated when the guaranty type is GUARANTOR)
guarantortype varchar(255) The type of the guarantor (CLIENT or GROUP)
id varchar(32) Investor fund identifier. All versions of an investor fund will have same id.
interestcommission decimal(50,20) The Interest commission that is used for funds.
investmentpercentage decimal(50,20) The investment percentage to be considered for collection of amounts upon repayment for this investor fund
savingsaccountkey varchar(32) The key of the savings account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null
state varchar(255) 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 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.
type varchar(256) 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
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)



guarantycustomvalue

Holds values for custom information for loan guarantees. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



holiday

stores details about user-defined holidays which affect things like repayment scheduling.
Column Name Data Type Description
branchholidays_encodedkey_own varchar(32) If this holiday applies to one branch only this field will contain that branch’s encoded key.
branchholidays_integer_idx int(11) The number in the list of holidays applying only to a single branch. The first will be 0, the second 1 and so on. If a holiday is general and does not only apply to one specific branch this index will be -1.
creationdate datetime The time at which this holiday was added to the system.
dayofmonth int(11) The day of the month on which this holiday falls.
encodedkey varchar(32) The encoded key for this holiday.
generalholidays_encodedkey_own varchar(32) If this holiday applies to all branches this is the encoded key of the general settings for the organization.
generalholidays_integer_idx int(11) The index in the list of general holidays. The first will have index 0, the second 1 and so on. If a holiday is not general and instead only applies to a specific branch, its index will be -1.
isannualyrecurring bit(1) Whether or not this is a yearly repeating holiday.
keyid bigint(20) An internal ID stored for portability reasons.
monthofyear int(11) The month on which this holiday falls as integer, ie. 1 is January, 7 is July.
name varchar(256) The name of this holiday.
year int(11) The year on which this holiday falls.



identificationdocument

stores identification documents associated with individual clients. a client may have an number of identification documents
Column Name Data Type Description
clientkey varchar(32) Foreign key to Client to which this identification document belongs to. Required.
documentid varchar(256) The document id such as the Passport # (“ABC123”)
documenttype varchar(256) Type of document: eg: Passport
encodedkey varchar(32) The encoded key for this document, this is an autogenerated and globally unique ID.
identificationdocumenttemplatekey varchar(32) Points to the entry in the identificationdocumenttemplate table that corresponds to this ID; ie. if this document is a passport, it will point to the template for passports.
indexinlist int(11) Order of the ID document if the parent holder has multiple documents (for display/formatting purposes). That is, 0 is displayed before 1, etc.
issuingauthority varchar(256) Who issued this document (Such as “Government”)
validuntil datetime Expiry date of the document (Organization Time)



identificationdocumenttemplate

represents a template for identification documents, which defines default document type, issuing authority and adds a constraint to the identification document id.
Column Name Data Type Description
allowattachments bit(1) Whether this template allow files to be attached or not.
documentidtemplate varchar(256) The document id template constraint, that contains letters (@) and digits (#) symbols used to validate the id and can also contain any other static character.
documenttype varchar(256) Type of document: eg: Passport.
encodedkey varchar(32) The encoded key for this template, this is an autogenerated and globally unique ID.
issuingauthority varchar(256) Who issued this document (Such as “Government”).
mandatoryforclients bit(1) Whether this template it’s mandatory for all the clients or not.



image

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.
Column Name Data Type Description
creationdate datetime UTC creation date
description mediumtext Description of the image contents
encodedkey varchar(32) The encoded key for this image, this is an autogenerated and globally unique ID.
largeimage mediumblob Image data up to 750px in the longest dimension. Required
largeimagelocation varchar(256) The location of large images, which may be held in a service such as Amazon Web Services S3 or Google Cloud Platform equivalent if the file size is particularly large.
lastmodifieddate datetime Last modified date. As UTC
mediumimage mediumblob Image data up to 300px in the longest dimensionRequired
mediumimagelocation varchar(256) The location of medium sized images, which may be held in a service such as Amazon Web Services S3 or Google Cloud Platform equivalent if the file size is particularly large.
smallthumbnail mediumblob Image data exactly 50px by 50px in sizeRequired
smallthumbnaillocation varchar(256) The location of image thumbnails, which may be held in a service such as Amazon Web Services S3 or Google Cloud Platform equivalent if the file size is particularly large.
tinythumbnail mediumblob Image data exactly 32px by 32px in size. Required
tinythumbnaillocation varchar(256) The location of tiny thumbnail images, which may be held in a service such as Amazon Web Services S3 or Google Cloud Platform equivalent if the file size is particularly large.
title varchar(256) Name of the image
type varchar(256) Type of the image. May be one of: ‘png’, ‘jpeg’, ‘gif’, etc. Required



importedreport

more complex reports can be created via jaspersoft studio and imported into mambu. this table contains information on such reports.
Column Name Data Type Description
accessiblebyallusers bit(1) Indicates whether all users can access this report.
createdbyuserkey varchar(32) Encoded key of the user who imported this report.
creationdate datetime Date on which this report was first imported.
dataitemtype varchar(256) The type of Mambu entity that is reported on, for example LOAN_ACCOUNT, SAVINGS_TRANSACTION or CLIENT.
description mediumtext A description of the report that has been provided as HTML.
encodedkey varchar(32) The encoded key of this imported report used as the primary key for this table.
index int(11)
lastmodifieddate datetime The date on which this report was last modified. As UTC.
name varchar(256) The name of the report.
productkey varchar(32) If the report relates to a specific loan or deposit product the encoded key of that product will be linked here.
reportfile mediumblob The actual jrxml file containing this Jaspersoft Studio report.
rolekeys mediumblob The list of roles who have been granted permission to view this report.
type varchar(256) The type of report, eg. JASPER for a report created with Jaspersoft Studio.



importedreportcode

Column Name Data Type Description
codeexpressions mediumtext
encodedkey varchar(32) A unique key.
importedreportkey varchar(32)
jasperlanguages varchar(256)
name varchar(256)
sqlstatements mediumtext



indexrate

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.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this index rate, this is an autogenerated and globally unique ID.
indexinterestratesource_encodedkey_oid varchar(32) The encodedkey of the entry in the indexratesource table which serves as teh soruce for this index rate.
notes mediumtext Comments
rate decimal(50,10) The value of the index interest rate
startdate datetime The date from when this index should be used (Organization Time)
userkey varchar(32) The key of the user who added this index interest rate



indexratesource

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.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this source, this is an autogenerated and globally unique ID and can be used with our API to get details on a specific Index Rate Source. This ID is also used as a foreign key in a number of other tables including the loanproduct, savingsaccount, interesrate and interestproductsettings tables.
name varchar(256) Name of the rate source
notes mediumtext Comments
type varchar(256) 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)



interbranchtransferrule

class for associating inter branch gl accounts. the relation between the branches is bidirectional, depending on the actual accounting action.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
glaccountkey varchar(32) The general ledger account
leftbranchkey varchar(32) Returns the encoded key of the left branch. A value of null means ‘Unassigned’.
rightbranchkey varchar(32) Returns the encoded key of the right branch. A value of null means ‘Unassigned’.



interestaccountsettings

class for all the entities grouping settings related to how is the interest accrued and applied
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this set of settings, this is an autogenerated and globally unique ID.
interestrate decimal(50,20) The rate based on which the interest is accrued and applied for accounts with fixed interest rate
interestspread decimal(50,20) The rate based on which the interest is accrued and applied for accounts with index interest rate



interestbasesettings

base class for all the entities grouping settings related to how is the interest accrued and applied
Column Name Data Type Description
accrueinterestaftermaturity bit(1) If the product support this option, specify if the interest should be accrued after the account maturity date.
encodedkey varchar(32) The encoded key for this set of settings, this is an autogenerated and globally unique ID.
interestchargefrequency varchar(255) The interval used for determining how often is interest charged (e.g. x [weeks])
interestchargefrequencycount int(11) The count of units to apply over the interval (e.g. [x] weeks)
interestratereviewcount int(11) Interest rate review frequency unit count
interestratereviewunit varchar(255) Interest rate review frequency measurement unit
interestratesource varchar(255) Interest calculation method: fixed or (interest spread + active organization index interest rate)
interestrateterms varchar(256) The option for how is the interest rate determined when being accrued for an account. Required



interestproductsettings

base class for all the entities grouping settings related to how is the interest accrued and applied
Column Name Data Type Description
allownegativeinterestrate tinyint(1) Whether the interest rate for this product is allowed to go into negative.
compoundingfrequency varchar(32) How often interest compounds for this product.
defaultinterestrate decimal(50,20) Default interest rate(for fixed interest rate)/spread(for index interest rate) used by the product
encodedkey varchar(32) The encoded key for this set of settings, this is an autogenerated and globally unique ID.
indexsourcekey varchar(32) Index rate source key for the product
interestrateceilingvalue decimal(50,20) Interest spread + index interest rate can’t be more than this amount (valid only for index interest rate products)
interestratefloorvalue decimal(50,20) Interest spread + index interest rate can’t be less than this amount (valid only for index interest rate products)
maxinterestrate decimal(50,20) Maximum interest rate(for fixed interest rate)/spread(for index interest rate) used by the product
mininterestrate decimal(50,20) Minimum interest rate(for fixed interest rate)/spread(for index interest rate) used by the product



interestratechanges

table which stores interest rate changes on deposit accounts with fixed rate terms.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
endingday int(11) The day on which this interest rate stopped applying.
interestaccountsettingskey varchar(32) The encodedkey of an entry in the interestaccountsettings table containing the settings for the deposit account whose interest rate changed.
interestrate decimal(50,20) The value of the interest rate.



interestratetier

useful for tiered interest rates, holds the values to define how is the interest computed for one of this steps.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this interest rate tier.
endingbalance decimal(50,10) The top-limit value for the account balance in order to determine if this tier is used or not
endingday int(11) The top-limit value for the account period since activation in order to determine if this tier is used or not
index int(11) The index of the interest rate tier.
interestrate decimal(50,20) The rate used for computing the interest for an account which has the balance less than the ending balance
interestratetiers_encodedkey_own varchar(32) Foreign key to an entry in the interestbasesettings table which used this tier.
interestratetiers_integer_idx int(11) The index for this tier, ie. the first tier will be 0, the second 1 and so on.



lineofcredit

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.
Column Name Data Type Description
amount decimal(50,10) The amount that client can be exposed to.
approveddate datetime The date when the line of credit was approved if the LOC wasn’t approved yet. Stored as Organization Time. Nullable
clientkey varchar(32) The key of the client associated with the line of credit
closeddate datetime The date when the line of credit was closed (Organization Time)
creationdate datetime Creation date UTC
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
expiredate datetime Expire date of this line of credit; after this date no other loans/overdrafts (Organization Time)
exposurelimittype varchar(256) The calculation method for exposure limit:
- APPROVED_AMOUNT
- OUTSTANDING_AMOUNT
groupkey varchar(32) The key of the group associated with the line of credit
id varchar(32) 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
lastmodifieddate datetime The date when the line of credit was modified - UTC
notes mediumtext Comments
startdate datetime The line of credit start date(UTC) - it must not be null. Represents the starting date from which the line of credit becomes active
state varchar(256) The state of the line of credit:
- PENDING_APPROVAL
- APPROVED
- ACTIVE
- CLOSED
substate varchar(256) The sub state of the Line of Credit
- WITHDRAWN
- REJECTED



lineofcreditcustomvalue

Holds values for custom information for lines of credit, also referred to as credit arrangements. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



livemigrationprocess

An internal table to track the status of various jobs which will be carried out as part of the release process for new features, for example, when new fields are added to entities, new methods of interest calculation are added or a feature was enabled for your Mambu instance.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
enddate datetime The time at which the process was completed in UTC.
iscleanupdone bit(1) Whether the cleanup process was completed successfully after the migration was completed.
numfailedentities bigint(20) The number of entities for which the migration process failed for any reason.
numsuccessfulentities bigint(20) The number of entities which were successfully processed as part of this migration.
startdate datetime The date and time, in UTC, at which this process was started. Generally, this will be the rollout date and time of the version containing the feature mentioned in the type field.
type varchar(128) A human readable name for this process.



loanaccount

stores a loan account or a loan application (which is just a loan account which is not yet active). a loan account always belongs to a client or group and must be of a certain loan product type. loan accounts store the detailed breakdown of the amounts due & paid. this is redundant and must match with the amounts for all the repayments for the accounts. like clients and groups, loan accounts are also assigned to users (credit officers) and branches.
Column Name Data Type Description
accountarrearssettingskey varchar(32) Arrears settings available for the current account.
accountholderkey varchar(32) Foreign key reference to the Client or Group which is holding on this account. Required
accountholdertype varchar(256) The type of account holder this group has. Must be one of the following:
- CLIENT
- GROUP
and direct to the key referred to by accountHolderKey
Required
accounts_integer_idx int(11)
accountstate varchar(256) The current state of the loan account. Must be one of the following:
- PARTIAL_APPLICATION - account has not yet been approved and is pending more information (in draft form)
- PENDING_APPROVAL - account is ready to be approved by users with permission to do so
- APPROVED - account has been approved and is now ready to be disbursed to the client
- ACTIVE - account has been been disbursed and is now active and in good standing
- ACTIVE_IN_ARREARS - the account has been disbursed and is active but is in arrears (e.g.: has repayments which are late)
- CLOSED - the account is no longer active (see accountSubState field for sub-states)
- CLOSED_WRITTEN_OFF - Account has been closed and any remaining balance due has been written off
- CLOSED_REJECTED - Account has gone through the application process and has been rejected
Required
accountsubstate varchar(256) 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.
- REPAID - Related to the CLOSED state; the account was closed after the account was fully repaid.
- LOCKED - Related to ACTIVE or ACTIVE_IN_ARREARS states; the account is locked and may not be used further unless unlocked, in this state; no amount is automatically applied to the account, ie. no automatic interest is applied, fees, penalties or transfer transactions logged; interest is accrued; rate change transactions are logged.
- LOCKED_CAPPING - Related to ACTIVE_IN_ARREARS state; an account will be set to this substate when it is in arrears and the total owed for interest, fees and penalties has exceeded the threshold allowed by your organization’s risk settings. Please see our article on internal controls for more information on managing thresholds and what is and is not possible when an account is in this substate.
accruedinterest decimal(50,10) How much interest has accrued to the account but is not yet posted
accruedpenalty decimal(50,10) Specifies the amount of penalty that has been accrued in the account
accrueinterestaftermaturity bit(1) If the product support this option, specify if the interest should be accrued after the account maturity date
accruelateinterest bit(1) Indicates whether the option to continue to accrue interest after the repayment date for late payments. See our support article for more information on this subject.
activationtransactionkey varchar(32) The key of the transaction that activated this account
allowoffset bit(1) Specify if the account is allowing offset links
applyinterestonprepaymentmethod varchar(256) Apply interest on prepayment method copied from loan product on which this account is based.
approveddate datetime The date when the loan account has been approved. Stored as Organization Time.
arrearstoleranceperiod int(11) The tolerance period, in days, before an account will be marked as being arrears.
assignedbranchkey varchar(32) Foreign key to the Branch that this account is assigned to
assignedcentrekey varchar(32) Foreign key to the Centre table indicating to which centre the loan account belongs to.
assigneduserkey varchar(32) Foreign key to the User (Credit Officer) who is assigned to his account
closeddate datetime Date when the account was closed or null if never closed (OrganizationTime)
creationdate datetime The date when the account was created. Stored as UTC
defaultfirstrepaymentduedateoffset decimal(50,20) The amount of days which will be automatically added to the first repayment date. So if, for example, this number is 5 and repayments should be made on the 1st of the month, the first repayment will instead be scheduled for the 5th.
disbursementdetailskey varchar(32) The key of an entry in the disbursementdetails table containing information about the disbursement of this loan account.
elementsrecalculationmethod varchar(256) the method by which individual elements will be recalculated
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to get details for or update a specific Loan Account. This field should not be changed as it is used as a foreign key to link with other tables.
feesbalance decimal(50,10) How much fees are still due on the account (relevant for fixed accounts only)
feesdue decimal(50,10) The total fees due for this loan account. Required
feespaid decimal(50,10) The total fees paid for this loan account. Required
fixeddaysofmonth mediumblob Specifies the days of the month when the repayment due dates should be. Only available if the Repayment methodology is FIXED_DAYS_OF_MONTH
futurepaymentsacceptance varchar(256) Whether or not a customer can pay in advance. Will be one of ACCEPT_OVERPAYMENTS or NO_FUTURE_PAYMENTS.
graceperiod int(11) Grace period for the loan account in the number of installments. Ignored if grace period is none or null.
graceperiodtype varchar(256)
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
hascustomschedule bit(1) Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due
holdbalance decimal(50,10) The amount currently being held for pending card transactions. See our support page for more information.
id varchar(32) Unique ID of the loan account. Required
interestapplicationmethod varchar(256) 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 be applied manually: behind the scenes, when performing a repayment or explicitly by using the UI function available for this.
interestbalance decimal(50,10) The total interest currently owed and outstanding for the client (total interest accrued for account - interest paid)
interestbalancecalculationmethod varchar(32) Option which determines the way the balance for the account’s interest is computed.
interestcalculationmethod varchar(256) 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
interestchargefrequency varchar(256) 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)
- EVERY_DAY - interest calculate every day (365/yr)
Required
interestcommission decimal(50,20) The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled.
interestdue decimal(50,10) How much interest it’s due for the account at this moment. Required
interestfromarrearsaccrued decimal(50,10) The amount of interest from arrears that has been accrued in the account
interestfromarrearsbalance decimal(50,10) the total interest from arrears which is currently owed and outstanding for this account, (total interest from arrears due - interest from arrears paid)
interestfromarrearsdue decimal(50,10) how much interest from arrears is due for the account at this moment
interestfromarrearspaid decimal(50,10) total interest from arrears paid into the account
interestpaid decimal(50,10) The total interest paid for this loan account. Required
interestrate decimal(50,20) The interest rate for the loan account. See the charge frequency for how it is used. Required
interestratereviewcount int(11) Indicates how often the index rate for this account should be reviewed in the units specified in the interestratereviewunit column.
interestratereviewunit varchar(256) The unit (DAYS, WEEKS, MONTHS`) indicating how often the index rate should be checked.
interestratesource varchar(256) Whether the account uses a default FIXED_INTEREST_RATE or is linked to an INDEX_INTEREST_RATE
interestroundingversion varchar(256) Holds the possible values for the version of the algorithm used for applying rounding on the loan accounts interest values:
- VERSION_1
- VERSION_2
- VERSION_3
interestspread decimal(50,10) Interest to be added to active organization index interest rate in order to find out actual interest rate
interesttype varchar(255) 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
lastaccountappraisaldate datetime When/if the account had last been evaluated for interest, principal, fees and penalties calculations (UTC)
lastinterestapplieddate datetime Last date when interest was applied (posted) to the account (Organization Time)
lastinterestreviewdate datetime The date on which the last review was carried out for accounts using an index interest rate.
lastlockeddate datetime Date when the account was set for the last time in the LOCKED sub-state. If null, the account is not locked anymore or it was never locked (OrganizationTime).
lastmodifieddate datetime The date when the account was modified the last time. Stored as UTC.
lastsettoarrearsdate datetime Date when the account was last set to In Arrears standing or null ifnever set (Organization Time)
lasttaxratereviewdate datetime When/if the account had last tax rate checked (as Organization Time)
latepaymentsrecalculationmethod varchar(256) Method used by loan accounts to have the schedule recalculated when late payments are posted on declining balance equal installments accounts: LAST_INSTALLMENT_INCREASE - 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) and OVERDUE_INSTALLMENTS_INCREASE - this option will recalculate all the next installments, in order to keep the same total expected on the installments.
lineofcreditkey varchar(32) The key to the line of credit where this account is registered
loanamount decimal(50,10) The original loan amount given out to the client. Required
loangroup_encodedkey_oid varchar(32) The loan group this account belongs to (if part of a hybrid loan account or null otherwise).
loanname varchar(256) Display name of the loan account. Often just the same as the product name. Required.
loanpenaltycalculationmethod varchar(256) Specifies on what amount are the penalties calculated (Eg. OVERDUE_BALANCE, OVERDUE_BALANCE_AND_INTEREST)
lockedoperations mediumblob A list with operations which are locked when the account is in LOCKED sub-state:
- APPLY_INTEREST
- APPLY_FEES
- APPLY_PENALTIES
migrationeventkey varchar(32) 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)
notes mediumtext HTML notes and details about this loan account/application
paymentmethod varchar(256) 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.
penaltybalance decimal(50,10) How much fees are still due on the account (relevant for fixed accounts only)
penaltydue decimal(50,10) The total penalty due for this loan account. Required
penaltypaid decimal(50,10) The total penalty paid for this loan account. Required
penaltyrate decimal(50,20) Specifies the rate (in percent) which is charged as a penalty
periodicpayment decimal(50,10) The periodic payment amount for the accounts which have balloon payments
prepaymentacceptance varchar(256) Whether the pre-payments are allowed or not for this account
Must be one of the following:
- ACCEPT_PREPAYMENTS - The pre-payments can be posted
- NO_PREPAYMENTS - No pre-payments are accepted (no repayments posting before due)
prepaymentrecalculationmethod varchar(255) repayment recalculation method copied from the loan product on which this account is based. Holds the possible options for how are the pre-payments affecting the number of installments and the amount allocated per installment for a repayments schedule belonging to a DYNAMIC loan account
- NO_RECALCULATION
- RESCHEDULE_REMAINING_REPAYMENTS
- RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
- RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
- RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
- REDUCE_AMOUNT_PER_INSTALLMENT
- REDUCE_NUMBER_OF_INSTALLMENTS
principalbalance decimal(50,10) The total principal currently owed and outstanding for the client for this account (principal disbursed - principal paid)
principaldue decimal(50,10) How much principal is currently due for this account. Required
principalpaid decimal(50,10) Total principal paid into the account
principalpaidinstallmentstatus varchar(255) Defines the installment status after the principal was paid off as part of an over-payment.
- PARTIALLY_PAID
- PAID
- ORIGINAL_TOTAL_EXPECTED_PAID
principalpaymentsettingskey varchar(32) Points to an entry in the principalPaymentSettings table containing further settings for this account.
principalrepaymentinterval int(11) Once at how many repayments has the principal to be paid.
producttypekey varchar(32) Foreign Key to the LoanProduct with which this account was created. Required
redrawbalance decimal(50,10) The total redraw amount available to the client
repaymentinstallments int(11) How many installments are required to pay back the loan. Must be same number as number of repayments when loan is initially disbursed. Required
repaymentperiodcount int(11) How often the loan is to be repaid. for instance “1” with the unit being “Days” means every day. Determines the repayment schedule. Required
repaymentperiodunit varchar(256) 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
repaymentschedulemethod varchar(256) 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 ever change, even if a repayment is pre-paid or paid later. Penalties and fees can be applied only on repayments. Still, reduction operations can be performed over the principal, interest, fees and penalties amounts (only with special settings enabled)
- DYNAMIC - The repayment schedule is dynamic and will change over the loan account’s lifecycle e.g. when entering repayments, on holidays changes or interest rates changes. For example, if paying an amount grater that what is 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
rescheduledaccountkey varchar(32) Foreign key to another LoanAccount if this account has been closed with state CLOSED_RESCHEDULED. Or null if not rescheduled
scheduleduedatesmethod varchar(256) 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)
shortmonthhandlingmethod varchar(256) 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(50,10) The current tax rate of the account



loanaccount_billingcycledays

Holds the day on which the billing cycle rolls over for revolving credit type loans.
Column Name Data Type Description
accountkey varchar(32) The encoded key of the revolving credit account.
day tinyint(2) The day on which the billing cycle rolls over each month.



loanaccount_repaymentdays

Holds days on which repayments will become due for loan accounts.
Column Name Data Type Description
accountkey varchar(32) The encoded key of a loan account.
day tinyint(2) The day of the month on which loan repayments become due.



loanaccountchangedevent

Column Name Data Type Description
encodedkey varchar(32) The key for this database entry



loanaccountcustomvalue

Holds values for custom information for loan accounts. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



loanaccountnumericid

Column Name Data Type Description
numericid decimal(32,0) The numeric ID of a given loan account.



loanaccountredrawsettings

this table relates an upcoming feature and will be documented closer to release.
Column Name Data Type Description
accountkey varchar(32) Unique key of the entry in the loanaccount table for which these redraw settings are valid.
encodedkey varchar(32) A unique key for this row.
restrictnextduewithdrawal tinyint(1) Indicates whether withdrawing amounts that reduce the next due instalment repayment is restricted or not.



loangroup

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.
Column Name Data Type Description
creationdate datetime The date on which this loan group was created. UTC
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
group_encodedkey_oid varchar(32) Foreign key of the Group that this loan group belongs to Required.
lastmodifieddate datetime The date on which this loan group was last modified. UTC
name varchar(256) Name of the loan group. Required
notes mediumtext HTML Notes about the loan group.



loanproduct

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.
Column Name Data Type Description
accountingmethod varchar(256) The current accounting state for this product
- NONE - accounting is deactivated
- CASH - uses cash accounting
- ACCRUAL - uses accrual accounting
accountinitialstate varchar(32) Specifies the initial states for the accounts that will be created using this product.
Available states:
- PENDING_APPROVAL
- PARTIAL_APPLICATION
- etc.
accountlinkingenabled bit(1) Whether this product can be linked to others
accruelateinterest bit(1) Indicates whether this product continues to accrue intersest on late payments, see here for more details.
activated bit(1) Whether this loan product is activated or not (can be used or not).
allowarbitraryfees bit(1) Only if true users will be able to apply fees, for current object, of type ‘Other’; these fees can have any amount
allowcustomrepaymentallocation bit(1) Indicates whether a customer will be allowed to freely allocate repayments or parts of repayments towards specific costs. See our support article for more information.
amortizationmethod varchar(32) Method used by loan accounts for repayments schedule generation. It indicates whether the user wants to define a periodic payment, and round the remaining principal into the last installment, or they want 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
applyinterestonprepaymentmethod varchar(256) Whether the interest on prepayment is applied manual or automatic.
arrearssettingskey varchar(32) Loan product arrears settings
autocreatelinkedaccounts bit(1) Whether account links should be automatically created
autolinkaccounts bit(1) Whether accounts should be automatically linked if possible on creation
cappingapplyaccruedchargesbeforelocking bit(1) Specifies if the accrued charges should be applied before locking (capping)
cappingconstrainttype varchar(255) 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.
cappingmethod varchar(255) 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
cappingpercentage decimal(50,20) Specifies the percentage of principal that cannot be exceeded by the sum of interest, fees and penalty balances
category varchar(256) The category of this loan product. This helps organise products into business areas. Can be PERSONAL_LENDING, PURCHASE_FINANCING, RETAIL_MORTGAGES, SME_LENDING, COMMERCIAL, UNCATEGORIZED.
creationdate datetime The date when the loan product was created. Stored as UTC
currencycode varchar(3) The currency which will be compatible with this product. Only relevant for customers offering multicurrency.
daysinyear varchar(256) Days in a year methodology used for loan interest calculations for this product
- ACTUAL_365_FIXED
- ACTUAL_364
- ACTUAL_360
- E30_360
defaultfirstrepaymentduedateoffset decimal(50,20) 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)
defaultgraceperiod int(11) 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).
defaultloanamount decimal(50,10) A default amount for the product (most of the loan accounts are using this default amount).
defaultnuminstallments int(11) The default number of the repayments.
defaultpenaltyrate decimal(50,20) Rate (in percent) which is set as default for new accounts.
defaultprincipalrepaymentinterval int(11) Frequency at which repayments should be paid on this loan product
defaultrepaymentperiodcount int(11) The repayments frequency. Example: the repayment is due once at 10 days (repayment period units). Required
dormancyperioddays int(11) Specifies the number of days for an account to be fully paid in order to auto close it
elementsrecalculationmethod varchar(256) 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
encodedkey varchar(32) The encoded key for this loan product. This ID can be used with our ID to work with this specific Loan Product.
fixeddaysofmonth mediumblob Specifies the days of the month when the repayment due dates should be. Only available if the Repayment methodology is FIXED_DAYS_OF_MONTH
forallbranches bit(1) Field to indicate if this product is available for all branches
forhybridgroups bit(1) Field to indicate if this product is available for hybrid groups, true if available, false otherwise, never null
forindividuals bit(1) Field to indicate if this product is available for individuals, true if available, false otherwise, never null
forpuregroups bit(1) Field to indicate if this product is available for pure groups, true if available, false otherwise, never null
futurepaymentsacceptance varchar(256) 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
graceperiodtype varchar(256) 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
id varchar(32) Unique ID of the loan product (specified by the user). Required
idgeneratortype varchar(256) 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 varchar(256) The pattern, containing ‘@’ for letters and ‘#’ for digits, for the RANDOM_PATTERN or the starting number for the INCREMENTAL_NUMBER.
interestaccrualcalculation varchar(256) The accounting interest calculation option selected for the product. One of BREAKDOWN_PER_ACCOUNT, AGGREGATED_AMOUNT, NONE.
interestaccruedaccountingmethod varchar(32) Method being used for maintaining the interest accrued method for the loan product (NONE, DAILY, MONTHLY).
interestapplicationmethod varchar(256) 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 be applied manually: behind the scenes, when performing a repayment or explicitly by using the UI function available for this.
interestbalancecalculationmethod varchar(32) Option which determines the way the balance for the account’s interest is computed.
interestcalculationmethod varchar(256) 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
interestratesettingskey varchar(32) Points to a row in the interestproductsettings table containing interest rate settings for this product.
interesttype varchar(255) Specifies interest type for the loan product. Must be one of the following:
- SIMPLE_INTEREST - the interest is applied on the schedule when it is applied in the account
- CAPITALIZED_INTEREST - the interest is capitalized on the schedule. It will be converted into principal when applied
lastmodifieddate datetime The date when the loan product was modified last time. Stored as UTC.
latepaymentsrecalculationmethod varchar(256) Method used by loan accounts to have the schedule recalculated when late payments are posted on declining balance equal installments accounts: - INCREASE_LAST_INSTALLMENT - 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_OVERDUE_INSTALLMENTS - this option will recalculate all the next installments, in order to keep the same total expected on the installments.
lineofcreditrequirement varchar(255) 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
linkablesavingsproductkey varchar(32) Which savings product this account is linked to
loanpenaltycalculationmethod varchar(256) Method used for calculating the loan penalty on this product.
- NONE
- OVERDUE_BALANCE
- OVERDUE_BALANCE_AND_INTEREST
loanpenaltygraceperiod int(11) Number of days to wait before applying the loan penalty amounts
loanproducttype varchar(255) Specifies the type of the loan product
lockperioddays int(11) Specifies the number of days for in which the account will be locked if it stays in arrears
maxfirstrepaymentduedateoffset decimal(50,20) 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)
maxgraceperiod int(11) 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).
maxloanamount decimal(50,10) The maximum loan amount for the loan account, to be able to use this product.
maxnumberofdisbursementtranches int(11) Maximum number of disbursement tranches a loan account account made after this product can have
maxnuminstallments int(11) The maximum number of repayments for the loan account, to be able to use this product
maxpenaltyrate decimal(50,20) Maximum penalty rate which can be set for accounts.
minfirstrepaymentduedateoffset decimal(50,20) 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
mingraceperiod int(11) 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).
minloanamount decimal(50,10) The minimum loan amount for the loan account, to be able to use this product.
minnuminstallments int(11) The minimum number of repayments for the loan account, to be able to use this product.
minpenaltyrate decimal(50,20) Minimum penalty rate which can be set for accounts.
offsetpercentage decimal(50,20) Stores the percentage to be used as offset for the loan account schedule calculation.
paymentmethod varchar(256) 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.
prepaymentacceptance varchar(256) Whether the pre-payments are allowed or not for this product (if there can be posted repayments before the due date of that repayment)
prepaymentrecalculationmethod varchar(255) Holds the possible options for how are the pre-payments affecting the number of installments and the amount allocated per installment for a repayments schedule belonging to a DYNAMIC loan account
- NO_RECALCULATION
- RESCHEDULE_REMAINING_REPAYMENTS
- RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS
- RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT
- RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT
- REDUCE_AMOUNT_PER_INSTALLMENT
- REDUCE_NUMBER_OF_INSTALLMENTS
principalpaidinstallmentstatus varchar(255) Defines the installment status after the principal was paid off as part of an over-payment.
- PARTIALLY_PAID
- PAID
- ORIGINAL_TOTAL_EXPECTED_PAID
principalpaymentsettingskey varchar(32) Foreign key to the principalPaymentSettings table containing options for the current product
productdescription mediumtext A short description of the product (why is it recommended, who can use it etc.)
productname varchar(256) The name of the product.
productsecuritysettingskey varchar(32) Foreign key to the productSecuritySettings table containing the security settings (guarantors, collateral, investor funds) available for the current product.
redrawsettingskey varchar(32) Foreign key to the productRedrawSettings table
repaymentallocationorder mediumblob An array list of the order of which to allocate repayments including principal, interest, fees and penalty
repaymentcurrencyrounding varchar(256) Specifies if the repayment schedule should be rounded to the nearest whole unit
- NO_ROUNDING
- ROUND_TO_NEAREST_WHOLE_UNIT
repaymentelementsroundingmethod varchar(256) Determines how the repayment currency rounding is handled on each element from the schedule:
- NO_ROUNDING
- ROUND_ALL
- PAYMENT_DUE
repaymentperiodunit varchar(256) The frequency of loan repayment:
- DAYS
- WEEKS
- MONTHS
- YEARS
repaymentreschedulingmethod varchar(256) The repayment rescheduling method used in calculations
repaymentscheduleeditoptions mediumblob Which rights do users have when editing the schedule of this product (relevant for fixed products only)
repaymentschedulemethod varchar(256) The repayment schedule method. Represents the method that determines whether the schedule will be fixed all over the loan account’s life cycle or will be dynamically recomputed when required.
roundingrepaymentschedulemethod varchar(256) Specifies if the repayment schedule should be rounded to the nearest whole unit
- NO_ROUNDING
- ROUND_TO_NEAREST_WHOLE_UNIT
scheduleduedatesmethod varchar(256) 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)
scheduleinterestdayscountmethod varchar(256) Methods that determine how the number of interest days for a repayment are computed (currently only used 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
settlementoptions varchar(32) 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
shortmonthhandlingmethod varchar(256) 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
taxcalculationmethod varchar(256) 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.
taxesonfeesenabled bit(1) Whether taxes on fees are enabled for this product or not
taxesoninterestenabled bit(1) Whether taxes on interest are enabled for this product or not
taxesonpenaltyenabled bit(1) Whether taxes on penalties are enabled for this product or not.
taxsourcekey varchar(32) The tax source from where the loan account taxes will be updated



loanproduct_billingcycledays

Holds information on the billing cycle for revolving credit type products.
Column Name Data Type Description
day tinyint(2) The day on which the billing cycle rolls over.
productkey varchar(32) The encoded key of the product for which this setting is valid.



loanproductbranch

stores the association between a loan product and the branches where it is available.
Column Name Data Type Description
branchkey varchar(32) The key of the branch that is associated with a loan product
encodedkey varchar(32) The encoded key for this association, this is an autogenerated and globally unique ID.
productkey varchar(32) The loan product that is associated with a branch



loanproductstartids

the id settings allows you to customize the ids generated for any loan accounts which will later be created under this product.

you can either choose a random pattern or incremental numbers for your account ids.
Column Name Data Type Description
idpattern varchar(256) The template for IDs for this loan product.
numericid decimal(32,0) If IDs are numeric, newly created accounts for this product started at this mumber.
productencodedkey varchar(32) The encoded key of the product which uses this configuration.



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 percentage represents the amount that should be provisioned at this loan risk level"
Column Name Data Type Description
arrearsfrom int(11) The starting day for this band.
arrearsto int(11) The ending day for this band.
encodedkey varchar(32) They encoded key for this row.
name varchar(256) The name of this rule.
provisioningpercent decimal(50,10) The percentage of capital which should be provisioned for loans in this risk level.



loantranche

in some cases organizations may approve loans but not disburse the full amount initially. they would like to spread the disbursement (and risk) over time.

likewise for the client, they may not need the full loan amount up front. they may want to have a loan to buy some equipment for their business but will make one purchase today and another purchase in a few months. in these cases, they don’t need the full amount and wouldn’t want to pay interest on cash they don’t need yet.
a solution for this matter is the usage of disbursement in tranches. this class holds the information required for one of this tranche.
Column Name Data Type Description
amount decimal(50,10) The amount this tranche has available for disburse. Required
disbursementtransactionkey varchar(32) A link to the entry in the loantransaction table pointing to the transaction disbursing this tranche.
encodedkey varchar(32) A unique ID for this loan tranche.
expecteddisbursementdate datetime The date when this tranche is supposed to be disbursed (as Organization Time)
index int(11) The index which gives the order of tranches
tranches_encodedkey_own varchar(32) The encoded key of the loan account for this tranche.
tranches_integer_idx int(11) The index which gives the order of tranches



loantransaction

keeps track of all transactions which occur with loan accounts such as state changes, repayments, fees, etc.
Column Name Data Type Description
advanceposition decimal(50,10) Captures the advance (prepaid) amount
amount decimal(50,10) The amount of the transaction. Compare the previous balance to the current balance to see if the amount increases or decreases the balance. The amount may be null for certain transactions - such as state changes.
arrearsposition decimal(50,10) Captures the arrears position amount for the account in arrears
balance decimal(50,10) The balance of the loan account after the transaction
branchkey varchar(32) Foreign key to the branch where this transaction was performed.
centrekey varchar(32) Foreign key to the centre where this transaction was performed.
comment varchar(256) The comment which could be provided for a loan transaction.
creationdate datetime Date when the transaction occurred (UTC). Required
deferredinterestamount decimal(50,10) How much interest pre-paid was added/removed in account, within this transaction (including taxes)
deferredtaxoninterestamount decimal(50,10) How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field.
details_encodedkey_oid varchar(32) Details about transaction.
encodedkey varchar(32) The encoded key for this transaction.
entrydate datetime Date of the entry (eg date of repayment or disbursal, etc.). As Organization Time.
expectedprincipalredraw decimal(50,10) Captures the difference between principal balance and redraw balance after each transaction performed on the loan account
externalid varchar(36) The ID added by the customers that accepts alpha-numeric characters, underscore and dash. Can be null
feesamount decimal(50,10) How much fees was added/removed in account, within this transaction.
fundersinterestamount decimal(50,20) Amount of interest that goes to the funders (only for P2P accounts with split methodology)
indexinterestrate_encodedkey_oid varchar(32) Foreign key to indexRate table: Index value used for the calculation of the loan interest rate.
interestamount decimal(50,10) How much interest was added/removed in account, within this transaction.
interestfromarrearsamount decimal(50,10) How much interest from arrears was applied/paid in account, within this transaction (including taxes).
interestrate decimal(50,20) The new interest rate for a loan account
loantransactiontermskey varchar(32) Foreign key to loansTransactionTerms table: Reference to entity which holds specific information related to loan transactions.
migrationeventkey varchar(32) Points to an entry in the datamigrationevent table if this transaction was imported rather than having been generated in teh Mmabu system itself.
organizationcommissionamount decimal(50,20) Amount of interest that goes to the organization (only for P2P accounts with split methodology)
originalamount decimal(50,10) 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
originalcurrencycode varchar(3) the currency in which this transaction was posted. The amounts are stored in the base currency, but the user could have enter it in a foreign currency
parentaccountkey varchar(32) Foreign key to the loan account this transaction refers to. Required
parentloantransactionkey varchar(32) 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.
penaltyamount decimal(50,10) How much penalty was added/removed in account, within this transaction.
principalamount decimal(50,10) How much principal was added/removed in account, within this transaction.
principalbalance decimal(50,10) The total principal owed by the client, at the current time (principal disbursed - principal paid)
producttypekey varchar(32) Store the key of the loan product to which the account owning this transaction belongs.
redrawbalance decimal(50,10) The total redraw amount available to the client, at the current time
reversaltransactionkey varchar(32) 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.
taxonfeesamount decimal(50,10) How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction
taxoninterestamount decimal(50,10) How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction
taxoninterestfromarrearsamount decimal(50,10) The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction.
taxonpenaltyamount decimal(50,10) how much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction
taxrate_encodedkey_oid varchar(32) Foreign key to indexRate table: Tax rate that was set or changed in this transaction.
tillkey varchar(32) The till key associated with this transaction
transactionid bigint(20) Auto-increment unique ID of the loan transaction. Required
type varchar(256) Type of the transaction. Must be one of:
- CREATION - the loan account was created
- EDIT - the loan account was modified
- DISBURSEMENT - the loan account was disbursed
- STATE_CHANGE - the loan account state changed (eg for an Approval)
- REPAYMENT - a repayment was applied to the account
- FEE - a fee was applied to the account
- PENALTY_APPLIED - a penalty was applied to the account
- PAYMENT_RESCHEDULE - a repayment balance was rescheduled
- REPAYMENT_ADJUSTMENT - a previously entered repayment amount was corrected
- FEE_ADJUSTMENT - a previously applied fee was adjusted
- PENALTY_ADJUSTMENT - a penalty amount was adjusted
- BRANCH_CHANGED - marks the moment when the parent account is assigned to a different branch
- DEFERRED_INTEREST_APPLIED - before interest that’s not applied in the account yet gets pre-paid, this transaction will be logged in the same time with the repayment transaction, to justify the pre-paid interest amount in account’s balance
- DEFERRED_INTEREST_APPLIED_ADJUSTMENT - reversal for DEFERRED_INTEREST_APPLIED transaction
- DEFERRED_INTEREST_PAID - after interest that was pre-paid gets applied in the account, this transaction will be logged with the interest that was pre-paid and now applied, to justify why that applied interest is not reflected in account’s balance.
- DEFERRED_INTEREST_PAID_ADJUSTMENT - reversal for DEFERRED_INTEREST_PAID transaction
- DISBURSEMENT_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 to the account interest balance
- INTEREST_APPLIED_ADJUSTMENT - reversal for the INTEREST_APPLIED transaction
- INTEREST_DUE_REDUCED - a decrease over the interest due
- INTEREST_LOCKED - when the interest on account is set to locked
- INTEREST_RATE_CHANGED - the interest for an account has been recomputed
- INTEREST_REDUCTION_ADJUSTMENT - reversal for the INTEREST_DUE_REDUCED transaction
- INTEREST_UNLOCKED - when the interest on account is set to unlocked
- PENALTIES_DUE_REDUCED - a decrease over the penalties due
- PENALTY_LOCKED - when the penalties on the account are set to locked
- PENALTY_REDUCTION_ADJUSTMENT - reversal for the - PENALTIES_DUE_REDUCED transaction
- PENALTY_UNLOCKED - when the penalties on the account
- TAX_RATE_CHANGED - the tax for an account has been changed
- TERMS_CHANGED - marks the moment when some loan terms have changed for a loan account
- TRANSFER - when principal gets transferred 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
userkey varchar(32) Foreign key to the User who performed this transaction. If null, it means this was a system-performed transactions (such as an automatic penalty)



loantransactioncustomvalue

Holds values for custom information for loan transactions. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



loantransactionexternalhistory

Table which tracks loan transactions that were made asynchronously by microservices.
Column Name Data Type Description
creationdate datetime(6) Date and time, in UTC, when the transaction occurred.
errors varchar(512) Will contain a log of the errors if the transaction has a status of FAILED.
externalrequestid varchar(32) A unique ID generated by the service
loantransactionencodedkey varchar(32) The encoded key of the loan transaction.
status varchar(16) Status of the current transaction. Will be one of FAILED or SUCCEEDED



loantransactionpenaltydata

Stores information about penalties as a JSON representation.
Column Name Data Type Description
content json A JSON representation of a loan penalty.
encodedkey varchar(32) A unique key for this row.
parenttransactionkey varchar(32) The encoded key of the parent loan transaction.



loantransactionpenaltydetails

stores penalty settings at the loan transaction level.
Column Name Data Type Description
encodedkey varchar(32) A unique key for an entry in the loantransaction table.
penaltyrate decimal(50,20) The penalty rate in effect at the time of this transaction.



loantransactionterms

entity class which holds specific informations related to loan transaction terms which may change over the lifetime of a loan, e.g. principal payment value (amount or percentage) for credit card accounts or revolving credit or balloon payment type loans.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this row, this is an autogenerated and globally unique ID. This will be linked to from an entry in the loanaccount table.
periodicpayment decimal(50,10) Tracks changes in loans with associated payment plans.
principalpaymentamount decimal(50,10) The principal payment flat amount logged when change it for a revolving credit loan
principalpaymentpercentage decimal(50,20) The principal payment percentage value logged when change it for a revolving credit loan



mambuapp

represents an app in mambu - an external application added and provided by a 3rd party developer. check our user guide pages for more information on creating and installing apps.
Column Name Data Type Description
apiuser_encodedkey_oid varchar(32) The encoded key of a user in the user table which this app uses to authenticate with Mambu.
appkey varchar(32) The app key used to sign requests between the app and Mambu.
creationdate datetime The date when the app was created. Stored as UTC
encodedkey varchar(32) A unique key for this app.
extensionpoints mediumblob Extension points indicate where the app will appear in the Mambu user interface. See this page for a list of extension points.
id varchar(256) The unique id of the application. This is used as the App ID for authenticating API calls.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
name varchar(256) The display name of the app.
properties mediumblob The properties of the app.
state varchar(256) Whether the app is ENABLED or DISABLED.



mambufeatureentity

contains information about mambu features.
Column Name Data Type Description
creationdate datetime(6) The date when the mambu feature was created (stored as UTC). Required.
encodedkey varchar(32) The encoded key for this feature, this is an autogenerated and globally unique ID.
lastmodifieddate datetime(6) The date when the mambu feature was last modified (stored as UTC).
name varchar(256) The name of the mambu feature. Required.
status varchar(32) The status of the mambu feature.
usage varchar(32) Indicates if mambu feature is used.



mambuservices

services which are enabled/disabled for different editions/tiers of mambu and different subscription plans and clients
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
mambuedition varchar(256) The product teir of this mambu instance.
maxclients int(11) The maximum number of clients that can be supported by this instance.
maxusers int(11) The maximum number of users for this instance.
trialexpirydate datetime The date on which the free trail will expire



mccexpiration

contains information on how much an authorizationhold can be maintained in the system before expiring it, based on the mcc (merchant category code).
Column Name Data Type Description
daystoexpiration int(11) The number of days to wait before expiring an authorization hold with this entity’s MCC
description varchar(256) The description of the MCC expiration. Unique.
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
mcc int(11) The Merchant Category Code to hold the expiration information for



messagetemplate

a template for a notification which can be sent by mambu. also used by task templating functionality.
Column Name Data Type Description
activated bit(1) If the messate template is activated or not
authorization varchar(255) Specifies authorization type (basic or no authorization).
contenttype varchar(255) The header to be used when posting the webhook notification.
creationdate datetime The creation date of the message template. Stored as UTC.
customfilter_key varchar(32) A reference to the custom filter based on which the notification message is created of not
encodedkey varchar(32) The encoded key for this template. Can be used with our API to generate populated templates programatically, see here for more information.
event varchar(256) Event associated with this notification. Required
lastmodifieddate datetime The date on which this row was last modified. Stored as UTC.
name varchar(255) Name of this message template. Required
option varchar(256) Subscription option for this notification - whether clients opt in or opt out of it.
password varchar(255) Password to be used in authentication token when web hook notification is posted.
recipientkey varchar(32) The entity that is going to receive the message. May be a client, group, credit officer or a linked custom field.
requesttype varchar(32) The HTTP method to be used when sending the webhook notification.
subject varchar(256) The subject of the message template.
targettype varchar(32) Indicates the type of entity which will trigger this notification, eg. CLIENT, GROUP, SAVINGS, LOANS
template mediumtext The content of the template.
topic varchar(256) The topic to which a client can subscribe in order to receive the events
trigger varchar(255) The trigger of the message template.
triggerdays int(11) Number of days before/after the trigger when the notification will be sent.
type varchar(256) The type of notification, EMAIL, SMS or TASK.
url varchar(512) The URL of the message template.
username varchar(255) User name to be used in authentication token when web hook notification is posted.



messagetemplaterecipient

model that maintains the relation between a message template and the recipient type that is going to receive the message.
Column Name Data Type Description
customfieldkey varchar(32) Which user link related to the target (client/group) should receive notifications of events.
encodedkey varchar(32) The encoded key for this relationship, this is an autogenerated and globally unique ID.
grouprolenamekey varchar(32) Which group role (user defined, as president/secretary/etc.) related to the target (client/group) should receive notifications of events.
recipienttype varchar(256) Describe the type of the recipient that is going to receive the message. May be a client, group, credit officer etc.



messagetemplaterequestheader

A table holding custom header keys and values for automated webhook notifications.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
headerkey varchar(256) The key of the custome header, for example, Accept or X-Mambu-Custom-Header.
headervalue varchar(1024) The value this header will take.
messagetemplatekey varchar(32) The key of an entry in the messagetemplate table to which this custom header will be added when sent.



messaginglog

Column Name Data Type Description
creationdate datetime(3) The time at which this message was logged.
encodedkey varchar(32) The encoded key for this database entry.
messageid varchar(36) The ID for this message.



nonworkingday

represents a day from the week which is non-working for the organization
Column Name Data Type Description
creationdate datetime The date when the non working day was created (as UTC)
dayofweek varchar(256) The day of the week which is non-working for the organization, eg MONDAY, SATURDAY.
encodedkey varchar(32) The encoded key for this entry in this table.
nonworkingdays_encodedkey_own varchar(32) Encoded key of the entry in the generalsettings table which uses this set of non-working days. Essentially your mambu instance.
nonworkingdays_integer_idx int(11) Index for this non working day, ie. the first non working day will have index 0, the second 1 and so on.



notificationbrokerqueue

Column Name Data Type Description
creationdate datetime The date when the row was created. Stored as UTC
encodedkey varchar(32)
failurecause varchar(2048)
failurereason varchar(256)
lastmodifieddate datetime The date on which this row was last modified. As UTC.
notificationmessagekey varchar(32)
state varchar(256)



notificationeventdetails

Column Name Data Type Description
creationdate datetime(3) The date when the event was created. Stored as UTC
encodedkey varchar(32)
isread tinyint(1) Whether or not this message has been marked as read.
lastmodified datetime(3)
message mediumtext
subscriberid varchar(32)
taskid varchar(32)
type varchar(32)



notificationeventitem

this entity holds the information necessary to display notification events for clients.
Column Name Data Type Description
creationdate datetime(3) The date when the notification event was created (stored as UTC). Required.
encodedkey varchar(32) The encoded key for this notification, this is an autogenerated and globally unique ID.
isread bit(1) Flag to determine whether the notification was read by the user. Required.
lastmodified datetime(3) The date when the notification event was last modified (stored as UTC). Required.
status varchar(32) The state of the Event.
subscriberid varchar(32) The userKey of the user that owns the job. Required.
taskid varchar(32) The taskKey of the job. Required.
type varchar(32) The type of the Event.



notificationmessage

a log of sent notification messages of different types, including the state of the notification, to whom it was sent.
Column Name Data Type Description
body mediumtext The actual contents (body) of the message.
clientkey varchar(32) Whom the message was sent to.
creationdate datetime When the message was created either for immediate sending of queued (as UTC).
destination varchar(1024) The destination (phone number or email address) this notification was sent to.
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to receive details on a specific message.
event varchar(256) The event this message was sent for, if any.
failurecause varchar(256) A failure code if the message failed to send.
failurereason varchar(255) Maintains the reason of the notification message failure.
groupkey varchar(32) What group the message was sent to.
id varchar(256) The id of the notification message.
loanaccountkey varchar(32) If the notification was about a loan account this is set to that account.
numretries int(11) Number of retries to send the message
repaymentkey varchar(32) If the notification was about a repayment -then this is set to that account.
savingsaccountkey varchar(32) If the notification was about a savings account - then this is set to that account.
senddate datetime When the message was actually sent (as UTC).
senderkey varchar(32) Who sent the message. Or null if done automatically by Mambu.
state varchar(256) The state of the message. Required.
subject varchar(256) The subject of the message.
templatekey varchar(32) Key of the associated MessageTemplate.
type varchar(256) What type of notification is. Required.
userkey varchar(32) What user the message was sent to.



notificationmessagegljournalentry

Column Name Data Type Description
encodedkey varchar(32)
gljournalentrykey varchar(32)
notificationmessagekey varchar(32)



notificationmessagehistory

Column Name Data Type Description
body mediumtext
creationdate datetime The date when the entry was created. Stored as UTC
destination varchar(1024)
encodedkey varchar(32)
event varchar(256)
gljournalentrykey varchar(32)
id varchar(256)
numretries int(11)
senddate datetime
templatekey varchar(32)
type varchar(256)



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.
Column Name Data Type Description
creationdate datetime The date when the message was created. Stored as UTC
encodedkey varchar(32) The encoded key for this message in the queue.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
notificationmessage_encodedkey_oid varchar(32)
state varchar(256) The state of the message.



notificationmessagestreaming

Column Name Data Type Description
encodedkey varchar(32)
id bigint(20)
messageid varchar(36)
notificationmessage_encodedkey_oid varchar(32)
partitionkey varchar(256)



notificationmessagestreamingqueue

Column Name Data Type Description
creationdate datetime The date when the notification was created. Stored as UTC
encodedkey varchar(32)
id bigint(20)
lastmodifieddate datetime The last time at which this notification was modified.
notificationmessage_encodedkey_oid varchar(32)
state varchar(256)



notificationrequest

used for request for notifications. requests may be tied to clients or group and are associated with a specific notification template.
Column Name Data Type Description
encodedkey varchar(32) the id for this request
ownerkey varchar(32)
ownertype varchar(256)
template_encodedkey_oid varchar(32)



notificationsdrdata

Column Name Data Type Description
encodedkey varchar(32)
notificationmessagekey varchar(32)



objectlabel

captures the settings of custom object labels, for example ‘clients’ being referred to as ‘members’.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
language varchar(256) The language in which the object label is displayed. Required.
pluralvalue varchar(256) The plural form of the type which is displayed. Required.
singularvalue varchar(256) The singular form of the type which is displayed. Required.
type varchar(256) The type of the object label which can be user-customised:
- CLIENT
- GROUP
- BRANCH
- CENTRE
- CREDIT_OFFICER
Required.



organization

stores details about the organization itself such as it’s name, address, time zone, etc.
Column Name Data Type Description
creationdate datetime The date when the organization was created (as Organization Time).
emailaddress varchar(256) The email address of the organization
encodedkey varchar(32) The encoded key for this database entry.
lastmodifieddate datetime The date of the last modify performed over the organization (as Organization Time).
name varchar(256) The name of the organization
phoneno varchar(256) The phone number of the organization
timezoneid varchar(256) Canonical time zone ID of the organization. See http://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid formats. Required.



organizationbranding

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.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
iconimage mediumblob The image that will replace the Mambu logos from the website
logoimage mediumblob The logo of the organization. Stores a logo of 300x50.



organizationsnapshot

holds a snapshot of all organization indicators at a given point in time. used in the historical analysis graphs
Column Name Data Type Description
creationdate datetime The date on which this snapshot was taken.
encodedkey varchar(32) The encoded key for this database entry.
indicators mediumblob A hashmap of key performance indicators and their values at the time of the snapshot.
lastmodifieddate datetime The date on which this row was last modified. As UTC.



passwordresetrequest

stores the password reset requests.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
identifier varchar(255) Identifier for the password request - used instead of the encodedKey.
requestdate datetime The date on which this password reset request was made.
state varchar(256) Contains the state of the request. Before the change has been made, the state will be PENDING. Once the user has successfully changed their password this field should contain COMPLETED. If the account owner did not change their password within the allotted timeframe, the state will be EXPIRED.
targetclientkey varchar(32) If the request relates to a client and their password for the portal, this field will contain the encoded key for that client.
targetuserkey varchar(32) If the request relates to a user of the system then this field will contain the encoded key of that user.
userkey varchar(32) The encoded key of the user who intitated the password reset request.



paymentdetails

Holds details of payments made via the Mambu payments gateway including SEPA Direct Debit and Credit Transfers
Column Name Data Type Description
creditoraccountcurrency varchar(3) The currency code of the creditor account
creditoraccountiban varchar(34) The IBAN of the account sending funds as part of the transaction.
creditoraccountotheridentification varchar(34) Any other ID provided to identify the sender.
creditoraccountotherscheme varchar(35) The type of ID if creditoraccountotheridentification has been provided.
creditoragentbic varchar(35) The bank identifier code of the agent used by the sender.
creditorname varchar(140) The name of the holder of the account sending funds in this transaction.
debtoraccountcurrency varchar(3) The currency of the receiving account.
debtoraccountiban varchar(34) The IBAN of the receiver of the transcation.
debtoraccountotheridentification varchar(34) Any other ID provided to identify the receiver.
debtoraccountotherscheme varchar(35) The type of ID if debtoraccountotherscheme has been provided.
debtoragentbic varchar(35) The bank identifier code of the agent used by the receiver.
debtorname varchar(140) The name of the holder of the account receiving the transaction.
encodedkey varchar(32) A unique key used to identify this payment.
endtoendidentification varchar(35) Identifier assigned by the initiating party to the transaction.
instructionidentification varchar(35) Identifier of a payment instruction.
remittanceinformationstructuredreference varchar(35) The reference information of the creditor’s underlying documents.
remittanceinformationstructuredreferenceissuer varchar(35) The entity that assigns the reference type.
remittanceinformationstructuredreferencetype varchar(35) The type of creditor reference.
remittanceinformationunstructured varchar(140) Information supplied to match the items of the payment in an unstructured form.
savingstransactionkey varchar(32) The matching transaction in a Mambu deposit account.
servicelevelcode varchar(35) The code for a pre-agreed service or level of service between the parties.
transactionidentification varchar(35) Identifier unique for a period assigned by the first initiating party to the transaction.



periodicpayment

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. See our payment plans support article for more information.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
endinginstallmentposition int(11) The last installment up to which this band of the payment plan will be used.
index int(11) The index of the payment amount in the plan, for example, the payment amount for payments 1-5 will be index 0, for payments 6-10 will be index 1 and so on.
paymentplan_encodedkey_own varchar(32) The encoded key of the loan account to which this payment plan is linked.
paymentplan_integer_idx int(11) The index of the payment amount in the plan, for example, the payment amount for payments 1-5 will be index 0, for payments 6-10 will be index 1 and so on.
pmt decimal(50,10) The actual payment amount used for installments in this band up to the endinginstallmentposition.



periodintervalsettings

holds settings for defining period intervals.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
frequency varchar(256) Frequency settings of the fee amortization. Required.
intervalcount int(11) Total number of intervals
intervaltype varchar(256) 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
periodcount int(11) Period count used in conjunction with periodUnit to determine the next date of the interval
periodunit varchar(256) Amortization unit to determine the interval between amortizations



permission

A table containing available permissions for users of the Mambu system.
Column Name Data Type Description
creationdate datetime(6) The date on which this permission was added, in UTC.
encodedkey varchar(32) A unique key for this permission
lastmodifieddate datetime(6) The last date and time at which this permission was modified, in UTC.
permission varchar(256) The name of the permission, for example, CREATE_SAVINGS_ACCOUNT or APPROVE_LOANS



permissions

stores permissions associated with a user of mambu.
Column Name Data Type Description
canmanageallbranches bit(1) Whether or not this user is allowed to manage clients and services from all branches.
canmanageentitiesassignedtootherofficers bit(1) Whether or not the user can edit clients, accounts and other entities which are assigned to other Mambu users. Will be 1 for Administrators.
encodedkey varchar(32) The encoded key for this set of permissions. Used as a foreign key in the user table to link a user to a set of permissions.
permissions mediumblob A list of permissions granted to the user via our UI such as VIEW_COMMENTS, EDIT_BRANCH and so on as a JAVA array.
permissionvalues text A list of permissions granted to the user via our UI such as VIEW_COMMENTS, EDIT_BRANCH and so on as text.



permissionsassociation

Maps permissions to permission sets that include them.
Column Name Data Type Description
permissionencodedkey varchar(32) The encoded key of a permission.
permissionsencodedkey varchar(32) The encoded key of a permission set in the permissions table that includes the permmission indicated by permissionencodedkey.



portalgeneralsettings

general settings for the portal module including the portal state, what to show for clients and organization stylesheet.
Column Name Data Type Description
cnameurl varchar(256) The custom domain configured for the client portal.
encodedkey varchar(32) Encoded key for these settings.
iconimage mediumblob The image which will be used as the favicon for the portal.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
logoimage mediumblob The logo which should appear on the login screen.
maxclientaccounts int(11) The maximum number of client accounts supported by the portal.
portalenabled bit(1) Whether the portal is enabled or not. Please note: even if enabled there may be further steps to complete before the portal is usable, including setting up password recovery email templates and communication flows. See this page for more details.
shownaccountstates mediumblob An array of the activities which will be displayed on the portal (for example PENDING_APPROVAL, ACTIVE etc.).
shownactivities mediumblob An array of the activities which will be displayed on the portal (for example LOAN_ACCOUNT_CREATED, CLIENT_EMAIL_SENT etc.).
stylesheet mediumblob Map containing link to general CSS template, custom colour scheme and background which have been configured for the portal.



portalpreferences

a user’s individual portal setting preferences including language, password (encrypted) and whether the portal is actually enabled.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
lastloggedindate datetime The date on which this user last logged in to the portal.
password varchar(256) The encrypted password of the user.
portalstate varchar(256) Whether the portal is ENABLED or DISABLED.



predefinedfee

fee with a defined name and a fixed value
Column Name Data Type Description
active bit(1) If the fee is active or not
amortizationintervalsettingskey varchar(32) Interest Rate Settings holds information about interest rate applied to the product
amortizationprofile varchar(256) The type of amortization profile used for fee
- NONE
- SUM_OF_YEARS_DIGITS
- STRAIGHT_LINE
- EFFECTIVE_INTEREST_RATE
amount decimal(50,10) The amount of the fee
amountcalculationmethod varchar(256) The amount from which the fee is calculated using percentage amount:
- FLAT - a fix value independent from account to which it is applied (used both for loans and savings)
- LOAN_AMOUNT_PERCENTAGE - a percentage from the loan amount of the loan account to which it is applied (used only for loans)
- REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE-a percentage from the repayment amount of the loan account to which it is applied(used only for loans)
applydatemethod varchar(256) When should a fee be applied; to be used with monthly deposit fees:
- MONTHLY_FROM_ACTIVATION
- FIRST_OF_EVERY_MONTH
creationdate datetime The date when the fee was created (as UTC).
encodedkey varchar(32) The encoded key for this predefined fee.
feeamortizationuponrescheduleoption varchar(256) Indicates if fee amortization should be continued or finished at account reschedule/refinance. Will be one of END_AMORTIZATION_ON_THE_ORIGINAL_ACCOUNT or CONTINUE_AMORTIZATION_ON_THE_RESCHEDULED_REFINANCED_ACCOUNT depending on the option which has been selected.
feeapplication varchar(256) 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.
id varchar(256) The ID given to this fee.
lastmodifieddate datetime(3) The date on which this row was last modified. As UTC.
loanfees_encodedkey_own varchar(32) If this fee is for a loan account, this field will contain the encoded key of the product to which it applies.
loanfees_integer_idx int(11) Shows the index for this fee if there are more than one fee defined for a given loan product.
name varchar(256) The name of the fee
nontaxablefee bit(1) Indicates whether the fee is exempt from tax.
percentageamount decimal(50,20) The amount of the fee in percents applied to percent source
savingsfees_encodedkey_own varchar(32) If this fee is for a savings/deposit account, this field will contain the encoded key of the product to which it applies.
savingsfees_integer_idx int(11) Shows the index for this fee if there are more than one fee defined for a given savings/deposit product.
taxratesourcekey varchar(32) If tax must be applied to this fee, this field will include the encoded key of the tax.
trigger varchar(256) The event that will trigger a fee:
- MANUAL - Not automated, initiated by an user action
- DISBURSEMENT - Applied at loan disbursement. Disbursement fees are subtracted from loan amount at disbursement
- CAPITALIZED_DISBURSEMENT - Applied at loan disbursement. Capitalized fees are not subtracted from loan amount at disbursement
- LATE_REPAYMENT - Applied once for a repayment when it’s due date expired and that repayment was not paid off
- MONTHLY_FEE - Applied every month per account depending on the apply date method
- PAYMENT_DUE - Applied every time a repayment becomes due
- ARBITRARY - Used for the displaying logic of the transactions with arbitrary fees



predefinedfeeamount

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 entry created, that will point to the applied predefined fee

- when a fee is paid/reduced, the transaction might have multiple predefinedfeeamount entries created, one for each fee that was paid/reduced
Column Name Data Type Description
amount decimal(50,10) The amount of the fee that was applied/paid in the transaction for the given predefined fee
encodedkey varchar(32) The encoded key for this predefined fee amount.
fee_encodedkey_oid varchar(32) The predefined fee for which the amount was applied/paid. Foreign key to the predefinedKey table.
loanpredefinedfeeamounts_encodedkey_own varchar(32) If the fee was applied to a loan account this field will contain the encoded key of the related transaction.
loanpredefinedfeeamounts_integer_idx int(11) If this is one of a number of applied applied for the same transaction then this field will show the index of this particular fee amount, ie. the first amount will have index 0, the second will have index 1 and so on.
savingspredefinedfeeamounts_encodedkey_own varchar(32) If the fee was applied to a savings/deposit account this field will contain the encoded key of the related transaction.
savingspredefinedfeeamounts_integer_idx int(11) If this is one of a number of applied applied for the same savings/deposit account transaction then this field will show the index of this particular fee amount, ie. the first fee will have index 0, the second will have index 1 and so on.
taxamount decimal(50,10) The amount of the taxes on fee that was applied/paid in the transaction.
transactionid bigint(20) Used for capturing the transaction Id of the transaction originally generating this predefined fee amount.



principalpaymentaccountsettings

entity holding the required information for the principal payment process of an account
Column Name Data Type Description
amount decimal(50,10) Fixed amount for being used for the repayments principal due
encodedkey varchar(32) The encoded key for this set of settings, this is an autogenerated and globally unique ID.
percentage decimal(50,20) Percentage of principal amount used for the repayments principal due



principalpaymentbasesettings

base class for all the entities grouping settings related to the principal payment process
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID and is used as foreign key to link this row to the principalpaymentaccountsettings and principalpaymentproductsettings tables.
includefeesinflooramount bit(1) If true, the fee will be included along with the principal in the repayment floor amount, for a revolving credit account.
includeinterestinflooramount bit(1) If true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account
principalceilingvalue decimal(50,10) The maximum principal due amount a repayment made with this settings can have
principalfloorvalue decimal(50,10) The minimum principal due amount a repayment made with this settings can have
principalpaymentmethod varchar(255) The method of principal payment for revolving credit



principalpaymentproductsettings

entity holding the required information for the principal payment settings stored on a product
Column Name Data Type Description
defaultamount decimal(50,10) The default principal payment amount for the accounts made after the product using this settings
defaultpercentage decimal(50,20) The default principal payment percentage for the accounts made after the product using this settings
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID. This ID is also used as a foreign key to link to the loanproduct table.
maxamount decimal(50,10) The maximum principal payment amount for the accounts made after the product using this settings
maxpercentage decimal(50,20) The maximum principal payment percentage for the accounts made after the product using this settings
minamount decimal(50,10) The minimum principal payment amount for the accounts made after the product using this settings
minpercentage decimal(50,20) The minimum principal payment percentage for the accounts made after the product using this settings



productaccountsettings

this table is for an upcoming feature and more documentation will be provided as the release progresses.
Column Name Data Type Description
accountserviceenabled bit(1) Whether the account service is enabled. This is an upcoming feature.
encodedkey varchar(32) A unique key.
productkey varchar(32) The unique key of the product.
producttype varchar(128) The type of product.



productarrearssettings

table used for holding the arrears settings for a product.
Column Name Data Type Description
defaulttolerancepercentageofoutstandingprincipal decimal(50,20) The default tolerance allowed as a percentage of outstanding principal which has been configured for this product and will be suggested for all newly created accounts.
defaulttoleranceperiod int(11) Default tolerance period
encodedkey varchar(32) The encoded key for these settings.
maxtolerancepercentageofoutstandingprincipal decimal(50,20) The mximum tolerance allowed as a percentage of outstanding principal which has been configured for this product.
maxtoleranceperiod int(11) Maximum tolerance period
mintolerancepercentageofoutstandingprincipal decimal(50,20) The minimum tolerance allowed as a percentage of outstanding principal which has been configured for this product.
mintoleranceperiod int(11) Minimum tolerance period
monthlytoleranceday int(11) Represents the monthly arrears tolerance day value..



productoffsetsettings

stores loan product offset settings
Column Name Data Type Description
encodedkey varchar(32) A unique key.
isoffsetenabled tinyint(1) Whether the offset feature is enabled for this product.
loanproductkey varchar(32) The encoded key of the loan product.



productpaymentholidayssettings

DEPRECATED
Column Name Data Type Description
allowinterestaccrual tinyint(1) If set to true then accounts will continue to accrue interest during the payment holiday period.
encodedkey varchar(32) A unique key for these settings.
productkey varchar(32) The encoded key of the loan product.



productredrawsettings

table used for storing the redraw settings available for a product.
Column Name Data Type Description
allowredraw bit(1) Flag which indicates if the product has the redraw functionality enabled
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID, used as the primary key for this table.



productsecuritysettings

the security settings (guarantors, collateral, investor funds) available for an entity.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID.
funderinterestcommissionallocationtype varchar(255) 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)
funderinterestcommissionkey varchar(32) Constraints for funder interest commission. Foreign key to the decimalIntervalConstraints table.
iscollateralenabled bit(1) Whether collateral (assets or other goods) are accepted in order to reach required securities percentage from loan amount, as defined in this product
isguarantorsenabled bit(1) Whether guarantors (other clients) are accepted in order to reach the required securities percentage from loan amount, as defined in this product
isinvestorfundsenabled bit(1) Whether investor funds are accepted in order to allow external funding for an account
lockfundsatapproval bit(1) Whether investor funds are locked or not at the loan account’s approval
organizationinterestcommissionkey varchar(32) Constraints for organization interest commission. Foreign key to the decimalIntervalConstraints table.
requiredguaranties decimal(50,20) The securities percentage from loan amount that is needed in order for this account to be approved.
requiredinvestorfunds decimal(50,20) The required investor funds percentage, for opening an account with external funding



repayment

captures the details about repayments which are both due and have been paid off. all repayments belong to a loan account but are also themselves assigned to creditofficer & branches (for performance look-up reasons). a repayment captures the schedule and state of repayment, while the actual transactions are captured in the loantransaction model.
Column Name Data Type Description
assignedbranchkey varchar(32) Foreign key to the Branch that this account is assigned to
assignedcentrekey varchar(32) Foreign key to the Centre table indicating to which centre the repayment belongs to.
assigneduserkey varchar(32) Foreign key to the User (Credit Officer) who is assigned to his account
duedate datetime Date when this repayment is due (ex: ‘2011-09-07 00:00:00’) (Organization Time). Required
encodedkey varchar(32) The unique key for this repayment.
feesdue decimal(50,10) How much fees were originally due on this repayment (for fixed accounts only). This is equivalent to the Fees Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
feespaid decimal(50,10) How much fees are have been paid on this repayment (for fixed accounts only)
fundersinterestdue decimal(50,10) P2P accounts only - the amount of interest allocated to funders
interestdue decimal(50,10) The amount of interest that was due for this repayment. Required.
interestpaid decimal(50,10) The amount of interest paid for this repayment. Required.
lastpaiddate datetime 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 datetime Set to the newest date whenever a penalty is applied to this repayment. Or null if no penalty applied (Organization Time)
notes varchar(256) Notes about this repayment. Unused.
organizationcommissiondue decimal(50,10) P2P accounts only - the amount of interest originally due and allocated to organization as commission
parentaccountkey varchar(32) Foreign key to the loan account this repayment belongs to. Required
penaltydue decimal(50,10) How much penalty were originally due on this repayment (for fixed accounts only). This is equivalent to the Penaltiy Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
penaltypaid decimal(50,10) How much penalty has been paid on this repayment (for fixed accounts only)
principaldue decimal(50,10) The amount of principal originally due for this repayment. Required. This is equivalent to the Principal Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
principalpaid decimal(50,10) The amount of principal paid for this repayment. Required.
repaiddate datetime Date when this repayment has been fully repaid. Null if not fully repaid yet (Organization Time)
state varchar(256) 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
taxfeesdue decimal(50,10) The amount originally due as tax for fees. This is included in the Taxes Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
taxfeespaid decimal(50,10) The amount of taxes paid relating to fees charged on the account.
taxinterestdue decimal(50,10) The amount of taxes that are due at a specified moment in time relating to interest payments. This is included in the Taxes Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
taxinterestpaid decimal(50,10) The amount of taxes that were paid by the user relating to an interest payment
taxpenaltydue decimal(50,10) The amount of tax due relating to a penalty payment. This is included in the Taxes Expected column in the Mambu UI, it will not change with partial payments and always reflect the amount originally due.
taxpenaltypaid decimal(50,10) The amount of tax paid relating to a penalty payment.



repaymentdays

stores a loan account’s fixed days of month settings.
Column Name Data Type Description
accountkey varchar(32) The encoded key of the loan account. Links to the loanaccounts table.
day tinyint(2) The day of the month on which the repayment should fall.



repaymentfeedetails

a model used to keep fee details (fee due, fee paid and taxes per predefinedfee type) for a specific repayment.
Column Name Data Type Description
encodedkey varchar(32) The unique ID for these repayment fee details.
feedue decimal(50,10) The total fee due for the linked PredefinedFee on this repayment.
feepaid decimal(50,10) The total fee paid for the linked PredefinedFee on this repayment.
feereduced decimal(50,10) The amount of fees when they have been reduced, for example, during a grace period.
loantransactionkey varchar(32) 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
repaymentfeedetails_encodedkey_own varchar(32) The encoded key of a repayment in the repayments table to which these details relate.
repaymentfeedetails_integer_idx int(11) If there are more than one fee for the same repayment then this will show this fee’s index in that list.
taxonfeedue decimal(50,10) The amount of tax on fee due for the linked PredefinedFee on this repayment.
taxonfeepaid decimal(50,10) The amount of tax on fee paid for the linked PredefinedFee on this repayment.
taxonfeereduced decimal(50,10) The amount of tax due on fees when they have been reduced, for example, during a grace period.



repaymentsscheduleversioning

Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
id bigint(20)
loanaccountchangedeventkey varchar(32) Key of an entry in the loanaccountchangedeventkey table.
loantransactionkey varchar(32) The ID of the loan transaction. Foreign key, an entry in the loantransaction table.
parentaccountkey varchar(32) The encoded key of an account in the loanaccount table.
versioningcontent json



repaymentunappliedfeedetails

a model used to keep fee details for unapplied fee (fee due and taxes per predefined fee type) for a specific loan repayment.
Column Name Data Type Description
encodedkey varchar(32) A unique key.
feedue decimal(50,10) The total fee due for the linked predefinedfee of this repayment
indexinlist int(11) An index for cases where there is more than one unapplied fee for a single repayment.
predefinedfeekey varchar(32) The key of the entry in the predefinedfee containing the type of fee which contains the predefined fee amount (in the predefinedfeeamount table) that was not applied for the linked repayment.
repaymentkey varchar(32) The key of the entry in the repayment table to which this entity belongs.
taxonfeedue decimal(50,10) The amount of tax due for this repayment.



revolvingproductsettings

Holds revolving loan products specific settings.
Column Name Data Type Description
billingcycleenabled tinyint(1) Indicates whether a periodic billing cycle is enabled for this loan product.
productkey varchar(32) The encoded key of the product.



role

holding information about roles for users.
Column Name Data Type Description
accessrights mediumblob An encoded representation of the permissions assigned to this role.
creationdate datetime The date when the role was created. Stored as UTC
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the user and usagerightsroleassignment tables.
id varchar(256) The manually entered ID for this role.
isadministrator bit(1) Whether the role is for a user who should have administrator privileges.
iscreditofficer bit(1) Whether the role is for a Credit Officer type user.
isdelivery bit(1) Whether the role is for members of the Mambu delivery team who may assist in setting up your Mambu system.
issupport bit(1) Whether the role is for a support user.
isteller bit(1) Whether or not this user has the ‘teller’ role.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
name varchar(256) The name of the role.
notes mediumtext Notes about the role which have been entered via the Mambu UI.
permissions_encodedkey_oid varchar(32) Links to the an entry in the permissions table containing more permissions and whether they are enabled for this role.



savingsaccount

a savings account representing also a daily account, a term-deposit or a checking account is essentially the current account of the client where deposits and withdrawals can be made.
Column Name Data Type Description
accountholderkey varchar(32) Foreign key reference to the Client or Group which is holding on this account. Required
accountholdertype varchar(256) 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
accountstate varchar(256) 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
accounttype varchar(256)
Type of savings account. This must be one of:
- REGULAR_SAVINGS - a current account
- FIXED_DEPOSIT - a deposit is made for a certain time period until it reaches maturity
- SAVINGS_PLAN - deposits are made over a time until a target or time period is reached
Required
accruedinterest decimal(50,10) How much interest has been accrued into the account.
activationdate datetime Date when this saving account was activated (Organization Time)
allowoverdraft bit(1) Whether this account may be overdrawn
approveddate datetime The date on which the account was approved.
assignedbranchkey varchar(32) Foreign key to the Branch that this account is assigned to
assignedcentrekey varchar(32) Foreign key to the Centre table indicating to which centre the savings account belongs to.
assigneduserkey varchar(32) Foreign key to the User (Credit Officer) who is assigned to his account
balance decimal(50,10) The current balance of the account. Required.
blockedbalance decimal(50,10) The amount of this account’s funds which are unavailable for use because they are blocked.
closeddate datetime Set to when the account was closed (or null if never) (Organization Time)
creationdate datetime The date when the savings account was created.Stored as UTC.
currencycode varchar(32) The currency code associated to this product.Required.
encodedkey varchar(32) The encoded key for this database entry. This ID can be used with our API to get details on or update a specific Savings Account.
feesdue decimal(50,10) How much fees is due to be paid on this account
forwardavailablebalance decimal(50,10) Stores the positive hold balance for a savings account.
holdbalance decimal(50,10) Hold balance of the account (it is included in balance). Required
id varchar(32) Unique ID of the savings account. Required
interestdue decimal(50,10) How much interest is due to be paid on this account
interestpaymentdates mediumblob List of all dates on which the interest is payed into savings account
interestpaymentpoint varchar(256) Specifies when the interest should be paid to the account (Eg. FIRST_DAY_OF_MONTH, EVERY_3_MONTHS, etc)
interestsettingskey varchar(32) Foreign key to the interestaccountsettings table where the configuration for interest for this account is stored.
lastaccountappraisaldate datetime Date when the account has last been evaluated for interest calculation/maturity. Null if never (UTC)
lastinterestcalculationdate datetime Date when/if this account has the interest last calculated. Null if never (Organization Time)
lastintereststoreddate datetime Date when the account had last the interest applied (that is, stored from accrued to the balance). Null if never (Organization Time)
lastmodifieddate datetime The date when the savings account was modified last time. Stored as UTC.
lastoverdraftinterestreviewdate datetime When the overdraft interest was last time reviewed (as Organization Time)
lastsettoarrearsdate datetime The last time this account went into arrears.
lineofcreditkey varchar(32) The key to the line of credit where this account is registered
lockedbalance decimal(50,10) 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
lockeddate datetime The date when the account was locked(null if not closed). Saved as Organization Time.
maturitydate datetime For a fixed or compulsory savings plan, this is when the account matures (Organization Time)
maxdepositbalance decimal(50,10) The maximum depisit balance, if set.
maxwidthdrawlamount decimal(50,10) The max amount that can be withdrawn at any time (or null if no limit)
migrationeventkey varchar(32) Foreign key to the dataMigrationEvent table: references the particular operation if this account was created as part of a data import.
name varchar(256) The name of the loan account. Often same as the savings product name. Required.
negativeinterestaccrued decimal(50,10) The amount of interest accrued when the interest rate is negative.
notes mediumtext HTML notes about this savings account.
overdraftamount decimal(50,10) How much money has been taken out in overdraft
overdraftexpirydate datetime The date after which the account is considered in arrears (as Organization Time)
overdraftinterestaccrued decimal(50,10) The amount of overdraft interest that has been accrued in the account
overdraftinterestsettingskey varchar(32) References the entry in the interestaccountsettings table where settings concerning overdrafts are configured for this account.
overdraftlimit decimal(50,10) how much may be taken out as overdraft.
producttypekey varchar(32) Foreign key to the SavingsProduct which this account is based on. Required
recommendeddepositamount decimal(50,10) For account which have a recommended deposit amount
targetamount decimal(50,10) For savings plans, this is the savings target amount
technicalinterestdue decimal(50,10) How much interest is due to be paid on this account due to technical overdraft
technicaloverdraftamount decimal(50,10) How much money has been taken from unplanned overdraft. This balance is usually used when doing advice cards operation(offline cards transactions)
technicaloverdraftinterestaccrued decimal(50,10) The amount of technical overdraft interest that has been accrued in the account
withholdingtaxsourcekey varchar(32) 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



savingsaccountcustomvalue

Holds values for custom information for savings accounts. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



savingsaccountdailyaccruedinterest

stores daily interest accrual for savings accounts.
Column Name Data Type Description
accountkey varchar(32) The unique key of the account.
accruedinterest decimal(60,20) The amount of accrued interest.
id bigint(20) Primary key for rows in this table.
lastinterestcalculationdate datetime The date and time at which the accrued interest was last calculated.
lastmodifieddate datetime The last time this row was modified. UTC
negativeinterestaccrued decimal(60,20) The amount of interest accrued when the interest rate is negative.
overdraftinterestaccrued decimal(60,20) The amount of interest accrued due to the account being overdrawn.
technicaloverdraftinterestaccrued decimal(60,20) The amount of interest accrued due to technical overdraft of the account.



savingsproduct

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.
Column Name Data Type Description
accountingmethod varchar(256) The current accounting state for this product
- NONE - accounting is deactivated
- CASH - uses cash accounting
- ACCRUAL - uses accrual accounting
activated bit(1) Whether this product can be used or not.
allowarbitraryfees bit(1) Only if true users will be able to apply fees, for current object, of type ‘Other’; these fees can have any amount
allowoffset bit(1) Specify if the product allow to create accounts which can be used as offset for loans
allowoverdraft bit(1) Whether the accounts for this product may be overdrawn
allowtechnicaloverdraft bit(1) Indicates whether these accounts are allowed to go into technical overdraft, which can happen, for example, in accounts with credit or debit cards.
category varchar(256) The category of this savings product. This helps organise products into business areas. Can be UNCATEGORIZED, PERSONAL_DEPOSIT, BUSINESS_DEPOSIT, DAILY_BANKING_ACCOUNTS, BUSINESS_BANKING_ACCOUNTS, STORED_VALUE_ACCOUNTS.
collectinterestwhenlocked bit(1) Whether locked accounts still collect Interest or not (default is true)
creationdate datetime The date when the savings product was created. Stored as UTC
defaultmaturityperiod int(11) How long a fixed deposit or a savings plan can have a maturity period (the default period)
defaultopeningbalance decimal(50,10) The constraint for the default opening balance for a saving account using this product
description mediumtext The savings product description
dormancyperioddays int(11) Specifies the number of days for an account to change the state to Dormant
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case the predefinedfee, savingsproductbranch, savingsaccount and savingstransaction tables.
forallbranches bit(1) Field to indicate if this product is available for all branches
forgroups bit(1) If the product is available for groups
forindividuals bit(1) If the product is available for individual entities
id varchar(32) Unique ID of the savings product (specified by the user). Required
idgeneratortype varchar(256) 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 varchar(256) The pattern, containing ‘@’ for letters and ‘#’ for digits, for the RANDOM_PATTERN or the starting number for the INCREMENTAL_NUMBER
interestaccruedaccountingmethod varchar(32) Method being used for maintaining the interest accrued method for the loan product
interestcalculationbalance varchar(256) The balance which is used for the Interest calculation
- MINIMUM - the minimum balance during that time period
- AVERAGE - the average balance during that time period
interestdaysinyear varchar(256) How many days in a year should be used for interest calculations
interestpaidintoaccount bit(1) Whether the accounts for this product have interest paid into account
interestpaymentdates mediumblob List of all dates on which the interest is applied into savings account
interestpaymentpoint varchar(256) Specifies when the interest should be paid to the account:
- FIRST_DAY_OF_MONTH - interest is paid on day 1 of each month
- EVERY_WEEK - for every week, interest should be paid out each 14 days, first time is after 14 days since the account went active
- EVERY_OTHER_WEEK - for every 2 weeks, interest should be paid out each 14 days, first time is after 14 days since the account went active
- EVERY_MONTH - interest should be paid out after a month since activation. e.g. May 12th went active, so post on June 12th, July 12th
- EVERY_3_MONTHS - interest should be paid out after 3 months (quarterly) since activation. e.g. May 12th went active, so post on August 12th
interestratesettingskey varchar(32) Foreign key to the interestProductSettings table: Settings for the account interest rate.
lastmodifieddate datetime The date when the savings product was modified last time. Stored as UTC.
lineofcreditrequirement varchar(255) 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)
maturityperiodunit varchar(256) How long a fixed deposit or a savings plan can have a maturity period:
- DAYS
- WEEKS
- MONTHS
maximumbalance decimal(50,10) The maximum balance this account can hold
maxmaturityperiod int(11) How long a fixed deposit or a savings plan can have a maturity period (the maximum period)
maxopeningbalance decimal(50,10) The constraint for the maximum opening balance for a saving account using this product
maxoverdraftinterestrate decimal(50,10) The maximum overdraft interest account which can be set for accounts created using this product.
maxoverdraftlimit decimal(50,10) How much money may be taken out for the account to go negative
maxwidthdrawlamount decimal(50,10) Maximum amount per withdrawal
minmaturityperiod int(11) How long a fixed deposit or a savings plan can have a maturity period (the minimum period)
minopeningbalance decimal(50,10) The constraint for the minimum opening balance for a saving account using this product
minoverdraftinterestrate decimal(50,10) The minimum overdraft interest account which can be set for accounts created using this product.
name varchar(256) The name of the product.
overdraftdaysinyear varchar(256) 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
overdraftinterestcalculationbalance varchar(256) Which calculation will be used to calculate overdraft interest: MINIMUM - the lowest balance the account had that day, END_OF_DAY - the balance recorded after completion of all end of day jobs.
overdraftinterestratesettingskey varchar(32) Foreign key to the interestProductSettings table: Settings for the overdraft interest rate.
producttype varchar(256) 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 expired the account is ‘matured’ and withdrawals can be made


recommendeddepositamount decimal(50,10) Recommended amount for a deposit
withholdingtaxenabled bit(1) Whether withholding taxes are enabled for this product or not



savingsproductbranch

stores the association between a savings product and the branches where it is available.
Column Name Data Type Description
branchkey varchar(32) Foreign key to branch table: The key of the branch that is associated with a savings product.
encodedkey varchar(32) The encoded key for this database entry.
productkey varchar(32) Foreign key to `savingsProduct table: The savings product that is associated with a branch.



savingstransaction

keeps track of all transactions which occur with savings accounts such as state changes, repayments, fees, etc.
Column Name Data Type Description
amount decimal(50,10) Amount of the transaction. For example, 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 a negative balance
balance decimal(50,10) Running balance for the savings account including this current transaction.
branchkey varchar(32) Foreign key to the branch where this transaction was performed.
centrekey varchar(32) Foreign key to the centre where this transaction was performed.
comment varchar(256) Comment for the savings transaction.
creationdate datetime When the transaction occurred (as UTC)
currencycode varchar(32) Currency code for current transaction.
details_encodedkey_oid varchar(32) Details about the current savings transaction
encodedkey varchar(32) The encoded key for this database entry.
entrydate datetime Date of the entry (eg date of repayment or disbursal, etc.). As Organization Time
externalid varchar(36) The ID set by the customers that accepts alpha-numeric characters, underscore and dash. Can be null
feesamount decimal(50,10) Amount of fees involved in a transaction that affects an account with positive balance
fractionamount decimal(50,10) In a case of an Loan Fraction Bought transactions, this represent the fraction amount which was bought from another investor.
fundsamount decimal(50,10) Balance change amount involved in a transaction that affects an accountwith positive balance
interestamount decimal(50,10) Amount of interest involved in a transaction that affects an account with positive balance
interestrate decimal(50,20) The interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches.
linkedloantransactionkey varchar(32) Foreign key to the LoanTransaction which is associated with this transaction (for example a transfer which causes a repayment)
linkedsavingstransactionkey varchar(32) Foreign key to the SavingsTransaction which is associated with this transaction (for example a transfer which causes a deposit)
migrationeventkey varchar(32) Foreign key to the dataMigrationEvent table: If this transaction was created during import, track which migrationevent they came from.
overdraft_indexrate_key varchar(32) Foreign key to the indexRate table: The index overdraft interest rate that was set or changed in this transaction.
overdraftamount decimal(50,10) Balance change amount involved in a transaction that affects an overdraft
overdraftfeesamount decimal(50,10) Fees amount involved in a transaction that affects an overdraft
overdraftinterestamount decimal(50,10) Interest amount involved in a transaction that affects an overdraft
overdraftinterestrate decimal(50,20) The overdraft interest rate that was set or changed in this transaction. Used on product interest rate changes or interest tier switches.
overdraftlimit decimal(50,10) The overdraft limit that was set or changed in this transaction
parentaccountkey varchar(32) Foreign key to the savings account this transaction refers to. Required
paymentorderid varchar(36) The payment order ID for transactions which were created via the Mambu Payments Gateway, for example, a SEPA Direct Debit or Credit Transfer.
preciseinterestamount decimal(50,20) Interest amount without rounding(for now populated only for P2P).
producttypekey varchar(32) Link to the product to which the account owning this transaction belongs to.
reversaltransactionkey varchar(32) Foreign key to another savings transaction (to self - SavingsTransaction.encodedKey) where the reversal of the current transaction was made. It’s null if the transaction wasn’t reversed.Example: This transaction represents a fee applied transaction. If this transaction will be reversed, another transaction will be logged and this transaction will remember the key of the one where the reversal was made.
taxrate_encodedkey_oid varchar(32) Foreign key to the indexRate table: The tax rate that was set or changed in this transaction.
technicaloverdraftamount decimal(50,10) Balance change amount involved in a transaction that affects an technical overdraft
technicaloverdraftinterestamount decimal(50,10) Interest amount involved in a transaction that affects an technical overdraft
tillkey varchar(32) The till key associated with this transaction
transactionid bigint(20) Auto-increment unique ID of the savings transaction. Required
transactionperformerkey varchar(32)
type varchar(256) Type the transaction. Must be one of:
- CREATION - the account was created (DEPRECATED)
- EDIT - the account was modified (DEPRECATED)
- STATE_CHANGE - the account’s state changed, eg for an Approval (DEPRECATED)
- 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 account
- FEE_APPLIED - a fee was applied to the account
- FEE_ADJUSTED - a previously applied fee was adjusted
- WRITE_OFF - an account written off
- WITHDRAWAL_ADJUSTMENT - an adjustment to a withdrawal
- ADJUSTMENT - reversal of a deposit
- BEGIN_MATURITY_PERIOD - the start of a maturity period for an account (DEPRECATED)
- BRANCH_CHANGED - marks the moment when the parent account is assigned to a different branch
- FEE_REDUCTION_ADJUSTMENT - reversal for FEES_DUE_REDUCED
- FEES_DUE_REDUCED - a fee being decreased
- IMPORT - an account being imported
- INTEREST_APPLIED_ADJUSTMENT - reversal for the INTEREST_APPLIED transaction
- INTEREST_RATE_CHANGED - there was a change to the interest rate for this account
- LOAN_FUNDED - investor funds amount being transferred 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
userkey varchar(32) Foreign key to the User who performed this transaction. If null, it means this was a system-performed transactions (such as an automatic penalty)



savingstransactioncustomvalue

Holds values for custom information for savings transactions. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



savingstransactionguarantymapping

saves mapping information between investorfund and savingstransaction
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
newguarantykey varchar(32) Foreign key to the guaranty table: The ID of the new guaranty settings after a change.
oldguarantykey varchar(32) Foreign key to the guaranty table: The ID of the original guaranty settings.
savingstransactionkey varchar(32) Foreign key to the savingsTransaction table: The ID of the transaction to which these guaranty settings relate.



savingstransactiontoexternal

This is an internal table which may be used to record when transactions are simultaneously transmitted to other services, such as when new features are being tested and you have elected to be part of a pre-release testing programme.
Column Name Data Type Description
creationdate datetime(6) When the transaction occurred (as UTC).
errors varchar(512) Whether any errors ocurred during the process of syncing this transaction to an ancialliary service.
externalencodedkey varchar(255)
externaltype varchar(16) Details about the external system to whom is the request sent, for example MBU_LENDING for the Mambu lending module.
savingstransactionencodedkey varchar(32) The external key of the savings transaction.
status varchar(16) Status of the current transaction, CREATED, SUCCEEDED or FAILED.
updatedate datetime(6) When the transaction was updated (as UTC).



scheduledjobsummary

this table holds details on scheduled jobs including those run as eod processes.
Column Name Data Type Description
backgroundprocesskey varchar(32) Foreign key to an entry in the backgroundprocess table. Many jobs in this table can be related to one background process.
creationdate datetime(3) The date when this job was created. Stored as UTC
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
enddate datetime(3) The date and time at which the job was completed. UTC
noentities bigint(32) The number of entities which were affected by this scheduled job.
processingtime bigint(32) The time taken to complete the job, in seconds.
scheduledjobcategory varchar(32) Whether the job is a general ORGANIZATION task, relates to ACCOUNTS, LOANS, SAVINGS, or OTHER.
scheduledjobtype varchar(128) The type of job which has been scheduled.
startdate datetime(3) The date and time at which the job started. UTC



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.
Column Name Data Type Description
creationdate datetime The date when this row was created. Stored as UTC
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
enddate datetime The time at which the scheduled process ended.
entitykey varchar(32) Link to the entity, for example, the savings product, where settings are held.
startdate datetime The date and time at which the scheduled process started.
status varchar(255) The status of this process, for example started, completed, etc..
type varchar(255) The process type, the job type used to correlate the process with the actual jobs that needs to be executed. For example UPDATE_SAVINGS_ACCOUNTS_SETTING_FROM_PRODUCT, UPDATE_LOAN_ACCOUNTS_SETTINGS_FROM_PRODUCT, UPDATE_JOURNAL_ENTRIES_FOR_INTEREST_ACCRUAL.



securitysettings

stores the custom organization security settings (session timeout, password complexity, ip address restrictions, maximum number of consecutive failed logins allowed, failed login wait time, password reset link expiration time, whether to re-authenticate on critical actions, the password expiration days etc.).
Column Name Data Type Description
creationdate datetime The date when these settings were created. Stored as UTC
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables.
failedloginwaittime int(11) The time a user will have to wait before attempting to log in after a failed attempt.
ipaddressrestrictions mediumblob If the option to restrict access by IP has been enabled, this field will hold the list of allowed IP addresses.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
lockuserafterfailedloginattempts int(32) Indicates the number of failed login attempts a user is allowed before their account is locked. Once locked it can only be unlocked by an administrator.
lockuserafterfailedloginattemptswithinminutes int(32) Indicated the number of minutes over which failed login attempts will be counted. For example, if set to 10 minutes, the count of failed attempts will reset to 0 10 minutes after the last attempt.
maxfailedloginscountbeforecaptcha int(11) The number of failed login attempts a user will be allowed before they will need to prove they are human by completing captcha.
minpasswordlength int(11) The minimum length of a password created for a user account.
passwordexpirationactivationdate datetime The first day from which the password expiration countdown started.
passwordexpirationdays int(32) The number of days before a user will be prompted to change their password.
passwordresetlinkexpiretimehours int(11) The amount of time before the link to reset a password included in an email will expire.
reauthenticateoncriticalactions bit(1) Indicates whether users will be asked to enter a password when performing certain actions via our UI.
restrictedsecuritygroups mediumblob If IP address whitelisting has been enabled, this contains an array of the user types (admins, users and API users) to which this restriction will be applied.
restrictuseraccessip bit(1) Whether access to the UI, API or Admin functions should be restricted only to certain IP addresses.
sessiontimeout int(11) The number of minutes before a session expires. This value only applies to the Mambu UI.



sequence_table

This is a technical table which tracks the next available number for entities or processes which are assigned sequential IDs.
Column Name Data Type Description
next_val bigint(20) The next value available to be used for sequential numbering.
sequence_name varchar(255) The name of the process with sequential numbering, for example, tasks, documents or activites.



smsnotificationsettings

containing the credentials and settings for the sms notifications.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry.
fromnumber varchar(255) The telephone number which will appear as the sender on the recipient’s device.
gateway varchar(255) Indicates which of the supported SMS gateway providers, Twilio or Infobip, you are using to send SMS.
lastmodifieddate datetime The date on which this row was last modified. As UTC.
password varchar(255) The password to your account at the SMS gateway provider.
username varchar(255) The username used to log in to your SMS gateway provider.



task

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.
Column Name Data Type Description
assigneduserkey varchar(32) User assigned to the task. Foreign key to the user table.
completiondate datetime Organization time states the date the task was completed
createdbyuserkey varchar(32) The key of the user who created the task
creationdate datetime UTC date of creation of the task
description longtext, Description, notes of the task
duedate datetime Organization time states the due date of the task
encodedkey varchar(32) The encoded key for this task. This field should not be changed as it may be used as a foreign key to link with other tables as well as act as the index for this table.
id bigint(20) The id of the task
lastmodifieddate datetime UTC date of last modification
status varchar(256) ask status with valid values:
- OPEN
- COMPLETED
tasklinkkey varchar(32) Specifies who is the link to this task. If null, means nobody is linked to this task
tasklinktype varchar(256) Type of the link. Valid values:
- CLIENT
- GROUP
- LOAN_PRODUCT
- SAVINGS_PRODUCT
- CENTRE
- BRANCH
- USER
- LOAN_ACCOUNT
- DEPOSIT_ACCOUNT
title varchar(256) Title, summary of the task



tenant

Column Name Data Type Description
connectionpassword varchar(64)
connectionurl varchar(512)
connectionusername varchar(64)
creationdate datetime The date when this tenant was created. Stored as UTC
id varchar(64)
lastmodifieddate datetime The date on which this row was last modified. As UTC.
name varchar(128) The tenant name.



till

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. they need 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).
Column Name Data Type Description
balance decimal(50,20) The amount of money existing in the till (expected cash in till)
balanceconstraintstype varchar(32) One of:
- HARD - if a new transaction posted brings the balance in the Till beyond the specified thresholds, the Teller will get an error message and it will not be possible to post the transaction,
- SOFT - if a new transaction posted brings the balance in the Till beyond the specified thresholds, then the Teller will get a warning message, but the transaction will still be posted,
- NONE- no limits on the balance.
balancedifference decimal(50,10) The difference between the closing amount of the till and the expected amount
closeddate datetime The date when the till was closed (as Organization Time).
closingbalance decimal(50,10) The amount entered by the user as the available amount in till at its closing time
creationdate datetime The date when this till was created. Stored as UTC
encodedkey varchar(32) The encoded key for this database entry, this is an autogenerated and globally unique ID and is not the same as any internal ID you may have given your till. This field should not be changed as it may be used as a foreign key to link with other tables.
id varchar(32) The id of the till
lastmodifieddate datetime The date on which this row was last modified. As UTC.
maxbalance decimal(50,10) The fields specifies the maximum balance. When tellers reach the maximum allowed balance, they should transfer to vault.
minbalance decimal(50,10) 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.
openeddate datetime The date when the till was opened (as Organization Time).
originaltillkey varchar(32) Used for when reopening a till. When the till is reopened this field is populated with the encoded key of the closed till
state varchar(256) 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 its balance can be affected by transactions logged by the assigned teller
- CLOSED - Value used to mark the till as not-required. In this state, the till cannot have its opening amount or balance changed anymore.
tellerkey varchar(32) The key of the teller for which this till is assigned to
userkey varchar(32) The key of the user who created this till
vaultamount decimal(50,10) 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



transactionchannel

stores the definition of payment types. organizations often need to collect payments (and make deposits and withdrawals and disbursements) from different payment forms. for instance different bank sources, various payment gateways or agents or simple cash and cheques ( (eg. cash, cheque, bank or receipt). these payment types specify, on a product level, which sources are allowed for that product.
Column Name Data Type Description
activated bit(1) States whether this transaction channel is active and can be used when entering repayments
createdbyuserkey varchar(32) The key of the user who created the channel
creationdate datetime Date of creation
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, for example, this ID will be referenced in entries in the transactiondetails table.
id varchar(32) 32 character String hold the ID of the transaction channel
index int(11) Transaction channel position in the list of transaction channels displayed in administration
loan_custom_filter_constraint_key varchar(32) Foriegn key to the customFilter table. Maintains the custom constraints, if limited usage selected, the transaction channel on loan transactions.
loanconstraintsusage varchar(255) 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
name varchar(255) Name of this transaction channel, will be used in display forms when entering payments
savings_custom_filter_constraint_key varchar(32) Foreign key to the customFilter table. Maintains the custom constraints, if limited usage selected, the transaction channel on savings transactions.
savingsconstraintsusage varchar(255) 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
usagerightskey varchar(32) The usage rights that describes the transaction channel.



transactiondetails

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. fields are optional and are used for tracking and auditing purposes only.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables, in this case, the loantransaction, savingstransaction and discbursementdetails tables.
internaltransfer bit(1) Indicates whether the transaction was transferred between loans and savings accounts owned by the same customer.
targetsavingsaccountkey varchar(32) Foreign key to the savingsAccount table: In case of a transaction to a savings account this represent the savings account key for which the transaction was made.
transactionchannelkey varchar(32) Foreign key to the transactionChannel table: Associated payment type for the transaction.



transactionpaymentholidaysdetails

holds details about the payment holiday’s impact over the parent loan transaction.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
interestamount decimal(50,10) The amount of interest payable.
taxoninterestamount decimal(50,10) The amount ofd tax payable on the amount.
transactionkey varchar(32) Foreign key. An entry in the loantransaction table.



unusedloanidinterval

table containing unused numeric loan account ids. any creation of a loan account with a numeric id will be reflected in this table.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
endid bigint(32) The last ID in an unused range.
startid bigint(32) The first ID in the sequence which should be skipped.
version bigint(32)



unusedloanidintervalupdate

details for unusedloanidinterval update operation. contains data about update input and update result.
Column Name Data Type Description
encodedkey varchar(32) A unique key for this row.
splitresultendid bigint(32) Split interval result end id. Can be null. If splitResultStartId also null. This means that after updating the interval the interval was not split, otherwise is considered an infinite value.
splitresultstartid bigint(32) Split interval result start id. Can be null, this means that after update the interval the interval was not split.
updatedendid bigint(32) Updated interval end id. Can be null for the last unused interval. In this case is considered an infinite value.
updatedstartid bigint(32) Updated interval start id. Can’t be null.
updatedwithendid bigint(32) End id to update interval. Can be null if the update operation is not triggered by live migration and the interval is updated with only one value. In this case should consider having same value as updatedWithStartId.
updatedwithstartid bigint(32) Start id to update interval. Can’t be null.
updateresultendid bigint(32) Updated interval end id. Can be null for the last unused interval. In this case is considered an infinite value
updateresultstartid bigint(32) Updated interval result start id. Can be null, this means that after update the interval was deleted.



usagerights

entity used to maintain the relation between a usage-rights enabled entity and the roles that can edit it.
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field should not be changed as it may be used as a foreign key to link with other tables
isaccessiblebyallusers bit(1) Whether or not all users can access this entity.



usagerightsroleassignment

Column Name Data Type Description
idx int(11)
rolekey varchar(32) The role ID.
usagerightskey varchar(32)



user

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).
Column Name Data Type Description
accessrights mediumblob The access rights an user can have:
- MAMBU
- MOBILE
- APIS
alias varchar(32) Any alias provided for this user.
apiconsumertype varchar(256) If using the API consumers feature this will indicate the type. Can be one of AUDIT, MAMBU_API, PAYMENTS, STREAMING_API. For more information check our support page on API consumers here
assignedbranchkey varchar(32) Foreign key to the Branch table indicating which branch the user belongs to
creationdate datetime The date when the user was created. Stored as UTC
email varchar(256) The email of the user.
encodedkey varchar(32) The encoded key for this database entry, it can be used in our API to get data on a specific user of the system. This field is globally unique and should not be changed.
failedloginscount int(11) Stores the number of consecutive failed logins
failedloginsdates mediumblob Stores the dates of failed logins. Maintained in UTC.
firstname varchar(256) User’s first name
homephone varchar(256) The home phone number of the user
id bigint(20) The id of the user (it’s auto-incremented after each created user).
isadministrator bit(1) Whether this user is an administrator
iscreditofficer bit(1) Whether this user is a credit officer
isdelivery bit(1) Whether this user is a member of the Mambu delivery team who may assist in initially setting up your Mambu system.
issupport bit(1) Flag indicating the user is in charge with the Mambu technical support
isteller bit(1) Flag indicating if the user is a teller
language varchar(256) The language used for the interface. It can be:
- ENGLISH (default)
- PORTUGUESE
- SPANISH
- RUSSIAN
- FRENCH
lastloggedindate datetime The date when the user last logged in the application (UTC)
lastmodifieddate datetime The date on which this row was last modified. As UTC.
lastname varchar(256) User’s last name
lastpasswordresetdate datetime The date on which this user’s password was last reset.
mobilephone1 varchar(256) The mobile phone number of the user
notes mediumtext A short description of the user.
password varchar(256) The encrypted password.
permissions_encodedkey_oid varchar(32) The permissions of this user. Foreign key the permissions table.
provisionedthroughfederation bit(1) 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.
role_encodedkey_oid varchar(32) References the set of roles this user has which is held in the roles table.
title varchar(256) The title of the user, for example, MR, MRS &c.
transactionlimits mediumblob Larger organizations may want to be able to restrict different users to different transaction 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 approving and disbursing loans, entering repayments, making deposits and withdrawls or for applying fees.
twofactorauthentication bit(1) 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
username varchar(254) The username (Unique)
userpreferenceskey varchar(32) References the user’s preferences which is held in the userpreferences table.
userstate varchar(256) Whether a user can have access to his Mambu account. Possible states are:
- ACTIVE
- INACTIVE



usercustomvalue

Holds values for custom information for users. Please note: This table is for an upcoming feature and may not contain any data for your organization.
Column Name Data Type Description
definitionids mediumtext Holds the list of the custom field encodedkeys generated from the JSON held in the values column.
linkedentitykeys mediumtext Holds the list of linkedentitykeys generated from the JSON held in the values column. These will be the entities to which this custom field is linked for custom fields of type CLIENT_LINK, GROUP_LINK or USER_LINK.
parentkey varchar(32) The encodedkey of the entity holding the custom values within the values JSON column. This will be the encodedkey of the entity with which these custom field values are associated.
values json Holds all the custom field data in a JSON structure, including keys, IDs, values and indexes.



usermanagedbranch

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.
Column Name Data Type Description
branchkey varchar(32) The key of the managed branch
encodedkey varchar(32) The encoded key for this database entry. This field is autogenerated and should not be changed.
indexinlist int(11) 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 varchar(32) The key of the user



userpreferences

the preferences for a specific user, regarding the list column configurations (for clients, groups, loans, savings and transactions lists) and other configurable components
Column Name Data Type Description
defaultactivitieslookupcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing activites in the UI.
defaultclientcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing clients in the UI.
defaultdashboardkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the dashboard in the UI.
defaultdepositscollectioncolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the deposits collection screen, availble under Deposit Transactions in the UI.
defaultgroupcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing groups in the UI.
defaultinterestaccrualbreakdowncolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing interest accrual breakdowns in the UI.
defaultjournalentriescolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing general ledger journal entries in the UI.
defaultlineofcreditcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing lines of credit in the UI.
defaultloancolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing loan accounts in the UI.
defaultloanrepaymentscollectioncolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the loan repayments collection screen, available under Loan Transactions in the UI.
defaultnotificationmessagecolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing notifications in the UI.
defaultorganizationbranchesconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the list of branches in the UI.
defaultorganizationcentresconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the list of centres in the UI.
defaultorganizationusersconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the list of users in the UI.
defaultrepaymentcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing loan repayment schedules in the UI.
defaultrepaymentscollectioncolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing the repayments collection screen in the UI.
defaultsavingscolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing savings accounts in the UI.
defaultsavingstransactionslookupcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing savings account transactions in the UI.
defaulttaskscolumnconfiguration varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing tasks in the UI.
defaulttransactionslookupcolumnconfigurationkey varchar(32) The key of an entry in the columnconfiguration table holding this user’s default settings for viewing transactions in the UI.
encodedkey varchar(32) A unique key for this set of defaults.
helpenabled bit(1) Whether or not help is enabled for this user.



webhooknotificationsettings

containing settings for web hook notifications
Column Name Data Type Description
encodedkey varchar(32) The encoded key for this database entry. This field can be used with our API to get details on an individual notification.
lastmodifieddate datetime The date on which the settings were last modified.
notificationstate varchar(255) Whether the Webhook feature is ENABLED or NONE.



Ask the Mambu Community

If you have a question about how anything works or have come across something you haven't seen explained here, get in touch with our community of fellow users and Mambuvians where someone will lend a hand.


Was this article helpful?