Facturae 3.2.2 — totales incoherentes (válida contra el XSD)
Ten sam plik, z jedną zmianą: InvoiceTotal deklaruje 1200,00 € tam, gdzie formuła schematu daje 1210,00 € (podstawa 1000 + VAT 210). Plik jest POPRAWNY względem oficjalnego XSD facturae.gob.es — walidator patrzący tylko na schemat go przepuszcza. Wykrywa to dopiero warstwa spójności, sygnalizując też, że suma partii już się nie zgadza. To nie „oficjalne” odrzucenie: Facturae/FACe nie publikuje weryfikowalnych offline kodów odrzucenia, więc to ostrzeżenie, nie błąd.
3.2.2 — Prawidłowy
Ten sam plik, z jedną zmianą: InvoiceTotal deklaruje 1200,00 € tam, gdzie formuła schematu daje 1210,00 € (podstawa 1000 + VAT 210). Plik jest POPRAWNY względem oficjalnego XSD facturae.gob.es — walidator patrzący tylko na schemat go przepuszcza. Wykrywa to dopiero warstwa spójności, sygnalizując też, że suma partii już się nie zgadza. To nie „oficjalne” odrzucenie: Facturae/FACe nie publikuje weryfikowalnych offline kodów odrzucenia, więc to ostrzeżenie, nie błąd.
Co pokazuje ten plik
Ten sam plik, z jedną zmianą: InvoiceTotal deklaruje 1200,00 € tam, gdzie formuła schematu daje 1210,00 € (podstawa 1000 + VAT 210). Plik jest POPRAWNY względem oficjalnego XSD facturae.gob.es — walidator patrzący tylko na schemat go przepuszcza. Wykrywa to dopiero warstwa spójności, sygnalizując też, że suma partii już się nie zgadza. To nie „oficjalne” odrzucenie: Facturae/FACe nie publikuje weryfikowalnych offline kodów odrzucenia, więc to ostrzeżenie, nie błąd.
| Transakcje | 1 |
|---|---|
| Suma | 1200,00 € |
| Data w pliku | 2026-01-15 |
Zawarte wady
- CALC-TOTALInvoiceTotal declara 1200,00 € donde la fórmula del esquema (TotalGrossAmountBeforeTaxes 1000 + TotalTaxOutputs 210 − TotalTaxesWithheld 0) da 1210,00 €.
- CALC-BATCHTotalInvoicesAmount del lote (1210,00 €) no coincide con la suma de los InvoiceTotal (1200,00 €).
Cytowane dosłownie z walidatora, bez parafrazy.
Wszystkie strony, numery IBAN i kwoty poniżej są fikcyjne. IBAN-y są poprawne strukturalnie — przechodzą test mod-97 — ale nie należą do żadnego rzeczywistego rachunku.
Zawartość pliku
<?xml version="1.0" encoding="UTF-8"?>
<fe:Facturae xmlns:fe="http://www.facturae.gob.es/formato/Versiones/Facturaev3_2_2.xml" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<FileHeader>
<SchemaVersion>3.2.2</SchemaVersion>
<Modality>I</Modality>
<InvoiceIssuerType>EM</InvoiceIssuerType>
<Batch>
<BatchIdentifier>FAC2026-0001</BatchIdentifier>
<InvoicesCount>1</InvoicesCount>
<TotalInvoicesAmount>
<TotalAmount>1210.00</TotalAmount>
</TotalInvoicesAmount>
<TotalOutstandingAmount>
<TotalAmount>1210.00</TotalAmount>
</TotalOutstandingAmount>
<TotalExecutableAmount>
<TotalAmount>1210.00</TotalAmount>
</TotalExecutableAmount>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
</Batch>
</FileHeader>
<Parties>
<SellerParty>
<TaxIdentification>
<PersonTypeCode>J</PersonTypeCode>
<ResidenceTypeCode>R</ResidenceTypeCode>
<TaxIdentificationNumber>A58818501</TaxIdentificationNumber>
</TaxIdentification>
<LegalEntity>
<CorporateName>Suministros Técnicos del Ebro SL</CorporateName>
<AddressInSpain>
<Address>Calle Mayor 12</Address>
<PostCode>50001</PostCode>
<Town>Zaragoza</Town>
<Province>Zaragoza</Province>
<CountryCode>ESP</CountryCode>
</AddressInSpain>
</LegalEntity>
</SellerParty>
<BuyerParty>
<TaxIdentification>
<PersonTypeCode>J</PersonTypeCode>
<ResidenceTypeCode>R</ResidenceTypeCode>
<TaxIdentificationNumber>P5000000I</TaxIdentificationNumber>
</TaxIdentification>
<AdministrativeCentres>
<AdministrativeCentre>
<CentreCode>L01502973</CentreCode>
<RoleTypeCode>01</RoleTypeCode>
<Name>Intervención General</Name>
<AddressInSpain>
<Address>Plaza del Pilar 18</Address>
<PostCode>50001</PostCode>
<Town>Zaragoza</Town>
<Province>Zaragoza</Province>
<CountryCode>ESP</CountryCode>
</AddressInSpain>
</AdministrativeCentre>
<AdministrativeCentre>
<CentreCode>L01502974</CentreCode>
<RoleTypeCode>02</RoleTypeCode>
<Name>Órgano Gestor</Name>
<AddressInSpain>
<Address>Plaza del Pilar 18</Address>
<PostCode>50001</PostCode>
<Town>Zaragoza</Town>
<Province>Zaragoza</Province>
<CountryCode>ESP</CountryCode>
</AddressInSpain>
</AdministrativeCentre>
<AdministrativeCentre>
<CentreCode>L01502975</CentreCode>
<RoleTypeCode>03</RoleTypeCode>
<Name>Unidad Tramitadora</Name>
<AddressInSpain>
<Address>Plaza del Pilar 18</Address>
<PostCode>50001</PostCode>
<Town>Zaragoza</Town>
<Province>Zaragoza</Province>
<CountryCode>ESP</CountryCode>
</AddressInSpain>
</AdministrativeCentre>
</AdministrativeCentres>
<LegalEntity>
<CorporateName>Ayuntamiento de Zaragoza</CorporateName>
<AddressInSpain>
<Address>Plaza del Pilar 18</Address>
<PostCode>50001</PostCode>
<Town>Zaragoza</Town>
<Province>Zaragoza</Province>
<CountryCode>ESP</CountryCode>
</AddressInSpain>
</LegalEntity>
</BuyerParty>
</Parties>
<Invoices>
<Invoice>
<InvoiceHeader>
<InvoiceNumber>0001</InvoiceNumber>
<InvoiceSeriesCode>2026</InvoiceSeriesCode>
<InvoiceDocumentType>FC</InvoiceDocumentType>
<InvoiceClass>OO</InvoiceClass>
</InvoiceHeader>
<InvoiceIssueData>
<IssueDate>2026-01-15</IssueDate>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<TaxCurrencyCode>EUR</TaxCurrencyCode>
<LanguageName>es</LanguageName>
</InvoiceIssueData>
<TaxesOutputs>
<Tax>
<TaxTypeCode>01</TaxTypeCode>
<TaxRate>21.00</TaxRate>
<TaxableBase>
<TotalAmount>1000.00</TotalAmount>
</TaxableBase>
<TaxAmount>
<TotalAmount>210.00</TotalAmount>
</TaxAmount>
</Tax>
</TaxesOutputs>
<InvoiceTotals>
<TotalGrossAmount>1000.00</TotalGrossAmount>
<TotalGrossAmountBeforeTaxes>1000.00</TotalGrossAmountBeforeTaxes>
<TotalTaxOutputs>210.00</TotalTaxOutputs>
<TotalTaxesWithheld>0.00</TotalTaxesWithheld>
<InvoiceTotal>1200.00</InvoiceTotal>
<TotalOutstandingAmount>1200.00</TotalOutstandingAmount>
<TotalExecutableAmount>1200.00</TotalExecutableAmount>
</InvoiceTotals>
<Items>
<InvoiceLine>
<ItemDescription>Servicio de mantenimiento informático</ItemDescription>
<Quantity>10</Quantity>
<UnitOfMeasure>01</UnitOfMeasure>
<UnitPriceWithoutTax>100.000000</UnitPriceWithoutTax>
<TotalCost>1000.00</TotalCost>
<GrossAmount>1000.00</GrossAmount>
<TaxesOutputs>
<Tax>
<TaxTypeCode>01</TaxTypeCode>
<TaxRate>21.00</TaxRate>
<TaxableBase>
<TotalAmount>1000.00</TotalAmount>
</TaxableBase>
<TaxAmount>
<TotalAmount>210.00</TotalAmount>
</TaxAmount>
</Tax>
</TaxesOutputs>
</InvoiceLine>
</Items>
<PaymentDetails>
<Installment>
<InstallmentDueDate>2026-02-15</InstallmentDueDate>
<InstallmentAmount>1210.00</InstallmentAmount>
<PaymentMeans>04</PaymentMeans>
<AccountToBeCredited>
<IBAN>ES9121000418450200051332</IBAN>
</AccountToBeCredited>160 / 186 lines shown — the complete file is in the download above.
Skąd wiemy, że te wyniki są aktualne
Każdy plik w tej bibliotece przechodzi przez walidator serwisu przy każdym buildzie. Oczekiwany wynik podany wyżej potwierdza test automatyczny: gdyby plik przestał odpowiadać temu, co głosi ta strona, build by się wywalił. Dwie odziedziczone fikstury naprawiono w ten sposób przed publikacją: trzy numery IBAN nie przechodziły mod-97, a kilka nazw używało znaków spoza podstawowego zestawu SEPA.