Bank Statement TXT/CSV/XLSX Import

account_statement_import_txt_xlsx
REPOSITORY
REPOSITORYOCA/bank-statement-import
GIT
GIThttps://github.com/OCA/bank-statement-import.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-statement-import/tree/15.0/account_statement_import_txt_xlsx
VERSION
VERSION 2.1.2
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, CorporateHub
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, CorporateHub
COMMITTERS
COMMITTERSPedro M. Baeza, Katherine Zaoral, Miquel Raïch, Víctor Martínez, nicolas, Weblate, OCA-git-bot, Matteo Trubini, oca-ci, pilarvargas-tecnativa, PicchiSeba
WEBSITE
WEBSITEhttps://github.com/OCA/bank-statement-import
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:36
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-statement-import:
    - account_statement_import
    - account_statement_import_base
OCA/server-ux:
    - multi_step_wizard
OCA/web:
    - web_widget_dropdown_dynamic
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES chardet
xlrd
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
account_statement_import_form account.statement.import account.statement.import xpath Inherits account_statement_import.account_statement_import_form
account_statement_import_sheet_mapping_form account.statement.import.sheet.mapping.form account.statement.import.sheet.mapping tree New
account_statement_import_sheet_mapping_tree account.statement.import.sheet.mapping.tree account.statement.import.sheet.mapping form New
account_statement_import_sheet_mapping_wizard_form account.statement.import.sheet.mapping.wizard.form account.statement.import.sheet.mapping.wizard xpath Inherits multi_step_wizard.multi_step_wizard_form
view_account_journal_form_n43 account.journal xpath Inherits account.view_account_journal_form
Models touched (5)

New fields (1)
  • default_sheet_mapping_id Many2one → account.statement.import.sheet.mapping
    comodel_name='account.statement.import.sheet.mapping'
Public methods (0)

No public methods.

New fields (1)
  • sheet_mapping_id Many2one → account.statement.import.sheet.mapping
    comodel_name='account.statement.import.sheet.mapping' default=_get_default_mapping_id string='Sheet mapping'
Public methods (0)

No public methods.

New fields (29)
  • amount_column Char
    help="Amount of transaction in journal's currency"
  • amount_credit_column Char
    help="Credit amount of transaction in journal's currency" string='Credit amount column'
  • amount_debit_column Char
    help="Debit amount of transaction in journal's currency" string='Debit amount column'
  • balance_column Char
    help="Balance after transaction in journal's currency"
  • bank_account_column Char
    help="Partner's bank account"
  • bank_name_column Char
    help="Partner's bank"
  • credit_value Char
    default='C' help="Value of debit/credit column that indicates if it's a credit"
  • currency_column Char
    help='In case statement is multi-currency, column to get currency of transaction from'
  • debit_credit_column Char
    help='Some statement formats use absolute amount value and indicate signof the transaction by specifying if it was a debit or a credit one' string='Debit/credit column'
  • debit_value Char
    default='D' help="Value of debit/credit column that indicates if it's a debit"
  • delimiter Selection
    default='comma' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('semicolon', 'semicolon (;)'), ('tab', 'tab'), ('space', 'space'), ('n/a', 'N/A')]
  • description_column Char
  • file_encoding Selection
    default='utf-8' selection=[('utf-8', 'UTF-8'), ('utf-8-sig', 'UTF-8 (with BOM)'), ('utf-16', 'UTF-16'), ('utf-16-sig', 'UTF-16 (with BOM)'), ('windows-1252', 'Western (Windows-1252)'), ('iso-8859-1', 'Western (Latin-1 / ISO 8859-1)'), ('iso-8859-2', 'Central European (Latin-2 / ISO 8859-2)'), ('iso-8859-4', 'Baltic (Latin-4 / ISO 8859-4)'), ('big5', 'Traditional Chinese (big5)'), ('gb18030', 'Unified Chinese (gb18030)'), ('shift_jis', 'Japanese (Shift JIS)'), ('windows-1251', 'Cyrillic (Windows-1251)'), ('koi8_r', 'Cyrillic (KOI8-R)'), ('koi8_u', 'Cyrillic (KOI8-U)')] string='Encoding'
  • float_decimal_sep Selection
    default='comma' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('none', 'none')] string='Decimals Separator'
  • float_thousands_sep Selection
    default='dot' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('none', 'none')] string='Thousands Separator'
  • name Char
    required=True
  • no_header Boolean
    help='When this occurs please indicate the column number in the Columns section instead of the column name, considering that the first column is 0' string='File does not contain header line'
  • notes_column Char
  • offset_column Integer
    default=0 help='Horizontal spaces to ignore before starting to parse'
  • offset_row Integer
    default=0 help='Vertical spaces to ignore before starting to parse'
  • original_amount_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original transaction amount in original transaction currency from'
  • original_currency_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original currency of transaction from'
  • partner_name_column Char
  • quotechar Char
    default='"' size=1 string='Text qualifier'
  • reference_column Char
  • skip_empty_lines Boolean
    default=False help='Allows to skip empty lines'
  • timestamp_column Char
    required=True
  • timestamp_format Char
    required=True
  • transaction_id_column Char
    string='Unique transaction ID column'
