Transaction Controls
1. Overview
The Transaction Controls (Txn Controls) module in Sumo Ledger allows administrators to define and enforce limits on transaction amounts and account balances. These controls act as guardrails that prevent transactions from exceeding specified thresholds, helping organizations maintain financial discipline and reduce risk.
Transaction controls can be scoped to different levels of the system --- by User Type, Channel, or Process --- giving administrators granular control over who can transact how much and through which pathway.
Navigation: Configurations > General Settings > Txn Controls
URL: https://las.ledger.raralabs.dev/settings/transcation-control/list
2. Transaction Control List View
When you open the Txn Controls page, you see a table listing all existing transaction controls with the following columns:
| Column | Description |
|---|---|
| Type | The model type the control is scoped to (e.g., LEDGER, USER_TYPE, CHANNEL, PROCESS). |
| Name | A system-generated or user-defined name identifying the control. |
| Process Slug | The slug of the process this control is associated with (if applicable). |
| Is Active | Whether this control is currently enforced (Yes or No). |
| Max Dr Amount | The maximum debit amount allowed per transaction. |
| Min Dr Amount | The minimum debit amount required per transaction. |
| Max Cr Amount | The maximum credit amount allowed per transaction. |
| Min Cr Amount | The minimum credit amount required per transaction. |
| Max Dr Balance | The maximum debit balance the account can hold. |
| Min Dr Balance | The minimum debit balance the account must maintain. |
| Max Cr Balance | The maximum credit balance the account can hold. |
| Min Cr Balance | The minimum credit balance the account must maintain. |
List View Actions
- Search Bar: Filter controls by typing a keyword.
- Refresh: Reload the list to see the latest data.
- View: Toggle column visibility or adjust the table layout.
- + Add Transaction Control: Opens the form to create a new control.
- Update Transaction Control Memory: Pushes the latest transaction control configurations into active memory so they take effect immediately without a system restart.
3. Creating a New Transaction Control
Click the "+ Add Transaction Control" button in the top-right corner. A form opens with the following fields:
3.1 Model Selection
The Model toggle determines what entity the control is scoped to. There are three options:
User Type
Select this when you want to apply transaction limits based on the type of user performing the transaction. After selecting User Type, two dropdowns appear:
- User Type: Choose the user type from a dropdown list (e.g., individual, corporate, agent).
- Process: Optionally select a specific process to further narrow the scope.
Channel
Select this when you want to apply limits based on the transaction channel (e.g., mobile app, web portal, API). After selecting Channel, a dropdown appears:
- Channel: Choose the channel from a dropdown list.
Process
Select this when you want to apply limits to a specific business process regardless of user or channel. After selecting Process, a dropdown appears:
- Process: Choose the process from a dropdown list.
3.2 Is Active
A toggle with YES / NO options. Set to YES to activate the control immediately upon creation. Set to NO to save it in a disabled state for later activation.
3.3 Transaction Type Tabs
The form provides two tabs --- Debit and Credit --- each with its own set of limit fields. This means you can define different limits for debit and credit transactions independently.
Debit Tab Fields
| Field | Description |
|---|---|
| Max Dr Amount | The maximum amount allowed for a single debit transaction. Set to 0 for no limit. |
| Min Dr Amount | The minimum amount required for a single debit transaction. Set to 0 for no minimum. |
| Max Dr Balance | The maximum debit-side balance the account can reach. Set to 0 for no cap. |
| Min Dr Balance | The minimum debit-side balance the account must maintain. Set to 0 for no floor. |
Credit Tab Fields
| Field | Description |
|---|---|
| Max Cr Amount | The maximum amount allowed for a single credit transaction. Set to 0 for no limit. |
| Min Cr Amount | The minimum amount required for a single credit transaction. Set to 0 for no minimum. |
| Max Cr Balance | The maximum credit-side balance the account can reach. Set to 0 for no cap. |
| Min Cr Balance | The minimum credit-side balance the account must maintain. Set to 0 for no floor. |
3.4 Select Transaction Controls (Time-Based Frequency)
This multi-select dropdown allows you to apply time-based frequency controls to the transaction. The available options are:
| Option | Description |
|---|---|
| All | Select all time-based controls at once. |
| Year | Enforce the amount/balance limits on a per-year rolling basis. |
| Month | Enforce limits on a per-month rolling basis. |
| Week | Enforce limits on a per-week rolling basis. |
| Day | Enforce limits on a per-day rolling basis. |
| Hour | Enforce limits on a per-hour rolling basis. |
| Minute | Enforce limits on a per-minute rolling basis. |
For example, selecting Day with a Max Dr Amount of 10000 means a user/channel/process can debit a maximum of 10,000 in a single day.
3.5 Saving
Click "+ Create Transaction Control" to save the new control.
4. Editing an Existing Transaction Control
Click on any row in the Transaction Control list to open the Edit Transaction Control form. The form is identical to the creation form (minus the Model selection, which is locked after creation) and includes:
- Is Active toggle
- Transaction Type tabs (Debit / Credit) with amount and balance limits
- Select Transaction Controls (time-based frequency)
After making changes, click "Update Transaction Control" to save.
5. Applying Changes to Active Memory
After creating or updating transaction controls, click the "Update Transaction Control Memory" button at the top of the list view. This loads the updated configurations into the system's active memory so they take effect in real time. Without this step, newly created or modified controls may not be enforced until the next system reload.
6. Best Practices
- Start with broad controls, then refine. Begin by setting ledger-level controls, then layer on user-type or channel-specific overrides as needed.
- Use time-based controls for fraud prevention. Setting daily or hourly caps helps catch unusual transaction volumes early.
- Keep inactive controls for audit trails. Rather than deleting a control, set it to inactive. This preserves the configuration history.
- Always click "Update Transaction Control Memory" after making changes to ensure they take effect immediately.
- Test with conservative limits first. Set tight limits in a staging environment, verify behavior, then relax them for production.