Repository
OCA/bank-payment · module folder · Try on Runboat
Module version
1.1.1
Category
Hidden
Folder size
0.73 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
Noviat, Akretion, Odoo Community Association (OCA), Therp BV, Tecnativa
Maintainers
Noviat, Akretion, Odoo Community Association (OCA), Therp BV, Tecnativa
Committers
Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, Andrii9090-tecnativa, arantxa-s73
Odoo dependencies
Python dependencies
lxml, unidecode
System dependencies
None
Required by
account_banking_sepa_credit_transfer, account_banking_sepa_direct_debit
Description
This module contains fields and functions that are used by the module
for SEPA Credit Transfer (account_banking_sepa_credit_transfer) and SEPA
Direct Debit (account_banking_sepa_direct_debit). This module doesn't
provide any functionality by itself.

This module was started during the Akretion-Noviat code sprint of
November 21st 2013 in Epiais les Louvres (France).

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
account_payment_line_form pain.base.account.payment.line account.payment.line form Inherits account_payment_order.account_payment_line_form
account_payment_line_tree pain.base.account.payment.tree account.payment.line tree Inherits account_payment_order.account_payment_line_tree
account_payment_method_form pain_base.account_payment_method.form account.payment.method form Inherits account_payment_mode.account_payment_method_form
account_payment_method_tree pain_base.account_payment_method.tree account.payment.method tree Inherits account_payment_mode.account_payment_method_tree
account_payment_mode_form pain_base.account.payment.mode.form account.payment.mode form Inherits account_payment_order.account_payment_mode_form
account_payment_order_form pain.base.account.payment.order.form account.payment.order form Inherits account_payment_order.account_payment_order_form
view_account_config_settings pain.group.on.account.config.settings res.config.settings form Inherits account.res_config_settings_view_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (6)
  • category_purpose Selection
    help='If neither your bank nor your local regulations oblige you to set the category purpose, leave the field empty.' args: [('BONU', 'Bonus Payment'), ('CASH', 'Cash Management Transfer'), ('CBLK', 'Card Bulk Clearing'), ('CCRD', 'Credit Card Payment'), ('CORT', 'Trade Settlement Payment'), ('DCRD', 'Debit Card Payment'), ('DIVI', 'Dividend'), ('DVPM', 'Deliver Against Payment'), ('EPAY', 'ePayment'), ('FCOL', 'Fee Collection'), ('GOVT', 'Government Payment'), ('HEDG', 'Hedging'), ('ICCP', 'Irrevocable Credit Card Payment'), ('IDCP', 'Irrevocable Debit Card Payment'), ('INTC', 'Intra-Company Payment'), ('INTE', 'Interest'), ('LOAN', 'Loan'), ('OTHR', 'Other Payment'), ('PENS', 'Pension Payment'), ('RVPM', 'Receive Against Payment'), ('SALA', 'Salary Payment'), ('SECU', 'Securities'), ('SSBE', 'Social Security Benefit'), ('SUPP', 'Supplier Payment'), ('TAXS', 'Tax Payment'), ('TRAD', 'Trade'), ('TREA', 'Treasury Payment'), ('VATX', 'VAT Payment'), ('WHLD', 'WithHolding')]
  • communication Char
    size=140
  • communication_type Selection
    ondelete={'ISO': 'cascade'} selection_add=[('ISO', 'ISO')]
  • local_instrument Selection
    args: []
  • priority Selection
    default='NORM' help="This field will be used as 'Instruction Priority' in the generated PAIN file." args: [('NORM', 'Normal'), ('HIGH', 'High')]
  • purpose Selection
    help='If neither your bank nor your local regulations oblige you to set the category purpose, leave the field empty.' selection=[('ACCT', 'Account Management'), ('CASH', 'Cash Management Transfer'), ('COLL', 'Collection Payment'), ('INTC', 'Intra Company Payment'), ('LIMA', 'Liquidity Management'), ('NETT', 'Netting'), ('AGRT', 'Agricultural Transfer'), ('BEXP', 'Business Expenses'), ('COMC', 'Commercial Payment'), ('CPYR', 'Copyright'), ('GDDS', 'Purchase Sale Of Goods'), ('LICF', 'License Fee'), ('ROYA', 'Royalties'), ('SCVE', 'Purchase Sale Of Services'), ('SUBS', 'Subscription'), ('SUPP', 'Supplier Payment'), ('TRAD', 'Trade Services'), ('CHAR', 'Charity Payment'), ('COMT', 'Consumer Third Party Consolidated Payment'), ('CLPR', 'Car Loan Principal Repayment'), ('GOVI', 'Government Insurance'), ('HLRP', 'Housing Loan Repayment'), ('INSU', 'Insurance Premium'), ('INTE', 'Interest'), ('LBRI', 'Labor Insurance'), ('LIFI', 'Life Insurance'), ('LOAN', 'Loan'), ('LOAR', 'Loan Repayment'), ('PPTI', 'Property Insurance'), ('RINP', 'Recurring Installment Payment'), ('TRFD', 'Trust Fund'), ('ADVA', 'Advance Payment'), ('CCRD', 'Credit Card Payment '), ('CFEE', 'Cancellation Fee'), ('COST', 'Costs'), ('DCRD', 'Debit Card Payment'), ('GOVT', 'Government Payment'), ('IHRP', 'Instalment Hire Purchase Agreement'), ('INSM', 'Installment'), ('MSVC', 'Multiple Service Types'), ('NOWS', 'Not Otherwise Specified'), ('OFEE', 'Opening Fee'), ('OTHR', 'Other'), ('PADD', 'Preauthorized debit'), ('PTSP', 'Payment Terms'), ('RCPT', 'Receipt Payment'), ('RENT', 'Rent'), ('STDY', 'Study'), ('ANNI', 'Annuity'), ('CMDT', 'Commodity Transfer'), ('DERI', 'Derivatives'), ('DIVD', 'Dividend'), ('FREX', 'Foreign Exchange'), ('HEDG', 'Hedging'), ('PRME', 'Precious Metal'), ('SAVG', 'Savings'), ('SECU', 'Securities'), ('TREA', 'Treasury Payment'), ('ANTS', 'Anesthesia Services'), ('CVCF', 'Convalescent Care Facility'), ('DMEQ', 'Durable Medicale Equipment'), ('DNTS', 'Dental Services'), ('HLTC', 'Home Health Care'), ('HLTI', 'Health Insurance'), ('HSPC', 'Hospital Care'), ('ICRF', 'Intermediate Care Facility'), ('LTCF', 'Long Term Care Facility'), ('MDCS', 'Medical Services'), ('VIEW', 'Vision Care'), ('ALMY', 'Alimony Payment'), ('BECH', 'Child Benefit'), ('BENE', 'Unemployment Disability Benefit'), ('BONU', 'Bonus Payment.'), ('COMM', 'Commission'), ('PENS', 'Pension Payment'), ('PRCP', 'Price Payment'), ('SALA', 'Salary Payment'), ('SSBE', 'Social Security Benefit'), ('ESTX', 'Estate Tax'), ('HSTX', 'Housing Tax'), ('INTX', 'Income Tax'), ('TAXS', 'Tax Payment'), ('VATX', 'Value Added Tax Payment'), ('AIRB', 'Air'), ('BUSB', 'Bus'), ('FERB', 'Ferry'), ('RLWY', 'Railway'), ('CBTV', 'Cable TV Bill'), ('ELEC', 'Electricity Bill'), ('ENRG', 'Energies'), ('GASB', 'Gas Bill'), ('NWCH', 'Network Charge'), ('NWCM', 'Network Communication'), ('OTLC', 'Other Telecom Related Bill'), ('PHON', 'Telephone Bill'), ('WTER', 'Water Bill')]
