Hi,
In Odoo 18 and 19, the default tax engine does not
automatically handle DIAN’s withholding tax thresholds based on UVT.
Withholding taxes are applied as soon as they are configured on a
product or transaction, without considering whether the taxable base
exceeds 2 UVT for services or 4 UVT for purchases.
Some implementations rely on manual control, where accountants or
users apply withholding taxes only when the transaction exceeds the
threshold, sometimes using separate taxes or fiscal positions. However,
this approach depends heavily on human oversight and can lead to errors.
The recommended solution is a small customization. By extending
Odoo’s tax computation logic, you can check the taxable base against the
current UVT value (stored in system parameters) and skip the
withholding tax if the amount is below the threshold. This ensures
compliance with DIAN rules automatically and reduces the risk of
mistakes.
Overall, while Odoo provides the framework for withholding taxes,
handling conditional application based on UVT requires either manual
management or a lightweight custom module to enforce the thresholds.
Reference:-
* https://www.odoo.com/documentation/19.0/applications/finance/fiscal_localizations/colombia.html
* https://www.cybrosys.com/blog/an-overview-of-accounting-localization-for-colombia-in-odoo-17
Hope it helps