Adyen allows you to set specific limits that regulate outgoing transfers made from your users' balance accounts. These limits can be configured using transaction rules or transfer limits. These include:
- Limits on the total amount transferred from the balance account within a specified time interval. This is called an amount limit.
- Limits on the total number of transfers from the balance account within a specified time interval. This is called a count limit.
Within the time interval that these limits are active, you can make API calls to check the details of these limits. These include:
- The total limit
- How much of the limit is already used
- How much of the limit is remaining
- Where the limit is defined
- Details of time interval in which the limit is active
Benefits of viewing existing limits
Checking the details of your existing limits allows you to:
- Prevent unexpected transfer failures that can occur when your user surpasses their limit. For example, you can provide your user with a warning when they are nearing their total limit.
- Help your users keep track of and regulate their spending within certain time intervals. For example, you can allow your users to see how much of their budget they have left after every transfer they make.
- Identify situations where a limit is too high or too low. For example, if you notice that your users are consistently exceeding their limits, you can decide to increase this limit for them.
Requirements
| Requirement | Description |
|---|---|
| Integration type | Adyen for Platforms integration with business accounts. |
| API credential roles | Make sure that you have access to the Configuration API with following role:
|
| Limitations |
|
| Setup steps | Make sure that you have created a transaction rule with a totalAmount or matchingTransactions rule restriction. |
Calculating limits
When you set restrictions on the total amount (amount limit) or total number of transactions (count limit), Adyen calculates the available limit as follows:
- Amount limit: Adyen uses the total amount that has been authorized using the balance account.
- Count limit: Adyen uses the total number of transactions that have been authorized using the balance account.
All authorizations are deducted from the available limit, regardless of whether they have been captured or not. If an authorization expires or is canceled, then the amount or count is released and added back to the available limit.
View available limits
To view your available limits:
-
Make a GET
/balanceAccounts/{id}/limitsrequest, specifying the following parameters:Parameter Type Required Description idPath The unique identifier of the balance account for which you want to view the available limit details. transactionRuleIdQuery The unique identifier of the transaction rule for which you want to view the available limit details. If not provided, we return the limit that applies to the balance account based on the transaction rule hierarchy. Required for all transactions.
Required for particular setups, or issuers and card schemes.
Recommended for all transactions, but not required.
Here is an example request to get the available limits for the transaction rule with ID TR00000000000000000000001, that applies to the balance account with ID BA00000000000000000000001.
-
Note the response, which returns the following parameters:
Parameter Returned Description calculatedAtThe date and time at which the available limit was calculated following your request. amountLimitsAn array where each object returns the details of a limit set using the totalAmountrule restriction.countLimitsAn array where each object returns the details of a limit set using the matchingTransactionsrule restriction.Each object in the
amountLimitsandcountLimitsarrays returns the following parameters:Parameter Returned Description limitThe total limit set on the balance account, concerning either the total amount or the number of transactions. spentThe part of the total limit that has already been spent in the given time interval. remainingThe part of the total limit that is remaining in the given time interval. sourceDetails about the transaction rule or transfer limit that defined the limit. intervalDetails about the time interval within which the limit is active. The
intervalobject returns the following parameters:Parameter Required Description typeThe type of interval during which the limits apply, and how often counters are reset.
Possible values:- perTransaction: The conditions are evaluated and the counters are reset for every transaction.
- daily: The counters are reset daily at 00:00:00 CET.
- weekly: The counters are reset every Monday at 00:00:00 CET.
- monthly: The counters reset every first day of the month at 00:00:00 CET.
- lifetime: The conditions are applied to the lifetime of the balance account.
- rolling: The conditions are applied and the counters are reset based on a
duration, start date (defined usingdayOfWeekordayOfMonth), and start time (defined usingtimeOfDay) that you specified. If you did not provide a start date and time, Adyen applies the default start date and time that apply to fixed intervals. For example, if the duration is every two weeks, the counter resets every third Monday at 00:00:00 CET. - sliding: The conditions are applied and the counters are reset based on the current time and a
durationthat you specify.
durationUse case: Returned when typeis rolling or sliding.
The duration of the time interval. This object returns:unit: The unit of time in which the duration is defined. Possible values: minutes, hours, days, weeks, months.value: The numerical value of the duration, in terms of the definedunit. For example, 5 indicates 5 days ifunitis days.
Format:- The maximum duration is 90 days, or its equivalent in another unit, for example 3 months.
dayOfMonthUse case: Returned when duration.unitis months.
The day of the month when the time interval starts.
Format:- The default value is 1, which indicates the first day of the month.
dayOfWeekUse case: Returned when duration.unitis weeks.
The day of the week when the time interval starts.
Possible values:- monday (default)
- tuesday
- wednesday
- thursday
- friday
timeOfDayUse case: Returned when duration.unitis hours.
The time of the day when the time interval starts.
Format:- Date format is hh:mm:ss
- Default value is 00:00:00.
timezoneThe timezone for the configured time interval.
Format:- The default value is UTC.
Required for all transactions.
Required for particular setups, or issuers and card schemes.
Recommended for all transactions, but not required.
Here is an example response that shows the available limits for the transaction rule with ID TR00000000000000000000001, that applies to the balance account with ID BA00000000000000000000001.