What is FatturaPA?

FatturaPA is the mandatory XML-based electronic invoice format used in Italy. Every invoice — B2B, B2C, and B2G — must be transmitted through the Sistema di Interscambio (SDI), a centralized government platform operated by the Agenzia delle Entrate (Italian Revenue Agency). The SDI validates each invoice against format and schema rules before forwarding it to the recipient. Italy was the first EU member state to mandate e-invoicing for all domestic B2B transactions, enforcing the requirement from January 1, 2019. The system follows a clearance model: invoices must be approved by the SDI before they are legally considered issued. This gives the tax authority real-time visibility into every commercial transaction. The format uses a proprietary XML schema (currently version 1.2, with technical specifications at version 1.9 as of April 2025) distinct from UBL or CII. Two transmission codes identify the invoice type: FPA12 for invoices to public administrations and FPR12 for invoices to private parties.

Last verified: March 2026

TL;DR

FatturaPA is Italy’s mandatory XML e-invoice format. All invoices — B2B, B2C, and B2G — must pass through the government’s SDI clearance platform before reaching the recipient.

How FatturaPA Works

The Clearance Model

Unlike Peppol’s federated four-corner model, Italy uses a centralized clearance model. Every invoice must pass through the SDI before it is legally considered issued. The flow works as follows:

Step 1: The supplier generates a FatturaPA XML file and transmits it to the SDI. Transmission can happen via certified email (PEC), web upload, SFTP, or web services (SDICoop).
Step 2: The SDI validates the file against the XML schema and runs format-level checks (correct structure, mandatory fields present, valid codes).
Step 3: If validation passes, the SDI forwards the invoice to the recipient using the routing code (Codice Destinatario) or PEC address specified in the invoice.
Step 4: The SDI sends a delivery notification (Ricevuta di Consegna) back to the supplier confirming successful delivery. If validation fails, a rejection notification (Notifica di Scarto) is returned with error codes.

The entire cycle — from submission to delivery or rejection — typically completes within seconds to minutes, though the SDI allows up to 5 days for processing.

XML Structure

A FatturaPA XML document is divided into a header and one or more body sections:

SectionElementPurpose
HeaderFatturaElettronicaHeaderTransmission data, supplier/customer details
TransmissionDatiTrasmissioneSDI routing info, format code (FPA12/FPR12), Codice Destinatario
SupplierCedentePrestatoreSeller identification, VAT number, address
CustomerCessionarioCommittenteBuyer identification, fiscal code, address
BodyFatturaElettronicaBodyInvoice lines, totals, payment terms, attachments
General DataDatiGeneraliDocument type (TD01–TD29), date, number, currency
Line ItemsDettaglioLineeIndividual line descriptions, quantities, prices, VAT rates
SummaryDatiRiepilogoVAT summary per rate, total tax amounts
PaymentDatiPagamentoPayment method, terms, bank details (IBAN)

Transmission Format Codes

The FormatoTrasmissione field identifies the invoice type and determines routing rules:

CodeTargetCodice Destinatario Length
FPA12Public Administration (PA)6 characters (IPA office code)
FPR12Private parties (B2B/B2C)7 characters (SDI channel code)

For B2B invoices where the recipient has not registered a channel code, the Codice Destinatario is set to 0000000 and the recipient’s PEC (certified email) address is used instead.

Document Type Codes

The TipoDocumento field classifies the transaction. Key codes include:

CodeDescription
TD01Invoice (Fattura)
TD04Credit note (Nota di credito)
TD05Debit note (Nota di debito)
TD06Fee/commission (Parcella)
TD16–TD19Reverse charge integrations
TD24Deferred invoice (Fattura differita)
TD29Irregular supplier invoice report (introduced in specs v1.9)

Digital Signature and Transmission

FatturaPA files must be digitally signed using CAdES (.p7m) or XAdES format before submission. The file naming convention follows a strict pattern: IT + VAT number + _ + progressive number (e.g., IT01234567890_00001.xml). Each file name must be unique across all submissions — reusing a file name triggers error 00002.

Why FatturaPA Matters

The Largest E-Invoicing Market in Europe

With over 2 billion invoices processed annually, Italy’s SDI handles more e-invoice volume than any other system in the EU. The mandate covers every domestic transaction — no exemptions remain as of January 2024.

For businesses operating in Italy, there is no alternative channel. You cannot send a PDF invoice, a paper invoice, or a Peppol invoice for domestic Italian transactions. Everything goes through the SDI in FatturaPA format.

Real-Time Tax Authority Visibility

The clearance model means the Agenzia delle Entrate sees every invoice in real time. This has had measurable impact on tax compliance: Italy reported that the first year of mandatory B2B e-invoicing generated approximately €3.5 billion in additional tax revenue through reduced VAT fraud and improved compliance.

This real-time visibility model is now being studied and replicated across the EU. The European Commission’s ViDA (VAT in the Digital Age) initiative draws directly on Italy’s experience with centralized clearance.

Mandate Extended Through 2027

The European Council authorized Italy to continue operating the SDI clearance system through December 31, 2027. This gives businesses long-term certainty that FatturaPA compliance is a sustained requirement, not a temporary measure.

Why ERP Vendors Must Support FatturaPA

