← Blog
ivafiscoitaliaxml

Una LiPE a credito: il formato XML campo per campo

30 marzo 2026

Una LiPE a credito: il formato XML campo per campo

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.