Zum Hauptinhalt springen
VeriFactu

Die Aufgabe «Verifactu: Nightly Integrity Check»: was sie tut und worauf Sie achten sollten

Die Aufgabe Verifactu: Nightly Integrity Check läuft einmal täglich, ist nach der Installation aktiv und berechnet für jede aktive Kette den Hash aller Datensätze neu und vergleicht ihn mit dem gespeicherten. Passt einer nicht, bricht sie dort ab und löst die Warnung wegen Kettenbruchs aus. Hier erfahren Sie, was sie bei jedem Durchlauf tut und worauf Sie achten sollten, wenn sie nichts zu tun scheint.

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

Das Wichtigste

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

Was sie bei jedem Durchlauf tut

Die Aufgabe sucht die aktiven Ketten und ruft für jede die Integritätsprüfung auf. Alles Wichtige passiert innerhalb dieser Prüfung: Sie berechnet den Hash jedes Datensatzes neu und vergleicht ihn mit dem gespeicherten. Der Hash ist ein SHA-256 des Datensatzes, verkettet mit dem vorherigen, und die AEAT berechnet ihn selbstständig nach: Passt er nicht, nimmt sie den Datensatz mit einem Fehler an, der behoben werden muss.

Die Aufgabe existiert in allen veröffentlichten Zweigen des Moduls (17.0, 18.0, 19.0 und 20.0), das in Odoo Apps für diese vier Versionen veröffentlicht ist. Dieses Schema fasst die Aufgabe und das Menü zusammen, über das die Ketten geöffnet werden:

Mit Code erstelltes Schema, kein Odoo-Bildschirm: oben die geplante Aufgabe, die einmal täglich läuft und nach der Installation aktiv ist, darunter das Menü Verifactu / SIF › Compliance Records › Chain State
Aus dem Code des Moduls erzeugtes Schema, kein Odoo-Screenshot.

Details, die in der Ansicht nicht zu sehen sind

Sie prüft nur die aktiven Ketten, eine nach der anderen

Die Aufgabe geht nicht alle vorhandenen Ketten durch: Sie sucht ausschließlich die aktiven und startet die Prüfung jeder einzelnen getrennt. Jede Kette gehört zu einem Unternehmen. In der Ansicht von All Chain States (Asesoría) finden Sie das Feld Company, um zu erkennen, um welches es sich handelt.

Sie liest bei jedem Durchlauf die ganze Kette

Die Prüfung führt eine Abfrage aus, die die Erfassungs- und Stornierungsdatensätze des Unternehmens zusammenführt und nach Datensatznummer sortiert. Danach geht sie sie von Anfang bis Ende durch. Der Code beginnt nicht an einem Zwischenpunkt: Jeder Durchlauf startet beim ersten Datensatz.

Sie berechnet jeden Hash aus den gespeicherten Daten neu

Für jeden Erfassungsdatensatz rekonstruiert der Code den Hash aus diesen gespeicherten Daten: Steuernummer des Ausstellers, Seriennummer, Ausstellungsdatum, Rechnungstyp (F1, wenn leer), aus den Bemessungsgrundlagen berechnete Gesamtsteuer, Gesamtbetrag, Hash des vorherigen Datensatzes sowie Datum und Uhrzeit der Erzeugung mit Zeitzone. Der erste Datensatz geht von einem leeren vorherigen Hash aus.

Die Steuernummer des Ausstellers wird ohne das Präfix ES verwendet. Hat das Unternehmen eine eigene Steuernummer für Verifactu, bevorzugt der Code sie gegenüber der allgemeinen Umsatzsteuer-Identifikationsnummer. Ändert sich eine dieser Angaben nach der Erzeugung des Datensatzes, stimmt der neu berechnete Hash nicht mehr mit dem gespeicherten überein.

Stornierungen werden mit anderen Bezeichnungen berechnet

Die Stornierungsdatensätze verwenden eine eigene Formel: Sie enthalten weder Rechnungstyp noch Steuer noch Betrag, und ihre Bezeichnungen sind die der stornierten Rechnung. Der Code akzeptiert außerdem Stornierungen, die vor Version 1.3.4 des Moduls erzeugt wurden und mit den Bezeichnungen der Erfassungsdatensätze berechnet wurden: Stimmt der gespeicherte Hash mit dieser alten Berechnung überein, gilt er als korrekt.

