# SEPA Direct Debit: How It Works for SaaS and Digital Sellers

> SEPA Direct Debit explained for SaaS and digital sellers: mandates, Core vs B2B, the 8-week refund right, return reasons, and fees compared to cards.
- **Author**: Deepak Jangir
- **Published**: 2026-10-08
- **Category**: Payments, Global Payments
- **URL**: https://dodopayments.com/blogs/en/sepa-direct-debit

---

A German agency wants to buy your EUR 2,000 annual license. Their finance team does not put purchases of that size on a company card, and the card fee on a cross-border ticket that large eats a noticeable slice of your margin. What they want is to pay straight from their bank account, the same way they pay their rent and their software vendors at home. That is SEPA Direct Debit.

SEPA Direct Debit lets a seller pull euros directly from a customer's bank account anywhere in the eurozone and the wider SEPA area, based on a one-time authorization called a mandate. It is cheaper than cards on large tickets and has no card expiry problem, but it confirms slowly and carries a refund window that card payments do not. This guide explains how it works, how the Core and B2B schemes differ, what refund and return rules apply, and how the fees compare to cards on Dodo Payments.

## What is SEPA Direct Debit?

SEPA Direct Debit is a bank-to-bank pull payment in euros, where the customer authorizes a seller (the creditor) to collect money from their account through a signed mandate. The customer provides an IBAN, agrees to the mandate, and the creditor's bank then submits the collection through the SEPA clearing system to the customer's bank.

