Bank
Odoo uses a two-step method for handling invoice payments:
Invoice Validation
When an invoice (customer or vendor) is created and validated, it is posted in the accounting system.
At this stage, the invoice is considered issued but not yet paid.
Payment Reconciliation via Bank Statement
Payments are not marked directly on the invoice. Instead, they are recorded through a bank statement (or payment journal entry).
The reconciliation process matches the payment with the invoice, which then updates the invoice status to Paid.
Why Odoo uses this approach
Accounting Accuracy: In real accounting, invoices and payments are separate documents. An invoice represents what is owed, while the bank statement represents actual cash movement.
Audit Trail: By requiring reconciliation, Odoo ensures a clear and auditable link between invoices and payments.
Bank Integration: Many businesses import bank statements directly. This design makes it easier to match real transactions with Odoo invoices.
Flexibility: A single payment can cover multiple invoices, or one invoice can be paid in multiple installments. The reconciliation process handles these cases correctly.
“Mark as Paid” Button
Odoo includes a Mark as Paid action in invoicing for convenience. However:
This action does not immediately mark the invoice as fully paid; instead, it moves the invoice into the “In Payment” state.
What it really does is create a payment entry linked to the invoice, simulating that a payment has been made.
The final status of “Paid” is only reached after reconciliation with the corresponding bank statement or journal entry.
Reason for this design
It allows users to record payments manually when they don’t use automated bank feeds or imported statements.
It supports scenarios where payments are received but not yet reconciled, keeping accounting consistent.
It provides flexibility for small teams who may want a shortcut, while still enforcing reconciliation for proper accounting practice.
Add Bank Statement
Get Bank Statement
Reconcile / Invoice Payment
Last updated