Odoo Bank Reconciliation and Accounting: A Complete Walkthrough
Bank reconciliation is the process that ensures your accounting records match your actual bank transactions. In Odoo, reconciliation has evolved from a tedious manual process to an AI-assisted workflow that matches most transactions automatically. This guide covers the entire reconciliation process, from bank feed setup through month-end close, including the advanced matching rules and exception handling that make Odoo's reconciliation engine one of the most capable in the ERP market.
Key Takeaways
- Odoo 19 connects to over 14,000 financial institutions for automatic bank statement import via Open Banking
- The AI matching engine suggests transaction matches with confidence scores based on amount, date, vendor name, and historical patterns
- Reconciliation models automate recurring transactions like bank fees, interest, and subscription payments
- The reconciliation widget provides a split-pane interface showing bank transactions on the left and potential matches on the right
- Month-end close procedures include bank reconciliation, cut-off entries, depreciation, and period locking
Bank Feed Setup
Connecting Your Bank
Navigate to Accounting > Configuration > Bank Accounts to configure bank connections:
Automated feeds (Open Banking): Odoo supports direct connections to banks in the EU, UK, US, Canada, and Australia through aggregation partners. Click Connect next to your bank, authenticate through the bank's portal, and transactions flow automatically.
File import: For banks without API access, import statements manually at Accounting > Bank > Import. Supported formats include:
| Format | Description | Common In |
|---|---|---|
| OFX | Open Financial Exchange | US, Canada |
| QIF | Quicken Interchange Format | US |
| CAMT.053 | ISO 20022 XML | EU |
| CSV | Comma-separated values | Universal |
| MT940 | SWIFT message format | Global banking |
Manual entry: For banks where neither API nor file import is available, enter transactions manually at Accounting > Bank > Statements.
Synchronization Frequency
Automated bank feeds synchronize at configurable intervals:
- Real-time: Transactions appear within minutes (supported by some banks)
- Daily: Most common---transactions sync once per day
- On-demand: Manual refresh through the bank dashboard
Configure sync frequency at Accounting > Configuration > Bank Synchronization.
The Reconciliation Interface
Accessing Reconciliation
Open the reconciliation widget at Accounting > Bank > Reconciliation. The interface displays:
Left pane: Unreconciled bank transactions sorted by date. Each line shows the transaction date, description (from the bank), amount, and any suggested matches.
Right pane: Potential matches from your accounting records. These include:
- Open invoices and bills matching the amount
- Outstanding payments not yet linked to bank transactions
- Previously reconciled transactions for reference
Matching confidence: Each suggestion shows a percentage confidence score. A 95% confidence means the engine found strong matches on amount, date, and partner name. Scores below 70% indicate partial matches that require human review.
Automatic Matching Rules
Odoo uses several matching criteria to suggest reconciliation matches:
| Criteria | Weight | Description |
|---|---|---|
| Exact amount | High | Bank transaction amount matches invoice/payment exactly |
| Partner name | Medium | Bank description contains a known partner name |
| Reference | High | Payment reference matches invoice number |
| Date proximity | Low | Transaction date is close to the expected payment date |
| Historical pattern | Medium | Similar transactions were previously matched to this partner |
Manual Reconciliation
When automatic matching fails, reconcile manually:
- Select the bank transaction in the left pane
- Search for the matching record in the right pane using the search bar
- If the amounts differ, create a write-off entry for the difference (e.g., bank fee, discount)
- Click Validate to confirm the reconciliation
For transactions with no corresponding accounting record (bank fees, interest, returned checks), create the journal entry directly from the reconciliation screen by selecting an account and entering the details.
Reconciliation Models
What Are Reconciliation Models?
Reconciliation models automate recurring transaction patterns. Instead of manually creating journal entries for bank fees every month, define a model that matches the pattern and applies the correct accounting treatment automatically.
Navigate to Accounting > Configuration > Reconciliation Models to create and manage models.
Model Types
Write-off model: Matches transactions by pattern (text in description, amount range) and creates a journal entry to a specified account. Use for bank fees, interest income, and recurring charges.
Invoice matching model: Matches bank transactions to open invoices using customizable criteria. Use to override or enhance the default matching logic for specific scenarios.
Manual model: Provides a button during reconciliation that applies a predefined set of accounts and amounts. Use for common manual adjustments.
Example Models
| Model Name | Match Condition | Account | Application |
|---|---|---|---|
| Bank Service Fee | Description contains "SERVICE FEE" | Bank Charges Expense | Monthly bank fees |
| Interest Income | Description contains "INTEREST" | Interest Income | Monthly interest |
| Stripe Payout | Description contains "STRIPE" | Stripe Receivable | eCommerce payouts |
| PayPal Fee | Description contains "PAYPAL FEE" | Payment Processing Expense | PayPal transaction fees |
Payment Reconciliation
Customer Payments
When customers pay invoices, the reconciliation flow depends on the payment method:
Bank transfer: The payment appears as a bank transaction. Match it to the open invoice during reconciliation. If the customer paid multiple invoices in a single transfer, match the bank line to multiple invoices.
Online payment (Stripe, PayPal): Odoo records the payment automatically when the payment provider confirms the transaction. The bank transaction (payout from the provider) is reconciled against the outstanding receivable from the provider.
Check: Record the check receipt at Accounting > Customers > Payments, which creates an outstanding receipt entry. When the check clears and appears in the bank feed, match the bank transaction to the outstanding receipt.
Vendor Payments
Vendor payment reconciliation follows a similar pattern:
- Create the vendor payment at Accounting > Vendors > Payments (or use the Pay button on the vendor bill)
- The payment creates an outstanding payment entry
- When the bank processes the payment and it appears in the feed, match the bank transaction to the outstanding payment
Partial Payments and Overpayments
Odoo handles partial payments and overpayments during reconciliation:
- Partial payment: Match the bank transaction to the invoice. The remaining amount stays as an open balance on the invoice.
- Overpayment: Match the full bank amount to the invoice. The excess creates a credit that can be applied to future invoices or refunded.
Advanced Reconciliation Scenarios
Multi-Currency Reconciliation
For transactions in foreign currencies:
- The bank transaction records in the bank's currency
- Odoo converts at the exchange rate on the transaction date
- If the rate differs from the invoice rate, a currency exchange gain/loss entry is created automatically
- Configure exchange gain/loss accounts at Accounting > Configuration > Settings
Batch Payments
When multiple vendor payments are combined in a single bank transfer:
- Create a batch payment at Accounting > Vendors > Batch Payments
- Add individual vendor bills to the batch
- The batch creates a single outstanding payment entry matching the total bank transfer
- Reconcile the bank transaction against the batch payment entry
Unidentified Transactions
For bank transactions that cannot be matched to any existing record:
- During reconciliation, click Create to generate a new journal entry
- Select the appropriate account (suspense account if uncertain)
- Add notes for follow-up investigation
- The suspense account balance appears on the balance sheet until resolved
Month-End Close Process
Reconciliation Completion
Before closing the month, ensure all bank transactions are reconciled:
- Review the Unreconciled Items report at Accounting > Reporting > Unreconciled
- Investigate and resolve any items older than the current period
- Verify bank balances match between Odoo and bank statements
Cut-Off Entries
Create accrual entries for revenue earned or expenses incurred but not yet invoiced:
- Accrued revenue: Services delivered but not billed
- Accrued expenses: Services received but not billed by the vendor
- Deferred revenue: Payments received for future services
- Prepaid expenses: Payments made for future services
Depreciation Entries
If using the Assets module, depreciation entries post automatically based on the schedule. Review and post pending entries at Accounting > Accounting > Depreciation Entries.
Period Locking
After completing all month-end procedures:
- Navigate to Accounting > Configuration > Settings > Lock Dates
- Set the Lock Date for All Users to the last day of the closed month
- This prevents any journal entries from being posted to the closed period
Troubleshooting
Common Reconciliation Issues
| Issue | Cause | Resolution |
|---|---|---|
| Transaction appears twice | Duplicate import | Delete the duplicate bank statement line |
| Amount mismatch | Bank fees included | Create a write-off for the fee difference |
| Partner not recognized | Different name in bank vs Odoo | Add a bank account alias for the partner |
| Missing bank transactions | Incomplete import | Re-import the full statement for the period |
| Stale unreconciled items | Old transactions never matched | Review and write off or match to journal entries |
ECOSIRE Accounting Services
Configuring Odoo's accounting module for your specific business requires expertise in both accounting principles and Odoo's technical architecture. ECOSIRE's Odoo implementation team configures chart of accounts, tax rules, bank connections, and reconciliation models. For ongoing operations, our support services assist with month-end close procedures and reconciliation troubleshooting. We also offer standalone accounting services for businesses that prefer outsourced bookkeeping.
Related Reading
- Odoo Accounting Module Setup Guide
- AP Automation with Odoo
- Cash Flow Management Strategies
- Odoo Invoicing Best Practices
- Odoo Multi-Entity Accounting
How often should bank reconciliation be performed?
For most businesses, daily reconciliation is ideal. It catches discrepancies quickly and prevents month-end backlogs. With automated bank feeds and reconciliation models, daily reconciliation takes minutes rather than hours. At minimum, reconcile weekly to maintain accurate cash position reporting.
What happens to reconciled transactions if a bank statement is re-imported?
Odoo prevents duplicate imports by checking transaction references and dates. If a statement is re-imported, existing transactions are skipped. Already-reconciled transactions are not affected. If you need to undo a reconciliation, use the Unreconcile button on the journal entry.
Can Odoo reconciliation handle multiple bank accounts?
Yes. Each bank account operates independently with its own reconciliation queue. Navigate between accounts using the bank account selector in the reconciliation interface. Organizations commonly manage 5-15 bank accounts across operating accounts, payroll accounts, and currency-specific accounts.
Written by
ECOSIRE Research and Development Team
Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.
Related Articles
Accounts Payable Automation: Cut Processing Costs by 80 Percent
Implement accounts payable automation to reduce invoice processing costs from $15 to $3 per invoice with OCR, three-way matching, and ERP workflows.
AI in Accounting and Bookkeeping Automation: The CFO Implementation Guide
Automate accounting with AI for invoice processing, bank reconciliation, expense management, and financial reporting. 85% faster close cycles.
Audit Preparation Checklist: How Your ERP Makes Audits 60 Percent Faster
Complete audit preparation checklist using ERP systems. Reduce audit time by 60 percent with proper documentation, controls, and automated evidence gathering.