Evidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 327274eedd28370f0f484b11 · Previous: 1608bf2a3e495b164009af6dConsent Database / Ledger
apps.datev.de: Einwilligungen nachweisbar speichern
apps.datev.de: Consent-Ledger-Blueprint mit 14 Datenfeldern, 7 Ereignissen, 7 Log-Zeilen und 6 Kategorien für auditierbare Einwilligungsnachweise.
Der Ledger-Blueprint ist eine technische Betreiber-Vorlage. Rechtsgrundlage, Speicherfrist, Zugriffsschutz und Integration in CMP/Backend müssen fachlich freigegeben werden.
Consent Log
Downloadbare Transaktionszeilen mit Hashkette
Evidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 29ff81f510a7518de76f29b3 · Previous: 327274eedd28370f0f484b11Evidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 55e07016937bbb5ce5f8293c · Previous: 29ff81f510a7518de76f29b3Evidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 306b107e6320a1e9c5b50d6a · Previous: 55e07016937bbb5ce5f8293cEvidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 57a9152da72d15559ba6660a · Previous: 306b107e6320a1e9c5b50d6aEvidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: 763af9c3bc5e0e2dd98e5fc6 · Previous: 57a9152da72d15559ba6660aEvidence: https://saferpage.de/nachweise/apps.datev.de/export
Hash: d48eb5ba25a9dfef50e1811f · Previous: 763af9c3bc5e0e2dd98e5fc6Export immer nach Domain, Zeitraum und Rechtsraum filtern; keine domainübergreifenden Rohlogs ohne Zweckfreigabe.
Subject-, IP- und User-Agent-Bezug nur gehasht und mit Zugriffsschutz exportieren.
Jede Zeile enthält previous_hash und row_hash, damit nachträgliche Änderungen auffallen.
DSAR-Export trennt Nachweiszweck, technische Logs und Lösch-/Sperrentscheidungen.
Nachweisfrist und Löschfristen je Zweck dokumentieren; abgelaufene Rohdaten aggregieren oder löschen.
Ereignisse
Welche Consent-Aktionen protokolliert werden
Belegt, welche Version Nutzer gesehen haben.
Felder: domain, banner_version, policy_version, region, created_atZentrale Nachweiszeile für aktive Einwilligung.
Felder: consent_id, categories, services, action, created_atAblehnen muss genauso auditierbar sein wie Akzeptieren.
Felder: consent_id, categories, action, created_atWiderruf überschreibt Downstream-Zustände und muss nachvollziehbar bleiben.
Felder: previous_consent_id, withdrawn_at, categories, source0 Datenschutz-Domain(s) im GPC-Kontext.
Felder: gpc_signal, region, action, created_at0 datenschutzrelevante Browserkontakt(e) aus dem Scan.
Felder: destination, categories, sync_status, created_atVerbindet Betreiberentscheidung mit technischer Scan-Evidenz.
Felder: scan_id, checked_at, result_url, evidence_hashDatenmodell
Minimale Felder für auditierbare Nachweise
Eindeutiger Nachweisdatensatz
Nicht als Klartext-Personenkennung verwenden.Wiedererkennung ohne Klartext-ID
Salt/Rotation und Zugriffsschutz dokumentieren.Betroffene Website
Mandanten-/Domain-Trennung erzwingen.DE/EU/CH/AT oder CMP-Region
Regelbasiertes Verhalten nachvollziehbar machen.Version der Consent-Oberfläche
Bei Text-/Layoutänderung erhöhen.Datenschutz-/Cookie-Hinweis-Version
Mit veröffentlichtem Hinweis und Datum verbinden.Status je Kategorie
Nur notwendige Kategorien speichern.Optionaler Status je Dienst
Dienste aus Anbieterregister synchronisieren.accept, reject, save, withdraw, gpc
Ablehnung und Widerruf gleichwertig protokollieren.Missbrauchs-/Nachweisbezug
Klartext-IP vermeiden; Speicherfrist begrenzen.Technischer Kontext
Nicht für Tracking oder Profiling verwenden.Verweis auf Scan, Screenshot oder Export
Keine sensiblen Rohdaten in öffentliche Exporte schreiben.Zeitpunkt der Entscheidung
Zeitzone und Serverzeit stabil halten.Review-/Ablauffrist
Regelmäßige Erneuerung und Löschung planen.Speicherung
Kontrollen für Datenschutz und Betrieb
Klartext-IP, User-Agent und Personenkennung vermeiden; Hash/Salt und kurze Fristen verwenden.
Banner-, Policy-, Kategorie- und Anbieterregister-Version bei jeder Entscheidung speichern.
Widerruf an Tag Manager, CMP, Analytics, Ads und CRM weitergeben und Synchronisierung protokollieren.
Nachweisfrist, Zweckende, erneute Einwilligung und DSAR-Löschung als Löschtrigger definieren.
Ledger nur für Datenschutz/Compliance/IT freigeben; Exportzugriffe protokollieren.
Snippets
Backend und Banner verbinden
CREATE TABLE consent_ledger_apps_datev_de (
consent_id text PRIMARY KEY,
subject_key_hash text NOT NULL,
domain text NOT NULL,
region text NOT NULL,
banner_version text NOT NULL,
policy_version text NOT NULL,
action text NOT NULL CHECK (action IN ('accept','reject','save','withdraw','gpc')),
categories_json jsonb NOT NULL,
services_json jsonb NOT NULL DEFAULT '{}'::jsonb,
gpc_signal boolean NOT NULL DEFAULT false,
ip_hash text,
user_agent_hash text,
evidence_ref text,
created_at timestamptz NOT NULL DEFAULT now(),
expires_at timestamptz
);
CREATE INDEX consent_ledger_apps_datev_de_subject_idx ON consent_ledger_apps_datev_de (subject_key_hash, created_at DESC);
window.addEventListener('saferpage-consent-update', function (event) {
fetch('/privacy/consent-ledger', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
credentials: 'same-origin',
body: JSON.stringify({
domain: 'apps.datev.de',
banner_version: 'v1',
policy_version: 'privacy-notice-current',
action: 'save',
categories: event.detail,
evidence_ref: window.location.href
})
});
});