FatturaPA FPA12 — wrong CodiceDestinatario length (00427)
The commonest way an invoice to an Italian public administration gets bounced: the CodiceDestinatario. For a PA (FormatoTrasmissione = FPA12) it must be the SIX-character IPA office code — the seven-character form belongs to private recipients. The XSD permits 6 OR 7 for both, so the schema cannot see it; only SdI control 00427 does. The invoice number, "FATTURA", also contains no digit at all (00425).
FatturaPA 1.2.3 — Invalid
The commonest way an invoice to an Italian public administration gets bounced: the CodiceDestinatario. For a PA (FormatoTrasmissione = FPA12) it must be the SIX-character IPA office code — the seven-character form belongs to private recipients. The XSD permits 6 OR 7 for both, so the schema cannot see it; only SdI control 00427 does. The invoice number, "FATTURA", also contains no digit at all (00425).
What this file shows
The commonest way an invoice to an Italian public administration gets bounced: the CodiceDestinatario. For a PA (FormatoTrasmissione = FPA12) it must be the SIX-character IPA office code — the seven-character form belongs to private recipients. The XSD permits 6 OR 7 for both, so the schema cannot see it; only SdI control 00427 does. The invoice number, "FATTURA", also contains no digit at all (00425).
| Transactions | 1 |
|---|---|
| Date in the file | 2026-06-30 |
The defects it carries
- 00427le <CodiceDestinatario> doit être le code bureau IPA sur 6 caractères
- 00425ne contient aucun chiffre
Quoted verbatim from the validator, not paraphrased.
Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.
File content
<?xml version="1.0" encoding="UTF-8"?>
<!--
Deliberately broken, and again VALID against the official XSD.
This is the single most common reason an invoice to an Italian public administration is
rejected: the <CodiceDestinatario>. For a PA (FormatoTrasmissione = FPA12) it must be the
SIX-character IPA office code; the seven-character form belongs to private recipients.
The XSD allows [A-Z0-9]{6,7} for both, so the schema cannot see the mistake — only SdI
control 00427 does.
Two defects:
· 00427 — a 7-character CodiceDestinatario on an FPA12.
· 00425 — <Numero>FATTURA</Numero> contains no digit at all. The XSD type is a plain
20-character string, so again the schema is happy.
Everything else in this invoice is correct: the fiscal identifiers pass their check digit,
and the VAT arithmetic balances.
-->
<p:FatturaElettronica versione="FPA12"
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>06363391001</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>00003</ProgressivoInvio>
<FormatoTrasmissione>FPA12</FormatoTrasmissione>
<CodiceDestinatario>ABC1234</CodiceDestinatario>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>06363391001</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>ESEMPIO FORNITORE SRL</Denominazione>
</Anagrafica>
<RegimeFiscale>RF01</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA ROMA 1</Indirizzo>
<CAP>00100</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>01114601006</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>COMUNE DI ESEMPIO</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>PIAZZA DEL MUNICIPIO 1</Indirizzo>
<CAP>00100</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2026-06-30</Data>
<Numero>FATTURA</Numero>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Manutenzione impianti - contratto annuale</Descrizione>
<Quantita>1.00</Quantita>
<PrezzoUnitario>500.00</PrezzoUnitario>
<PrezzoTotale>500.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>500.00</ImponibileImporto>
<Imposta>110.00</Imposta>
<EsigibilitaIVA>S</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP05</ModalitaPagamento>
<DataScadenzaPagamento>2026-07-30</DataScadenzaPagamento>
<ImportoPagamento>500.00</ImportoPagamento>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>
</p:FatturaElettronica>
How we know these results hold
Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.