ValidateFin

Verifactu Validator Spain

Controleer je facturatierecords — en hun geketende hash — vóór je ze naar de AEAT stuurt. In je browser, zonder upload.

AEAT controlsOfficial AEAT XSDHuella recomputed100% local
100% Lokaal

Wat is Verifactu, en wat valideert deze tool?

Verifactu is de wijze waarop een Spaans facturatiesysteem (SIF, geregeld door Koninklijk Besluit 1007/2023 en Order HAC/1177/2024) gegevens naar de AEAT, de Spaanse belastingdienst, stuurt. De AEAT ontvangt geen factuur in UBL-zin, maar facturatierecords: één RegistroAlta per uitgereikte factuur en één RegistroAnulacion per annulering, gebundeld in een RegFactuSistemaFacturacion-zending. Elk record draagt een huella: een geketende SHA-256-vingerafdruk die de huella van het vorige record opneemt, zodat de factuurketen niet ongemerkt kan worden gewijzigd. Deze gratis validator controleert het bestand in twee lagen: eerst tegen het officiële XSD van de AEAT (SuministroLR.xsd en SuministroInformacion.xsd), daarna tegen de weigeringscontroles die de AEAT zelf publiceert in «Validaciones y errores» (v1.2.2, 08/04/2026), met exact de officiële code — 1108, 1130, 1142, 1152, 1177, 1189/1190, 1195/1196, 1223… — en hij HERBEREKENT de huella van elk record, met reproductie van de drie officiële testvectoren van de AEAT. Alles draait in je browser: het record verlaat je toestel nooit.

In het kort

  • Officieel XSD van de AEAT (SuministroLR.xsd + SuministroInformacion.xsd)
  • De weigeringscontroles van de AEAT, met hun officiële code: 1108, 1130, 1142, 1152, 1177, 1189/1190, 1223…
  • De huella herberekend: geketende SHA-256, met de 3 officiële testvectoren van de AEAT
  • RegistroAlta en RegistroAnulacion · vrijwillige verzending (VERI*FACTU) of op requerimiento
  • Weigering onderscheiden van «aanvaard met fouten» (reeks 2xxx), precies zoals de AEAT doet
  • 100% in je browser: het record wordt nooit geüpload

Verifactu-validator: controleer je facturatierecords — en hun huella — vóór de AEAT ze ziet

Spaanse facturatiesystemen (SIF), geregeld door Koninklijk Besluit 1007/2023 en Order HAC/1177/2024, sturen de AEAT geen facturen maar facturatierecords: één RegistroAlta per uitgereikte factuur, één RegistroAnulacion per annulering, gebundeld in een RegFactuSistemaFacturacion-zending. De AEAT valideert ze stuk voor stuk en antwoordt met een code: aanvaard, aanvaard met fouten, of geweigerd.

De tool werkt in twee lagen. Eerst het officiële XSD van de AEAT (SuministroLR.xsd en SuministroInformacion.xsd): structuur, types, kardinaliteiten en gesloten opsommingen. Daarna de weigeringscontroles die de AEAT zelf publiceert in «Validaciones y errores» (v1.2.2, 08/04/2026), met hun exacte code: 1108 (NIF van de uitreiker wijkt af van de obligado), 1114/1115, 1116/1117 en 1118/1119 (coherentie van corrigerende en vervangen facturen), 1130 (verboden tekens in NumSerieFactura), 1138/1139 (macrodato), 1142 (CuotaRepercutida tegenover maatstaf en tarief), 1152, 1177 (IdSistemaInformatico), 1189/1190 (het blok Destinatarios, gestuurd door TipoFactura), 1195/1196 (OperacionExenta en CalificacionOperacion sluiten elkaar uit) en 1223.

En hij doet wat vrijwel niemand doet: hij HERBEREKENT de huella. Elk record draagt een SHA-256-vingerafdruk die de huella van het vorige record opneemt — vandaar «geketende hash» — en niemand kan die controleren zonder de berekening teken voor teken over te doen. Onze implementatie reproduceert de drie officiële vectoren uit het AEAT-document «Especificaciones técnicas para generación de la huella o hash» (v0.1.2, 27/08/2024). Alles draait in je browser: het record wordt nooit verzonden.

