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.
Tip: Import the same file twice and nothing is added twice: the module knows what it has already imported.
What you get
| Feature | What it does |
|---|---|
| CSV, Excel, OFX | Files .csv (comma, semicolon or tab), .xlsx, .xls and .ofx (also .qfx). |
| Columns found for you | By 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 format | 31/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 first | Each transaction is New, Duplicate or in Error, with the reason; the totals of money in and out. |
| No duplicates | Transactions already in the journal are skipped, even when you import an overlapping file or when they were typed by hand. |
| A bank statement | Optional: with the starting and the ending balance, taken from the OFX file or from the last statement of the journal. |
| Partners | Matched by name when the name is unique. |
| Import rules | If 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 Transactions | A list of the transactions of your bank journals, with the counterpart account (Odoo Community has none). |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Invoicing (account) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_bank_statement_import.zip; unzip it to get the foldertaqnix_bank_statement_import. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- 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.
| Option | Meaning |
|---|---|
| Dates | Detect, or day first, month first or year first for a file where it cannot be told. |
| Invert the sign of the amounts | For a file where money out is positive. |
| Skip the transactions already imported | On by default. |
| Apply the import rules | Sets the partner and the account from your rules. |
| Find the partner by name | Searches the contacts for the name in the file. |
| Create a bank statement | Groups 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).
In plain words: When it is right, click Import. The list of the imported transactions opens.
The columns of the file
| Column | Headers recognised | Notes |
|---|---|---|
| Date | Date, Transaction date, Booking date, Value date, التاريخ | Required. |
| Amount | Amount, Value, المبلغ | Positive for money in, negative for money out. |
| Debit, Credit | Withdrawal, Debit, Money out / Deposit, Credit, Money in | Used when there is no Amount column: credit minus debit. |
| Label | Description, Details, Narrative, Memo, البيان | The label of the transaction. |
| Reference | Reference, Ref, Cheque no, Transaction id, المرجع | Goes to the reference of the entry. |
| Partner | Name, 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.
| Field | Meaning |
|---|---|
| Look in | The label, the partner name, the reference, or any of them. |
| When it | Contains, starts with, is, or matches a regular expression. |
| Direction | Money in only, money out only, or both. |
| Journals | Limit the rule to some bank journals. |
| Set the account | The counterpart of the transaction, instead of the suspense account. A receivable or payable account needs a partner. |
How duplicates are found
| File | How |
|---|---|
| OFX | By the transaction identifier of the bank (FITID): a transaction is never imported twice. |
| CSV, Excel | By 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
| Who | Can |
|---|---|
| Accountants | Import bank statements and see the rules. |
| Account managers | Also create and change the import rules. |
| Other users | No access. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Reconciliation | Odoo 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 currency | The amounts are in the currency of the journal; foreign currency columns are not read. |
| Formats | CSV, Excel and OFX. Other formats (MT940, CAMT, QIF) are not read. |
| Up to 20000 rows | In one file. |
| First sheet | Only 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
| Problem | What to do |
|---|---|
| The columns of the file were not found | The 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 sign | Tick Invert the sign of the amounts. |
| Everything is Duplicate | The file was already imported; untick Skip the transactions already imported to import it again. |
| I cannot see the menu | You 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.