Account Banking - Payments Export Infrastructure

account_banking_payment_export
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/8.0/account_banking_payment_export
VERSION
VERSION 0.3.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV, Therp BV, Serv. Tecnol. Avanzados - Pedro M. Baeza
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV, Therp BV, Serv. Tecnol. Avanzados - Pedro M. Baeza
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Alexandre Fayolle, Holger Brunn, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Adrien Peiffer, Danimar Ribeiro, Adrien Peiffer (ACSONE), beau sebastien, Laurent Mignon (aka lmi), Emanuel Cino, oca-travis, Weblate, AngelMoya-Domatix, Philippe Schmidt
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_payment
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
    - account_voucher
    - base_iban
    - document
    - knowledge
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree New
payment_order_populate_view_move_line_tree payment.order.populate.account.move.line.tree account.move.line tree New
view_create_payment_order payment.order.create.form.export payment.order.create field Inherits account_payment.view_create_payment_order
view_create_payment_order_lines add.context.to.display.maturity.date payment.order.create field Inherits account_payment.view_create_payment_order_lines
view_create_payment_order_lines add.context.to.display.maturity.date payment.order.create field Inherits account_payment.view_create_payment_order_lines
view_payment_manual_form Form for manual payment wizard payment.manual form New
view_payment_manual_form Form for manual payment wizard payment.manual form New
view_payment_mode_form_inherit payment.mode.form.inherit payment.mode field Inherits account_payment.view_payment_mode_form
view_payment_mode_tree_inherit payment.mode.tree.inherit payment.mode field Inherits account_payment.view_payment_mode_tree
view_payment_mode_type_form view.payment.mode.type.form payment.mode.type form New
view_payment_mode_type_tree view.payment.mode.type.tree payment.mode.type tree New
view_payment_order_form account.payment.order.form.banking-1 payment.order xpath Inherits account_payment.view_payment_order_form
view_payment_order_tree account_banking_payment_export.payment.order.tree payment.order field Inherits account_payment.view_payment_order_tree
Models touched (11)

New fields (0)

No new fields.

Public methods (1)
  • fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False)
    @api.model
    This adds the field 'reference_type' only if the view doesn't contain this field (this is for customer invoice and with l10n_be_invoice_bba not installed).

New fields (1)
  • journal_entry_ref Char
    compute=_get_journal_entry_ref string='Journal Entry Ref'
Public methods (1)
  • get_balance(self)
    @api.multi
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.

New fields (11)
  • amount_currency Float
    compute='_compute_amount' digits=dp.get_precision('Account') store=True string='Amount'
  • bank_id Many2one → res.partner.bank
    related='payment_line_ids.bank_id' string='Bank Account' args: 'res.partner.bank'
  • communication Char
    required=True string='Communication'
  • company_id Many2one → res.company
    readonly=True related='order_id.company_id' store=True string='Company' args: 'res.company'
  • currency Many2one → res.currency
    related='payment_line_ids.currency' required=True string='Currency' args: 'res.currency'
  • date Date
    related='payment_line_ids.date' string='Payment Date'
  • name Char
    required=True string='Bank Payment Line Ref'
  • order_id Many2one → payment.order
    ondelete='cascade' select=True string='Order' args: 'payment.order'
  • partner_id Many2one → res.partner
    related='payment_line_ids.partner_id' string='Partner' args: 'res.partner'
  • payment_line_ids One2many → payment.line
    string='Payment Lines' args: 'payment.line', 'bank_line_id'
  • state Selection
    related='payment_line_ids.state' string='Communication Type'
Public methods (2)
  • create(self, vals)
    @api.model@api.returns('self')
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects

New fields (1)
  • bank_line_id Many2one → bank.payment.line
    string='Bank Payment Line' args: 'bank.payment.line'
