ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Italy — FatturaPA and SdI

Italy launched a complete clearance system back in 2014: every B2B invoice flows through the Sistema di Interscambio (SdI), which validates it before delivery to the recipient. It is the European reference mature e-invoicing market.

Regulatory timeline

  • Ministerial Decree 55 of 3 April 2013. Lays the groundwork for mandatory fatturazione elettronica for public administrations.
  • 6 June 2014. Go-live for B2G — central ministries first, then a progressive rollout to every public entity.
  • Budget Law 2018 (Law 205/2017). Article 1, paragraphs 909-928: extends B2B and resident B2C from 1 January 2019, with very limited exceptions.
  • Decree-Law 146/2021 (Law 215/2021). Removes the esterometro (separate declaration of cross-border operations) in favour of integrating cross-border flows in the SdI.
  • 1 July 2022. Entry into force of the new cross-border regime: transactions with non-Italian partners must be reported to the SdI under specific document type codes (TD17, TD18, TD19).
  • 1 July 2022 also: extension to flat-rate taxpayers and the de vantaggio regime, with limited exemptions (turnover < €25,000).
  • 1 January 2024. End of the last exemptions for the flat-rate scheme (removal of the €25,000 threshold).
  • Agenzia delle Entrate Order of 30 April 2018 (with successive revisions). Specifies the FatturaPA 1.2.x XML schema and the SdI exchange protocol (REST, SDICoop, PEC, FTP).

Deep dives — 10 dedicated pages

Ten dedicated pages drill into every dimension of the Italian e-invoicing reform — the SdI clearance pioneer, the technical specs and the real-world B2B usage that pre-dates and survives the reform.

2019 reform / SdI

  • SdI and FatturaPA — universal clearance · Sistema di Interscambio (SdI) operated by AdE, FatturaPA XML format, universal B2B+B2G mandate since 1 Jan 2019, B2C extended in 2022. Decreto Legislativo 127/2015, Provvedimento 89757/2018. ~6.5 billion invoices processed.
  • Codice Destinatario · 7-character code routing a FatturaPA through the SdI. Special codes 0000000 (PEC) and XXXXXXX (B2C), accredited intermediaries (Aruba, TeamSystem, Zucchetti, Fatture in Cloud, Fattura24…), PEC fallback.
  • Italian IVA regimes · Ordinario, Forfettario (flat-rate, €85,000 threshold 2025), Vantaggio (legacy). Rates 0/4/5/10/22%. Reverse charge under Art. 17-bis DPR 633/72. Compatibility with mandatory SdI issuance.
  • Agenzia delle Entrate portal · Fatture e Corrispettivi (free B2B channel), Stanza del Contribuente, F24 (integrated payment), SDIcoop cooperative API, IndicePA (B2G registry), SPID / CIE / CNS authentication.

Technical specs

  • FatturaPA XML specification · XSD schema, EN 16931 (CIUS Italia) mapping, TipoDocumento codes TD01-TD28, CAdES-BES / XAdES-BES signature, versioni 1.7 and 1.8 (production April 2025), common SdI errors.
  • SDIcoop — cooperative API · SOAP 1.2 (RiceviFatture, RiceviNotifiche) + REST V2 (since 2022) for accredited intermediaries. mTLS authentication, Trasmittente/Cedente/Cessionario roles, retry policy, batch limits.
  • Conservazione Sostitutiva · Legal 10-year archive of dematerialised fiscal documents. DPCM 3 December 2013 + Codice dell"Amministrazione Digitale (CAD) D.Lgs. 82/2005. ~70 AgID accredited operators.

Real-world B2B usage

  • Italian retail EDIFACT · Conad, Coop Italia, Carrefour Italia, Esselunga, Pam Panorama, Bennet, MD Discount, Eurospin, Lidl Italia. GS1 Italy EANCOM 2002 subsets, ~600M messages/year, complementing the SdI.
  • Italian automotive EDIFACT · Stellantis Italia (Fiat, Alfa Romeo, Lancia, Maserati, Ferrari), CNH Industrial, Iveco Group, Marelli (ex Magneti Marelli), Brembo, Pirelli, Sabaf. Galia + Odette + JAMA, OFTP2 over ENX.
  • GS1 Italy + Indicod-ECR · National GTIN/GLN/SSCC issuer, EANCOM 2002 maintainer, EPCIS 2.0 adoption, GS1 Digital Link 2025-2026, Indicod-ECR Best Practices for retailer-supplier alignment.

Technical schema

The format is FatturaPA 1.2.x, an Italian proprietary XML defined by Agenzia delle Entrate, distinct from UBL and CII. Two variants:

  • FPA12 — Fattura Pubblica Amministrazione, for B2G.
  • FPR12 — Fattura tra Privati, for resident B2B and B2C.

