Auftrags­verarbeitungs­vertrag

Auftragsverarbeitungsvertrag nach Art. 28 DSGVO

zwischen

Der Kunde — mit der Firmierung und der Anschrift, die er bei der Registrierung angegeben hat — nachfolgend Verantwortlicher

und

Konzept Schmiede GmbH, Alpenstraße 106, 5081 Neu-Anif, Österreich FN 438396a, Landesgericht Salzburg · UID ATU69867058 vertreten durch Klaus Huttary, Geschäftsführer — nachfolgend Auftragsverarbeiter

Ansprechperson des Auftragsverarbeiters für diesen Vertrag: Marius Raphael Huttary · +43 664 9725814 · support@qlok.eu

§ 1 Gegenstand

Der Auftragsverarbeiter stellt dem Verantwortlichen die Zeiterfassung „qlok" als Software-as-a-Service zur Verfügung. Er verarbeitet dabei personenbezogene Daten ausschließlich im Auftrag und nach Weisung des Verantwortlichen.

Dieser Vertrag gilt für die gesamte Dauer der Nutzung und geht dem Hauptvertrag (AGB) in allen Fragen der Verarbeitung personenbezogener Daten vor.

§ 2 Art, Zweck und Dauer

Zweck: Erfassung, Auswertung und Dokumentation der Arbeitszeit der Beschäftigten des Verantwortlichen, einschließlich Abwesenheiten, Soll-Ist-Vergleich und Monatsabschluss.

Art: Erheben, Speichern, Auslesen, Verwenden, Löschen — in einer Webanwendung.

Dauer: ab der Bestätigung der Registrierung — also bereits für die Laufzeit des kostenlosen Testvertrags (AGB § 3) — für die Dauer des Hauptvertrags, zuzüglich der Aufbewahrungsfrist nach § 9.

§ 3 Kategorien betroffener Personen und Daten

Betroffene: Beschäftigte des Verantwortlichen; die von ihm benannten Ansprechpersonen.

Datenkategorien: Stammdaten (Name, E-Mail, Rolle, Ein- und Austritt), Arbeitszeiten (Zeitstempel, Pausen, Projektzuordnung, Anmerkungen), Abwesenheiten und deren Freigabestatus, Arbeitszeitmodell (Sollstunden je Tag oder Gleitzeit mit Rahmen, Kernzeit und Saldogrenzen), daraus abgeleitete Hinweise und Mitteilungen, Soll-Arbeitszeit und Urlaubsansprüche, Monatsabschlüsse und Auszahlungen, Zugangsdaten (Passwort-Hash, Codes für den zweiten Faktor), Änderungsprotokolle.

Besondere Kategorien (Art. 9): Angaben zu Krankenständen als Gesundheitsdaten. Sie werden ohne Diagnose und ohne Begründung erfasst. Der Auftragsverarbeiter sichert zu, sie denselben Maßnahmen zu unterwerfen wie alle übrigen Daten und sie in seinem Betreiberbereich nicht anzuzeigen (Anlage TOM, Punkt 4.1).

