Preise API Demo Vault Sicherheit
Dashboard testen
GoBD Technische Umsetzungsdokumentation
Selbstprüfung abgeschlossen
15
GoBD-orientierte Kontrollbereiche

GoBD-Unterstützung — Technische Selbstprüfung

MintFolder AI dokumentiert technische Maßnahmen zu 15 Kontrollbereichen der Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff (GoBD). Die Gesamtbewertung hängt von Einrichtung, Nutzung und steuerlicher Prüfung ab.

Hinweis: Diese Seite dokumentiert eine interne technische Selbstprüfung der im Quellcode von MintFolder AI implementierten Maßnahmen. Es handelt sich nicht um ein Testat, Gutachten oder eine Bescheinigung einer Wirtschaftsprüfungsgesellschaft, einer Datenschutzbehörde oder einer anderen fachkundigen Stelle. Die Dokumentation wurde mittels automatisierter Code-Analyse erstellt und dient der Transparenz gegenüber Kunden und Partnern.
Code
geprüfte Integritätskontrollen
6
Hash Pipelines
6
log_archive() Bot-Call-Sites
37
Archive Fields
3
API Endpoints
15
Kontrollbereiche
📋
GoBD-orientierte Kontrollbereiche — technische Selbstprüfung
Technische Maßnahmen dokumentiert
1. Unveränderbarkeit (Immutabilität)
SQLite-Integritäts-Trigger + SHA-256 Hash-Chaining: trg_archive_no_tamper_core schützt 8 Kernfelder, trg_archive_no_tamper_financial schützt 9 Finanzfelder. Kompensierende Kontrolle via kryptographische Verkettung des Audit Trails (§ 146 Abs. 4 AO).
Rz. 104–110
2. Nachvollziehbarkeit & Prüfbarkeit
Tabelle archive_audit_trail mit Hash-Chaining (previous_hashcurrent_hash) + access_log protokollieren Änderungen und Zugriffe. SQLite-Trigger erschweren Manipulationen; es handelt sich nicht um ein externes Testat und nicht um zertifizierten WORM-Speicher.
Rz. 37–43
3. Vollständigkeit (Integritätssicherung)
SHA-256 Document-Hashing in allen 6 Verarbeitungspipelines. verify_document_hash() validiert Integrität. API-Endpunkt /api/gobd/verify-integrity.
Rz. 58–63
4. Ordnungsmäßige Aufbewahrung
Automatische Erkennung nach Dokumenttyp: 6, 8 oder 10 Jahre (§ 147 Abs. 3 AO i.d.F. Bürokratieentlastungsgesetz IV — 8 Jahre für Buchungsbelege ab 01.01.2025). trg_archive_retention_guard verhindert vorzeitige Löschung.
§ 147 Abs. 3 AO
5. Herkunftsnachweis
archive_source in allen log_archive()-Aufrufen (Bot-Kanal: 6 Stellen in bot/handlers/; Web-/B2C-Kanal: separate SHA-256-Pipeline). Lückenlose Nachverfolgung des Eingangskanals.
Rz. 72–74
6. Maschinelle Auswertbarkeit
37 strukturierte Archivfelder. Z3-Export als ZIP über /api/gobd/export-z3 (DATEV/Archivdaten, Metadaten).
Rz. 164–168
7. Zeitgerechte Erfassung
processed_at UTC-Timestamp bei INSERT. trg_archive_auto_lock sperrt automatisch bei erfolgreicher Archivierung.
Rz. 48–51
8. Verfahrensdokumentation
Vollständige 10-Abschnitt-Dokumentation nach Rz. 151–155: Systembeschreibung, Anwenderdoku, technische Doku, Betriebsdoku, IKS.
Rz. 151–155
9. Internes Kontrollsystem (IKS)
9-Abschnitt-IKS-Dokumentation: Kontrollumgebung, Zugangs-/Zugriffskontrollen, Erfassungs-/Verarbeitungskontrollen, Ausgabekontrollen, Schutz gegen Verfälschung.
Rz. 100–103
10. Datenzugriff Z1 (Unmittelbarer Zugriff)
API-Endpunkt /api/gobd/audit-trail für direkte Einsicht in Audit-Trail und Archivdaten durch den Betriebsprüfer.
§ 147 Abs. 6 AO
11. Datenzugriff Z2 (Mittelbarer Zugriff)
/api/gobd/verify-integrity liefert Integritätsprüfung, Hash-Informationen und Prüfergebnisse.
§ 147 Abs. 6 AO
12. Datenzugriff Z3 (Datenträgerüberlassung)
/api/gobd/export-z3 — ZIP-Download mit Archivdaten und DATEV-Ausgaben für maschinelle Auswertung durch den Prüfer.
§ 147 Abs. 6 AO
13. Berechtigungskonzept & Zugriffskontrolle
5 Rollen (owner/admin/editor/viewer/api-only). HMAC-Token-Authentifizierung. access_log-Tabelle mit IP- und User-Agent-Protokollierung.
Rz. 113–117
14. Ordnung & Richtigkeit
KI-gestützte Klassifikation mit mehrstufiger KI-Fallback-Kette (Gemini · Claude · OpenAI). Confidence-Score. Automatische Kategorisierung und Belegprüfung.
Rz. 44–47
15. Datensicherung & Wiederherstellbarkeit
Google Drive Echtzeit-Sync als primärer Speicher. SQLite WAL-Mode für Crash-Sicherheit. Automatische Backup-Strategie. DSGVO-konforme Löschung mit Trigger-Handling.
Rz. 120–123
🛡️
SQLite Trigger-System
Implementiert
#TriggerTypBeschreibungGeschützte Felder
1 trg_archive_no_tamper_core Immutabilität Blockiert UPDATE auf Kernfelder nach Sperrung original_name, final_name, document_hash, doc_date, drive_file_id, drive_path, processed_at, archive_source
2 trg_archive_no_tamper_financial Immutabilität Blockiert UPDATE auf Finanzfelder nach Sperrung amount, betrag_netto, waehrung, rechnungsnummer, faelligkeitsdatum, ust_id_sender, iban, payment_status, tax_breakdown
3 trg_archive_no_delete Immutabilität Blockiert DELETE auf alle Archiveinträge Gesamter Datensatz
4 trg_archive_retention_guard Aufbewahrung Verhindert Soft-Delete vor Fristablauf drive_deleted, aufbewahrungsfrist, processed_at
5 trg_archive_auto_lock Immutabilität Automatische Sperrung bei INSERT (status='success') locked_at (UTC)
6 trg_archive_audit_summary Audit Trail Protokolliert ai_summary-Änderungen ai_summary
7 trg_archive_audit_status Audit Trail Protokolliert Status-Änderungen status
8 trg_archive_audit_drive_deleted Audit Trail Protokolliert Drive-Löschmarkierungen drive_deleted
9 trg_archive_audit_category Audit Trail Protokolliert Kategorie-Änderungen category, kuerzel
10 trg_audit_trail_no_tamper Immutabilität Audit Trail nach Versiegelung unveränderbar (Hash-Chain sealed) Gesamter Trail-Datensatz (wenn current_hash gesetzt)
11 trg_audit_trail_no_tamper_data Immutabilität Datenfelder des Audit Trails immer unveränderbar archive_id, user_id, action, field_name, old_value, new_value, performed_by, ip_address, user_agent, created_at
12 trg_audit_trail_no_delete Immutabilität Audit Trail löschgeschützt Gesamter Trail-Datensatz
13 trg_credits_non_negative Finanz-Integrität Verhindert negative Guthaben-Salden credits
14 trg_ledger_no_tamper Finanz-Integrität Kredit-Ledger unveränderbar Gesamter Ledger-Datensatz
15 trg_ledger_no_delete Finanz-Integrität Kredit-Ledger löschgeschützt Gesamter Ledger-Datensatz
16 trg_action_ledger_no_tamper Finanz-Integrität Aktions-Ledger unveränderbar Gesamter Aktions-Ledger
17 trg_action_ledger_no_delete Finanz-Integrität Aktions-Ledger löschgeschützt Gesamter Aktions-Ledger
Hinweis: Diese Tabelle zeigt eine Auswahl der implementierten Trigger. Insgesamt sind 97 SQLite-Trigger über 145 Tabellen (Schema-Version 747; davon 95 Integritäts-/Append-only- und 2 FTS-Trigger) aktiv. Weitere umfassen u. a.: Vault-Trigger (trg_vault_access_no_tamper, trg_vault_access_no_delete, trg_vault_files_no_tamper, trg_vault_files_no_delete), Transaktions-Trigger (trg_transactions_no_tamper, trg_transactions_no_delete), Billing-Trigger (trg_billing_events_no_tamper, trg_billing_events_no_delete), Credit-Guard (trg_credits_never_negative), sowie die DATEV-Festschreibungs-Trigger (Sprint 5: b2b_usage_logs.datev_locked + 5 Trigger, § 146 Abs. 4 AO) und weitere DATEV-Sperr-Trigger (Kontierung, OCR, Metadata, Retention, Storno, Locked-At, User-Reassign, Softdelete, Summary, Audit-Fields).
🔐
SHA-256 Hash Pipelines — 6 Pipelines
Implementiert
process_image()
Einzelbild → PDF-Konvertierung
Hasht: pdf_bytes
SHA-256 ✓ Matches Upload
process_image_archive()
Bild-Archivierung mit KI-Analyse
Hasht: pdf_bytes
SHA-256 ✓ Matches Upload
process_pdf()
PDF-Direktverarbeitung
Hasht: file_bytes
SHA-256 ✓ Matches Upload
process_pdf_archive()
PDF-Archivierung mit KI-Analyse
Hasht: file_bytes
SHA-256 ✓ Matches Upload
b2c_process_image_archive()
B2C Bild-Archivierung
Hasht: pdf_bytes
SHA-256 ✓ Matches Upload
b2c_process_pdf_archive()
B2C PDF-Archivierung
Hasht: file_bytes
SHA-256 ✓ Matches Upload
📝
log_archive() Audit — Bot-Kanal Call Sites
Vollständig implementiert
#DateiKontextHashSourceStatus
1 bot/handlers/chat.py Chat-Archivierung ✓ meta bot ✓ Umgesetzt
2 bot/handlers/pdf_tools.py PDF-Tools Archiv ✓ meta bot ✓ Umgesetzt
3 bot/handlers/archive.py AI-Failure-Pfad n/a (failed) bot ✓ Umgesetzt
4 bot/handlers/archive.py Erfolgs-Pfad ✓ meta bot ✓ Umgesetzt
5 bot/handlers/archive.py Stapel-Loop (ZIP) ✓ meta bot ✓ Umgesetzt
6 bot/handlers/archive.py Quick Save ✓ hash bot ✓ Umgesetzt

