Generate FatturaPA Electronic Invoice XML (SdI)
Skill: Convert invoice data into the FatturaPA FatturaElettronica XML
Region: Italy (Italia)
Category: E-Invoicing — fatturazione elettronica
Does: Takes ordinary invoice data and produces the FatturaPA XML (FatturaElettronica, tracciato/format version 1.2.x) that is transmitted through the Sistema di Interscambio (SdI) of the Agenzia delle Entrate for both B2B/B2C (privati) and B2G (PA) invoicing.
Standard: FatturaPA tracciato 1.2 / FatturaElettronicaPrivati schema (versione="FPR12" privati, FPA12 PA)
All invoices for established Italian operators flow through SdI: the XML is signed (B2G) or sent unsigned (B2B is permitted), SdI validates it, assigns an Identificativo SdI, and delivers it to the recipient by Codice Destinatario (7 chars;
0000000when a PEC is used,XXXXXXXfor foreign recipients). The XML is the legal invoice; the file name isIT<PIVA>_<progressivo>.xml. Validate against the current SdI schema/controlli before sending.
When this applies
- Issuing a domestic sale invoice (
TipoDocumentoTD01) from a Partita IVA holder to another business, consumer, or public administration. - The recipient is reached either via a 7-character Codice Destinatario (SdI accreditation code) or, for those without one, via PEC (then
CodiceDestinatario=0000000andPECDestinatariois populated). - Related document types reuse the same body: TD04 nota di credito, TD24 fattura differita, etc. (cross-border integrazione/autofattura TD17/TD18/TD19 are a separate skill).
Input data required
| Input | FatturaPA element |
|---|---|
| Transmitter Partita IVA / Codice Fiscale, progressivo, format | IdTrasmittente, ProgressivoInvio, FormatoTrasmissione |
| Recipient routing (SdI code or PEC) | CodiceDestinatario, PECDestinatario |
| Seller identity, address, regime fiscale | CedentePrestatore (IdFiscaleIVA, CodiceFiscale, Anagrafica, Sede, RegimeFiscale) |
| Buyer identity, address | CessionarioCommittente (IdFiscaleIVA/CodiceFiscale, Anagrafica, Sede) |
| Document type, date, number, currency | DatiGeneraliDocumento (TipoDocumento, Data, Numero, Divisa) |
| Line items: description, qty, unit price, VAT rate, Natura | DettaglioLinee |
| VAT summary per rate | DatiRiepilogo (AliquotaIVA, Imponibile, Imposta, Natura, EsigibilitaIVA) |
| Payment terms / IBAN | DatiPagamento |
Document structure
p:FatturaElettronica versione="FPR12"
├── FatturaElettronicaHeader
│ ├── DatiTrasmissione (IdTrasmittente, ProgressivoInvio, FormatoTrasmissione, CodiceDestinatario/PECDestinatario)
│ ├── CedentePrestatore (DatiAnagrafici: IdFiscaleIVA, CodiceFiscale, Anagrafica, RegimeFiscale; Sede)
│ └── CessionarioCommittente (DatiAnagrafici, Sede)
└── FatturaElettronicaBody
├── DatiGenerali
│ └── DatiGeneraliDocumento (TipoDocumento, Divisa, Data, Numero, ImportoTotaleDocumento)
├── DatiBeniServizi
│ ├── DettaglioLinee ... (NumeroLinea, Descrizione, Quantita, PrezzoUnitario, PrezzoTotale, AliquotaIVA, Natura)
│ └── DatiRiepilogo ... (AliquotaIVA, Imponibile, Imposta, Natura, EsigibilitaIVA)
└── DatiPagamento (CondizioniPagamento, DettaglioPagamento)
Standard ordinary VAT rate (aliquota IVA) is 22%; reduced rates 10%, 5%, 4%. When AliquotaIVA is 0.00, a Natura code is mandatory (e.g. N1 escluse art.15, N2.2 non soggette, N3.2 non imponibili cessioni intracomunitarie, N6.x inversione contabile/reverse charge, N4 esenti). EsigibilitaIVA: I immediata, D differita, S scissione dei pagamenti (split payment, PA).
Calculation rules
- Line
PrezzoTotale=Quantita×PrezzoUnitario(net of VAT, 2+ decimals as per tracciato). - Group lines by
AliquotaIVA(andNatura) → oneDatiRiepilogoblock each:Imponibile= sum ofPrezzoTotale,Imposta=Imponibile×AliquotaIVA/ 100. ImportoTotaleDocumento= ΣImponibile+ ΣImposta(less anyScontoMaggiorazione/ritenuta where applicable).- Decimal separator is
.; amounts to 2 decimals (prices may use more). No thousands separators.
Worked example (TD01, one line @ 22%)
<?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>ABCDEF1</CodiceDestinatario>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA><IdPaese>IT</IdPaese><IdCodice>01234567890</IdCodice></IdFiscaleIVA>
<Anagrafica><Denominazione>Acme S.r.l.</Denominazione></Anagrafica>
<RegimeFiscale>RF01</RegimeFiscale>
</DatiAnagrafici>
<Sede><Indirizzo>Via Roma 1</Indirizzo><CAP>20121</CAP><Comune>Milano</Comune><Provincia>MI</Provincia><Nazione>IT</Nazione></Sede>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA><IdPaese>IT</IdPaese><IdCodice>09876543210</IdCodice></IdFiscaleIVA>
<Anagrafica><Denominazione>Cliente S.p.A.</Denominazione></Anagrafica>
</DatiAnagrafici>
<Sede><Indirizzo>Via Po 7</Indirizzo><CAP>10124</CAP><Comune>Torino</Comune><Provincia>TO</Provincia><Nazione>IT</Nazione></Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2026-05-15</Data>
<Numero>2026/0142</Numero>
<ImportoTotaleDocumento>1220.00</ImportoTotaleDocumento>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Servizio di consulenza</Descrizione>
<Quantita>10.00</Quantita>
<PrezzoUnitario>100.00</PrezzoUnitario>
<PrezzoTotale>1000.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<Imponibile>1000.00</Imponibile>
<Imposta>220.00</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP05</ModalitaPagamento>
<ImportoPagamento>1220.00</ImportoPagamento>
<IBAN>IT60X0542811101000000123456</IBAN>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>
</p:FatturaElettronica>
File name IT01234567890_00001.xml; transmitted to SdI (via PEC, web upload, SDICoop/SDIFTP web service) which returns a notification (RC consegna / NS scarto).
Validation checklist
-
versione/FormatoTrasmissionematches recipient (FPR12privati,FPA12PA) and current tracciato 1.2.x -
CodiceDestinatariovalid 7-char SdI code, or0000000+PECDestinatario, orXXXXXXXfor esteri -
CedentePrestatorehasIdFiscaleIVA(Partita IVA) and a validRegimeFiscale(e.g. RF01) -
CessionarioCommittentehas Partita IVA or Codice Fiscale (privati without VAT) -
TipoDocumentocorrect (TD01 ordinary);Data/Numerounique per progressivo - Each line:
PrezzoTotale=Quantita×PrezzoUnitario;AliquotaIVApresent -
AliquotaIVA= 0.00 lines carry a mandatory Natura (N1–N7) - One
DatiRiepilogoper rate/Natura;Imposta=Imponibile× rate;EsigibilitaIVAset -
ImportoTotaleDocumentoreconciles with imponibili + imposte - File name
IT<PIVA>_<progressivo>.xml; passes SdI controlli before transmission
Last updated: 2026-06-04 — confirm the active tracciato/schema version, codici, and Agenzia delle Entrate / SdI requirements against the current specifications before use.