Public methods (1)
  • payment_line_hashcode(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • button_ok(self)
    @api.multi

New fields (11)
  • active Boolean
    default=True string='Active'
  • default_date_type Selection
    default='due' string='Type of Date Filter' args: [('due', 'Due'), ('move', 'Move')]
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • default_populate_results Boolean
    string='Populate Results Directly'
  • group_lines Boolean
    default=True help='If this mark is checked, the payment order lines will be grouped when validating the payment order before exporting the bank file. The grouping will be done only if the following fields matches:\n* Partner\n* Currency\n* Destination Bank Account\n* Communication Type (structured, free)\n* Payment Date\n(other modules can set additional fields to restrict the grouping.)' string='Group lines in payment orders'
  • note Text
    string='Note' translate=True
  • payment_order_type Selection
    help='This field, that comes from export type, determines if this mode can be selected for customers or suppliers.' readonly=True related='type.payment_order_type' string='Order Type'
  • purchase_ok Boolean
    default=True string='Selectable on purchase operations'
  • sale_ok Boolean
    default=True string='Selectable on sale operations'
  • type Many2one → payment.mode.type
    help='Select the Export Payment Type for the Payment Mode.' required=True string='Export type' args: 'payment.mode.type'
Public methods (2)
  • suitable_bank_types(self, cr, uid, payment_mode_id=None, context=None)
    Reinstates functional code for suitable bank type filtering. Current code in account_payment is disfunctional.
  • type_on_change(self)
    @api.onchange('type')

New fields (6)
  • active Boolean
    default=True string='Active'
  • code Char
    help='Specify the Code for Payment Type' required=True size=64 args: 'Code'
  • ir_model_id Many2one → ir.model
    domain=[('osv_memory', '=', True)] help='Select the Payment Wizard for payments of this type. Leave empty for manual processing' string='Payment wizard' args: 'ir.model'
  • name Char
    help='Payment Type' required=True size=64 args: 'Name'
  • payment_order_type Selection
    default='payment' help='This field determines if this type applies to customers (Debit) or suppliers (Payment)' required=True string='Order type' args: [('payment', 'Payment'), ('debit', 'Debit')]
  • suitable_bank_types Many2many → res.partner.bank.type
    column1='pay_type_id' column2='bank_type_id' comodel_name='res.partner.bank.type' relation='bank_type_payment_type_rel' required=True string='Suitable bank types'
Public methods (0)

No public methods.

New fields (5)
  • bank_line_count Integer
    compute='_bank_line_count' string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    readonly=True string='Bank Payment Lines' args: 'bank.payment.line', 'order_id'
  • mode_type Many2one → payment.mode.type
    related='mode.type' string='Payment Type' args: 'payment.mode.type'
  • payment_order_type Selection
    default='payment' readonly=True required=True states={'draft': [('readonly', False)]} args: [('payment', 'Payment'), ('debit', 'Direct debit')], 'Payment order type'
  • total Float
    compute='_compute_total' store=True
Public methods (5)
  • action_cancel(self)
    @api.multi
  • action_done(self)
    @api.multi
  • action_open(self)
    @api.multi
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the bank payment lines
  • launch_wizard(self)
    @api.multi
    Search for a wizard to launch according to the type. If type is manual. just confirm the order. Previously (pre-v6) in account_payment/wizard/wizard_pay.py
  • unlink(self)
    @api.multi

New fields (7)
  • date_type Selection
    required=True string='Type of Date Filter' args: [('due', 'Due Date'), ('move', 'Move Date')]
  • duedate Date
    required=False
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Partners'
  • populate_results Boolean
    string='Populate Results Directly'
Public methods (5)
  • create_payment(self)
    @api.multi
    This method is a slightly modified version of the existing method on this model in account_payment. - pass the payment mode to line2bank() - allow invoices to create influence on the payment process: not only 'Free' references are allowed, but others as well - check date_to_pay is not in the past.
  • default_get(self, field_list)
    @api.model
  • extend_payment_order_domain(self, payment_order, domain)
    @api.multi
  • filter_lines(self, lines)
    @api.multi
    Filter move lines before proposing them for inclusion in the payment order. This implementation filters out move lines that are already included in draft or open payment orders. This prevents the user to include the same line in two different open payment orders. When the payment order is sent, it is assumed that the move will be reconciled soon (or immediately with account_banking_payment_transfer), so it will not be proposed anymore for payment. See also https://github.com/OCA/bank-payment/issues/93. :param lines: recordset of move lines :returns: list of move line ids
  • search_entries(self)
    @api.multi
    This method taken from account_payment module. We adapt the domain based on the payment_order_type

New fields (0)

No new fields.

Public methods (1)
  • check_bic_length(self)
    @api.multi@api.constrains('bic')

New fields (0)

No new fields.

Public methods (1)
  • check_bic_length(self)
    @api.multi@api.constrains('bank_bic')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/7.0/account_banking_payment_export
VERSION
VERSION 0.1.166
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Banking addons community
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Banking addons community
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Alexandre Fayolle, Raphaël Valyi, Stefan Rijnhart, Sandy Carter, Pedro M. Baeza, Erwin van der Ploeg, EL HADJI DEM, Launchpad Translations on behalf of banking-addons-team, OCA Transbot
WEBSITE
WEBSITEhttps://launchpad.net/banking-addons
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_payment
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
    - account_voucher
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Infrastructure to export payment orders
        plus some bug fixes and obvious enhancements to payment orders
        that will hopefully land in offical addons one day.

        This technical module provides the base infrastructure to export
        payment orders for electronic banking. It provides the following
        technical features:
        * a new payment.mode.type model
        * payment.mode now has a mandatory type
        * a better implementation of payment_mode.suitable_bank_types() based
          on payment.mode.type
        * the "make payment" button launches a wizard depending on the
          payment.mode.type
        * a manual payment mode type is provided as an example, with a default
          "do nothing" wizard

        To enable the use of payment order to collect money for customers,
        it adds a payment_order_type (payment|debit) as a basis of direct debit
        support (this field becomes visible when account_direct_debit is
        installed).
        Refactoring note: this field should ideally go in account_direct_debit,
        but account_banking_payment currently depends on it.

        Bug fixes and enhancement that should land in official addons:
        * make the search function of the payment export wizard extensible
        * fix lp:1275478: allow payment of customer refunds
        * display the maturity date of the move lines when you are in
          the wizard to select the lines to pay

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
view_banking_payment_order_form_1 account.payment.order.form.banking-1 payment.order xpath Inherits account_payment.view_payment_order_form
view_create_payment_order_lines add.context.to.display.maturity.date payment.order.create field Inherits account_payment.view_create_payment_order_lines
view_payment_manual_form Form for manual payment wizard payment.manual form New
view_payment_mode_form_inherit payment.mode.form.inherit payment.mode field Inherits account_payment.view_payment_mode_form
view_payment_mode_tree_inherit payment.mode.tree.inherit payment.mode field Inherits account_payment.view_payment_mode_tree
view_payment_mode_type_form view.payment.mode.type.form payment.mode.type form New
view_payment_mode_type_tree view.payment.mode.type.tree payment.mode.type tree New
Models touched (6)

New fields (0)

No new fields.

Public methods (1)
  • amount_to_pay(self, cr, uid, ids, name, arg=None, context=None)
    Return the amount still to pay regarding all the payemnt orders (excepting cancelled orders)

New fields (0)

No new fields.

Public methods (2)
  • button_ok(self, cr, uid, ids, context=None)
  • create(self, cr, uid, vals, context=None)

New fields (0)

No new fields.

Public methods (1)
  • suitable_bank_types(self, cr, uid, payment_mode_id=None, context=None)
    Reinstates functional code for suitable bank type filtering. Current code in account_payment is disfunctional.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • launch_wizard(self, cr, uid, ids, context=None)
    Search for a wizard to launch according to the type. If type is manual. just confirm the order. Previously (pre-v6) in account_payment/wizard/wizard_pay.py

New fields (0)

No new fields.

Public methods (3)
  • create_payment(self, cr, uid, ids, context=None)
    This method is a slightly modified version of the existing method on this model in account_payment. - pass the payment mode to line2bank() - allow invoices to create influence on the payment process: not only 'Free' references are allowed, but others as well - check date_to_pay is not in the past.
  • extend_payment_order_domain(self, cr, uid, payment_order, domain, context=None)
  • search_entries(self, cr, uid, ids, context=None)
    This method taken from account_payment module. We adapt the domain based on the payment_order_type
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/6.1/account_banking_payment_export
VERSION
VERSION 0.1.165
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Banking addons community
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Banking addons community
COMMITTERS
COMMITTERSAlexandre Fayolle, Holger Brunn
WEBSITE
WEBSITEhttps://launchpad.net/banking-addons
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:04:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_payment
    - account
    - base_setup
    - base
    - product
    - process
    - decimal_precision
    - analytic
    - board
    - edi
    - email_template
    - mail
    - base_tools
    - account_voucher
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Infrastructure to export payment orders 
        plus some bug fixes and obvious enhancements to payment orders 
        that will hopefully land in offical addons one day.

        This technical module provides the base infrastructure to export
        payment orders for electronic banking. It provides the following
        technical features:
        * a new payment.mode.type model
        * payment.mode now has a mandatory type
        * a better implementation of payment_mode.suitable_bank_types() based on payment.mode.type
        * the "make payment" button launches a wizard depending on the payment.mode.type
        * a manual payment mode type is provided as an example, with a default "do nothing" wizard

        To enable the use of payment order to collect money for customers, 
        it adds a payment_order_type (payment|debit) as a basis of direct debit support
        (this field becomes visible when account_direct_debit is installed).
        Refactoring note: this field should ideally go in account_direct_debit, 
        but account_banking_payment currently depends on it. 

        Bug fixes and enhancement that should land in official addons:
        * make the search function of the payment export wizard extensible
        * fix lp:1275478: allow payment of customer refunds
        * display the maturity date of the move lines when you are in 
          the wizard to select the lines to pay
    

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
view_banking_payment_order_form_1 account.payment.order.form.banking-1 payment.order xpath Inherits account_payment.view_payment_order_form
view_create_payment_order_lines add.context.to.display.maturity.date payment.order.create field Inherits account_payment.view_create_payment_order_lines
view_payment_manual_form Form for manual payment wizard payment.manual form New
view_payment_mode_form_inherit payment.mode.form.inherit payment.mode field Inherits account_payment.view_payment_mode_form
view_payment_mode_tree_inherit payment.mode.tree.inherit payment.mode field Inherits account_payment.view_payment_mode_tree
view_payment_mode_type_form view.payment.mode.type.form payment.mode.type form New
view_payment_mode_type_tree view.payment.mode.type.tree payment.mode.type tree New
Models touched (6)

New fields (0)

No new fields.

Public methods (1)
  • amount_to_pay(self, cr, uid, ids, name, arg=None, context=None)
    Return the amount still to pay regarding all the payemnt orders (excepting cancelled orders)

New fields (0)

No new fields.

Public methods (2)
  • button_ok(self, cr, uid, ids, context=None)
  • create(self, cr, uid, vals, context=None)

New fields (0)

No new fields.

Public methods (1)
  • suitable_bank_types(self, cr, uid, payment_mode_id=None, context=None)
    Reinstates functional code for suitable bank type filtering. Current code in account_payment is disfunctional.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • launch_wizard(self, cr, uid, ids, context=None)
    Search for a wizard to launch according to the type. If type is manual. just confirm the order. Previously (pre-v6) in account_payment/wizard/wizard_pay.py

New fields (0)

No new fields.

Public methods (3)
  • create_payment(self, cr, uid, ids, context=None)
    This method is a slightly modified version of the existing method on this model in account_payment. - pass the payment mode to line2bank() - allow invoices to create influence on the payment process: not only 'Free' references are allowed, but others as well - check date_to_pay is not in the past.
  • extend_payment_order_domain(self, cr, uid, payment_order, domain, context=None)
  • search_entries(self, cr, uid, ids, context=None)
    This method taken from account_payment module. We adapt the domain based on the payment_order_type