SEPA Direct Debit payments
Learn about Single Euro Payments Area (SEPA) Direct Debit, a common payment method in the European Union.
The Single Euro Payments Area (SEPA) is an initiative of the European Union to simplify payments within and across member countries. They established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region. Stripe currently supports the SEPA Direct Debit Core scheme and not the SEPA Direct Debit B2B scheme. The Core scheme supports both business and personal bank accounts.
To debit an account, businesses must collect their customer’s name and bank account number in IBAN format. During the payment flow, customers must accept a mandate that gives the business an authorization to debit the account. Stripe is able to generate this mandate for businesses to present to their customers. Locate the ID of the mandate used for this payment on the Charge under the payment_method_details.sepa_debit.mandate property. Then, use the mandate ID to retrieve the Mandate.
SEPA Direct Debit is a reusable, delayed notification payment method.
SEPA Direct Debit transactions have a limit of 10,000 EUR each. For new users, there’s an additional weekly limit of 10,000 EUR, which quickly increases as you process more SEPA direct debit payments. If you need higher limits, contact support.
Verification Requirements
Using SEPA Direct Debit requires you to complete additional identity verification steps. We prompt you to complete these steps after you request access from the Payment methods settings. If you require further assistance, please contact support.
Payment flow 
Customer selects SEPA Direct Debit at checkout
Customer provides full name, IBAN, and authorizes mandate
Customer gets notification that the payment is complete
Get started 
You don’t have to integrate SEPA Direct Debit and other payment methods individually. If you use our front-end products, Stripe automatically determines the most relevant payment methods to display. Go to the Stripe Dashboard and enable SEPA Direct Debit. To get started with one of our hosted UIs, follow a quickstart:
Other payment products
The following Stripe products also let you add SEPA Direct Debit from the Dashboard:
If you prefer to manually list payment methods or want to save SEPA Direct Debit details for future payments, see the following guides:
Timing
With SEPA Direct Debit, it can take several business days for funds to become available in your Stripe balance. The number of business days it takes for funds to become available is called the settlement timing. Payments submitted after the daily cutoff are processed on the next business day.
The following table describes the settlement timings for SEPA Direct Debit payments that Stripe offers.
Settlement type | Payment Success | Funds Available | Cutoff time |
---|---|---|---|
Standard Settlement | T+6 at 00:00 UTC | T+6 at 00:00 UTC | 10:30 CET |
Debit notification emails
The SEPA Direct Debit rulebook requires that you notify your customer each time you debit their account. For this case, by default, Stripe automatically sends the customer an email.
Note
When processing SEPA Direct Debit payments using the Stripe Creditor ID, debit notification emails are always sent automatically by Stripe.
If you decide to send your customer a custom notification:
- Turn off Stripe emails in the Stripe Dashboard email settings. However, if you use the Sources API, you can only control emails using mandate.notification_method (for more information, see notifying customers of recurring payments).
- Use the payment_intent.processing event to trigger debit initiation emails.
- The email must include:
- The last 4 digits of the debtor’s bank account
- The mandate reference (
sepa_
on the Mandate)debit[reference] - The amount to be debited
- Your SEPA creditor identifier
- Your contact information
- It’s standard to send notifications at least 14 calendar days before you create a payment. However, SEPA rules let you send notifications closer to the payment date—just make sure your mandate clearly states when customers can expect to receive a notification. The mandate provided by Stripe specifies this can happen up to two calendar days in advance of future payments, allowing you to send notifications at payment creation. For recurring payments of the same amount (for example, a subscription of a fixed amount), you may indicate multiple upcoming debits with corresponding dates in a single notice.
Connect
To use SEPA Direct Debits in a Connect integration, you must enable SEPA Direct Debit on your platform and request the sepa_
capability for your connected accounts.
Creditor Identifiers (Creditor ID)
A SEPA Creditor Identifier (Creditor ID) is an ID associated with each SEPA Direct Debit payment that identifies the company requesting the payment. While companies may have multiple creditor identifiers, each creditor identifier is unique and allows your customers to easily identify the debits on their account.
By default, your Stripe account is configured to use a Stripe Creditor ID when collecting SEPA Direct Debit Payments. The Creditor Name that appears on bank statements is determined by the following order of priority:
- Your business name or legal entity name. For Connect, Stripe defaults to using the connected account’s business name if available. If not, Stripe uses the platform account’s business name.
- Your Stripe account’s custom statement descriptor. For Connect accounts, Stripe defaults to the connected account’s statement descriptor if available. If not, Stripe uses the platform account’s descriptor.
- A default Stripe name (e.g., “Stripe Technologies Europe Ltd”)
We recommend:
- Configuring a recognizable statement descriptor to help customers identify payments and reduce the risk of disputes.
- If you’re based in the EU, use your own Creditor ID to both reduce dispute rates and improve your customer experience. You can configure your own Creditor ID on the Payment Method Settings page in the Dashboard.
- If you’re using the Stripe Creditor ID, use Stripe Checkout to collect mandates from your customers for SEPA Direct Debits.
Note
After you’ve collected live SEPA Direct Debit payments on your account, you can’t change your Creditor ID in the Dashboard. If you need help with this issue, contact Stripe support for information about migrating to a new Creditor ID.
Creditor identifiers and Connect
The charge type of Connect payments changes the creditor identifier and name which appear on the customer’s bank statement.
Charge type | Creditor ID taken from |
---|---|
Direct | Connected Account |
Destination | Platform |
Separate charges and transfers | Platform |
Destination (on_ ) | Connected Account |
Separate charge and transfer (on_ ) | Connected Account |
Mandates
Before you can create a SEPA Direct Debit payment, businesses must collect a mandate that authorizes Stripe to debit the account on their behalf. Instructions for collecting mandate acceptance can be found on the Accept a payment page.
Customers can request the cancellation of a mandate at any time. To cancel a mandate, a customer must either reach out to the party they established the mandate with, or to their bank. Canceling a mandate invalidates any future debit requests that you issue using this mandate. If you want to accept additional payments from your customer, you need to establish a new mandate with them. Stripe only learns about a canceled SEPA mandate when a payment attempt fails, after which Stripe sets the mandate as inactive and sends a mandate.
webhook event.
Mandate cancellation
Mandate cancellation makes sure that no further debit requests can be made using the canceled mandate. When a customer requests cancellation through the party they established it with or directly through their bank, it renders any future debit requests associated with that mandate invalid. You can also cancel active mandates by detaching the payment methods and sources associated with them. You can detach a payment method by deleting it from the Customer view in the Stripe Dashboard or by using the API.
Failed payments
SEPA Direct Debit payments can fail for various reasons, such as insufficient funds, closed accounts, or missing authorization.
Payment timing and failures
SEPA Direct Debit payment failures can occur up to 6 business days after the payment is initiated. Review the following payment failure timeline:
Submission phase (1-2 business days)
- Your payment is submitted to the customer’s bank.
- Payments created before the daily cutoff time (10:30 CET) are submitted the same day.
- Payments made after the cutoff are submitted the following business day.
Refusal window (5 business days)
- After submission, there is a 5-business-day period (the “refusal window”) during which the customer’s bank can reject the payment. This is when most failures occur.
- The bank can return the payment during this period.
Final settlement
- After the 5-day refusal window, the payment is considered final.
- Failures can still occur after this point.
Caution
Wait at least 6 business days before confirming a SEPA Direct Debit payment as fully successful.
Understand failure information
When a payment fails, Stripe provides detailed information to help you understand the issue. The failure_
field on the Charge
indicates the specific reason for the failure, and the failure_
field provides a more detailed description of why the payment failed. Stripe immediately removes funds from your Stripe balance after failures.
The following table lists the possible SEPA Direct Debit failure codes with recommended next steps.
Failure code | Explanation | Next steps |
---|---|---|
refer_to_customer | We don’t have detailed information about the payment failure because your customer’s bank didn’t provide a reason code. | Reach out to your customer for additional information. |
insufficient_funds | The payment process can’t be completed because your customer’s bank account lacks the necessary funds. | Reach out to your customer to verify that they have the required funds, then retry the transaction. |
debit_disputed | Your customer requested that their bank refund this payment. | Reach out to your customer to resolve any dispute, then retry the transaction. |
authorization_revoked | Your customer revoked their authorization and refused this payment. | Reach out to your customer to understand the reasons for this revocation, then collect a new mandate and retry the transaction. |
debit_not_authorized | The payment lacks an authorized mandate. | Collect a new mandate and retry the transaction. |
account_closed | The payment can’t be processed because your customer’s bank account is closed. | Reach out to your customer for new account details, then try the transaction again. |
bank_account_restricted | The payment can’t be processed because your customer’s bank has blocked Direct Debits, due to either the bank’s actions or your customer’s. | Reach out to your customer to understand the reason for the block. If the bank unblocks the account, attempt the transaction again. |
debit_authorization_not_match | The transaction can’t be processed due to missing or incorrect mandate information. | Collect a new mandate from your customer, then attempt the transaction again. |
recipient_deceased | The mandate was set up on the account of a possibly deceased individual. | Verify your customer’s status before proceeding further. |
branch_does_not_exist | The payment can’t be processed because the bank branch associated with your customer’s IBAN doesn’t exist. | Reach out to your customer to provide new bank details, then attempt the transaction again. |
incorrect_account_holder_name | The transaction can’t be processed because your customer’s account information is missing or incorrect. | Collect a new mandate and ask your customer to provide their name and address exactly as it appears on their bank account. Then, retry the transaction. |
invalid_account_number | The transaction can’t be processed because the IBAN provided by your customer is incorrect. | Reach out to your customer for correct bank details, then attempt the transaction again. |
generic_could_not_process | Stripe can’t identify a particular reason for the payment failure. | Contact Support for more information. |
Disputes 
SEPA Direct Debit provides a dispute process for customers to dispute payments.
Customers can dispute a payment through their bank on a “no questions asked” basis up to eight weeks after their account is debited. Any disputes within this period are automatically honored.
After eight weeks and up to 13 months, a customer can only dispute a payment with their bank if the debit is considered unauthorized. If this occurs, we provide the bank with the mandate that the customer approved upon request. This doesn’t guarantee cancellation of the dispute. The bank can still decide that the debit was unauthorized and the customer is entitled to a refund.
When a dispute is created, Stripe sends a charge.
webhook event, and deducts the dispute amount and fee from your Stripe balance. The dispute fee varies based on your account’s default settlement currency.
Unlike credit card disputes, SEPA Direct Debit disputes are final and there is no process for appeal. If a customer successfully disputes a payment, you must contact them if you want to resolve the situation. If you come to an arrangement and your customer is willing to return the funds to you, they must make a new payment.
In general, each dispute includes the reason for its creation, but this varies from country to country. For example, disputed payments in Germany don’t provide additional information for privacy reasons.
If a payment is disputed, and that payment is associated with a multi-use mandate, that mandate could be deactivated. Make sure to check the status of such mandates after a dispute. You have to re-collect mandate acceptance from your customers if their previous mandate is deactivated.
Refunds
You can refund SEPA Direct Debit payments for up to 180 days after the original payment. You can refund part of the original payment or the entire amount of the original payment. Refunds are free of charge but the processing fees for the original payment are non-refundable.
Refund timing and processing
- Refunds typically take 3-4 business days to process, and funds arrive in the customer’s account within 5 business days.
- Refunds must be submitted within 180 days of the original payment.
- SEPA refunds appear as credits in the customer’s bank account with a reference to the original payment’s statement descriptor, rather than being explicitly labeled as refunds.
Important considerations
Customers can dispute a payment with their bank even after you’ve issued a refund, potentially resulting in two credits for the same payment. This happens because SEPA’s longer processing times can create confusion between you, your customer, their bank, and Stripe.
New accounts attempting refunds may have refunds temporarily disabled while Stripe reviews the account for fraud prevention. This review typically takes up to 2 business days.
When to issue refunds
Stripe recommends issuing SEPA Direct Debit refunds only when:
- The customer is trusted and verified
- You’ve confirmed with the customer that you’re processing the refund
- At least 7 business days have passed since the original payment
Caution
SEPA Direct Debit payments can fail up to 6 business days after creation (during the refusal window). Waiting 7 business days ensures the payment has fully settled before issuing a refund, preventing the double credit risk mentioned above.
Customer communication
Always inform customers immediately when issuing a refund, explaining that it may take up to 5 business days to appear in their account.
If you accidentally debit a customer, contact them immediately to prevent disputes.
If you need assistance processing a refund, contact Stripe support.
Fraud Protection for SEPA with Radar
Stripe Radar provides fraud protection capabilities for SEPA Direct Debits without any additional development time, performing real-time evaluation using machine learning algorithms to help identify and block high-risk transactions. Our machine learning trains specifically for SEPA, so it’s effective at detecting fraud that might be unique to SEPA Direct Debit payments.
For Radar users, Radar might default to on for all supported payment methods.
Billing Retries Private preview
With Direct Debit retries, Stripe can automatically retry failed Direct Debit payments caused by insufficient funds. You can turn on retries for recurring subscription invoices, one-off invoices, or both.