Files
breakpilot-compliance/docs-src/services/sdk-modules/whistleblower.md
Benjamin Admin f3e05c1bf7
All checks were successful
CI/CD / go-lint (push) Has been skipped
CI/CD / python-lint (push) Has been skipped
CI/CD / nodejs-lint (push) Has been skipped
CI/CD / test-go-ai-compliance (push) Successful in 34s
CI/CD / test-python-backend-compliance (push) Successful in 35s
CI/CD / test-python-document-crawler (push) Successful in 26s
CI/CD / test-python-dsms-gateway (push) Successful in 21s
CI/CD / validate-canonical-controls (push) Successful in 12s
CI/CD / Deploy (push) Successful in 2s
feat: enhance whistleblower HinSchG content, fix control-library filter layout
- Whistleblower page: expand overview tab with comprehensive HinSchG legal info
  (Gesetzliche Grundlage, Fristen-Cards, Anwendungsbereich, Schutz des Hinweisgebers)
- StepHeader: enrich whistleblower tips with detailed HinSchG paragraphs and sanctions
- Wiki: add migration 054 with 5 new/updated HinSchG articles (Anwendungsbereich,
  Hinweisgeberschutz, Meldestellen, Verfahrensablauf, Datenschutz-Anforderungen)
- MKDocs: rewrite whistleblower docs with full legal basis, architecture, API, DB schema
- Control library: fix filter dropdown overflow by splitting into search + filter rows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 00:23:19 +01:00

12 KiB

Whistleblower — Hinweisgebersystem

HinSchG-konformes Hinweisgebersystem fuer anonyme und namentliche Meldungen, sichere Fallbearbeitung und automatische Fristenueberwachung.

Gesetzliche Grundlage

Hinweisgeberschutzgesetz (HinSchG)

Das Hinweisgeberschutzgesetz (HinSchG) setzt die EU-Whistleblowing-Richtlinie (EU) 2019/1937 in deutsches Recht um. Es ist seit dem 2. Juli 2023 in Kraft.

Datum Pflicht
02.07.2023 Inkrafttreten fuer Unternehmen ab 250 Beschaeftigten
17.12.2023 Erweiterung auf Unternehmen ab 50 Beschaeftigten (ss 12 HinSchG)

Sachlicher Anwendungsbereich (ss 2 HinSchG)

Das Gesetz schuetzt Hinweisgeber, die Informationen ueber Verstoesse melden, die unter anderem folgende Bereiche betreffen:

  • Strafrecht — Straftaten nach StGB und Nebenstrafrecht
  • Datenschutz — Verstoesse gegen DSGVO und BDSG
  • Geldwaesche — Verstoesse gegen das Geldwaeschegesetz (GwG)
  • Produktsicherheit — Verstoesse gegen Produktsicherheitsvorschriften
  • Umweltschutz — Verstoesse gegen Umweltauflagen und -gesetze
  • Arbeitsschutz — Verstoesse gegen Arbeitnehmerrechte und Arbeitsschutzvorschriften
  • Lebensmittelsicherheit — Verstoesse gegen lebensmittelrechtliche Vorgaben
  • Wettbewerbs- und Kartellrecht — Unlauterer Wettbewerb, Marktmanipulation
  • Verbraucherschutz — Verstoesse gegen Verbraucherschutzvorschriften
  • Steuerrecht — Steuerverstoesse bei Unternehmen

Geschuetzte Personengruppen (ss 1 HinSchG)

  • Arbeitnehmerinnen und Arbeitnehmer
  • Beamtinnen und Beamte
  • Auszubildende und Praktikanten
  • Freiwillige und ehrenamtlich Taetige
  • Selbststaendige und Anteilseigner
  • Mitglieder von Leitungs- und Aufsichtsorganen
  • Personen, die im Rahmen einer Bewerbung Informationen erlangt haben

Fristen und Pflichten

Pflicht Frist Rechtsgrundlage
Eingangsbestaetigung 7 Tage nach Meldungseingang ss 17 Abs. 1 S. 2 HinSchG
Rueckmeldung ueber Folgemaßnahmen 3 Monate nach Eingangsbestaetigung ss 17 Abs. 2 HinSchG
Aufbewahrung der Dokumentation 3 Jahre nach Abschluss des Verfahrens ss 11 Abs. 5 HinSchG

Schutz des Hinweisgebers

Schutzmechanismus Rechtsgrundlage Beschreibung
Repressalienverbot ss 36 HinSchG Jede Benachteiligung wegen einer Meldung ist verboten
Beweislastumkehr ss 36 Abs. 2 HinSchG Arbeitgeber muss beweisen, dass Maßnahmen nicht mit Meldung zusammenhaengen
Schadensersatz ss 37 HinSchG Hinweisgeber hat Anspruch auf Ersatz des erlittenen Schadens
Vertraulichkeit ss 8 HinSchG Identitaet darf nur mit Einwilligung oder bei gesetzlicher Pflicht offengelegt werden

Sanktionen (ss 40 HinSchG)

