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

Diese Dokumentation richtet sich an Entwickler und technische Entscheider, die SteuerMappePro in ihre Systeme integrieren möchten. Sie beschreibt technische Compliance-Maßnahmen und Datenschutzimplementierungen aus Entwicklersicht.

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

Unsere Infrastruktur-Partner (Dropbox, Cloud-Provider) sind ISO 27001 und SOC 2 Type II zertifiziert und bieten umfassende Sicherheits- und Compliance-Garantien.

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:

DatenfeldZweckRechtsgrundlageRetention
User (firstName, lastName, email)Authentifizierung, KontaktaufnahmeVertrag (Art. 6(1)(b) DSGVO)Account-Laufzeit + 30 Tage
Organization (name, address, VAT-ID)Abrechnung, RechnungsstellungVertrag (Art. 6(1)(b) DSGVO)
Steuerrecht (Art. 6(1)(c) DSGVO)
10 Jahre (gesetzl. Aufbewahrungspflicht)
Mandant (firstName, lastName, taxId)Kategorisierung, DokumentenzuordnungBerechtigtes Interesse (Art. 6(1)(f) DSGVO)Löschbar auf Anfrage
API Credentials (client_id, client_secret)API-AuthentifizierungVertrag (Art. 6(1)(b) DSGVO)Project-Laufzeit
Audit Logs (IP, User-Agent, Timestamps)Sicherheit, MissbrauchserkennungBerechtigtes 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

Mandant-Informationen (firstName, lastName, taxId) sind optional und dienen ausschließlich der Kategorisierung von Dokumenten. Sie können die API auch ohne Mandant-Zuordnung nutzen.

Datenaufbewahrungsrichtlinien

Automatische Löschfristen

SteuerMappePro implementiert automatische Löschrichtlinien für verschiedene Datentypen:

DatentypRetention PeriodAutomatische Löschung
Verarbeitete Dokumente (Dropbox)90 Tage nach AbschlussJa (automatischer Cron-Job)
Process Metadata12 Monate (für Reporting)Ja (anonymisiert nach 12 Monaten)
Access Tokens (JWT)1 StundeJa (automatischer Ablauf)
Webhook Delivery Logs30 TageJa
Audit Logs90 TageJa
Billing Records (Invoices)10 JahreNein (gesetzl. Aufbewahrungspflicht)

Gesetzliche Aufbewahrungspflichten

Rechnungen und abrechnungsrelevante Daten unterliegen den steuerrechtlichen Aufbewahrungspflichten (§ 147 AO: 10 Jahre in Deutschland). Diese Daten können nicht vorzeitig gelöscht werden, auch nicht auf Anfrage.

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

Wenn Sie als API-Consumer Mandant-Daten löschen möchten, archivieren Sie zunächst alle relevanten Ergebnisse in Ihrem eigenen System. Nach der Löschung sind keine historischen Daten mehr abrufbar.

Zweckbindung (Art. 5(1)(b) DSGVO)

Definierte Verarbeitungszwecke

Personenbezogene Daten werden ausschließlich für folgende Zwecke verarbeitet:

ZweckBeschreibungBetroffene Daten
VertragserfüllungBereitstellung der API-Dienste und DokumentenverarbeitungUser, Organization, Mandant, Processes
AbrechnungRechnungsstellung und ZahlungsabwicklungOrganization, Billing Records, Usage Statistics
SicherheitMissbrauchserkennung, Betrugsverhinderung, Rate LimitingIP-Adressen, API Logs, Audit Trails
SupportFehlerdiagnose, technischer SupportUser Contact Data, Error Logs
ComplianceErfüllung gesetzlicher Anforderungen (Steuerrecht, AML)Organization VAT-IDs, Billing Records

Keine Weitergabe an Dritte

SteuerMappePro gibt keine personenbezogenen Daten an Dritte weiter, außer:
  • • 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

Der DPA wird automatisch Teil Ihres Vertrags. Sie können eine signierte Kopie anfordern unter: dpo@steuermappe-pro.de

Unterauftragsverarbeiter

SteuerMappePro nutzt folgende Unterauftragsverarbeiter mit gültigem DPA:

AnbieterDienstStandortZertifizierungen
Dropbox BusinessDokumentenspeicherungEU (Frankfurt, Dublin)ISO 27001, SOC 2 Type II, GDPR
Cloud ProviderHosting & ComputeEU (Frankfurt)ISO 27001, SOC 2, PCI DSS

Änderungen an Unterauftragsverarbeitern

Sie werden 30 Tage im Voraus über Änderungen an Unterauftragsverarbeitern informiert und haben ein Widerspruchsrecht gemäß Art. 28(2) DSGVO.

Audit Logs & Compliance Reporting

Audit-Protokollierung

SteuerMappePro protokolliert alle sicherheitsrelevanten Ereignisse für 90 Tage:

Event TypeProtokollierte DatenRetention
auth.token_issuedClient-ID, Timestamp, IP-Adresse, Scopes90 Tage
auth.failed_loginClient-ID, IP-Adresse, Fehlermeldung90 Tage
batch.createdBatch-ID, Project-ID, User-ID, Timestamp12 Monate
mandant.deletedMandant-ID, User-ID, Timestamp10 Jahre (Compliance)
api.rate_limit_exceededClient-ID, IP-Adresse, Endpoint90 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

Compliance-Reports können angefordert werden unter: compliance@steuermappe-pro.de (Bearbeitungszeit: 5-10 Werktage)

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

Antwortzeit
2-5 Werktage

Anfragen und Rechte

Nutzer und API-Consumer haben folgende Rechte nach DSGVO:

Recht (DSGVO)BeschreibungKontakt
Auskunft (Art. 15)Welche Daten werden über mich gespeichert?dpo@steuermappe-pro.de
Berichtigung (Art. 16)Korrektur falscher Datendpo@steuermappe-pro.de
Löschung (Art. 17)Vollständige Datenlöschungdpo@steuermappe-pro.de
Datenportabilität (Art. 20)Export aller Daten in maschinenlesbarem Formatdpo@steuermappe-pro.de
Widerspruch (Art. 21)Widerspruch gegen Verarbeitungdpo@steuermappe-pro.de
BeschwerdeBeschwerde bei AufsichtsbehördeLandesbeauftragter für Datenschutz

Bearbeitungszeit

Alle Anfragen werden innerhalb von 30 Tagen bearbeitet (Art. 12(3) DSGVO). In komplexen Fällen können wir die Frist um weitere 60 Tage verlängern.

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)