Enable Dark Mode!
how-to-set-up-cash-basis-tax-accounting-in-odoo-19.jpg
By: Hasna VP

How to Set Up Cash Basis Tax Accounting in Odoo 19

Functional Odoo 19 Accounting

Accurate tax computation is essential for maintaining transparent and reliable financial records. For businesses that follow the cash basis accounting method, aligning tax calculations with actual cash movements, rather than with issued invoices, is crucial to reflect a true financial position. Odoo 19, with its enhanced and user-friendly Accounting module, offers comprehensive support for configuring and managing cash-basis tax calculations with ease.

This blog provides a detailed, step-by-step guide to help you understand, configure, and apply cash basis tax accounting in Odoo 19.

What is Cash Basis Accounting?

Under the cash basis accounting method, revenues and expenses are recorded only when cash is received or paid, rather than when an invoice or bill is issued. Because it mirrors real cash flow, this method is especially suitable for small businesses, freelancers, and service-based companies. In contrast, accrual accounting recognizes income and expenses at the time a transaction occurs, regardless of when the payment is made. For tax reporting, the cash basis method ensures that taxes are calculated and remitted only after actual payment is received or made. This is particularly beneficial in cases where payments are delayed or uncertain, as it helps avoid paying taxes on unpaid invoices and supports better liquidity management.

Odoo 19 simplifies cash-basis tax handling through built-in tax configuration options that allow you to calculate taxes based entirely on real cash transactions.

In Odoo 19, businesses can manage tax reporting on a cash basis, ideal for organizations that recognize tax obligations only when payments are received or made rather than at the time of invoicing. To enable this feature, navigate to the Accounting module’s Settings and activate the Cash Basis option.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Once enabled, you must configure dedicated accounts to handle these transactions accurately. This setup includes specifying a Base Tax Received Account to record the taxable base amount upon payment and selecting a Tax Cash Basis Journal, where all corresponding tax entries are automatically posted during the reconciliation process.

To configure cash basis tax rules in Odoo 19, begin by opening the Accounting module and navigating to Configuration > Taxes.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

This section provides a complete overview of all existing tax records, including details such as the tax name, type, scope, invoice label, associated company, and activation status. From here, you can create new tax rules or modify existing ones to align with cash basis accounting requirements. Click “New” to open the tax creation form, where you can define the essential tax parameters.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Odoo 19 allows you to choose the appropriate Tax Computation method, such as Group of Taxes, Percentage, Fixed, or Percentage (Tax Included), depending on how your organization calculates taxes. Ensure the Active toggle is enabled so the tax rule becomes operational. You can further specify whether the tax applies to Sales, Purchases, or both by selecting the correct Tax Type. The Tax Scope determines if the tax is added on top of the price or included within it. Enter the applicable tax rate in the Amount field as a percentage. Additionally, you may assign a Fiscal Position if the tax should only be applied under certain configured conditions. These settings collectively allow businesses to create precise and compliant cash basis tax rules within Odoo 19.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Within the Definition tab, Odoo 19 allows you to configure how taxes are distributed across accounts for both invoices and refunds. In the Distribution for Invoices and Distribution for Refunds sections, you can allocate the tax base and tax amount using predefined percentages, ensuring accurate distribution based on either the taxable base of the invoice line or the calculated tax amount. Each distribution line can be linked to specific Accounts and associated with the appropriate Tax Grids, which play a crucial role in organizing tax data for reporting purposes. These tax grids help automate the consolidation of tax information, ensuring that your financial reports remain compliant with local tax regulations and are structured in a clear and accurate manner.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

In Odoo 19, the Advanced Options tab provides additional controls that help define precise tax behavior for accurate financial reporting. One of the most important settings here is Tax Exigibility, which determines when the tax becomes due. You can choose between Based on Invoice (accrual basis) and Based on Payment (cash basis). When the Based on Payment option is selected, the tax is recognized only when the corresponding invoice is paid, making it essential for businesses that follow the cash basis accounting method. In this setup, Odoo automatically manages the transition of tax amounts by temporarily recording them in a designated Cash Basis Transition Account until the payment is reconciled. This account becomes active only when tax exigibility is set to cash basis and serves as a holding account for tax amounts before they are officially recognized. 

