Auftragsverarbeitungsvertrag
Stand: 14. Oktober 2026
Parteien
- Verantwortlicher: der Shopify-Händler, der die App „Kurswacht Invoice“ installiert (der „Verantwortliche“).
- Auftragsverarbeiter: Robin Schmitt, Schmitt IT (Einzelunternehmen), Deutschhausplatz 1a, 55116 Mainz, Deutschland, E-Mail hello@kurswacht.com (der „Auftragsverarbeiter“).
Der Vertrag kommt mit der Installation der App zustande und ist Teil der Nutzungsbedingungen (https://kurswacht.com/agb/, § 8). Der Verantwortliche kann ihn jederzeit unter https://kurswacht.com/avv/ abrufen und speichern.
§ 1 Gegenstand und Dauer
- Der Auftragsverarbeiter erzeugt mit der App aus Shopify-Bestellungen des Verantwortlichen Rechnungen und Gutschriften, speichert sie, stellt sie Kunden zum Download und dem Verantwortlichen zum Export bereit.
- Der Vertrag gilt, solange die App im Shop installiert ist, und endet mit der Löschung nach § 9.
§ 2 Art und Zweck, Datenarten, Betroffene
- Zweck: Erstellung, Speicherung und Bereitstellung von Rechnungen und Gutschriften; Kunden-Downloads; Exporte; regelbasierte Automatik; die vom Verantwortlichen eingeschalteten Funktionen VIES-Prüfung, E-Mail-Versand über dessen eigenes Postfach und Shopify-Flow-Auslöser; Bearbeitung von Shopify-Datenschutzanfragen.
- Datenarten: Name, Firma, Rechnungs- und Lieferanschrift einschließlich Land; USt-IdNr. des Käufers, sofern angegeben, und bei eingeschalteter VIES-Prüfung deren Bestätigung (Datum, Abfragekennung); Leitweg-ID bei eingeschalteter XRechnung; bei „Sprache der Bestellung“ die Belegsprache; Bestelldaten (Nummer, Daten, Positionen, Preise, Steuern, Rabatte, Versand, Gebühren); Zahlungsstatus, Name der Zahlungsart, Zahlungs- bzw. Transaktionsreferenz; Erstattungen, Stornierungen und Bestelländerungen; erzeugte Belege (PDF, XML, Prüfbericht). Gelesen, aber nicht gespeichert: Bestellnotiz und Bestellattribute (außer einer daraus erkannten USt-IdNr. oder Leitweg-ID). Nur bei eingeschaltetem E-Mail-Versand gelesen und an das Postfach des Verantwortlichen übergeben, aber nicht gespeichert: die E-Mail-Adresse der Bestellung; gespeichert werden nur Versandstatus, Zahl und Zeitpunkt der Versuche und ein Verlaufseintrag ohne Adresse. Von Bestell-Tags, Zahlungsart, Land und Verkaufskanal speichert der Automatik-Verlauf nur die vom Verantwortlichen eingetragenen Filterwerte, die eine Bestellung erfüllt hat. Nicht verarbeitet: Telefonnummern von Kunden.
- Betroffene: Kundinnen und Kunden sowie Rechnungs- und Lieferempfänger des Verantwortlichen.
- Übermittlungen auf Weisung: Bei eingeschalteter VIES-Prüfung übermittelt der Auftragsverarbeiter die USt-IdNr. des Käufers und die des Verantwortlichen an den EU-Dienst VIES der Europäischen Kommission. Beim E-Mail-Versand übergibt er E-Mail-Adresse und Beleg an den SMTP-Server, den der Verantwortliche einträgt, und, falls eingetragen, eine Kopie mit Anhängen an die vom Verantwortlichen bestimmte BCC-Adresse; die Nachricht enthält, sofern verfügbar, auch den signierten Download-Link des Belegs; Anbieter und Kopie-Empfänger wählt der Verantwortliche selbst, sie sind keine Unterauftragsverarbeiter des Auftragsverarbeiters. Bei eingeschaltetem Flow-Auslöser meldet er jeden fertigen Beleg mit Bestellbezug, Belegnummer, Belegart, signiertem Download-Link, Datum, Bruttobetrag und Währung an Shopify Flow im Shop des Verantwortlichen.
§ 3 Weisungen
- Der Auftragsverarbeiter verarbeitet Daten nur auf dokumentierte Weisung des Verantwortlichen. Die Einstellungen in der App und dieser Vertrag sind die Weisungen.
- Hält der Auftragsverarbeiter eine Weisung für rechtswidrig, informiert er den Verantwortlichen unverzüglich.
§ 4 Pflichten des Auftragsverarbeiters
- Er verpflichtet alle Personen mit Zugriff auf die Daten zur Vertraulichkeit.
- Er trifft die technischen und organisatorischen Maßnahmen nach Anlage 1 und passt sie dem Stand der Technik an, ohne das Schutzniveau zu senken.
- Er unterstützt den Verantwortlichen bei Betroffenenrechten (Art. 12–22
DSGVO) und bei den Pflichten nach Art. 32–36 DSGVO. Shopify-Anfragen
customers/data_requestundcustomers/redactzeigt die App dem Verantwortlichen an; beicustomers/redactsperrt sie die Download-Links der betroffenen Belege. - Er meldet Verletzungen des Schutzes personenbezogener Daten unverzüglich, spätestens innerhalb von 48 Stunden nach Kenntnis, mit den Angaben nach Art. 33 Abs. 3 DSGVO.
- Ansprechpartner Datenschutz: Robin Schmitt, hello@kurswacht.com
§ 5 Unterauftragsverarbeiter
- Der Verantwortliche genehmigt die in Anlage 2 genannten Unterauftragsverarbeiter.
- Neue oder ersetzte Unterauftragsverarbeiter kündigt der Auftragsverarbeiter mindestens 30 Tage vorher an. Der Verantwortliche kann aus wichtigem datenschutzrechtlichem Grund widersprechen; dann kann er den Vertrag durch Deinstallation beenden.
- Der Auftragsverarbeiter verpflichtet Unterauftragsverarbeiter vertraglich auf dieselben Datenschutzpflichten.
- Shopify ist kein Unterauftragsverarbeiter des Auftragsverarbeiters, sondern Plattform des Verantwortlichen auf Grundlage dessen eigenen Vertrags.
§ 6 Ort der Verarbeitung
Die Daten werden in der EU gespeichert. Eine Übermittlung in Drittländer erfolgt nur unter den Voraussetzungen der Art. 44 ff. DSGVO. Die Unterauftragsverarbeiter Railway und Cloudflare haben ihren Sitz in den USA. Beide sind nach dem EU-US Data Privacy Framework zertifiziert; zusätzlich gelten die Standardvertragsklauseln der EU-Kommission aus ihren Auftragsverarbeitungsverträgen.
§ 7 Kontrollrechte
Der Auftragsverarbeiter weist die Einhaltung seiner Pflichten auf Anfrage nach, vorrangig durch aktuelle Dokumentation und Auskünfte. Vor-Ort-Prüfungen sind nach Anmeldung mit angemessener Frist und auf Kosten des Verantwortlichen möglich, höchstens einmal im Kalenderjahr, mit einer Ankündigung von mindestens 30 Tagen, während der üblichen Geschäftszeiten und ohne den Betrieb zu stören. Nach einer Verletzung des Schutzes personenbezogener Daten (§ 4 Nr. 4) oder bei konkreten Anhaltspunkten für einen Verstoß gegen diesen Vertrag sind zusätzliche Prüfungen auch mit kürzerer Ankündigung möglich. Prüfungen bei Unterauftragsverarbeitern richten sich nach deren Verträgen und Prüfberichten.
§ 8 Aufbewahrung durch den Verantwortlichen
Die gesetzliche Aufbewahrung von Rechnungen und Gutschriften obliegt dem Verantwortlichen. Er exportiert seine Belege (Monats- oder Jahresexport), bevor er die App deinstalliert. Die App ist kein Archivsystem für die gesetzliche Aufbewahrung nach der Deinstallation.
§ 9 Löschung und Rückgabe
- Rückgabe: Während der Laufzeit kann der Verantwortliche alle Belege jederzeit als CSV und PDF/XML-Paket exportieren.
- Löschung: Mit der Deinstallation werden die Shopify-Sitzungen sofort
gelöscht. Shopify sendet 48 Stunden nach der Deinstallation die Anfrage
shop/redact; die App löscht dann alle Daten des Shops, einschließlich Belege, Exporte, Einstellungen, Nummernkreise und Ereignisverläufe. - Backups und Protokolle: Der Hosting-Anbieter sichert die Datenbank täglich und löscht jedes Backup nach 6 Tagen. Die Belegdateien werden nicht zusätzlich gesichert. Seine Anfrageprotokolle (Zeit, Pfad, Status, IP-Adresse) löscht er nach 90 Tagen.
- Kundenlöschung: Bei
customers/redactbleiben Belege, die der Verantwortliche gesetzlich aufbewahren muss, bis zur Löschung nach Abs. 2 gespeichert; die Kunden-Download-Links werden gesperrt.
§ 10 Haftung und Schlussbestimmungen
- Die Haftung richtet sich nach Art. 82 DSGVO. Im Verhältnis der Parteien gilt ergänzend § 9 der Nutzungsbedingungen, soweit Art. 82 DSGVO nicht entgegensteht.
- Bei Widersprüchen geht dieser Vertrag den Nutzungsbedingungen in Datenschutzfragen vor.
- Es gilt deutsches Recht. Gerichtsstand ist Mainz, soweit gesetzlich zulässig.
Anlage 1 – Technische und organisatorische Maßnahmen (Art. 32 DSGVO)
Technische Angaben beruhen auf dem Code der App, organisatorische auf der internen Sicherheitsrichtlinie des Auftragsverarbeiters.
Vertraulichkeit
- Zutrittskontrolle: Rechenzentren der Unterauftragsverarbeiter Railway (SOC 2 Typ II) und Cloudflare (unter anderem ISO 27001 und SOC 2 Typ II). Der Auftragsverarbeiter betreibt keine eigenen Server.
- Zugangskontrolle:
- Händler gelangen nur über den Shopify-Admin in die App (Shopify-OAuth, Session-Tokens von App Bridge).
- Webhooks von Shopify werden per HMAC-Signatur geprüft.
- Zugang zur Produktionsumgebung hat nur der Auftragsverarbeiter selbst, über persönliche Konten mit Zwei-Faktor-Anmeldung und Passwörtern mit mindestens 16 Zeichen aus einem Passwortmanager.
- Zugriffskontrolle:
- Alle Datensätze sind einem Shop zugeordnet; Abfragen sind auf den angemeldeten Shop beschränkt; Belegdateien liegen je Shop getrennt, Pfade werden gegen Verlassen des Speicherverzeichnisses geprüft.
- Kunden-Download-Links sind mit HMAC-SHA256 signiert, an Shop, Beleg und Format gebunden, nicht aus Bestell- oder Rechnungsnummern ableitbar, nur als Hash gespeichert und sperrbar.
- Admin-Druck- und Dateilinks sind an Shop, Bestellung und Beleg gebunden und 30 Minuten gültig.
- Die Kundenkonto-Erweiterung zeigt nur finale Belege der jeweiligen Bestellung; Vorschauen, XML und Prüfberichte sind dort nicht erreichbar.
- Trennungskontrolle: Die App-Store-Edition läuft als eigene Shopify-App mit eigener Bereitstellung, Datenbank, Speicher und Schlüsseln, getrennt von anderen Installationen des Anbieters (eigenes Railway-Projekt, eigene Datenbank, eigener R2-Bucket, eigene Schlüssel; eingerichtet am 12. Oktober 2026).
- Verschlüsselung und Pseudonymisierung:
- Belegdateien (PDF, XML, Prüfbericht, HTML-Quelle), Exportdateien und der Rechnungs-Snapshot mit Käuferdaten werden von der App mit AES-256-GCM verschlüsselt, bevor sie gespeichert werden; im Produktivbetrieb weist die App unverschlüsselte Dateien und Snapshots zurück.
- Kennungen aus Shopify-Datenschutzanfragen werden nur als HMAC-Hash gespeichert.
- Railway verschlüsselt Datenbank, Datenträger und Backups mit AES-256, Cloudflare R2 die gespeicherten Dateien.
Integrität
- Weitergabekontrolle:
- Von außen ist die App nur über HTTPS (TLS) erreichbar; die Datenbank erreicht sie über ein privates, verschlüsseltes Netz des Hosting-Anbieters.
- Links und Exporte enthalten keine internen Speicherpfade.
- Kunden-Downloads werden mit
no-storeundnosniffausgeliefert, Fehler- und Warteseiten zusätzlich mit restriktiver CSP.
- Eingabekontrolle:
- Zu jedem Beleg führt die App einen Ereignisverlauf (Erzeugung, Link-Ausgabe, Sperrung).
- Automatik-Entscheidungen und Datenschutzanfragen werden protokolliert.
- Unveränderbarkeit:
- Finale Belege werden nicht nachträglich geändert; Korrekturen erfolgen über Gutschriften.
- Belegnummern sind je Shop durch Datenbank-Constraints eindeutig und werden nie wiederverwendet.
Verfügbarkeit und Belastbarkeit
- Shopify-Webhooks werden in einer Warteschlange mit Wiederholungen verarbeitet.
- Ein täglicher Abgleich findet bezahlte Bestellungen der letzten Tage ohne Rechnung.
- Belegdateien liegen in Cloudflare R2, das sie redundant speichert. Die Datenbank wird täglich gesichert (6 Tage Aufbewahrung, AES-256 verschlüsselt). Die Wiederherstellung wird vor dem Start und danach halbjährlich getestet.
- Beim Start prüft die App, dass alle Pflichtschlüssel gesetzt und keine Platzhalter sind. Railway prüft bei jedem Deployment über einen Health-Check, ob die neue Version antwortet, und startet den Prozess nach seiner Neustart-Richtlinie neu, wenn er mit einem Fehler endet. Eine laufende Überwachung mit automatischer Alarmierung besteht noch nicht.
Datenminimierung
- Telefonnummern von Kunden werden nicht abgefragt. Die E-Mail-Adresse der Bestellung wird nur bei eingeschaltetem E-Mail-Versand gelesen und nicht gespeichert.
- Aus Bestellattributen werden nur eine erkannte USt-IdNr. und, bei eingeschalteter XRechnung, die Leitweg-ID gespeichert.
- Das SMTP-Passwort wird verschlüsselt gespeichert und nie an den Browser zurückgegeben.
- Persönliche Daten von Shop-Mitarbeitenden aus Shopify-Sitzungen werden nicht gespeichert.
- Die App schreibt keine Adressen oder Beleginhalte in ihre Logs. Vor dem Protokollieren und Speichern von Fehlern entfernt sie die Werte bekannter Link-Parameter wie Tokens und Signaturen.
- Der Hosting-Anbieter protokolliert jede Anfrage mit Zeit, Pfad, Status und IP-Adresse und löscht diese Protokolle nach 90 Tagen.
- Der Prozess, der PDF und XML erzeugt, erhält keine Zugangsdaten. Seine temporären Dateien werden nach jedem Lauf gelöscht.
Verfahren zur regelmäßigen Überprüfung
- Automatisierte Tests und Code-Review vor jeder Auslieferung.
- Ein externer Penetrationstest hat bisher nicht stattgefunden.
- Sicherheitsvorfälle behandelt der Auftragsverarbeiter nach einer schriftlichen Richtlinie: eindämmen, innerhalb von 24 Stunden bewerten, Shopify innerhalb von 24 Stunden und den Verantwortlichen nach § 4 Nr. 4 informieren, dokumentieren.
- Die technischen und organisatorischen Maßnahmen werden halbjährlich und bei größeren Änderungen überprüft.
Anlage 2 – Unterauftragsverarbeiter
| Unterauftragsverarbeiter | Leistung | Sitz / Ort der Verarbeitung | Garantie |
|---|---|---|---|
| Railway Corporation | Hosting der App, der Datenbank und ihrer täglichen Backups | San Francisco, USA / Europäische Union (Region europe-west4, Niederlande) | EU-US Data Privacy Framework; Standardvertragsklauseln aus dem Railway-DPA |
| Cloudflare, Inc. | Speicher der Belegdateien (Cloudflare R2); die Dateien werden vor dem Hochladen von der App verschlüsselt | San Francisco, USA / Europäische Union (R2-Bucket mit EU-Datenstandort) | EU-US Data Privacy Framework; Standardvertragsklauseln aus dem Cloudflare-DPA |
Die App nutzt keine Analyse-, Werbe- oder Tracking-Dienste und keinen eigenen E-Mail-Dienst; E-Mails versendet sie nur über das Postfach des Verantwortlichen (siehe § 2 Nr. 4).