Add dunning fees


It is quite common that companies require fees for processing dunning.
Usually the fee is a fixed amount but it could also be a percentage of the due amount.
There could be some taxes that applies on the fees.

The fee should appear on the dunning letter.


A new model account.dunning.fee is created to define the fee. It is composed of:

  • a link to a service product
  • a link to a journal (with debit/credit account as intermediary account)
  • a computation method selection:
    • based on list price
    • based on percentage

An optional link to account.dunning.fee is added to account.dunning.level.
If the field is filled when processing a dunning at this level, an accounting move is created to debit the receivable account of the fee amount (with a maturity date set to today) and credit the journal account. The created move has as origin a record from a new model which links uniquely the dunning and the level to ensure that fee is created only once per level.
Once the receivable line is reconciled a second move is created between the journal account, the product revenue account and the eventual tax accounts.

The dunning letter module is adapted to show the fees if the fees module is installed.


1 Like

According to, it happens that taxes are applied on fees.
So as companies will not want to report due taxes before the fees being paid, I think the best is to create a first move between the receivable account of the party and a temporary fees account. Then when the receivable line is reconciled, it creates a second move between the temporary account, the revenue account of the product and the tax accounts.
The draw back is that if the reconciliation is removed, the second posted move will stay. But I don’t think it is a big deal for fees amount, such mistakes should not happen often and it can still be corrected manually.

Here is an implementation proposal: Issue 5553: RFC: dunning fee - Tryton issue tracker
It doesn’t contain the taxes support as it is not strictly needed to work as far as the country do not require it.