Transfer limits create conditional logic that automatically approves or declines a transfer based on its amount. You can configure transfer limits for your users, to regulate outgoing fund transfers from their balance accounts.
When setting up a transfer limit, you configure the following settings:
- Transfer limit validity: the period in which the transfer limit is valid.
- Transfer limit conditions: the type of transfers to which the limit applies (instant or non-instant transfers, and scope of the limit (per-transaction limit or daily limit).
According to regulations in the EU, you must always provide your users with the option to configure transfer limits on their outgoing, instant transfers. Your users can choose whether to use this feature.
How it works
You can configure transfer limits on two levels:
- Balance platform level: the transfer limit applies to all balance accounts in your balance platform. This is the default transfer limit that applies when no transfer limit is configured at the balance account level.
- Balance account level: the transfer limit applies to a specific balance account in your balance platform. This overrides any default transfer limits you configured for your balance platform. To set transfer limits at the balance account level, the balance account must be linked to an Adyen business account. When you configure a limit for your user at this level, your user must authenticate their identity using SCA.
After a transfer limit is successfully created for your balance platform or your user's balance account, it works as follows:
- On the start date of the transfer limit, the status of the transfer limit becomes active.
- You make an outgoing transfer request to send funds to an external bank account within the timeframe that the transfer limit is active.
- Adyen checks if the amount of the transfer exceeds the transfer limit you set. If it does, the transfer fails.
- On the end date of the transfer limit, the status of the transfer limit becomes inactive, and it is no longer used to regulate outgoing transfers.
Transfer limit validity
When you create a transfer limit, you can specify a start and end date. The transfer limit is only valid for the time period between its start and end date. Note that:
- If you do not specify a start date, we default to the date and time at which you send the request.
- If you do not specify an end date, the transfer limit stays valid until it is overridden.
Transfer limit status
Throughout its lifecycle, a transfer limit can have four statuses:
- pendingSCA: your user's identity needs to be authenticated using SCA before the transfer limit is processed.
- scheduled: the transfer limit has been created, but the start date has not arrived yet.
- active: the transfer limit has been created, and applies to all transfers within its scope.
- inactive: the end date for the transfer limit has passed.
Transfer limit conditions
Transfer limit conditions determine which transfers a transfer limit applies to. Conditions consist of:
scope: determines whether the transfer limit applies to each individual transfer, or to the total amount of all transfers made in a day.transferType: determines whether the transfer limit only applies to transfers with an instant priority, or to all transfers.
You can create multiple transfer limits with different combinations of scope and transferType.
At any given moment, there can only be one scheduled or pendingSCA transfer limit with the same combination of scope and transferType. To create another scheduled or pending transfer limit with the same combination, you must first delete the existing one.
After a transfer limit becomes active, you can create a new scheduled or pending transfer limit with the same combination of scope and transferType. The new transfer limit you create then overrides the previous one when it becomes active.
For example:
-
You create a transfer limit (TRLI_1) with the following details:
- Amount: EUR 100.00
- Scope: perDay
- Transfer type: instant
The start date for the transfer limit is in the future, so it has a scheduled status.
-
You want to schedule a new transfer limit (TRLI_2) with the following details
- Amount: EUR 200.00
- Scope: perDay
- Transfer type: instant
Because TRLI_1 and TRLI_1 have the same scope and transfer type, you cannot schedule TRLI_2 while TRLI_1 has a scheduled status. To schedule TRLI_2, you must do either of the following:
- Delete TRLI_1
- Wait until TRLI_1 becomes active. In this case, when TRLI_2 eventually becomes active, it will override TRLI_1.
Get updates when a limit is triggered
To get updated about transfers that are declined because they triggered a transfer limit, you can use either webhook notifications or the Customer Area:
-
Subscribe to the Transfer webhooks. The webhook returns the following fields:
- transactionRulesResult: Contains the details of the transfer limit that was triggered:
- reason: Returns declinedByTransactionRule.
- reference: Returns your reference for the transfer limit.
- description: Returns the description for the transfer limit in the format Enforce transfer limit with code: {transferLimitId}
-
In your Customer Area, go to Transactions > Transfers, and click on a declined transfer. You can see the details of the transfer limit that the transfer triggered.