Fattura firmata in busta p7m: come aprirla ed estrarre l'XML originale
Il fornitore ti manda un .xml.p7m e il gestionale non lo accetta? Il file si apre nel browser e contiene l'XML identico a quello partito verso lo SdI.
Il file .xml.p7m che il fornitore ti manda è una fattura elettronica in formato FatturaPA racchiusa in una firma digitale: l’XML non è stato trasformato, è stato inserito in una busta di firma. Qui trovi cosa contiene il file, perché molti programmi non lo aprono e come recuperare l’XML originale senza installare nulla.
Che cos’è una fattura XML.P7M
Le specifiche tecniche dell’Agenzia delle Entrate sulla fatturazione elettronica tra privati (Allegato A, paragrafi 1.2.1 e 1.2.2) regolano così il file trasmesso allo SdI: la firma elettronica è facoltativa, ma quando viene apposta può usare due formati. Il CAdES-BES crea una busta CMS che avvolge il documento, e da qui nasce l’estensione doppia .xml.p7m; l’XAdES-BES, invece, inserisce il blocco di firma dentro l’XML e il file resta .xml. La firma dev’essere basata su un certificato di firma elettronica qualificata rilasciato da un certificatore accreditato, presente nell’elenco pubblico gestito dall’Agenzia per l’Italia Digitale.
Il nome del file segue la stessa logica: codice paese in ISO 3166-1 alpha-2, il codice fiscale del soggetto, underscore e un progressivo alfanumerico di massimo cinque caratteri. Un nome come IT99999999999_00002.xml.p7m non è un formato strano: è l’esempio che le specifiche stesse riportano per una fattura firmata CAdES.
Dentro la busta trovi quattro cose: il documento — cioè l’XML della fattura, esattamente come è stato generato — il valore della firma, il certificato di chi ha firmato e il riferimento temporale, a volte accompagnato dalla marca di un’autorità di timestamp. Niente del contenuto viene riscritto per firmarlo: la firma si calcola sul documento, lo avvolge e lo lascia intatto.
Perché il gestionale o il computer non lo leggono
Gli intoppi più frequenti sono tre, tutti con la stessa causa: l’estensione più corta non descrive il contenuto del file.
| Sintomo | Causa reale | Come si risolve |
|---|---|---|
| Il gestionale rifiuta l’import | si aspetta un .xml pulito, riceve una busta binaria CMS |
estrai l’XML originale e importa quello |
| Doppio clic: Windows o Mac non sanno con che app aprirlo | nessun software nativo legge le buste CAdES | apri il file nel browser, da qualsiasi dispositivo |
Il file si chiama fattura.txt o non ha estensione |
la PEC o un salvataggio hanno modificato il nome | l’apertura legge i byte, non il nome: funziona comunque |
Da sapere anche sui lotti: più fatture possono arrivare in un unico .zip, ma il Sistema di Interscambio inoltra al destinatario i file contenuti, non l’archivio compresso. E la firma, quando c’è, è apposta su ogni singolo XML, mai sul .zip.
E se il file è solo .xml
Non è un’anomalia: le specifiche ammettono che le fatture tra privati possano essere trasmesse anche senza firma elettronica, e quando la firma c’è ma è XAdES-BES il file continua a chiamarsi .xml, perché il blocco di firma sta dentro il tracciato anziché intorno (il formato XAdES ha una pagina dedicata). Quindi l’assenza di .p7m in coda non indica un file incompleto o una fattura irregolare.
Il caso opposto, molto frequente: il nome del file è stato modificato da un salvataggio o da un client di posta. Qui vale la regola dell’apertura: i byte contano, l’estensione no. Un file firmato CAdES salvato come fattura.txt, o persino nel suo testo codificato base64, viene riconosciuto comunque; al massimo, in fase di salvataggio, gli ridarai tu il nome .xml.p7m.
Come estrarre l’XML originale dalla busta
Non è una conversione: niente viene trasformato. La busta viene aperta e l’XML che contiene esce identico a com’è partito. Trascina il file .xml.p7m nell’area in alto: la struttura CMS viene riconosciuta e vedi la fattura in chiaro, con cedente, cessionario, righe, aliquote e totale; da lì scarichi l’XML originale (qui c’è la vista di lettura dedicata). L’anteprima della prima pagina e il pannello dei firmatari sono gratuiti con l’account; il documento completo e i download si sbloccano a pagamento, file per file o con l’abbonamento Pro. Se il file porta più firme, l’apertura riconosce anche le buste annidate ed elenca ogni firmatario.
Regola pratica: se il commercialista o il software di contabilità chiedono “l’XML”, dai loro il file estratto. Se chiedono “l’originale”, quello è la busta .xml.p7m, non l’XML che ne è stato estratto.
Cosa si legge sulla firma dentro il file
Il pannello dei firmatari mostra i dati contenuti nella busta: nome del firmatario, organizzazione, autorità di certificazione che ha emesso il certificato, periodo di validità , ora di firma e, se presente, la marca temporale di un TSA. Il ricalcolo dell’impronta del contenuto e del valore della firma avviene qui nel browser.
Due precisazioni: questa pagina non confronta il certificato con gli elenchi di fiducia e non ne verifica la revoca, quindi non può esprimere un esito di “firma valida”. E il file che hai in mano non dice se la fattura è stata accettata dallo SdI o scartata: lo certificano solo le ricevute del Sistema di Interscambio. Per quel livello di controllo c’è la guida sulla verifica della fattura elettronica, mentre il funzionamento della firma CAdES ha una pagina dedicata.
Busta, XML o PDF: cosa conservare
| File | Cos’è davvero | Quando ti serve |
|---|---|---|
.xml.p7m |
l’originale firmato che hai ricevuto | da conservare sempre: è lui il documento |
.xml estratto |
gli stessi byte della busta, in chiaro | import nel gestionale, analisi del commercialista |
| PDF generato | una copia di cortesia impaginata | lettura e stampa; non ha alcun valore fiscale |
La copia PDF che ottieni serve a leggere, non a certificare. Se vuoi capire come sono distribuiti i dati tra intestazione e corpo del file che hai estratto, la struttura del tracciato FatturaPA è spiegata nella guida sul formato XML della fattura elettronica.
Apri la busta, scarica l’XML
Seleziona la tua fattura .xml.p7m nell’area in alto: la lettura avviene sul tuo dispositivo, il file non viene caricato da nessuna parte, e con l’account gratuito vedi subito firmatari e anteprima mentre il documento completo resta a pagamento. Se dopo l’apertura vuoi controllare se la fattura ha superato i controlli dello SdI, prosegui con la guida sulla verifica.
Domande frequenti
Come posso convertire un file P7M in formato XML?
Non serve nessuna conversione: l'XML è già dentro, byte per byte, così come è partito dal fornitore. Nell'area in alto si apre la busta CAdES e si scarica il file XML originale dell'intera fattura; la fattura firmata resta comunque l'.xml.p7m da conservare.
Come aprire un file xml p7m gratis?
L'apertura del file e il riconoscimento della struttura avvengono nel browser sul tuo dispositivo senza login. Con un account gratuito, ottenuto con Google o con email e password, vedi l'anteprima della prima pagina e i dati dei firmatari. Il documento completo e il download sono a pagamento.
Che differenza c'è tra fattura.xml e fattura.xml.p7m?
Stesso contenuto XML, diverso involucro: il primo può essere privo di firma oppure firmato XAdES, che vive dentro il file; il secondo è firmato CAdES-BES, una busta che avvolge l'XML senza modificarlo. Le specifiche tecniche dell'Agenzia delle Entrate ammettono entrambi i formati.
Perché il mio gestionale non legge l'.xml.p7m?
Il gestionale si aspetta un file .xml e si ferma davanti alla doppia estensione o ai byte binari della busta CMS. Nella maggior parte dei casi basta estrarre l'XML originale e importare quello; la busta firmata va archiviata accanto, non al suo posto.
Il file estratto vale come l'originale che ho ricevuto?
L'estrazione recupera esattamente i byte che la firma racchiude, quindi il contenuto non cambia. Il pezzo con cui dimostrare l'operazione resta però la busta firmata: conserva sempre anche l'.xml.p7m ricevuto, non solo l'XML o il PDF.
Trascina qui il tuo file .p7m / .p7s / .tsd / FatturaPA
Apri il tuo file