Una LiPE a credito: il formato XML campo per campo
30 marzo 2026

Nel precedente articolo sulla LiPE ho descritto il quadro VP campo per campo. Questa volta partiamo dall'altra direzione: un file XML reale, per una situazione sempre a credito, e analizziamo quello che il formato rivela.
Questo è il file che viene trasmesso telematicamente all'Agenzia delle Entrate.
La struttura esterna
<?xml version="1.0" encoding="UTF-8"?>
<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>IVP18</iv:CodiceFornitura>
<iv:IdSistema>RSSMRA80A01H501U</iv:IdSistema>
</iv:Intestazione>
<iv:Comunicazione identificativo="00001">
...
</iv:Comunicazione>
</iv:Fornitura>
Il namespace radice è urn:www.agenziaentrate.gov.it:specificheTecniche:sco:ivp — la firma del formato LiPE, analoga al namespace FatturaPA. Il secondo namespace, xmlns:ds con il riferimento a XMLDSig del W3C, è lì per la firma digitale: anche questo file può essere firmato elettronicamente, anche se la trasmissione via portale AdE usa un proprio sistema di sigillatura.
CodiceFornitura: IVP18 identifica il tipo di invio. IdSistema è il codice fiscale del soggetto che trasmette — in questo caso coincide con il dichiarante, ma potrebbe essere un intermediario.
Il tag <iv:Comunicazione> ha un attributo identificativo="00001" che numera la comunicazione all'interno della fornitura. Una fornitura può contenere più comunicazioni, ma nella pratica quasi sempre ne contiene una sola.
Il frontespizio
<iv:Frontespizio>
<iv:CodiceFiscale>RSSMRA80A01H501U</iv:CodiceFiscale>
<iv:AnnoImposta>2026</iv:AnnoImposta>
<iv:PartitaIVA>12345678901</iv:PartitaIVA>
<iv:FirmaDichiarazione>1</iv:FirmaDichiarazione>
<iv:IdentificativoProdSoftware>SOFTWARE GESTIONALE</iv:IdentificativoProdSoftware>
</iv:Frontespizio>
AnnoImposta è l'anno di riferimento, non l'anno di invio. Per il primo trimestre 2026, si invia entro maggio 2026 ma si dichiara 2026.
FirmaDichiarazione: 1 significa che il dichiarante e il soggetto cui si riferisce la comunicazione coincidono. Se fosse un intermediario a trasmettere per conto terzi, il valore sarebbe diverso.
IdentificativoProdSoftware è il nome del software usato per generare il file. Non ha effetti sulla validazione ma è tracciato dall'AdE per statistiche e debug.
I dati contabili: tre moduli
Questo file ha tre moduli, uno per ogni mese del primo trimestre. Tre moduli significano che il soggetto è un liquidatore mensile — volume d'affari sopra soglia — non trimestrale. Un trimestrale avrebbe un solo modulo.
Modulo 1 — Gennaio
<iv:Modulo>
<iv:NumeroModulo>1</iv:NumeroModulo>
<iv:Mese>1</iv:Mese>
<iv:TotaleOperazioniAttive>106,00</iv:TotaleOperazioniAttive>
<iv:TotaleOperazioniPassive>290,48</iv:TotaleOperazioniPassive>
<iv:IvaEsigibile>60,11</iv:IvaEsigibile>
<iv:IvaDetratta>63,90</iv:IvaDetratta>
<iv:IvaCredito>3,79</iv:IvaCredito>
<iv:CreditoAnnoPrecedente>590,21</iv:CreditoAnnoPrecedente>
<iv:ImportoACredito>594,00</iv:ImportoACredito>
</iv:Modulo>
La prima cosa da notare: il campo VP6 non ha un nome fisso. Nel modello cartaceo è "IVA dovuta o a credito" con due colonne. Nell'XML diventa un tag condizionale:
- Se l'IVA esigibile supera quella detratta →
<iv:IvaDovuta> - Se l'IVA detratta supera quella esigibile →
<iv:IvaCredito>
Qui IvaEsigibile (60,11) < IvaDetratta (63,90), quindi appare <iv:IvaCredito> con il valore 3,79. Il tag IvaDovuta non esiste nel file — non è presente con valore zero, è assente. La presenza o assenza del tag è essa stessa informazione semantica.
CreditoAnnoPrecedente è VP9 — il credito residuo dalla dichiarazione annuale IVA dell'anno precedente. Questo campo appare solo nel primo modulo dell'anno. Dal secondo modulo in poi il riporto avviene tramite CreditoPeriodoPrecedente (VP8). Ha senso: il credito dell'anno precedente "entra" una volta sola, all'inizio dell'anno.
ImportoACredito (VP14 col.2) = 3,79 + 590,21 = 594,00 ✓
Anche qui, il tag finale è condizionale. Se il risultato fosse a debito, comparirebbe <iv:ImportoADebito>. In tutta la comunicazione il tag ImportoADebito non appare mai.
Modulo 2 — Febbraio
<iv:Modulo>
<iv:NumeroModulo>2</iv:NumeroModulo>
<iv:Mese>2</iv:Mese>
<iv:TotaleOperazioniAttive>150,00</iv:TotaleOperazioniAttive>
<iv:TotaleOperazioniPassive>47,19</iv:TotaleOperazioniPassive>
<iv:IvaEsigibile>37,90</iv:IvaEsigibile>
<iv:IvaDetratta>10,38</iv:IvaDetratta>
<iv:IvaDovuta>27,52</iv:IvaDovuta>
<iv:CreditoPeriodoPrecedente>594,00</iv:CreditoPeriodoPrecedente>
<iv:ImportoACredito>566,48</iv:ImportoACredito>
</iv:Modulo>
Febbraio è diverso: IvaEsigibile (37,90) > IvaDetratta (10,38), quindi appare <iv:IvaDovuta> con 27,52. Il mese ha un debito lordo.
Ma il risultato finale è ancora a credito: il credito di 594,00 portato da gennaio è abbondante. ImportoACredito = 594,00 − 27,52 = 566,48 ✓
Questo modulo mostra che IvaDovuta e ImportoACredito possono coesistere: il mese chiude con debito sull'IVA, ma il credito accumulato lo assorbe e il risultato netto rimane positivo.
CreditoPeriodoPrecedente (VP8) prende esattamente il valore di ImportoACredito del modulo precedente: 594,00. È la catena di riporto che attraversa tutti i moduli della comunicazione.
Modulo 3 — Marzo
<iv:Modulo>
<iv:NumeroModulo>3</iv:NumeroModulo>
<iv:Mese>3</iv:Mese>
<iv:TotaleOperazioniAttive>0,00</iv:TotaleOperazioniAttive>
<iv:TotaleOperazioniPassive>441,27</iv:TotaleOperazioniPassive>
<iv:IvaEsigibile>6,65</iv:IvaEsigibile>
<iv:IvaDetratta>62,86</iv:IvaDetratta>
<iv:IvaCredito>56,21</iv:IvaCredito>
<iv:CreditoPeriodoPrecedente>566,48</iv:CreditoPeriodoPrecedente>
<iv:ImportoACredito>622,69</iv:ImportoACredito>
</iv:Modulo>
Marzo ha TotaleOperazioniAttive: 0,00 — nessuna vendita nel mese. È una situazione lecita: può esserci IVA esigibile (6,65) anche senza operazioni attive nel periodo, ad esempio per operazioni a esigibilità differita registrate in marzo ma riferite a fatture emesse in precedenza.
CreditoPeriodoPrecedente riprende 566,48 da febbraio. ImportoACredito = 566,48 + 56,21 = 622,69 ✓
Il credito cresce di mese in mese. A fine trimestre il soggetto ha accumulato 622,69 euro di credito IVA, che riporterà nel trimestre successivo o potrà portare in compensazione F24.
Cosa manca
Guardare i tag assenti è utile quanto guardare quelli presenti.
VP7 (DebitoPeriodoPrecedente) non appare in nessun modulo: nessun mese ha lasciato un debito sotto soglia non versato.
VP12 (InteressiTrimestrali) non appare: questo è un mensile, gli interessi dell'1% sono riservati ai trimestrali.
VP13 (Acconto) non appare: si compila solo a dicembre.
VP10 e VP11 non appaiono: nessun versamento auto UE, nessun credito d'imposta speciale.
Il formato non prevede tag vuoti o a zero — i campi non applicabili semplicemente non vengono inclusi. Questo rende il file più compatto ma richiede che chi legge sappia distinguere "campo non presente" da "campo a zero".
I decimali con la virgola
I valori numerici usano la virgola come separatore decimale (594,00, non 594.00). È una scelta di localizzazione coerente con la convenzione italiana, ma insolita in un formato XML dove il punto decimale è la norma internazionale. Chi genera o legge questi file programmaticamente deve gestire esplicitamente questa particolarità — un parseFloat("594,00") in JavaScript restituisce NaN.
Cosa rivela la struttura
La LiPE in XML è più leggibile della FatturaPA: i tag hanno nomi in italiano comprensibili, la struttura è piatta, la matematica è verificabile riga per riga. Ma le scelte di design lasciano alcune cose implicite che un formato più esplicito dichiarerebbe:
- La direzione del saldo (debito o credito) si deduce dal nome del tag presente, non da un campo esplicito
- Il tipo di liquidatore (mensile o trimestrale) si deduce dal numero di moduli, non da un campo dichiarato
- I valori assenti vanno interpretati come zero, non come dati mancanti
Sono convenzioni documentate nelle specifiche tecniche. Ma chi implementa un parser LiPE le scopre sulla propria pelle.
Questo articolo è informativo. Per la tua situazione fiscale specifica, rivolgiti a un dottore commercialista.