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