Managing payments is more than just receiving or sending money. In accounting, a transaction is only considered complete once the payment has been properly matched to its corresponding invoice or bill.
In Odoo, this process is known as reconciliation. It ensures that customer invoices are marked as paid, vendor bills are cleared, and financial reports accurately reflect your company’s cash position. This article explains how payments and reconciliation work in Odoo and why they are essential for maintaining clean and reliable accounting records.
What is a payment in Odoo?
A payment is the act of transferring money in exchange for goods or services. In business operations, there are two types of payments:
Customer Payments: Money your company receives from customers based on issued invoices.
Vendor Payments: Money your company sends to suppliers based on vendor bills.
In Odoo, payments can be recorded in two main ways:
Manual Payment
Manual payments are recorded when transactions happen outside Odoo, such as cash payments, checks, and external payment providers not directly integrated with Odoo. You manually input the transaction details into Odoo to reflect the payment in your accounting records.
Bank Synchronization
If your company’s bank account is connected to Odoo, payments can be imported automatically through bank synchronization. Odoo retrieves bank statements and suggests matching them with existing invoices or bills. This reduces manual encoding and minimizes errors.
Creating a Payment
To create a payment manually, select either Customers or Vendors and then Payments. When the payment is in draft, you are required to complete the following fields:
Payment Type (send or receive)
Customer or Vendor
Amount (to receive or be paid)
Date
Memo (payment reference)
Journal
Payment Method
Company Bank Account
Some of these fields may already be configured when you initially set up your Accounting app. When a draft is confirmed, it is in the process of being paid. A payment can only be posted when it matches to an existing customer invoice or vendor bill which can then be recorded onto your company’s journals.
What is reconciliation?
Matching a payment to an invoice or bill is called reconciliation. You can check your reconcilations by selecting Accounting then Reconcile.
In simple terms:
An invoice creates an Accounts Receivable entry.
A bill creates an Accounts Payable entry.
A payment creates a movement in Cash or Bank.
Reconciliation connects these entries together and clears the outstanding balance.
Without reconciliation:
An invoice may still appear unpaid.
A vendor bill may remain outstanding.
Reports such as Aged Receivable and Aged Payable may show incorrect balances.
Reconciliation ensures that debit and credit entries align properly and that your books remain accurate. Odoo supports both automatic and manual reconciliation.
Reconciling customer invoices
When you create a customer invoice and immediately register a payment from that invoice screen, Odoo automatically reconciles both documents. The invoice status changes to Paid, and the receivable account is cleared.
However, there are cases where reconciliation must be done manually:
The payment was recorded before the invoice was created.
The payment was imported from a synced bank account.
The customer made a partial payment.
There was an overpayment.
In such cases, you can reconcile by navigating to the invoice, then selecting the outstanding payment, and matching the payment to the invoice. Odoo will link the payment entry to the invoice and update its status accordingly.
Partial Payments and Overpayments
If a customer pays only part of the invoice amount, Odoo will mark the invoice as Partially Paid, leaving the remaining balance open. If a customer overpays, Odoo records the extra amount as a credit that can be applied to future invoices.
Reconciling vendor bills
Reconciling vendor bills follows the same principle but in reverse. When you register a payment directly from a posted vendor bill, Odoo automatically reconciles the payable entry and marks the bill as Paid. If the payment was recorded separately or imported from a bank feed, you must manually match the bank transaction or payment entry to the corresponding vendor bill.
Once reconciled, the payable account is cleared and the bill no longer appears in Aged Payable. Your financial statements will then reflect the correct liability balance. Partial payments to vendors are also supported. The bill remains open until the full amount has been reconciled.
Where reconciliation shows up in reports
Reconciliation affects these four accounting reports:
Aged Receivable: Unreconciled customer invoices appear as outstanding balances. Once reconciled, they are removed from the report.
Aged Payable: Vendor bills remain listed until payment reconciliation clears them.
General Ledger: Reconciliation ensures that receivable and payable accounts return to zero after payment, preventing long-term discrepancies.
Cash Flow: When payments are reconciled, cash inflows and outflows are properly reflected in operational cash flow.
Inaccurate or delayed reconciliation may cause these reports to show misleading figures.
Wrapping up
Reconciliation should be performed regularly to validate payments received from customers and payments made to vendors. It keeps your receivables and payables accurate, prevents reporting discrepancies, and ensures that your company’s cash position is correctly reflected.
To maintain clean records:
Sync your bank accounts regularly.
Review the reconciliation dashboard.
Analyze your Aged Receivable and Aged Payable reports.
Follow up on overdue invoices.
Set reminders for upcoming vendor payments.
By consistently reconciling transactions, you ensure that your accounting records remain reliable and audit-ready.