Reconciling in Odoo 17 means matching every line on a bank statement to the invoice, bill, payment or journal entry it represents, until the bank journal's balance in Odoo equals the bank's. Statement lines are typed in, imported from a file, or fetched by a bank feed, and reconciliation models handle the repetitive ones. Bank feeds, file import and the reconciliation widget all come with Odoo 17 Enterprise.
Odoo lets you connect your bank directly or work with uploaded files. Start here:
Accounting → Configuration → Bank Accounts → Create
Choose your bank, currency, journal, and account number. You can also:
- 🌐 Enable direct bank feeds (if supported)
- 🔗 Set payment methods (wire, SEPA, ACH, etc.)
- 📄 Assign default journals and reconciliation models
Importing Bank Statements
If your bank doesn't support direct sync, you can still import transactions easily:
Accounting → Bank → Import Statement
Supported formats:
- 📄 OFX, QIF, CSV, CAMT.053
After upload, transactions appear in your bank journal ready for reconciliation.
Manual Entry of Bank Transactions
You can also manually create entries for deposits, withdrawals, or adjustments:
- 🏦 Go to the bank journal and click "Create"
- Specify partner, amount, and payment type
- Choose the related invoice or account manually
This is useful for one-off entries or corrections.
Auto-Reconciliation and Matching Rules
Odoo 17 has powerful auto-matching tools:
- 🔁 Match bank entries with invoices, bills, and journal items
- ⚙️ Define custom reconciliation models (e.g., bank fees, loan payments)
- 📥 Automatically propose matches on import
You can also enable "smart reconciliation suggestions" based on text, partner name, or reference number.
Manual Matching and Reconciliation
For unmatched transactions, Odoo makes it easy to reconcile manually:
- 🔍 Search and filter available invoices or bills
- 📝 Add manual entries for fees or corrections
- 🔗 Split payments across multiple items
Each match is tracked in the journal for full auditability and reporting.
Bank Reconciliation Reports
Stay on top of bank balances and pending items with built-in reports:
- 📊 Reconciliation summary by account
- 📅 Unmatched transactions by date
- 📁 Reconciliation history and audit trail
These help your finance team close periods faster and catch issues early.
Conclusion
Bank reconciliation in Odoo 17 is fast, accurate, and built for real businesses. Whether you're syncing directly or importing files, you'll always know where your money stands — and be ready for audits and monthly closes with confidence.
Need help automating reconciliation or setting up custom matching rules? Let our accounting experts take care of it.
Questions we get asked
Can Odoo 17 connect directly to my bank?
Automatic bank feeds, where Odoo pulls new statement lines each day through a banking aggregator, are part of Odoo 17 Enterprise. Odoo 17 Community has no bank synchronisation module, so you either import statement files or enter transactions on the bank journal by hand. Which banks can actually be reached depends on your country and the aggregator behind the service.
What bank statement file formats does Odoo 17 accept?
The importers for OFX, QIF, CAMT.053 and CSV are Odoo 17 Enterprise modules. With them installed you upload the file on the bank journal and Odoo creates the statement lines, remembering the column mapping for CSV so the next upload takes one click. Odoo 17 Community has no statement import at all, so its lines are entered manually.
What is a reconciliation model in Odoo 17?
A saved rule telling Odoo what to do with a statement line it recognises. You match on the label, the amount, the partner or a reference, and the model either proposes a counterpart account, bank charges to a fee account for example, or writes off a small difference within a tolerance you set. Models run as lines arrive, so routine entries clear in one click.
Can I undo a reconciliation in Odoo 17?
Yes. Open the journal item, or the payment information on the invoice, and remove the match; Odoo reverses the reconciliation and both sides return to open. Nothing is deleted and the change stays visible in the audit trail. If the period is already locked you have to move the lock date or post a correcting entry in an open period instead.
