Internal Controls Configuration
  • 03 May 2023
  • 3 Minutes To Read
  • Dark
    Light
  • PDF

Internal Controls Configuration

  • Dark
    Light
  • PDF

Article summary

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.

ActionEndpointDescription
GET/configuration/internalcontrols.yamlGet current internal controls configuration.
PUT/configuration/internalcontrols.yamlWrite a new internal controls configuration to Mambu.
Please Note

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.

With regards to 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 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.

Attributes

NameTypeDescriptionRequired
loanExposureLoan Exposure ConfigurationConfiguration for maximum exposure to a client
loanExposure.exposureTypeStringType of maximum exposure to a client.
loanExposure.exposureAmountNumberMaximum amount.Required when exposureType is not UNLIMITED.
assignmentConstraintsListList of required assignments for clients and groups, ordered alphabetically.
allowMultipleLoansBooleanOption that shows if multiple loans are allowed or not.
allowMultipleGroupMembershipsBooleanOption that shows if a client can be member of multiple groups.
duplicateClientFieldsConfigurationDuplicate Client Fields ConfigurationThe duplicate client constraints configuration that are available in the administration and can be performed.
duplicateClientFieldsConfiguration.
duplicateClientChecks
ListConstraints regarding what fields can't be duplicate between two clients, ordered alphabetically.
duplicateClientFieldsConfiguration.
duplicateClientConstraintAction
StringAction to be taken if constraints exist and are not met.
arrearsDaysBeforeWriteOffNumberNumber of days that are required before an account can be written off.
maxAllowedUndoClosurePeriodNumberMaximum of days we allow users to undo of close obligations met for an loan account.
defaultClientStateStringThe state that a client it's set when it's created.
defaultLineOfCreditStateStringThe state that a line of credit it's set when it's created.
groupSizeLimitGroup Size Limit ConfigurationConfiguration for the group size limitations.
groupSizeLimit.groupSizeLimitTypeStringGroup size limit type. The options are HARD, WARNING, and NONE.
groupSizeLimit.minGroupSizeLimitNumberMinimum group size.Required when groupSizeLimitType is not NONE.
groupSizeLimit.maxGroupSizeLimitNumberMaximum group size.Required when groupSizeLimitType is not NONE.
approvalDisbursalTwoManRuleEnabledBooleanRequires separate users for approvals and disbursals.
availableDashboardSectionsListList of available dashboard sections, ordered alphabetically. The options are UPCOMING_REPAYMENTS, INDICATORS, LATEST_ACTIVITY, FAVOURITE_VIEWS, TASKS, CURRENT_TILLS, and CLIENTS.

Validations

NameValid value range
loanExposure.exposureAmount0-2,000,000,000,000,000
arrearsDaysBeforeWriteOff0-2,000,000,000
maxAllowedUndoClosurePeriod0-2,000,000,000
groupSizeLimit.minGroupSizeLimit0-2,000,000,000
groupSizeLimit.maxGroupSizeLimit0-2,000,000,000

Was this article helpful?