Tax Report on Cash Basis

The current tax report is based on accrual but in some country small businesses are allowed to make tax report on cash basis.
The idea will be to have a module that adds period on tax line. At the closing of each period, the tax lines are updated/copied and set the closed period using the paid invoice ratio.


  • Add a period on the tax line.
  • Update/Copy tax line based on payments on the invoice when closing a period and create a move between current tax account to another defined one.
  • Check that all payments on the closing period are linked to an invoice.
  • Remove period on tax lines if period is reopen (with warning).
  • Define the basis on the fiscal year and period per tax group (but can not change once there are moves).
  • Update “Open Chart” to use the tax line period instead of the one on move line.

Maybe the behaviour (Accrual or Cash basis) should be configurable per group of tax?

Does your suggested solution mean that it is not possible to know the amount of tax you owe until you close a period?

Yes but we could allow to run the closing process without closing the period but it will make the code more complex. Maybe a possible work-flow will be to close the period, check the amount and re-open it.

AFAIK not for Australia.

Very good idea to consider the case of tax on cash basis.
I’m not sure to understand, but I think it’s a bad idea to disable the creation of the tax lines on the account move of the invoices, at least for the french accounts (don’t know for other countries).
In France, when we emit an invoice (with tax on cash basis), we use the 4458 account (TVA à régulariser) instead of the 44571 account (TVA collectée). When we receive the payment for this invoice, we debit the account 4458 and credit the account 44571.

It doesn’t disable the create of the move lines for taxes but only the tax lines on the move lines.

And what is the point for this moves round-trip?
For me, it looks like a trick for when you do manual accounting but if it is really important we could add the creation of such move based on the tax configuration probably.

The issue I see with this solution of a specific module is that a company should be able to change from one method to another in different accounting periods.

Instead of setting this on tax groups it should be set on accounting periods.

So, you are no longer suggesting to disable the tax line on creation of the invoice, but instead creating moves to a “waiting” account?

I think that this could be implemented with the addition of 2 check boxes ( one for income tax & the other for ‘sales’ tax ) on the fiscal periods.

There is no issue see:

1 Like

No, it doesn’t change the proposed design. If it is really a needed feature, I say it can easily implemented like that but I doubt about this need of move round-trip.

But this solution provides the possibility to see the tax position at any time. As opposed to creating tax lines on closing a period.

I don’t know what you call “tax position” but I think you are mixing the move lines with the tax lines.
All move lines will still be created (otherwise we can not make a balanced move), it is only the tax lines used for the reporting that are not created and for a good reason because on cash basis they should not exist until payment is received.

When I have to declare and pay VAT (in my case, one time in july and second time in december), I need to know what amount to declare and pay based on the cash I received. Actually, I need to know that amount whenever I need to know, to manage my finances for example.

This is exactly the goal of this feature. In Tryton tax declaration is not based on account line but on tax line.

Now, the amount of tax collected in account plan (in France “44571 - TVA collectĂ©e”) and the amount in tax plan (in France “OpĂ©rations imposables”) are the same.
If I understand, your implementation is intending to show the amount in tax plan based on cash received, and in the account plan the amount collected appear only when we close the period ? If it is, it’s good for me.

Not exactly. The account plan will always show the tax amount like for accrual but the tax plan will show the amount based on cash basis (received or paid) but only for closed period.

Ok. Good, except the need to close the period to see this amount in tax plan. This amount has to be known on specific periods (declaration) which eventually match with Tryton period configured but not always, but in reality it’s really useful to know it the rest of the year to manage our finances, and it seems overkill to close artificially a period to know it. Doesn’t it ?

The Tryton period must match the tax report period. It is the only purpose of the period.

Yes but I don’t see how it can be done differently because we need to create records based on how much an invoice has been paid. But for that we must take a snapshot of the link between payment and invoice at one moment in the period.
But there is the solution: