Back to Blog

April 28, 2026

Odoo Automates SEPA Direct Debit Collection with Batch Payments and Mandate Management

Odoo streamlines recurring payment collection for European businesses with SEPA Direct Debit batch processing, automated mandate lifecycle tracking, and one-click XML file generation for bank submission.

Collecting recurring payments in Europe has always been more complicated than it needs to be. Credit cards work for consumer subscriptions, but business-to-business billing across the eurozone runs on a different rail: SEPA Direct Debit. It’s the standard way to pull funds directly from a customer’s bank account, used by everyone from utility companies to SaaS vendors to gym chains. The mechanism is powerful, but the operational overhead — managing mandates, generating compliant XML files, tracking collection status — has traditionally required either specialized banking software or a lot of manual work.

Odoo has built the entire SEPA Direct Debit workflow into its accounting module, from mandate creation to batch file generation to payment reconciliation. For businesses that bill customers on a recurring basis across the SEPA zone, this replaces what was previously a multi-tool, multi-step process with something that lives inside the same system where invoices are created.

The Mandate Problem

Before you can debit a customer’s bank account, they have to authorize it through a mandate — a signed agreement that gives your company permission to pull funds. Each mandate has a lifecycle: it starts as a draft, becomes active when signed, and can be revoked or expired. Tracking which customers have active mandates, when they were signed, and whether they’re still valid is the administrative backbone of any direct debit operation.

Odoo handles this by attaching mandates directly to customer records. When setting up a customer for direct debit, the mandate reference, signing date, and debtor bank account are recorded on the contact form. The mandate status updates automatically as payments are processed — a new mandate starts as a one-off or recurrent type, and the system tracks whether it’s been used, when it was last debited, and whether it remains valid under SEPA rules.

The SEPA creditor identifier configuration screen in Odoo accounting settings

Batch Collection in Practice

The real workflow starts when invoices are due. Instead of processing each payment individually, Odoo groups outstanding invoices with active SEPA Direct Debit mandates into batches. A single action creates a collection batch, validates the mandates, and generates the XML file that gets uploaded to the bank.

The XML file follows the SEPA pain.008 standard, which is the format that every SEPA-zone bank accepts for direct debit collections. This isn’t a proprietary format that only works with specific banking partners — it’s the eurozone-wide standard, which means switching banks doesn’t mean rebuilding the payment integration.

The SEPA batch payment XML generation interface showing collected invoices ready for bank submission

Once the bank processes the collection, payment confirmations flow back into Odoo and automatically reconcile against the original invoices. Failed collections — because the customer’s account had insufficient funds, or the mandate was revoked — are flagged for follow-up. The entire cycle from invoice due date to confirmed payment happens with minimal manual intervention.

The Creditor Identifier Setup

One requirement that trips up many companies is the SEPA Creditor Identifier (SCI). This is a unique reference number assigned to each organization authorized to collect direct debits. It’s issued by the company’s bank or national authority and must be configured in the accounting settings before any collection can be processed.

Odoo stores the SCI in the company settings and includes it automatically in every batch payment file. This is one of those details that’s easy to overlook during setup but causes immediate rejection if it’s missing or incorrect. Having it embedded in the configuration rather than manually appended to each file eliminates a common point of failure.

Who This Is Actually For

SEPA Direct Debit is relevant for any business that collects recurring payments from European customers: subscription services, property management companies, insurance providers, membership organizations, B2B suppliers with regular billing cycles. The common thread is volume — collecting a dozen payments manually is tedious but manageable. Collecting hundreds or thousands requires automation.

For these businesses, the choice has traditionally been between dedicated payment platforms like GoCardless or Stripe (which add per-transaction fees and sit outside the accounting system) and bank-provided batch processing tools (which are functional but disconnected from the invoicing workflow). Odoo’s approach occupies a middle ground: the collection logic lives inside the accounting module, so invoices, mandates, and payment files share the same data, and the bank relationship remains direct without an intermediary taking a cut of each transaction.

For European businesses already running Odoo for their accounting, this eliminates a tool from the stack and a reconciliation step from the month-end close. The payments that get collected are the same payments that were invoiced, in the same system, with no export-import dance in between. That’s how payment collection should work.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.