Web-/B2C-Kanal: Uploads über das Web-Dashboard nutzen die separate SHA-256-Hash-Pipeline (siehe Abschnitt «SHA-256 Hash Pipelines — 6 Pipelines») mit anschließender DATEV-/Vault-Archivierung. Der Hash-Nachweis ist gleichwertig; archive_source wird durchgängig erfasst.

🌐
GoBD API Endpoints — Datenzugriff §147 Abs. 6 AO
3/3 ACTIVE
GET
/api/gobd/export-z3
Z3 Datenträgerüberlassung (ZIP)
🔒 sudo
GET
/api/gobd/audit-trail
Z1 Audit Trail Zugriff
🔒 sudo
GET
/api/gobd/verify-integrity
Document Hash Verifizierung
🔒 sudo
🧾
E-Rechnung-Validierung (EN16931 Schematron + KoSIT BR-DE warn-first) & GDPdU/Z3-Export — Sprint 6
Implementiert
EN16931-Schematron-Validierung (#966)
Eingehende E-Rechnung (services/e_rechnung.py, CII via factur-x): wird gegen das EN16931-Schematron geprüft, der Status in e_rechnung_validation_status/_errors markiert und der Beleg immer archiviert — auch bei Verstoß nie verworfen (GoBD-Vollständigkeit, § 147 AO).
Ausgehende XRechnung (services/invoice_generator.py, via saxonche): nur der Finalize wird bei einem Schematron-Verstoß mit HTTP 422 abgelehnt.
Hinweis: Es erfolgt eine EN16931-Schematron-Prüfung (kein XSD; XSD ist wegen der CII-Elementreihenfolge bewusst ausgelassen). Die XRechnung-CIUS-Validierung (KoSIT, BR-DE-*) wird beim Finalisieren zusätzlich ausgeführt und am Beleg vermerkt (warn-first); sie ist noch keine harte Sperre — EN16931 bleibt das blockierende Gate.
EN16931 · §14 UStG · §146/§147 AO
GDPdU/Z3 Audicon-Export (#967)
services/export/gdpdu.py erzeugt ein GDPdU-Datenträgerüberlassungspaket nach Audicon-Beschreibungsstandard:
index.xml — GDPdU-Beschreibungsdatei
gdpdu-01-08-2002.dtd — offizielle DTD (verbatim)
journal.csv — Buchungsjournal (Finanzbuchhaltung)
Spaltenmodell ist Single-Source-of-Truth für index.xml und journal.csv (Reihenfolge tragend, Header stimmt stets mit der XML überein).
§147 Abs. 6 AO (Z3)
Hinweis zum Umfang: Aktuell wird die EN16931-Schematron-Prüfung durchgeführt (substantielle EN16931-Geschäftsregeln). Die XRechnung-CIUS-Validierung (KoSIT, BR-DE-Regeln) wird beim Finalisieren zusätzlich ausgeführt und am Beleg vermerkt (warn-first); sie ist noch keine harte Sperre — EN16931 bleibt blockierend.
⚖️
DSGVO ↔ GoBD Konfliktlösung
RESOLVED
🔴 Konflikt
DSGVO Art. 17 (Recht auf Löschung) erfordert die Entfernung personenbezogener Daten auf Wunsch des Nutzers. GoBD erfordert Unveränderbarkeit und Aufbewahrung für 6–10 Jahre.
✅ Lösung
delete_user() implementiert trigger-sichere DSGVO-Löschung:
1. GoBD-Trigger bleiben durchgehend aktiv — kein Deaktivieren zu irgendeinem Zeitpunkt
2. Pseudonymisierung statt Löschung: PII-Felder → 'DSGVO_REDACTED' (is_gdpr_erased = 1)
3. Trigger erlauben ausschließlich diese DSGVO-Pseudonymisierung — alle anderen Änderungen blockiert
4. Audit-Trail bleibt vollständig erhalten — nur PII-Felder pseudonymisiert
5. Aufbewahrungsfristen (§ 147 AO) eingehalten — pseudonymisierte Datensätze bis Fristablauf gespeichert

Für ein rechtsverbindliches Testat wenden Sie sich an eine zugelassene Wirtschaftsprüfungsgesellschaft (z.B. nach IDW PS 880 für GoBD oder ISO 27001 für Informationssicherheit).

Interne Dokumentation · Kein Testat · Stand: 2026-06-09 · Version 2.0