Validate Spanish Facturae XML against the official facturae.gob.es schema and Spanish business rules: NIF/CIF/NIE checksums, line and invoice totals, batch consistency and IBAN MOD-97. All three FACe-accepted versions supported. Free, no signup, instant report with Spanish-specific error codes (FE-R001 to FE-R010).
Drag and drop the XML file. The root element is <fe:Facturae> with the version-specific namespace — the standard facturae.gob.es structure. The validator auto-detects Facturae and routes to the dedicated Spanish validator.
2
Schema validation + business rules
The validator reads the schema version from the root namespace and applies the matching official XSD (3.2, 3.2.1 or 3.2.2). Then it runs the FE-R001…R010 business rules covering NIF/CIF checksums, line arithmetic, invoice and batch totals, IBAN MOD-97 and XAdES signature presence.
3
Read the report
Schema errors come back with XSD line/column references; business-rule violations are reported with the Spanish rule code (FE-R001 through FE-R010) and a plain description — so you can fix the file before signing and submitting to FACe.
What the Facturae validator checks
Official XSD (3.2 / 3.2.1 / 3.2.2)
Per-document version detection from the root namespace. Every version FACe accepts is bundled, straight from facturae.gob.es. Structural errors fire with line and column numbers.
Spanish business rules (FE-R001–R010)
Invoice number presence (R001), issue date validity (R002), seller and buyer NIF/CIF/NIE checksum validation for Spanish residents (R003, R004), line arithmetic quantity × unit price (R005), tax output consistency (R006), invoice totals chain (R007), batch totals and invoice count (R008) and IBAN MOD-97 verification (R009).
XAdES signature reminder
FACe only accepts signed invoices (.xsig). The validator warns (FE-R010) when no XAdES signature is present, so you remember to sign the file with AutoFirma — the free official signing tool — before submission. The XML content is validated either way.
Automatic format detection
The validator auto-detects Facturae from the <Facturae> root element. PEPPOL, XRechnung and Factur-X invoices use different XML structures and get routed to their own pipelines — you never have to pick a format manually.
Why a separate Facturae validator?
Facturae is Spain's national e-invoice format, published by the Ministerio de Asuntos Económicos and mandatory for invoices to Spanish public administrations since 2015 (via the FACe platform). The XML structure has nothing in common with PEPPOL UBL or EN 16931 CII — its own schema, its own party and tax structures, Spanish tax identifiers (NIF/CIF/NIE) and an invoice-batch wrapper. Generic PEPPOL or EN 16931 validators reject Facturae documents as "invalid XML" because they don't recognise the structure.
The aiDoks validator handles Facturae as a first-class format alongside PEPPOL, XRechnung, Factur-X and EN 16931. Upload your Facturae XML, get the full validation report with both XSD schema errors and Spanish business-rule violations, and fix issues before signing with AutoFirma and submitting through FACe or your recipient's channel.
Common Facturae validation errors
FE-R003 — Seller NIF/CIF fails the checksum. Usually a typo, or a VAT ID pasted with the ES country prefix into a field expecting the bare number — the validator accepts both but the digits must check out.
FE-R005 — Line total mismatch. TotalCost must equal Quantity × UnitPriceWithoutTax within ±0.01 — rounding per line, not per invoice, is the usual culprit.
FE-R007 — Invoice totals chain broken. InvoiceTotal must equal gross before taxes + tax outputs − taxes withheld (IRPF); spreadsheets that round intermediate values often break this.
FE-R008 — Batch header inconsistent. The FileHeader/Batch totals and invoice count must match the invoices actually present in the file.
FE-R010 — No XAdES signature. The XML itself is fine, but FACe will reject an unsigned file — sign it with AutoFirma (XAdES-EPES) to produce the .xsig before submitting.
Facturae, FACe and the Crea y Crece B2B mandate
Today Facturae is required B2G: suppliers to Spanish public administrations submit signed Facturae through FACe (or FACeB2B for subcontracting). Spain's upcoming B2B e-invoicing obligation under the Crea y Crece law is expected to accept several structured syntaxes — Facturae among them alongside EN 16931 formats. Validating your Facturae against the official schema and business rules now means both your B2G submissions and your future B2B flows are clean.
Facturae validator: FAQ
What is the Facturae format?
Facturae is Spain's national e-invoice XML format, published by the Ministerio de Asuntos Económicos on facturae.gob.es. It has been mandatory for invoices to Spanish public administrations since 2015, submitted through the FACe platform (or FACeB2B for subcontractor flows). It is distinct from PEPPOL UBL and EN 16931 CII — its own schema, its own party/tax structures and an invoice-batch wrapper. The validator supports versions 3.2, 3.2.1 and 3.2.2, the three versions FACe accepts.
Why does FACe reject my Facturae invoice?
The most common reasons: the file is not signed (FACe only accepts XAdES-signed .xsig files), the XML fails schema validation for the declared version, the seller or buyer NIF fails its checksum or does not match the registered entity, or the totals are arithmetically inconsistent. The aiDoks validator catches the schema and business-rule problems before you submit — and warns you if the signature is missing.
Does the validator check the XAdES signature?
It checks whether a signature is present and warns (FE-R010) when it is not, because FACe will reject unsigned files. It does not cryptographically verify the signature — for that use AutoFirma or the government VALIDe service. The recommended flow: validate the XML content here first, fix any issues, then sign with AutoFirma as the final step (re-signing after every fix wastes time).
What does the Facturae validator check?
Two layers: XSD validation against the official facturae.gob.es schema for the version declared in the document (3.2 / 3.2.1 / 3.2.2, detected from the root namespace), plus Spanish business rules: invoice number and issue date (FE-R001, FE-R002), NIF/CIF/NIE checksum validation for resident parties (FE-R003, FE-R004), line arithmetic (FE-R005), tax output consistency (FE-R006), the invoice totals chain including IRPF withholdings (FE-R007), batch header totals and count (FE-R008), IBAN MOD-97 (FE-R009) and signature presence (FE-R010).
Is Facturae the same as the European EN 16931 e-invoice?
No. EN 16931 defines the European semantic core, expressed as UBL or CII syntax (PEPPOL BIS 3.0, XRechnung, Factur-X are all EN 16931 profiles). Facturae is an older, independent Spanish schema. Spain's upcoming Crea y Crece B2B mandate is expected to accept several structured syntaxes, Facturae among them. aiDoks validates both worlds — Facturae here, and PEPPOL/XRechnung/Factur-X/EN 16931 with the same uploader.
Is the Facturae validator free to use?
Yes, free and no account required. Upload your Facturae XML and get an instant report with schema errors (line/column) and Spanish business-rule violations flagged with codes FE-R001 through FE-R010.