Sie stoppt beim ersten Bruch und warnt

Sobald ein gespeicherter Hash nicht mit dem neu berechneten übereinstimmt, hält die Prüfung an: Sie macht mit den folgenden Datensätzen dieser Kette nicht weiter. Sie gibt zurück, wie viele Datensätze bis dahin geprüft wurden, und den ersten gebrochenen Datensatz mit Datensatznummer, Seriennummer, erwartetem und gespeichertem Hash.

Derselbe Schritt löst die Warnung wegen Kettenbruchs für das Unternehmen aus, mit der Datensatznummer und der Seriennummer, an der die Kette gebrochen ist. Passt die gesamte Kette, gibt die Prüfung zurück, dass sie bestanden wurde, zusammen mit der Gesamtzahl der geprüften Datensätze.

Die Häufigkeit ist einmal täglich, und in Odoo 17 wiederholt sie sich endlos

Die Aufgabe läuft einmal täglich und ist nach der Installation aktiv. In Odoo 17.0 ist sie zusätzlich so konfiguriert, dass sie sich endlos wiederholt.

Wenn sie nichts zu tun scheint

Bevor Sie die Aufgabe verdächtigen, gehen Sie Folgendes durch:

  • Gibt es eine aktive Kette? Wenn keine existiert, liefert die Suche nichts und es gibt nichts zu prüfen.
  • Ist die Aufgabe noch aktiv? Sie ist nach der Installation aktiv; wenn sie nicht läuft, prüfen Sie, ob sie noch aktiv ist.
  • Was ist von einem korrekten Durchlauf zu erwarten? Die Aufgabe ruft nur die Prüfung jeder Kette auf, und eine intakte Kette gibt zurück, dass sie bestanden wurde, mit ihrer Gesamtzahl geprüfter Datensätze. Ein Bruch löst die Warnung wegen Kettenbruchs aus.
  • Sehen Sie das Menü? Die Ansichten jeder Kette öffnen Sie über Verifactu / SIF › Compliance Records › Chain State. Jeder Abschnitt verlangt andere Berechtigungen.
Liste von Verifactu / SIF › Compliance Records › Chain State mit nur einer Zeile des Demo-Unternehmens, aktiv und mit Summen auf null
Die Liste, noch ohne Datensätze: eine einzige Zeile und der Rest des Bildschirms leer.

Die Menüberechtigungen, Abschnitt für Abschnitt

Wenn Sie die Berechtigung für einen Abschnitt nicht haben, sehen Sie diesen Abschnitt nicht. Das sind die Berechtigungen, die jeder verlangt:

MenüabschnittBerechtigungen, die ihn anzeigen
Verifactu / SIFAccountant, Asesoría Operator, Auditor (read-only), Privacy Officer, SIF Manager
Compliance RecordsAccountant, Auditor (read-only), SIF Manager
Chain StateAuditor (read-only), SIF Manager

Mit nur der Berechtigung Accountant sehen Sie die ersten beiden Abschnitte, aber nicht Chain State. Wenn jemand sagt, er finde das Menü nicht, prüfen Sie zuerst seine Berechtigungen.

Weitere Lektüre und Hilfe

Wenn Sie Odoo einführen und möchten, dass VeriFactu zu Ihrer Rechnungsstellung passt: FlexigoTech führt Odoo 17, 18, 19 und 20 ein und entwickelt Konnektoren und individuelle Integrationen. Das Modul finden Sie auf seiner Odoo-Apps-Seite.

Weiterlesen

Was die Schaltfläche „Run Pre-flight“ von VeriFactu España tutWas die Schaltfläche Run Pre-flight von VeriFactu España in Odoo tut: wann sie sichtbar ist, was sie je Zeile prüft, was sie speichert.
Geprüft im Quellcode des Moduls (Version 17.0 und 20.0) und in den verlinkten Quellen

Quellen