DSGVO & Compliance
Datenschutz-Grundverordnung (DSGVO/GDPR) Compliance und Sicherheitsmaßnahmen
Compliance-Übersicht
SteuerMappePro ist vollständig konform mit der Europäischen Datenschutz-Grundverordnung (DSGVO/GDPR) und implementiert Best Practices für Datenschutz und Datensicherheit. Als Plattform für die Verarbeitung sensibler Steuerdokumente nehmen wir Datenschutz äußerst ernst.
DSGVO-konform
Vollständige Konformität mit EU-Datenschutzrichtlinien
EU-Datenresidenz
Alle Daten werden ausschließlich in der EU gespeichert
Verschlüsselung
TLS 1.2+ in Transit, AES-256 at Rest
Recht auf Löschung
Vollständige Datenlöschung auf Anfrage
Für Entwickler
Datenverarbeitung & Speicherung
EU-Only Datenresidenz
Alle personenbezogenen Daten und Dokumente werden ausschließlich in der Europäischen Union verarbeitet und gespeichert:
- Dokumenten-Speicherung
- Dropbox Business (EU-Server) - Alle Dokumente werden in Dropbox-Rechenzentren in der EU gespeichert. Dropbox ist DSGVO-konform und bietet einen Data Processing Addendum (DPA).
- Datenbank & Metadaten
- EU-Region (Frankfurt, Irland) - Alle strukturierten Daten (User, Organizations, Projects, Processes) werden in PostgreSQL-Datenbanken in EU-Regionen gespeichert.
- Verarbeitung
- EU-Compute-Ressourcen - Alle Verarbeitungsaufträge (Konvertierung, OCR, Analyse) werden auf Servern innerhalb der EU ausgeführt.
- Backup & Archivierung
- EU-Rechenzentren - Alle Backups werden verschlüsselt in EU-Regionen gespeichert. Keine Datenübertragung außerhalb der EU.
ISO 27001 & SOC 2
Storage-Architektur
SteuerMappePro verwendet eine Hybrid-Storage-Architektur zur Trennung von Metadaten und Dokumenteninhalten:
┌─────────────────────────────────────────────┐
│ PostgreSQL Database (EU) │
│ - User/Organization/Project Metadata │
│ - Process Status & Progress │
│ - Mandant Information (minimal PII) │
│ - API Credentials (hashed) │
│ - Billing & Audit Logs │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ Dropbox Business (EU Servers) │
│ - Original Documents (PDF, Images, etc.) │
│ - Processed/Converted Documents │
│ - Analysis Results (ZIP archives) │
│ - Temporary Processing Files │
└─────────────────────────────────────────────┘Diese Architektur ermöglicht:
- Datentrennung: Metadaten getrennt von Dokumenteninhalten
- Skalierbarkeit: Dropbox für große Dateien, PostgreSQL für strukturierte Daten
- Compliance: Einfachere Datenlöschung durch klare Datenarchitektur
- Sicherheit: Mehrschichtige Verschlüsselung und Zugriffskontrolle
PII-Handling & Datenminimierung
Gespeicherte personenbezogene Daten (PII)
SteuerMappePro folgt dem Prinzip der Datenminimierung und speichert nur die minimal notwendigen personenbezogenen Daten:
| Datenfeld | Zweck | Rechtsgrundlage | Retention |
|---|---|---|---|
| User (firstName, lastName, email) | Authentifizierung, Kontaktaufnahme | Vertrag (Art. 6(1)(b) DSGVO) | Account-Laufzeit + 30 Tage |
| Organization (name, address, VAT-ID) | Abrechnung, Rechnungsstellung | Vertrag (Art. 6(1)(b) DSGVO) Steuerrecht (Art. 6(1)(c) DSGVO) | 10 Jahre (gesetzl. Aufbewahrungspflicht) |
| Mandant (firstName, lastName, taxId) | Kategorisierung, Dokumentenzuordnung | Berechtigtes Interesse (Art. 6(1)(f) DSGVO) | Löschbar auf Anfrage |
| API Credentials (client_id, client_secret) | API-Authentifizierung | Vertrag (Art. 6(1)(b) DSGVO) | Project-Laufzeit |
| Audit Logs (IP, User-Agent, Timestamps) | Sicherheit, Missbrauchserkennung | Berechtigtes Interesse (Art. 6(1)(f) DSGVO) | 90 Tage |
Daten, die wir NICHT speichern
Um Datenschutz zu maximieren, verzichten wir bewusst auf folgende Daten:
- Detaillierte Tracking-Daten (keine 3rd-party Analytics im Backend)
- Sozialversicherungsnummern oder sensible Gesundheitsdaten
- Bankkontodaten (Zahlungen über externe Payment Provider)
- Unnötige demografische Daten (Alter, Geschlecht, etc.)
- Persistent Cookies für Tracking-Zwecke
Mandant-Daten sind optional
Datenaufbewahrungsrichtlinien
Automatische Löschfristen
SteuerMappePro implementiert automatische Löschrichtlinien für verschiedene Datentypen:
| Datentyp | Retention Period | Automatische Löschung |
|---|---|---|
| Verarbeitete Dokumente (Dropbox) | 90 Tage nach Abschluss | Ja (automatischer Cron-Job) |
| Process Metadata | 12 Monate (für Reporting) | Ja (anonymisiert nach 12 Monaten) |
| Access Tokens (JWT) | 1 Stunde | Ja (automatischer Ablauf) |
| Webhook Delivery Logs | 30 Tage | Ja |
| Audit Logs | 90 Tage | Ja |
| Billing Records (Invoices) | 10 Jahre | Nein (gesetzl. Aufbewahrungspflicht) |
Gesetzliche Aufbewahrungspflichten
Beispiel: Automatische Dokumentenlöschung
Dropbox-Dokumente werden automatisch nach 90 Tagen gelöscht (Cron-Job täglich um 2:00 Uhr UTC):
// Automatischer Cron-Job (täglich 2:00 UTC)
export async function cleanupOldDropboxFiles() {
const cutoffDate = new Date();
cutoffDate.setDate(cutoffDate.getDate() - 90);
// Finde abgeschlossene Prozesse > 90 Tage alt
const oldProcesses = await prisma.process.findMany({
where: {
status: { in: ['ANALYZE_COMPLETED', 'ANALYZE_FAILED'] },
updatedAt: { lt: cutoffDate },
dropboxFolderPath: { not: null }
}
});
for (const process of oldProcesses) {
// Lösche Dropbox-Ordner
await dropboxClient.files.deleteV2({
path: process.dropboxFolderPath
});
// Markiere Process als archiviert
await prisma.process.update({
where: { id: process.id },
data: { dropboxFolderPath: null }
});
}
console.log(`Deleted ${oldProcesses.length} old Dropbox folders`);
}Recht auf Löschung (Art. 17 DSGVO)
Mandant-Datenlöschung
Als Auftragsverarbeiter ermöglicht SteuerMappePro die vollständige Löschung von Mandant-Daten auf Anfrage:
Was wird gelöscht?
- ✓ Mandant-Record - Alle personenbezogenen Daten (firstName, lastName, taxId, etc.)
- ✓ Verknüpfte Processes - Alle Verarbeitungsaufträge für diesen Mandanten
- ✓ Dropbox-Dokumente - Alle hochgeladenen und verarbeiteten Dateien
- ✓ Analyseberichte - Alle generierten Berichte und Ergebnisse
- ✓ Audit Logs - Zugriffs- und Verarbeitungsprotokolle (nach Anonymisierung)
Was wird NICHT gelöscht?
- ✗ Billing Records - Rechnungen (gesetzl. Aufbewahrungspflicht, aber anonymisiert)
- ✗ Aggregierte Statistiken - Anonymisierte Nutzungsstatistiken ohne Personenbezug
Löschprozess für Entwickler
API-Consumer können Mandant-Löschungen über ihre Organisation veranlassen:
Schritt 1: Löschantrag stellen
Kontaktieren Sie Ihren SteuerMappePro Administrator oder senden Sie eine Anfrage an: dpo@steuermappe-pro.de
Schritt 2: Identitätsverifikation
Nachweis der Berechtigung (z.B. über API-Client-ID und Project-ID)
Schritt 3: Löschung innerhalb 30 Tagen
Vollständige Datenlöschung aus allen Systemen (Database, Dropbox, Backups)
Schritt 4: Löschbestätigung
Sie erhalten eine schriftliche Bestätigung über die erfolgte Löschung
Entwickler-Hinweis
Zweckbindung (Art. 5(1)(b) DSGVO)
Definierte Verarbeitungszwecke
Personenbezogene Daten werden ausschließlich für folgende Zwecke verarbeitet:
| Zweck | Beschreibung | Betroffene Daten |
|---|---|---|
| Vertragserfüllung | Bereitstellung der API-Dienste und Dokumentenverarbeitung | User, Organization, Mandant, Processes |
| Abrechnung | Rechnungsstellung und Zahlungsabwicklung | Organization, Billing Records, Usage Statistics |
| Sicherheit | Missbrauchserkennung, Betrugsverhinderung, Rate Limiting | IP-Adressen, API Logs, Audit Trails |
| Support | Fehlerdiagnose, technischer Support | User Contact Data, Error Logs |
| Compliance | Erfüllung gesetzlicher Anforderungen (Steuerrecht, AML) | Organization VAT-IDs, Billing Records |
Keine Weitergabe an Dritte
- • Bei gesetzlicher Verpflichtung (z.B. Strafverfolgung)
- • An Auftragsverarbeiter (z.B. Dropbox) mit gültigem DPA
- • Mit ausdrücklicher Einwilligung des Nutzers
Keine Profiling- oder Marketingnutzung
SteuerMappePro führt kein Profiling oder automatisierte Entscheidungsfindung durch. Ihre Daten werden nicht für Marketingzwecke oder Verhaltensanalysen verwendet.
Datensicherheitsmaßnahmen
Verschlüsselung
In Transit (TLS)
- ✓ TLS 1.2+ für alle API-Verbindungen
- ✓ HTTPS-Only (HTTP-Anfragen abgelehnt)
- ✓ Perfect Forward Secrecy (PFS) aktiviert
- ✓ Moderne Cipher Suites (AES-256-GCM, ChaCha20-Poly1305)
- ✓ HSTS (HTTP Strict Transport Security)
At Rest
- ✓ AES-256 Verschlüsselung für Datenbank
- ✓ Dropbox Encryption (AES-256 at rest)
- ✓ Verschlüsselte Backups (AES-256-GCM)
- ✓ Passwort-Hashing: bcrypt (cost factor 10)
- ✓ API Secrets: Hashed mit bcrypt
Zugriffskontrolle
Mehrschichtige Zugriffskontrollen schützen Ihre Daten:
- OAuth2 Authentication
- Client Credentials Flow mit signiertem JWT (1 Stunde Gültigkeit)
- Scope-basierte Berechtigungen
- Granulare Berechtigungen pro API-Client (batches:write, results:read, etc.)
- Project-Isolation
- API-Clients können nur auf Daten ihres eigenen Projects zugreifen
- Rate Limiting
- 100 req/min (POST), 200 req/min (GET) - Schutz vor Brute-Force
- IP Whitelisting (Optional)
- Verfügbar für Enterprise-Kunden auf Anfrage
Sicherheits-Best-Practices für Entwickler
// ✓ SICHER: Client Secret in Umgebungsvariablen
const clientSecret = process.env.STEUERMAPPE_CLIENT_SECRET;
// ✓ SICHER: HTTPS-Only-Anfragen
const response = await fetch('https://api.steuermappe-pro.de/v1/batches', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
}
});
// ✗ UNSICHER: Secret im Code hardcoded
// const clientSecret = "abc123secret"; // NIEMALS!
// ✗ UNSICHER: HTTP statt HTTPS
// const url = 'http://api.steuermappepro.com/v1/batches'; // Abgelehnt!Incident Response
Im Fall eines Sicherheitsvorfalls (Data Breach):
- Benachrichtigung binnen 72 Stunden an Aufsichtsbehörde (Art. 33 DSGVO)
- Benachrichtigung betroffener Nutzer bei hohem Risiko (Art. 34 DSGVO)
- Forensische Analyse und Maßnahmen zur Schadensbegrenzung
- Transparente Kommunikation über Status-Updates
Auftragsverarbeitungsvertrag (AVV/DPA)
Data Processing Agreement
Als Auftragsverarbeiter gemäß Art. 28 DSGVO bietet SteuerMappePro einen standardisierten Data Processing Addendum (DPA):
Im DPA enthalten:
- ✓ Gegenstand und Dauer der Verarbeitung
- ✓ Art und Zweck der Verarbeitung personenbezogener Daten
- ✓ Art der personenbezogenen Daten
- ✓ Kategorien betroffener Personen
- ✓ Pflichten und Rechte des Verantwortlichen (Ihr Unternehmen)
- ✓ Technische und organisatorische Maßnahmen (TOMs)
- ✓ Unterauftragsverarbeiter (z.B. Dropbox)
- ✓ Rechte betroffener Personen (Auskunft, Löschung, etc.)
- ✓ Unterstützung bei Data Breach Notifications
DPA anfordern
Unterauftragsverarbeiter
SteuerMappePro nutzt folgende Unterauftragsverarbeiter mit gültigem DPA:
| Anbieter | Dienst | Standort | Zertifizierungen |
|---|---|---|---|
| Dropbox Business | Dokumentenspeicherung | EU (Frankfurt, Dublin) | ISO 27001, SOC 2 Type II, GDPR |
| Cloud Provider | Hosting & Compute | EU (Frankfurt) | ISO 27001, SOC 2, PCI DSS |
Änderungen an Unterauftragsverarbeitern
Audit Logs & Compliance Reporting
Audit-Protokollierung
SteuerMappePro protokolliert alle sicherheitsrelevanten Ereignisse für 90 Tage:
| Event Type | Protokollierte Daten | Retention |
|---|---|---|
| auth.token_issued | Client-ID, Timestamp, IP-Adresse, Scopes | 90 Tage |
| auth.failed_login | Client-ID, IP-Adresse, Fehlermeldung | 90 Tage |
| batch.created | Batch-ID, Project-ID, User-ID, Timestamp | 12 Monate |
| mandant.deleted | Mandant-ID, User-ID, Timestamp | 10 Jahre (Compliance) |
| api.rate_limit_exceeded | Client-ID, IP-Adresse, Endpoint | 90 Tage |
Compliance-Reports für Audits
Enterprise-Kunden können Compliance-Reports für Audits anfordern:
Verfügbare Reports:
- ✓ Access Audit Report - Alle API-Zugriffe in einem Zeitraum
- ✓ Data Processing Report - Übersicht verarbeiteter Daten
- ✓ Data Deletion Report - Dokumentation gelöschter Daten
- ✓ Security Incident Report - Sicherheitsvorfälle (falls vorhanden)
- ✓ DPA Compliance Report - Einhaltung vertraglicher Verpflichtungen
Report anfordern
Datenschutzbeauftragter (DPO)
Kontakt zum Datenschutzbeauftragten
Für alle datenschutzrelevanten Anfragen steht Ihnen unser Datenschutzbeauftragter zur Verfügung:
SteuerMappePro Datenschutzbeauftragter
Verantwortlich für DSGVO-Compliance und Datenschutzfragen
Anfragen und Rechte
Nutzer und API-Consumer haben folgende Rechte nach DSGVO:
| Recht (DSGVO) | Beschreibung | Kontakt |
|---|---|---|
| Auskunft (Art. 15) | Welche Daten werden über mich gespeichert? | dpo@steuermappe-pro.de |
| Berichtigung (Art. 16) | Korrektur falscher Daten | dpo@steuermappe-pro.de |
| Löschung (Art. 17) | Vollständige Datenlöschung | dpo@steuermappe-pro.de |
| Datenportabilität (Art. 20) | Export aller Daten in maschinenlesbarem Format | dpo@steuermappe-pro.de |
| Widerspruch (Art. 21) | Widerspruch gegen Verarbeitung | dpo@steuermappe-pro.de |
| Beschwerde | Beschwerde bei Aufsichtsbehörde | Landesbeauftragter für Datenschutz |
Bearbeitungszeit
Best Practices für Entwickler
DSGVO-konforme API-Integration
Beachten Sie folgende Best Practices bei der Integration:
1. Minimale Datenerfassung
Übergeben Sie nur die minimal notwendigen Mandant-Daten. firstName/lastName sind optional wenn companyName vorhanden ist.
// ✓ Gut: Minimale Daten
{
"mandant": {
"company_name": "Müller GmbH",
"tax_id": "12345678901"
}
}
// ✗ Vermeiden: Unnötige Daten
{
"mandant": {
"first_name": "Klaus",
"last_name": "Müller",
"birth_date": "1980-01-01", // Nicht notwendig!
"email": "klaus@example.com" // Nicht notwendig!
}
}2. Daten-Export für Betroffene
Implementieren Sie Funktionen für Auskunfts- und Export-Anfragen:
// Beispiel: Datenexport für Mandant
async function exportMandantData(mandantId: string) {
// 1. Alle Batches des Mandanten abrufen
const batches = await fetch(
`https://api.steuermappe-pro.de/v1/batches?mandant_id=${mandantId}`,
{ headers: { Authorization: `Bearer ${token}` } }
);
// 2. Ergebnisse herunterladen
const results = await Promise.all(
batches.map(b => downloadBatchResult(b.batch_id))
);
// 3. Als strukturiertes Format exportieren
return {
mandant_data: await getMandantDetails(mandantId),
processed_batches: batches,
results: results
};
}3. Datenlöschung implementieren
Planen Sie Löschprozesse in Ihrer Anwendung ein:
// Beispiel: Löschantrag vorbereiten
async function requestMandantDeletion(mandantId: string) {
// 1. Ergebnisse sichern (falls benötigt)
await exportMandantData(mandantId);
// 2. Löschantrag an SteuerMappePro
await fetch('https://api.steuermappe-pro.de/v1/mandants/delete-request', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
mandant_id: mandantId,
confirmation: true
})
});
// 3. In eigener DB markieren
await db.mandant.update({
where: { id: mandantId },
data: { deletion_requested: new Date() }
});
}4. Audit-Logging in eigener Anwendung
Protokollieren Sie alle Datenzugriffe für Compliance:
// Beispiel: Audit-Log für Datenzugriff
async function logDataAccess(
action: string,
mandantId: string,
userId: string
) {
await db.auditLog.create({
data: {
event_type: action,
mandant_id: mandantId,
user_id: userId,
timestamp: new Date(),
ip_address: request.ip,
user_agent: request.headers.get('User-Agent')
}
});
}
// Verwendung
await logDataAccess('batch_created', mandantId, userId);
await logDataAccess('result_downloaded', mandantId, userId);Weiterführende Ressourcen
Zusammenfassung
SteuerMappePro ist vollständig DSGVO-konform und implementiert Best Practices für Datenschutz und Datensicherheit:
- ✓ EU-Only Datenresidenz - Alle Daten in EU-Rechenzentren
- ✓ Verschlüsselung - TLS 1.2+ in Transit, AES-256 at Rest
- ✓ Datenminimierung - Nur notwendige PII, keine Tracking-Daten
- ✓ Recht auf Löschung - Vollständige Datenlöschung binnen 30 Tagen
- ✓ DPA/AVV - Standardisierter Auftragsverarbeitungsvertrag
- ✓ Audit Logs - 90 Tage Protokollierung für Compliance
- ✓ Datenschutzbeauftragter - Dedizierter Ansprechpartner (dpo@steuermappe-pro.de)