iDEAL sources are single-use and can only be used to create a payment once. To support recurring payments, you can make use of a modified SEPA Direct Debit flow that allows you to create further payments. After first creating a successful payment with iDEAL, the source is then used to create a new SEPA Direct Debit source. This is used to perform subsequent charge requests without each payment needing to be authorized by the customer.
Within the scope of Sources, SEPA Direct Debit is a pull-based, reusable and asynchronous method of payment. This means that you take action to debit the amount from the customer’s account. It can take up to 14 business days to confirm the success or failure of a payment.
Testing charge success and failure
To mimic a successful or failed charge, you need to first create a
chargeable test iDEAL source with one of the following test values for
xxx_ is any prefix of your choice (these patterns are only significant in testmode). The resulting iDEAL source will be created as
pending, but automatically transition to
chargeable within seconds of its creation. You can then charge that iDEAL source and use the source to create a new SEPA Direct Debit source, which will be
chargeable upon creation. Depending on which value you used for
owner[email] for the iDEAL source, the charge created from the test SEPA Direct Debit source will either succeed or fail.
|Email Address||Charge Result|
|The charge status transitions from pending to succeeded|
|The charge status transitions from pending to failed|
|The charge succeeds but a dispute is immediately created|
When creating a test charge with the test SEPA Direct Debit source, its status is initially set to
pending before being automatically transitioned.
Webhook events are triggered when using test sources and charges. The
charge.pending event is first triggered, followed by either the
charge.failed event immediately after.
Handling failed charges
If a charge is not confirmed, its status automatically transitions from
failed. Should a charge fail, notify your customer immediately upon receipt of the
charge.failed event. When using SEPA Direct Debit, you may prefer not to fulfill orders until the
charge.succeeded webhook has been received.
If a SEPA Direct Debit charge fails and we have reason to believe that subsequent charges will also fail, we will update the source to
Notifying customers of recurring payments
The SEPA Direct Debit rulebook requires that you notify your customer each time a debit is to be made on their account. You can send these notifications separately or together with other documents (for example, an invoice).
These notifications should be sent at least 14 calendar days before you create a payment. You can send them closer to the payment date as long as your mandate makes it clear when your customer can expect to receive them. The mandate provided by Stripe specifies this can happen up to two calendar days in advance of future payments, allowing you to send notifications during charge 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.
When sending your customers a notice, it must include:
- The last 4 digits of the debtor’s bank account
- The mandate reference (
- The amount to be debited
- Your SEPA creditor identifier
- Your contact information
Using webhooks or automated emails
Source objects provide tooling to help you notify your users compliantly. At Source creation it is possible to specify a
mandate[notification_method]. The possible values are the following:
|As you create Charges, we automatically notify your customers over email.|
|As you create Charges, we emit a |
|None of the above, you opt to generate debits notifications entirely outside of Stripe.|
mandate[notification_method] is set to none at Source creation but can be updated later.
Obtaining a creditor identifier for EU businesses
For EU businesses, your SEPA creditor identifier is associated with each SEPA Direct Debit payment instruction and identifies the company making 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. This can help reduce the likelihood of disputed payments. Some payment providers don’t request that you provide your own SEPA creditor identifier. Stripe requests a SEPA creditor identifier to improve the experience of your customers.
You can request a SEPA creditor identifier from a financial institution in the country in which you have your main office or residence. For example, you can request the SEPA creditor identifier from the bank that holds your account. This is commonly done online and can sometimes take a few days. In some cases, your bank may take additional steps to issue a creditor identifier. When contacting your bank for your SEPA creditor identifier, clarify that you are not requesting they process SEPA Direct Debit payments for you.
If you have trouble obtaining your creditor identifier, let us know.
SEPA Direct Debit provides a dispute process for bank account holders to dispute payments. As such, you should make the appropriate decisions regarding your business and how you approach SEPA Direct Debit payments.
For a period of eight weeks after their account was debited, an account holder can dispute a payment through their bank on a “no questions asked” basis. Any disputes within this period are automatically honored.
Beyond the eight-week period after the creation of the payment, and for up to 13 months, a customer may only dispute a payment with their bank if they consider the debit had not been authorized. In this event, we automatically provide the customer’s bank with the mandate that the customer approved. This does not guarantee that the dispute can be canceled as the customer’s bank can still decide that the debit was not authorized by the mandate—and that their customer is entitled to a refund.
A dispute can also occur if the customer’s bank is unable to debit their account because of a problem (for example, the account is frozen or has insufficient funds), but it has already provided the funds to make a charge successful. In this instance, the bank reclaims those funds in the form of a dispute.
If a dispute is created, a
charge.dispute.created webhook event is sent and Stripe deducts the amount of the dispute and dispute fee from your Stripe balance. This fee varies based on your account’s default settlement currency:
|Settlement Currency||Dispute Fee|
Unlike credit card disputes, all SEPA Direct Debit disputes are final and there is no appeals process. If a customer successfully disputes a payment, you must reach out to them if you would like to resolve the situation. If you’re able to come to an arrangement and your customer is willing to return the funds to you, they will need to make a new payment.
In general, each dispute includes the reason for its creation, though this can vary from country to country. For instance, disputed payments in Germany do not provide additional information for privacy reasons.
Payments made with SEPA Direct Debit can only be submitted for refund within 180 days from the date of the original charge. After 180 days, it is no longer possible to refund the charge. Similar to the delays introduced to payments with SEPA Direct Debit, refunds also require additional time to process (typically 3-4 business days). Should you accidentally debit your customer, please contact them immediately to avoid having the payment disputed.
A refund can only be processed after the payment process has completed. If you create a full or partial refund on a payment that has not yet been completed, the refund is actioned once the
Charge object’s status has transitioned to
succeeded. In the event of a payment where the
Charge object’s status transitioned to
failed, full and partial refunds are marked as canceled, as the money never left the customer’s bank account.
SEPA does not explicitly label refunds when the funds are deposited back to the customer’s account. Instead, they are processed as a credit and include a visible reference to the original payment’s statement descriptor.
Due to longer settlement time periods and the nature of how banks process SEPA Direct Debit transactions, there is potential for confusion between you, your customer, your customer’s bank, and Stripe. For instance, your customer may contact both you and their bank to dispute a payment. If you proactively issue your customer a refund while the customer’s bank also initiates the dispute process, your customer could end up receiving two credits for the same transaction.
When issuing a refund, it’s important that you immediately inform your customer that it may take up to five business days for the refund to arrive in their bank account.