Jeder Fahrtenbuch-Export trägt eine Prüfsumme der Einträge: einen 64-stelligen Code, der aus den Einträgen selbst berechnet wird. Das PDF druckt ihn am Fuß jeder Seite, die CSV wiederholt ihn in der letzten Spalte, und die XLSX nennt ihn auf dem Archivblatt („Aufbewahrung“ auf Deutsch, „Archive note“ auf Englisch). Für dieselben Autos, denselben Zeitraum, Filter und dieselbe Sprache zeigen alle drei denselben Code.
Der Export ist in der Sprache Ihres Landes geschrieben, sofern der Kontoinhaber unter Einstellungen, Exporte & Berichte keine andere gewählt hat. Die Spaltenüberschriften und die Wörter „dienstlich“ und „privat“ gehören zu den Einträgen, daher haben der deutsche und der englische Export derselben Reisen verschiedene Codes. Jeder passt zu seiner eigenen Datei.
Was sie beweist
Ändert jemand nach dem Export auch nur einen Eintrag (ein Datum, einen Ort, eine Strecke, einen Zweck), ergeben die Einträge nicht mehr denselben Code. Ein Code, der noch passt, zeigt also, dass die Einträge genau so sind, wie Viametry sie exportiert hat. Änderungen, die vor dem Export in Viametry gemacht wurden, werden dadurch nicht verborgen: Sie stehen in der Änderungshistorie jedes Exports.
Was sie umfasst
Die Fahrtenbuch-Spalten jeder Zeile, von Datum bis Satz der Pauschale (die ersten achtzehn Spalten, wie auch immer sie in Ihrer Sprache heißen), mit der Kopfzeile. Nicht die letzten fünf Spalten (Anzahl der Änderungen, Änderungshistorie, Änderungen der Reise-Gruppierung, Hinweis zur Aufbewahrung und die Prüfsumme selbst): Sie beschreiben die Einträge, statt welche zu sein.
So berechnen Sie sie neu
Sie brauchen den CSV-Export und Python 3 (auf den meisten Macs und Linux-Rechnern installiert). Speichern Sie das Folgende als check.py neben der CSV und starten Sie es mit dem Dateinamen, zum Beispiel python3 check.py viametry-fahrtenbuch-2026-09-30.csv (der Name ist in der Sprache des Exports; viametry-logbook-... auf Englisch):
import csv, hashlib, io, sys
with open(sys.argv[1], encoding="utf-8", newline="") as f:
rows = list(csv.reader(f))
end = len(rows[0]) - 5 # the last five columns describe the records
out = io.StringIO()
csv.writer(out, lineterminator="\r\n").writerows(row[:end] for row in rows)
print("calculated:", hashlib.sha256(out.getvalue().encode("utf-8")).hexdigest())
print("in the file:", rows[1][-1])Dasselbe Skript funktioniert für jede Sprache. Eine Datei ohne jede Fahrt hat keine Zeile, die den Code trägt, also gibt es nichts zu vergleichen.
Die beiden Zeilen stimmen überein, wenn die Einträge unverändert sind. Öffnen Sie die CSV in einem Texteditor, nicht in einer Tabellenkalkulation, wenn Sie sie vorher ansehen möchten: Speichern aus einer Tabellenkalkulation kann das Format von Zahlen und Daten ändern und damit die Prüfsumme.
Die genaue Definition
Für alle, die sie mit anderen Werkzeugen prüfen möchten: SHA-256 über die Fahrtenbuch-Spalten (die ersten achtzehn, Datum bis Satz der Pauschale) der CSV, Kopfzeile zuerst, eine Zeile je Eintrag, ein Wert nur dann in doppelten Anführungszeichen, wenn er ein Komma, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthält (ein Anführungszeichen darin wird verdoppelt), jede Zeile endet mit CR LF, kodiert als UTF-8 ohne Byte-Order-Mark. Daten und Zahlen werden in der CSV immer gleich geschrieben (2026-03-10, 12.5), unabhängig von der Sprache.
Keine Antwort gefunden? Schreiben Sie an support@viametry.com. In der App öffnet Hilfe oben rechts die Anleitung zur jeweiligen Seite.