returnEasier
Für deinen Shop
Für deinen ShopHändler7 Min Lesezeit

Was ist das Audit-Log und wie exportiere ich meinen prüfbaren Verlauf?

Das Audit-Log von returnEasier ist ein unveränderliches Protokoll jeder Anfrage und jedes Ereignisses, mit SHA-256-Hashes verkettet, sodass niemand es verändern kann. Unter Compliance → Exportieren lädst du ein ZIP mit zwei CSV-Dateien, den PDF-Empfangsbestätigungen und einer Integritätsdatei herunter. Bis zu 100 Anfragen werden sofort heruntergeladen; zwischen 101 und 1000 kommen sie per E-Mail.

Das Audit-Log von returnEasier ist ein unveränderliches Protokoll von allem, was mit deinen Anfragen geschieht: Jedes Mal, wenn eine erstellt, genehmigt, als empfangen markiert oder erstattet wird, bleibt eine Zeile, die nicht geändert oder gelöscht werden kann. Jedes Ereignis wird mit einem verketteten SHA-256-Hash mit dem vorherigen versiegelt und bildet eine manipulationssichere Kette. Wenn du Nachweise vorlegen musst – einem Prüfer, der Behörde oder deinem Berater – gehst du zu Compliance → Exportieren und lädst ein ZIP mit dem gesamten Verlauf und einer Integritätsdatei zur Überprüfung herunter.


Warum ist das Protokoll unveränderlich?

Die Ereignistabelle ist Append-only: Die Datenbank erlaubt nur das Hinzufügen von Zeilen. Ein Trigger von PostgreSQL lehnt jeden Versuch von UPDATE oder DELETE darauf ab, woher er auch kommt (die App, ein Skript, eine Migration oder ein Angreifer mit Rechten). Das ist kein Konfigurationsversprechen: Es ist in der Datenbank-Engine erzwungen.

Auf dieser Basis wird die Hash-Kette aufgebaut:

  • Jedes Ereignis wird in ein kanonisches JSON umgewandelt (sortierte Schlüssel, ohne Mehrdeutigkeit) und es wird ein SHA-256 berechnet.
  • Dieser Hash wird unter Einbeziehung des Hashes des vorherigen Ereignisses (hash_anterior) berechnet. Das erste Ereignis jeder Kette ist das „Genesis-Ereignis".
  • Würde jemand auch nur einen einzigen Wert eines vergangenen Ereignisses ändern, würde sich dessen Hash ändern und nicht mehr zum hash_anterior des folgenden Ereignisses passen: Die Manipulation verrät sich von selbst.

Die Anfragen (return_requests) tragen ebenfalls ihren eigenen Hash und vorherigen Hash, die in den Export aufgenommen werden, damit sie außerhalb der App überprüft werden können.

Wie exportiere ich meinen prüfbaren Verlauf?

Der Export liegt unter Compliance → Exportieren (Pfad /app/settings/compliance/export) innerhalb der App, im Shopify-Admin.

  1. Öffne Compliance → Exportieren im Seitenmenü.
  2. Gib einen Zeitraum an: „von" und „bis" (Datumsformat). Du kannst beide leer lassen, um deinen gesamten Verlauf zu exportieren. Die Daten werden in der Zeitzone deines Shops interpretiert (standardmäßig Europe/Madrid).
  3. Klicke auf Exportieren. Je nach Anzahl der Anfragen im Zeitraum macht returnEasier eines von zwei Dingen (siehe unten).

Sofortiger Download oder per E-Mail, je nach Volumen

returnEasier passt die Zustellung an die Größe des Zeitraums an, um den Browser nicht mit riesigen Downloads zu blockieren:

Anfragen im Zeitraum Was passiert
0 – 100 Das ZIP wird erzeugt und sofort heruntergeladen.
101 – 1000 returnEasier schickt dir das ZIP per E-Mail (temporärer Link).
Mehr als 1000 Der Export wird abgelehnt: Grenze den Zeitraum ein.

Die harte Grenze liegt bei 1000 Anfragen pro Export. Ist dein Verlauf größer, teile ihn in mehrere Zeiträume auf (zum Beispiel quartalsweise) und exportiere jeden einzeln.

Was ist im ZIP enthalten?

Die Datei heißt returneasier-auditoria-<dein-shop>-<datum>.zip und enthält:

  • LIESMICH.txt — Anleitung in klarer Sprache: was jede Datei ist und wie man die Integrität überprüft.
  • solicitudes.csv — eine Zeile pro Anfrage, mit Spalten wie public_id, tipo, estado, creada_en_utc, resuelta_en_utc, pedido, cliente_email, cliente_nombre, importe, moneda, motivo, resolucion_preferida, notas_cliente, hash, hash_anterior und refund_id.
  • eventos.csv — das vollständige Append-only-Protokoll: public_id, evento, actor, actor_id, fecha_utc, hash, hash_anterior und payload_json.
  • pdfs/ — die PDF-Empfangsbestätigungen jedes Widerrufs, eine pro Anfrage.
  • INTEGRITY.json — die Integritätsdatei: Algorithmus (SHA-256), Zählungen, der Hash jeder Datei im ZIP und die Prüfung jeder Ereigniskette.

Wie überprüfe ich die Integrität des Exports?

Die INTEGRITY.json ist das Schlüsselstück, um zu beweisen, dass nichts angetastet wurde:

  • Sie enthält den SHA-256-Hash jeder Datei im ZIP. Berechne den Hash zum Beispiel von eventos.csv mit einem beliebigen Standard-Tool neu und vergleiche ihn mit dem dort angegebenen.
  • Sie enthält die Prüfung jeder Ereigniskette: Für jede Anfrage gibt sie an, ob ihre Kette „ok" oder „defekt" ist und gegebenenfalls den Grund (verzweigte Kette, Zyklus, Hash, der nicht rekonstruiert…).
  • Konnte ein PDF nicht wiederhergestellt werden (zum Beispiel, weil es durch eine DSGVO-Anfrage gelöscht wurde), wird das in der Liste der nicht verfügbaren PDFs mit Grund vermerkt, statt den gesamten Export scheitern zu lassen.

Die INTEGRITY.json selbst kann ihren eigenen Hash nicht enthalten, daher ist sie die einzige Datei, die sich nicht selbst prüft; alles andere schon.

Bezug zu anderen Funktionen

Das Audit-Log ist die Grundlage der Rechtsvorlagen und der PDF-Empfangsbestätigung (siehe „Die PDF-Empfangsbestätigung des Widerrufs"): Jede Widerrufsbestätigung, die an den Kunden gesendet wird, ist an die Hash-Kette verankert. Um zu verstehen, welche E-Mails diese Ereignisse erzeugen, sieh dir „Welche E-Mails versendet returnEasier und an wen?" an. Und bevor du deinstallierst oder kündigst, solltest du den Verlauf exportieren: Das erklärt „returnEasier deinstallieren oder kündigen".

Hat dir dieser Artikel geholfen?