Die vollständige Aufstellung ist Anlage („Verzeichnis von Verarbeitungstätigkeiten").

§ 4 Rechte und Pflichten des Verantwortlichen

Der Verantwortliche ist für die Rechtmäßigkeit der Verarbeitung verantwortlich, insbesondere für die Rechtsgrundlage der Erfassung von Arbeitszeiten und Krankenständen sowie für die Information seiner Beschäftigten.

Hinweis, der in Österreich regelmäßig übersehen wird: Die Einführung eines Systems zur Kontrolle von Arbeitnehmern kann der Zustimmung des Betriebsrats bedürfen (§ 96 Abs. 1 Z 3 bzw. § 96a ArbVG). Diese Prüfung obliegt dem Verantwortlichen.

§ 5 Weisungen

Der Auftragsverarbeiter verarbeitet ausschließlich auf dokumentierte Weisung. Dieser Vertrag und die Nutzung der Anwendung durch den Verantwortlichen gelten als Weisung; darüber hinausgehende Weisungen bedürfen der Textform.

Hält der Auftragsverarbeiter eine Weisung für rechtswidrig, teilt er dies unverzüglich mit und darf die Ausführung aussetzen.

§ 6 Vertraulichkeit

Alle mit der Verarbeitung befassten Personen sind zur Vertraulichkeit verpflichtet. Der Zugang zu Kundendaten ist auf das für den Support Erforderliche beschränkt; jeder Zugriff setzt eine begründete und befristete Freischaltung voraus und wird protokolliert.

Das Protokoll ist dem Verantwortlichen in seiner eigenen Anwendung einsehbar. Diese Zusage ist technisch umgesetzt und nicht bloß organisatorisch.

§ 7 Unterauftragsverarbeiter

Der Verantwortliche stimmt dem Einsatz der in der Anlage genannten Unterauftragsverarbeiter zu. Der Auftragsverarbeiter informiert über die beabsichtigte Hinzuziehung eines weiteren oder den Austausch eines bestehenden Unterauftragsverarbeiters mindestens 30 Tage im Voraus in Textform.

Der Verantwortliche kann der Änderung innerhalb von 14 Tagen ab Zugang der Mitteilung aus einem wichtigen, datenschutzrechtlichen Grund widersprechen. Widerspricht er, so ist der Auftragsverarbeiter berechtigt, die Leistung ohne den betroffenen Unterauftragsverarbeiter zu erbringen, soweit ihm das mit zumutbarem Aufwand möglich ist; andernfalls ist jede Seite berechtigt, den Hauptvertrag zum Zeitpunkt des Wirksamwerdens der Änderung zu kündigen. Auf Widerspruchsrecht und Frist wird in der Mitteilung hingewiesen.

Mit jedem Unterauftragsverarbeiter besteht ein Vertrag mit mindestens den Pflichten dieses Vertrags.

§ 8 Technische und organisatorische Maßnahmen

Es gelten die Maßnahmen der Anlage „TOM". Der Auftragsverarbeiter darf sie ändern, solange das Schutzniveau nicht sinkt; wesentliche Änderungen teilt er mit.

§ 9 Löschung und Rückgabe

Während der Vertragslaufzeit kann der Verantwortliche seine Daten jederzeit vollständig exportieren (strukturiert, gängig, maschinenlesbar — zugleich die Erfüllung von Art. 20).

Nach Vertragsende endet der Zugang zum vereinbarten Termin. Die Daten werden 30 Tage aufbewahrt, damit ein vergessener Export nachgeholt werden kann, und anschließend gelöscht.

Nach Ablauf des Testzeitraums ohne Abonnement bleiben die Daten lesbar und exportierbar (AGB § 3). Sie werden 90 Tage ab Ablauf des Testzeitraums aufbewahrt; danach wird der Betrieb wie nach einer Kündigung behandelt und gelöscht. Die Frist wird beim Ablauf des Testzeitraums automatisch gesetzt und dem Auftragsverarbeiter nach ihrem Verstreichen angezeigt; die Löschung selbst ist eine Handlung eines Menschen mit Protokolleintrag.

Auf Weisung löscht der Auftragsverarbeiter jederzeit, auch während der Laufzeit.

Über jede Löschung wird ein Vermerk geführt, der Betrieb, Grund und Zeilenzahlen enthält — keine personenbezogenen Daten. Er dient dem Nachweis nach Art. 5 Abs. 2.

Ausdrücklich nicht verschwiegen: Gelöschte Daten können in Datenbanksicherungen für die Dauer von 7 Tagen noch enthalten sein — das ist die derzeitige Aufbewahrung der Point-in-Time-Recovery beim Datenbankdienst; ändert sie sich, ändert sich diese Zusage mit. Diese Sicherungen werden nicht ausgewertet und laufen automatisch ab. Eine Löschzusage, die weiter reicht als die Technik, wäre falsch.

§ 10 Unterstützungspflichten

Der Auftragsverarbeiter unterstützt den Verantwortlichen bei Betroffenenanfragen (Art. 12–23), bei Datenschutz-Folgenabschätzungen (Art. 35) und bei der Meldung von Verletzungen des Schutzes personenbezogener Daten.

Meldung einer Datenschutzverletzung: unverzüglich nach Kenntnis, spätestens innerhalb von 24 Stunden, mit den Angaben nach Art. 33 Abs. 3. Die Frist ist bewusst kürzer als die 72 Stunden, die dem Verantwortlichen gegenüber der Aufsichtsbehörde zustehen — er muss seine Meldung noch vorbereiten können.

Betroffenenanfragen, die den Auftragsverarbeiter direkt erreichen, beantwortet er nicht selbst, sondern leitet sie an den Verantwortlichen weiter.

§ 11 Nachweise und Kontrolle

Der Auftragsverarbeiter weist die Einhaltung nach durch: diesen Vertrag samt Anlagen, das Zugriffsprotokoll in der Anwendung des Verantwortlichen sowie die von den Unterauftragsverarbeitern veröffentlichten Nachweise und Zertifizierungen (Anlage „Liste der Unterauftragsverarbeiter").

Darüber hinausgehende Kontrollen, einschließlich Vor-Ort-Prüfungen, führt der Verantwortliche selbst oder durch einen zur Verschwiegenheit verpflichteten Prüfer durch, der nicht Mitbewerber des Auftragsverarbeiters ist. Sie werden mindestens 14 Tage vorher angekündigt, finden während der üblichen Geschäftszeiten statt und dürfen den Betrieb nicht unangemessen beeinträchtigen; ohne besonderen Anlass höchstens einmal im Kalenderjahr. Ein besonderer Anlass liegt insbesondere nach einer Datenschutzverletzung oder auf Verlangen einer Aufsichtsbehörde vor.

§ 12 Haftung

Für Schäden, die einer betroffenen Person durch eine Verarbeitung entstehen, haften die Parteien nach Art. 82 DSGVO. Diese Haftung wird durch diesen Vertrag weder ausgeschlossen noch beschränkt; die Haftungsbeschränkungen des Hauptvertrags (AGB § 9) gelten insoweit nicht.

Im Innenverhältnis trägt jede Partei den Anteil am Schaden, der ihrem Verantwortungsbeitrag entspricht (Art. 82 Abs. 5 DSGVO). Hat eine Partei den gesamten Schaden ersetzt, kann sie von der anderen den auf diese entfallenden Anteil zurückfordern.

Der Auftragsverarbeiter haftet dem Verantwortlichen für Schäden aus der Verletzung dieses Vertrags nach den gesetzlichen Bestimmungen. Für Schäden, die daraus entstehen, dass der Verantwortliche seinen eigenen Pflichten nicht nachgekommen ist — insbesondere den Pflichten aus § 4 (Rechtmäßigkeit der Verarbeitung) und § 5 (Weisungen) —, haftet der Auftragsverarbeiter nicht.

§ 13 Schlussbestimmungen

Änderungen bedürfen der Textform. Es gilt österreichisches Recht. Gerichtsstand ist das für Salzburg sachlich zuständige Gericht (wie im Hauptvertrag, AGB § 11).

Anlagen, die Bestandteil dieses Vertrags sind und unmittelbar nachstehend abgedruckt werden: Verzeichnis von Verarbeitungstätigkeiten · Technische und organisatorische Maßnahmen · Liste der Unterauftragsverarbeiter

Anlage — Verzeichnis von Verarbeitungstätigkeiten

1. Verantwortlicher und Auftragsverarbeiter

AuftragsverarbeiterKonzept Schmiede GmbH, Alpenstraße 106, 5081 Neu-Anif, Österreich · FN 438396a, Landesgericht Salzburg · UID ATU69867058 — Betreiber von qlok.eu
VertreterKlaus Huttary, Geschäftsführer
AnsprechpersonMarius Raphael Huttary · +43 664 9725814 · support@qlok.eu
Datenschutzbeauftragternicht bestellt — die Voraussetzungen des Art. 37 Abs. 1 liegen derzeit nicht vor (keine Verarbeitung in großem Umfang); beim Wachstum des Dienstes erneut zu prüfen
Verantwortlichedie Kundenbetriebe, je einzeln. Jeder Betrieb ist für die Daten seiner Beschäftigten Verantwortlicher; der Betreiber verarbeitet ausschließlich auf dessen Weisung.

Die Liste der Verantwortlichen ist die Tabelle Firma. Sie ist damit selbst Teil dieses Verzeichnisses und muss nicht doppelt geführt werden.


2. Die Verarbeitungstätigkeiten im Einzelnen

2.1 Arbeitszeiterfassung (Kerntätigkeit)

Zweck: Erfassung, Auswertung und Dokumentation der Arbeitszeit der Beschäftigten des Kunden — die gesetzliche Aufzeichnungspflicht nach § 26 AZG.

Betroffene: Beschäftigte der Kundenbetriebe.

Datenkategorien (mit Fundstelle):

KategorieModellInhalt
StammdatenMitarbeiterName, E-Mail, Rolle, Ein-/Austrittsdatum, Passwort-Hash (bcrypt), letzter Login
ArbeitszeitenStempelungZeitstempel, Typ (Kommen/Gehen/Pause), Quelle (System/manuell), Notiz, Projektbezug
AbwesenheitenAbwesenheitArt, Zeitraum, Freigabestatus — darunter `KRANKENSTAND`
ArbeitszeitmodellSollstundenRegelSollstunden je Wochentag, Modell (TAGE oder GLEITZEIT), gültig ab
Soll und AnspruchSollstundenRegel, UrlaubsanspruchWochenarbeitszeit, Urlaubsanspruch, Überträge
AbschlüsseMonatsabschluss, AuszahlungMonatssaldo, Bestätigung, ausbezahlte Stunden
BetriebsdatenProjekt, Feiertag, EinstellungProjektstamm, betriebliche Feiertage, Einstellungen
EinteilungAbteilung, MitarbeiterAbteilung, ProjektAbteilungAbteilungsname und -beschreibung, Zugehörigkeit von Personen und Projekten
BerichtsversandBerichtsplanArt des Berichts, E-Mail-Adressen der Empfänger, Abteilungsbezug, zuletzt versendeter Monat
HinweiseMitteilungsregel, MitteilungsstatusSchwellen und Lesestatus je Person
ÄnderungsprotokollAuditLogwer wann welches Feld von welchem auf welchen Wert geändert hat

Besondere Kategorien nach Art. 9 DSGVO. Abwesenheit.typ = 'KRANKENSTAND' ist eine Angabe zur Gesundheit. Sie steht in der Anwendung ohne Diagnose und ohne Begründung — nur „krank von/bis" —, ist aber trotzdem ein Gesundheitsdatum. Damit gilt das grundsätzliche Verarbeitungsverbot des Art. 9 Abs. 1; die Verarbeitung stützt sich beim Verantwortlichen regelmäßig auf Art. 9 Abs. 2 lit. b (Arbeitsrecht) i. V. m. § 8 Abs. 1 DSG.

Für den Betreiber folgt daraus die Verschärfung, die das ganze Plattform-Dashboard prägt: Er sieht diese Zeilen nicht (siehe TOM, Punkt 3.4).

Zu `Berichtsplan`, weil hier Daten den Betrieb verlassen: Richtet ein Administrator einen Monatsbericht ein, gehen Arbeitszeitdaten seiner Beschäftigten als Excel-Datei an Adressen, die er selbst bestimmt — typischerweise an die Lohnverrechnung. Wer diese Empfänger auswählt, ist der Kunde; er ist Verantwortlicher und weist damit an. Der Betreiber prüft die Adressen nur auf Form und Zahl (höchstens fünf je Bericht), nicht auf Berechtigung — das kann er nicht. Technisch abgesichert ist stattdessen die Nachvollziehbarkeit: jeder Versand wird im `AuditLog` mit Zeitpunkt und vollständiger Empfängerliste festgehalten, und die Einrichtung bleibt Administratoren vorbehalten (kein Abteilungsleiter, siehe src/lib/leiterrechte.ts). In der Anwendung steht dieser Hinweis an der Stelle, an der er gebraucht wird — auf der Einrichtungsseite selbst.

Zu den Abteilungen: Sie sind eine Einteilung des Kunden, keine zusätzliche Datenerhebung über die Beschäftigten. Sie wirken in zwei Richtungen zugleich datensparsam: Ein Projekt einer Abteilung ist für alle anderen unsichtbar, und ein Abteilungsleiter sieht ausschließlich die Arbeitszeitdaten seiner eigenen Abteilung statt die des ganzen Betriebs (Rollenkonzept in src/lib/leitung.ts).

Rechtsgrundlage: Verarbeitung im Auftrag, Art. 28 DSGVO. Der Betreiber hat keine eigene Rechtsgrundlage und braucht keine — er handelt auf Weisung.

Speicherdauer: siehe loeschkonzept.md.


2.2 Zugang und Kontosicherheit

Zweck: Anmeldung, Zwei-Faktor-Authentifizierung, Passwortrücksetzung, Abwehr von Anmeldeangriffen.

KategorieModellInhaltAufbewahrung
AnmeldecodesZweiFaktorCodeHash des Codes, Ablauf, Versuchszähler10 Minuten
WiederherstellungscodesWiederherstellungscodeHash, Verwendungszeitpunktbis zur Verwendung oder Neuerzeugung
Rücksetz-TokenPasswortTokenSHA-256-Hash, Ablaufbis Ablauf oder Verwendung
AnmeldeversucheAnmeldeversuchE-Mail im Klartext, IP-Adresse, Zweck, Zeitpunkt15 Minuten fachlich, Löschung durch den Nachtlauf

Zu `Anmeldeversuch`, weil es die unangenehmste Zeile dieses Verzeichnisses ist: Hier entstehen Daten von Menschen, die nie Kunde werden — jeder Tippfehler in der Adresse erzeugt einen Eintrag mit E-Mail und IP. Die Tabelle ist plattformweit (sie muss es sein: Der Zähler läuft, bevor feststeht, zu welcher Firma eine Anmeldung gehört). Sie ist deshalb ausdrücklich befristet und wird vom nächtlichen Lauf geräumt (src/lib/aufbewahrung.ts).

Rechtsgrundlage: Für die Kontosicherheit Auftragsverarbeitung; für den Anmeldeschutz zusätzlich das berechtigte Interesse des Betreibers an der Sicherheit seines Dienstes (Art. 6 Abs. 1 lit. f), da er hier auch im eigenen Namen handelt.


2.3 Vertragsverhältnis mit dem Kunden

Zweck: Abrechnung, Betreuung, Nachweis der Zustimmung. Hier ist der Betreiber Verantwortlicher, nicht Auftragsverarbeiter.

KategorieModellInhalt
BetriebsdatenFirmaName, Anschrift, UID, Abo-Status, Zahlungskennungen, Fristen
AnsprechpersonenAnsprechpersonName, Funktion, E-Mail, Telefon, Notizen
RegistrierungRegistrierungName, E-Mail, Telefon, Passwort-Hash, IP, zugestimmte Fassungen von AGB und AVV
ZahlungsvorgängeStripeEreignisEreignis-ID und Typ des Zahlungsdienstleisters
Nachrichten zum Testzeitraum und Abo— (keine Speicherung des Inhalts)E-Mail-Adressen der Ansprechpersonen und der aktiven Administratorkonten; Fristen

Rechtsgrundlage: Vertrag (Art. 6 Abs. 1 lit. b) und rechtliche Verpflichtung (Art. 6 Abs. 1 lit. c, Aufbewahrung von Rechnungen). Für die Erinnerungen an Administratorkonten zusätzlich berechtigtes Interesse (Art. 6 Abs. 1 lit. f).


2.4 Betrieb und Rechenschaft

KategorieModellInhalt
BetreiberkontenPlattformAdmin, PlattformCodeKonten des Betreibers selbst
ZugriffsprotokollPlattformProtokolljede Handlung des Betreibers an einer Kundenfirma, mit Begründung

Das Zugriffsprotokoll ist zugleich ein Verkaufsargument, und deshalb ist es so gebaut: Der Kunde sieht diese Einträge in seiner eigenen Anwendung. Nicht „wir schauen nicht hinein", sondern „jeder Blick steht in Ihrem Protokoll". Technisch: PlattformProtokoll ist mandantengebunden und für den Kunden lesbar, für ihn aber nicht schreibbar — ein Protokoll, das der Protokollierte führen könnte, wäre keines.


3. Empfänger

Vollständig in unterauftragsverarbeiter.md. Kurz: Hosting und Datenbank (Sliplane, Rechenzentren von Hetzner in Deutschland), E-Mail-Versand (Mailjet), E-Mail-Empfang (Apple, iCloud+ mit eigener Domain), Zahlungsabwicklung (Stripe, im Einsatz seit 09/2026).

Keine Übermittlung an Dritte darüber hinaus. Kein Analysedienst, kein Zählpixel, keine Werbenetzwerke — auch nicht in den Systemnachrichten (src/lib/mail/texte.ts).

Ausnahme auf Weisung des Kunden: Hat ein Kunde Monatsberichte eingerichtet (2.1, Berichtsplan), gehen die darin enthaltenen Arbeitszeitdaten über denselben Mailversand (Mailjet) an die von ihm benannten Adressen — regelmäßig seine Lohnverrechnung. Empfänger und Inhalt bestimmt der Kunde, der Betreiber führt nur aus.


4. Drittlandübermittlung

Anwendung und Datenbank laufen in Deutschland bei Sliplane (Berlin) in Rechenzentren von Hetzner — keine Drittlandübermittlung für den Betrieb selbst. Verschlüsselte Sicherungen liegen unter anderem bei Backblaze, Inc. (EU-Standort, US-Gesellschaft); Details in unterauftragsverarbeiter.md. Der E-Mail-Empfang läuft über iCloud+ mit eigener Domain; Vertragspartner ist die Apple Distribution International Ltd. (Irland), die Inhalte werden von Apple auch in den USA gespeichert, und für diesen Verbraucherdienst ist kein Auftragsverarbeitungsvertrag zu bekommen — die offene Position ist in unterauftragsverarbeiter.md ausführlich benannt. Zahlungsabwicklung über Stripe Payments Europe (Irland), im Einsatz seit 09/2026; dort ist ein Zugriff durch die US-Muttergesellschaft rechtlich möglich, Grundlage wären das EU-US Data Privacy Framework bzw. Standardvertragsklauseln. Details je Anbieter in unterauftragsverarbeiter.md.


5. Löschfristen

Siehe loeschkonzept.md — dort steht je Kategorie eine Frist, und zu jeder Frist die Stelle im Code, die sie durchsetzt.


6. Technische und organisatorische Maßnahmen

Siehe tom.md.


7. Was in diesem Verzeichnis bewusst NICHT steht

  • Standortdaten. Die Anwendung erfasst keine. Die Berechtigung ist im Browser ausdrücklich abgeschaltet (Permissions-Policy: geolocation=()).
  • Biometrische Daten. Keine.
  • Profilbildung oder automatisierte Entscheidungen nach Art. 22. Keine. Die Mitteilungen (z. B. „Grenzwert überschritten") sind Hinweise an Menschen, keine Entscheidungen — sie lösen nichts aus und haben keine Rechtswirkung.
  • Auswertungen des Betreibers über Kundendaten. Ausgeschlossen und technisch durchgesetzt, siehe TOM 3.4.

Anlage — Technische und organisatorische Maßnahmen

1. Vertraulichkeit

1.1 Zutrittskontrolle (physisch)

Keine eigene Hardware. Anwendung und Datenbank laufen bei Sliplane in Rechenzentren der Hetzner Online GmbH in Deutschland (Unterauftragsverarbeiter); deren Zutrittskontrolle ist Teil der Zertifizierung des Rechenzentrumsbetreibers (Hetzner: ISO 27001). Der Betreiber hat keinen physischen Zugang zu Servern.

1.2 Zugangskontrolle (wer kommt hinein)

MaßnahmeWo
Passwörter nur als bcrypt-Hash, Kostenfaktor 12src/lib/passwortregeln.ts
Mindestlänge 12 Zeichen, Sperrliste, Prüfung auf Eintönigkeitsrc/lib/passwortregeln.ts
Zwei-Faktor-Authentifizierung: Pflicht für jedes Betreiberkonto; für Konten der Kundenbetriebe frei ein- und ausschaltbar (Änderung vom 2026-09-12, zuvor Pflicht auch für Kundenadministratoren)Betreiber: src/lib/plattformZugang.ts mit eigener Anmeldung; Kunde: src/app/profil/zweifaktor/
Anmeldecodes nur als Hash, 10 Minuten gültig, einmal verwendbarsrc/lib/zweifaktor/
Wiederherstellungscodes, einmal ausgegeben, danach nur als Hashsrc/lib/plattformCodeLaden.ts
Sperre nach 5 Fehlversuchen je Adresse, 30 je IP, 15-Minuten-Fenster — instanzübergreifend, weil in der Datenbank gezähltsrc/lib/loginschutz.ts
Feste Mindestdauer jeder Anmeldeantwort — kein Rückschluss aus der Antwortzeit, ob ein Konto existiertsrc/lib/zeitboden.ts
Sitzungen werden bei einem Passwortwechsel entwertetMitarbeiter.passwortGeaendertAm, geprüft in src/lib/auth.ts
Betreiberkonten entstehen nur über die Konsole, nicht über ein Formularscripts/plattform-konto.ts

1.3 Zugriffskontrolle (wer sieht was)

Die Mandantentrennung läuft auf zwei unabhängigen Ebenen. Das ist die wichtigste Einzelaussage dieses Dokuments:

  1. Anwendungsebene: mitFirma() setzt die Firmenzugehörigkeit in jede Abfrage und entfernt sie aus jedem Schreibvorgang — eine Zeile kann den Mandanten nicht wechseln. (src/lib/firma.ts)
  2. Datenbankebene: PostgreSQL Row Level Security mit FORCE ROW LEVEL SECURITY auf jeder Mandantentabelle. Die Anwendung verbindet sich als Rolle app_mandant ohne BYPASSRLS; die Zugehörigkeit steht in einer transaktionslokalen Sitzungsvariablen. (Migration _rls, scripts/rollen-anlegen.sql)

Ebene 1 allein wäre eine vergessene Zeile von einem Datenleck entfernt. Ebene 2 allein wäre kaum lesbar. Dass beide unabhängig voneinander tragen, wird gemessen, nicht behauptet: src/test/mandanten.integration.test.ts prüft Ebene 1 gegen eine Verbindung ohne RLS — also ohne Ebene 2 — und umgekehrt. src/test/lastparallel.integration.test.ts prüft dasselbe unter gleichzeitiger Last mehrerer Firmen.

Weiter:

MaßnahmeWo
Rollen MITARBEITER / ADMIN je Betrieb, serverseitig geprüftsrc/proxy.ts, jede Server Action einzeln
Betreiberzugang ist ein eigener Kontotyp — ein Kunden-Admin kommt dort nie hinein, auch nicht als ADMINsrc/lib/plattformZugang.ts
Getrennte Datenbankrollen: app_mandant (RLS unterworfen, sieht nur die eigene Firma) und app_plattform (sieht über die Richtlinie plattform_vollzugriff alle Firmen, nur für Betreiberaufgaben). Kein Sonderrecht BYPASSRLS — auch der Betreiberzugang läuft über eine nachprüfbare Richtlinie je Tabellescripts/rollen-anlegen.sql, Migration _plattform_richtlinie
Der Plattform-Client darf nur an benannten Stellen verwendet werden — erzwungen durch automatische Testssrc/lib/plattformWache.test.ts

1.4 Trennungskontrolle

Siehe 1.3. Zusätzlich: Die Sicherung eines Kunden enthält ausschließlich dessen Daten (src/lib/sicherung.ts), und eine Rückspielung wirkt nur auf den eigenen Betrieb — mit ausdrücklicher Prüfung, ob die hochgeladene Datei aus einem fremden Betrieb stammt.


2. Integrität

MaßnahmeWo
Übertragung ausschließlich über TLS; HSTS mit zwei Jahren und Unterdomainssrc/lib/sicherheitskopfzeilen.ts
Content-Security-Policy mit Nonce je Anfrage und strict-dynamicsrc/lib/sicherheitskopfzeilen.ts, gesetzt in src/proxy.ts
frame-ancestors 'none', base-uri 'self', form-action 'self', object-src 'none'ebenda
Schutz vor Cross-Site Request Forgery durch das Server-Action-Verfahren von Next.jsRahmenwerk
Eingaben werden geprüft (Zod), Fehlermeldungen technischer Herkunft geschwärztsrc/lib/rueckmeldung.ts
Änderungsprotokoll je manueller Änderung: wer, wann, welches Feld, alter und neuer Wertsrc/lib/audit.ts
Bestätigte Monate sind gesperrt — serverseitig, nicht nur im Knopfsrc/lib/sperre.ts
Bei gesperrtem Abo ist die Erfassung serverseitig blockiert, in der Datenzugriffsschichtsrc/lib/schreibsperre.ts

Ein Restrisiko, ausdrücklich benannt: style-src erlaubt 'unsafe-inline'. Grund: src/app/global-error.tsx trägt seine Gestaltung als Inline-Stilattribute, weil diese Seite genau dann erscheint, wenn das Stylesheet ausgefallen ist; für Attribute hilft ein Nonce nicht. Eingeschleustes CSS ist ohne Freigabe in script-src ein Darstellungs-, kein Ausführungsproblem.


3. Verfügbarkeit und Belastbarkeit

MaßnahmeWo
Verschlüsselung im RuhezustandSicherungen verschlüsselt (AVV Sliplane, Anlage 1). Ob zusätzlich die Datenträger selbst verschlüsselt sind, hat der Betreiber beim Anbieter angefragt; bis zur Antwort wird es hier nicht behauptet
Point-in-Time-Recovery der DatenbankSliplane, 7 Tage auf jeder Stufe; Wiederherstellung in eine neue Datenbank, die alte bleibt bestehen
Datenbankzugang nur von freigegebenen AdressenIP-Freigabeliste bei Sliplane (leere Liste = alles gesperrt); freigegeben: Anwendungsserver, Arbeitsplatz des Betreibers. Verbindung nur über TLS mit Zertifikatsprüfung (sslaccept=strict)
Zeitgesteuerte Läufe mit gemeinsamem Geheimnis, Fehlschläge lautdeploy/cron, src/lib/cronschutz.ts, src/lib/zeitgeber.test.ts
Vollständige Sicherung als Datei, je Betrieb herunterladbar/api/admin/backup
Betriebssicherung über alle Betriebe vor jedem Updatenpm run db:sicherung
Geprobte Rückspielung — sichern, zerstören, einspielen, Zeile für Zeile vergleichennpm run probe-ruecksicherung, zusätzlich bei jedem Push in der CI
Gesundheitsendpunkt für eine Überwachung von außen/api/status
Fehlerüberwachung mit erkennbarem Präfix „VORFALL" im Protokollsrc/lib/ueberwachung.ts
Lasttest über mehrere Betriebe gleichzeitigsrc/test/lastparallel.integration.test.ts

Die geprobte Rückspielung ist der Punkt, an dem sich dieses Dokument von den meisten unterscheidet. „Regelmäßige Sicherungen" steht in jedem TOM-Papier. Ob sie sich zurückspielen lassen, weiß man erst, wenn man es getan hat — und die meisten haben es nicht. Hier läuft die Probe bei jedem Push, und sie vergleicht den Bestand danach Zeile für Zeile mit dem davor.


4. Verfahren zur regelmäßigen Überprüfung

MaßnahmeWo
Automatische Prüfung auf bekannte Schwachstellen in den Abhängigkeiten, mit befristeten und begründeten Ausnahmennpm run pruefe-abhaengigkeiten, in der CI
Prüfung der Datenbank auf fehlende RLS-Richtlinien und Rechteentzügenpm run pruefe-plattformrolle, in der CI
Wache gegen Geheimnisse im Browser-BündelCI-Schritt
Wachen gegen personenbezogene Zugriffe im Betreiberbereichsrc/lib/plattformAggregatWache.test.ts
Über 900 automatische Tests, darunter Trennungs-, Sperr- und Rückspielprobennpm test, npm run test:integration
Sicherheitskatalog über 20 Schwachstellenklassen, je mit Befunddocs/superpowers/plans/2026-09-08-ap7-sicherheitskatalog.md

4.1 Was der Betreiber vom Kunden NICHT sieht

Diese Maßnahme hat keine Entsprechung in den üblichen TOM-Listen, ist hier aber die wirksamste — und für einen Betriebsrat die entscheidende Frage:

  • Das Plattform-Dashboard lädt keine Zeile aus Stempelung, Abwesenheit, Monatsabschluss, Auszahlung, Urlaubsanspruch oder AuditLog und aus Mitarbeiter weder Namen noch E-Mail. Es rechnet ausschließlich mit count, groupBy und aggregate.
  • Das ist durch automatische Tests erzwungen, nicht vereinbart: plattformAggregatWache.test.ts durchsucht den gesamten Betreiberbereich nach Zeilenzugriffen und nach include/select auf die betroffenen Beziehungen. Ein „include" zu viel lässt die automatischen Tests fehlschlagen.
  • Jeder Support-Zugriff braucht Grund und Befristung und steht anschließend im Protokoll — das der Kunde in seiner eigenen Anwendung sieht.
  • Schon das Öffnen einer Firmendetailseite erzeugt einen Protokolleintrag, gedrosselt auf einen je Stunde.

5. Offen — und deshalb hier und nicht verschwiegen

PunktStand
Rückspielprobe gegen Sliplanedurchgeführt 2026-09-14, bestanden (npm run probe-ruecksicherung)
Datenbankprüfung gegen Sliplanedurchgeführt 2026-09-14, 7 von 7 bestanden — ohne BYPASSRLS, app_plattform über die Richtlinie plattform_vollzugriff; Leseprobe Nr. 5 nach dem ersten Datensatz zu wiederholen. 153 von 155 Integrationstests bestanden, die zwei übrigen siehe Lasttest.
Lasttest vom Sliplane-Server ausoffen. Vom Arbeitsplatz aus (35 ms je Abfrage bis Falkenstein) überschreiten zwei Lesepfade die Zeitgrenze von 15 s; zu wiederholen, wo Anwendung und Datenbank nebeneinander liegen. Die Jahresstatistik braucht schon lokal 7 s — mit 1 vCPU für die Datenbank genau beobachten.
Kopfzeile der Besucheradresse hinter dem Proxy von Sliplanegeprüft 2026-09-14: Der Proxy überschreibt X-Forwarded-For; eine gefälschte Kopfzeile kommt nicht an, die Schwelle je Herkunft im Brute-Force-Schutz trägt. Kein vorgeschalteter Proxy mehr: DNS liegt bei INWX (seit 2026-09-14).
Aufbewahrung der Dienstprotokolle bei SliplaneDie Protokolle enthalten Vorfallsmeldungen und Berichte der zeitgesteuerten Läufe, keine Beschäftigtendaten. Die Aufbewahrungsdauer des Anbieters ist angefragt.
Wiederherstellung auf einen Zeitpunkt tatsächlich ausgeführtDie Rückspielprobe prüft die Dateisicherung, nicht die Point-in-Time-Recovery des Anbieters. Einmal in einen neuen Cluster wiederherstellen und vergleichen — vor dem Produktivgang.
Externer ÜberwachungsdienstNaht steht, Dienst nicht gewählt (wird Unterauftragsverarbeiter)
Externe Statusseitekeine — der Endpunkt existiert, ein Überwachungsdienst muss ihn abfragen
Verschlüsselung einzelner Felder (z. B. Abwesenheitsart)nicht umgesetzt; die Trennung wirkt auf Zeilenebene, nicht auf Feldebene
Regelmäßiger externer Penetrationstestnicht durchgeführt
Schulung und Verpflichtung auf VertraulichkeitEs gibt keine Beschäftigten, die Zugang hätten: Der Betreiber ist die einzige Person mit Zugriff und unterliegt der Verschwiegenheit unmittelbar aus dem Auftragsverarbeitungsvertrag (§ 6). Kommen Beschäftigte hinzu, ist die schriftliche Verpflichtung vor dem ersten Zugriff einzuholen

Anlage — Unterauftragsverarbeiter

1. Eingesetzte Dienste

DienstZweckSitz / RegionBerührte DatenVertrag
Sliplane (Lukas Mauser, Berlin)Betrieb der Anwendung (Server, Auslieferung, Zeitgeber), verwaltete PostgreSQL-Datenbank samt SicherungenDeutschland; Datenbank in Falkenstein, Server in einem Rechenzentrum der Hetzner Online GmbH in Deutschland (Falkenstein oder Nürnberg)alle Daten — gespeicherte wie durchlaufendeAVV nach Art. 28, Fassung 2.1 — geschlossen am 19.09.2026 (elektronisch im Dashboard angenommen, ausgefertigte Kopie abgelegt)
Mailjet (Sinch Email, FR)Versand der Systemnachrichten und der Betreibernachrichten (Zahlungserinnerung, Rundschreiben)Frankreich; Vertragspartner ist die Sinch-Gruppe, Recht und Aufsicht Schweden (siehe unten)Empfängeradresse, Betriebsname, Firmenkürzel, Inhalt der Nachricht (Anmeldecodes, Rücksetzlinks, Fristen des Testzeitraums und des Abonnements)Sinch Data Processing Agreement, Fassung vJan 2025 — geschlossen am 21.09.2026 (beiderseits unterzeichnet, ausgefertigte Kopie abgelegt; Einzelheiten unten)
Apple (Apple Distribution International Ltd., Cork, Irland)Empfang und Versand der Post an support@qlok.eu und marius.huttary@qlok.eu über iCloud+ mit eigener DomainIrland als Vertragspartner; Speicherung der iCloud-Inhalte in Rechenzentren von Apple und dessen Anbietern, auch in den USAwas Kunden von sich aus schreiben — bei Supportanfragen möglicherweise Beschäftigtendatenkein AVV verfügbar — siehe die Anmerkung unten
Stripe Payments Europe Ltd.Zahlungsabwicklung (Abonnement, Rechnungen, Kundenportal) — aktiv, im Einsatz seit 09/2026Irland; US-Muttergesellschaft (Stripe, Inc.)Betriebsname, Anschrift, UID, Zahlungsdaten, Zahl der Sitzplätze, Rechnungs-E-Mail (siehe unten) — keine Zeit- oder AbwesenheitsdatenStripe Data Processing Agreement — geschlossen mit der Kontoeröffnung, Bestandteil der Dienstleistungsvereinbarung (stripe.com/de/legal/dpa); Drittlandübermittlung: EU-US Data Privacy Framework / SCC
INWX GmbHRegistrar und DNS der Domain qlok.euDeutschlandkeine Kundendaten — DNS beantwortet Namen, nicht Inhalte; nur die Registrierungsdaten des Betreiberskeiner nötig

2. Anmerkungen, die in die Bewertung gehören

Sliplane ist ein deutscher Anbieter mit Sitz in Berlin; Anwendung und Datenbank laufen in Rechenzentren der Hetzner Online GmbH in Deutschland. Für den Betrieb selbst findet keine Übermittlung in ein Drittland statt. Das ist der Punkt, an dem ein Betriebsrat nachfragen wird. Bis 2026-09-14 standen an dieser Stelle Vercel und Neon (US-Gesellschaften mit EU-Region); gewechselt wurde vor dem ersten Kundendatensatz. Beide sind aus der Kette vollständig heraus. IONOS Cloud war kurz vorgesehen und wurde wegen der Kosten verworfen.

Sliplane setzt seinerseits Unterauftragsverarbeiter ein. Die folgende Liste ist Abschnitt 6 des am 19.09.2026 angenommenen AVV (Fassung 2.1) entnommen. Für die Region Deutschland, die qlok nutzt, betrifft das:

DienstZweckSitz / Ort
Hetzner Online GmbHRechenzentrum für Server und DatenbankDeutschland
Impossible Cloud GmbHObjektspeicher und verschlüsselter SicherungsspeicherHamburg (Sitz); Verarbeitung laut AVV in Frankfurt (EU) und New York (USA). Welcher der beiden für die Region Deutschland greift, sagt der Vertrag nicht — bei Sliplane zu erfragen
Backblaze, Inc.verschlüsselte Sicherungen der Datenträger und der DatenbankAmsterdam (EU); US-Gesellschaft
IONOS SEverschlüsselte Sicherungen an einem getrennten OrtDeutschland

Die im selben Abschnitt genannten DataCamp Limited (Seattle) und Latitude.sh (Ashburn, Singapur) betreffen ausschließlich die Server-Regionen USA und Singapur. qlok nutzt sie nicht; nach Abschnitt 2 des AVV verlegt Sliplane keine Daten in eine Region, die der Verantwortliche nicht gewählt hat.

Ehrlich benannt: Backblaze. Die Sicherungen liegen in der EU und sind verschlüsselt, aber Backblaze ist eine US-Gesellschaft. Ein Zugriff nach US-Recht auf die verschlüsselten Dateien ist damit rechtlich nicht ausgeschlossen. Ob der Schlüssel bei Sliplane oder beim Speicheranbieter liegt — davon hängt ab, was ein solcher Zugriff hergäbe.

Zum Namen im Sliplane-Vertrag. Die ausgefertigte Kopie vom 19.09.2026 nennt als Verantwortlichen den Kontonamen „mariushcloud's team" unter der Anschrift Alpenstraße 106, Neu-Anif, AT — also der Anschrift der Konzept Schmiede GmbH, die Vertragspartner ist. Der Betreiber hat am 21.09.2026 entschieden, es dabei zu belassen: Anschrift und handelnde Person stimmen, der Kontoname ist eine Bezeichnung und keine Partei, und der Vertrag ist wirksam geschlossen. Wer ihn prüft, wird die Zeile lesen — deshalb steht sie hier erklärt und nicht unerwähnt.

Ehrlich benannt: Sliplane ist ein kleiner Anbieter (laut AVV betrieben von einer natürlichen Person). Das ist datenschutzrechtlich kein Mangel, betrifft aber die Verfügbarkeit und die Frage, was bei einer Einstellung des Dienstes geschieht. Die Anwendung ist deshalb bewusst nicht an Sliplane gebunden (Abschnitt 3).

Die Datenbank hängt nicht in einem privaten Netz, sondern ist über das Internet erreichbar — nur von ausdrücklich freigegebenen IP-Adressen und nur über TLS mit Zertifikatsprüfung. Freigegeben sind der Anwendungsserver und, für Wartung, der Arbeitsplatz des Betreibers.

Let's Encrypt (Internet Security Research Group, USA) stellt die TLS-Zertifikate aus. Übermittelt wird dabei der Domainname, keine Kundendaten — kein Unterauftragsverarbeiter.

Ehrlich benannt: das Postfach liegt bei Apple, und dafür gibt es keinen AVV. Seit 09/2026 laufen support@qlok.eu und marius.huttary@qlok.eu über iCloud+ mit eigener Domain und landen im iCloud-Postfach des Betreibers; der frühere Empfang über Infomaniak (Schweiz) ist entfallen. iCloud+ ist ein Verbraucherdienst: Apple schließt dafür keinen Auftragsverarbeitungsvertrag nach Art. 28 DSGVO ab, und die iCloud-Inhalte werden nach Apples eigenen Angaben auch in Rechenzentren in den USA gespeichert.

Solange das Postfach nur Post enthält, die Kunden von sich aus schreiben, ist das vertretbar — der Absender entscheidet selbst, was er hineinschreibt, und die Verarbeitung beruht auf seiner eigenen Kontaktaufnahme, nicht auf dem Auftrag. Unhaltbar wird es, sobald dort planmäßig Beschäftigtendaten des Kunden bearbeitet werden, etwa Stundenlisten, die zur Klärung geschickt werden.

Zwei Dinge sind deshalb zu tun. Erstens: dem Juristen die Frage vorlegen, ob der Empfang von Supportpost über einen Verbraucherdienst ohne AVV tragbar ist — und ob der Dienst stattdessen in diese Liste gehört oder gar nicht hineindarf. Zweitens gilt bis dahin eine Hausregel: Beschäftigtendaten gehören nicht ins Postfach. Wer Zahlen klären will, tut das in der Anwendung — dafür gibt es den angemeldeten, befristeten Support-Zugriff (AVV § 6.4). Anhänge mit Personaldaten werden nicht angefordert und nach der Klärung gelöscht.

Der Punkt ließe sich auch technisch aus der Welt schaffen: Ein Postfach bei einem Geschäftsdienst mit AVV (Infomaniak, mailbox.org, Microsoft 365) kostet wenige Euro im Monat und macht aus der offenen Position eine Zeile in der Tabelle oben.

Die Domain liegt vollständig bei INWX (Registrar und Nameserver, seit 2026-09-14). qlok.eu zeigt per A/AAAA-Eintrag direkt auf den Server bei Sliplane, www.qlok.eu per CNAME; die Anwendung leitet www auf qlok.eu weiter (next.config.mjs). Die MX-Einträge zeigen auf Apple (iCloud+ mit eigener Domain), dazu die von Apple vorgegebenen SPF-, DKIM- und DMARC-Einträge. Cloudflare ist an der Domain nicht mehr beteiligt — weder als Registrar noch als Nameserver noch als Proxy — und damit kein Dienst dieser Kette mehr.

Mailjet berührt keine Zeitdaten, sondern nur Adressen und die Texte der Systemnachrichten. Die Nachrichten zum Testzeitraum und Abonnement gehen an die Ansprechpersonen und an die aktiven Administratorkonten eines Betriebs (src/lib/abrechnung/lauf.ts, empfaenger). Nachrichten, die der Betreiber selbst auslöst — die vorgefertigten Knöpfe im Firmendetail und die Rundschreiben aus dem Reiter „Mails" — gehen ausschließlich an die hinterlegten Ansprechpersonen, also an die Vertragspartner des Betreibers und nicht an Beschäftigte (src/lib/plattformNachrichtLaden.ts). Die Texte enthalten bewusst keine Beschäftigtendaten über den Empfänger hinaus — kein Saldo, keine Krankenstände, keine Namen Dritter. Nachlesbar in src/lib/mail/texte.ts und src/lib/betreibernachrichten.ts.

Der Vertrag mit Mailjet ist geschlossen. Am 21.09.2026 wurde das Sinch Data Processing Agreement, Fassung vJan 2025 (Sinch ist die Muttergesellschaft von Mailjet) von beiden Seiten unterzeichnet. Damit ist die Kette der Auftragsverarbeitungsverträge vollständig: Sliplane, Sinch und Stripe liegen vor, und für INWX wird keiner gebraucht. Offen bleibt allein das Postfach bei Apple — dazu die Anmerkung weiter unten.

Was darin steht, soweit es diese Anlage betrifft:

- Der Vertrag ist Bestandteil des Sinch-Rahmenvertrags („Principal Agreement"); die Vertragsparteien sind dieselben. - Drittlandübermittlung: Standardvertragsklauseln nach Durchführungsbeschluss (EU) 2021/914, Modul 2 (Verantwortlicher an Auftragsverarbeiter) bzw. Modul 3, wo Sinch Unterauftragsverarbeiter ist. Dazu das UK-Addendum. Für Sinch Email zusätzlich das EU-US Data Privacy Framework. - Anwendbares Recht der Klauseln: Schweden. Zuständige Aufsichtsbehörde nach Klausel 13 ist die schwedische Datenschutzbehörde IMY (Integritetsskyddsmyndigheten). Das ist erwähnenswert, weil man Mailjet für französisch hält: Vertragspartner und Aufsicht sind schwedisch. - Unterauftragsverarbeiter von Sinch: allgemeine Genehmigung mit Ankündigung 30 Tage im Voraus und einem Widerspruchsrecht binnen 10 Werktagen. Die Liste steht unter sinch.com/data-protection-agreement/sub-processors. - Technische und organisatorische Maßnahmen: Anlage 2 des Sinch-DPA.

Ein Punkt bleibt, und er ist leicht zu übersehen: Die 30-Tage-Ankündigung neuer Unterauftragsverarbeiter kommt nur, wenn man sie abonniert hat — über die Benachrichtigungsfunktion auf derselben Seite. Ohne dieses Abonnement gibt es kein Widerspruchsrecht, das man ausüben könnte, weil man nichts erfährt.

Stripe berührt keine Zeit- und Abwesenheitsdaten. Übertragen wird die Zahl der Sitzplätze, nicht wer sie belegt (src/lib/abrechnung/sitzplaetze.ts rechnet mit count, nicht mit Zeilen).

Eine Beschäftigtenangabe erreicht Stripe genau in einem Fall, und der gehört hierher: Ist für einen Betrieb keine Ansprechperson mit E-Mail hinterlegt, geht beim ersten Abschluss die Adresse des Admin-Kontos, das bucht, als Rechnungsadresse an Stripe (src/lib/abrechnung/checkoutLaden.ts, rechnungsadresse). Ohne sie käme keine Rechnung an. Wer das vermeiden will, hinterlegt vor dem Abschluss eine Ansprechperson.

Ein Überwachungsdienst ist NICHT eingesetzt. Die Naht steht (src/lib/ueberwachung.ts); Vorfälle gehen derzeit ins Dienstprotokoll bei Sliplane, also an keinen zusätzlichen Empfänger. Ein externer Dienst (etwa Sentry mit EU-Region) wird Unterauftragsverarbeiter und muss vorher in diese Tabelle und in den AVV.

Kein Analysedienst, keine Zählpixel, keine Werbenetzwerke — weder auf der Landing Page noch in der Anwendung noch in den E-Mails.


3. Wechsel eines Dienstes

Der AVV muss regeln, wie ein Wechsel abläuft (Art. 28 Abs. 2: Information und Widerspruchsrecht). Technisch ist der Wechsel bei zwei der Dienste bewusst vorbereitet:

  • Mailversand: src/lib/mail/ ist eine Schnittstelle mit austauschbarer Umsetzung. Der Grund steht dort und ist genau dieser: Der Anbieter wird Unterauftragsverarbeiter, ein Wechsel ist ein Vorgang mit Vorlauf und kein technischer Zufall.
  • Abrechnung: src/lib/abrechnung/anbieter.ts, gleiche Bauart.

Für Hosting und Datenbank gilt das nicht — ein Wechsel ist dort ein Projekt, kein Eintrag. Er ist aber kleiner geworden: Die Mandantentrennung setzt seit 2026-09-14 kein Sonderrecht des Datenbankanbieters mehr voraus (Richtlinie statt BYPASSRLS, Migration _plattform_richtlinie) und läuft auf jedem PostgreSQL.


4. Wie ein AVV mit diesen Diensten zustande kommt

Was damit gemeint ist. Ein Auftragsverarbeitungsvertrag ist hier kein Schriftstück, das Sie selbst aufsetzen und dem Dienst schicken. Jeder dieser Anbieter hält einen fertigen Vertragstext bereit („Data Processing Agreement", DPA) und bietet ihn im eigenen Konto zur Annahme an. Sie sind dort der Kunde: Der Anbieter verpflichtet sich Ihnen gegenüber zu demselben, wozu Sie sich Ihren eigenen Kunden gegenüber verpflichten — Weisungsbindung, Vertraulichkeit, technische Maßnahmen, Meldung von Datenpannen, Löschung am Ende. Das dauert je Dienst ein paar Minuten und besteht überall aus denselben drei Schritten:

  1. Annehmen. Im Konto des Dienstes die Stelle suchen, an der das DPA liegt, es lesen und zustimmen. Meist ein Kontrollkästchen mit Namenszeile.
  2. Die Fassung ablegen. PDF herunterladen, mit Datum in die eigene Ablage. Das ist der eigentliche Punkt. Fragt ein Kunde oder die Datenschutzbehörde nach, gilt nicht, dass Sie irgendwann zugestimmt haben, sondern nur das, was Sie vorlegen können.
  3. Hier eintragen. Fassung und Datum in die Tabelle in Abschnitt 1. Nur dann stimmt die Anlage, die Ihre Kunden mit dem AVV bekommen.

Je Dienst, konkret:

DienstWoStand
SliplaneDashboard → Kontoeinstellungen, „Data Processing Agreement"Erledigt. Fassung 2.1, angenommen am 19.09.2026, 16:33 UTC. Die ausgefertigte Kopie nennt Annahmezeitpunkt, annehmende Person und Fassung und liegt in der Ablage des Betreibers.
Mailjet / SinchKonto → Account Settings → Data Protection; sonst über den Support anfordernErledigt. Sinch Data Processing Agreement, Fassung vJan 2025, am 21.09.2026 von beiden Seiten unterzeichnet; die ausgefertigte Kopie liegt in der Ablage des Betreibers. Offen bleibt nur das Abonnement der Benachrichtigung über neue Unterauftragsverarbeiter.
StripeDashboard → Settings → Compliance and documentsErledigt. Das DPA ist Bestandteil der Dienstleistungsvereinbarung und gilt mit der Kontoeröffnung; der Text steht unter stripe.com/de/legal/dpa. Eine gesonderte Annahme gibt es nicht.
Apple (iCloud+)—Gibt es nicht. Apple bietet für iCloud+ keinen Auftragsverarbeitungsvertrag an. Das ist keine Formalie, die man nachholt, sondern eine offene Position — siehe die Anmerkung in Abschnitt 2.
INWX—Kein AVV nötig: Es werden keine Kundendaten verarbeitet, nur die Registrierungsdaten des Betreibers.

Und dann:

  1. Diese Liste in den AVV aufnehmen (als Anlage, auf die der Vertragstext verweist).
  2. Vor jedem neuen Dienst: erst hier eintragen, dann einsetzen.
  3. Bei Sliplane erfragen: Speicherort des Objektspeichers für die Region Deutschland, Schlüsselverwaltung der Sicherungen, Aufbewahrungsdauer der Dienstprotokolle.
  4. Bei Sinch die Benachrichtigung über neue Unterauftragsverarbeiter abonnieren — sonst läuft das vereinbarte Widerspruchsrecht ins Leere.

Fragen dazu

Ansprechpartner
Marius Raphael Huttary