Repository
OCA/bank-payment · module folder · Try on Runboat
Module version
1.0.0
Category
Banking addons
Folder size
0.89 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/bank-payment
Last tracking update
2026-08-07 09:06:34
Authors
Akretion, Odoo Community Association (OCA), Tecnativa, Compassion CH, Therp B.V.
Maintainers
Akretion, Odoo Community Association (OCA), Tecnativa, Compassion CH, Therp B.V.
Committers
Weblate, OCA-git-bot, oca-ci, AlexGarS73
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_banking_mandate_contact, account_banking_mandate_sale, account_banking_sepa_direct_debit
Description
This module adds a generic model for banking mandates. These mandates
can be specialized to fit any banking mandates (such as sepa or lsv).

A banking mandate is attached to a bank account and represents an
authorization that the bank account owner gives to a company for a
specific operation (such as direct debit). You can setup mandates from
the accounting menu or directly from a bank account.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
account_payment_line_form account_banking_mandate.account.payment.line.form account.payment.line form Inherits account_payment_order.account_payment_line_form
account_payment_line_tree account_banking_mandate.account.payment.line.tree account.payment.line tree Inherits account_payment_order.account_payment_line_tree
account_payment_method_form account_banking_mandate.account.payment.method.form account.payment.method form Inherits account_payment_mode.account_payment_method_form
mandate_partner_bank_form mandate.res.partner.bank.form res.partner.bank form Inherits base.view_partner_bank_form
mandate_partner_bank_tree mandate.res.partner.bank.tree res.partner.bank tree Inherits base.view_partner_bank_tree
partner_view_buttons mandate.res.partner.form res.partner form Inherits account.view_partner_property_form
view_mandate_form view.mandate.form account.banking.mandate form New
view_mandate_search view.mandate.search account.banking.mandate search New
view_mandate_tree view.mandate.tree account.banking.mandate list New
view_move_form add.mandate.on.account.move.form account.move form Inherits account_payment_mode.view_move_form
views_mandate_form_buttons view.mandate.form.buttons account.banking.mandate form Inherits account_banking_mandate.view_mandate_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (12)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • format Selection
    default='basic' required=True string='Mandate Format' tracking=20 args: [('basic', 'Basic Mandate')]
  • last_debit_date Date
    readonly=True string='Date of the Last Debit'
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' domain=<expr> index='btree' ondelete='restrict' string='Bank Account' tracking=40
  • partner_id Many2one → res.partner
    comodel_name='res.partner' index='btree' related='partner_bank_id.partner_id' store=True string='Partner'
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='mandate_id' string='Related Payment Lines'
  • payment_line_ids_count Integer
    compute='_compute_payment_line_ids_count'
  • scan Binary
    string='Scan of the Mandate'
  • signature_date Date
    string='Date of Signature of the Mandate' tracking=50
  • state Selection
    default='draft' help='Only valid mandates can be used in a payment line. A cancelled mandate is a mandate that has been cancelled by the customer.' string='Status' tracking=60 args: [('draft', 'Draft'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancel', 'Cancelled')]
  • type Selection
    string='Type of Mandate' tracking=30 args: [('generic', 'Generic Mandate')]
  • unique_mandate_reference Char
    copy=False default='/' tracking=10
Public methods (6)
  • back2draft(self)
    Allows to set the mandate back to the draft state. This is for mandates cancelled by mistake.
  • cancel(self)
  • create(self, vals_list)
    @api.model_create_multi
  • mandate_partner_bank_change(self)
    @api.onchange('partner_bank_id')
  • show_payment_lines(self)
  • validate(self)

New fields (2)
  • mandate_id Many2one → account.banking.mandate
    check_company=True compute='_compute_mandate_id' ondelete='restrict' readonly=False store='True' string='Direct Debit Mandate' args: 'account.banking.mandate'
  • mandate_required Boolean
    readonly=True related='payment_mode_id.payment_method_id.mandate_required'
Public methods (1)
  • partner_banks_to_show(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mandate_id Many2one → account.banking.mandate
    compute='_compute_mandate_id' args: 'account.banking.mandate'
Public methods (0)

No public methods.

New fields (2)
  • mandate_id Many2one → account.banking.mandate
    check_company=True comodel_name='account.banking.mandate' domain=[('state', '=', 'valid')] string='Direct Debit Mandate'
  • mandate_required Boolean
    readonly=True related='order_id.payment_method_id.mandate_required'
Public methods (1)
  • draft2open_payment_line_check(self)

New fields (1)
  • mandate_required Boolean
    help='Activate this option if this payment method requires your customer to sign a direct debit mandate with your company.'
Public methods (0)

No public methods.

New fields (2)
  • mandate_count Integer
    compute='_compute_mandate_count' readonly=True string='Number of Mandates'
  • valid_mandate_id Many2one → account.banking.mandate
    comodel_name='account.banking.mandate' compute='_compute_valid_mandate_id' string='First Valid Mandate'
Public methods (0)

No public methods.

New fields (1)
  • mandate_ids One2many → account.banking.mandate
    comodel_name='account.banking.mandate' help='Banking mandates represent an authorization that the bank account owner gives to a company for a specific operation.' inverse_name='partner_bank_id' string='Direct Debit Mandates'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…