Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Bank Statement Import for Odoo 19 Community documentation

A guide to the bank statement import: the file and its columns, the check, duplicates, import rules, statements and balances, and access rights.

Documents version 1.0.0Updated Oct 23, 2026

Start here

In plain words: Your bank gives you a file and you type its lines into Odoo. Bank Statement Import brings the transactions of a CSV, Excel or OFX file into a bank journal of Odoo Community: the columns are found by their headers, every transaction is checked before anything is created, the ones already imported are skipped, the partner is matched by name, and rules choose the counterpart account from the label.
Choose the file, the check of every transaction, and the imported transactions with their accounts.
Choose the file, the check of every transaction, and the imported transactions with their accounts.
Tip: Import the same file twice and nothing is added twice: the module knows what it has already imported.

What you get

FeatureWhat it does
CSV, Excel, OFXFiles .csv (comma, semicolon or tab), .xlsx, .xls and .ofx (also .qfx).
Columns found for youBy their headers, in English and Arabic: date, label, reference, partner, amount, or debit and credit. Lines before the header (account number, period) are ignored.
Any date and number format31/12/2026, 12/31/2026, 2026-12-31, 31 Dec 2026, Excel dates; 1,250.50, 1.250,50, (45.00), 45.00-.
A check firstEach transaction is New, Duplicate or in Error, with the reason; the totals of money in and out.
No duplicatesTransactions already in the journal are skipped, even when you import an overlapping file or when they were typed by hand.
A bank statementOptional: with the starting and the ending balance, taken from the OFX file or from the last statement of the journal.
PartnersMatched by name when the name is unique.
Import rulesIf the label contains a text or matches an expression, set the partner and the counterpart account: the transaction is posted to the right account at once.
Bank TransactionsA list of the transactions of your bank journals, with the counterpart account (Odoo Community has none).
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededInvoicing (account)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_bank_statement_import.zip; unzip it to get the folder taqnix_bank_statement_import.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Bank Statement Import (CSV, Excel, OFX) and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_bank_statement_import --stop-after-init

Import a file

In plain words: Open the bank journal (Invoicing → Configuration → Journals) and click Import, or use Accounting → Transactions → Import Bank Statement. Choose the file, then click Read the file.
The wizard on the bank journal, with the file chosen.
The wizard on the bank journal, with the file chosen.
OptionMeaning
DatesDetect, or day first, month first or year first for a file where it cannot be told.
Invert the sign of the amountsFor a file where money out is positive.
Skip the transactions already importedOn by default.
Apply the import rulesSets the partner and the account from your rules.
Find the partner by nameSearches the contacts for the name in the file.
Create a bank statementGroups the transactions in a statement with its balances.

Check, then import

In plain words: The columns found are shown: change a name if a column was not found, and click Read again. Each transaction is marked New, Duplicate (already in the journal) or Error (a date that is not a date, an amount that is not a number: the row of the file is given).
17 rows read: 12 new, 4 already imported, 1 with an error (the totals line of the file).
17 rows read: 12 new, 4 already imported, 1 with an error (the totals line of the file).
In plain words: When it is right, click Import. The list of the imported transactions opens.
The imported transactions, with their partner and the counterpart account chosen by the rules; the others wait on the suspense account.
The imported transactions, with their partner and the counterpart account chosen by the rules; the others wait on the suspense account.

The columns of the file

ColumnHeaders recognisedNotes
DateDate, Transaction date, Booking date, Value date, التاريخRequired.
AmountAmount, Value, المبلغPositive for money in, negative for money out.
Debit, CreditWithdrawal, Debit, Money out / Deposit, Credit, Money inUsed when there is no Amount column: credit minus debit.
LabelDescription, Details, Narrative, Memo, البيانThe label of the transaction.
ReferenceReference, Ref, Cheque no, Transaction id, المرجعGoes to the reference of the entry.
PartnerName, Payee, Beneficiary, Counterparty, الاسمMatched with your contacts.
Tip: If your headers are different, type their names in the Columns of the file area and read the file again.

Import rules

In plain words: Invoicing → Configuration → Accounting → Bank Import Rules. A rule says: when the label (or the partner, or the reference) contains / starts with / is / matches the expression, set the partner, the account or both. The first rule that matches wins, by sequence.
Rules that send the electricity bill, the rent, the bank fees, the telephone, the insurance and the fuel to their expense accounts.
Rules that send the electricity bill, the rent, the bank fees, the telephone, the insurance and the fuel to their expense accounts.
FieldMeaning
Look inThe label, the partner name, the reference, or any of them.
When itContains, starts with, is, or matches a regular expression.
DirectionMoney in only, money out only, or both.
JournalsLimit the rule to some bank journals.
Set the accountThe counterpart of the transaction, instead of the suspense account. A receivable or payable account needs a partner.

How duplicates are found

FileHow
OFXBy the transaction identifier of the bank (FITID): a transaction is never imported twice.
CSV, ExcelBy the date, the amount and the label, counted: if the file has two coffees of 4.50 on the same day and the journal has one, one is new. Transactions typed by hand are compared too.
Tip: To import everything anyway, untick Skip the transactions already imported.

The statement and its balances

In plain words: With Create a bank statement, the transactions go in a statement named after the file. The ending balance is the one of the OFX file, or the starting balance plus the transactions; the starting balance is the ending balance of the last statement of the journal. Both can be changed before importing.

Who can do what

WhoCan
AccountantsImport bank statements and see the rules.
Account managersAlso create and change the import rules.
Other usersNo access.

Arabic and right to left

The check in an Arabic interface.
The check in an Arabic interface.

Limits

LimitDetail
ReconciliationOdoo Community has no bank reconciliation screen. The transactions are posted to the suspense account, or to the account of a rule: reconcile them with your own process.
One currencyThe amounts are in the currency of the journal; foreign currency columns are not read.
FormatsCSV, Excel and OFX. Other formats (MT940, CAMT, QIF) are not read.
Up to 20000 rowsIn one file.
First sheetOnly the first sheet of an Excel file is read.

For developers

In plain words: Skip this chapter if you only use the module.
wizard = env['taqnix.bank.import'].create({'journal_id': journal.id, 'file': base64_content, 'filename': 'bank.csv'})
wizard.action_read()
wizard.line_ids.mapped('state')
wizard.action_import()

Troubleshooting

ProblemWhat to do
The columns of the file were not foundThe first row needs a Date column and an Amount column (or Debit and Credit): rename the headers, or type the column names.
Dates are wrong (day and month swapped)Choose the order of the dates instead of Detect.
Amounts have the wrong signTick Invert the sign of the amounts.
Everything is DuplicateThe file was already imported; untick Skip the transactions already imported to import it again.
I cannot see the menuYou need the Accountant access right.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_bank_statement_import. Your transactions, statements and rules are kept.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.