Deposit Fee Amount
  • 30 Apr 2024
  • 7 Minutes To Read
  • Dark
    Light
  • PDF

Deposit Fee Amount

  • Dark
    Light
  • PDF

Article Summary

Description

This extension point in deposits allows FI to build use cases in which deposit accounts balances can be flexibly adjusted subject to business logics using data entities of the accounts. Example: applying a fee when account balance falls under a certain threshold or giving the account holder a bonus/incentive amount if the account balance is greater than a certain thresholds.

Your function will receive an input payload containing savings account data, along with associated client or group information and related custom field values. The result produced by your function will be interpreted as a fee amount. Both standard custom fields and grouped fields are supported.

While our system permits a large number of custom field values, for optimal performance and system responsiveness, we strongly recommend limiting yourself to a maximum of 50-100 custom field values per entity. Also, the total size of the input payload to your custom function should not exceed 6MB. This is a hard limit, and any payload exceeding this size will not be processed.

Technical contract specification

Extension point ID: DEPOSIT_FEE_AMOUNT

Input properties

DepositFeeAmountInput

Input payload defining all provided data fields

NameTypeAvailabilityDescription
accountAccountInformationAlways presentAccount information.

Adheres to the DepositAccount schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.
accountCustomFieldsobjectSometimes presentValues from standard custom fields for the account, presented without being grouped into custom field sets.

Example:
"accountCustomFields": {
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
accountGroupedCustomFieldsobjectSometimes presentValues from grouped custom fields for the account.

Example:
"accountGroupedCustomFields": {
"_customFieldSet": [
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
},
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
]
}
clientClientInformationSometimes presentClient (account holder) information.

Adheres to the Client schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.
clientCustomFieldsobjectSometimes presentValues from standard custom fields for the client, presented without being grouped into custom field sets.

Example:
"clientCustomFields": {
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
clientGroupedCustomFieldsobjectSometimes presentValues from grouped custom fields for the client.

Example:
"clientGroupedCustomFields": {
"_customFieldSet": [
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
},
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
]
}
groupGroupInformationSometimes presentGroup (account holder) information.

Adheres to the Group schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.
groupCustomFieldsobjectSometimes presentValues from standard custom fields for the group, presented without being grouped into custom field sets.

Example:
"groupCustomFields": {
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
groupGroupedCustomFieldsobjectSometimes presentValues from grouped custom fields for the group.

Example:
"groupGroupedCustomFields": {
"_customFieldSet": [
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
},
{
"customFieldDefinitionId1": "value",
"customFieldDefinitionId2": "value",
"customFieldDefinitionId3": "value"
}
]
}

Output properties

The only output for this extension point is the calculated fee amount created by the logic of your Mambu Function. The fee amount must be a string (number).

Constraint: amount can not be zero

string(number)

Schemas

AccountInformation

Account information.

Adheres to the DepositAccount schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.

