Naar hoofdinhoud
VeriFactu

VeriFactu-fout 2000: de AEAT berekent je hash opnieuw en die komt niet overeen

De hash ("huella" in het Spaans) is de SHA-256-samenvatting die elke factuurregistratie aan de vorige koppelt. De AEAT, de Spaanse belastingdienst, vertrouwt de hash die je stuurt niet: ze berekent hem opnieuw met de gegevens van de registratie. Komt ze op een ander resultaat uit, dan antwoordt ze met 2000. De factuur is geregistreerd, maar met een fout die hersteld moet worden.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Module
VeriFactu
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 20.0 · in de bronnen onderaan
Leestijd
3 min

Een fout die niet afwijst

De AEAT-tekst luidt El cálculo de la huella suministrada es incorrecta. ("de berekening van de opgegeven hash is onjuist") en staat in het derde onderdeel van de lijst, dat van de fouten die leiden tot acceptatie van de registratie. Het validatiedocument noemt ze toelaatbare fouten: ze verhinderen de registratie niet, maar laten een melding achter dat er iets niet klopt, en de AEAT vraagt om een correctie ("subsanación") zodat ze die registratie kan verwerken.

Tot dezelfde familie behoren de waarschuwingen over het formaat van de hash van de vorige registratie, die een SHA-256 van 64 hexadecimale tekens in hoofdletters moet zijn. Die codes staan op de pagina over de koppeling.

Kaart van VeriFactu-code 2000
De kaart van de 2000: een fout uit het onderdeel van de geaccepteerde registraties, die in de wachtrij van de module als verzonden eindigt.

Hoe de hash wordt berekend

De technische specificaties van de AEAT leggen het recept vast: de velden van de registratie worden in een vaste volgorde genomen, geschreven als veld=waarde en met & aan elkaar gekoppeld, daarna met SHA-256 gehasht en omgezet naar hexadecimaal in hoofdletters. Eén van die velden is de hash van de vorige registratie; zo is elke registratie vastgemaakt aan de vorige.

Eén enkel teken verschil tussen wat is gehasht en wat is verstuurd is genoeg om de AEAT een ander resultaat te laten krijgen. Een bedrag dat een cent afwijkt, een datum in een ander formaat of een factuurnummer met een extra spatie volstaan al.

Wat de module doet zodat het overeenkomt

  • Berekent de hash op het moment dat de registratie wordt gekoppeld, bij het boeken van de factuur, en slaat hem op. Noch de hash noch de vorige hash kunnen later nog worden gewijzigd.
  • Verstuurt CuotaTotal en ImporteTotal (totale belasting en totaalbedrag) als precies dezelfde tekenreeksen die in de hash zijn opgenomen, zodat de AEAT de berekening kan herhalen.
  • Elke dag loopt de geplande actie Verifactu: Nightly Integrity Check de keten van elk bedrijf na en zet het resultaat in Compliance Records › Chain State.
Status van de hashketen in Odoo
De kettingstatus van een bedrijf: integriteit, laatste controle, laatste hash en de registratie waarmee de keten begon, met de knop Verify Integrity. Schermafbeelding van Odoo 20 met demogegevens.

Wat te doen als je een 2000 krijgt

  1. Maak je geen zorgen over de factuur: ze is geregistreerd bij de AEAT. In Odoo staat de registratie als "Aceptado con errores (subsanar)".
  2. Open Chain State en klik op Verify Integrity. Meldt de lokale keten een fout, dan is het probleem in Odoo begonnen en moet dat worden bekeken voordat je verder factureert.
  3. Om te corrigeren vraagt de AEAT om een nieuwe registratie met dezelfde factuuridentificatie. De gepubliceerde module verstuurt zelf geen correctieregistraties, dus schrijf naar comercial@flexigobe.com met het registratienummer en het opgeslagen antwoord.

Kan ik de hash zelf opnieuw berekenen en in Odoo corrigeren?

Nee. De factuurregistratie laat je de hash en de vorige hash niet wijzigen, en dat is bewust zo: de keten moet onaantastbaar zijn.

Heeft het invloed op de volgende facturen?

Elke registratie koppelt de vorige hash zoals die in Odoo is opgeslagen. Als de lokale keten intact is, verlopen de volgende gewoon.

Lees verder

VeriFactu-fouten in de ketenkoppeling: het vorige record, de hashes en hun lengtesVeriFactu-fouten in de ketenkoppeling (1174, 1175, 1180, 1269, 1291, 2002, 2003, 2008 en de lengtecodes): wat de AEAT controleert en hoe Odoo elk record koppelt.VeriFactu fout 2007: de AEAT had al uw facturen en krijgt een nieuw "primer registro"VeriFactu fout 2007: de AEAT heeft al facturen van uw NIF met hetzelfde systeem en krijgt een ander eerste record. Waar het vandaan komt in Odoo 17 tot 20.Fouten 2005, 2006, 1210 en 1216 van VeriFactu: wanneer de totalen niet kloppen met de uitsplitsingVeriFactu-fouten bij ImporteTotal en CuotaTotal (2005, 2006, 1210 en 1216): wat de AEAT optelt, de marge van 10 euro en waarom de IRPF niet in Odoo 17 tot 20 meetelt.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen