Zum Hauptinhalt springen
VeriFactu

VeriFactu-Fehler 2000: Die AEAT berechnet Ihren Hash neu und er stimmt nicht überein

Der Hash, auf Spanisch «huella», ist der SHA-256-Wert, der jeden Rechnungsdatensatz mit dem vorherigen verkettet. Die AEAT, die spanische Steuerbehörde, vertraut dem von Ihnen gesendeten Wert nicht: Sie berechnet ihn anhand der Datensatzdaten neu. Ergibt sich ein anderes Ergebnis, antwortet sie mit 2000. Die Rechnung ist registriert, aber mit einem Fehler, der korrigiert werden muss.

FlexigoTech · Verantwortlich: Víctor Gómez · Aktualisiert am 4. November 2026

Das Wichtigste

Versionen
Odoo 17, 18, 19 und 20
Geprüft
im Quellcode des Moduls, Version 20.0 · in den Quellen am Ende
Lesezeit
2 Min.

Ein Fehler, der nicht ablehnt

Der Text der AEAT lautet El cálculo de la huella suministrada es incorrecta., «Die Berechnung des übermittelten Hashs ist falsch», und steht im dritten Abschnitt der Liste, bei den Fehlern, die zur Annahme des Datensatzes führen. Das Validierungsdokument nennt sie zulässige Fehler: Sie verhindern die Registrierung nicht, hinterlassen aber einen Hinweis, dass etwas nicht stimmt, und die AEAT verlangt eine Korrektur («subsanación»), damit sie den Datensatz verarbeiten kann.

Zur gleichen Gruppe gehören die Warnungen zum Format des Hashs des vorherigen Datensatzes, der ein SHA-256 mit 64 hexadezimalen Zeichen in Großbuchstaben sein muss. Diese Codes stehen auf der Seite zur Verkettung.

Karte des VeriFactu-Codes 2000
Die Karte zu 2000: ein Fehler aus dem Abschnitt der Annahmen, der in der Warteschlange des Moduls als gesendet endet.

So wird der Hash berechnet

Die technische Spezifikation der AEAT legt das Verfahren fest: Die Felder des Datensatzes werden in fester Reihenfolge übernommen, als Feld=Wert mit & verbunden, mit SHA-256 gehasht und in Großbuchstaben hexadezimal ausgegeben. Eines dieser Felder ist der Hash des vorherigen Datensatzes, wodurch jeder Datensatz an den vorangehenden gebunden wird.

Schon ein einziges abweichendes Zeichen zwischen dem, was gehasht wurde, und dem, was gesendet wurde, reicht, damit die AEAT ein anderes Ergebnis erhält. Ein um einen Cent abweichender Betrag, ein Datum in einem anderen Format oder eine Rechnungsnummer mit einem zusätzlichen Leerzeichen genügen dafür.

Was das Modul tut, damit es übereinstimmt

  • Es berechnet den Hash beim Verketten des Datensatzes, also beim Buchen der Rechnung, und speichert ihn. Weder der Hash noch der vorherige Hash lassen sich danach ändern.
  • Es sendet CuotaTotal und ImporteTotal mit exakt denselben Zeichenfolgen, die in den Hash eingeflossen sind, damit die AEAT die Berechnung wiederholen kann.
  • Jeden Tag prüft der Cron Verifactu: Nightly Integrity Check die Kette jedes Unternehmens und hinterlegt das Ergebnis unter Registros de Cumplimiento › Estado de la Cadena.
Status der Hash-Kette in Odoo
Der Kettenstatus eines Unternehmens: Integrität, letzte Prüfung, letzter Hash und der Datensatz, mit dem die Kette begonnen hat, mit der Schaltfläche Verificar Integridad. Screenshot aus Odoo 20 mit Demodaten.

Was zu tun ist, wenn ein 2000 kommt

  1. Machen Sie sich um die Rechnung keine Sorgen: Sie ist bei der AEAT registriert. In Odoo erscheint der Datensatz als «Aceptado con errores (subsanar)».
  2. Öffnen Sie Estado de la Cadena und klicken Sie auf Verificar Integridad. Meldet die lokale Kette einen Fehler, liegt das Problem in Odoo und muss untersucht werden, bevor Sie weiter Rechnungen stellen.
  3. Zur Korrektur verlangt die AEAT einen neuen Datensatz mit derselben Rechnungskennung. Das veröffentlichte Modul sendet Korrekturdatensätze nicht von selbst, schreiben Sie uns daher an comercial@flexigobe.com mit der Datensatznummer und der gespeicherten Antwort.

Kann ich den Hash von Hand neu berechnen und in Odoo korrigieren?

Nein. Der Rechnungsdatensatz erlaubt keine Änderung des Hashs oder des vorherigen Hashs, und das ist so gewollt: Die Kette muss unveränderlich sein.

Betrifft das die folgenden Rechnungen?

Jeder Datensatz verkettet den vorherigen Hash so, wie er in Odoo gespeichert wurde. Ist die lokale Kette intakt, laufen die nächsten ganz normal weiter.

Weiterlesen

VeriFactu-Fehler bei der Verkettung: der vorherige Datensatz, die Hashwerte und ihre LängenVeriFactu-Fehler der Verkettung (1174, 1175, 1180, 1269, 1291, 2002, 2003, 2008 und die Längen): was die AEAT prüft und wie Odoo jeden Datensatz verkettet.VeriFactu-Fehler 2007: Die AEAT hatte bereits Ihre Rechnungen und erhält einen weiteren «primer registro»VeriFactu-Fehler 2007: Die AEAT hat bereits Rechnungen Ihrer Steuernummer mit demselben System und erhält einen weiteren Erstdatensatz. Ursache in Odoo 17 bis 20.Fehler 2005, 2006, 1210 und 1216 bei VeriFactu: wenn die Summen nicht zur Aufschlüsselung passenVeriFactu-Fehler bei ImporteTotal und CuotaTotal (2005, 2006, 1210, 1216): was die AEAT addiert, die 10-Euro-Toleranz und warum die IRPF-Einbehaltung nicht einfließt.
Geprüft im Quellcode des Moduls (Version 20.0) und in den verlinkten Quellen

Quellen