Internal Controls Configuration
With internal controls you can set up automatic controls for loans, such as the dormancy period, the number of days you want to wait before locking accounts in arrears or automatically locking accounts in arrears when interest, fees, and penalties are more than a percentage of the current principal balance or of the original principal amount. For more information, see Internal Controls.
With Configuration as Code (CasC), you may batch configure your internal controls configuration via the API using YAML. For general information on CasC, see Configuration as Code Overview.
API Operations
CasC for internal controls supports two operations.
| Action | Endpoint | Description |
|---|---|---|
GET | /configuration/internalcontrols.yaml | Get current internal controls configuration. |
PUT | /configuration/internalcontrols.yaml | Write a new internal controls configuration to Mambu. |
If you PUT a configuration to Mambu, any current configuration settings not included in the new YAML configuration will be deleted. PATCH requests are not currently supported.
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.
regarding authentication, {auth} is the base-64-encoded value of username:password. For more information, see Authentication in our API reference.
GET configuration
curl -X GET 'https://TENANT_NAME.mambu.com/api/configuration/internalcontrols.yaml' \
-H 'Accept: application/vnd.mambu.v2+yaml' \
-H 'Authorization: Basic {auth}'
PUT configuration
curl -X PUT 'https://TENANT_NAME.mambu.com/api/configuration/internalcontrols.yaml' \
-H 'Accept: application/vnd.mambu.v2+yaml' \
-H 'Content-Type: application/yaml' \
-H 'Authorization: Basic {auth}' \
--data-binary @internalcontrols.yaml
@internalcontrols.yaml represents the absolute path of the file on your device.
Use “--data-raw” if you want to specify the YAML body inline.
Example configuration body
---
loanExposure:
exposureType: "SUM_OF_LOANS"
exposureAmount: 25000.00
assignmentConstraints:
- "BRANCH"
- "CENTRE"
- "CREDIT_OFFICER"
allowMultipleLoans: true
allowMultipleGroupMemberships: true
duplicateClientFieldsConfiguration:
duplicateClientChecks:
- "DOCUMENT_ID_AND_TYPE"
- "HOME_PHONE"
- "MOBILE_PHONE"
- "EMAIL"
- "FIRST_NAME_AND_LAST_NAME"
- "LAST_NAME_AND_DATE_OF_BIRTH"
duplicateClientConstraintAction: "ERROR"
arrearsDaysBeforeWriteOff: 30
maxAllowedUndoClosurePeriod: 60
defaultClientState: "PENDING_APPROVAL"
defaultLineOfCreditState: "PENDING_APPROVAL"
groupSizeLimit:
groupSizeLimitType: "HARD"
minGroupSizeLimit: 10
maxGroupSizeLimit: 20
approvalDisbursalTwoManRuleEnabled: true
availableDashboardSections:
- "CLIENTS"
- "CURRENT_TILLS"
- "FAVOURITE_VIEWS"
- "INDICATORS"
- "LATEST_ACTIVITY"
- "TASKS"
- "UPCOMING_REPAYMENTS"
Replies
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.
Attributes
| Name | Type | Description | Required |
|---|---|---|---|
loanExposure | Loan Exposure Configuration | Configuration for maximum exposure to a client | ✔ |
loanExposure.exposureType | String | Type of maximum exposure to a client. | ✔ |
loanExposure.exposureAmount | Number | Maximum amount. | Required when exposureType is not UNLIMITED. |
assignmentConstraints | List | List of required assignments for clients and groups, ordered alphabetically. |