Public methods (2)
  • onchange_decimal_separator(self)
    @api.onchange('float_decimal_sep')
  • onchange_thousands_separator(self)
    @api.onchange('float_thousands_sep')

New fields (23)
  • amount_column Char
    help="Amount of transaction in journal's currency"
  • amount_credit_column Boolean
    help="Credit amount of transaction in journal's currency" string='Credit amount column'
  • amount_debit_column Char
    help="Debit amount of transaction in journal's currency" string='Debit amount column'
  • attachment_ids Many2many → ir.attachment
    comodel_name='ir.attachment' relation='account_statement_import_sheet_mapping_wiz_attachment_rel' required=True string='Files'
  • balance_column Char
    help="Balance after transaction in journal's currency"
  • bank_account_column Char
    help="Partner's bank account"
  • bank_name_column Char
    help="Partner's bank"
  • credit_value Char
    default='C' help="Value of debit/credit column that indicates if it's a credit"
  • currency_column Char
    help='In case statement is multi-currency, column to get currency of transaction from'
  • debit_credit_column Char
    help='Some statement formats use absolute amount value and indicate signof the transaction by specifying if it was a debit or a credit one' string='Debit/credit column'
  • debit_value Char
    default='D' help="Value of debit/credit column that indicates if it's a debit"
  • delimiter Selection
    selection=<expr>
  • description_column Char
  • file_encoding Selection
    selection=<expr> string='Encoding'
  • header Char
  • notes_column Char
  • original_amount_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original transaction amount in original transaction currency from'
  • original_currency_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original currency of transaction from'
  • partner_name_column Char
  • quotechar Char
    size=1 string='Text qualifier'
  • reference_column Char
  • timestamp_column Char
  • transaction_id_column Char
    string='Unique transaction ID column'
Public methods (2)
  • import_mapping(self)
  • statement_columns(self)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • parse(self, data_file, mapping, filename)
    @api.model
  • parse_header(self, data_file, encoding, csv_options)
    @api.model
REPOSITORY
REPOSITORYOCA/bank-statement-import
GIT
GIThttps://github.com/OCA/bank-statement-import.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-statement-import/tree/14.0/account_statement_import_txt_xlsx
VERSION
VERSION 3.2.1
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, CorporateHub
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, CorporateHub
COMMITTERS
COMMITTERSGitHub, Sergio Zanchetta, Jordi Ballester, OCA Transbot, Miquel Raïch, oca-travis, Weblate, OCA-git-bot, oca-ci, Héctor Villarreal Ortega, Jérémy Didderen, PicchiSeba, Henrik Norlin
WEBSITE
WEBSITEhttps://github.com/OCA/bank-statement-import
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-statement-import:
    - account_statement_import
    - account_statement_import_base
OCA/server-ux:
    - multi_step_wizard
OCA/web:
    - web_widget_dropdown_dynamic
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES chardet
xlrd
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
account_statement_import_form account.statement.import account.statement.import xpath Inherits account_statement_import.account_statement_import_form
account_statement_import_sheet_mapping_form account.statement.import.sheet.mapping.form account.statement.import.sheet.mapping tree New
account_statement_import_sheet_mapping_tree account.statement.import.sheet.mapping.tree account.statement.import.sheet.mapping form New
account_statement_import_sheet_mapping_wizard_form account.statement.import.sheet.mapping.wizard.form account.statement.import.sheet.mapping.wizard xpath Inherits multi_step_wizard.multi_step_wizard_form
view_account_journal_form_n43 account.journal xpath Inherits account.view_account_journal_form
Models touched (5)

New fields (1)
  • default_sheet_mapping_id Many2one → account.statement.import.sheet.mapping
    comodel_name='account.statement.import.sheet.mapping'
Public methods (0)

No public methods.

New fields (1)
  • sheet_mapping_id Many2one → account.statement.import.sheet.mapping
    comodel_name='account.statement.import.sheet.mapping' default=_get_default_mapping_id string='Sheet mapping'
Public methods (0)

No public methods.

