FatturaPA — XSD-valid, rejected by the SdI (00421, 00422, 00445)
Esta fatura é VÁLIDA face ao XSD oficial e o SdI rejeitá-la-ia na mesma — é precisamente por isso que uma verificação apenas de esquema não chega. Três defeitos: a base tributável declara 1.150 € face a linhas que somam 1.100 € (controlo 00422, cuja tolerância é de um EURO, não de um cêntimo); o imposto declara 250 € onde 22 % de 1.150 € dá 253 € (00421); e o código Natura é o N3 genérico, retirado em 1 de janeiro de 2021 a favor dos seus subcódigos (00445), embora continue na enumeração do esquema.
FatturaPA 1.2.3 — Inválido
Esta fatura é VÁLIDA face ao XSD oficial e o SdI rejeitá-la-ia na mesma — é precisamente por isso que uma verificação apenas de esquema não chega. Três defeitos: a base tributável declara 1.150 € face a linhas que somam 1.100 € (controlo 00422, cuja tolerância é de um EURO, não de um cêntimo); o imposto declara 250 € onde 22 % de 1.150 € dá 253 € (00421); e o código Natura é o N3 genérico, retirado em 1 de janeiro de 2021 a favor dos seus subcódigos (00445), embora continue na enumeração do esquema.
O que este ficheiro mostra
Esta fatura é VÁLIDA face ao XSD oficial e o SdI rejeitá-la-ia na mesma — é precisamente por isso que uma verificação apenas de esquema não chega. Três defeitos: a base tributável declara 1.150 € face a linhas que somam 1.100 € (controlo 00422, cuja tolerância é de um EURO, não de um cêntimo); o imposto declara 250 € onde 22 % de 1.150 € dá 253 € (00421); e o código Natura é o N3 genérico, retirado em 1 de janeiro de 2021 a favor dos seus subcódigos (00445), embora continue na enumeração do esquema.
| Transações | 3 |
|---|---|
| Data no ficheiro | 2026-06-30 |
Os defeitos que contém
- 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
Citado literalmente do validador, sem paráfrase.
Todas as partes, IBAN e montantes abaixo são fictícios. Os IBAN são estruturalmente válidos — passam no mod-97 — mas não correspondem a nenhuma conta real.
Conteúdo do ficheiro
<?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>
Como sabemos que estes resultados se mantêm
Cada ficheiro desta biblioteca passa pelo próprio validador do site em cada build. O resultado esperado indicado acima é verificado por um teste automatizado: se um ficheiro deixasse de corresponder ao que esta página afirma, o build falharia. Duas fixtures herdadas foram reparadas assim antes da publicação: três IBAN falhavam o mod-97 e vários nomes usavam caracteres fora do conjunto SEPA básico.