# 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](/guides/digital-banking/sepa-transfers/sepa-instant-credit-transfer/) 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. 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. ## Default and Maximum Limits It's important to understand the default limits applied to an account and the maximum values that can be set by a customer. ### Default Limits 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. ### Maximum Limits 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**. ## 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 a Limit is Exceeded 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`](/api-reference/onboarding/webhooks/#tag/Webhook-events/paths/instant_sepa_credit_transfer_failed/post) 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. ## 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](/api-reference/digital-banking/sepa-transfers/#tag/Sepa-Instant-Limits/paths/~1v1~1accounts~1%7Baccount_id%7D~1sepa_instant_limits/patch) 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: ```text Request URL PATCH v1/accounts/{account_id}/sepa_instant_limits ``` ```json Request Body { "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 ```json Request Body: Daily Limit Only { "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](#default-and-maximum-limits) section. Request example ```json Request Body: Unset Limit { "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](/api-reference/digital-banking/sepa-transfers/#tag/Sepa-Instant-Limits/paths/~1v1~1accounts~1%7Baccount_id%7D~1sepa_instant_limits/get) 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. ```text Request URL GET /v1/accounts/{account_id}/sepa_instant_limits ``` The response looks like this: ```json Response Body { "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" } } ``` If 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](#default-and-maximum-limits) section. In case the `daily_limit` is not set, the endpoint will return `null`. ```json Response Body: No Daily Limit Set { "per_transaction_limit": { "value": 10000000, "unit": "cents", "currency": "EUR" }, "daily_limit": null } ```