ValidateFin

Facturae 3.2.2 — totales incoherentes (válida contra el XSD)

The same file, with one change: InvoiceTotal declares €1,200.00 where the schema’s own formula gives €1,210.00 (base 1,000 + VAT 210). The file is VALID against the official facturae.gob.es XSD — a schema-only validator passes it. Only the coherence layer catches it, and it also flags that the batch total no longer reconciles. This is not an “official” rejection: Facturae/FACe publishes no offline-verifiable rejection codes, so it is a warning, not an error.

3.2.2 — Valid

The same file, with one change: InvoiceTotal declares €1,200.00 where the schema’s own formula gives €1,210.00 (base 1,000 + VAT 210). The file is VALID against the official facturae.gob.es XSD — a schema-only validator passes it. Only the coherence layer catches it, and it also flags that the batch total no longer reconciles. This is not an “official” rejection: Facturae/FACe publishes no offline-verifiable rejection codes, so it is a warning, not an error.

Facturae invoice (Spain, FACe) 3.2.2 Ministerio de Hacienda — Facturae 3.2.2 (facturae.gob.es)Expected result: Valid — 2 warnings

What this file shows

The same file, with one change: InvoiceTotal declares €1,200.00 where the schema’s own formula gives €1,210.00 (base 1,000 + VAT 210). The file is VALID against the official facturae.gob.es XSD — a schema-only validator passes it. Only the coherence layer catches it, and it also flags that the batch total no longer reconciles. This is not an “official” rejection: Facturae/FACe publishes no offline-verifiable rejection codes, so it is a warning, not an error.

Transactions1
Total€1,200.00
Date in the file2026-01-15

The defects it carries

  • 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 €).

Quoted verbatim from the validator, not paraphrased.

Last verified: License: CC-BY-4.0

Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.

File content

<?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.

How we know these results hold

Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.

Facturae invoice (Spain, FACe)