FatturaPA FPA12 — wrong CodiceDestinatario length (00427)
Il modo più frequente in cui una fattura verso una Pubblica Amministrazione viene respinta: il CodiceDestinatario. Per una PA (FormatoTrasmissione = FPA12) deve essere il codice ufficio IPA di SEI caratteri — la forma a sette caratteri spetta ai destinatari privati. L’XSD ammette 6 O 7 per entrambi, quindi lo schema non se ne accorge; solo il controllo SdI 00427 lo fa. Il numero della fattura, «FATTURA», per giunta non contiene alcuna cifra (00425).
FatturaPA 1.2.3 — Non valido
Il modo più frequente in cui una fattura verso una Pubblica Amministrazione viene respinta: il CodiceDestinatario. Per una PA (FormatoTrasmissione = FPA12) deve essere il codice ufficio IPA di SEI caratteri — la forma a sette caratteri spetta ai destinatari privati. L’XSD ammette 6 O 7 per entrambi, quindi lo schema non se ne accorge; solo il controllo SdI 00427 lo fa. Il numero della fattura, «FATTURA», per giunta non contiene alcuna cifra (00425).
Cosa mostra questo file
Il modo più frequente in cui una fattura verso una Pubblica Amministrazione viene respinta: il CodiceDestinatario. Per una PA (FormatoTrasmissione = FPA12) deve essere il codice ufficio IPA di SEI caratteri — la forma a sette caratteri spetta ai destinatari privati. L’XSD ammette 6 O 7 per entrambi, quindi lo schema non se ne accorge; solo il controllo SdI 00427 lo fa. Il numero della fattura, «FATTURA», per giunta non contiene alcuna cifra (00425).
| Transazioni | 1 |
|---|---|
| Data nel file | 2026-06-30 |
I difetti che contiene
- 00427le <CodiceDestinatario> doit être le code bureau IPA sur 6 caractères
- 00425ne contient aucun chiffre
Citato alla lettera dal validatore, non parafrasato.
Tutte le parti, gli IBAN e gli importi qui sotto sono fittizi. Gli IBAN sono strutturalmente validi — superano il mod-97 — ma non corrispondono ad alcun conto reale.
Contenuto del file
<?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>
Come sappiamo che questi risultati reggono
Ogni file di questa libreria passa nel validatore del sito a ogni build. Il risultato atteso indicato sopra è verificato da un test automatico: se un file smettesse di corrispondere a quanto afferma questa pagina, la build fallirebbe. Due fixture ereditate sono state riparate così prima della pubblicazione: tre IBAN non superavano il mod-97 e diversi nomi usavano caratteri fuori dal set SEPA di base.