It belongs to the wider family of pull payments covered in our explainer on [how direct debit works across regions](https://dodopayments.com/blogs/what-is-direct-debit). The closest US equivalent is ACH Direct Debit, which follows a similar authorize-then-pull model on a different rail and with different return rules.

Here is how it compares to cards from the seller's side:

| Factor                    | SEPA Direct Debit                                 | Card payments                                    |
| ------------------------- | ------------------------------------------------- | ------------------------------------------------ |
| Customer provides         | IBAN and mandate acceptance                       | Card number, expiry, CVC                         |
| Currency                  | EUR only                                          | Many currencies                                  |
| Confirmation speed        | A few business days                               | Near instant authorization                       |
| Expiry problem            | None, bank accounts do not expire                 | Cards expire and get reissued                    |
| Customer reversal right   | Refund request window (Core scheme)               | Chargeback through the card network              |
| Cost on Dodo (large EUR)  | 1.5%, capped at EUR 15                            | 4% + 40c, plus 1.5% international                |
| Best fit                  | Higher-ticket EUR purchases, eurozone B2B         | Low-ticket, impulse, global buyers               |

## How SEPA Direct Debit works: the full lifecycle

A SEPA Direct Debit moves through five stages: mandate, pre-notification, collection, settlement, and a post-settlement window in which the payment can still come back. Understanding that last stage is what separates sellers who are comfortable with bank debits from those who get surprised by them.

```mermaid
flowchart LR
    A["Customer signs mandate (IBAN + authorization)"] --> B["Pre-notification sent to customer"]
    B --> C["Collection submitted to SEPA clearing"]
    C --> D["Settlement after a few business days"]
    D --> E{"Return or refund request?"}
    E -->|No| F["Funds final"]
    E -->|Yes| G["Debit reversed to customer"]
```

### 1. The SEPA Direct Debit mandate

The SEPA Direct Debit mandate is the customer's authorization for the creditor to collect from their account. It records the debtor's name and IBAN, the creditor's name and creditor identifier, a unique mandate reference, whether the mandate is for a one-off or recurring collection, and the date of signature. Today most mandates are accepted electronically during checkout rather than signed on paper.

Every creditor collecting SEPA debits has a creditor identifier, a reference that identifies the business collecting the money. When you sell through a Merchant of Record, the MoR is the legal seller and the collecting party, so you do not need to apply for your own identifier or hold the mandate records yourself.

### 2. Pre-notification

Before money is pulled, the customer must be told the amount and the collection date. This is called pre-notification. For a one-time purchase it is usually part of the checkout confirmation or receipt, so the customer knows exactly what will leave their account and when.

### 3. Collection

The creditor's bank submits the collection through the SEPA clearing system to the debtor's bank. The debtor's bank checks whether the account exists, is open, and allows direct debits. Nothing is reserved the way a card authorization hold reserves credit.

### 4. Settlement

Settlement takes a few business days, which is the biggest operational difference from cards. A card authorization tells you within seconds whether the money is there. A SEPA debit can look fine on submission and still be rejected by the customer's bank days later.

### 5. The return and refund window

Even after settlement, a SEPA Direct Debit can come back. The customer's bank can return it for technical reasons, and on the Core scheme the customer can request a refund within set windows (covered below). That is why your fulfilment logic should treat a bank debit as pending until it is confirmed, and why you should have a plan for reversals after delivery.

## SEPA Core vs B2B: which scheme applies?

SEPA Core is the scheme for consumers and most businesses, and it gives the payer strong refund rights. SEPA B2B is a business-only scheme where the payer's bank verifies the mandate up front and the payer gives up the no-questions refund right in exchange. If your buyers are individual developers or creators, you are in Core territory. If your buyers are finance departments with formal approval processes, B2B can exist as an option, but it requires both sides to opt in.

| Feature                          | SEPA Core                                          | SEPA B2B                                                   |
| -------------------------------- | -------------------------------------------------- | ---------------------------------------------------------- |
| Who can pay                      | Consumers and businesses                           | Businesses only (payer cannot be a consumer)               |
| Mandate check by payer's bank    | Not required before the first debit                | Payer must register the mandate with their bank             |
| Refund for authorized debit      | Within 8 weeks, no reason needed                   | No 8-week refund right                                     |
| Refund for unauthorized debit    | Up to 13 months                                    | Unauthorized debits can still be disputed with the bank    |
| Bank reachability                | Broad, banks in the SEPA area support Core         | Narrower, not every bank or account offers B2B             |
| Typical use                      | Consumer and SMB purchases, standard SaaS checkout | Large B2B invoices, procurement-led purchases              |

Most hosted checkouts for SaaS and digital products run on Core because it reaches the widest set of bank accounts with no setup from the buyer. B2B's stronger finality is attractive, but the mandate registration step adds friction a self-serve checkout cannot absorb.

## SEPA Direct Debit refund rules explained

On the Core scheme, a customer can ask their bank to refund an authorized SEPA Direct Debit within 8 weeks of the debit date, with no reason required. If the debit was not authorized at all, for example there was no valid mandate, the customer can claim a refund for up to 13 months. The B2B scheme removes the 8-week no-questions right, which is its main appeal to sellers.

This differs from a card chargeback, where the merchant can respond with evidence. The Core 8-week refund is a scheme right of the payer, so the bank does not ask the seller to justify an authorized charge. If you want a refresher on how merchant-issued refunds and network-driven reversals differ, see our breakdown of [chargebacks versus refunds](https://dodopayments.com/blogs/chargeback-vs-refund).

Three practical consequences follow for digital sellers:

- Deliver value immediately and keep clear records, so a customer who is happy with the product has no reason to use the refund right.
- Make your own refund process easy to find. A customer who can get a refund from you in two clicks is less likely to go to their bank.
- For instant-access digital goods with real marginal cost, such as API credits or compute, think about whether SEPA is the right method for that specific product.

### Why SEPA debits get returned

Separate from refund requests, a debit can be returned by the customer's bank for operational reasons. The common ones are:

- Insufficient funds in the account on the collection date.
- The account is closed, blocked, or the IBAN is invalid.
- The mandate was revoked or cancelled by the customer.
- The account does not accept direct debits, or the customer has blocked debits from that creditor.
- The customer's bank refused the collection for regulatory or other reasons.

Return rates vary by vertical and customer type. The safe design assumption is simple: a SEPA payment is not final until the bank confirms it, and even then a Core refund can arrive later. When a debit comes back unpaid, a clear [dunning letter sequence](https://dodopayments.com/blogs/dunning-letter) helps you collect without damaging the relationship.

## SEPA vs card payments: pros and cons for European customers

SEPA Direct Debit is cheaper than cards on large EUR tickets and avoids card expiry, while cards confirm instantly and work for buyers everywhere. The right answer for most sellers is to offer both and let the buyer choose, which is the core argument behind [localizing payment methods to lift conversion](https://dodopayments.com/blogs/payment-localization-increases-arr).

### Advantages of SEPA Direct Debit

- **Lower cost on larger tickets.** A capped percentage fee becomes much cheaper than an uncapped card percentage once the order size grows.
- **No card expiry or reissue.** IBANs do not expire, so there is no failed payment because a card was replaced.
- **Fits company payment policies.** Many finance teams prefer bank payments over corporate cards for larger purchases.

### Disadvantages of SEPA Direct Debit

- **Slower confirmation.** Settlement takes a few business days, so you cannot confirm payment at checkout the way you can with a card authorization.
- **Later failures.** A debit can be returned after it looked successful, which complicates instant fulfilment.
- **Refund window risk.** On Core, the 8-week no-reason refund right exists regardless of how good your product is.
- **EUR only.** SEPA Direct Debit moves euros, so it does not help buyers paying in other currencies.

For a broader look at how SEPA fits next to iDEAL, Bancontact, Klarna and other regional options, our guide to [European payment methods for SaaS](https://dodopayments.com/blogs/european-payment-methods-saas) covers each one, and our list of the [best payment methods for SaaS](https://dodopayments.com/blogs/best-payment-methods-for-saas) shows how they rank against cards and wallets globally.

## When to offer SEPA Direct Debit

Offer SEPA Direct Debit when you sell higher-ticket, one-time EUR purchases, or when a meaningful share of your buyers are eurozone businesses who prefer to pay from a bank account. It is less useful for low-ticket impulse buys, where the fee saving is small and instant confirmation matters more.

Good fits include:

- Annual licenses, lifetime deals, and multi-seat team plans priced in EUR.
- Agencies and SMBs in the eurozone that pay software vendors from a business account.
- Courses, templates, and digital bundles at higher price points sold to European buyers.
- Any product where you see European buyers abandoning checkout because they do not want to use a card.

Weaker fits are low-ticket purchases and buyers outside the SEPA area. If your EU expansion also involves VAT questions, the [EU VAT guide for SaaS](https://dodopayments.com/blogs/eu-vat-saas-guide-2026) and the explainer on [reverse charge VAT for B2B sales](https://dodopayments.com/blogs/reverse-charge-vat) cover the tax side.

## SEPA Direct Debit fees vs card fees on Dodo Payments

On Dodo Payments, SEPA Direct Debit costs a flat 1.5% capped at EUR 15 per transaction. Card payments are 4% + 40c, plus 1.5% for international cards, so a European buyer paying by card typically lands at 5.5% + 40c. The SEPA rate replaces the card fee entirely, and the international surcharge does not apply to it.

The cap kicks in at EUR 1,000, which is where the gap really widens. Here is a worked example on three ticket sizes. For simplicity, the card column shows the percentage component only; the fixed 40c is charged in USD on top.

| Ticket size | SEPA Direct Debit (1.5%, cap EUR 15) | Card, international (5.5% component) | Difference (before the 40c) |
| ----------- | ------------------------------------ | ------------------------------------ | --------------------------- |
| EUR 50      | EUR 0.75                             | EUR 2.75                             | EUR 2.00 lower with SEPA    |
| EUR 500     | EUR 7.50                             | EUR 27.50                            | EUR 20.00 lower with SEPA   |
| EUR 2,000   | EUR 15.00 (capped, 0.75% effective)  | EUR 110.00                           | EUR 95.00 lower with SEPA   |

At EUR 50 the saving is real but small, and many buyers will still prefer a card for the instant confirmation. At EUR 2,000 the card fee is more than seven times the SEPA fee, which is why bank debits make the most sense on high-value orders. Both rates include Merchant of Record coverage, so VAT calculation, filing, and remittance are handled either way. You can see the full fee schedule on the [Dodo Payments pricing page](https://dodopayments.com/pricing), and our [payment processing fees comparison](https://dodopayments.com/blogs/payment-processing-fees-compared) puts these numbers next to other providers.

### SEPA and ACH: the same model in two regions

Dodo also offers ACH Direct Debit for US customers at a flat 1.5% capped at $15 per transaction, the same structure as SEPA. If you sell on both sides of the Atlantic, the economics line up neatly: bank debits for large tickets in USD and EUR, cards and wallets for everything else. Our guide to [accepting ACH payments from customers](https://dodopayments.com/blogs/accept-ach-payments-from-customers) covers the US side, and the [ACH payment method docs](https://docs.dodopayments.com/features/payment-methods/ach) list the setup details.

## Accepting SEPA Direct Debit with Dodo Payments

Dodo Payments added SEPA Direct Debit for one-time EUR payments in August 2026 (v1.112.0). It appears at checkout for eligible EUR one-time purchases, alongside cards, wallets and other local methods. SEPA is currently for one-time payments, so recurring subscriptions should continue to use cards, wallets, or the other methods Dodo supports for subscriptions.

The [European payment methods docs](https://docs.dodopayments.com/features/payment-methods/europe) list the regional methods and their requirements, and the [payment methods overview](https://docs.dodopayments.com/features/payment-methods) explains how methods are shown to each buyer. Because SEPA is EUR only, it pairs well with [Adaptive Currency](https://docs.dodopayments.com/features/adaptive-currency) or EUR-priced products so European buyers see their own currency at checkout.

### Creating a checkout session for a EUR one-time product

You do not build a SEPA-specific flow. You create a standard checkout session for a one-time product, and the [hosted checkout](https://docs.dodopayments.com/features/checkout) offers SEPA Direct Debit to eligible buyers paying in EUR.

```typescript
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
});

// One-time product priced in EUR, e.g. an annual team license
export async function createEuroCheckout(email: string, name: string) {
  const session = await client.checkoutSessions.create({
    product_cart: [{ product_id: 'pdt_annual_license_eur', quantity: 1 }],
    customer: { email, name },
    return_url: `${process.env['APP_URL']}/checkout/complete`,
  });

  // Redirect the buyer here. Eligible EUR buyers will see SEPA Direct Debit.
  return session.checkout_url;
}
```

### Handling asynchronous confirmation with webhooks

A bank debit confirms days after checkout, so the return URL is not proof of payment. Your backend should listen for webhooks: `payment.processing` while the debit is in flight, then `payment.succeeded` or `payment.failed` once the bank responds. The [payment webhook reference](https://docs.dodopayments.com/developer-resources/webhooks/intents/payment) documents the payload, and our guide to [webhooks for payment notifications](https://dodopayments.com/blogs/webhooks-payment-notifications) covers the general pattern.

```typescript
import express from 'express';
import { Webhook } from 'standardwebhooks';

const app = express();
const webhook = new Webhook(process.env['DODO_PAYMENTS_WEBHOOK_SECRET']!);

// Use the raw body: re-serialized JSON will not match the signature
app.post('/webhooks/dodo', express.raw({ type: 'application/json' }), async (req, res) => {
  let event: any;
  try {
    event = webhook.verify(req.body.toString(), {
      'webhook-id': req.headers['webhook-id'] as string,
      'webhook-signature': req.headers['webhook-signature'] as string,
      'webhook-timestamp': req.headers['webhook-timestamp'] as string,
    });
  } catch {
    return res.status(401).send('Invalid signature');
  }

  const paymentId = event.data.payment_id;

  switch (event.type) {
    case 'payment.processing':
      // SEPA debit submitted, bank has not confirmed yet.
      // Show "payment pending" and hold full fulfilment.
      await markOrderPending(paymentId);
      break;
    case 'payment.succeeded':
      // Bank confirmed the debit. Grant access, send receipt.
      await fulfilOrder(paymentId);
      break;
    case 'payment.failed':
      // Debit rejected (e.g. insufficient funds, closed account).
      // Release the order and ask the buyer to pay another way.
      await failOrder(paymentId);
      break;
  }

  res.status(200).send('ok');
});

// Your own order logic
declare function markOrderPending(id: string): Promise<void>;
declare function fulfilOrder(id: string): Promise<void>;
declare function failOrder(id: string): Promise<void>;
```

Make each handler idempotent, because webhooks can be delivered more than once, and decide what "pending" means for your product: some sellers grant limited access during `payment.processing` and upgrade on `payment.succeeded`, others wait.

For cross-border operations beyond Europe, our [cross-border payments guide](https://dodopayments.com/blogs/cross-border-payments-guide) explains how local methods, currency, and settlement fit together.

## FAQ

### How long does a SEPA Direct Debit take to clear?

A SEPA Direct Debit typically settles within a few business days after collection is submitted. Unlike a card authorization, you do not get an instant answer at checkout, so treat the payment as pending until the bank confirms it.

### Can a customer reverse a SEPA Direct Debit?

Yes. On the SEPA Core scheme, a customer can request a refund of an authorized debit within 8 weeks with no reason needed, and up to 13 months if the debit was unauthorized. The SEPA B2B scheme removes the 8-week no-reason refund right.

### What is the difference between SEPA Core and SEPA B2B?

SEPA Core works for consumers and businesses and gives payers strong refund rights. SEPA B2B is for business payers only, requires the payer to register the mandate with their bank, and removes the 8-week refund right in exchange for more finality for the seller.

### How much does SEPA Direct Debit cost on Dodo Payments?

SEPA Direct Debit on Dodo Payments is a flat 1.5% capped at EUR 15 per transaction, replacing the card fee. A EUR 2,000 order costs EUR 15, compared to a 5.5% percentage component plus 40c for an international card.

### Does Dodo Payments support SEPA Direct Debit for subscriptions?

Dodo Payments supports SEPA Direct Debit for one-time EUR payments, added in August 2026. For recurring subscriptions, use cards, wallets, or the other payment methods Dodo supports for subscriptions.

## Final Take

SEPA Direct Debit is the payment method European buyers reach for when the ticket is large and the card is the wrong tool. It costs less on big EUR orders, never expires, and fits how eurozone businesses already pay vendors. The trade-off is time and finality: confirmation takes days, failures can arrive late, and Core refunds stay open for 8 weeks.

If you sell one-time EUR products, offering SEPA next to cards is a low-effort way to win the buyers who would otherwise walk away. [Dodo Payments](https://dodopayments.com) handles the mandate, collection, VAT, and compliance as your Merchant of Record, and the [pricing page](https://dodopayments.com/pricing) shows exactly what each method costs.
---
- [More Payments articles](https://dodopayments.com/blogs/category/payments)
- [All articles](https://dodopayments.com/blogs)