FatturaPA FPA12 — wrong CodiceDestinatario length (00427)
La façon la plus courante de faire rejeter une facture adressée à une administration italienne : le CodiceDestinatario. Pour une PA (FormatoTrasmissione = FPA12), ce doit être le code bureau IPA sur SIX caractères — la forme à sept caractères est réservée aux destinataires privés. Le XSD autorise 6 OU 7 pour les deux : le schéma ne peut pas le voir, seul le contrôle SdI 00427 le voit. Le numéro de facture, « FATTURA », ne contient par ailleurs aucun chiffre (00425).
FatturaPA 1.2.3 — Invalide
La façon la plus courante de faire rejeter une facture adressée à une administration italienne : le CodiceDestinatario. Pour une PA (FormatoTrasmissione = FPA12), ce doit être le code bureau IPA sur SIX caractères — la forme à sept caractères est réservée aux destinataires privés. Le XSD autorise 6 OU 7 pour les deux : le schéma ne peut pas le voir, seul le contrôle SdI 00427 le voit. Le numéro de facture, « FATTURA », ne contient par ailleurs aucun chiffre (00425).
Ce que montre ce fichier
La façon la plus courante de faire rejeter une facture adressée à une administration italienne : le CodiceDestinatario. Pour une PA (FormatoTrasmissione = FPA12), ce doit être le code bureau IPA sur SIX caractères — la forme à sept caractères est réservée aux destinataires privés. Le XSD autorise 6 OU 7 pour les deux : le schéma ne peut pas le voir, seul le contrôle SdI 00427 le voit. Le numéro de facture, « FATTURA », ne contient par ailleurs aucun chiffre (00425).
| Transactions | 1 |
|---|---|
| Date contenue dans le fichier | 2026-06-30 |
Les défauts qu’il porte
- 00427le <CodiceDestinatario> doit être le code bureau IPA sur 6 caractères
- 00425ne contient aucun chiffre
Cité mot pour mot depuis le validateur, sans reformulation.
Toutes les parties, IBAN et montants ci-dessous sont fictifs. Les IBAN sont structurellement valides — ils passent le mod-97 — mais ne correspondent à aucun compte réel.
Contenu du fichier
<?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>
Comment nous savons que ces résultats tiennent
Chaque fichier de cette bibliothèque passe dans le validateur du site à chaque build. Le résultat attendu annoncé ci-dessus est vérifié par un test automatisé : si un fichier cessait de correspondre à ce que cette page affirme, le build échouerait. Deux fixtures héritées ont été réparées ainsi avant publication : trois IBAN échouaient au mod-97 et plusieurs libellés utilisaient des caractères hors du jeu SEPA de base.