SEPA credit transfers, direct debit mandates, pain.001 and pain.008 files: the full payment workflow from Odoo, tuned for Luxembourg banks.
Paying twenty suppliers at month-end by typing each transfer into your web banking takes an hour and invites a typo in every IBAN. Odoo generates a single SEPA payment file that your bank executes with one signature. Here is how to set the workflow up, and what has changed on the European regulatory side.
How do Odoo SEPA payments work?
Odoo SEPA payments work in three steps: you register payments on your vendor bills, group them into a batch, and Odoo generates an XML file in the pain.001 format. You then upload that file to your web banking, which executes all the transfers at once after a single signature.
Everything starts in accounts payable. Validated vendor bills show up with their due date; you select the ones to pay, Odoo creates the payments and attaches them to the relevant bank journal. The one prerequisite: every supplier needs an IBAN on their record. A Luxembourg IBAN has 20 characters (LU followed by 18 digits) and Odoo validates the structure on entry, which already removes the classic typing mistake.
Initial configuration
In the bank journal (Accounting, then Configuration, then Journals), you enter the company's bank account and BIC, then enable SEPA credit transfers in the outgoing payments tab. The ordering party's identity (the exact account holder name) must match what your bank has on file: this matters more than ever with payee verification, covered below.
pain.001: the switch not to miss in November 2026
By default, Odoo generates credit transfers in the pain.001.001.03 format. That version of the ISO 20022 standard is being phased out and is announced as deprecated in November 2026. Odoo already lets you switch to pain.001.001.09, the current version, directly in the bank journal settings.
If your transfers go through fine today, change nothing before checking what your bank accepts: some Luxembourg banks take both versions during the transition, others will require the new one. The right move is to ask your relationship manager before the deadline, then adjust the setting in Odoo. It is a configuration change, not a development project.
SEPA direct debit: collecting from recurring customers
In the other direction, Odoo handles SEPA Direct Debit. It is the right tool if you invoice subscriptions, maintenance contracts or rent: the customer signs a mandate once, and you trigger collection at every due date instead of waiting for their transfer.
Three things to put in place:
- A SEPA creditor identifier: your unique creditor ID, requested through your bank. Without it, no direct debit file will be accepted.
- Signed mandates: Odoo stores each mandate on the customer record (reference, signature date, type) and refuses to collect from a customer without an active mandate.
- The right scheme: CORE for consumers (with an 8-week refund right), B2B between businesses (no refund right, but the debtor's bank must also register the mandate).
Generated files follow the pain.008.001.02 format by default. If your bank requires the 2023 update of the standard, Odoo offers pain.008.001.08 in the journal settings, incoming payments tab.
Payee verification and instant transfers: what changed
The European Instant Payments Regulation 2024/886 changed two very practical things for eurozone businesses, Luxembourg included.
First, since 9 January 2025 your bank must be able to receive instant transfers, and since 9 October 2025 it must let you send them, at the same price as a standard transfer. For your cash management, an urgent supplier payment no longer justifies extra fees.
Second, since 9 October 2025, Verification of Payee is mandatory: before executing a transfer, the bank compares the beneficiary name you entered with the actual holder of the IBAN and warns you about mismatches. The direct consequence for SEPA files generated from Odoo: clean supplier records, with the exact legal name rather than an in-house abbreviation, spare you a string of warnings when validating the batch. Cleaning up the supplier base before going live is half a day's work that pays for itself quickly.
The full workflow, from bill to reconciliation
| Step | Where it happens | Format |
|---|---|---|
| Vendor bill validation | Odoo, accounts payable | - |
| Payment batch creation | Odoo, batch payments | - |
| Credit transfer file generation | Odoo, bank journal | pain.001 |
| Direct debit file generation | Odoo, bank journal | pain.008 |
| Payment execution | Your bank's web banking | Signed XML upload |
| Bank reconciliation | Odoo, synchronized statements | - |
The loop closes with the bank statement: once payments are executed, they flow back into Odoo through bank synchronization and match automatically against the registered payments. Supplier accounts are settled without re-entry, and the payables schedule reflects reality at all times.
On a typical Luxembourg SME we work with, handling 60 to 80 vendor bills a month, moving from manual entry to SEPA batches saves roughly two hours a month, and above all eliminates duplicate payments and transfers sent to an outdated IBAN.
Frequently asked questions
Will my Luxembourg bank accept SEPA files from Odoo?
In the vast majority of cases, yes: pain.001 is the ISO 20022 standard processed by every bank in the SEPA zone. What you should confirm with your bank is the accepted version (03 or 09) and the upload channel.
Do SEPA payments require a paid add-on in Odoo?
SEPA credit transfers and direct debits are part of Odoo Enterprise accounting, with no third-party module. The bank journal does need proper configuration: IBAN, BIC and a creditor identifier for direct debits.
Can I mix credit transfers and direct debits in one file?
No. Credit transfers go through pain.001 and direct debits through pain.008: two separate message types in the standard, so two separate files, even though everything is managed from the same screen in Odoo.
What happens when a direct debit bounces?
The rejection appears on your synchronized bank statement and the payment is reversed in Odoo, which reopens the invoice. Under the CORE scheme, a consumer can also dispute an authorised collection for 8 weeks: worth factoring into your cash flow monitoring.
Going further: Odoo in Luxembourg, the guide for your SME · Bank synchronization in Odoo · E-invoicing in Luxembourg: obligations, Peppol and Odoo
Why Advena?
We set up SEPA payment workflows in Odoo for Luxembourg SMEs, with the accounting behind them: journals, formats your bank accepts, direct debit mandates and automatic reconciliation. The same firm configures the tool and keeps your books, which removes the back-and-forth between an integrator and a fiduciary that never talk to each other.
Ready to pay your suppliers in one batch instead of twenty manual entries?
Talk to an Odoo expert