La ritenuta d’acconto provvede a calcolare automaticamente i valori delle diverse tipologie di ritenuta presenti nella contaiblità italiana.
Con questo modulo è possibile, tramite apposito workflow, gestire i diversi passaggi di stato delle ritenute rilevate: dovuta, applicata, versata
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Manage Italian withholding taxes (ritenute d'acconto) directly in Odoo invoices and payments. Configure withholding tax types and rates, apply them to invoice lines, and track each amount through due and paid states.
This module adds Italian withholding tax handling to the accounting app. Users first configure withholding taxes with a name, code, type (Enasarco, Inps, Enpam, other), receivable and payable accounts, a journal, payment terms and dated rates. Each rate has a base coefficient and a tax percentage, and overlapping rate periods are blocked.
On customer and vendor invoices, a Withholding Tax column appears next to the normal taxes on each invoice line. The system automatically computes the withholding base and amount, shows the total withholding tax and the Net To Pay, and creates a withholding tax statement when the invoice is posted. A fiscal position can pre-fill which withholding taxes apply.
When the invoice is paid, withholding tax moves are generated automatically and an accounting entry is created for the tax authority. These moves start in Due status and become Paid when the related reconciliation is fully done; they cannot be deleted unless they are still Due. The payment wizard proposes the residual net-to-pay amount.
Menus under Accounting give access to Withholding Tax configuration, WT Statements and WT Moves. The invoice printout can optionally show the withholding tax detail.
Depends on
Required by other modules
Menus it adds
Models and fields (12)
- account.move · extends an existing modelamount_net_pay (Net To Pay), withholding_tax, withholding_tax_amount (Withholding tax Amount), amount_net_pay_residual (Residual Net To Pay), withholding_tax_in_print (Show Withholding Tax In Print), withholding_tax_line_ids
- account.payment · extends an existing model
- withholding.tax · new modeltax (Tax %), base, code, name, active, comment (Text), rate_ids, sequence, wt_types, company_id (Company), journal_id (Withholding tax journal), payment_term, certification, use_daticassaprev (DatiCassa export), account_payable_id (Account Payable), daticassprev_tax_id, account_receivable_id (Account Receivable)
- account.move.line · extends an existing modelwithholding_tax_id (Withholding Tax), withholding_tax_base, withholding_tax_amount, invoice_line_tax_wt_ids (W.T.), withholding_tax_generated_by_move_id (Withholding Tax generated from)
- withholding.tax.move · new modeldate (Date Competence), state, amount, wt_type (Type), company_id (Company), partner_id, move_line_id, statement_id, date_maturity, account_move_id, payment_line_id, full_reconcile_id (WT reconciliation), withholding_tax_id, wt_account_move_id, credit_debit_line_id, reconcile_partial_id
- withholding.tax.rate · new modeltax (Tax %), base (Base Coeff.), comment (Text), date_stop, date_start, withholding_tax_id (Withholding Tax)
- account.full.reconcile · extends an existing model
- account.fiscal.position · extends an existing modelwithholding_tax_ids (Withholding Tax)
- account.payment.register · extends an existing model
- account.partial.reconcile · extends an existing model
- withholding.tax.statement · new modeltax, base, date, amount (WT amount applied), move_id, wt_type, move_ids, company_id (Company), invoice_id, partner_id, amount_paid (WT amount paid), withholding_tax_id (Withholding Tax)
- account.invoice.withholding.tax · new modeltax, base, sequence, tax_coeff, base_coeff, invoice_id (Invoice), withholding_tax_id (Withholding tax)
Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/l10n-italy.
terminal Installation and usage
OCA documentation · Odoo 16.0Usage
Source · Odoo 16.0Per prima cosa dovremo creare una ritenuta d’acconto dove inserire tutti i campi necessari per un corretto calcolo.
Visto che le aliquote possono variare nel corso del tempo, nella codifica sono previsti scaglioni temporali di competenza.
E’ necessario anche inserire i conti contabili che verranno utilizzati quando il modulo si occuperà di generare registrazioni contabili per la rilevazione della ritenuta.
Una volta aggiunta, nella tabella ritenute, potrà essere utilizzata all’interno della fattura, in corrispondenza delle righe soggette a ritenute.
Per ogni riga è possibile utilizzare più di una ritenuta. Per alcune casistiche il moduo ritenute viene usato anche per rilevare le trattenute INPS.
Il modulo ritenute calcolerà i valori corrispondenti e ne mostrerà il dettaglio nell’apposita area ritenute, dove è possibile verificare per ogni codice ritenuta usato, l’imponibile e l’importo ritenuta applicato.
In calce ai totali, verrà totalizzato l’ammontare della ritenuta e il netto a pagare. Questa sezione sarà visibile solamente in presenza di almeno una ritenuta
Per registrare il pagamento di una fattura con ritenuta, indicare come importo il "Netto a pagare" e lasciare aperta la fattura:
Il sistema provvederà alla creazione di un ulteriore pagamento che coprirà l'ammontare della ritenuta e la fattura risulterà completamente pagata:
Per il pagamento della ritenuta d'acconto fare riferimento al modulo l10n_it_withholding_tax_payment.
Successivamente andando nella sezione situazione ritenute d’acconto il sistema vi mostrerà una situazione riepilogativa delle varie ritenute divisa per documento di origine.
I campi principalmente da tenere in considerazione in questa tabella sono: ritenuta dovuta, ritenuta applicata e ritenuta versata.
Ritenuta dovuta contiene il valore della ritenuta contenuta nella fattura.
Ritenuta applicata mostra il valore della ritenuta rilevata al momento del pagamento della fattura.
Ritenuta versata contiene l’importo di ritenuta, già applicata, che è stata versata all’erario
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.