Skip to content

Odoo Bank Reconciliation: Complete Setup Guide

DeployMonkey Team · March 23, 2026 12 min read

What Is Bank Reconciliation?

Bank reconciliation is the process of matching your bank statement transactions against the journal entries in Odoo. It ensures that your accounting records accurately reflect what actually happened in your bank accounts — catching missing invoices, duplicate payments, bank fees, and errors.

Setting Up Bank Accounts

Creating Bank Journals

  1. Accounting → Configuration → Journals
  2. Create a journal of type Bank
  3. Enter your bank account number (IBAN)
  4. Set the bank name and currency
  5. Configure the default accounts (suspense, outstanding receipts/payments)

Bank Synchronization

Odoo supports automatic bank feeds through aggregation services:

ServiceCoverageSetup
PlaidUS, CanadaLink through Odoo settings
YodleeGlobal (16,000+ banks)Link through Odoo settings
Salt EdgeEurope (PSD2 compliant)Link through Odoo settings
PontoEuropeSeparate Ponto account needed
# Bank sync setup:
# 1. Accounting → Configuration → Online Synchronization
# 2. Select your bank feed provider
# 3. Authenticate with your bank credentials
# 4. Select accounts to synchronize
# 5. Odoo fetches transactions automatically (usually daily)

# Note: Some banks require manual statement import
# Supported formats: OFX, QIF, CAMT.053, CSV, MT940

Importing Bank Statements

If bank sync is not available, import statements manually:

  1. Accounting → Bank → Import
  2. Select the file format (OFX, CSV, CAMT, etc.)
  3. Upload the statement file
  4. Odoo parses and creates bank statement lines

CSV Import Format

# Required CSV columns:
# Date — Transaction date (YYYY-MM-DD)
# Label — Transaction description
# Amount — Transaction amount (positive for deposits, negative for withdrawals)

# Optional columns:
# Reference — Bank reference number
# Partner — Customer/vendor name

Reconciliation Process

Opening the Reconciliation View

  1. Accounting → Bank → Click on the bank journal
  2. Or use the Dashboard → Bank card → Reconcile button
  3. The reconciliation widget shows unmatched statement lines

Matching Transactions

For each bank statement line, Odoo suggests matching journal entries:

  • Automatic matching — Odoo matches by amount, reference, and partner
  • Manual matching — Search and select the correct journal entry
  • Partial matching — Match partial amounts (e.g., partial payment on an invoice)
  • Write-off — Create a write-off for small differences (bank fees, rounding)
# Matching logic:
# 1. Exact amount match + reference match → High confidence
# 2. Exact amount match + partner match → Medium confidence
# 3. Exact amount match only → Low confidence (manual review)
# 4. No match → Create new entry or wait for missing invoice

Reconciliation Models

Reconciliation models automate common patterns. Go to Accounting → Configuration → Reconciliation Models.

Common Models

ModelRuleAction
Bank FeesLabel contains "FEE" or "CHARGE"Create expense entry to Bank Fees account
Interest IncomeLabel contains "INTEREST"Create entry to Interest Income account
Payroll TransferLabel contains "PAYROLL"Match to payroll journal entry
ATM WithdrawalLabel contains "ATM" or "WITHDRAWAL"Transfer to Cash journal

Model Types

  • Write-off — Creates a new journal entry (for bank fees, interest)
  • Invoice matching — Matches against existing invoices/bills
  • Manual — Suggests an action but requires confirmation

Handling Special Cases

Partial Payments

When a customer pays less than the invoice amount:

  1. Match the payment to the invoice
  2. The remaining balance stays open on the invoice
  3. Or create a write-off for the difference (e.g., early payment discount)

Combined Payments

When a customer pays multiple invoices in a single bank transaction:

  1. Select all matching invoices in the reconciliation widget
  2. Odoo splits the bank line across the selected invoices

Unknown Transactions

For bank lines with no obvious match:

  • Check if the invoice/bill is missing and create it
  • Create a manual journal entry
  • Mark as "To Investigate" and return later

Outstanding Payments and Receipts

Odoo uses outstanding accounts to handle the timing difference between recording a payment in Odoo and seeing it on the bank statement:

# Payment flow:
# 1. Register payment on invoice
#    Debit: Outstanding Receipts
#    Credit: Accounts Receivable

# 2. Bank reconciliation (when it appears on statement)
#    Debit: Bank
#    Credit: Outstanding Receipts

# This two-step process ensures accurate timing

Bank Reconciliation Report

After reconciliation, review the Bank Reconciliation Report showing:

  • Odoo closing balance
  • Unreceived deposits (in Odoo but not on statement)
  • Uncashed payments (in Odoo but not cleared at bank)
  • Expected bank balance (should match actual statement)

Best Practices

  • Reconcile weekly — Do not let it pile up for month-end
  • Set up reconciliation models — Automate recurring patterns
  • Review suggestions carefully — Auto-matching is not always correct
  • Investigate mismatches — Unmatched items may indicate errors
  • Lock reconciled periods — Prevent accidental changes to reconciled entries

DeployMonkey + Reconciliation

DeployMonkey's AI agent configures bank journals, import formats, reconciliation models, and matching rules for efficient bank statement processing.