User Adjustable Parameters
Enable flexible rules at the cardholder level
What User Adjustable Parameters are
User Adjustable Parameters let you define a rule once, with default values, and then override those values for individual cards without duplicating the rule.
In the legacy Rules Engine, User Adjustable Values existed, but they were difficult to configure and maintain. In Decision Engine, this capability has been redesigned as a typed, API-driven framework that is easier to manage, easier to scale, and better suited to card-level customisation.
The key idea is simple:
- the rule logic stays shared
- the values used by that logic can vary per card
This means a single rule can support broad portfolio consistency while still allowing per-cardholder controls.
Why it is useful
Without User Adjustable Parameters, card-level variations usually require one of two bad options:
- duplicate the same rule many times with different hard-coded values
- avoid card-level personalisation altogether
User Adjustable Parameters remove that trade-off.
They allow you to:
- define a rule once at client, product, or group level
- give that rule sensible defaults
- override only the values that need to be different for a specific card
- update those values through API calls without rebuilding the rule
This makes customisation safer, faster, and easier to govern.
The most important benefit
The strongest way to think about User Adjustable Parameters is not as a niche feature for spend limits, but as a way to externalise rule inputs.
In practice, this means that many of the values you would otherwise hard-code into a rule can instead become card-level parameters, including:
- thresholds
- amounts
- time windows
- country codes
- MCC lists
- transaction type lists
- day-of-week lists
- other enum-driven allow or deny lists
So rather than creating a different rule for each cardholder preference, you keep one rule and vary the parameter value.
What can be adjusted
Decision Engine supports five parameter families:
TEXTDECIMALTIME_SPANMONEYENUM
Each can be defined as either:
SCALAR(Single Value)LIST
This gives you a wide range of customisation patterns, for example:
- a single amount threshold
- a list of blocked or allowed MCCs
- a configurable lookback period
- a per-card daily or weekly limit
- a list of allowed transaction types
- a list of allowed transaction days
How it works
When you declare a parameter in a rule, you give it:
- a name
- a type
- a default value
- optional constraints such as minimum and maximum values
The rule then references that parameter instead of using a hard-coded value.
At runtime:
- if no card-specific value exists, the rule uses the default
- if a card-specific value has been set, the rule uses the override for that card
Card-level values can be set, listed, and removed through the User Adjustable Parameter APIs.
Setup flow
1. Define the parameter in the rule
Create or edit your Decision Engine rule and declare a parameter for the value you want to make configurable.
Examples:
- a spend limit
- a list of allowed MCCs
- a list of allowed days of the week
2. Set the default value
In PayControl, define the default value that should apply when a card does not have its own override.
You can also define:
- scalar or list mode
- min and max constraints where applicable
- currency for money values
- time span type for time-based parameters
- enumeration type for enum parameters
3. Reference the parameter in the predicate
Use the parameter in the rule expression instead of a hard-coded literal.
In the rule builder, user adjustable value is available as a value source where the operator and field type are compatible.
4. Override the value for a specific card
Use the card-level User Adjustable Parameter APIs to set a value for an individual card.
This is what enables real per-card behaviour.
If you want the cardholder to control the setting, the usual pattern is:
- expose the preference in your own app or servicing channel
- translate the customer’s choice into a card-level parameter update via API
Examples
Example 1: card-specific amount limit
Use case:
- one shared high-spend rule
- different cardholders need different thresholds
Pattern:
- define a default amount limit in the rule
- override that amount for specific cards
Result:
- the rule logic stays shared
- only the threshold changes by card
Example 2: MCC controls chosen by the cardholder
Use case:
- a cardholder wants to control which merchant categories are allowed
Pattern:
- define a
TEXTlist parameter for allowed or blocked MCCs - reference that list in the rule
- update the list per card through API
Example outcome:
- Card A allows
5411,5912, and7995 - Card B allows a different MCC list
- both cards use the same rule
This is a strong example of why User Adjustable Parameters matter: the policy stays shared, but the allowed merchant categories can vary per cardholder without cloning the rule.
Example 3: allowed transaction days chosen by the cardholder
Use case:
- a cardholder wants their card to work only on selected days
Pattern:
- define an
ENUMlist parameter usingDayOfWeek - use that parameter with the
isDayOfWeek(...)style rule logic - set the allowed days per card
Example outcome:
- Card A is allowed only on Monday to Friday
- Card B is allowed only on Saturday and Sunday
- both cards still use the same underlying rule
This enables customer-controlled scheduling without duplicating rules by card or by programme.
Example 4: transaction type controls
Use case:
- a cardholder wants to allow some transaction types and decline others
Pattern:
- define an
ENUMlist parameter for allowed transaction types - reference that parameter in the rule
- update the list per card
Example outcome:
- one card allows purchases and refunds
- another card allows only refunds
Why this is better than duplicating rules
User Adjustable Parameters give you:
- less rule duplication
- easier maintenance
- faster rollout of personalised controls
- lower risk of inconsistent rule logic across cards
- real-time card-level updates without redesigning the rule
This is especially valuable when the rule logic is stable but the acceptable values vary by customer.
Summary
User Adjustable Parameters turn hard-coded rule inputs into managed, typed, card-level configuration.
They allow you to keep rules centralised while still supporting highly personalised behaviour. In practice, that means many of the values a rule evaluates against can be made configurable per cardholder, including thresholds, lists, time windows, MCC controls, and allowed days, without duplicating the rule itself.
How are user Adjustable Values Overriden?
We provide API's to set and manage the User Adjustable Values.
List User Adjustable params for a card List User Adjustable params for a rule Remove User Adjustable value for a card Remove All User Adjustable values for a card Set User Adjustable values for a card
Updated 12 days ago
