Ich würde alle Buchungen und Belege in ein Git-Repository abspeichern.
Git ist eigentlich eine Versionsverwaltung für Sourcecode aber es hat bestimmte Eigenschaften die es sehr interessant für deine Aufgabe macht.
In Git sind alle Dateien durch Prüfsummen abgesichert.
Die Historie mit allen Änderungen ist ebenfalls durch Prüfsummen gesichert.
Es ist also unmöglich die Historie zu ändern ohne dass sich die Prüfsumme ändert.
Wenn deine Anwendung immer die letzte Prüfsumme speichert, dann kann garantiert werden, dass jede Manipulation an den Belegdaten entdeckt wird.