Facturae 3.2.2 — totales incoherentes (válida contra el XSD)
Hetzelfde bestand, met één wijziging: InvoiceTotal declareert € 1.200,00 waar de formule van het schema € 1.210,00 geeft (grondslag 1.000 + btw 210). Het bestand is GELDIG volgens het officiële facturae.gob.es-XSD — een validator die alleen het schema bekijkt keurt het goed. Alleen de coherentielaag ontdekt het, en meldt bovendien dat het lottotaal niet meer klopt. Geen “officiële” weigering: Facturae/FACe publiceert geen offline te controleren weigeringscodes, dus een waarschuwing, geen fout.
3.2.2 — Geldig
Hetzelfde bestand, met één wijziging: InvoiceTotal declareert € 1.200,00 waar de formule van het schema € 1.210,00 geeft (grondslag 1.000 + btw 210). Het bestand is GELDIG volgens het officiële facturae.gob.es-XSD — een validator die alleen het schema bekijkt keurt het goed. Alleen de coherentielaag ontdekt het, en meldt bovendien dat het lottotaal niet meer klopt. Geen “officiële” weigering: Facturae/FACe publiceert geen offline te controleren weigeringscodes, dus een waarschuwing, geen fout.
Wat dit bestand laat zien
Hetzelfde bestand, met één wijziging: InvoiceTotal declareert € 1.200,00 waar de formule van het schema € 1.210,00 geeft (grondslag 1.000 + btw 210). Het bestand is GELDIG volgens het officiële facturae.gob.es-XSD — een validator die alleen het schema bekijkt keurt het goed. Alleen de coherentielaag ontdekt het, en meldt bovendien dat het lottotaal niet meer klopt. Geen “officiële” weigering: Facturae/FACe publiceert geen offline te controleren weigeringscodes, dus een waarschuwing, geen fout.
| Transacties | 1 |
|---|---|
| Totaal | € 1.200,00 |
| Datum in het bestand | 2026-01-15 |
De gebreken die het bevat
- 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 €).
Letterlijk geciteerd uit de validator, niet geparafraseerd.
Alle partijen, IBAN's en bedragen hieronder zijn fictief. De IBAN's zijn structureel geldig — ze doorstaan de mod-97-controle — maar horen bij geen enkele echte rekening.
Bestandsinhoud
<?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.
Hoe we weten dat deze resultaten kloppen
Elk bestand in deze bibliotheek gaat bij elke build door de eigen validator van de site. Het hierboven vermelde verwachte resultaat wordt door een geautomatiseerde test bevestigd: zou een bestand niet meer overeenkomen met wat deze pagina beweert, dan faalt de build. Twee overgeërfde fixtures zijn zo vóór publicatie hersteld: drie IBAN's zakten voor de mod-97-controle en meerdere namen gebruikten tekens buiten de SEPA-basistekenset.