Transaction rules create conditional logic that automatically approves or declines a transfer based on the conditions that you specify. You can configure transaction rules to regulate outgoing fund transfers from business accounts in your balance platform.
We recommend that you use transaction rules to make decisions based on transfer data and static conditions: for example, a fixed list of banks that your users must not transfer funds to.
How it works
You create a transaction rule using the POST /transactionRules endpoint in the Configuration API.
When a user initiates a transfer using an Adyen business account, Adyen evaluates it using the transaction rules that you configured. If it meets the conditions of a rule, then Adyen applies the outcome to the transfer. You can only configure a hard-block outcome, which means that the transaction is declined.
When creating transaction rules, you must consider:
- The rule type, which defines what data the rule must use to analyze the transfer. For example, we can use only the data of the current transfer being analyzed, or we can use accumulated data from previous transfers.
- The rule evaluation defines the order in which Adyen analyzes the rules.
- The time interval when the rule conditions and outcome apply. For example, per transfer, daily, or weekly.
- The conditions and how the conditions must be interpreted.
- The entity to which the rule applies.
Rule types
The rule type defines what data the rule uses to analyze and decide the outcome of a transfer request. Adyen can use the data of the current transfer, or use accumulated data from previous transfers.
The following rule types are available for fund transfers:
- Blocklist: decline a transfer if it meets the specified conditions.
- Velocity: decline a transfer if a set amount of previous transfers have met the specified conditions. Adyen only considers previous transfers within a specified time interval.
Rule evaluation
You can create a rule with one or more conditions, and apply one or more rules to an account. When a user makes a transfer, Adyen evaluates all of the applicable rules.
When you have multiple conditions and rules, Adyen evaluates the transfer request based on the following:
- Multiple conditions within one rule: Adyen applies the outcome if the transfer meets all conditions within the rule.
- Multiple rules: Adyen evaluates the rules based on a hierarchy of outcome and rule type. Transaction rules with a hard block outcome with a blocklist rule type are evaluated first. If a transaction is already declined, remaining rules are no longer evaluated. A transaction rule is evaluated based on the following hierarchy:
- A hard-block outcome with a blocklist rule type
- A hard-block outcome with a velocity rule type
Transaction rules can be overridden. For more information, reach out to your Adyen contact.
Time intervals
The time interval defines the period when the rule conditions and outcome apply. The interval also determines which transfers a rule must consider when it uses data from previous transfers.
The following types of time intervals are available for business accounts:
Type of time interval | Description | Example |
---|---|---|
Per transaction |
The rule only uses data from the current transfer to make a decision. The outcome also applies only to the current transfer request. |
You can set a rule that allows a user to transfer a maximum of EUR 5000 per transfer request. |
Fixed interval |
The rule uses data from transfers made within the specified time interval, such as the ongoing day, week, or month. The outcome applies to the current transfer and all following transfers until the end of the interval. |
You can set a rule that allows a user to transfer a maximum of EUR 1000 from their account in a day. In this case, Adyen accumulates the data of all the outgoing transfers from that account within the current day. If the user exceeds the EUR 1000 limit, all subsequent transfer request are declined until the next day. |
Rolling interval |
The rule uses conditions that are applied and counters are reset based on a start time, timezone, and duration that you define. The outcome applies to the current transfer and all following transfers until the end of the interval. |
You can set a rule that allows a user to transfer a maximum of EUR 5000 from their account within a week. You can specify a schedule for that week that starts every Monday, for a duration of seven days. If the user exceeds the EUR 5000 limit, all subsequent transfer requests are declined until the start of the next week. |
Sliding interval |
The rule uses data from transfers that occurred within a specified time interval previous to the current transfer. For example, Adyen can check transfers made in the previous minutes, hours, or days. The outcome applies to the current transfer and all following transfer requests until the specified interval ends. |
You can set a rule that allows a user to make a maximum of five transfer requests within an hour. If the user makes five transfer requests in less than an hour, all subsequent transfers are declined until the next hour. |
Conditions
Conditions determine what a transaction rule must check. We refer to these conditions as rule restrictions.
Rule restrictions consist of:
- One or more types of conditions to evaluate when checking against the rule, such as the total amount, the counterparty, the counterparty's bank IBAN number, or a start time and an end time.
- An operation type, which determines how the conditions must be evaluated. For example:
- Match the counterparty.
- Does not match the counterparty's bank IBAN number.
- Equals, is greater than or equal to, or is less than the total amount.
The following rule restrictions and operation types are available for defining transaction rules for transfers:
Rule restriction name | Available operation types | Evaluation description |
---|---|---|
sameCounterpartyRestriction |
equals |
Evaluates if the counterparty is identical as the requested transfer. |
sameAmountRestriction |
equals |
Evaluates if the transfer amount is identical as the requested transfer. |
totalAmount |
|
Evaluates the summed total amount of transfers. |
matchingTransactions |
|
Evaluates the total number of transfers. |
counterpartyBank |
|
Evaluates the bank indicator in the IBAN. |
Entity to which the rule applies
Each transaction rule must be applied to only one resource.
You can apply a transaction rule to any of the following resources:
- A balance account (business account): the rule applies to a business account
- An account holder: the rule applies to an account holder.
- A balance platform: the rule applies to all business accounts and account holders on your balance platform.
If multiple rules apply to an account, Adyen evaluates all the rules. The transaction is blocked if it meets the conditions of a rule with a hard-block outcome.