Manage Limits
Access prerequisites
- Permission (module):
viewLimitsORmanageLimitsto open and list;manageLimitsto create, edit or delete (either module is sufficient to view; create/edit/delete always requiresmanageLimits). - Licence/Feature: None.
- Menu container: GENERAL → Users group
What it is / when to use
Screen for registering the platform's limit profiles (also called "general limits"). Each profile is a named set of caps per movement type — external crypto transfer, TED, PIX, same-ownership transfer, internal transfer and withdrawal. The profiles created here are then assigned to users individually via the User details screen, where the operator selects which limit profile applies to that customer.
Use it when setting up the tenant's limits policy (e.g. "Standard", "Qualified Investor", "Verified Account") and when adjusting the caps for each profile. This screen does not operate on a specific customer — it defines the templates; the customer↔profile binding is done in User details.
Pre-conditions
- Permission:
viewLimitsormanageLimitsregistered for the operator's role. The permission is dual — the static CPM enum (E_PERMISSION_MODULES.viewLimits/E_PERMISSION_MODULES.manageLimits) validates the route in the API-Gateway and the corresponding dynamic module must be associated with the role in the database for the UI to release the menu item. The listing (getAllGeneralLimits) accepts either of the two; create/edit/delete (createGeneralLimits/updateGeneralLimits/deleteGeneralLimits) requiresmanageLimits. - Licence/Feature: none.
- Dependencies on other screens: none for creating profiles. For a profile to take effect, it must be assigned to a user in User details (call
updateGeneralLimitsForUser).
Step by step
- Access the Users → Manage Limits menu (
/manage-limits/list). - The table shows the existing profiles with Type (profile name) and the Crypto Transfer cap.
- Click New to create a profile; or use the view / edit / delete icons on an existing profile row.
- In the form, fill in the Limit Name, attach the profile image and enter the caps per movement type.
- Click Save. For both creation and editing, a confirmation footer (bottom-sheet) is displayed before persisting.
- To apply the profile to a customer, go to User details and select the desired limit profile.
Fields
Creation/editing form (routes /manage-limits/create, /manage-limits/edit/:id, /manage-limits/details/:id):
| Field | What it is | Required? | Effect on system/backend |
|---|---|---|---|
| Limit Name (Type) | Readable identifier for the profile (e.g. "Standard", "Qualified Investor") | Yes | Saved in IGeneralLimits.type in the CPM. Immutable after creation — the field is disabled in edit mode (only editable on creation). Validated by colectionNameValidator (no invalid characters). |
| Image | Profile image/icon, sent via upload | Yes | Uploaded via the files service and URL saved in IGeneralLimits.image. The Save button is blocked without type and without image (validateSave). |
| Crypto Transfer | External crypto transfer cap | No | Saves crypto_external_transfer. This is the only cap column displayed in the listing. |
| TED Transfer | TED cap | No | Saves ted_transfer. |
| PIX Transfer | PIX cap | No | Saves pix_transfer. |
| Same-ownership Transfer | Cap for transfers between accounts belonging to the same holder | No | Saves same_account_transfer. |
| Internal Transfer | Internal transfer cap (between wallets on the platform) | No | Saves internal_pix_transfer. |
| Withdrawals | Withdrawal cap | No | Saves withdraw_transfer. |
Empty caps
The cap fields are not required in the form. A profile can be created with just a name and image, with caps filled in later (edit mode). Caps left blank remain without a value in the profile — review the policy for each movement type before leaving a cap empty.
Actions and modals
- New: opens the blank form (
/manage-limits/create). RequiresmanageLimits. - View (eye): opens the profile in read mode (
/manage-limits/details/:id), with an Edit button to switch. - Edit (pencil): opens the form with the profile data (
/manage-limits/edit/:id). The Limit Name is locked. The Save button only enables if a real change was made to any field (editValidatecompares against the original). - Delete (bin): opens a confirmation bottom-sheet; on confirm, calls
deleteGeneralLimits/:id. RequiresmanageLimits. - Save: confirmation bottom-sheet before persisting, both for creation and editing.
Business rules / cautions
Attention
- Immutable name: the profile name cannot be changed after creation. To "rename", create a new profile and re-assign the users.
- This screen does not bind users. Creating or editing a profile here does not automatically change any customer's limit. The customer↔profile binding is done in User details via
updateGeneralLimitsForUser. Editing the caps of an already-assigned profile takes effect for the customers using that profile. - Image required: without an image the Save button is blocked — attach the image before attempting to save.
- Financial values: the caps represent monetary values and are handled with precision (BigNumber) on the backend — do not round during verification; check the decimal places according to the type (token vs. fiat).
Related screens
- User details — where the limit profile is assigned to a customer.
- User list — starting point for locating the customer.
- Users group index