Public methods (0)

No public methods.

New fields (4)
  • convert_to_ascii Boolean
    default=True help='If active, Odoo will convert each accented character to the corresponding unaccented character, so that only ASCII characters are used in the generated PAIN file.' string='Convert to ASCII'
  • pain_version Selection
    copy=False string='PAIN Version' args: []
  • sepa_pain09_address_mode Selection
    default='minimal' help='Controls how the <PstlAdr> block is generated for PAIN.001.001.09- Minimal: only City (TwnNm) and Country (Ctry)- Hybrid: City/Country plus optional AdrLine lines (street/street2) and optional Post Code (PstCd) when available.' required=True string='PAIN.001.001.09 Address Mode' args: [('minimal', 'Minimal (City + Country only)'), ('hybrid', 'Hybrid (City/Country + AdrLine)')]
  • warn_not_sepa Boolean
    string='Warn If Not SEPA'
Public methods (1)
  • get_xsd_file_path(self)
    This method is designed to be inherited in the SEPA modules

New fields (4)
  • default_batch_booking Boolean
    help='Default value for payment order batch booking related to this payment mode'
  • initiating_party_identifier Char
    help="This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\nCommon format (13): \n- Country code (2, optional)\n- Company idenfier (N, VAT)\n- Service suffix (N, issued by bank)" size=35
  • initiating_party_issuer Char
    help="This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\nCommon format (13): \n- Country code (2, optional)\n- Company idenfier (N, VAT)\n- Service suffix (N, issued by bank)" size=35
  • initiating_party_scheme Char
    help="This will be used as the 'Initiating Party Scheme Name' in the PAIN files generated by Odoo. This value is determined by the financial institution that will process the file. If not defined, no scheme will be used.\n" size=35