Kernpunten

  • De huella is een GEKETENDE SHA-256-hash: elk record neemt de huella van het vorige op. Dat maakt de factuurketen onvervalsbaar — en dat is precies wat niemand nagaat zonder te herrekenen.
  • Een foute huella is GEEN weigering: het is code 2000, uit de reeks 2xxx «aanvaard met fouten». De AEAT boekt het record toch en vraagt om correctie. Onze taxonomie volgt die van de AEAT, niet de intuïtie.
  • Fout 1142 is pure rekenkunde: CuotaRepercutida tegenover BaseImponibleOimporteNoSujeto en TipoImpositivo. Het XSD aanvaardt zo'n record zonder blikken of blozen; de AEAT weigert het.
  • De codes 1189 en 1190 zijn symmetrisch: is TipoFactura F1, F3, R1, R2, R3 of R4, dan is het blok Destinatarios verplicht; is het F2 of R5, dan is het verboden.
  • Ongeveer de helft van de controles vereist een register van de AEAT (het NIF-censo, de duplicatenhistoriek, het handtekeningcertificaat). De tool somt ze op het scherm op in plaats van ze achter een groen vinkje te verstoppen.

Veelgestelde vragen

Stuurt deze validator mijn bestand naar de AEAT?

Nee. Het record wordt volledig in je browser gelezen en geanalyseerd: er wordt niets verzonden. Hier valideren is niet indienen, en vervangt de verzending via je eigen kanaal niet.

Wat is de huella precies, en waarom herberekenen jullie ze?

Het is de vingerafdruk van het record: een SHA-256-reeks, opgebouwd uit specifieke velden van het record ÉN uit de huella van het vorige record. Zo geketend vormen de records een reeks die niet achteraf kan worden gewijzigd zonder de keten te breken. Ze nagaan betekent de berekening exact overdoen — veldvolgorde, opmaak, codering — en dat is precies wat wij doen: onze implementatie reproduceert de drie officiële testvectoren van de AEAT.

Wordt het record geweigerd als de huella fout is?

Nee — en dat is het contra-intuïtieve. Een foute huella is code 2000, uit de reeks 2xxx «aanvaard met fouten»: de AEAT registreert het record en vraagt je het te corrigeren. Daarom verschijnt het hier als melding en niet als weigering: we volgen de taxonomie van de AEAT.

Wat betekent fout 1142?

Dat CuotaRepercutida niet klopt met BaseImponibleOimporteNoSujeto en TipoImpositivo binnen dezelfde uitsplitsing. Een rekenkundige controle die het XSD nooit kan zien — en een van de meest voorkomende weigeringsoorzaken.

Waarom kan een hier «geldig» record toch worden geweigerd?

Omdat sommige controles een databank vereisen die we niet kunnen bereiken zonder je bestand te uploaden: bestaat het NIF in het censo (1109/4107), is het record een duplicaat in de historiek van de AEAT (3000), machtigt het handtekeningcertificaat de verzender (4112). Ook de tijdmarge (2004) is niet implementeerbaar: de cijfermatige drempel is nergens gepubliceerd — de officiële tekst stopt letterlijk bij «admitiéndose un margen de error de:». De tool somt ze allemaal op in plaats van te laten geloven dat ze gecontroleerd zijn.

Waar komen de regels vandaan?

Uitsluitend uit officiële documenten: de XSD-schema's van de AEAT (SuministroLR.xsd, SuministroInformacion.xsd), de controlelijst «Validaciones y errores» v1.2.2 (08/04/2026) en de «Especificaciones técnicas para generación de la huella o hash» v0.1.2 (27/08/2024). Origen de los datos: Agencia Estatal de Administración Tributaria (schema's opgehaald op 13/07/2026). ValidateFin is een onafhankelijke tool, niet gecertificeerd en niet gesteund door de AEAT.

ValidateFin is an independent tool. It is not certified, approved, affiliated with or endorsed by the Agencia Estatal de Administración Tributaria (AEAT), and nothing here should be read as suggesting otherwise. “Official” refers only to the artefacts used — the AEAT’s XSD schemas (SuministroLR.xsd, SuministroInformacion.xsd), its “Validaciones y errores” control list (v1.2.2, 08/04/2026) and its hash specification (“Especificaciones técnicas para generación de la huella o hash”, v0.1.2, 27/08/2024) — not to any accreditation of this tool. Origen de los datos: Agencia Estatal de Administración Tributaria — schemas and control lists retrieved on 13 July 2026. About half of the AEAT’s controls query a government registry (the censo for NIF checks, the duplicate history, the signing certificate) and cannot run in a browser; the tool lists them on screen rather than hiding them behind a green badge. Validating a file here does not submit it to the AEAT.