After you determine your business' requirements for evaluating and declining suspicious payout requests, you can use the Configuration API to create and manage transaction rules that automatically evaluate every external payout. This page explains how to:
- Create a transaction rule
- View existing transaction rules
- Override existing transaction rules
- Update a transaction rule
Requirements
| Requirement | Description |
|---|---|
| Integration type | Adyen Payouts |
| API credential roles | Make sure that you have access to the Configuration API with following role:
|
| Webhooks | Subscribe to the following webhook(s): |
| Limitations | Transaction rules are not supported for internal transfers. |
| Setup steps | Before you begin:
|
Create a transaction rule
When you have defined your business logic and requirements, turn your requirements into a transaction rule.
-
Make a POST /transactionRules request, specifying the following parameters:
Parameter Required Description aggregationLevel The level at which the data is accumulated when selecting the velocity rule type. You can only set this to balanceAccount. description 
Your description for the rule. Maximum length: 300 characters. This reference is displayed in the Balance Platform Customer Area. entityKey 
An object that contains the ID and type of resource to which you want to apply the rule. interval 
The time period or duration when you want to apply the rule. outcomeType 
The outcome that is applied if the transfer meets the conditions of the rule. Set this to hardBlock. reference 
Your reference for the rule. Maximum length: 150 characters. This description is displayed in the Balance Platform Customer Area. requestType 
The type of transfer to which you want to apply the rule. Set this to bankTransfer. ruleRestrictions 
An object that contains a combination of values and operations that a must meet in order to be accepted or declined. type 
The type of rule that determines what data to analyze. - blockList: decline a transfer if it meets specific conditions.
- velocity: decline a transaction if a set amount of accumulated previous transactions have met the specified conditions. Adyen only considers previous transactions within a specified time interval and aggregation level.
startDate Specifies a date and time in the future when the rule must be evaluated. For example, 2022-02-25T07:00:00+01:00. When you specify a start date, the rule is created with a statusset to active.endDate Specifies a date and time in the future when the rule evaluation must stop. For example, 2022-12-18T10:15:30+01:00. If not provided, the rule is evaluated until the statusis set to inactive.status Set to active if you want to start evaluating the rule. When you set the status to active, we automatically set the startDateto the current time.Let's take the following requirement for example:
- Set a hard-block limit for a daily maximum outgoing transfer amount of EUR 500K.
Here is an example of how to create a transaction rule for the requirement above.
-
Note the response, which contains the new transactionRule resource, identified by its unique
id. If your users tries to transfer more than EUR 500K over a day, those transfers will be blocked.
View transaction rules
To view the transaction rules you have created, use the following API requests:
| Purpose | Endpoint | Path parameter | |
|---|---|---|---|
| Get the details of a specific rule | GET /transactionRules/{id} | Specify the id of the transaction rule in the path. |
|
| Get a list of all transaction rules configured on a balance account | GET /balanceAccounts/{id}/transactionRules | Specify the id of the balance account in the path. |
|
| Get a list of all transaction rules configured for an account holder | GET /accountHolders/{id}/transactionRules | Specify the id of the account holder in the path. |
|
| Get a list of all transaction rules configured on your balance platform | GET /balancePlatforms/{id}/transactionRules | Specify the id of the balance platform in the path. |
Override an existing transaction rule
When you have multiple transaction rules, Adyen applies these rules based on the existing rule hierarchy. To override this hierarchy for a specific resource or entity, you can create a new rule for that entity that overrides an existing rule with a higher hierarchical ranking.
To create a transaction rule that overrides an existing rule for a specific entity:
-
Make a POST /transactionRules request. In addition to other parameters required to create a rule, specify the following:
Parameter Required Description entityKey 
An object that contains the ID and type of entity for which you want to override a rule. ruleRestrictions 
The new rule restrictions you want to apply to the entity. overridesRule
The ID of the transaction rule you want to override for the entity. In the previous example, we created a transaction rule that sets a maximum daily limit of EUR 500K for all balance accounts. Now, let's override this rule to allow a higher limit of EUR 800K for just one balance account.
-
Note the response, which contains the new transactionRule resource, identified by its unique
id.
Skip a transaction rule
You can override a rule by skipping it entirely for specific entities. This means that the rule no longer applies to that entity. To skip a transaction rule for an entity:
-
Make a POST /transactionRules request. In addition to other parameters required to create a rule, specify the following:
Parameter Required Description entityKey 
An object that contains the ID and type of entity for which you want to skip a rule. ruleRestrictions 
Leave this empty. type 
The rule type. Set this to bypass. overridesRule
The ID of the transaction rule you want to skip for the entity. In the previous example, we created a transaction rule that sets a maximum daily
limit of EUR 500K for all balance accounts. Now, let's skip this rule for just one balance account, so that it has no maximum daily transfer limit. -
Note the response, which contains the new transactionRule resource, identified by its unique
id.
Update a transaction rule
To update a transaction rule:
-
Make a PATCH /transactionRules/{id} request, specifying the
idin the path. In the request body, specify the parameters and rule restrictions you want to update.You can activate or deactivate a transaction rule by updating the value for
status:Possible value Description active Activate the transaction rule inactive Deactivate the transaction rule In the previous example, we created a transaction rule that sets a maximum daily outgoing transfer limit of EUR 500,000 for all balance accounts in your balance platform. Now, let's update the transaction rule to increase the daily limit to EUR 800,000.
-
The response returns the updated transaction rule.