Datenschutzerklärung — KYTH.Karl Shipping Intelligence
Stand: 21. Oktober 2026 | Version: 3.14 | Anbieter: KYTH. Systems UG (haftungsbeschränkt)
1. Verantwortlicher
KYTH. Systems UG (haftungsbeschränkt)
Geschäftsführer: Stefan Grasse (CTO), Stephan Wittmann (CMO)
Prof.-Mederer-Str. 4, 92348 Berg, Deutschland
Notariell errichtet am 19.05.2026 (UR-Nr. 0674/2026, Notarin Dr. Christine Oberhofer, Altdorf b. Nürnberg)
Handelsregister: Amtsgericht Nürnberg, HRB 46313
E-Mail: datenschutz@kyth.systems
Web: www.kyth.systems
2. Gegenstand dieser Erklärung
Diese Datenschutzerklärung informiert über die Verarbeitung personenbezogener Daten bei Nutzung der Shopify-App „KYTH.Karl — Shipping Intelligence" (nachfolgend „KARL"). KARL ist eine Multi-Carrier-Versandlösung für Shopify-Shops und wird als Shopify Embedded App betrieben.
Die App richtet sich ausschließlich an gewerbliche Nutzer (B2B). Die Verarbeitung personenbezogener Daten von Endkunden (Empfänger) erfolgt ausschließlich im Auftrag des jeweiligen Shopify-Händlers (Art. 28 DSGVO — Auftragsverarbeitung).
3. Welche Daten verarbeiten wir?
Quelle der Empfängerdaten: Shopify Order GraphQL API (Bestelldaten werden nur gelesen; zu den schreibenden Aufrufen, etwa dem Anlegen von Fulfillments, siehe Abschnitt 7) sowie — nur wenn der Händler das optionale Add-On „eBay Connector" gebucht und sein eBay-Konto verbunden hat — die eBay Sell API (Bestellungen mit Empfängername, Adresse, Telefon, E-Mail; siehe Abschnitt 6a). KARL verarbeitet nur Daten, die für den Versandprozess zwingend erforderlich sind (Datenminimierung, Art. 5 Abs. 1 lit. c DSGVO).
| Kategorie | Daten | Schutz | Aufbewahrung |
|---|---|---|---|
| Shop-Daten | Shop-Domain, OAuth-Token, Plan, Scopes, Installations-Zeitpunkt | Access-Token AES-256-GCM verschlüsselt | Bis Deinstallation |
| Shop-Kontaktdaten aus Shopify | Shop-Name, Kontakt-E-Mail und Rechnungsadresse des Shops laut Shopify (inkl. Name und Telefon des Inhabers). Zwecke: Vorbelegung der Absenderdaten und der Admin-E-Mail, Willkommens-Mail nach der Installation, Mitteilungen zu geänderten Rechtstexten | Werden bei Bedarf bei Shopify abgefragt. Dauerhaft gespeichert werden nur die übernommenen Angaben (siehe „Shop-Einstellungen / Absender-PII" und „Admin-Zugangsdaten") und die Empfängeradresse der Willkommens-Mail im Versandprotokoll dieser Mail (AES-256-GCM verschlüsselt) | Bis Deinstallation |
| Produktdaten | Produkttitel, SKU, Gewicht, Maße, HS-Code (auch länderspezifisch), Ursprungsland sowie Metafelder für Maße, Zollbeschreibung, Konformitätsangaben (z. B. CPSC) und Druckdatei | Kein Personenbezug; Multi-Tenant-Isolation | Werden beim Laden der Bestellung aus Shopify gelesen; gespeichert nur als Teil der Versand-, Zoll- und Pick-Listen-Daten (siehe dort) |
| Empfängerdaten | Name, Firma, Straße, PLZ, Stadt, Land, Bundesland, Telefon, E-Mail | Name, Firma, Straße, Adresszusatz, Telefon, E-Mail AES-256-GCM (PLZ/Stadt/Land/Bundesland Klartext für Versand-Routing); Multi-Tenant-Isolation (shop_id) | 90 Tage |
| Versanddaten | Bestell-Nr., Carrier, Service, Tracking-Nr., Gewicht, Maße, Incoterm, EAS/ODA-Flags, Kosten | Multi-Tenant-Isolation | 90 Tage |
| Tracking-Events | Status, Zeitstempel, Ort, Roh-Event-JSON des Carriers | Multi-Tenant-Isolation; bei customers/redact werden Ort + Roh-JSON auf NULL gesetzt | 90 Tage |
| Label-PDFs | Versandetiketten als Base64 (enthalten Empfänger-Adresse) | AES-256-GCM verschlüsselt (label_archive) | Standard 30 Tage; vom Händler konfigurierbar zwischen 14 und 180 Tagen (Einstellungen → System) |
| Carrier-API-Zugangsdaten | API-Keys, Kundennummern, OAuth-Tokens (inkl. BYOAK — Bring Your Own API Keys) | AES-256-GCM verschlüsselt | Bis Deinstallation |
| Portokasse-Tokens | OAuth Access/Refresh Tokens (Deutsche Post Internetmarke) | AES-256-GCM verschlüsselt | Bis Deinstallation |
| eBay-OAuth-Tokens (optional, nur mit Add-On „eBay Connector") | OAuth Access/Refresh Tokens des verbundenen eBay-Kontos | AES-256-GCM verschlüsselt (ebay_accounts) | Bis Trennung der Verbindung / Deinstallation |
| UPS-OAuth-Tokens (optional, „Mit UPS verbinden") | OAuth Access/Refresh Tokens des verbundenen UPS-Kontos des Händlers | AES-256-GCM verschlüsselt (ups_oauth_accounts) | Bis Trennung der Verbindung / Deinstallation |
| Manuelle Label-Entwürfe (optional, per Klick „Als Entwurf speichern") | Kompletter Formularstand des manuellen Labels inkl. Empfänger-Name, Adresse, Telefon, E-Mail, Paketdaten | AES-256-GCM verschlüsselt (manual_label_drafts); max. 50 Entwürfe pro Shop (älteste werden verdrängt) | Bis Löschung durch den Händler, automatisch nach erfolgreicher Label-Erstellung aus dem Entwurf, spätestens bei Deinstallation |
| Shop-Einstellungen / Absender-PII | Firmenadresse, Kontaktperson, Telefon, USt-IdNr., EORI des Händlers | settings_json AES-256-GCM verschlüsselt | Bis Deinstallation |
| Admin-Zugangsdaten | E-Mail, Name, Rolle | E-Mail + Name AES-256-GCM; Lookup per HMAC-SHA256-Hash; Passwort: PBKDF2-SHA256 (310.000 Iter.) | Bis Deinstallation |
| Audit-Trail (API-Logs) | Carrier API-Request/Response-JSON (können Adressen enthalten) | api_request_json + api_response_json AES-256-GCM verschlüsselt | 90 Tage; bei DSGVO-Anfrage: sofort NULL |
| Audit-Log (DSGVO) | Zeitstempel, Aktion (shop_redact / customer_redact / data_request), Shop-Domain, verarbeitete IDs | Multi-Tenant-Isolation (Art. 30 DSGVO — Verzeichnis von Verarbeitungstätigkeiten) | 365 Tage |
| Retouren | Kundenname, E-Mail, Bestell-Nr., Grund, Status | Multi-Tenant-Isolation | 90 Tage |
| Retouren-Portal-Tokens | Einmal-Token für Self-Service-Retourenportal, Kunden-E-Mail, Ablaufzeit | Token + E-Mail verschlüsselt; Multi-Tenant-Isolation | Bis Ablauf/Verbrauch; spätestens 90 Tage |
| Druckwarteschlange | Label-PDF, Bestell-Nr. | Label-PDF AES-256-GCM verschlüsselt; Multi-Tenant-Isolation | 24 Stunden nach Eintrag in die Warteschlange (gedruckt/fehlgeschlagen); 7 Tage für noch nicht gedruckte Einträge |
| Fehlerprotokolle | Zeitpunkt, Shop-Zuordnung, aufgerufener Pfad, HTTP-Methode und Statuscode, Fehlertyp, Fehlertext, gekürzter Programm-Ablauf, gekürzter Browser-Kennzeichner | Multi-Tenant-Isolation; E-Mail-Adressen, Telefonnummern, Tokens und Tracking-Nummern werden, soweit ihr Format erkannt wird, vor dem Speichern durch Platzhalter ersetzt | 30 Tage |
| Tarif-Vergleiche | Bestell-Nr., Empfänger-PLZ, Empfänger-Land, Gewicht, gewählter Carrier/Service/Preis, Alternativen, Ersparnis (Analytik des Preisvergleichs) | Multi-Tenant-Isolation; bei customers/redact werden PLZ + Land auf NULL gesetzt | 90 Tage |
| Zolldaten (nur Drittland-Sendungen) | HS-Codes, Warenbeschreibung/Ursprung/Gewicht, MRN, ABD-Ausfuhrbegleitdokument (enthält Empfängeradresse), Empfänger-Korrekturen (Telefon/PLZ/Ort) | MRN, ABD-PDF, Empfänger-Korrekturen AES-256-GCM verschlüsselt; Multi-Tenant-Isolation (order_customs_data) | Empfänger-PII (MRN/ABD/Korrekturen) 90 Tage; HS-Codes/Warenangaben (kein Personenbezug) darüber hinaus |
| Pick-Listen (Kommissionierung, nur mit Add-On „Pick & Pack") | Bestell-Nr., SKU, Produkttitel, Variante, Menge, Kommissionierer (Mitarbeiter-Name) | Multi-Tenant-Isolation (pick_lists) | 90 Tage |
| E-Mail-Benachrichtigungen | Empfänger-E-Mail, Bestell-Nr., Tracking-Nr., Carrier, Versandstatus (Log) | Multi-Tenant-Isolation | 180 Tage (Versandhistorie) |
| Support-Chat-Nachrichten | Nachrichtentext, Absender-Rolle (Shop/Support), Absender-E-Mail des Händlers, Anhänge | Multi-Tenant-Isolation | 180 Tage |
| Mobile-Scanner-Events | Gescannte Bestell-Nr., Zeitstempel, Shop-Zuordnung (Handy→PC SSE-Relay) | Multi-Tenant-Isolation; append-only Event-Log | 24 Stunden (täglich 03:50 UTC) |
| Mobile-Scanner-SSE-Tickets | Kurzlebige Auth-Tickets für Handy-Browser-Verbindung | Multi-Tenant-Isolation | Bis Ablauf (kurzlebig, min. einmal täglich bereinigt) |
| Branded-Tracking-Konfiguration | Logo, Brand-Farben, Text-Bausteine, Social-Links des Händlers | Multi-Tenant-Isolation (keine End-Kunden-PII) | Bis Deinstallation |
| OAuth-Nonces | Kurzlebige State-Token für Shopify OAuth-Flow | Server-seitig nur, nicht im Browser | Unmittelbar nach Callback (max. wenige Minuten) |
| Legal-Akzeptanzen | Shop-ID, Dokumententyp (AGB, Datenschutzerklärung, AVV, TOMs, Liste der Unterauftragsverarbeiter, FedEx-Endnutzer-Lizenzvereinbarung), Version, Art der Erklärung (Zustimmung, Kenntnisnahme, Widerspruch), Zeitstempel, Prüfsumme (SHA-256) der zu diesem Zeitpunkt veröffentlichten Fassung, pseudonymisierte IP (/24 bzw. /64), User-Agent; Zugang von Änderungsmitteilungen (Dokument, Fassung, Kanal App oder E-Mail, Zeitpunkt; bei einer Widerspruchsfrist der erste Zugang, bei dem der Hinweis die Frist nannte) | IP wird vor Speicherung auf /24 (IPv4) bzw. /64 (IPv6) gekürzt — keine direkt re-identifizierbare Adresse. Multi-Tenant-Isolation. Rechtsgrundlage: Art. 6 Abs. 1 lit. b und f DSGVO (Vertragsschluss, Nachweis des Vertragsschlusses). | Bis zur Deinstallation des Shops bzw. bis „Shop zurücksetzen“ — danach werden die Akzeptanz-Einträge und die Zugänge der Änderungsmitteilungen zusammen mit allen übrigen Shop-Daten gelöscht. |
| Schutz vor mehrfacher Testphase und Gutschein-Einlösung | Beim Beginn der kostenlosen Testphase ein nicht umkehrbarer Prüfwert (HMAC-SHA256) der Shop-Domain, bei einem eingelösten Gutschein ein Prüfwert aus Shop-Domain und Gutscheincode, jeweils mit dem Zeitpunkt der Vergabe bzw. Einlösung | Gespeichert wird nur der Prüfwert — weder Shop-Domain noch Gutscheincode im Klartext, keine Zuordnung zu den übrigen Shop-Daten. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse, zu verhindern, dass dieselbe Shop-Domain die Testphase oder denselben Gutschein mehrfach nutzt). | Bleibt auch nach der Deinstallation und der Löschung der übrigen Shop-Daten bestehen; gelöscht 3 Jahre nach der Vergabe bzw. Einlösung. |
4. Zweck der Verarbeitung
Die Daten werden zur Erbringung des Versanddienstes verarbeitet:
- Erstellung von Versandetiketten (Labels) bei den vom Händler konfigurierten Carriern
- Berechnung von Versandkosten und Zuschlägen anhand von Empfänger-Postleitzahl und -Land
- Auswahl von Carrier und Versanddienst für die jeweilige Sendung
- Smart Routing in 3 Modi: „günstigster Tarif", „feste Priorität" oder „Checkout-Methode"
- Sendungsverfolgung und Fulfillment-Synchronisierung mit Shopify (GraphQL)
- Buchung und Stornierung von Carrier-Abholungen
- Erstellung von Zolldokumenten (ETD/Paperless Trade, DDP/DAP/DDU Incoterms)
- Retouren-Management inklusive öffentliches Self-Service-Retourenportal (Einmal-Link)
- Versand transaktionaler E-Mail-Benachrichtigungen (Versandbestätigung, Retouren-Einladung) — optional gebrandet pro Shop
- Branded-Tracking-Seite (öffentlich zugänglich, nur Tracking-Status und Stadt/Land, keine vollständige Adresse)
- Mobile-Scanner: Übertragung von Barcode-Scans vom Handy des Mitarbeiters an den Desktop-Browser desselben Shops (SSE-Relay)
- Analytics und Tagesabschluss-Reports (aggregiert, shop-intern)
Daneben verarbeiten wir Daten des Händlers zur Abwicklung des Vertrags mit ihm, zum Nachweis, welchen Rechtstexten er wann zugestimmt, widersprochen oder sie zur Kenntnis genommen hat (Abschnitt 3, „Legal-Akzeptanzen“), und für die KARL-eigenen E-Mails an ihn (etwa Willkommens-Mail, Mitteilungen zu geänderten Rechtstexten, Passwort-Mails; vollständige Liste in Abschnitt 7). Damit die kostenlose Testphase und ein Gutschein je Shop-Domain nicht mehrfach genutzt werden (3 Jahre lang), speichern wir dazu einen nicht umkehrbaren Prüfwert (Abschnitt 3). Den Newsletter (Abschnitt 11) versenden wir nur an Personen, die eingewilligt haben. Bucht der Händler einen Termin, um KARL gemeinsam mit uns einzurichten (freiwillig, Abschnitt 6c), verarbeiten wir seine Angaben dazu, um den Termin vorzubereiten und durchzuführen.
Außer dem Newsletter erfolgt keine Verarbeitung zu eigenen Werbezwecken des Anbieters. Es erfolgt kein Profiling und keine automatisierte Entscheidungsfindung im Sinne von Art. 22 DSGVO. Aktiviert der Händler in den Versand-E-Mails optionale Bausteine (Rabattcode, Bewertungs-Link), verarbeitet KARL diese ausschließlich weisungsgebunden für den Händler und über dessen eigenen SMTP-Server; die werbliche Verantwortung und die Rechtsgrundlage dafür liegen beim Händler.
5. Rechtsgrundlage
Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung): Die Verarbeitung ist zur Erfüllung des Vertrages zwischen dem Händler und KYTH. Systems erforderlich. Der Händler beauftragt KARL mit der Label-Erstellung — hierfür ist die Verarbeitung von Empfängerdaten zwingend notwendig. Auf dieselbe Grundlage stützen sich der Vertragsschluss mit dem Händler (Legal-Akzeptanzen) und die KARL-eigenen E-Mails, die zum Vertrag gehören (etwa Willkommens-Mail, Passwort-Mails und die Erinnerung vor Ablauf der UPS-Verbindung), sowie ein Termin zur gemeinsamen Einrichtung, den der Händler bei uns bucht (Abschnitt 6c).
Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse): Für die Optimierung des Versandprozesses (Zuschlagsprüfung, Carrier-Routing, Adress-Autocomplete, Analytics) besteht ein berechtigtes Interesse des Händlers an effizientem Versandmanagement. Unser eigenes berechtigtes Interesse besteht am Nachweis des Vertragsschlusses und der Rechtstexte (Legal-Akzeptanzen, Abschnitt 3), an Mitteilungen zu geänderten Rechtstexten, an der Rückmeldung zur Deinstallation und daran, dass die kostenlose Testphase und ein Gutschein je Shop-Domain nicht mehrfach genutzt werden (3 Jahre lang; Prüfwert, Abschnitt 3).
Art. 6 Abs. 1 lit. a DSGVO (Einwilligung): Den Newsletter versenden wir nur mit Einwilligung (Abschnitt 11); sie ist jederzeit widerruflich.
Art. 28 DSGVO (Auftragsverarbeitung): In Bezug auf Endkunden-Daten (Empfänger) handelt KARL als Auftragsverarbeiter im Auftrag des Shopify-Händlers. Der Händler bleibt Verantwortlicher für die Daten seiner Kunden. Der Auftragsverarbeitungsvertrag (AVV) wird mit Installation der App und Akzeptanz im Onboarding-Prozess (Klick-through) rechtsverbindlich abgeschlossen. Der vollständige Vertragstext mit den Pflichtinhalten gemäß Art. 28 Abs. 3 DSGVO ist unter karl.kyth.systems/avv einsehbar; die zugehörigen technisch-organisatorischen Maßnahmen (TOMs) gemäß Art. 32 DSGVO unter karl.kyth.systems/toms.
6. Datenweitergabe und Drittlandtransfer
Empfängerdaten gehen in zwei Situationen an die vom Händler konfigurierten Carrier: Für die Tarifabfrage übermitteln wir Land, Postleitzahl und Ort des Empfängers an die Tarif-Schnittstellen der Carrier (u. a. FedEx, UPS, DHL Express) — das ist für Preis- und Zuschlagsberechnung erforderlich. Bei der Label-Erstellung und der Abholungs-Buchung übermitteln wir die vollständige Adresse. Die Carrier verarbeiten diese Daten als eigene Verantwortliche für ihren Beförderungsvertrag, nicht als Auftragsverarbeiter für uns:
| Carrier | Unternehmen / Sitz | Rechtsgrundlage Transfer |
|---|---|---|
| DHL Paket | Deutsche Post DHL Group, Bonn (EU) | Kein Drittlandtransfer |
| DHL Express | DHL Express, Bonn (EU) | Kein Drittlandtransfer |
| FedEx | FedEx Corporation, Memphis (USA) | EU-US Data Privacy Framework + Standardvertragsklauseln (SCCs) |
| UPS | United Parcel Service, Atlanta (USA) | EU-US Data Privacy Framework + Standardvertragsklauseln (SCCs) |
| DPD | DPD Deutschland GmbH, Aschaffenburg (EU) | Kein Drittlandtransfer |
| Österreichische Post | Österreichische Post AG, Wien (EU) | Kein Drittlandtransfer |
| Deutsche Post / Internetmarke | Deutsche Post AG, Bonn (EU) | Kein Drittlandtransfer |
Drittlandtransfer durch eingesetzte Infrastruktur-Dienste: Über die Carrier hinaus findet im Rahmen des Betriebs ein Drittlandtransfer bei folgenden Diensten statt (vollständige Sub-Processor-Liste siehe Abschnitt 7):
| Dienst | Land | Garantie für den Transfer |
|---|---|---|
| Shopify Inc. (Bestelldatenquelle, Embedded-App-Hosting, Webhook-Zustellung) | Kanada / global | Angemessenheitsbeschluss der EU-Kommission für Kanada (kommerzielle Organisationen) + Shopify DPA |
Cloudflare, Inc. (DNS-Auflösung für kyth.systems) | USA | EU-Standardvertragsklauseln (SCCs) / Cloudflare DPA |
Third-Party-Billing (optional): Wenn der Händler im Carrier-Setup die Option „Versandkosten-Billing auf anderes Konto" aktiviert, wird zusätzlich zur Empfänger-Adresse die Kundennummer / PLZ / Länderkennung des Rechnungsempfängers an den Carrier übermittelt. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO.
Empfänger-E-Mail-Adresse (optional, Standard: aus): Die E-Mail-Adresse des Bestellers wird nur dann an den Carrier übermittelt, wenn der Händler die Option „Empfänger-E-Mail an Carrier übermitteln" in den Einstellungen aktiv eingeschaltet hat. Der Carrier versendet in diesem Fall eigene Versandbenachrichtigungen an den Empfänger. Die Einholung der hierfür erforderlichen Rechtsgrundlage (Einwilligung des Empfängers, Art. 6 Abs. 1 lit. a DSGVO) obliegt dem Händler als Verantwortlichem — die Zustellung der Sendung selbst erfordert keine E-Mail-Übermittlung an den Carrier.
6a. eBay Connector (optional, nur mit gebuchtem Add-On)
Wenn der Händler das Add-On „eBay Connector" bucht und sein eBay-Verkäuferkonto per OAuth verbindet, verarbeitet KARL zusätzlich Bestelldaten aus der eBay Sell API (eBay Inc., San Jose, USA): Käufername, Lieferadresse, Telefon und E-Mail der eBay-Bestellungen werden gelesen, um Versandlabels zu erstellen. Nach dem Label-Druck meldet KARL die Tracking-Nummer und den Carrier aktiv an eBay zurück (Fulfillment-Bestätigung), damit der Käufer seine Sendung verfolgen kann. eBay ist dabei — wie Shopify — eigenständiger Verantwortlicher für die Daten der eBay-Plattform; Grundlage des Drittlandtransfers (USA) sind das EU-US Data Privacy Framework bzw. Standardvertragsklauseln (SCCs) sowie das bestehende Vertragsverhältnis des Händlers mit eBay. Die OAuth-Tokens des verbundenen Kontos speichert KARL AES-256-GCM-verschlüsselt (siehe Abschnitt 3); ohne gebuchtes Add-On findet keinerlei Datenaustausch mit eBay statt.
Darüber hinaus erfolgt keine Weitergabe an sonstige Dritte, keine Datenweitergabe zu Werbezwecken, kein Cross-Site-Tracking und keine Analyse durch Drittanbieter. KARL setzt keine Tracking- oder Marketing-Cookies; die eingebettete App authentifiziert sich über Shopify-Session-Token, nicht über Cookies. Ein technisch notwendiges Session-Cookie wird ausschließlich im internen Verwaltungsbereich des Anbieters gesetzt, zu dem Händler und Endkunden keinen Zugang haben.
6b. Nutzer in der Schweiz
Für Nutzer in der Schweiz gilt ergänzend das Bundesgesetz über den Datenschutz (DSG). Übermittlungen in die USA stützen sich insoweit auf das Swiss-U.S. Data Privacy Framework bzw. die vom Eidgenössischen Datenschutz- und Öffentlichkeitsbeauftragten (EDÖB) anerkannten Standardvertragsklauseln.
6c. Terminbuchung und Videogespräch über Google (freiwillig)
Bieten wir in der App einen Termin an, um KARL gemeinsam einzurichten, öffnet der Knopf „Termin wählen“ eine Buchungsseite von Google Kalender in einem neuen Tab. Vorher bestätigt der Händler in der App, dass ihm bekannt ist, dass Buchung und Gespräch über Google laufen. KARL selbst überträgt dabei keine Daten an Google. Auf der Buchungsseite wählt die buchende Person einen Termin und gibt Vorname, Nachname, E-Mail-Adresse und Shop-Domain an, auf Wunsch auch die genutzten Versanddienste. Google trägt den Termin in unseren Kalender ein und verschickt die Terminbestätigung an die buchende Person und an uns. Das Gespräch findet als Videokonferenz über Google Meet statt; Google verarbeitet dabei Bild, Ton und Verbindungsdaten der Teilnehmer. Wir zeichnen das Gespräch nicht auf und lassen es nicht mitschreiben. Im Gespräch arbeiten wir im Testmodus mit einer Testbestellung; Daten der Kunden des Händlers zeigen wir dabei nicht und bitten auch den Händler, keine zu zeigen. Wir nutzen die Angaben, um den Termin vorzubereiten und durchzuführen.
Wir nutzen dafür ein kostenloses Google-Konto. Einen Vertrag zur Auftragsverarbeitung mit Google gibt es dafür nicht: Google verarbeitet die Angaben nach seinen eigenen Nutzungsbedingungen und seiner eigenen Datenschutzerklärung, in eigener Verantwortung und auch zu den dort genannten eigenen Zwecken. Google ist dabei weder unser Auftragsverarbeiter noch ein Unterauftragsverarbeiter im Sinne des AVV. Anbieter für Nutzer im Europäischen Wirtschaftsraum und in der Schweiz ist die Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland; eine Verarbeitung in den USA durch die Google LLC ist möglich. Google LLC ist nach dem EU-US Data Privacy Framework zertifiziert; dafür besteht ein Angemessenheitsbeschluss der EU-Kommission vom 10. Juli 2023 (policies.google.com/privacy/frameworks).
Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO, soweit die buchende Person selbst unser Vertragspartner ist, sonst Art. 6 Abs. 1 lit. f DSGVO (unser Interesse und das des Händlers an der gemeinsamen Einrichtung). Die Terminbuchung ist freiwillig — KARL lässt sich auch ohne sie einrichten, und wer Google dafür nicht nutzen möchte, schreibt uns an support@kyth.systems. Den Termin und die Bestätigungs-Mail löschen wir aus unserem Kalender und unserem Postfach, sobald wir sie für das Gespräch und für Rückfragen dazu nicht mehr benötigen, auf Wunsch früher. Wie lange Google die Angaben darüber hinaus speichert, richtet sich nach Googles Datenschutzerklärung: policies.google.com/privacy
7. Unterauftragsverarbeiter (Sub-Processors)
Die vollständige, versionierte Liste der Unterauftragsverarbeiter steht unter karl.kyth.systems/sub-processors und maschinenlesbar unter /api/sub-processors.json. Dort werden auch geplante Änderungen mit einer Vorlauffrist von mindestens 30 Tagen angekündigt. Diese eine Liste ist maßgeblich — nachstehend sind nur die Dienste näher erläutert, bei denen sich häufig Rückfragen ergeben.
Nicht als Unterauftragsverarbeiter zu werten sind die Carrier. Sie verarbeiten die Empfängerdaten als eigene Verantwortliche für ihren Beförderungsvertrag (siehe Abschnitt 6).
Shopify stellt Bestell-, Produkt- und Shop-Daten über die GraphQL API bereit; KARL liest diese. Schreibend legt KARL Fulfillments an (Carrier, Sendungsnummer, Tracking-Link; je nach Einstellung mit Versandbenachrichtigung durch Shopify), nimmt sie auf Anforderung zurück (z. B. beim Label-Storno) und meldet Abholbestellungen als abholbereit. Shopify ist eigenständiger Verantwortlicher für die Shop-Daten im Sinne der DSGVO.
Geoapify GmbH, Wien, Österreich — Adress-Autocomplete und Geocoding. Übermittelt werden ausschließlich eingegebene Adress-Fragmente (Straße, PLZ, Stadt, Land). Keine Weitergabe von Kundennummern, Shop-Daten oder personenbezogenen Identifikatoren. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO. Datenschutzerklärung: geoapify.com/privacy-policy
INWX GmbH — E-Mail-Versand der KARL-eigenen System-Mails
(Willkommens-Mail nach der Installation, Mitteilungen zu geänderten Rechtstexten,
Erinnerung vor Ablauf der UPS-Verbindung, Passwort-Reset und Bestätigung der
Passwortänderung, App-Uninstall-Feedback, Waitlist-Eingang) sowie des Newsletters
(Abschnitt 11). Sitz Berlin, Deutschland; die Verarbeitung erfolgt laut Vertrag ausschließlich
in der EU oder im EWR. Mail-Server smtp.webspace.bz.
Übermittelt werden Empfänger-E-Mail-Adresse, Absender-Domain, Betreff und Inhalt der E-Mail.
Keine Drittland-Übermittlung. AVV unterzeichnet am 11. Oktober 2026. Diese E-Mails verschickt KYTH in eigener
Verantwortung (siehe Abschnitt 5); INWX ist dafür Auftragsverarbeiter von KYTH — es ist keine
Auftragsverarbeitung für den Händler. Rechtsgrundlage: für die System-Mails
Art. 6 Abs. 1 lit. b / f DSGVO; für den Newsletter Art. 6 Abs. 1 lit. a DSGVO (Einwilligung,
Abschnitt 11).
Datenschutzerklärung: inwx.de/de/datenschutz
Hinweis: E-Mails an Endkunden des Händlers (Versandbestätigungen, Retouren- Einladungen) werden NICHT über INWX verschickt, sondern über den vom Händler in der App hinterlegten eigenen SMTP-Server — eigene Verantwortung des Händlers.
Nicht als Sub-Processor zu werten: Coolify (self-hosted auf IONOS-VPS, nur internes Deployment-Tool,
keine Weitergabe von Kundendaten), wal-g + IONOS Object Storage (verschlüsseltes Backup-Target,
Zugriff auf Klartext technisch ausgeschlossen, siehe Abschnitt 8).
Hinweis zu internen Admin-Benachrichtigungen (seit v0.0.609): Der Betreiber verwendet einen Telegram-Bot ausschließlich für interne Push-Benachrichtigungen zu den folgenden Anlässen. Übertragen werden je Anlass nur die genannten Angaben:
- Neue Fehlermeldung (Bug-Report) eines Händlers: Ticket-Nummer, Kurzform der Shop-Domain, Priorität, Bereich und ein interner Link — nicht der Titel und nicht der Inhalt der Meldung.
- Neue Support-Chat-Nachricht eines Händlers: Kurzform der Shop-Domain und ein interner Link mit der Shop-ID — nicht der Inhalt der Nachricht.
- Widerspruch gegen einen unserer Rechtstexte: Dokument, Fassung, Shop-ID und Shop-Domain; bei einem Widerspruch nach Ablauf der Frist Dokument, Fassung, Shop-ID und der letzte Tag der Frist.
- Eingegangenes Auskunftsersuchen eines Endkunden, das Shopify an uns weiterleitet (Art. 15 DSGVO): Shop-Domain, Art des Ersuchens und die Anzahl der gefundenen Datensätze — keine Kennung des Endkunden.
- Abrechnungs-Warnung, wenn ein Shop den monatlichen Höchstbetrag der nutzungsabhängigen Gebühren erreicht hat: Shop-Domain (ersatzweise Shop-ID), Tarif, Anzahl der nicht abgerechneten Labels und deren Betrag.
- Verbindung eines Shops zu UPS widerrufen oder kurz vor dem Ablauf: Shop-ID, Zustand der Verbindung und ob wir den Händler per E-Mail informiert haben.
- Sicherheitshinweis zu unserem internen Verwaltungsbereich (Sperre nach zu vielen falschen Codes für den zweiten Faktor): Anzahl der Fehlversuche und Zugangsweg.
- Testnachricht aus unserem internen Verwaltungsbereich: Name des internen Kontos, das sie auslöst.
- Installation, Deinstallation, abgeschlossene Einrichtung oder erstes echtes Label eines Shops: Art des Ereignisses, Shop-Domain, Shop-ID, Tarif bzw. Versanddienstleister des Labels und ein interner Link — keine Kontaktdaten des Händlers und keine Angaben zur Sendung.
Keine Endkunden-Daten: Aus Bestellungen, Sendungen und Ersuchen übertragen wir über diesen Kanal keine Namen, Adressen, E-Mail-Adressen, Telefonnummern, Kunden- oder Bestellnummern von Shop-Kunden und keine Nachrichten-Inhalte. Telegram fungiert hier als Telekommunikationskanal des Verantwortlichen (vergleichbar mit SMS oder Push-Benachrichtigung) und ist kein Auftragsverarbeiter im Sinne der DSGVO Art. 28. Der Empfänger der Benachrichtigung ist der Verantwortliche selbst (Selbst-Benachrichtigung). Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO.
8. Hosting, Speicherung und Sicherheit (Art. 32 DSGVO — TOMs)
8.1 Hosting und Datenbank
- Hosting: IONOS VPS, Rechenzentrum Berlin (Deutschland) — kein Drittlandtransfer. Deployment via Coolify (Docker, Multi-Stage-Build).
- Datenbank: PostgreSQL 16 (IONOS Berlin, EU). Multi-Tenant-Isolation durch
shop_idauf allen relevanten Tabellen, Foreign Key +ON DELETE CASCADE. - TLS-Terminierung: Traefik mit Let's Encrypt (ECDSA P-256, HSTS
max-age=63072000; includeSubDomains).
8.2 Verschlüsselung at rest (AES-256-GCM)
Verschlüsselt gespeichert werden unter anderem die folgenden Felder. Der Schlüssel liegt als ENV-Variable am Application-Server und ist in Backups nicht enthalten:
shops.access_token_encrypted+refresh_token_encrypted— Shopify OAuth-Tokencarrier_credentials.credential_value_encrypted— Carrier API-Keys / BYOAK-Credentialscarrier_accounts.password_encrypted— Carrier Account-Passwörterportokasse_accounts.access_token_encrypted+refresh_token_encryptedshipments.recipient_name,recipient_company,recipient_address1,recipient_address2,recipient_email,recipient_phone— Empfänger-PIIprint_queue.label_base64— Label-PDF in der Druckwarteschlangemanual_address_bookundmanual_label_drafts— manuell erfasste Empfängerorder_customs_data.mrn+abd_pdf_base64— Zoll-MRN und Ausfuhrbegleitdokumentnewsletter_subscribers.emailshipments.api_request_json+api_response_json— Carrier API-Logs (enthalten Adressen)shop_settings.settings_json— Absender-PII, SMTP-Zugangsdaten, Branding-Datenlabel_archive.label_base64— Label-PDF mit Empfänger-Adresseadmin_users.email+name— verschlüsselt; zusätzlich HMAC-SHA256-Lookup-Hash für SQL-Suchereturn_portal_tokens.token+customer_email
Bewusst im Klartext (für Routing, Filter, Performance erforderlich):
shipments.recipient_zip, _city, _country, tracking_number,
carrier, service. Stammdaten wie routing_rules, surcharge_zones,
carrier_*-Tabellen enthalten keine PII.
Maßgeblich ist die Spalte „Schutz" in der Tabelle in Abschnitt 3.
8.3 Authentifizierung und Integrität
- Passwort-Hashing: PBKDF2-SHA256 mit 310.000 Iterationen + timing-sicherer Vergleich (
hmac.compare_digest). - Shopify-Anbindung: OAuth 2.0 + Session-Tokens (JWT HS256). Alle Shopify-Webhooks werden per HMAC-SHA256 verifiziert (Header
X-Shopify-Hmac-Sha256). - Session-Management: Shop-Isolation wird server-seitig aus dem authentifizierten Shopify-Session-Token abgeleitet, nicht aus Client-Headern, und auf jedem API-Call neu verifiziert.
- Rate-Limits: In-DB-Rate-Limit (
rate_limit_log) auf kritischen Endpunkten (Login, Password-Reset, Carrier-API-Calls). - Security-Headers: Content-Security-Policy (
frame-ancestorsbeschränkt auf Shopify-Admin), X-Content-Type-Options:nosniff, Referrer-Policy:strict-origin-when-cross-origin, Permissions-Policy: Kamera, Mikrofon und Standort sind gesperrt; die Kamera wird ausschließlich auf den Scanner-Seiten für das Handy freigegeben (camera=(self)). - Scopes (Least Privilege): KARL fordert ausschließlich die für Versand erforderlichen Shopify-Scopes an (read_orders, read_products, read/write_merchant_managed_fulfillment_orders).
8.4 Backups
- Stündliches
pg_dump:pg_dump | gzip | gpg --symmetric --cipher-algo AES256→ IONOS Object Storage (Deutschland). Der GPG-Schlüssel ist nicht im Objektspeicher enthalten. - Kontinuierliches WAL-Streaming (
wal-g): client-seitigelibsodium-AES-256-Verschlüsselung +lz4-Kompression → IONOS S3. Point-in-Time Recovery im Sekundenbereich. Tägliches Base-Backup um 03:00 UTC; aufbewahrt werden die letzten 35 Basis-Backups. - Unveränderlichkeit: Der Objektspeicher ist für alle Sicherungen —
pg_dump-Abzüge wiewal-g-Basis-Backups und Transaktionsprotokolle — mit Objektsperre (WORM, Modus COMPLIANCE, 30 Tage) und Versionierung konfiguriert. Ein einmal geschriebenes Backup kann in dieser Zeit weder überschrieben noch gelöscht werden — auch nicht durch einen Angreifer mit gültigen Zugangsdaten und auch nicht durch uns als Kontoinhaber. Der Modus COMPLIANCE ist hier wesentlich: Im schwächeren Modus GOVERNANCE lässt sich die Sperre mit einer entsprechenden Berechtigung umgehen. Das ist eine Schutzmaßnahme nach Art. 32 DSGVO gegen Ransomware und Manipulation. - Die von Coolify eingebaute (nicht client-seitig verschlüsselte)
pg_dump-Backup-Funktion ist bewusst deaktiviert.
8.4.1 Backup-Löschkonzept (Art. 17 DSGVO)
Nach einem Löschersuchen werden die Produktionsdaten sofort gelöscht: nach shop/redact —
Shopify sendet ihn etwa 48 Stunden nach der Deinstallation; bleibt er aus, löscht unser nächtlicher Lauf die
Shop-Daten, sobald die Deinstallation 7 Tage zurückliegt — alle Shop-Daten, nach customers/redact
die personenbezogenen Daten des betroffenen Kunden. Es bleiben der Protokolleintrag über die Löschung
(365 Tage); nach customers/redact außerdem Versand- und Abrechnungsangaben ohne Namen,
Adresse und Kontaktdaten (pseudonymisiert; etwa Sendungsnummer, Carrier, Dienst, Gewicht, Preis und
Sendungsstatus) sowie die interne Shopify-Bestellkennung an Retoure, Pick-Liste, Druckwarteschlange und im
Benachrichtigungsprotokoll, die mit den Fristen aus Abschnitt 13 gelöscht werden; nach shop/redact der Prüfwert gegen eine zweite Testphase bzw.
Gutschein-Einlösung (Abschnitte 3 und 13). Backups werden bewusst nicht spontan nachbearbeitet
(das würde die Integrität zerstören und ist nach WP29/EDPB-Leitlinien auch nicht gefordert). Stattdessen
greift die rollierende Retention:
- Stündliche
pg_dump-Backups: spätestens nach 30 Tagen gelöscht. Diese Frist ist nicht frei wählbar — sie ist an die oben beschriebene Objektsperre gebunden, die eine frühere Löschung technisch ausschließt. Der Schutz vor Manipulation und die kürzestmögliche Aufbewahrung stehen hier in einem Zielkonflikt; wir haben ihn zugunsten der Unveränderlichkeit entschieden. Lokale Kopien auf dem Server werden bereits nach 7 Tagen entfernt. wal-g-Base-Backups: es werden die letzten 35 täglichen Basis-Backups behalten (wal-g delete retain FULL 35), ältere samt zugehöriger Transaktionsprotokolle gelöscht — in der Praxis rund 35 Tage. Der Wert liegt bewusst über der 30-tägigen Objektsperre: Das Aufräumen zählt Basis-Backups, die Sperre rechnet in Tagen; ein zusätzlicher Sicherungslauf (etwa im Rahmen eines Wiederherstellungstests) würde sonst zu einem Löschversuch führen, den die Sperre zurückweist.
Sollten innerhalb dieser Fristen Daten aus einem Backup wiederhergestellt werden müssen (Notfall-Restore), würden die betroffenen Löschersuchen im Anschluss erneut ausgeführt.
8.5 Self-Hosted Fonts, keine Tracking-Ressourcen
Alle Schriftarten (u. a. Bricolage Grotesque, Plus Jakarta Sans, IBM Plex Mono, Fraunces, Playfair — je nach Branding-Stil) sind vom KARL-Server selbst ausgeliefert (self-hosted). Dadurch entfällt jeder Transfer von Nutzer-IP-Adressen an Google Fonts, Adobe Fonts oder ein CDN. Es werden keine Tracking-Pixel, Analytics-Dienste oder Werbenetzwerke eingebunden. Die Besuche der öffentlichen Demo zählen wir selbst und ohne Personenbezug (Abschnitt 8.6).
Einzige externe Ressource: Im eingebetteten Shopify-Admin lädt die Oberfläche
Shopifys App-Bridge-Bibliothek (cdn.shopify.com). Sie ist von Shopify für eingebettete
Apps vorgeschrieben und dient ausschließlich der Einbettung (Navigation, Größenanpassung,
Session-Token). Dabei wird die IP-Adresse des Händler-Browsers gegenüber Shopify sichtbar — also
gegenüber der Plattform, in der der Händler ohnehin gerade angemeldet ist. Kundenseitige Seiten
(Sendungsverfolgung, Retouren-Portal) laden diese Bibliothek nicht.
8.6 Besuchszählung der Demo
Unter karl.kyth.systems/demo lässt sich KARL ohne Anmeldung mit Beispieldaten ausprobieren.
Für diese Demo zählen wir Besuche in Tageszahlen: wie viele Besuche es gab, auf welcher Seite sie begannen,
woher sie kamen (nur der Name der verweisenden Website, z. B. apps.shopify.com, oder ein
Kampagnenkürzel aus dem aufgerufenen Link), welche Seiten der Demo angesehen wurden, wie oft eine in der Demo
gesperrte Aktion versucht wurde und wie oft jemand von der Demo zum Shopify App Store wechselte. Ein
Rückschluss auf einzelne Besucher ist aus diesen Zahlen nicht möglich.
Wir speichern dafür weder die IP-Adresse noch eine Kennung, setzen keine Cookies und binden keinen
Analytics-Dienst ein; gezählt wird auf unserem eigenen Server. Um massenhafte automatisierte Aufrufe zu
bremsen, halten wir die IP-Adresse nur als Prüfwert mit einem zufälligen, nirgends gespeicherten Schlüssel
im Arbeitsspeicher; er erlaubt keinen Rückschluss auf die Adresse und wird regelmäßig verworfen.
Rechtsgrundlage dafür ist unser berechtigtes Interesse am Schutz der Demo vor Missbrauch (Art. 6
Abs. 1 lit. f DSGVO). Ruft jemand die Demo mit dem Zusatz ?nicht_zaehlen=1 auf –
das nutzen wir für eigene Aufrufe –, merkt sich der Browser das im lokalen Speicher, und von dort wird
nicht mehr gezählt. Die Tageszahlen nutzen wir, um die Demo und unsere Werbung zu verbessern, und löschen
sie nach 25 Monaten.
8.7 Server-Protokoll
Unser Server protokolliert jeden Aufruf – aus der App, der Sendungsverfolgung, dem Retourenportal und der Demo – mit Zeitpunkt, aufgerufener Adresse, Antwortcode und einer gekürzten IP-Adresse: Die letzten Stellen sind entfernt, sodass sie keinem einzelnen Anschluss mehr zugeordnet werden kann. Wir brauchen das Protokoll, um den Betrieb zu sichern und Fehler zu finden; Rechtsgrundlage ist unser berechtigtes Interesse daran (Art. 6 Abs. 1 lit. f DSGVO). Die Einträge werden automatisch überschrieben, in der Regel nach wenigen Tagen. Fehlgeschlagene und erfolgreiche Anmeldungen an unserem internen Verwaltungsbereich protokollieren wir mit vollständiger IP-Adresse, um Angriffe zu erkennen und abzuwehren.
9. Branding-Stile und gebrandete Render-Oberflächen
KARL bietet dem Händler vier Branding-Stile (modern, classic, minimal, boutique), die auf mehrere kundenseitige Oberflächen wirken. Der Datenumfang ändert sich dadurch nicht — lediglich Layout, Fonts und Farbgebung. Betroffene Oberflächen:
- Versanddokumente (Lieferschein, Retourenschein, Proforma-Rechnung) als PDF.
- Branded-Tracking-Seite — öffentlich über Tracking-Link zugänglich. Angezeigt werden Carrier, Tracking-Nummer, Status-Historie und als Lokalisierung nur Stadt + Land, nicht die vollständige Adresse.
- Self-Service-Retourenportal — über Einmal-Link des Händlers zugänglich. Der Endkunde sieht seine eigene Bestellung, kann Retoure-Grund wählen und ein Retouren-Label anfordern.
- Transaktionale E-Mails (Versandbestätigung, Retouren-Einladung) im Stil des Shops — versendet über den vom Händler in der App hinterlegten eigenen SMTP-Server (eigene Verantwortung des Händlers).
10. Mobile Scanner (Handy als kabelloser Barcode-Scanner)
Der Mobile Scanner erlaubt es Mitarbeitern des Händlers, mit einem Handy Paket-Barcodes zu scannen; der Scan läuft über unseren Server an den Desktop-Browser desselben Shops (SSE-Relay via PostgreSQL LISTEN/NOTIFY):
- Die Handy-Seite ist nicht öffentlich, sondern nur über einen vom Händler generierten Token-Link
erreichbar (
/mobile-scan/<token>). - Es werden ausschließlich der gescannte Barcode, Shop-Zuordnung und Zeitstempel verarbeitet — keine Kamera-Bilder, keine Empfängerdaten, keine Geräte-Identifier.
- Scan-Events werden nach spätestens 24 Stunden automatisch gelöscht (Cleanup-Job täglich 03:50 UTC).
- SSE-Tickets zur Authentifizierung der Desktop-Browser-Verbindung sind kurzlebig und werden im selben Cleanup-Job bereinigt.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse des Händlers an effizientem Lager-Workflow.
11a. Manuelles Adressbuch — Empfänger-Wiederverwendung
Im Bereich „Manuelles Label" können Sie nach erfolgreicher Label-Erstellung auf „Im Adressbuch speichern" klicken, um die Empfänger-Daten für spätere Sendungen wiederzuverwenden. Diese Speicherung ist rein optional und erfolgt nur durch Ihren expliziten Klick — KARL legt niemals automatisch Adressbuch-Einträge an.
- Daten: optionaler Kurzname, Vor- und Nachname, Firma, Straße + Hausnummer, Adresszusatz, Postleitzahl, Stadt, Ländercode, Telefon, E-Mail. Alle Felder bis auf Ländercode und Postleitzahl sind AES-256-GCM verschlüsselt at-rest (Art. 32 DSGVO).
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse — Erleichterung wiederkehrender Versand-Vorgänge an bekannte Empfänger). Sie haben jederzeit das Recht zu widersprechen und einzelne Einträge oder das gesamte Adressbuch zu löschen.
- Speicherdauer: bis Sie den jeweiligen Eintrag manuell
löschen oder Ihren Shop von KARL deinstallieren. Bei Deinstallation werden
alle Adressbuch-Einträge automatisch durch den
shop/redact- Webhook gelöscht (ON DELETE CASCADE auf dershops-Tabelle). - Customer-Redact: Wenn ein Endkunde von Shopify aus einen
Löschanspruch stellt (
customers/redact-Webhook), löscht KARL alle Adressbuch-Einträge mit übereinstimmender E-Mail-Adresse (Lookup über einen pseudonymisierten HMAC-Hash, ohne den Klartext zu kennen). - Multi-Tenant-Isolation: Jeder Adressbuch-Eintrag ist
strikt einem einzelnen Shop zugeordnet (
shop_id-Filter in jeder Query). Kein Cross-Shop-Zugriff möglich. - Audit-Log: Anlage und Löschung jedes Eintrags werden im Verzeichnis von Verarbeitungstätigkeiten (Art. 30 DSGVO) protokolliert.
11. Newsletter (Marketing-Mails)
Auf www.kyth.systems können sich Interessenten freiwillig für unseren Newsletter (Produkt-Updates, Versand-Tipps, Branchen-News) anmelden:
- Daten: E-Mail-Adresse (verschlüsselt gespeichert), Anmelde- und Bestätigungs-IP (auf
/24gekürzt), gewählte Sprache, Herkunft der Anmeldung, technische Bestätigungs- und Abmelde-Token sowie ein Zähler für unzustellbare Mails. - Doppel-Opt-In-Verfahren: nach der Anmeldung verschicken wir eine Bestätigungs-Mail. Erst nach Klick auf den darin enthaltenen Link wird die Adresse in den Verteiler aufgenommen. Ohne Bestätigung wird der Datensatz nach automatischer Aufräum-Frist gelöscht.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. a DSGVO (Einwilligung) i. V. m. § 7 Abs. 2 UWG.
- Versand: über den E-Mail-Dienstleister INWX (Sitz Berlin; Verarbeitung in der EU oder im EWR) — siehe Sub-Processor-Liste. KARL verwendet kein Open-/Click-Tracking-Pixel.
- Speicherdauer: bis zum Widerruf. Jede Newsletter-Mail enthält einen One-Click-Abmelde-Link. Bei Widerruf wird die Adresse sofort und vollständig aus der Datenbank gelöscht — keine Suppression-List, keine Audit-Aufbewahrung.
- Empfänger: keine Weitergabe an Dritte für Werbezwecke. Newsletter werden ausschließlich von der KYTH. Systems UG versendet.
12. Browser-Speicherung
KARL speichert im Browser nur betriebsnotwendige Daten und keine Tracking-/Marketing-Profile:
- sessionStorage: Admin-Sitzungs-Kennung (Shop-interne Admin-ID + Rolle, kein Name/keine E-Mail), die Shopify-Admin-Domain und die eigene Shop-Domain des Händlers (für die Navigation im eingebetteten App-Frame und die Fehler-Wiederherstellung), ein technischer Zähler gegen Endlos-Neuladen bei Anzeigefehlern sowie ein temporärer Aktivitäts-Verlauf der letzten bis zu zehn Label-Erstellungen (Bestell- und Tracking-Nummer, Carrier, Status — ohne Empfänger-Adresse und ohne Label-PDF). Diese Einträge werden beim Schließen des Tabs automatisch gelöscht. localStorage nur für UI-Präferenzen (z. B. zuletzt gesehene Changelog-Hinweise, Tabellen-Filter, Spalten-Sets).
- Formular-Entwurf „Manuelles Label" (tab-lokal): Während der Eingabe eines manuellen Labels (oder nach dem Scan eines Adress-QR-Codes in Scan & Ship) hält KARL den aktuellen Formularstand — einschließlich der eingegebenen Empfängeradresse, Telefon und E-Mail — im sessionStorage des Tabs vor. Zweck: Eingaben überleben einen versehentlichen Seiten-Reload und gehen bei Fehlern nicht verloren (Art. 6 Abs. 1 lit. f DSGVO). Der Entwurf bleibt ausschließlich im Browser des Arbeitsplatzes, wird nach erfolgreicher Label-Erstellung sofort und beim Schließen des Tabs automatisch gelöscht und verlässt das Gerät nicht.
- Keine Tracker: kein Google Analytics, kein Facebook Pixel, keine Werbe- oder Tracking-Cookies und keine sonstigen Tracking-Skripte. Das interne Verwaltungsportal nutzt ein technisch notwendiges, HMAC-signiertes Sitzungs-Cookie (einwilligungsfrei nach § 25 Abs. 2 Nr. 2 TDDDG bzw. § 165 Abs. 3 TKG 2021).
- Print-Token: Der Token für den lokalen Print-Service liegt ausschließlich in PostgreSQL, nicht im Browser-Storage.
Die Authentifizierung gegenüber Shopify erfolgt ausschließlich über Shopify Session-Tokens (kurzlebige JWTs, nicht persistent im Browser gespeichert).
13. Speicherdauer und automatische Löschung
| Datenkategorie | Aufbewahrung | Löschmechanismus |
|---|---|---|
| Versandprotokolle (shipments) | 90 Tage | Cleanup-Job |
| Fehlerprotokolle | 30 Tage | Cleanup-Job; zusätzlich Weiterleitung an unser selbst gehostetes Fehler-Tracking auf demselben Server in Deutschland |
| Tracking-Events | 90 Tage | Cleanup-Job |
| Zolldaten – Empfänger-PII (order_customs_data) | 90 Tage (MRN, ABD-PDF, Empfänger-Korrekturen auf NULL; HS-Codes bleiben) | Cleanup-Job |
| Pick-Listen (pick_lists) | 90 Tage | Cleanup-Job |
| Abholungen (pickups) | 90 Tage | Cleanup-Job |
| Retouren | 90 Tage | Cleanup-Job |
| Label-PDFs (label_archive) | Standard 30 Tage; vom Händler konfigurierbar 14–180 Tage | Cleanup-Job (wendet die Shop-Einstellung an) |
| Manuelle Label-Entwürfe (manual_label_drafts) | Bis Löschung durch den Händler bzw. nach Label-Erstellung; max. 50 pro Shop | Auto-Delete nach Label / manuell / shop/redact |
| Druckwarteschlange (print_queue) | 24 Stunden (gedruckt/fehlgeschlagen) bzw. 7 Tage (noch nicht gedruckt), jeweils ab Eintrag in die Warteschlange | Cleanup-Job |
| Tarif-Vergleiche (rate_comparisons) | 90 Tage | Cleanup-Job |
| E-Mail-Versandhistorie (notifications) | 180 Tage | Cleanup-Job |
| Support-Chat-Nachrichten (support_messages) | 180 Tage | Cleanup-Job |
| Audit-Log (DSGVO-Aktionen) | 365 Tage | Cleanup-Job |
| eBay Käufer-/Bestell-Zuordnung (ebay_order_buyers, nur mit Add-On „eBay Connector") | 180 Tage | Cleanup-Job |
| eBay-Tracking-Nachmeldungen (ebay_pushback_queue, nur mit Add-On) | 30 Tage nach Abschluss | Cleanup-Job |
| Wiederholversuche für Versandbestätigungen (email_retry_queue) | Empfängerdaten werden bei Erfolg bzw. Aufgabe sofort gelöscht; die Statuszeile nach 30 Tagen | Cleanup-Job |
| Fehlermeldungen des Händlers inkl. beigefügter Screenshots (intranet_bug_reports) | Screenshots 90 Tage, Meldung im Übrigen 365 Tage | Cleanup-Job |
| Mobile-Scan-Events | 24 Stunden | Cleanup-Job 03:50 UTC |
| Mobile-Scan-SSE-Tickets | Bis Ablauf, max. 1 Tag | Cleanup-Job 03:50 UTC |
| OAuth-Nonces | Unmittelbar nach Callback (wenige Minuten) | Cleanup + Expiry |
| Shop-Daten, Credentials, Settings | Bis Deinstallation | shop/redact-Webhook (bzw. 7-Tage-Fallback) |
| Prüfwerte gegen eine zweite Testphase bzw. eine zweite Einlösung desselben Gutscheins (trial_ledger, coupon_ledger) | 3 Jahre nach der Vergabe bzw. Einlösung — auch über die Deinstallation hinaus | Cleanup-Job |
| Endkunden-PII (auf Anfrage) | Sofort | customers/redact-Webhook |
| Alle Daten (auf Anfrage) | Produktivdaten sofort, ausgenommen der Prüfwert gegen eine zweite Testphase bzw. Gutschein-Einlösung (Abschnitt 3), solange wir ihn zur Missbrauchsabwehr benötigen — Ihr Widerspruchsrecht nach Art. 21 DSGVO bleibt unberührt —, und der Protokolleintrag über die Löschung (365 Tage, Audit-Log); Sicherungskopien nach der in Abschnitt 8.4.1 beschriebenen Frist | E-Mail an datenschutz@kyth.systems |
14. Ihre Rechte nach DSGVO
Sie haben die Rechte auf Auskunft, Berichtigung, Löschung, Einschränkung, Datenübertragbarkeit, Widerspruch und Beschwerde (Art. 15–21, 77 DSGVO).
Für Auskunft und Übertragbarkeit exportieren wir alle gespeicherten Daten als JSON — automatisiert über den Shopify-Webhook oder auf E-Mail-Anfrage. Eine Löschung führen wir auch vor Ablauf der Aufbewahrungsfrist durch, ausgenommen der Prüfwert gegen eine zweite Testphase bzw. Gutschein-Einlösung (Abschnitt 3), solange wir ihn zur Missbrauchsabwehr benötigen (Ihr Widerspruchsrecht nach Art. 21 DSGVO bleibt unberührt), und der Protokolleintrag über die Löschung, den wir 365 Tage als Nachweis aufbewahren. Für Sicherungskopien gilt die in Abschnitt 8.4.1 beschriebene Frist.
Widerspruchsrecht (Art. 21 DSGVO)
Soweit wir personenbezogene Daten als Verantwortlicher auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse) verarbeiten, haben Sie das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit Widerspruch gegen diese Verarbeitung einzulegen. Das betrifft insbesondere den Nachweis Ihrer Zustimmungen, Kenntnisnahmen und Widersprüche zu unseren Rechtstexten (Legal-Akzeptanzen, Abschnitt 3), die Mitteilungen zu geänderten Rechtstexten, die Rückmeldung zur Deinstallation, den Prüfwert gegen eine zweite Testphase bzw. Gutschein-Einlösung (Abschnitt 3) und die internen Benachrichtigungen über Telegram (Abschnitt 7). Nach einem Widerspruch verarbeiten wir diese Daten nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen.
Ihren Widerspruch richten Sie formlos an datenschutz@kyth.systems. Betrifft er Daten, die wir im Auftrag eines Händlers verarbeiten (etwa als Empfänger einer Sendung), wenden Sie sich bitte an diesen Händler; wir unterstützen ihn dabei.
Kontakt: datenschutz@kyth.systems
Zuständige Aufsichtsbehörde: Bayerisches Landesamt für Datenschutzaufsicht (BayLDA), Promenade 18, 91522 Ansbach, www.lda.bayern.de
15. Shopify GDPR Compliance
KARL implementiert alle 3 Pflicht-Webhooks gemäß Shopify App Store Anforderungen. Alle Webhooks werden per HMAC-SHA256 verifiziert:
customers/data_request(Art. 15): Exportiert alle gespeicherten Daten eines Kunden als JSON — unter anderem ausshipments,returns,notifications,tracking_events,label_archive.customers/redact(Art. 17): Anonymisiert sämtliche PII-Felder des betroffenen Kunden (Name, Adresse, E-Mail, API-Logs, Label-PDFs, Tracking-Event-Location + Roh-JSON) in allen relevanten Tabellen.shop/redact(Deinstallation): Löscht alle Shop-Daten — inklusive Admin-Users, Credentials, Carrier-Accounts, Settings, Shipments, Labels, Retouren, Retouren-Portal-Tokens, Pick-Listen, Tracking-Events, Mobile-Scan-Events, Routing-Modi sowie aller weiteren shop-gebundenen Tabellen. Danach bleiben ein Protokolleintrag über die Löschung (365 Tage) und die nicht umkehrbaren Prüfwerte gegen eine zweite Testphase bzw. eine zweite Einlösung desselben Gutscheins (3 Jahre nach der Vergabe bzw. Einlösung; Abschnitte 3 und 13).
Fallback bei ausbleibendem Shopify-Webhook: Falls nach einer Deinstallation kein
shop/redact-Webhook innerhalb von 7 Tagen eintrifft, werden die Shop-Daten durch einen internen
Cleanup-Prozess automatisch gelöscht.
16. Änderungen dieser Erklärung
Wir behalten uns vor, diese Datenschutzerklärung bei Bedarf anzupassen — beispielsweise bei Änderungen der App-Funktionalität oder der Rechtslage. Die aktuelle Version ist immer unter /privacy abrufbar. Wesentliche Änderungen werden dem Händler mit angemessener Vorlaufzeit über die App-Oberfläche oder per E-Mail angekündigt.