If your ERP or accounting software serves Italian businesses, FatturaPA support is a hard requirement. The proprietary XML schema is structurally different from UBL and CII — you cannot reuse a Peppol or EN 16931 integration. The document type codes, the Natura (VAT exemption reason) codes, and the SDI error handling all require Italy-specific implementation.

The structural approach: validate every FatturaPA invoice against the full SDI schema and business rules before submission. Catching errors before they reach the SDI prevents rejected invoices, delayed payments, and compliance gaps.

Invoice Navigator validates FatturaPA invoices against all SDI schema and business rules, catching format errors, invalid codes, and structural issues before submission to the Sistema di Interscambio.

Common FatturaPA Rejection Errors

The SDI returns specific error codes when an invoice fails validation. These are the most common rejections:

Error 00002 — Duplicate file name. Every file sent to the SDI must have a unique name across all previous submissions. The naming convention (IT + VAT number + progressive number) means your system must track the sequence. Resubmitting a corrected invoice with the same file name will be rejected.

Error 00200 — File does not conform to format. The XML does not match the FatturaPA schema. Common causes: wrong element order, missing mandatory elements, or invalid data types. The SDI checks strict schema conformance before any business-level validation.

Error 00305 — Invalid buyer VAT number (IdFiscaleIVA). The buyer’s VAT identification number does not pass format or existence checks. A frequent mistake is placing the Codice Fiscale in the IdFiscaleIVA field — these are different identifiers in Italy.

Error 00311 — Invalid Codice Destinatario. The 6-character (PA) or 7-character (B2B) routing code is not recognized. For PA invoices, verify the code against the IPA (Indice delle Pubbliche Amministrazioni) directory.

Error 00400 — Natura missing with zero VAT rate. When the VAT rate is 0%, you must specify a Natura code explaining the exemption reason (e.g., N1 for excluded transactions, N2.2 for non-subject, N4 for exempt). Omitting it is the single most common validation error for cross-border or exempt transactions.

Error 00403 — Invoice date later than receipt date. The SDI rejects invoices where the document date is in the future relative to when the SDI received the file. This catches clock synchronization issues and backdating attempts.

Error 00476 — Non-Italian country code. At least one party (supplier or buyer) must have "IT" as the country code in their tax identification. Fully foreign-to-foreign transactions do not belong in the SDI.

For the full error library with fix guidance: All validation errors →

FatturaPA vs. Other Systems

FatturaPA vs. Peppol — FatturaPA is a centralized clearance system; Peppol is a federated network. Italy uses FatturaPA/SDI domestically and is adopting Peppol for cross-border B2G and B2B. You cannot substitute one for the other for Italian domestic transactions. Compare in detail →

FatturaPA vs. Factur-X / ZUGFeRD — Factur-X embeds structured data in a PDF. FatturaPA is pure XML with no PDF component. Italy does not accept Factur-X for domestic e-invoicing — only FatturaPA XML transmitted through the SDI.

FatturaPA vs. XRechnung — Both are national implementations, but XRechnung is a CIUS of EN 16931 (based on UBL/CII), while FatturaPA uses a proprietary XML schema. XRechnung travels over Peppol; FatturaPA travels through the SDI. Structurally incompatible formats.

FatturaPA vs. France’s Factur-X/PPF — France’s upcoming system uses certified platforms (PDP) and accepts Factur-X, UBL, and CII. Italy’s system accepts only FatturaPA XML. France follows a Y-model with multiple platforms; Italy is fully centralized through a single gateway.

How to Get Started

Step 1: Understand Your Obligations

If you issue invoices to Italian businesses or consumers, you must use FatturaPA format and transmit through the SDI. This applies to all Italian VAT-registered entities regardless of size or turnover, including flat-rate regime (regime forfettario) taxpayers as of January 2024.

Step 2: Choose a Transmission Channel

You can submit invoices to the SDI through several channels:

  • PEC (Posta Elettronica Certificata) — Certified email, simple but manual
  • SDICoop — Web services API for automated submission
  • SDIFTP — Secure FTP for batch processing
  • SPCoop — For public administration connections
  • Web portal — Manual upload via Fatture e Corrispettivi portal

Most businesses use an intermediary (intermediario) that handles SDI transmission on their behalf, similar to using a Peppol Access Point.

Step 3: Obtain Digital Certificates

FatturaPA files must be digitally signed. You need a qualified electronic signature certificate from an accredited Italian or EU provider. The signature can be CAdES (.p7m envelope) or XAdES (inline XML signature).

Step 4: Generate Valid FatturaPA XML

Your system must produce XML that conforms to the FatturaPA schema. Key required elements: supplier and buyer tax identifiers, document type code (TipoDocumento), VAT breakdown with Natura codes where applicable, payment information, and correct Codice Destinatario routing.

Step 5: Validate Before Submission

Run every invoice through schema and business rule validation before sending it to the SDI. This prevents rejections and the operational overhead of correcting and resubmitting failed invoices.

Validate a FatturaPA invoice now →

For API integration: Developer documentation →
For sandbox testing: Sandbox environment →

Validate Your FatturaPA Invoice

Check if your invoice passes all SDI schema and business rules before submission. Free online validator — no signup required.

Try Free Validator

Frequently Asked Questions

Related Content