Verstoß Bussgeld
Keine interne Meldestelle eingerichtet Bis zu 20.000 EUR
Behinderung einer Meldung Bis zu 50.000 EUR
Verstoß gegen Vertraulichkeitsgebot Bis zu 50.000 EUR
Repressalien gegen Hinweisgeber Bis zu 50.000 EUR

Features

  • Anonyme und namentliche Meldungen — Sichere Eingabe von Hinweisen, wahlweise anonym oder mit Kontaktdaten
  • Mehrstufiger Fallbearbeitungs-Workflow — Neu → Bestaetigt → In Pruefung → Untersuchung → Massnahmen → Abgeschlossen
  • Automatisches Fristen-Management — Ueberwachung der 7-Tage- und 3-Monate-Fristen gemaess ss 17 HinSchG mit Warnungen bei drohender Ueberschreitung
  • Anonymer Kommunikationskanal — Sicherer Austausch zwischen Hinweisgeber und Ombudsperson ohne Identitaetspreisgabe
  • Massnahmen-Tracking — Dokumentation und Nachverfolgung von Folgemaßnahmen
  • Prioritaetsstufen — Klassifizierung nach Niedrig, Normal, Hoch, Kritisch
  • Audit-Trail — Lueckenlose, revisionssichere Dokumentation aller Bearbeitungsschritte
  • Kategorisierung — Vordefinierte Meldekategorien (Korruption, Betrug, Datenschutz, Diskriminierung, Umwelt, Wettbewerb, Produktsicherheit, Steuerhinterziehung)
  • Statistik-Dashboard — Ueberblick ueber Meldungsaufkommen, Bearbeitungsstand und Fristeneinhaltung

Architektur

Bearbeitungs-Workflow

stateDiagram-v2
    [*] --> Neu: Meldung eingereicht
    Neu --> Bestaetigt: Eingangsbestaetigung (≤ 7 Tage)
    Bestaetigt --> InPruefung: Inhaltliche Pruefung
    InPruefung --> Untersuchung: Formelle Untersuchung
    Untersuchung --> Massnahmen: Folgemaßnahmen eingeleitet
    Massnahmen --> Abgeschlossen: Rueckmeldung (≤ 3 Monate)
    InPruefung --> Abgelehnt: Unbegruendet / nicht zustaendig
    Abgeschlossen --> [*]
    Abgelehnt --> [*]

Komponenten

Komponente Technologie Beschreibung
Frontend (Admin) Next.js / React SDK-Seite unter /sdk/whistleblower mit Tabs: Uebersicht, Neue Meldungen, In Untersuchung, Abgeschlossen, Einstellungen
API-Proxy Next.js API Route /api/sdk/v1/whistleblower/[[...path]]/route.ts — Proxy zum Backend
Backend-Handlers Go / Gin whistleblower_handlers.go — REST API fuer Meldungen, Nachrichten, Statistiken
Datenschicht Go store.go — PostgreSQL-Operationen, prepared statements
Datenmodell Go models.go — Structs fuer Report, Message, Measure, AuditEntry
TypeScript Types TypeScript lib/sdk/whistleblower/types.ts — Frontend-Typen, Deadline-Utilities
API Client TypeScript lib/sdk/whistleblower/api.ts — SDK-API-Aufrufe
DB-Schema SQL migrations/009_whistleblower_schema.sql

API Endpoints

Alle unter /api/v1/whistleblower/, benoetigen X-Tenant-ID Header.

Admin-Endpoints

Method Endpoint Beschreibung
GET /reports Meldungen auflisten (mit Filter und Paginierung)
POST /reports Neue Meldung erfassen
GET /reports/{id} Meldungsdetails inkl. Nachrichten, Massnahmen, Audit-Trail
PUT /reports/{id} Meldung aktualisieren (Status, Prioritaet, Zuweisung)
DELETE /reports/{id} Meldung loeschen
POST /reports/{id}/messages Nachricht an Hinweisgeber senden (Ombudsperson-Rolle)
GET /reports/{id}/messages Nachrichten-Verlauf abrufen
GET /statistics Statistiken (Gesamt, nach Kategorie, nach Status, ueberfaellige)

Oeffentliche Endpoints (fuer Hinweisgeber)

Method Endpoint Beschreibung
POST /public/reports Anonyme/namentliche Meldung einreichen
GET /public/reports/{accessKey} Meldungsstatus mit Zugangscode abfragen
POST /public/reports/{accessKey}/messages Nachricht als Hinweisgeber senden

Frontend

SDK Admin-Seite (/sdk/whistleblower)

Die Seite bietet fuenf Tabs:

Tab Inhalt
Uebersicht Statistik-Cards, HinSchG-Info-Box mit Fristen und Anwendungsbereich, Fristenwarnungen, alle Meldungen
Neue Meldungen Gefilterte Ansicht: nur Status "Neu" — Eingangsbestaetigung steht aus
In Untersuchung Gefilterte Ansicht: Status "Bestaetigt", "In Pruefung", "Untersuchung", "Massnahmen"
Abgeschlossen Gefilterte Ansicht: Status "Abgeschlossen" und "Abgelehnt"
Einstellungen Konfiguration (in spaeteren Versionen)