To verify that your cash basis tax configuration is functioning correctly in Odoo 19, start by initiating a cash transaction, such as recording a customer payment for an invoice or registering a vendor payment. This step allows you to confirm whether the system accurately computes taxes based on real cash movement. With cash basis accounting enabled, Odoo will recognize tax amounts only when payment occurs, ensuring real-time accuracy in your financial records.

Next, create or select a product to demonstrate how cash-based taxation affects accounting entries. For example, consider a product priced at $295. Open the product’s configuration form and, under the General Information tab, select the cash basis tax you previously configured in the Sales Taxes field. You can complete the remaining product details as required and save the record.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Once the product configuration is complete, proceed to create a customer invoice by navigating to Customers > Invoices. Generate a new invoice using the same product to observe how Odoo applies cash basis tax rules during the payment and reconciliation process.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

After selecting the customer, add the required product or service to the invoice. In the Tax column of the invoice line, choose the tax that you configured with cash basis enabled, that is, the tax where Tax Exigibility is set to Based on Payment. By applying this tax, you ensure that the tax amount will only be recognized in your accounting records once the customer actually makes the payment. Until the payment is received, Odoo temporarily records the tax amount in the Cash Basis Transition Account rather than including it in your tax liabilities.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

You can observe this process by viewing the Journal Items of the invoice. After the invoice is posted but remains unpaid, the tax amount will appear in the transition account, confirming that the system is correctly handling cash basis tax treatment.

Once the invoice is confirmed, you will notice that the related tax does not appear in the Tax Report under the Reporting menu, because the payment has not yet been recorded. This behavior aligns perfectly with the principles of cash basis accounting, where tax is recognized only when cash is actually received.

To verify how the tax amount is being temporarily stored, go to the Accounting module and open Configuration > Chart of Accounts.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Locate the account you selected as the Cash Basis Transition Account during tax setup and click on it.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

When the account opens, a Balance smart button will appear at the top, giving you quick access to the corresponding journal entries.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Within this view, you will clearly see that the tax from the unpaid invoice is currently held in the transition account. This confirms that Odoo is correctly applying the cash basis workflow by deferring tax recognition until the customer payment is received.

When the customer is ready to make the payment, navigate to the Accounting module and locate the previously created and confirmed invoice. Open the invoice and click the Pay button to initiate the payment process.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

This action opens a form, where you can enter essential details such as the payment amount, the journal through which the payment is received, and the payment date. After filling in the required information, click Create Payment to record the transaction. Once the payment is registered, Odoo will automatically move the tax amount from the Cash Basis Transition Account to the appropriate tax liability account, completing the cash basis tax recognition cycle.

To complete the cash basis tax cycle, the payment must be properly reconciled. Begin by opening the Accounting menu and accessing the Reconcile option. You can reconcile transactions from here.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Select the entry you want to reconcile and click the Reconcile button, as shown in the image below.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

After the reconciliation is completed, return to the invoice in the Accounting module.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

You will now see that its status has been updated to Paid. Opening the invoice again reveals a new smart button labeled Cash Basis Entries. Click this button to view the corresponding journal entries generated by Odoo at the moment of payment.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

From the list, open the relevant entry to review the detailed accounting lines.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

Here, you will clearly see how the tax amount moves within your books.

how-to-set-up-cash-basis-tax-accounting-in-odoo-19-cybrosys

The journal entry shows a debit to the Cash Basis Transition Account, where the tax was temporarily stored when the invoice was posted. At the same time, a credit is made to the actual Tax Received account, indicating that the tax is now officially recognized as a liability after the payment is received.

This movement demonstrates the core mechanism of Odoo 19’s cash basis tax system: taxes are recognized only when real cash changes hands, ensuring compliance, accuracy, and clear financial reporting.

To read more about How to Manage Cash Basis Tax in Odoo 18 Accounting Module, refer to our blog How to Manage Cash Basis Tax in Odoo 18 Accounting Module.


If you need any assistance in odoo, we are online, please chat with us.



0
Comments



Leave a comment



whatsapp_icon
location

Calicut

Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635

location

Kochi

Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.

location

Bangalore

Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message