The document is UTF-8 encoded and validated against an official XSD published on the Agenzia delle Entrate portal. The structure splits into FatturaElettronicaHeader (parties, transmission metadata) and FatturaElettronicaBody (document header, lines, totals). One invoice per XML file — unlike PEPPOL, no batch submission. A XAdES-BES electronic signature is mandatory for B2G (Article 21 of DPR 633/72); recommended but not mandatory for B2B since 2019. Minimal example:

xmlfattura-fpr12.xml
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
                     versione="FPR12">
  <FatturaElettronicaHeader>
    <DatiTrasmissione>
      <IdTrasmittente>
        <IdPaese>IT</IdPaese>
        <IdCodice>01234567890</IdCodice>
      </IdTrasmittente>
      <ProgressivoInvio>00001</ProgressivoInvio>
      <FormatoTrasmissione>FPR12</FormatoTrasmissione>
      <CodiceDestinatario>0000000</CodiceDestinatario>
      <PECDestinatario>cliente@pec.example.it</PECDestinatario>
    </DatiTrasmissione>
    <CedentePrestatore>
      <DatiAnagrafici>
        <IdFiscaleIVA>
          <IdPaese>IT</IdPaese>
          <IdCodice>01234567890</IdCodice>
        </IdFiscaleIVA>
        <Anagrafica><Denominazione>Officina Milano S.r.l.</Denominazione></Anagrafica>
        <RegimeFiscale>RF01</RegimeFiscale>
      </DatiAnagrafici>
    </CedentePrestatore>
    <CessionarioCommittente>
      <DatiAnagrafici>
        <IdFiscaleIVA>
          <IdPaese>IT</IdPaese>
          <IdCodice>09876543210</IdCodice>
        </IdFiscaleIVA>
        <Anagrafica><Denominazione>Bottega Romana SpA</Denominazione></Anagrafica>
      </DatiAnagrafici>
    </CessionarioCommittente>
  </FatturaElettronicaHeader>
  <FatturaElettronicaBody>
    <DatiGenerali>
      <DatiGeneraliDocumento>
        <TipoDocumento>TD01</TipoDocumento>
        <Divisa>EUR</Divisa>
        <Data>2026-05-16</Data>
        <Numero>2026/00187</Numero>
        <ImportoTotaleDocumento>1220.00</ImportoTotaleDocumento>
      </DatiGeneraliDocumento>
    </DatiGenerali>
  </FatturaElettronicaBody>
</p:FatturaElettronica>

Submission flow

The seller submits the XML to the SdI through one of five official channels (web upload, PEC, FTP, SDICoop, SDIFTP). The SdI runs a set of formal checks:

textsdi-flow.txt
┌────────────┐    ┌────────────────┐    ┌─────────────┐
│  Emittente │───>│      SdI       │───>│ Destinatario│
│   (Seller) │    │ (Agenzia delle │    │   (Buyer)   │
│            │    │   Entrate)     │    │             │
└────────────┘    └────────┬───────┘    └─────────────┘


                  ┌──────────────────┐
                  │ NSO validation   │
                  │ + Notifica esito │
                  │ (within 5 days)  │
                  └──────────────────┘

On failure, the SdI returns a Notifica di Scarto (rejection) within five days; without any rejection in that window, the invoice is deemed accepted. If the recipient is identifiable (active Codice Destinatario or PEC), the SdI delivers the document and returns a Notifica di Consegna. Otherwise the invoice is made available in the recipient's Cassetto Fiscale.

Validation

  • Official SdI validator — public web service on the Agenzia delle Entrate portal > Fatture e Corrispettivi > Verifica file XML fattura. Runs technical checks (XSD, VAT-code consistency, Codice Destinatario validity).
  • ediverse PEPPOL validator: /en/tools/peppol-validator/ — useful if you also generate EN 16931 UBL for cross-border via PEPPOL.
  • Official FatturaPA 1.2.x XSD schemas downloadable from fatturapa.gov.it.

Common pitfalls

  1. 5-day rejection window. The SdI validates asynchronously: the sender can receive the Notifica di Scarto up to five days after the submission. Architectures that treat the absence of a response within a minute as success are falsely optimistic — provisioning at least five working days of monitoring is required.
  2. Generic Codice Destinatario 0000000. When the recipient has no dedicated SdI channel, 0000000 is used with PECDestinatario filled in. Reversing or leaving either empty makes the invoice land silently in the Cassetto Fiscale without the buyer noticing.
  3. Cross-border-specific TipoDocumento. Cross-border flows use TD17 (intra-EU service purchase), TD18 (intra-EU goods purchase), TD19 (purchases under Article 17 DPR 633/72). Mixing them up with plain TD01 blocks the VAT return.
  4. XAdES signature mandatory for B2G but not B2B. A blanket signature policy on B2B flows can introduce false positives if the certificate chain is not recognised; conversely, missing the signature on B2G triggers an immediate rejection.
  5. Strict UTF-8 encoding. The SdI rejects any character that does not match the declared encoding — a leading BOM, a stray ISO-8859-1 character or an unescaped &eacute; is enough to trigger a Notifica di Scarto with code 00200 or 00201.