Vai al contenuto

Formato XML della fattura elettronica: struttura, nome file e firma

La fattura elettronica è un file XML con una struttura precisa, un nome codificato e, in alcuni casi, una firma digitale. Ecco le regole da conoscere per farlo accettare allo SdI al primo invio.

Aggiornata il 01/11/2026

Il formato FatturaPA

Il tracciato ufficiale della fattura elettronica italiana si chiama FatturaPA, è pubblicato dall'Agenzia delle Entrate con il relativo schema XSD ed è lo stesso sia per le fatture verso la Pubblica Amministrazione sia per quelle tra privati. La versione del tracciato è la 1.2.x; quello che cambia è il valore dell'attributo versione dell'elemento radice:

ValoreUsoCodice destinatario
FPR12Fatture tra privati (B2B e B2C)7 caratteri
FPA12Fatture verso la Pubblica Amministrazione6 caratteri (codice univoco ufficio)

Lo stesso valore va ripetuto nel campo FormatoTrasmissione dei dati di trasmissione. Un'incoerenza tra formato e lunghezza del codice destinatario causa lo scarto 00428.

La struttura del file

Il file ha un elemento radice FatturaElettronica che contiene due blocchi principali:

FatturaElettronicaHeader (intestazione)

  • DatiTrasmissione: chi trasmette il file, il progressivo di invio, il formato, il codice destinatario o la PEC del cliente;
  • CedentePrestatore: i dati di chi emette la fattura (partita IVA, anagrafica, sede, regime fiscale);
  • CessionarioCommittente: i dati del cliente;
  • blocchi facoltativi come il rappresentante fiscale o il terzo intermediario che emette per conto del fornitore.

FatturaElettronicaBody (corpo)

  • DatiGenerali: tipo di documento (ad esempio TD01 fattura, TD04 nota di credito), divisa, data, numero, eventuali documenti collegati;
  • DatiBeniServizi: le righe di dettaglio e il riepilogo per aliquota IVA;
  • DatiPagamento: condizioni, modalità e scadenze;
  • Allegati: eventuali file allegati, codificati in base64.

Un file può contenere più corpi con la stessa intestazione: in quel caso si parla di lotto di fatture verso lo stesso cliente.

Uno scheletro di esempio

Questo è solo lo scheletro di una fattura tra privati, per mostrare dove si trovano i dati principali. Il file reale contiene molti altri campi obbligatori, che il tuo gestionale compila in automatico.

<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPR12"
    xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2">
  <FatturaElettronicaHeader>
    <DatiTrasmissione>
      <IdTrasmittente><IdPaese>IT</IdPaese><IdCodice>01234567890</IdCodice></IdTrasmittente>
      <ProgressivoInvio>00001</ProgressivoInvio>
      <FormatoTrasmissione>FPR12</FormatoTrasmissione>
      <CodiceDestinatario>ABC1234</CodiceDestinatario>
    </DatiTrasmissione>
    <CedentePrestatore>...</CedentePrestatore>
    <CessionarioCommittente>...</CessionarioCommittente>
  </FatturaElettronicaHeader>
  <FatturaElettronicaBody>
    <DatiGenerali>
      <DatiGeneraliDocumento>
        <TipoDocumento>TD01</TipoDocumento>
        <Divisa>EUR</Divisa>
        <Data>2026-11-01</Data>
        <Numero>1</Numero>
      </DatiGeneraliDocumento>
    </DatiGenerali>
    <DatiBeniServizi>...</DatiBeniServizi>
  </FatturaElettronicaBody>
</p:FatturaElettronica>

Il nome del file

Il nome del file segue una regola fissa:

IT01234567890_00001.xml

  • codice paese del trasmittente (IT);
  • identificativo fiscale del trasmittente: partita IVA o codice fiscale di chi trasmette il file (che può essere diverso dal fornitore, ad esempio un intermediario);
  • un trattino basso _;
  • un progressivo univoco di 5 caratteri alfanumerici, che non deve mai ripetersi;
  • l'estensione .xml, oppure .xml.p7m se il file è firmato in formato CAdES.

Un nome non conforme produce lo scarto 00001, un nome già usato lo scarto 00002. Trovi tutti i codici nella guida alla fattura scartata.

Firma digitale e file P7M

  • Verso la Pubblica Amministrazione la firma digitale è obbligatoria.
  • Tra privati è facoltativa.

Sono ammessi due tipi di firma:

  • CAdES: il file XML viene "imbustato" in un file .xml.p7m, che contiene sia la fattura sia la firma;
  • XAdES: la firma è inserita dentro il file XML, che mantiene l'estensione .xml.

Quando ricevi una fattura firmata P7M, per leggerla serve estrarre l'XML dalla busta. Su Fattura-Elettronica.cloud lo facciamo noi: nel portale e nell'inoltro al tuo gestionale ricevi sia il file originale sia l'XML già estratto (vedi ricevere fatture elettroniche).

Dimensioni e allegati

Il singolo file inviato allo SdI non può superare i 5 MB (errore 00003). Gli allegati, come un PDF di cortesia o un documento di trasporto, sono inclusi nel file in base64, quindi pesano circa un terzo in più del file originale: meglio comprimerli o evitarli quando non servono.

Il file deve essere codificato in UTF-8 ed evitare caratteri non ammessi dallo schema.

Inviare il file

Una volta generato il file puoi inviarlo allo SdI in due modi con Fattura-Elettronica.cloud:

  • dal portale: carichi il file XML o P7M e ricevi subito l'identificativo SdI;
  • via API: il tuo gestionale invia il file XML con una chiamata HTTP (fino a 2 MB per file) e riceve l'esito in automatico. Esempi pronti in PHP, Python, Java e altri linguaggi nella documentazione API.

Fattura-Elettronica.cloud non crea le fatture: le generi con il tuo gestionale o programma di fatturazione, e noi ci occupiamo di trasmetterle, seguirne le notifiche e ricevere quelle dei fornitori.

Hai già i file XML?

Inviali allo SdI dal portale o dal gestionale via API. Prova gratuita di 30 giorni.