Introduction: The Challenge of Tracking Cash
For growing businesses, tracking real-time cash movements is essential. However, there are two fundamentally different ways to generate a Cash Flow Statement:
- Direct Method — based solely on actual cash transactions, such as bank statements. This is the preferred method for daily cash monitoring and treasury control.
- Indirect Method — based on accrual records, such as invoices and vendor bills, requiring reconciliation to reflect actual payments.
⚠️ Odoo ERP does not support the Direct Cash Flow Statement out-of-the-box. This poses a serious challenge for companies that need real-time liquidity tracking.
Imagine this real-world scenario: this morning your company received 2,000,000 and paid 1,800,000 to suppliers. You haven’t issued or received invoices yet. Only a Direct method report can show you this cash position. But in standard Odoo, you’re blind to this.
To solve this, ERPixel has developed an Advanced Cash Flow Statement Direct plugin, extending Odoo’s core accounting capabilities.



🔢 Indirect Method in Odoo: Standard Functionality
Odoo provides the Cash Flow Statement based on the indirect method, accessible through the Accounting app → Reporting → Cash Flow Statement.
How It Works
- Data comes from accounting entries (
account.move.line
) tagged as:receivable
(customer invoices)payable
(vendor bills)- other non-liquidity transactions
- Based on these entries, Odoo builds the operating, investing, and financing sections.
- Reconciliation is crucial to reflect whether an invoice has been paid or not.
What the User Must Do
- Post all customer invoices and vendor bills.
- Perform reconciliation with payments (bank/cash).
- Assign proper Cash Flow Tags to all involved accounts.
Key Warning
If an account does not have a tag (Operational / Financial / Investment), the system will list entries under “undefined” in the report — a sign of incorrect configuration.
Tag Setup Guidance
Before generating the report:
- Tag all income and expense accounts.
- Tag receivable/payable accounts.
- Validate the tag consistency via the Cash Flow report filters.
🪡 Direct Method: What Odoo Lacks (And ERPixel Adds)
What Is the Direct Method?
- It uses only liquidity-type entries (bank, cash, credit card).
- Ideal for daily cash visibility, regardless of invoice issuance.
- Simple and objective: it reflects actual movements, not planned revenue or expenses.
Why Standard Odoo Fails
- Odoo does not group or report liquidity transactions by Cash Flow category (without manual work).
- There is no way to assign tags to liquidity accounts for Cash Flow reporting.
- No report exists to show today’s cash movement by category (e.g. supplier payments vs loan payments).
What ERPixel Built
- Our plugin processes only liquidity entries.
- Assigns Cash Flow types to incoming/outgoing bank transactions.
- Enables full Direct Method Cash Flow Statement, usable daily or weekly.
📊 Technical Notes for Accountants
- Odoo stores all movement data in
account.move.line
records. - Reconciliation links liquidity entries with payables/receivables via a residual amount.
- If 800 was paid against a 1000 invoice, the residual amount is 200.
Interface Navigation
- Report: Accounting → Reporting → Cash Flow Statement
- Filters: Dates, Journals, Companies, Cash Flow Tags
- Additional reports may appear depending on localization (e.g. Poland, UAE)
🚀 Final Thoughts
The Cash Flow Statement in Odoo is powerful when used correctly. However:
- The Indirect Method is useful for end-of-period reports but requires full reconciliation.
- The Direct Method, critical for operational cash control, is missing in Odoo.
ERPixel’s Cash Flow Direct plugin closes this gap and enables precise, real-time financial control.
✨ Contact ERPixel to learn more or request a demo of the Direct Cash Flow Module.