New fields (29)
  • amount_column Char
    help="Amount of transaction in journal's currency" string='Amount column'
  • amount_credit_column Char
    help="Credit amount of transaction in journal's currency" string='Credit amount column'
  • amount_debit_column Char
    help="Debit amount of transaction in journal's currency" string='Debit amount column'
  • balance_column Char
    help="Balance after transaction in journal's currency" string='Balance column'
  • bank_account_column Char
    help="Partner's bank account" string='Bank Account column'
  • bank_name_column Char
    help="Partner's bank" string='Bank Name column'
  • credit_value Char
    default='C' help="Value of debit/credit column that indicates if it's a credit" string='Credit value'
  • currency_column Char
    help='In case statement is multi-currency, column to get currency of transaction from' string='Currency column'
  • debit_credit_column Char
    help='Some statement formats use absolute amount value and indicate signof the transaction by specifying if it was a debit or a credit one' string='Debit/credit column'
  • debit_value Char
    default='D' help="Value of debit/credit column that indicates if it's a debit" string='Debit value'
  • delimiter Selection
    default='comma' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('semicolon', 'semicolon (;)'), ('tab', 'tab'), ('space', 'space'), ('n/a', 'N/A')] string='Delimiter'
  • description_column Char
    string='Description column'
  • file_encoding Selection
    default='utf-8' selection=[('utf-8', 'UTF-8'), ('utf-8-sig', 'UTF-8 (with BOM)'), ('utf-16', 'UTF-16'), ('utf-16-sig', 'UTF-16 (with BOM)'), ('windows-1252', 'Western (Windows-1252)'), ('iso-8859-1', 'Western (Latin-1 / ISO 8859-1)'), ('iso-8859-2', 'Central European (Latin-2 / ISO 8859-2)'), ('iso-8859-4', 'Baltic (Latin-4 / ISO 8859-4)'), ('big5', 'Traditional Chinese (big5)'), ('gb18030', 'Unified Chinese (gb18030)'), ('shift_jis', 'Japanese (Shift JIS)'), ('windows-1251', 'Cyrillic (Windows-1251)'), ('koi8_r', 'Cyrillic (KOI8-R)'), ('koi8_u', 'Cyrillic (KOI8-U)')] string='Encoding'
  • float_decimal_sep Selection
    default='comma' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('none', 'none')] string='Decimals Separator'
  • float_thousands_sep Selection
    default='dot' selection=[('dot', 'dot (.)'), ('comma', 'comma (,)'), ('none', 'none')] string='Thousands Separator'
  • name Char
    required=True
  • no_header Boolean
    help='When this occurs please indicate the column number in the Columns section instead of the column name, considering that the first column is 0' args: 'File does not contain header line'
  • notes_column Char
    string='Notes column'
  • offset_column Integer
    default=0 help='Horizontal spaces to ignore before starting to parse' args: 'Offset Column'
  • offset_row Integer
    default=0 help='Vertical spaces to ignore before starting to parse' args: 'Offset Row'
  • original_amount_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original transaction amount in original transaction currency from' string='Original amount column'
  • original_currency_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original currency of transaction from' string='Original currency column'
  • partner_name_column Char
    string='Partner Name column'
  • quotechar Char
    default='"' size=1 string='Text qualifier'
  • reference_column Char
    string='Reference column'
  • skip_empty_lines Boolean
    default=False help='Allows to skip empty lines' args: 'Skip Empty Lines'
  • timestamp_column Char
    required=True string='Timestamp column'
  • timestamp_format Char
    required=True string='Timestamp Format'
  • transaction_id_column Char
    string='Unique transaction ID column'
Public methods (2)
  • onchange_decimal_separator(self)
    @api.onchange('float_decimal_sep')
  • onchange_thousands_separator(self)
    @api.onchange('float_thousands_sep')

New fields (23)
  • amount_column Char
    help="Amount of transaction in journal's currency" string='Amount column'
  • amount_credit_column Boolean
    help="Credit amount of transaction in journal's currency" string='Credit amount column'
  • amount_debit_column Char
    help="Debit amount of transaction in journal's currency" string='Debit amount column'
  • attachment_ids Many2many → ir.attachment
    comodel_name='ir.attachment' relation='account_statement_import_sheet_mapping_wiz_attachment_rel' required=True string='Files'
  • balance_column Char
    help="Balance after transaction in journal's currency" string='Balance column'
  • bank_account_column Char
    help="Partner's bank account" string='Bank Account column'
  • bank_name_column Char
    help="Partner's bank" string='Bank Name column'
  • credit_value Char
    default='C' help="Value of debit/credit column that indicates if it's a credit" string='Credit value'
  • currency_column Char
    help='In case statement is multi-currency, column to get currency of transaction from' string='Currency column'
  • debit_credit_column Char
    help='Some statement formats use absolute amount value and indicate signof the transaction by specifying if it was a debit or a credit one' string='Debit/credit column'
  • debit_value Char
    default='D' help="Value of debit/credit column that indicates if it's a debit" string='Debit value'
  • delimiter Selection
    selection=<expr> string='Delimiter'
  • description_column Char
    string='Description column'
  • file_encoding Selection
    selection=<expr> string='Encoding'
  • header Char
  • notes_column Char
    string='Notes column'
  • original_amount_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original transaction amount in original transaction currency from' string='Original amount column'
  • original_currency_column Char
    help='In case statement provides original currency for transactions with automatic currency conversion, column to get original currency of transaction from' string='Original currency column'
  • partner_name_column Char
    string='Partner Name column'
  • quotechar Char
    size=1 string='Text qualifier'
  • reference_column Char
    string='Reference column'
  • timestamp_column Char
    string='Timestamp column'
  • transaction_id_column Char
    string='Unique transaction ID column'
Public methods (2)
  • import_mapping(self)
  • statement_columns(self)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • parse(self, data_file, mapping, filename)
    @api.model
  • parse_header(self, data_file, encoding, csv_options)
    @api.model