NameTypeAvailabilityDescription
accountStateAccountStateSometimes presentThe state of the deposit account
accountTypeAccountTypeSometimes presentIndicates the type of the deposit account and the product that it belongs to
accruedIntereststring(number)Sometimes presentThe amount of positive interest that has been accrued in the account
activationDatestring(date-time)Sometimes presentThe date this deposit account was activated (as Organization Time)
allowOverdraftbooleanSometimes presentWhether this account supports overdraft or not
approvedDatestring(date-time)Sometimes presentThe date this deposit account was approved (as Organization Time)
blockedBalancestring(number)Sometimes presentThe sum of all the blocked amounts on this account
creationDatestring(date-time)Sometimes presentThe date this deposit account was created
currencyCodestringSometimes presentThe currency code
feesDuestring(number)Sometimes presentHow much fees is due to be paid on this account
forwardAvailableBalancestring(number)Sometimes presentThe sum of all the authorization hold amounts that have CRDT as creditDebitIndicator from this account
holdBalancestring(number)Sometimes presentThe sum of all the authorization hold amounts that have DBIT as creditDebitIndicator from this account
interestDuestring(number)Sometimes presentThe interest due. Indicates how much interest it's due for the account at this moment
interestPaymentPointInterestPaymentPointSometimes presentThe interest payment point, specifies when the interest should be paid to the account
lastAccountAppraisalDatestring(date-time)Sometimes presentWhen/if the account had last been evaluated for interest calculations/maturity (as Organization Time)
lastInterestCalculationDatestring(date-time)Sometimes presentWhen/if the account had the interest last calculated (as Organization Time)
lastInterestReviewDatestring(date-time)Sometimes presentWhen the regular interest was last time reviewed (as Organization Time)
lastInterestStoredDatestring(date-time)Sometimes presentWhen/if the account had last interest applied (stored to balance) (as Organization Time)
lastModifiedDatestring(date-time)Sometimes presentThe last date the deposit account was updated
lastOverdraftInterestReviewDatestring(date-time)Sometimes presentWhen the overdraft interest was last time reviewed (as Organization Time)
lastSetToArrearsDatestring(date-time)Sometimes presentDate when the deposit account was set to In Arrears state, or not defined if the account is not In Arrears state (as Organization Time)
lockedBalancestring(number)Sometimes presentNo operation can modify the balance of the account and get it lower than this locked balance
lockedDatestring(date-time)Sometimes presentThe date this deposit account was locked (as Organization Time)
maturityDatestring(date-time)Sometimes presentFor fixed or compulsory savings plans, this is when the account matures (as Organization Time)
maxDepositBalancestring(number)Sometimes presentThe maximum deposit balance of the account
maxWithdrawalAmountstring(number)Sometimes presentThe maximum amount allowed for a withdrawal
negativeInterestAccruedstring(number)Sometimes presentThe amount of negative interest that has been accrued in the account
overdraftAmountstring(number)Sometimes presentHow much money has been taken out in overdraft
overdraftExpiryDatestring(date-time)Sometimes presentThe expiration date of an overdraft (as Organization Time)
overdraftInterestAccruedstring(number)Sometimes presentThe amount of overdraft interest that has been accrued in the account
overdraftLimitstring(number)Sometimes presentHow much may be taken out as overdraft, not defined means 0
recommendedDepositAmountstring(number)Sometimes presentRecommended amount for a deposit
targetAmountstring(number)Sometimes presentThe target amount (the monthly/weekly/daily deposits should/may lead towards a savings goal)
technicalOverdraftAmountstring(number)Sometimes presentHow much money has been taken out as unplanned overdraft
technicalOverdraftInterestAccruedstring(number)Sometimes presentThe amount of technical overdraft interest that has been accrued in the account
technicalOverdraftInterestDuestring(number)Sometimes presentHow much interest is due to be paid on this account as a result of the technical overdraft
totalBalancestring(number)Always presentThe current balance of the account

AccountState

The state of the deposit account

Enumerated values: PARTIAL_APPLICATION | PENDING_APPROVAL | APPROVED | PARTIALLY_DISBURSED | REPAID | REJECTED | WRITTEN_OFF | ACTIVE | ACTIVE_IN_ARREARS | MATURED | LOCKED | LOCKED_CAPPING | DORMANT | CLOSED | CLOSED_RESCHEDULED | REFINANCED | RESCHEDULED | CLOSED_WRITTEN_OFF | CLOSED_WITHDRAWN | WITHDRAWN | CLOSED_REJECTED | TERMINATED

AccountType

Indicates the type of the deposit account and the product that it belongs to

Enumerated values: CURRENT_ACCOUNT | REGULAR_SAVINGS | FIXED_DEPOSIT | SAVINGS_PLAN | INVESTOR_ACCOUNT

ClientInformation

Client (account holder) information.

Adheres to the Client schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.

NameTypeAvailabilityDescription
activationDatestring(date-time)Sometimes presentThe date when client was set as active for the first time
approvedDatestring(date-time)Sometimes presentThe date when client was approved
birthDatestring(date-time)Sometimes presentThe date when this client was born
genderGenderSometimes presentGender of the person, male or female
stateStateSometimes presentThe state of a client shows his workflow status, if he is waiting approval or is rejected or blacklisted

Gender

Gender of the person, male or female

Enumerated values: MALE | FEMALE

GroupInformation

Group (account holder) information.

Adheres to the Group schema from Mambu API v2, but with all hierarchical structures flattened to a single level.

Some fields have been intentionally omitted as they are not relevant for Mambu Functions.

NameTypeAvailabilityDescription
creationDatestring(date-time)Sometimes presentThe date this group was created
groupNamestringAlways presentThe name of the group
lastModifiedDatestring(date-time)Sometimes presentThe last date the group was updated

InterestPaymentPoint

The interest payment point, specifies when the interest should be paid to the account

Enumerated values: FIRST_DAY_OF_MONTH | DAILY | EVERY_WEEK | EVERY_OTHER_WEEK | EVERY_MONTH | EVERY_3_MONTHS | BI_ANNUALLY | ANNUALLY | ON_FIXED_DATES | ON_ACCOUNT_MATURITY

State

The state of a client shows his workflow status, if he is waiting approval or is rejected or blacklisted

Enumerated values: PENDING_APPROVAL | INACTIVE | ACTIVE | EXITED | BLACKLISTED | REJECTED


Was this article helpful?