Fast-payout icon

Create and manage rules

Use transaction rules to automatically approve or decline an outgoing transfer from balance accounts.

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:

Requirements

Requirement Description
Integration type Adyen Payouts
API credential roles Make sure that you have access to the Configuration API with following role:
  • Bank Manage TransactionRules 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 -white_check_mark- Your description for the rule. Maximum length: 300 characters. This reference is displayed in the Balance Platform Customer Area.
entityKey -white_check_mark- An object that contains the ID and type of resource to which you want to apply the rule.
interval -white_check_mark- The time period or duration when you want to apply the rule.
outcomeType -white_check_mark- The outcome that is applied if the transfer meets the conditions of the rule. Set this to hardBlock.
reference -white_check_mark- Your reference for the rule. Maximum length: 150 characters. This description is displayed in the Balance Platform Customer Area.
requestType -white_check_mark- The type of transfer to which you want to apply the rule. Set this to bankTransfer.
ruleRestrictions -white_check_mark- An object that contains a combination of values and operations that a must meet in order to be accepted or declined.
type -white_check_mark- The type of rule that determines what data to analyze. Set to blockList or velocity.
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 status set 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 status is 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 startDate to the current time.

Let's take the following requirement for example:

  • Set a hard-block limit for a daily maximum transfer amount of EUR 500K.

Here is an example of how to create a transaction rule for the requirement above.

The response contains the new transactionRule resource, identified by its unique id. If anyone in your team tries to pay out more than EUR 500K over a day, those payouts 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 -white_check_mark- An object that contains the ID and type of entity for which you want to override a rule.
ruleRestrictions -white_check_mark- The new rule restrictions you want to apply to the entity.
overridesRule -white_check_mark- 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.

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 -white_check_mark- An object that contains the ID and type of entity for which you want to skip a rule.
ruleRestrictions -white_check_mark- Leave this empty.
type -white_check_mark- The rule type. Set this to bypass.
overridesRule -white_check_mark- 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.

Update a transaction rule

To update a transaction rule, make a PATCH /transactionRules/{id} request, specifying the id in 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 payout 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.