FatturaPA — XSD-valid, rejected by the SdI (00421, 00422, 00445)
Cette facture est VALIDE au sens du XSD officiel et le SdI la rejetterait quand même — c’est précisément pourquoi un contrôle de schéma ne suffit pas. Trois défauts : la base imposable déclare 1 150 € pour des lignes qui somment à 1 100 € (contrôle 00422, dont la tolérance est de un EURO, pas un centime) ; la taxe déclare 250 € là où 22 % de 1 150 € font 253 € (00421) ; et le code Natura est le N3 nu, retiré le 1er janvier 2021 au profit de ses sous-codes (00445) — alors qu’il figure toujours dans l’énumération du schéma.
FatturaPA 1.2.3 — Invalide
Cette facture est VALIDE au sens du XSD officiel et le SdI la rejetterait quand même — c’est précisément pourquoi un contrôle de schéma ne suffit pas. Trois défauts : la base imposable déclare 1 150 € pour des lignes qui somment à 1 100 € (contrôle 00422, dont la tolérance est de un EURO, pas un centime) ; la taxe déclare 250 € là où 22 % de 1 150 € font 253 € (00421) ; et le code Natura est le N3 nu, retiré le 1er janvier 2021 au profit de ses sous-codes (00445) — alors qu’il figure toujours dans l’énumération du schéma.
Ce que montre ce fichier
Cette facture est VALIDE au sens du XSD officiel et le SdI la rejetterait quand même — c’est précisément pourquoi un contrôle de schéma ne suffit pas. Trois défauts : la base imposable déclare 1 150 € pour des lignes qui somment à 1 100 € (contrôle 00422, dont la tolérance est de un EURO, pas un centime) ; la taxe déclare 250 € là où 22 % de 1 150 € font 253 € (00421) ; et le code Natura est le N3 nu, retiré le 1er janvier 2021 au profit de ses sous-codes (00445) — alors qu’il figure toujours dans l’énumération du schéma.
| Transactions | 3 |
|---|---|
| Date contenue dans le fichier | 2026-06-30 |
Les défauts qu’il porte
- 00422écart de 50.00 € (tolérance ±1 €)
- 00421<Imposta> déclare 250.00 alors que 1150.00 × 22.00 % donne 253.00
- 00445Le code générique <Natura>N3</Natura> n'est plus admis depuis le 01/01/2021
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. This file is VALID against the official Agenzia delle Entrate XSD
and would still be REJECTED by the Sistema di Interscambio. That is the whole point of it:
a schema-only validator gives this invoice a clean bill of health, and the SdI then sends
back a notifica di scarto.
Three defects, each a published SdI control:
· 00422 — ImponibileImporto declares 1,150.00 while the lines sum to 1,100.00. A 50 €
gap, far past the 1 € tolerance of that control.
· 00421 — Imposta declares 250.00 where 1,150.00 × 22 % is 253.00.
· 00445 — <Natura>N3</Natura> is the GENERIC code, withdrawn on 01/01/2021. The XSD
still lists it in its enumeration; only the control rejects it. A sub-code
(N3.5, N3.2…) is required.
-->
<p:FatturaElettronica versione="FPR12"
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>00002</ProgressivoInvio>
<FormatoTrasmissione>FPR12</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>ESEMPIO CLIENTE SPA</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA MILANO 25</Indirizzo>
<CAP>20121</CAP>
<Comune>MILANO</Comune>
<Provincia>MI</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2026-06-30</Data>
<Numero>2026/0043</Numero>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Servizi di consulenza informatica</Descrizione>
<Quantita>10.00</Quantita>
<PrezzoUnitario>100.00</PrezzoUnitario>
<PrezzoTotale>1000.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>2</NumeroLinea>
<Descrizione>Licenza software annuale</Descrizione>
<Quantita>1.00</Quantita>
<PrezzoUnitario>100.00</PrezzoUnitario>
<PrezzoTotale>100.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>3</NumeroLinea>
<Descrizione>Trasferta esente (codice natura generico, non piu ammesso)</Descrizione>
<Quantita>1.00</Quantita>
<PrezzoUnitario>200.00</PrezzoUnitario>
<PrezzoTotale>200.00</PrezzoTotale>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N3</Natura>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>1150.00</ImponibileImporto>
<Imposta>250.00</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
<DatiRiepilogo>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N3</Natura>
<ImponibileImporto>200.00</ImponibileImporto>
<Imposta>0.00</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP05</ModalitaPagamento>
<DataScadenzaPagamento>2026-07-30</DataScadenzaPagamento>
<ImportoPagamento>1600.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.