SEPA Instant Limits allow customers to define and manage how much they can send using SEPA Instant Credit Transfers. In line with regulatory requirements, customers must be able to set:
- A daily limit: The total amount that can be sent via SEPA Instant in a single day.
- A per-transaction limit: The maximum amount allowed per individual SEPA Instant transfer.
This feature provides customers with enhanced security and greater control over their account activity. To be able to implement SEPA Instant Limits, you must be offering the SEPA Instant Credit Transfers feature to your customers. In case you do, it is required you also implement the SEPA Instant Limits feature.
Customers must be able to configure per-transaction and/or daily spending limits for SEPA Instant Credit Transfers on a per-account basis. These limits should be fully customizable by the customers according to their preferences. Please note that this customization is constrained by the overall Risk limitation defined in your Solaris account configuration.
SEPA Instant Limits apply to all SEPA Instant Credit Transfers, regardless of their initiation payment method. This includes scheduled transfers, reference account payouts, and batch transfers executed via SEPA Instant Credit Transfers.
It's important to understand the default limits applied to an account and the maximum values that can be set by a customer.
By default, every customer account is configured with the following limits:
- Per-Transaction Limit: EUR 10,000
- Daily Limit:
null(no daily limit is set)
These can be adjusted at any time via the API.
There is a maximum value a customer can set for their per-transaction limit. This maximum depends on the account type:
- For natural persons and sole proprietors: EUR 100,000
- For businesses: EUR 5,000,000
If a customer tries to set a limit that exceeds the allowed maximum, the API will return an error and the limit will not be changed.
There is no maximum value for the daily limit.
Daily Limit: Tracks the total amount of all successfully executed SEPA Instant transfers from 00:00:00 to 23:59:59 UTC. If a transfer is returned on the same day, it does not count against the daily limit.
Per-Transaction Limit: Sets a cap on the maximum amount for a single SEPA Instant transfer.
If a customer attempts to execute a transfer that exceeds their configured SEPA Instant limit, the transfer fails immediately. You will receive the INSTANT_SEPA_CREDIT_TRANSFER_FAILED webhook, with a rejection reason indicating the limit was exceeded.
To avoid failed transfers, display the current limits—or remaining available amounts, to the customer during the transfer setup process. It is required by the European Payments Council (Regulation 260/2012, Article 5a, paragraph 6) that where a customer's order for SEPA Instant Credit Transfer exceeds, or leads to exceeding of the set limit, you must not proceed with the payment execution and shall inform the Customer on how to view and modify their limits.
Let your customers set a per-transaction, and/or daily spending limit for SEPA Instant Credit Transfers per a single account. This can be done by sending a request to the PATCH Update specific SEPA Instant limits for an account endpoint. This endpoint allows for modifying the daily and per-transaction limit both at once, or just one or the other at a time. To modify both, the request should look like the example below:
PATCH v1/accounts/{account_id}/sepa_instant_limits{
"daily_limit": {
"value": 1000000,
"unit": "cents",
"currency": "EUR"
},
"per_transaction_limit": {
"value": 500000,
"unit": "cents",
"currency": "EUR"
}
}To set or modify just the daily_limit or per_transaction_limit, only include the type of limit you want to modify in the request, as shown in the example below:
Request example
{
"daily_limit": {
"value": 1000000,
"unit": "cents",
"currency": "EUR"
}
}To unset a previously configured limit, send null as the value. When the per_transaction_limit is unset, it reverts to the maximum allowed value detailed in the Default and Maximum Limits section.
Request example
{
"daily_limit": null
}To fetch the current SEPA Instant limits for a specific account, use the GET /accounts/{account_id}/sepa-instant-limits endpoint
This endpoint returns the following properties:
daily_limit: The current daily SEPA Instant limit set for the specified account. Returnsnullif no daily limit has been configured.daily_used: The total amount of successfully executed SEPA Instant transfers today from the specified account (00:00:00–23:59:59 UTC). Always returned as a monetary object, regardless of whether adaily_limitis set.daily_remaining: The remaining amount available for SEPA Instant transfers today (daily_limit − daily_used). Returnsnullif nodaily_limitis set.per_transaction_limit: The maximum allowed amount per individual SEPA Instant transfer for the account.
GET /v1/accounts/{account_id}/sepa_instant_limitsIf a per_transaction_limit has not been set by the customer, this endpoint returns the maximum allowed value for the account type, as detailed in the Default and Maximum Limits section.
The value of daily_remaining depends on whether a daily_limit is configured and on the transfer activity during the current UTC day.
State 1 — No daily_limit configured
When no daily limit is set, daily_limit and daily_remaining are both null. The daily_used field is still returned as a monetary object.
{
"daily_limit": null,
"daily_used": {
"value": 0,
"unit": "cents",
"currency": "EUR"
},
"daily_remaining": null,
"per_transaction_limit": {
"value": 1000,
"unit": "cents",
"currency": "EUR"
}
}State 2 — daily_limit configured, no transactions executed yet
When a daily limit is set but no SEPA Instant transfers have been executed today, daily_used is 0 and daily_remaining equals daily_limit.
{
"daily_limit": {
"value": 1000000,
"unit": "cents",
"currency": "EUR"
},
"daily_used": {
"value": 0,
"unit": "cents",
"currency": "EUR"
},
"daily_remaining": {
"value": 1000000,
"unit": "cents",
"currency": "EUR"
},
"per_transaction_limit": {
"value": 500000,
"unit": "cents",
"currency": "EUR"
}
}State 3 — daily_limit configured, transactions executed
Each successfully executed SEPA Instant transfer increases daily_used and reduces daily_remaining accordingly (daily_remaining = daily_limit − daily_used).
{
"daily_limit": {
"value": 1000000,
"unit": "cents",
"currency": "EUR"
},
"daily_used": {
"value": 350000,
"unit": "cents",
"currency": "EUR"
},
"daily_remaining": {
"value": 650000,
"unit": "cents",
"currency": "EUR"
},
"per_transaction_limit": {
"value": 500000,
"unit": "cents",
"currency": "EUR"
}
}Note the following:
- Only successfully executed SEPA Instant transfers count towards
daily_used. Failed transfers do not affect the value. - If a transfer is returned on the same day it was executed, it does not reduce
daily_used. - Both
daily_usedanddaily_remainingreset to their initial values at 00:00:00 UTC each day.