EU SEPA Direct Debit - CORE pain.008 Generator
Mandate management and automatic FRST / RCUR sequence handling, in one ISO 20022 pain.008 file you upload to your own bank
Collect recurring and one-off payments by SEPA Direct Debit (CORE scheme) directly from Odoo. The module builds a standards compliant ISO 20022 pain.008 (CustomerDirectDebitInitiation) XML file that you upload to your bank's electronic-banking or EBICS channel - no third-party gateway, no per-transaction fees, your data never leaves your database.
Its core job is to get the two things creditors most often get wrong right every time: a clean mandate lifecycle and the correct sequence type on each collection.
Mandate management
A dedicated mandate record holds the debtor, IBAN/BIC, signature date and scheme. Each mandate moves through a clear lifecycle - Draft → Active → Closed - and tracks how many collections have been filed against it.
Automatic FRST / RCUR
The first collection on a recurrent mandate is sent as FRST and every later one as RCUR - the sequence type is derived from the mandate's collection history, never guessed by hand. One-off mandates emit OOFF and a final collection emits FNAL.
What it does
pain.008 CORE file generator
Builds a complete CstmrDrctDbtInitn message: group header
with the total number of transactions and control sum, one or more
PmtInf blocks, and a DrctDbtTxInf per
collection with the mandate-related information. The local instrument
is always CORE and the charge bearer SLEV.
Automatic PmtInf split
A single batch may mix FRST and RCUR collections for the same due
date; the generator automatically splits them into the separate
PmtInf blocks the EPC rulebook requires, ordered first
then recurrent.
IBAN, BIC and Creditor Identifier validation
Real ISO 13616 / ISO 7064 MOD-97 validation of every debtor and creditor IBAN, ISO 9362 BIC structure checking with IBAN-country cross-check, and a full SEPA Creditor Identifier check-digit verification - so the file clears the bank's validation on the first upload.
Two schema versions
Emit pain.008.001.02 (accepted by virtually every bank)
or pain.008.001.08 (the ISO 20022 2019 maintenance
version for the November 2023 SEPA migration) from the same data.
Timing & pre-notification checks
Built-in helpers for the harmonised CORE D-1 presentation lead time, the 14-day pre-notification window, the debtor's 8-week refund right, and the 36-month mandate-lapse rule - surfaced as warnings before you send.
Build collections from invoices
A wizard turns selected posted customer invoices into a ready collection batch, matching each invoice's partner to an active mandate and using the residual amount due.
Sequence types at a glance
| Code | Meaning | When it is used |
|---|---|---|
| FRST | First | The first collection of a recurrent mandate. |
| RCUR | Recurrent | Every subsequent recurrent collection. |
| FNAL | Final | The last collection of a recurrent series; closes the mandate. |
| OOFF | One-off | A single-use collection; the mandate is closed after use. |
Standards & boundary
Implements the EPC SEPA Direct Debit CORE Rulebook and the ISO 20022 pain.008 Customer Direct Debit Initiation message. The module is a pure file generator: it produces the pain.008 XML for you to submit through your own bank channel under your own agreement. It transmits nothing to any external service and is not a payment institution.
Compatible with Odoo 18 and Odoo 19, Community and Enterprise.
Screenshots
Collection Batches
Build From Invoices
Settings
Mandates
Update date: 2026-07-02