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

Copy
Copied
PATCH v1/accounts/{account_id}/sepa_instant_limits

Request Example

Copy
Copied
{
    "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

Copy
Copied
{
    "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

Copy
Copied
{
    "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

Copy
Copied
GET /v1/accounts/{account_id}/sepa_instant_limits

The response example looks like this: 

Response Example

Copy
Copied
{
    "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

Copy
Copied
{
    "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

Copy
Copied
{
    "per_transaction_limit":null,
    "daily_limit":null
}