LIPE (liquidazioni IVA periodiche), XML e sigillo

L’adempimento

L’adempimento relativo alla liquidazione IVA periodca (LIPE) richiede la predisposizione di un file in formato XML contenente i dati da trasmettere.

In questo articolo si vuole approfondire la composizione del file XML generato, e la sua trasformazione in file sigillato, secondo lo standard XAdES (vedi nostro precedente articolo).

Il file XML

Il file XML contiene i dati relativi al periodo comunicato racchiusi in appositi tag specifici. Ad esempio, un file potrebbe essere il seguente

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<iv:Fornitura xmlns:iv="urn:www.agenziaentrate.gov.it:specificheTecniche:sco:ivp" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
 <iv:Intestazione>
 <iv:CodiceFornitura>IVP17</iv:CodiceFornitura>
 </iv:Intestazione>
 <iv:Comunicazione identificativo="00001">
 <iv:Frontespizio>
 <iv:CodiceFiscale>XXXXXXXXXXXXXXXX</iv:CodiceFiscale>
 <iv:AnnoImposta>2017</iv:AnnoImposta>
 <iv:PartitaIVA>XXXXXXXXXXX</iv:PartitaIVA>
 <iv:FirmaDichiarazione>1</iv:FirmaDichiarazione>
 <iv:IdentificativoProdSoftware>XXXXXXXX</iv:IdentificativoProdSoftware>
 </iv:Frontespizio>
 <iv:DatiContabili>
 <iv:Modulo>
 <iv:Trimestre>5</iv:Trimestre>
 <iv:TotaleOperazioniAttive>XXXX,XX</iv:TotaleOperazioniAttive>
 <iv:TotaleOperazioniPassive>XXXX,XX</iv:TotaleOperazioniPassive>
 <iv:IvaEsigibile>XXXX,XX</iv:IvaEsigibile>
 <iv:IvaDetratta>XXX,XX</iv:IvaDetratta>
 <iv:IvaDovuta>XXXX,XX</iv:IvaDovuta>
 <iv:Acconto>XX,XX</iv:Acconto>
 </iv:Modulo>
 </iv:DatiContabili>
 </iv:Comunicazione>
</iv:Fornitura>

i dati reali sono stati offuscati con delle X.

Nei files XML i “tag” definiscono gli elementi di struttura. Sono delimitati da parentesi angolari, quello che inizia con / chiude l’elemento.

Nell’esempio si può notare che le direttive XML vengono precedute da “iv:”, che è il namespace xml definito nella seconda riga “xmlns:iv=”.

Così è facile capire che siamo in presenza di una Fornitura, composta da:

  • una <iv:Intestazione>
    • che contiene il <iv:CodiceFornitura>IPV17
  • una sola <iv:Comunicazione>, con identificativo 00001
    • composta da un <iv:Frontespizio>, che a sua volta contiene vari dati
    • una parte di <iv:DatiContabili>
      • per il <iv:Trimestre> 5
      • con un <iv:TotaleOperazioniAttive>
      • con un <iv:TotaleOperazioniPassive>
      • un importo di <iv:IvaEsigibile>
      • un importo di <iv:IvaDetratta>
      • un importo di <iv:IvaDovuta>
      • l'<iv:Acconto>

A prescindere dallo specifico contenuto, si nota che la struttura non contiene dati di firma.

La prima fase operativa, una volta collegati al sito dell’Agenzia delle Entrate, area Fatture e Corrispettivi, alla funzione di comunicazione dei dati delle liquidazioni periodiche IVA, consiste nel controllo della validità formale di questo file.

Il caricamento del file XML e la sua validazione non fa altro che verificare la conformità del file stesso al namespace XML come sopra definito.

Se la prima fase si conclude senza errori, si può passare alla successiva. Si fa notare che fino a questo punto NON sono ancora state effettuate modifiche al file XML generato dall’utente.

Passiamo alla fase successiva.

Apposizione del sigillo

Per inviare il file l’Agenzia delle Entrate offre il servizio di sigillo elettronico. Il sigillo è una versione di firma elettronica avanzata, impropriamente si può ad esso pensare come ad una sorta di firma digitale delle persone giuridiche.

E’ interessante notare che in questo caso l’Agenzia utilizza il formato XAdES, ovvero la firma digitale nativa del formato XML. Dopo aver caricato il file (controllato, ma è sempre lo stesso file, in questa situazione) si chiede l’elaborazione del file sigillato.

L’elaborazione produce un file con estensione .XML (e non .p7m, come per altre applicazioni) il cui nome viene leggermente modificato, acquisendo un progressivo di elaborazione, ma viene mantenuta l’estensione .XML.

(ad esempio, il file di partenza non sigillato potrebbe essere nominato in questo modo: CODICEFISCALE_LI_20175.XML mentre il file sigillato potrebbe diventare CODICEFISCALE_LI_X0004.XML).

Il file “sigillato” si distingue per l’apposizione, per l’appunto, del sigillo digitale, che va a modificare la struttura di partenza del file XML.

Aprendo il file medesimo, si nota la firma, apposta subito dopo il tag di chiusura della direttiva comunicazione (</iv:Comunicazione>):

<ds:Signature Id="Signature1"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference Id="reference-document" URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
<XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">/descendant::ds:Signature</XPath>
</ds:Transform></ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>uWi6V69pU5cawlp9g0ZX593GXqrZ+F0MNtGCXaS7hXM=</ds:DigestValue>
</ds:Reference><ds:Reference Id="reference-signedpropeties" Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties_1">
 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>xxxxxxxxxxxxx=</ds:DigestValue>
</ds:Reference><ds:Reference Id="reference-keyinfo" URI="#KeyInfoId">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
 <ds:DigestValue>xxxxxxxxxxxxxxxxxxxxxxxx=</ds:DigestValue>
</ds:Reference></ds:SignedInfo><ds:SignatureValue Id="SignatureValue1">xxxxxxxxxxxxxxxxxxxxxxxxxxx=
</ds:SignatureValue><ds:KeyInfo Id="KeyInfoId"><ds:X509Data><ds:X509Certificate>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=</ds:X509Certificate>
</ds:X509Data></ds:KeyInfo><ds:Object><xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature1">
<xades:SignedProperties Id="SignedProperties_1"><xades:SignedSignatureProperties><xades:SigningTime>2018-02-25T10:13:04Z</xades:SigningTime></xades:SignedSignatureProperties>
</xades:SignedProperties>
</xades:QualifyingProperties>
</ds:Object>
</ds:Signature>

i dati di cifratura sono stati sotituiti con delle x, ma si nota il tax <xades:…> che suggerisce il metodo di firma.

Il file con sigillo digitale è pertanto un file firmato a tutti gli effetti, che mantiene l’estensione .XML in quanto firmato direttamente al suo interno.

Questo è ovviamente il file che va inviato all’Amministrazione.