How to Import Bank Statements into Odoo
Quick Answer: To import bank statements into Odoo, convert your PDF bank statement to CSV using QuickBankConvert, then navigate to Accounting > Banking > Bank Statements and use Odoo's Import feature. Odoo accepts CSV with Date, Label/Description, Amount Debit, and Amount Credit columns โ QuickBankConvert formats the output to match.
Odoo has grown from a niche ERP into one of the most widely deployed business management platforms globally, with over 12 million users. Its accounting module is particularly strong, offering double-entry bookkeeping, automated reconciliation, and flexible bank statement management. But getting bank data into Odoo requires the right format โ and most banks deliver statements as PDFs.
This guide walks through the complete process for Odoo users who need to import bank statements, from understanding what Odoo accepts to the step-by-step import and reconciliation workflow.
Odoo Accounting and Bank Statement Management
Odoo Accounting handles bank statements through bank statement lines โ individual transaction records that are matched against journal entries (vendor bills paid, customer invoices received, bank fees) during reconciliation. The process:
- Import bank statement lines (from bank feed or manual CSV upload)
- Match each statement line against existing Odoo records
- Create new journal entries for unmatched items
- Validate the statement to close the reconciliation period
This workflow is standard across double-entry accounting systems. Odoo's implementation is clean and well-designed โ the main challenge is getting properly formatted data in.
Odoo versions: This guide covers Odoo 16 and 17. Import UI details may differ slightly in Odoo 14 or 15, but the CSV format requirements are the same across recent versions.
Callout: Odoo Community edition does not include automated bank feeds โ CSV import is the primary way to get bank data into the system. Odoo Enterprise users in supported regions can use Bank Synchronization for automatic feeds, but manual CSV import remains the most reliable method for historical data and unsupported banks.
CSV Format Requirements for Odoo Bank Import
Odoo's bank statement import accepts CSV with the following column structure:
| Column Name | Format | Required? | Notes |
|---|---|---|---|
| Date | DD/MM/YYYY or YYYY-MM-DD | Yes | Format depends on Odoo language settings |
| Label / Description | Text | Yes | Transaction description/memo |
| Amount Debit | Positive decimal | Conditional | Use if splitting debit/credit |
| Amount Credit | Positive decimal | Conditional | Use if splitting debit/credit |
| Amount | Signed decimal | Conditional | Use instead of separate debit/credit columns |
| Reference | Text | Optional | Check number or bank reference |
| Partner Name | Text | Optional | Odoo will try to match to existing partners |
Odoo's date format quirk: Odoo reads dates based on your instance's language/locale settings. French Odoo instances expect DD/MM/YYYY; English instances may expect MM/DD/YYYY. If you're not sure, use YYYY-MM-DD โ this ISO format is recognized universally.
Debit vs credit columns: Odoo accepts either a single signed Amount column (negative for debits) or separate Amount Debit and Amount Credit columns with positive values. The separate column approach avoids sign confusion and is recommended.
QuickBankConvert outputs Odoo-compatible CSV with the correct column structure, YYYY-MM-DD dates, and properly split debit/credit amounts.
Converting Bank PDFs to Odoo-Compatible CSV
PDF bank statements cannot be imported directly into Odoo. You need to convert them first.
Banks deliver statements as PDFs for regulatory and display reasons โ PDFs are excellent for presenting formatted financial information but are not data files. Odoo's import tool expects structured tabular data with defined columns. A PDF is rendering instructions, not a table.
Common conversion mistakes:
- Using a generic PDF-to-text tool that produces flat text with no column structure
- Copy-pasting from PDF into Excel, which produces garbled columns
- Using a general CSV converter that doesn't understand bank statement layouts (running balances, multi-line descriptions, headers/footers)
[QuickBankConvert](/) is purpose-built for bank statements. It understands:
- Transaction rows vs. header/footer content
- Running balance columns (which are NOT transaction amounts)
- Multi-line descriptions that belong to a single transaction
- Page break artifacts and bank-specific formatting
The conversion workflow:
- Navigate to QuickBankConvert
- Upload your bank PDF
- Select Odoo CSV output format (or Generic CSV with Debit/Credit columns)
- Download the converted file
- Spot-check 5โ10 rows against your original statement to verify accuracy
Step-by-Step Bank Statement Import in Odoo
Step 1 โ Configure Your Bank Account Journal
Before importing, ensure your bank account is set up in Odoo:
- Go to Accounting > Configuration > Journals
- If your bank journal doesn't exist, create it (Type: Bank, Currency: your account currency)
- Set the bank account number and IBAN if applicable
The journal is the Odoo representation of your bank account โ all imported transactions are tied to this journal.
Step 2 โ Prepare Your CSV File
Using your QuickBankConvert output (or manually formatted CSV), verify:
- Date format matches your Odoo locale
- Amounts in Debit/Credit columns are positive values (no negative numbers)
- No blank rows or extraneous header/footer text
- Character encoding is UTF-8 (Odoo is sensitive to encoding, especially for non-ASCII characters in descriptions)
Step 3 โ Import the Statement
- Go to Accounting > Banking > Bank Statements (Odoo 16+) or Accounting > Dashboard and click your bank account
- Click Import or Upload Statement
- Select your CSV file
- Odoo displays a column mapping interface โ map your columns to Odoo's expected fields
- Preview the import and verify the transaction count
- Click Import
Odoo creates a bank statement record and populates it with your imported transactions. The statement appears in your bank account's statement list as "Draft."
Step 4 โ Reconcile
Click Reconcile on your newly imported statement:
- Odoo displays each statement line alongside suggested matches from your accounting records
- Accept suggested matches for lines that correctly match existing invoices, bills, or payments
- For lines with no suggestion, manually search for a match or create a new journal entry directly from the reconciliation screen
- Common items requiring new entries: bank fees, interest income, standing orders not yet recorded in Odoo
When all lines are reconciled, click Validate Statement to close the period. Odoo updates your bank account's book balance and marks the statement as validated.
Reconciliation Workflow in Odoo After Import
Odoo's reconciliation engine is one of its strongest features. Key capabilities:
Reconciliation models: Pre-configured models (under Accounting > Configuration > Reconciliation Models) tell Odoo how to handle recurring statement lines automatically:
- Bank fees โ create a journal entry to bank charges expense account
- Interest income โ create a journal entry to interest income account
- Transfer from savings โ match against a specific account
Well-configured reconciliation models can auto-resolve 60โ80% of routine statement lines, leaving only unusual items for manual review.
Batch reconciliation: Odoo allows you to reconcile similar transactions in bulk. If multiple statement lines are the same type (e.g., monthly subscriptions all going to the same expense account), batch reconciliation handles them in one action.
Partial reconciliation: If a bank deposit matches multiple invoices (e.g., a customer paid several invoices in one ACH payment), Odoo supports splitting the statement line across multiple records.
Odoo Community vs Enterprise Bank Import Differences
| Feature | Odoo Community | Odoo Enterprise |
|---|---|---|
| Manual CSV import | Yes | Yes |
| Automatic bank feeds | No (requires third-party module) | Yes (Bank Synchronization) |
| Reconciliation models | Yes | Yes |
| OFX import | Via community module | Via built-in connector (some regions) |
| Multi-currency | Yes | Yes |
| SEPA direct debit import | Via module | Built-in |
For Community edition users, CSV import via QuickBankConvert is the standard bank data entry method. Enterprise users can combine automated feeds for ongoing transactions with CSV import for historical data gaps.
Troubleshooting Odoo Bank Statement Import Issues
"Invalid Date" or Import Fails Silently
Odoo couldn't parse the dates in your CSV.
Fix: Use YYYY-MM-DD format โ it's recognized across all Odoo locales. QuickBankConvert outputs YYYY-MM-DD by default. If your Odoo instance is configured for DD/MM/YYYY and you're using that format, verify there's no ambiguity (e.g., the 5th of the 12th vs the 12th of the 5th).
Character Encoding Errors (Garbled Descriptions)
Bank statements from non-English-speaking countries or banks with special characters in transaction descriptions may produce garbled text.
Fix: Ensure your CSV is UTF-8 encoded. QuickBankConvert exports UTF-8 by default. If you're manually formatting a CSV, save it as UTF-8 in Excel (Save As > CSV UTF-8) or in your text editor.
Amount Column Not Recognized
Odoo shows zero amounts or rejects the import.
Fix: Verify that your Amount or Amount Debit/Credit columns contain only numeric values โ no currency symbols, no parentheses, no thousands-separator commas. QuickBankConvert outputs clean numeric values.
Duplicate Statement Lines After Import
You imported a period that already has transactions from a previous import or bank feed.
Fix: Before importing, check your bank statement list in Odoo for the date range you're about to import. Delete duplicate statements or trim your CSV to exclude overlapping dates.
Callout: Odoo provides a preview before finalizing the import โ always review the transaction count and spot-check 2โ3 rows before clicking Import. It's much easier to fix a formatting issue before the data is in the system than after.
For bank-specific PDF conversion, see QuickBankConvert. For related accounting software guides, see How to Import Bank Statements into Manager.io and How to Import Bank Statements into MYOB.
Frequently Asked Questions
What file formats does Odoo accept for bank statement import?
Does Odoo support automatic bank feeds?
What is the difference between a bank statement import and a payment import in Odoo?
Can I import bank statements for multiple accounts in Odoo at once?
How do I handle transactions in foreign currencies when importing into Odoo?
Ready to convert your bank statement?
Free. Private. Instant. Your files never leave your browser.
Convert Your Statement