Funktionen

  • Meldung erfassen: Modal-Dialog fuer Titel, Beschreibung, Kategorie, Prioritaet, anonym/namentlich
  • Falldetail-Drawer: Seitenleiste mit Beschreibung, Badges, Status-Transitions, Zuweisungen, Kommentare, Nachrichten-Verlauf
  • Filter: Kategorie, Status, Prioritaet — kombinierbar
  • Sortierung: Ueberfaellige Meldungen zuerst, dann nach Prioritaet, dann nach Datum
  • Fristenwarnungen: Rote Alerts bei ueberschrittenen 7-Tage- oder 3-Monate-Fristen

Datenbank

Schema (Migration 009_whistleblower_schema.sql)

Tabelle: whistleblower_reports

Spalte Typ Beschreibung
id UUID Primaerschluessel
tenant_id UUID Mandanten-Zuordnung
reference_number VARCHAR Referenznummer (z.B. "WB-2026-000042")
access_key VARCHAR Anonymer Zugangscode (XXXX-XXXX-XXXX)
category VARCHAR Meldekategorie
status VARCHAR Bearbeitungsstatus
priority VARCHAR Prioritaetsstufe
title VARCHAR Meldungstitel
description TEXT Detailbeschreibung
is_anonymous BOOLEAN Anonyme Meldung
reporter_name VARCHAR Name (optional)
reporter_email VARCHAR E-Mail (optional)
assigned_to VARCHAR Zustaendige Person
received_at TIMESTAMP Eingangszeitpunkt
acknowledged_at TIMESTAMP Eingangsbestaetigung
deadline_acknowledgment TIMESTAMP 7-Tage-Frist (automatisch berechnet)
deadline_feedback TIMESTAMP 3-Monate-Frist (automatisch berechnet)
closed_at TIMESTAMP Abschlusszeitpunkt

Tabelle: whistleblower_messages

Anonymer Kommunikationskanal zwischen Hinweisgeber und Ombudsperson.

Tabelle: whistleblower_measures

Dokumentation von Folgemaßnahmen mit Status-Tracking (geplant, in Bearbeitung, abgeschlossen).

Tabelle: whistleblower_audit_trail

Lueckenlose, revisionssichere Protokollierung aller Bearbeitungsschritte.


Meldekategorien

Kategorie Beschreibung Beispiele
Korruption Bestechung, Vorteilsnahme Schmiergeldzahlungen, Kickback-Vereinbarungen
Betrug Vermoegensdelikte Urkundenfaelschung, Bilanzbetrug
Datenschutz DSGVO/BDSG-Verstoesse Unerlaubte Datenweitergabe, fehlende Einwilligung
Diskriminierung Benachteiligung Mobbing, sexuelle Belaestigung, AGG-Verstoesse
Umwelt Umweltvergehen Illegale Entsorgung, Emissionsverstoesse
Wettbewerb Kartellrecht Preisabsprachen, Marktmanipulation
Produktsicherheit Sicherheitsmaengel Mangelhafte Produkte, fehlende Warnhinweise
Steuerhinterziehung Steuerverstoesse Steuerhinterziehung, illegale Steuergestaltung
Sonstiges Weitere Verstoesse Interne Richtlinienverstoesse

Fristen-Tracking

Das System berechnet Fristen automatisch und warnt bei drohender Ueberschreitung:

Frist Berechnung Warnstufe
7-Tage-Eingangsbestaetigung received_at + 7 Tage Orange ab 2 Tage vorher, Rot bei Ueberschreitung
3-Monate-Rueckmeldung acknowledged_at + 3 Monate Orange ab 14 Tage vorher, Rot bei Ueberschreitung

Utility-Funktionen in types.ts:

  • getDaysUntilAcknowledgment(report) — Verbleibende Tage bis Eingangsbestaetigung
  • getDaysUntilFeedback(report) — Verbleibende Tage bis Rueckmeldungsfrist
  • isAcknowledgmentOverdue(report) — Prueft 7-Tage-Frist
  • isFeedbackOverdue(report) — Prueft 3-Monate-Frist
  • generateAccessKey() — Erzeugt Zugangscode im Format XXXX-XXXX-XXXX

Datei-Referenz

Datei Beschreibung
admin-compliance/app/sdk/whistleblower/page.tsx Frontend-Seite (Tabs, Filter, Modals, Detail-Drawer)
admin-compliance/app/api/sdk/v1/whistleblower/[[...path]]/route.ts API-Proxy zum Backend
admin-compliance/lib/sdk/whistleblower/types.ts TypeScript-Typen, Enums, Deadline-Utilities
admin-compliance/lib/sdk/whistleblower/api.ts API-Client fuer SDK-Backend
ai-compliance-sdk/internal/whistleblower/models.go Go-Datenmodelle
ai-compliance-sdk/internal/whistleblower/store.go PostgreSQL-Store (CRUD, Queries)
ai-compliance-sdk/internal/api/handlers/whistleblower_handlers.go REST-API-Handler
ai-compliance-sdk/migrations/009_whistleblower_schema.sql Datenbankschema