Repository
OCA/bank-payment · module folder · Try on Runboat
Module version
1.1.1
Category
Banking addons
Folder size
0.58 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/bank-payment
Last tracking update
2026-08-19 11:39:12
Authors
Akretion, Odoo Community Association (OCA), Tecnativa
Maintainers
Akretion, Odoo Community Association (OCA), Tecnativa
Committers
Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, adrip-s73, arantxa-s73
Odoo dependencies
Python dependencies
lxml, unidecode
System dependencies
None
Required by
l10n_es_account_banking_sepa_fsdd
Description
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 <http://www.iso20022.org>.

The Implementation Guidelines for SEPA Direct Debit published by the
European Payments Council
(<http://http://www.europeanpaymentscouncil.eu>) 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.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
account_payment_mode_form Add SEPA identifiers on payment mode form account.payment.mode form Inherits account_banking_pain_base.account_payment_mode_form
sepa_direct_debit_mandate sepa_direct_debit_mandate ir.ui.view qweb New
sepa_direct_debit_mandate_document sepa_direct_debit_mandate_document ir.ui.view qweb New
view_account_config_settings sepa_direct_debit.account_config_settings.form res.config.settings form Inherits account_banking_pain_base.view_account_config_settings
view_mandate_form sdd.mandate.form account.banking.mandate form Inherits account_banking_mandate.view_mandate_form
view_mandate_search sdd.mandate.search account.banking.mandate search Inherits account_banking_mandate.view_mandate_search
view_mandate_tree sdd.mandate.tree account.banking.mandate tree Inherits account_banking_mandate.view_mandate_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (7)
  • display_name Char
    compute='_compute_display_name2' store=True
  • format Selection
    default='sepa' ondelete={'sepa': 'set default'} selection_add=[('sepa', 'Sepa Mandate')]
  • is_sent Boolean
  • recurrent_sequence_type Selection
    default='first' help='This field is only used for Recurrent mandates, not for One-Off mandates.' string='Sequence Type for Next Debit' tracking=70 args: [('first', 'First'), ('recurring', 'Recurring'), ('final', 'Final')]
  • scheme Selection
    default='CORE' tracking=80 args: [('CORE', 'Basic (CORE)'), ('B2B', 'Enterprise (B2B)')]
  • type Selection
    default='recurrent' ondelete={'recurrent': 'set null', 'oneoff': 'set null'} selection_add=[('recurrent', 'Recurrent'), ('oneoff', 'One-Off')]
  • unique_mandate_reference Char
    size=35
Public methods (3)
  • action_mandate_send(self)
    Opens a wizard to compose an email, with relevant mail template loaded by default
  • mandate_partner_bank_change(self)
    @api.onchange('partner_bank_id')
  • print_report(self)

New fields (0)

No new fields.

Public methods (1)
  • draft2open_payment_line_check(self)

New fields (1)
  • pain_version Selection
    ondelete={'pain.008.001.02': 'set null', 'pain.008.001.03': 'set null', 'pain.008.001.04': 'set null', 'pain.008.003.02': 'set null'} selection_add=[('pain.008.001.02', 'pain.008.001.02 (recommended for direct debit)'), ('pain.008.001.03', 'pain.008.001.03'), ('pain.008.001.04', 'pain.008.001.04'), ('pain.008.003.02', 'pain.008.003.02 (direct debit in Germany)')]
Public methods (1)
  • get_xsd_file_path(self)

New fields (1)
  • sepa_creditor_identifier Char
    help='Enter the Creditor Identifier that has been attributed to your company to make SEPA Direct Debits. If not defined, SEPA Creditor Identifier from company will be used.\nThis identifier is composed of :\n- your country ISO code (2 letters)\n- a 2-digits checkum\n- a 3-letters business code\n- a country-specific identifier' size=35 string='SEPA Creditor Identifier'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • generate_payment_file(self)
    Creates the SEPA Direct Debit file. That's the important code !
  • generated2uploaded(self)
    Write 'last debit date' on mandates Set mandates from first to recurring Set oneoff mandates to expired

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • sepa_creditor_identifier Char
    help='Enter the Creditor Identifier that has been attributed to your company to make SEPA Direct Debits. This identifier is composed of :\n- your country ISO code (2 letters)\n- a 2-digits checkum\n- a 3-letters business code\n- a country-specific identifier' size=35 string='SEPA Creditor Identifier'
Public methods (0)

No public methods.

New fields (1)
  • sepa_creditor_identifier Char
    readonly=False related='company_id.sepa_creditor_identifier'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…