A loan product allows you to set up, in advance, the parameters for a type of loan that you wish to offer. Loan products are flexible and highly customizable templates for creating individual loans. For more information, see Setting Up New Loan Products.
With Configuration as Code (CasC), you may batch configure your loan products configuration via Mambu API v2 using YAML. For general information on CasC, see Configuration as Code Overview.
API operations
CasC for loan products supports two operations.
Action
Endpoint
Description
GET
/configuration/loanproducts.yaml
Get current loan products configuration.
PUT
/configuration/loanproducts.yaml
Write a new loan products configuration to Mambu.
Please Note
If you write a PUT configuration to Mambu, any loan products not included in the new YAML configuration will be deleted - if possible.
If the loan products cannot be deleted, you will receive warnings.
Requests
For general information on CasC requests such as authentication and required headers, see Configuration as Code Overview.
The following section shows sample requests using curl and basic authentication. For all examples, replace TENANT_NAME with your actual tenant name. {auth} is the base64 encoded value of username:password. For more information, see Authentication in our API reference.
Additional headers
You may send synchronous or asynchronous PUT requests.
Please be Aware
If you have more than 60 loan products, we recommend you make your request asynchronous.
To use the endpoint asynchronously, you must provide two additional headers:
X-Mambu-Async with a value of true.
X-Mambu-Callback with the callback URL.
The expected status code in case of a successful asynchronous request is 202 Accepted. When the update configuration operation is completed, a message will be posted to the provided URL with information about whether the updated request completed successfully or not.
The input requirements are in addition to any existing validations or input requirements for loan products. The same loan product requirements apply whether a loan product is made via the Mambu UI, Mambu API v2, or through CasC.
Basic fields
Name
Validations
Required
id
Must not be empty, must not exceed a length of 16 characters, and must not be duplicate.
YES
name
Must not be blank, and must be between 1 and 255 characters.
YES
Credit Arrangement Settings
Name
Validations
Required
creditArrangementSettings
-
NO
creditArrangementRequirement
If creditArrangementSettings are defined, must not be null.
YES
Offset Settings
Name
Validations
Required
offsetSettings
-
NO
allowOffset
If offsetSettings are defined, must not be null.
YES
Redraw Settings
Name
Validations
Required
redrawSettings
-
NO
allowRedraw
If redrawSettings are defined, must not be null.
YES
Currency
Name
Validations
Required
currency
-
NO
code
If currency is defined, must not be null and must contain existing currencies.
YES
Loan Amount Settings
Name
Validations
Required
loanAmountSettings
-
NO
trancheSettings. maxNumberOfTranches
If loanAmountSettings are defined, must not be null.
YES
Grace Period Settings
Name
Validations
Required
gracePeriodSettings
-
NO
gracePeriodType
If gracePeriodSettings are defined, must not be null.
YES
New Account Settings
Name
Validations
Required
newAccountSettings
-
NO
idGeneratorType
If newAccountSettings are defined, must not be null.
YES
idPattern
If newAccountSettings are defined, must not be null.
YES
accountInitialState
If newAccountSettings are defined, must not be null.
YES
Interest Settings
Name
Validations
Required
interestSettings
-
YES
interestApplicationMethod
Must not be null.
YES
interestBalanceCalculationMethod
Must not be null.
YES
interestCalculationMethod
Must not be null.
YES
daysInYear
Must not be null.
YES
scheduleInterestDaysCountMethod
Must not be null.
YES
interestType
Must not be null.
YES
indexRateSettings
-
NO
indexRateSettings. indexSourceId
If indexRateSettings is defined, must contain existing ID.
YES
indexRateSettings. interestRate
If indexRateSettings is defined, then it must respect the condition min<=def<=max
YES
indexRateSettings. interestRateTerms
If indexRateSettings is defined, must not be null.
YES
indexRateSettings. interestRateSource
If indexRateSettings is defined, must not be null.
YES
interestRateSettings
If indexRateSettings is not null then interestRateSettings must be empty.
YES
indexSourceId
Must not be duplicate, must contain existing ID.
YES
Fees Settings
Name
Validations
Required
feesSettings
-
NO
fees
-
NO
fees.id
If fees is defined, must not be blank.
YES
fees.trigger
If fees is defined, must not be null.
YES
fees.feeApplication
If fees is defined, must not be null.
YES
fees.state
If fees is defined, must not be null.
YES
accountingRules. glAccountId
If feesSettings is defined, must not be null, must contain existing ID.
YES
accountingRules. financialResource
If feesSettings is defined, must not be null.
YES
accountingRules. transactionChannelId
If feesSettings is defined, must contain existing ID.
YES
Payment Settings
Name
Validations
Required
paymentSettings
-
NO
paymentMethod
If paymentSettings is defined, must not be null.
YES
amortizationMethod
If paymentSettings is defined, must not be null.
YES
prepaymentSettings
-
NO
prepaymentSettings. prepaymentAcceptance
If prepaymentSettings is defined, must not be null.
YES
prepaymentSettings. futurePaymentsAcceptance
If prepaymentSettings is defined, must not be null.
YES
latePaymentsRecalculationMethod
If paymentSettings is defined, must not be null.
YES
repaymentAllocationOrder
If paymentSettings is defined, must not be null.
YES
principalPaymentSettings
-
NO
principalPaymentSettings. amount
If principalPaymentSettings is defined and it is not null, then it must respect the condition min<=def<=max
NO
principalPaymentSettings. percentage
If principalPaymentSettings is defined and it is not null, then it must respect the condition min<=def<=max
NO
principalPaymentSettings. principalPaymentMethod
If principalPaymentSettings is defined and if product type is revolving credit, you must define either principalPaymentMethod or totalDuePayment and the other must be null.
YES
principalPaymentSettings. totalDuePayment
If principalPaymentSettings is defined and if product type is revolving credit, you must define either principalPaymentMethod or totalDuePayment and the other must be null.
YES
principalPaymentSettings. principalFloorValue
If principalPaymentSettings is defined, must be null if totalDueAmountFloor is not null.
YES
principalPaymentSettings. totalDueAmountFloor
If principalPaymentSettings is defined, must be null if principalFloorValue is not null.
YES
Internal Controls
Name
Validations
Required
internalControls
-
NO
internalControls.dormancyPeriodDays
Value must be between 0 and 2000000000.
NO
internalControls.lockSettings
-
NO
lockSettings.lockPeriodDays
Value must be between 1 and 2000000000.
NO
lockSettings.cappingPercentage
Value must be between 0 and 1999999973982208
NO
Tax Settings
Name
Validations
Required
taxSettings
-
NO
taxSourceId
If defined, must contain existing ID.
NO
Account Link Settings
Name
Validations
Required
accountLinkSettings
-
NO
accountLinkSettings. linkableDepositProductId
If defined, must contain existing ID.
NO
accountLinkSettings. settlementMethod
If accountLinkSettings is defined, must not be null.
YES
Accounting Settings
Name
Validations
Required
accountingSettings
-
NO
accountingSettings.accountingMethod
If accountingSettings is defined, must not be null.
YES
accountingSettings.interestAccrualCalculation
If accountingSettings is defined, must not be null.
YES
accountingRules. glAccountId
If accountingSettings is defined, must not be null and must contain existing ID.
YES
accountingRules. financialResource
If accountingSettings is defined, must not be null.
YES
accountingRules. transactionChannelId
If accountingSettings is defined, must not be null. Can only specify one rule per financialResource.
YES
Penalty Settings
Name
Validations
Required
penaltySettings
-
NO
penaltySettings. loanPenaltyCalculationMethod
If penaltySettings are defined, must not be null.
YES
Availability Settings
Name
Validations
Required
availabilitySettings
-
NO
availabilitySettings. branchSettings
-
NO
branchSettings. availableProductBranches
If defined, must contain existing ID.
NO
branchSettings. allBranches
If branchSettings is defined, must not be null.
YES
branchSettings. branches
If branchSettings is defined, must not be null.
YES
availabilitySettings. availableFor
If defined, must not be null.
NO
Schedule Settings
Name
Validations
Required
scheduleSettings
Not mandatory, except for the revolving credit loan product type.
NO
roundingSettings
-
NO
roundingSettings. repaymentElementsRoundingMethod
If roundingSettings is defined, must not be null.
YES
billingCycles
-
NO
billingCycles. enabled
If billingCycles is defined, must not be null.
YES
previewSchedule
-
NO
previewSchedule. enabled
If previewSchedule is defined, must not be null.
YES
Replies
If you do not receive a 200 OK status code then fix any validation errors and make another PUT request until you receive a 200 OK status code.
Please Note
If you PUT a valid YAML configuration to the API and you do not receive a 200 OK status code within 60 seconds, you may receive a 504 Gateway Timeout status code. We expect all responses to be below 60 seconds.
If you encounter this issue, please contact us through Mambu Support so we can investigate it.
Was this article helpful?
Thank you for your feedback! Our team will get back to you
Eddy AI, facilitating knowledge discovery through conversational intelligence
Search Limit Exceeded. Please upgrade the plan.
Answer copied!
No results found
Provide more context or information so that I can better understand and assist you
Cookies
We value your privacy. We use cookies to provide the best site experience possible. By using our site, you acknowledge that you accept our Privacy Policy.