OdooWiki OCA HUB

Italy - E-invoicing - Base Feature

l10n_it_edi_extension folder_open OCA/l10n-italy open_in_new
Accounting/Localizations/EDI License: AGPL-3

Italiano

Questo modulo estende le funzionalità standard della fatturazione elettronica italiana di Odoo, introducendo strumenti utili come l'anteprima XML ed il calcolo dei codici fiscali e miglioramenti nell'importazione e nell'esportazione delle fatture XML.

Le funzionalità principali incluse sono:

  • Anteprima e Download del file XML:
  • Aggiunge un pulsante ("Preview") direttamente nel form della fattura, sia per fatture inviate che ricevute.
  • Dalla stessa finestra della fattura, è possibile scaricare il file XML generato.
  • Valorizza i seguenti campi/nodi della fattura elettronica esportata:
  • (sia sulla riga o nell'azienda): identificativo utilizzato per uso amministrativo/gestionale interno. È un campo libero che può essere utilizzato per inserire riferimenti specifici richiesti dalla Pubblica Amministrazione o altri riferimenti utili per la gestione amministrativa.
  • : rappresenta i dati della sede operativa stabile del cedente/prestatore in Italia se diversa dalla sede legale. Da impostare in odoo nell'azienda, tab "Informazioni Generali"
  • : in questo caso non c'è un campo apposito, ma trascrive i "Termini e condizioni" della fattura
  • : indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72. Da impostare in odoo nell'azienda o direttamente in fattura.
  • (2.2.1.16): dati gestionali aggiuntivi che possono essere inseriti manualmente su ogni riga fattura ed esportati nel file XML FatturaPA. Ogni voce include:
  • : tipo di dato (max 10 caratteri, obbligatorio)
  • : riferimento testuale (max 60 caratteri)
  • : riferimento numerico (fino a 8 decimali)
  • : riferimento data
  • Per aggiungere questi dati, aprire la riga fattura e compilare la sezione "Altri Dati Gestionali".
  • : rappresenta l'indirizzo di consegna della merce.
  • Miglioramenti nell'import delle fatture XML:
  • Aggiunge un'opzione per creare i contatti presenti in una fattura elettronica se non esistono in anagrafica tra cui:
  • e invece di scrivere solamente i dettagli nel chatter.
  • Creazione di altri contatti presenti in una fattura elettronica se non esistono in anagrafica tra cui:
  • Nome e cognome vengono assegnati ai nuovi contatti in base ai nodi e della fattura elettronica.
  • Gestione delle Fatture Elettroniche Multiple:
  • Supporto per la suddivisione automatica di file XML contenenti più fatture
  • Ogni viene convertito in una fattura separata mantenendo l'header originale
  • Aggiunge la possibilità di scegliere tra 3 modalità di importazione:
  • senza righe
  • una riga per ogni aliquota
  • tutte le righe (default)
  • Importazione dei :
  • : Indica il motivo per cui un'operazione non prevede l'IVA
  • : es. trasporto, imballaggio
  • : Indica quando l'IVA diventa esigibile (immediata, differita o scissione dei pagamenti)
  • : Obbligatorio quando si usa il campo
  • Importazione dei :
  • : indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72
  • e : utilizzati per indicare lo stato di avanzamento dei lavori in caso di fatturazione dilazionata/progressiva (contratti di appalto, servizi continuativi o lavori in corso d'opera)
  • Importazione dei dati della fattura principale ( e )
  • Scrittura nel chatter dei nodi di e
  • Importazione di fatture elettroniche firmate e in base64
  • Gestione avanzata dei Dati delle Righe Fattura:
  • Creazione dei codici articolo in fase di importazione. Questi codici servono per identificare univocamente i prodotti/servizi secondo diversi standard di codifica. Nel file XML, questi codici sono nel nodo che può contenere:
  • : identifica il tipo di codifica utilizzata
  • : il valore effettivo del codice
  • Registrazione dello sconto o maggiorazione, nodo , nelle righe di dettaglio della fattura.
  • Importazione dei dati del nodo (informazioni supplementari che non trovano posto negli altri campi standard della fattura elettronica) che può contenere:
  • : identifica il tipo di informazione aggiuntiva che si sta inserendo
  • : contiene un valore testuale dell'informazione aggiuntiva
  • : contiene un valore numerico dell'informazione aggiuntiva
  • : contiene un valore data dell'informazione aggiuntiva
  • Importazione dei nodi:
  • : numero progressivo della riga all'interno della fattura
  • : indica la tipologia della cessione o prestazione e può contenere valori come:
  • "SC" (Sconto)
  • "PR" (Premio)
  • "AB" (Abbuono)
  • "AC" (Spesa accessoria)
  • e : indicano il periodo di riferimento di una prestazione e sono utili per servizi continuativi o prestazioni che si estendono su un periodo di tempo
  • : identificativo utilizzato per uso amministrativo/gestionale interno. È un campo libero che può essere utilizzato per inserire riferimenti specifici richiesti dalla Pubblica Amministrazione o altri riferimenti utili per la gestione amministrativa.
  • Convalida della fattura importata: se i seguenti importi sono diversi da quelli presenti nel file XML, nella fattura viene visualizzato un messaggio:
  • importo totale imponibile
  • IVA totale
  • IVA inclusa
  • I dati del partner possono essere aggiornati per corrispondere a quelli nella fattura elettronica.
  • Aggiunge di un wizard per calcolare i codici fiscali
  • Invio massivo delle autofatture allo SdI:
  • Nella vista elenco delle fatture fornitore, selezionare le autofatture (ad es. TD17, TD18 e TD19 per il reverse charge) e usare il pulsante "Send self-invoices to SDI".
  • Vengono inviate solo le autofatture confermate e non ancora inviate, gli altri documenti selezionati vengono ignorati.
  • Ogni autofattura viene controllata e inviata come con il pulsante "Invia a SDI" del documento: se un'autofattura ha degli errori, il motivo viene mostrato nel documento o nella notifica finale e le altre vengono inviate comunque.
  • Ogni autofattura viene salvata subito dopo l'invio: se l'operazione si interrompe (ad es. per il limite di tempo del server), le autofatture già inviate risultano inviate anche in Odoo e le restanti si possono inviare ripetendo l'operazione.
  • Al termine, una notifica riepiloga le autofatture inviate, quelle non inviate e i documenti ignorati.

\<\>

English

This module extends Odoo's standard Italian electronic invoicing functionality, introducing useful tools such as XML preview and fiscal code calculation and improvements in importing and exporting XML invoices.

The main features included are:

  • XML File Preview and Download:
  • Adds a button ("Preview") directly in the invoice form, both for exported and imported invoices.
  • From the same invoice form, you can download the generated XML file.
  • Adds fields in XML invoice export:
  • (both on line or on company): identifier used for internal administrative/management purposes. It's a free field that can be used to insert specific references required by Public Administration or other useful references for administrative management.
  • : represents the data of the seller/provider's permanent establishment in Italy if different from the registered office
  • : in this case there is no specific field, but it transcribes the "Terms and conditions" of the invoice.
  • : indicates if the document was issued according to methods and terms established by ministerial decree pursuant to article 73 of DPR 633/72
  • (2.2.1.16): additional management data that can be manually entered on each invoice line and exported to the FatturaPA XML file. Each entry includes:
  • : data type (max 10 characters, required)
  • : text reference (max 60 characters)
  • : numeric reference (up to 8 decimal places)
  • : date reference
  • To add this data, open the invoice line and fill in the "Other Management Data" section.
  • : represents the shipping address of the goods.
  • Improvements in XML invoice import:
  • Adds an option to create contacts present in an electronic invoice if they don't exist in the address book, including:
  • and instead of just writing the details in the chatter.
  • Creation of other contacts present in an electronic invoice if they don't exist in the address book, including:
  • Name and surname are set in the new contacts based on the and nodes of the E-Bill.
  • Multiple Electronic Invoice Management:
  • Support for automatic splitting of XML files containing multiple invoices
  • Each is converted into a separate invoice maintaining the original header
  • Adds the ability to choose between 3 import modes:
  • without lines
  • one line for each VAT rate
  • all lines (default)
  • Import of :
  • : Indicates the reason why an operation does not include VAT
  • : e.g., transport, packaging
  • : Indicates when VAT becomes payable (immediate, deferred, or split payment)
  • : Required when using the field
  • Import of :
  • : indicates if the document was issued according to methods and terms established by ministerial decree pursuant to article 73 of DPR 633/72
  • and : used to indicate the progress status of work in case of deferred/progressive invoicing (procurement contracts, continuous services, or work in progress)
  • Import of main invoice data ( and )
  • Writing in chatter of and nodes
  • Import of signed electronic invoices (also base64 encoded)
  • Advanced management of Invoice Line Data:
  • Creation of article codes during import. These codes are used to uniquely identify products/services according to different coding standards. In the XML file, these codes are in the node which can contain:
  • : identifies the type of coding used
  • : the actual code value
  • Recording of discounts or surcharges, , in the invoice detail lines.
  • Import of node data (supplementary information that doesn't fit in other standard electronic invoice fields) which can contain:
  • : identifies the type of additional information being entered
  • : contains a textual value of the additional information
  • : contains a numerical value of the additional information
  • : contains a date value of the additional information
  • Import of nodes:
  • : progressive line number within the invoice
  • : indicates the type of transfer or service and can contain values such as:
  • "SC" (Discount)
  • "PR" (Prize)
  • "AB" (Allowance)
  • "AC" (Ancillary expense)
  • and : indicate the reference period of a service and are useful for continuous services or services that extend over a period of time
  • : identifier used for internal administrative/management purposes. It's a free field that can be used to insert specific references required by Public Administration or other useful references for administrative management.
  • Validation of imported bill: if the following amounts are different than the amount in the XML a message is shown in the bill:
  • total taxable amount
  • total VAT
  • total including VAT
  • Partner's data can be updated to match the data in the e-bill
  • Adds a wizard to calculate fiscal codes
  • Bulk sending of self-invoices to the SdI:
  • In the vendor bills list view, select the self-invoices (e.g. TD17, TD18 and TD19 for reverse charge) and use the "Send self-invoices to SDI" button.
  • Only confirmed self-invoices that have not been sent yet are sent, the other selected documents are skipped.
  • Each self-invoice is checked and sent as with the "Send to SDI" button of the document: if a self-invoice has errors, the reason is shown in the document or in the final notification and the other self-invoices are sent anyway.
  • Each self-invoice is saved right after being sent: if the operation is interrupted (e.g. by the server time limit), the self-invoices already sent are shown as sent in Odoo too and the remaining ones can be sent by repeating the operation.
  • At the end, a notification summarizes the self-invoices sent, the ones not sent and the skipped documents.

\<\>

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Extends Italian electronic invoicing in Odoo with XML preview/download buttons on invoices, richer import of e-invoice details (lines, summary data, stable organization, tax representative, bank data), a fiscal code calculator, and configurable import detail levels.

This module builds on Odoo's Italian e-invoicing to give accountants and consultants more control over the XML files exchanged with the Italian tax authority (SdI).

On invoices you get preview links and buttons to open the generated or imported electronic invoice XML in a new window, plus a 'Send to SDI' action for self-invoices that reports which documents were sent, skipped or failed.

When importing received e-invoices, the module reads much more of the file: invoice lines with article codes, discounts, other management data, summary VAT data, activity progress (SAL), stable organization address, related invoice, rounding, Art. 73 flag, sender and tax representative. It also fills partner data such as EORI code, professional register details, province and first/last name, and can create or update bank accounts from the file.

A setting on the company and on each partner controls the import detail level (minimum, tax only or maximum), so you can decide how many lines are created. A default product can be set per partner for imported bills.

A validation message compares the invoice totals with the amounts in the XML and warns when they differ. A wizard computes the Italian fiscal code from surname, first name, birth date, sex and birth city, using a built-in table of Italian city codes.

Extra fields appear on invoice lines (administrative reference, other management data), on companies and partners, and these values are written into the exported XML.

Depends on

accountl10n_it_accountl10n_it_edil10n_it_edi_nddpartner_firstname

Menus it adds

menu_l10n_it_edi_import_file_wizard
Models and fields (17)
  • res.company · extends an existing modell10n_edi_it_art73 (Art. 73), l10n_edi_it_admin_ref (Public Administration Reference Code), l10n_edi_it_stable_organization (Stable Organization), l10n_it_edi_import_detail_level (E-bills import detail level)
  • res.partner · extends an existing modell10n_edi_it_register (Professional Register), l10n_edi_it_admin_ref (Administrative Reference), l10n_edi_it_eori_code (EORI Code), l10n_edi_it_register_code (Register Registration Number), l10n_edi_it_register_regdate (Register Registration Date), l10n_it_edi_import_detail_level (E-bills import detail level), l10n_edi_it_register_province_id (Register Province), l10n_it_edi_ext_default_product_id (E-bills default Product), l10n_edi_it_electronic_invoice_no_contact_update (Do not update the contact from Electronic Invoice Details)
  • account.move · extends an existing modell10n_edi_it_art73 (Art. 73), l10n_it_edi_sender (Sender), l10n_it_edi_line_ids (E-Invoice Lines), l10n_it_edi_rounding (Rounding), l10n_it_edi_amount_tax (E-Invoice Tax Amount), l10n_it_edi_summary_ids (E-Invoice Summary Data), l10n_it_edi_amount_total (E-Invoice Total Amount), l10n_it_document_type_code (Document Type Code), l10n_it_edi_amount_untaxed (E-Invoice Untaxed Amount), l10n_it_edi_protocol_number, l10n_it_edi_validation_message, l10n_it_edi_ext_attachment_in_id (Imported Electronic Bill), l10n_it_edi_related_invoice_code (Related Invoice Code), l10n_it_edi_related_invoice_date (Related Invoice Date), l10n_it_edi_activity_progress_ids (E-Invoice Activity Progress), l10n_it_edi_tax_representative_id (Tax Representative), l10n_it_edi_attachment_preview_link (Preview link), l10n_it_edi_stabile_organizzazione_cap (Organization ZIP), l10n_it_edi_stabile_organizzazione_civico (Organization Street Number), l10n_it_edi_stabile_organizzazione_comune (Organization Municipality), l10n_it_edi_ext_attachment_in_preview_link (Preview link for imported Electronic Bill), l10n_it_edi_stabile_organizzazione_nazione (Organization Country), l10n_it_edi_stabile_organizzazione_indirizzo (Organization Address), l10n_it_edi_stabile_organizzazione_provincia (Organization Province)
  • ir.attachment · extends an existing model
  • account.journal · extends an existing model
  • l10n_it_edi.line · new modelqty (Quantity), uom (Unit of measure), name (Description), tax_kind (Nature), wt_amount (Tax Withholding), invoice_id (Invoice), tax_amount (VAT Rate), unit_price, line_number, total_price, service_type (Sale Provision Type), invoice_line_id (Invoice Line), period_end_date, period_start_date, l10n_it_edi_article_code_ids (Articles Code), l10n_it_edi_line_other_data_ids (Other Administrative Data), l10n_it_edi_discount_rise_price_ids (Discount and Supplement Details)
  • res.city.it.code · new modelname, notes, name_var (Name variation), province, var_date (Variation date), province_var (Province variation), cadastre_code (Belfiore cadastre code (not used anymore)), creation_date, national_code (National code), cadastre_code_var (Cadastre code variation), national_code_var (National code variation)
  • account.move.line · extends an existing modell10n_it_edi_admin_ref (Admin. ref.), l10n_it_edi_other_data_ids (Other Management Data)
  • wizard.compute.fc · new modelsex, birth_city (City of birth), birth_date (Date of birth), birth_province (Province), fiscalcode_surname (Surname), fiscalcode_firstname (First name)
  • res.config.settings · extends an existing modell10n_it_edi_import_detail_level
  • l10n_it_edi.article_code · new modelname (Code Type), code_val (Code Value), l10n_it_edi_line_id (Related E-invoice Line)
  • l10n_it_edi.summary_data · new modelrounding, tax_rate, amount_tax, invoice_id (Related Invoice), payability (VAT payability), law_reference (Law reference), amount_untaxed, incidental_charges, non_taxable_nature (Non taxable nature)
  • res.city.it.code.distinct · new modelname
  • l10n_it_edi.line_other_data · new modelname (Data Type), num_ref (Number Reference), date_ref (Date Reference), text_ref (Text Reference), move_line_id (Invoice Line), l10n_it_edi_line_id (Related E-bill Line)
  • l10n_it_edi.activity_progress · new modelinvoice_id (Related Invoice), activity_progress
  • l10n_it_edi.import_file_wizard · new modell10n_it_edi_attachment, l10n_it_edi_attachment_filename
  • l10n_it_edi.discount_rise_price · new modelname (Type), amount, invoice_id (Related Invoice), percentage, invoice_line_id (Related Invoice from line), l10n_it_edi_line_id (Related E-invoice Line)

Text generated by AI (DeepSeek) from reading the Odoo 18.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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/l10n-italy.

terminal Installation and usage

OCA documentation · Odoo 18.0

Italiano

Le uniche configurazioni disponibili sono:

  • Livello di dettaglio importazione e-fatture: in Fatturazione (o Contabilità per EE) > Configurazione > Impostazioni > Fatturazione Elettronica Italiana, valorizzare "Livello di dettaglio importazione e-fatture" per importare le fatture elettroniche senza righe, con una riga per ogni aliquota, oppure con tutte le righe (default). Questa configurazione può essere sovrascritta dal campo "Livello di dettaglio importazione e-fatture" in ogni fornitore.
  • Crea il partner se non esiste durante l'importazione: in Fatturazione (o Contabilità per EE) > Configurazione > Impostazioni > Fatturazione Elettronica Italiana, spuntare l'opzione se si vuole attivare la funzionalità per i dati dei nodi:
  • <CessionarioCommittente>
  • <CedentePrestatore>
  • <RappresentanteFiscale>
  • Prodotto predefinito fatture elettroniche fornitore: è possibile impostare un prodotto nel campo apposito del fornitore, nella scheda "Fatturazione", sezione "Fatture cliente". Durante l'importazione di livello "Massimo": questo prodotto sarà impostato nelle righe della fattura importata se nessun altro prodotto viene trovato. Durante l'importazione di livello "Aliquota fiscale": questo prodotto sarà impostato nelle righe della fattura importata.

Non sono necessarie altre configurazioni specifiche per l10n_it_edi_extension: una volta installato, le sue funzionalità sono attive e si integrano automaticamente nell'interfaccia esistente.

Tuttavia, è fondamentale capire che questo modulo è un'estensione e si basa su altri moduli preesistenti e sulla configurazione generale di Odoo per la localizzazione italiana e la fatturazione elettronica. Quindi, affinché le funzionalità di questo modulo siano utilizzabili, è necessario che siano installati e configurati i moduli dipendenti:

  • account: Il modulo base della contabilità di Odoo deve essere installato e configurato (piano dei conti, tasse, giornali contabili, ecc.).
  • l10n_it_edi: Il modulo principale per la fatturazione elettronica italiana deve essere installato e correttamente configurato. Questo include:
  • Configurazione dei dati aziendali (partita IVA, codice fiscale, regime fiscale, ecc.).
  • Configurazione dei registri contabili per l'emissione delle fatture elettroniche (indicando il formato FatturaPA/Elettronica).
  • Configurazione delle sequenze dedicate per la numerazione delle fatture elettroniche.
  • Eventuale configurazione delle credenziali SDI se si utilizza l'invio diretto tramite Odoo (se supportato dalla configurazione generale).

Nel partner è possibile abilitare il campo "Non aggiornare il contatto dai dettagli della fattura elettronica" così i dati del partner non saranno modificati in base a quanto presente in una delle loro fatture durante l'importazione.

English

The only available configurations are:

  • E-invoice import detail level: in Invoicing (or Accounting for EE) > Configuration > Settings > Italian Electronic Invoicing, set "E-invoice import detail level" to import electronic invoices without lines, with one line per tax rate, or with all lines (default). This configuration can be overridden by the "E-invoice import detail level" field in each supplier.
  • Create partner if not existing during import: in Invoicing (or Accounting for EE) > Configuration > Settings > Italian Electronic Invoicing, check this option if you want to enable the functionality for the following node data:
  • <CessionarioCommittente>
  • <CedentePrestatore>
  • <RappresentanteFiscale>
  • E-bills default product: You can set a product in the supplier's field in the "Invoicing" tab, "Customer Invoices" section. During "Maximum" level imports: this product will be set in the imported invoice lines if no other product is found. During "Tax Rate" level imports: this product will be set in the imported invoice lines.

No other specific configurations are required for l10n_it_edi_extension: once installed, its features are active and automatically integrate into the existing interface.

However, it's essential to understand that this module is an extension and relies on other pre-existing modules and Odoo's general configuration for Italian localization and electronic invoicing. Therefore, for this module's features to be usable, the dependent modules must be installed and configured:

  • account: Odoo's basic accounting module must be installed and configured (chart of accounts, taxes, journals, etc.).
  • l10n_it_edi: The main module for Italian electronic invoicing must be installed and properly configured. This includes:
  • Company data configuration (VAT number, fiscal code, tax regime, etc.).
  • Configuration of accounting journals for issuing electronic invoices (indicating FatturaPA/Electronic format).
  • Configuration of dedicated sequences for electronic invoice numbering.
  • Optional SDI credentials configuration if direct sending through Odoo is used (if supported by general configuration).

In the partner, you can enable "Do not update the contact from Electronic Invoice Details" so that the partner's data are not modified with what is found in one of their imported e-bill.

No verified information in OCA: Installation, Usage.

info

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.