SEPA Instant Limits
Introduction
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.
SEPA Instant Limits per Account
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.
info
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.
How Limits Work?
- 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.
What happens when limit exceeds?
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.
info
To avoid failed transfers, display the current limits—or remaining available amounts, to the customer during the transfer setup process.If a transfer fails due to a SEPA Instant limit, you must inform the customer how they can view or update their limits. This is a regulatory requirement set by the European Payments Council (EPC) to ensure transparency, customer control, and usability.
How to configure or update 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 the time. To modify both the request should like the example below:
Request URL
PATCH v1/accounts/{account_id}/sepa_instant_limits
Request Example
{
"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"
},
}
By default, every existing and new customer have these limits unset. To unset a previously set limit use null in the request, as shown in the example below:
Request example
{
"daily_limit": null,
}
How to retrieve existing limits
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.daily_used
:The total amount spent today via SEPA Instant transfers from the specified account (00:00:00–23:59:59 UTC).daily_remaining
:The remaining amount available for SEPA Instant transfers today, based on the daily limit.per_transaction_limit
:The maximum allowed amount per individual SEPA Instant transfer for the account.
Request URL
GET /v1/accounts/{account_id}/sepa_instant_limits
The response example looks like this:
Response Example
{
"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"
}
}
In case the customer has only one of the two limits set, the object is only returned for the set limit. For the unset limit null is returned.
Response Example
{
"per_transaction_limit": {
"value": 500000,
"unit": "cents",
"currency": "EUR"
},
"daily_limit":null
}
In case neither, the per_transaction
nor the daily_limit
is set the endpoint will return null for both limits.
Response Example
{
"per_transaction_limit":null,
"daily_limit":null
}