OdooWiki OCA HUB

Account Banking SEPA Direct Debit

account_banking_sepa_direct_debit folder_open OCA/bank-payment open_in_new
Banking addons License: AGPL-3

Create SEPA files for Direct Debit

Module to export direct debit payment orders in SEPA XML file format.

SEPA PAIN (PAyment INitiation) is the new european standard for Customer-to-Bank payment instructions. This module implements SEPA Direct Debit (SDD), more specifically PAIN versions 008.001.02, 008.001.03 and 008.001.04. It is part of the ISO 20022 standard, available on .

The Implementation Guidelines for SEPA Direct Debit published by the European Payments Council () use PAIN version 008.001.02. So if you don't know which version your bank supports, you should try version 008.001.02 first.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Generate SEPA Direct Debit (SDD) XML payment files from payment orders and manage SEPA mandates, including mandate printing, emailing and automatic expiry.

This module lets you collect customer payments by SEPA Direct Debit. On a payment order using the SEPA Direct Debit payment method, Odoo builds the bank XML file (PAIN 008.001.02, .03, .04 or the German 008.003.02) with the debtor, mandate and amount details.

  • Mandates (account.banking.mandate) gain SEPA fields: format, type (Recurrent or One-Off), scheme (CORE or B2B), sequence type (First, Recurring, Final) and a unique mandate reference. A Recurrent mandate must have a sequence type.
  • From the mandate form you can Print the SEPA mandate report or Send it by Email using the 'SEPA Mandate: Send by email' template; sending marks the mandate as sent.
  • A scheduled job sets valid mandates to Expired after 36 months without use and posts a message on the mandate.
  • When a payment line is confirmed, Odoo checks that a valid mandate exists and blocks One-Off mandates that already have a last debit date.
  • When a debit order is marked as uploaded, mandates get their last debit date, One-Off and Final mandates expire, and First mandates switch to Recurring.
  • The SEPA Creditor Identifier is set on the company, in settings, or per payment mode, and is validated.

It touches account.payment.order, account.payment.line, account.payment.method, account.payment.mode, res.company and res.config.settings.

Models and fields (8)
  • res.company · extends an existing modelsepa_creditor_identifier (SEPA Creditor Identifier)
  • res.config.settings · extends an existing modelsepa_creditor_identifier
  • account.payment.line · extends an existing model
  • account.payment.mode · extends an existing modelsepa_creditor_identifier (SEPA Creditor Identifier)
  • mail.compose.message · extends an existing model
  • account.payment.order · extends an existing model
  • account.payment.method · extends an existing modelpain_version
  • account.banking.mandate · extends an existing modeltype, format, scheme, is_sent, display_name, recurrent_sequence_type (Sequence Type for Next Debit), unique_mandate_reference

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 8 confirmed, 1 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/bank-payment.

terminal Installation and usage

OCA documentation · Odoo 19.0

This module depends on :

  • account_banking_pain_base
  • account_banking_mandate

This module is part of the OCA/bank-payment suite.

For setting the SEPA creditor identifier:

  • Go to Invoicing/Accounting \> Configuration \> Settings.
  • On the field "SEPA Creditor Identifier" in the section SEPA/PAIN, you can fill the corresponding identifier.

If your country requires several identifiers (like Spain), you must:

  • Go to Invoicing/Accounting \> Configuration \> Settings.
  • On the section SEPA/PAIN, check the mark "Multiple identifiers".
  • Now go to Invoicing/Accounting \> Configuration \> Management \> Payment Modes.
  • Create a payment mode for your specific bank.
  • Fill the specific identifier on the field "SEPA Creditor Identifier".

For defining a payment mode that uses SEPA direct debit:

  • Go to Invoicing/Accounting \> Configuration \> Management \> Payment Modes.
  • Create a record.
  • Select the Payment Method SEPA Direct Debit for customers (which is automatically created upon module installation).
  • Check that this payment method uses the proper version of PAIN.
  • If not, go Invoicing/Accounting \> Configuration \> Management \> Payment Methods.
  • Locate the "SEPA Direct Debit for customers" record and open it.
  • Change the "PAIN version" according your needs.
  • If you need to handle several PAIN versions, just duplicate the payment method adjusting this field on each for having them.

In the menu Invoicing/Accounting \> Customers \> Debit Order, create a new debit order and select the Payment Mode dedicated to SEPA Direct Debit that you created during the configuration step.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.