Public methods (0)

No public methods.

New fields (5)
  • batch_booking Boolean
    compute='_compute_batch_booking' help='If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file.' readonly=False store=True tracking=True
  • charge_bearer Selection
    default='SLEV' help='Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the debtor side are to be borne by the debtor, transaction charges on the creditor side are to be borne by the creditor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor.' tracking=True args: [('SLEV', 'Following Service Level'), ('SHAR', 'Shared'), ('CRED', 'Borne by Creditor'), ('DEBT', 'Borne by Debtor')]
  • sepa Boolean
    compute='_compute_sepa' string='SEPA Payment'
  • sepa_payment_method Boolean
    compute='_compute_sepa' string='SEPA Payment Method'
  • show_warning_not_sepa Boolean
    compute='_compute_sepa'
Public methods (15)
  • compute_sepa_final_hook(self, sepa)
  • except_messages_prepare_field(self, eval_ctx, field_name)
    @api.model
    Inherit this method to provide more detailed error messages for exceptions to be raised while evaluating `field_name` using `eval_ctx`. :return: List containing the error messages.
  • finalize_sepa_file_creation(self, xml_root, gen_args)
  • generate_address_block(self, parent_node, partner, gen_args)
    @api.model
  • generate_creditor_scheme_identification(self, parent_node, identification, identification_label, eval_ctx, scheme_name_proprietary, gen_args)
    @api.model
  • generate_group_header_block(self, parent_node, gen_args)
    @api.model
  • generate_initiating_party_block(self, parent_node, gen_args)
    @api.model
  • generate_pain_attrib(self)
  • generate_pain_nsmap(self)
  • generate_party_acc_number(self, parent_node, party_type, order, partner_bank, gen_args, bank_line=None)
    @api.model
  • generate_party_agent(self, parent_node, party_type, order, partner_bank, gen_args, bank_line=None)
    @api.model
    Generate the piece of the XML file corresponding to BIC This code is mutualized between TRF and DD Starting from Feb 1st 2016, we should be able to do cross-border SEPA transfers without BIC, cf http://www.europeanpaymentscouncil.eu/index.cfm/ sepa-credit-transfer/iban-and-bic/ In some localization (l10n_ch_sepa for example), they need the bank_line argument
  • generate_party_block(self, parent_node, party_type, order, partner_bank, gen_args, bank_line=None)
    @api.model
    Generate the piece of the XML file corresponding to Name+IBAN+BIC This code is mutualized between TRF and DD In some localization (l10n_ch_sepa for example), they need the bank_line argument
  • generate_party_id(self, parent_node, party_type, partner)
    @api.model
    Generate an Id element for partner inside the parent node. party_type can currently be Cdtr or Dbtr. Notably, the initiating party orgid is generated with another mechanism and configured at the company or payment mode level.
  • generate_remittance_info_block(self, parent_node, line, gen_args)
    @api.model
  • generate_start_payment_info_block(self, parent_node, payment_info_ident, priority, local_instrument, category_purpose, sequence_type, requested_date, eval_ctx, gen_args)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • initiating_party_identifier Char
    help="This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo." size=35
  • initiating_party_issuer Char
    help="This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo." size=35
  • initiating_party_scheme Char
    help="This will be used as the 'Initiating Party Scheme Name' in the PAIN files generated by Odoo." size=35
Public methods (0)

No public methods.

New fields (4)
  • group_pain_multiple_identifier Boolean
    help='Enable this option if your country requires several SEPA/PAIN identifiers like in Spain.' implied_group='account_banking_pain_base.group_pain_multiple_identifier' string='Multiple identifiers'
  • initiating_party_identifier Char
    readonly=False related='company_id.initiating_party_identifier'
  • initiating_party_issuer Char
    readonly=False related='company_id.initiating_party_issuer'
  • initiating_party_scheme Char
    readonly=False related='company_id.initiating_party_scheme'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…