Com'è fatta una fattura elettronica XML: Header, Body e nome del file
Due macroblocchi, uno schema ufficiale e un nome di file obbligatorio: la mappa del tracciato FatturaPA per capire cosa c'è dentro la tua fattura.
Una fattura elettronica formato XML è un file di dati, non un documento da guardare: i campi che ti aspetti — fornitore, cliente, righe, IVA, totale — sono scritti in etichette chiamate tag, secondo un modello preciso che ha un nome, un formato di file e regole di denominazione. Il modello si chiama FatturaPA, lo definiscono le specifiche tecniche dell’Agenzia delle Entrate: conoscerne la struttura aiuta a capire cosa contiene il file e perché da solo non si legge come una fattura.
Fattura elettronica formato XML: il tracciato FatturaPA
Tutto nasce dall’Allegato A delle specifiche tecniche dell’Agenzia delle Entrate, l’edizione 1.9.1 aggiornata al 31 marzo 2026 e utilizzabile dal 15 maggio 2026, che contiene gli schemi XSD con cui il Sistema di Interscambio verifica la conformità di ogni file prima di inoltrarlo: schema della fattura ordinaria, identificato come VFPR12, e della semplificata, VFSM10. Se il tuo gestionale produce file non conformi allo schema in vigore, lo SdI li rifiuta con il codice 00200. Le specifiche si aggiornano a cicli: online circola ancora documentazione di edizioni precedenti, ma per i controlli fa fede solo l’edizione pubblicata sul sito dell’Agenzia.
Il file vero e proprio comincia con l’elemento radice FatturaElettronica, che porta l’attributo obbligatorio versione: FPR12 per le fatture tra privati, FPA12 per quelle verso la pubblica amministrazione. Dentro la radice la struttura è sempre la stessa: un FatturaElettronicaHeader, obbligatorio e una sola volta, uno o più FatturaElettronicaBody — il plurale serve perché, dicono le specifiche, più fatture possono essere trasmesse nello stesso file come «lotto» — e l’elemento opzionale ds:Signature, che ospita la firma XAdES quando è apposta dentro l’XML. Per leggere questi tag uno per uno, dal browser o da un editor, puoi seguire i modi descritti nella guida su come aprire un file XML.
L’Header: sei blocchi che dicono chi e dove
L’Intestazione non contiene numeri di fattura: descrive il trasporto del documento.
| Blocco | Obbligatorio | Cosa contiene |
|---|---|---|
| DatiTrasmissione | sempre | codice fiscale e stato del trasmittente, progressivo del file, formato (FPR12), codice destinatario di 7 caratteri, eventuale PEC del destinatario |
| CedentePrestatore | sempre | partita IVA, anagrafica, sede, iscrizione al Registro Imprese per le società, regime fiscale (RF01 ordinario, RF19 forfettario…) |
| RappresentanteFiscale | solo se serve | i dati di chi risponde fiscalmente per un soggetto estero |
| CessionarioCommittente | sempre | partita IVA o codice fiscale — deve esserci almeno uno dei due, o il file è scartato —, anagrafica e sede |
| TerzoIntermediarioOSoggettoEmittente | solo se serve | chi ha emesso la fattura per conto del cedente o di un altro soggetto incaricato |
| SoggettoEmittente | solo se serve | segnala che la fattura è emessa dal cessionario/committente o da un terzo, non dal cedente |
Tre campi dell’Header determinano il recapito della fattura: CodiceDestinatario, il canale telematico su cui il destinatario ha chiesto di ricevere le fatture; il valore 0000000, che con PECDestinatario valorizzato manda tutto sulla PEC del cliente, e senza PEC disponibile deposita la fattura nell’area riservata del portale; e il blocco IscrizioneREA, che per le società soggette a iscrizione nel registro imprese è obbligatorio.
Il Body: dove stanno i dati contabili
Ogni corpo di fattura ripete la stessa struttura: DatiGenerali, che apre con DatiGeneraliDocumento — tipo documento (TD01 fattura, TD04 nota di credito, TD02 acconto), divisa, Data, Numero, eventuale totale — e può agganciare documenti correlati come DDT e ordini. Poi DatiBeniServizi: una sequenza di DettaglioLinee, una per riga, con descrizione, quantità, prezzi e AliquotaIVA, seguita dai DatiRiepilogo, uno per ogni aliquota applicata; se manca il riepilogo di un’aliquota usata nelle righe, il file viene scartato. Quindi, se previsti, DatiPagamento (condizioni TP01-TP03 e modalità come MP05 per il bonifico, con IBAN e scadenze), DatiVeicoli per i mezzi di trasporto nuovi e gli Allegati, cioè documenti binari incapsulati nel file.
Una regola delle specifiche spiega perché due fatture simili producano XML diversi: i campi che non valorizzi non devono comparire, tag vuoti inclusi. Un elemento come <Causale></Causale> non va inserito per riempimento: o c’è, con un valore, o non è presente.
Esempio di fattura elettronica XML commentato
Sotto, un estratto minimale con dati inventati: i nomi degli elementi e la loro sequenza seguono il tracciato ufficiale. Non serve decifrarlo a mano: per la lettura umana c’è la vista in chiaro del visualizzatore, mentre la copia stampabile la costruisci come spiegato nella guida su fattura XML in PDF.
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPR12"
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>01234567890</IdCodice> <!-- codice fiscale di chi trasmette -->
</IdTrasmittente>
<ProgressivoInvio>000A1</ProgressivoInvio><!-- univoco per il trasmittente -->
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>ABCDE1F</CodiceDestinatario> <!-- canale del cliente -->
<ContattiTrasmittente>
<Telefono>0655551234</Telefono>
<Email>ufficio@fornitorefantastico.it</Email>
</ContattiTrasmittente>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>01234567890</IdCodice> <!-- partita IVA del fornitore -->
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>Fornitore Fantastico S.r.l.</Denominazione>
</Anagrafica>
<RegimeFiscale>RF01</RegimeFiscale> <!-- regime ordinario -->
</DatiAnagrafici>
<Sede>
<Indirizzo>Via degli Esempi 42</Indirizzo>
<CAP>00100</CAP>
<Comune>Roma</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
<IscrizioneREA>
<Ufficio>RM</Ufficio>
<NumeroREA>1234567</NumeroREA>
<CapitaleSociale>50000.00</CapitaleSociale>
<SocioUnico>SU</SocioUnico> <!-- S.r.l. a socio unico -->
<StatoLiquidazione>LN</StatoLiquidazione>
</IscrizioneREA>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<CodiceFiscale>VRDGLI80R01H501X</CodiceFiscale>
<Anagrafica>
<Nome>Giulia</Nome>
<Cognome>Verdi</Cognome>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>Corso Fittizio 7</Indirizzo>
<CAP>20121</CAP>
<Comune>Milano</Comune>
<Provincia>MI</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento> <!-- TD01 = fattura -->
<Divisa>EUR</Divisa>
<Data>2026-10-03</Data>
<Numero>AR42</Numero>
<ImportoTotaleDocumento>1220.00</ImportoTotaleDocumento>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Manutenzione periodica impianto</Descrizione>
<Quantita>1.00</Quantita>
<UnitaMisura>giorno</UnitaMisura>
<PrezzoUnitario>1000.00</PrezzoUnitario>
<PrezzoTotale>1000.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA> <!-- percento: 22.00, non 0.22 -->
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>1000.00</ImponibileImporto>
<Imposta>220.00</Imposta>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento><!-- pagamento completo -->
<DettaglioPagamento>
<ModalitaPagamento>MP05</ModalitaPagamento> <!-- bonifico -->
<DataScadenzaPagamento>2026-11-30</DataScadenzaPagamento>
<ImportoPagamento>1220.00</ImportoPagamento>
<IBAN>IT64X0123456789000000123456</IBAN>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>
</p:FatturaElettronica>
Il nome del file è parte del formato
Prima dell’XML c’è il nome, e anche quello segue un formato obbligatorio: codice paese in ISO 3166-1 alpha-2, il codice fiscale del soggetto, underscore e un progressivo alfanumerico di massimo cinque caratteri. IT01234567890_FPR02.xml.p7m rispetta quella sintassi; la fattura, se firmata CAdES, chiude con .xml.p7m, se non firmata o firmata XAdES resta .xml. Le fatture di un intero mese possono essere trasmesse in un .zip con lo stesso tipo di nome, e il singolo file non può superare i 5 MB. L’identificativo fiscale nel nome, però, non è soggetto a controlli di validità o coerenza con i dati della fattura — lo dicono le specifiche: un nome inventato non genera scarto, ma complica l’archiviazione a chi lo riceve. Quando invece il nome non rispetta la sintassi o ripete quello di un file già trasmesso, il rifiuto arriva tra i primi controlli, con i codici 00001 e 00002: li trovi descritti nella guida ai controlli dello SdI.
Apri il file e vedi la struttura
Il modo più rapido di verificare di aver capito la struttura: selezionare la tua fattura .xml — o, se è firmata CAdES, l’.xml.p7m — nell’area in alto della pagina. L’apertura riconosce il tracciato, te lo mostra in chiaro come una pagina di fattura e ti lascia scaricare l’originale; l’anteprima e i dati della firma sono gratuiti con l’account, il documento completo è a pagamento, e ogni byte resta sul tuo dispositivo.
Domande frequenti
Cosa vuol dire fattura XML?
Che la fattura non è una foto o un PDF, ma un file di dati strutturati: gli stessi campi che leggeresti in un documento sono scritti in tag, secondo il tracciato definito dall'Agenzia delle Entrate. È il formato con cui la fattura elettronica viene trasmessa e registrata dal Sistema di Interscambio.
Che cos'è il tracciato FatturaPA?
È il formato ufficiale della fattura elettronica italiana: un documento XML delimitato dall'elemento radice FatturaElettronica, con un'Intestazione che descrive chi trasmette, chi emette e chi riceve, e uno o più corpi con righe, IVA, pagamenti e allegati. Definito dalle specifiche tecniche dell'Agenzia delle Entrate.
Quali sono i campi obbligatori in una fattura elettronica XML?
Nell'Header: identificativo del trasmittente, formato di trasmissione, codice destinatario, i dati anagrafici e la sede di cedente e cessionario, con almeno un identificativo fiscale per il ricevente. Nel Body: tipo documento, data, numero, le righe dei beni o servizi e il riepilogo per ogni aliquota usata.
Come si legge un file XML della fattura elettronica?
Puoi aprire il file con un editor e vedrai una colonna di tag senza impaginazione: i dati ci sono, la formattazione no. Per una lettura umana serve qualcosa che conosca il tracciato: la vista in chiaro di un visualizzatore FatturaPA, o il tuo gestionale per l'import.
Quale versione del tracciato è in vigore?
Le specifiche tecniche evolvono per edizioni successive. Sul portale dell'Agenzia delle Entrate risulta pubblicata la versione 1.9.1, aggiornata al 31 marzo 2026 e utilizzabile dal 15 maggio 2026, con gli schemi XSD per fattura ordinaria e semplificata.
Il nome del file fa parte della fattura elettronica?
Per i controlli sì. Il Sistema di Interscambio scarta i file il cui nome non rispetta la sintassi obbligatoria o è già stato usato in precedenza, anche se il contenuto XML fosse perfetto. Estensione .xml o .xml.p7m a seconda del formato di firma.
Trascina qui il tuo file .p7m / .p7s / .tsd / FatturaPA
Apri il tuo file