Datenschutzerklärung — KYTH.Karl Shipping Intelligence

Stand: 21. Mai 2026 | Version: 3.5 | Anbieter: KYTH. Systems UG (haftungsbeschränkt) i. Gr.

1. Verantwortlicher

KYTH. Systems UG (haftungsbeschränkt) i. Gr.
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)
Eintragung im Handelsregister beim Amtsgericht Nürnberg beantragt
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 (ausschließlich lesend). KARL verarbeitet nur Daten, die für den Versandprozess zwingend erforderlich sind (Datenminimierung, Art. 5 Abs. 1 lit. c DSGVO).

KategorieDatenSchutzAufbewahrung
Shop-DatenShop-Domain, OAuth-Token, Plan, Scopes, Installations-ZeitpunktAccess-Token AES-256-GCM verschlüsseltBis Deinstallation
EmpfängerdatenName, Firma, Straße, PLZ, Stadt, Land, Bundesland, Telefon, E-MailName, 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
VersanddatenBestell-Nr., Carrier, Service, Tracking-Nr., Gewicht, Maße, Incoterm, EAS/ODA-Flags, KostenMulti-Tenant-Isolation90 Tage
Tracking-EventsStatus, Zeitstempel, Ort, Roh-Event-JSON des CarriersMulti-Tenant-Isolation; bei customers/redact werden Ort + Roh-JSON auf NULL gesetzt90 Tage
Label-PDFsVersandetiketten als Base64 (enthalten Empfänger-Adresse)AES-256-GCM verschlüsselt (label_archive)30 Tage
Carrier-API-ZugangsdatenAPI-Keys, Kundennummern, OAuth-Tokens (inkl. BYOAK — Bring Your Own API Keys)AES-256-GCM verschlüsseltBis Deinstallation
Portokasse-TokensOAuth Access/Refresh Tokens (Deutsche Post Internetmarke)AES-256-GCM verschlüsseltBis Deinstallation
Shop-Einstellungen / Absender-PIIFirmenadresse, Kontaktperson, Telefon, USt-IdNr., EORI des Händlerssettings_json AES-256-GCM verschlüsseltBis Deinstallation
Admin-ZugangsdatenE-Mail, Name, RolleE-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üsselt90 Tage; bei DSGVO-Anfrage: sofort NULL
Audit-Log (DSGVO)Zeitstempel, Aktion (shop_redact / customer_redact / data_request), Shop-Domain, verarbeitete IDsMulti-Tenant-Isolation (Art. 30 DSGVO — Verzeichnis von Verarbeitungstätigkeiten)365 Tage
RetourenKundenname, E-Mail, Bestell-Nr., Grund, StatusMulti-Tenant-Isolation90 Tage
Retouren-Portal-TokensEinmal-Token für Self-Service-Retourenportal, Kunden-E-Mail, AblaufzeitToken + E-Mail verschlüsselt; Multi-Tenant-IsolationBis Ablauf/Verbrauch; spätestens 90 Tage
DruckwarteschlangeLabel-PDF, Bestell-Nr.Multi-Tenant-Isolation30 Tage nach Druck
E-Mail-BenachrichtigungenEmpfänger-E-Mail, Bestell-Nr., Tracking-Nr., Carrier, Versandstatus (Log)Multi-Tenant-Isolation180 Tage (Versandhistorie)
Mobile-Scanner-EventsGescannte Bestell-Nr., Zeitstempel, Shop-Zuordnung (Handy→PC SSE-Relay)Multi-Tenant-Isolation; append-only Event-Log24 Stunden (täglich 03:50 UTC)
Mobile-Scanner-SSE-TicketsKurzlebige Auth-Tickets für Handy-Browser-VerbindungMulti-Tenant-IsolationBis Ablauf (kurzlebig, min. einmal täglich bereinigt)
Branded-Tracking-KonfigurationLogo, Brand-Farben, Text-Bausteine, Social-Links des HändlersMulti-Tenant-Isolation (keine End-Kunden-PII)Bis Deinstallation
OAuth-NoncesKurzlebige State-Token für Shopify OAuth-FlowServer-seitig nur, nicht im BrowserUnmittelbar nach Callback (max. wenige Minuten)
Legal-AkzeptanzenShop-ID, Dokumententyp (AGB/AVV/Privacy), Version, Akzept-Zeitstempel, pseudonymisierte IP (/24 bzw. /64), User-AgentIP wird vor Speicherung auf /24 (IPv4) bzw. /64 (IPv6) gekürzt — keine direkt re-identifizierbare Adresse. Multi-Tenant-Isolation. Rechtsgrundlage: Art. 7 Abs. 1 DSGVO + § 14 BGB Nachweispflicht.10 Jahre (§ 147 AO Aufbewahrungspflicht für Vertragsunterlagen)

4. Zweck der Verarbeitung

Alle Daten werden ausschließlich zur Erbringung des Versanddienstes verarbeitet:

Es erfolgt keine Verarbeitung zu Werbezwecken, kein Profiling, keine automatisierte Entscheidungsfindung im Sinne von Art. 22 DSGVO.

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.

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.

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 allen 10 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

Versandadressen werden ausschließlich an die vom Händler aktiv konfigurierten Carrier weitergegeben — und nur im Moment der Label-Erstellung bzw. der Abholungs-Buchung:

CarrierUnternehmen / SitzRechtsgrundlage Transfer
DHL PaketDeutsche Post DHL Group, Bonn (EU)Kein Drittlandtransfer
DHL ExpressDHL Express, Bonn (EU)Kein Drittlandtransfer
FedExFedEx Corporation, Memphis (USA)EU-US Data Privacy Framework + Standard­vertrags­klauseln (SCCs)
UPSUnited Parcel Service, Atlanta (USA)EU-US Data Privacy Framework + Standard­vertrags­klauseln (SCCs)
DPDDPD Deutschland GmbH, Aschaffenburg (EU)Kein Drittlandtransfer
Österreichische PostÖsterreichische Post AG, Wien (EU)Kein Drittlandtransfer
Deutsche Post / InternetmarkeDeutsche 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):

DienstLandGarantie für den Transfer
Shopify Inc. (Bestelldatenquelle, Embedded-App-Hosting, Webhook-Zustellung)Kanada / globalAngemessenheitsbeschluss der EU-Kommission für Kanada (kommerzielle Organisationen) + Shopify DPA
Cloudflare, Inc. (DNS-Auflösung für kyth.systems)USAEU-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.

Es erfolgt keine Weitergabe an sonstige Dritte, keine Datenweitergabe zu Werbezwecken, kein Cross-Site-Tracking, keine Analyse durch Drittanbieter, keine Cookies.

7. Unterauftragsverarbeiter (Sub-Processors)

DienstleisterZweckStandortDPA / AVV
IONOS SEApplication Hosting (VPS, Coolify/Docker), PostgreSQL-Datenbank, verschlüsselter Backup-Storage (Object Storage)Berlin, Deutschland (EU)Ja (AVV)
Shopify Inc.E-Commerce-Plattform (Datenquelle der Bestellungen, Embedded-App-Hosting, Webhook-Zustellung)Kanada / Global (Shopify ist eigenständiger Verantwortlicher für Shop-Daten)Ja (Shopify DPA)
Cloudflare, Inc.DNS-Auflösung für die Domain kyth.systems (nur DNS, kein Reverse-Proxy, keine TLS-Terminierung durch Cloudflare)USA (Anycast, EU-Edge-Server)Ja (Cloudflare DPA / SCCs)
Geoapify GmbHAdress-Autocomplete und Geocoding für Versandlabels (aktiv seit v0.0.281)Wien, Österreich (EU)Ja
INWX GmbH & Co. KGVersand transaktionaler KARL-System-E-Mails (Passwort-Reset, App-Uninstall-Feedback, Waitlist-Eingang). Versandbestätigungen und Retouren-Einladungen an Endkunden werden über den vom Händler konfigurierten eigenen SMTP-Server verschickt — nicht über INWX.Berlin, Deutschland (EU) — Mail-Server smtp.webspace.bzJa (AVV)

Shopify stellt Bestelldaten über die GraphQL API bereit. KARL liest diese ausschließlich lesend. 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 & Co. KG — Transaktionaler E-Mail-Versand der KARL-eigenen System-Mails (Passwort-Reset, App-Uninstall-Feedback, Waitlist-Eingang) seit rc.166. Sitz Berlin, Deutschland (EU). Mail-Server smtp.webspace.bz. Übermittelt werden Empfänger-E-Mail-Adresse, Absender-Domain, Betreff und Inhalt der E-Mail. Keine Drittland- Übermittlung. AVV abgeschlossen. Rechtsgrundlage: Art. 6 Abs. 1 lit. b / f DSGVO. 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 über neue Bug-Reports und Support-Chat-Nachrichten, die im Intranet eingehen. Übertragen werden ausschließlich technische Identifikatoren (Ticket-ID, Shop-Domain-Kurzform, interner Deep-Link sowie der vom Shop-Inhaber selbst eingegebene Bug-Titel, gekürzt auf 80 Zeichen). Keine Endkunden-Daten, keine Nachrichten-Inhalte, keine E-Mail-Adressen, keine Adressdaten und keine personenbezogenen Identifikatoren von Shop-Kunden werden über diesen Kanal übertragen. 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

8.2 Verschlüsselung at rest (AES-256-GCM)

Die folgenden Felder werden in PostgreSQL verschlüsselt gespeichert. Der Schlüssel liegt als ENV-Variable am Application-Server und ist in Backups nicht enthalten:

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.

8.3 Authentifizierung und Integrität

8.4 Backups

8.4.1 Backup-Löschkonzept (Art. 17 DSGVO)

Nach einem Löschersuchen (shop/redact, customers/redact oder manueller Deinstallation) werden die Produktionsdaten sofort gelöscht. 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 und wal-g-Base-Backups werden nach spätestens 7 Tagen automatisch überschrieben bzw. gelöscht (wal-g delete retain FULL 7). Sollten in dieser Frist Daten aus einem Backup wiederhergestellt werden müssen (Notfall-Restore), würden die betroffenen Löschersuchen im Anschluss erneut ausgeführt. Die 7-Tage-Frist ist die kürzestmögliche ohne Datenverlust-Risiko im Incident-Fall und entspricht gängiger Praxis für Art. 17 DSGVO bei verschlüsselten Backups.

8.5 Self-Hosted Fonts, keine externen Ressourcen

KARL lädt keine externen 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.

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:

10. Mobile Scanner (Handy als kabelloser Barcode-Scanner)

Der Mobile Scanner erlaubt es Mitarbeitern des Händlers, im gleichen Netzwerk mit einem Handy Paket-Barcodes zu scannen und an den Desktop-Browser derselben KARL-Installation zu übertragen (SSE-Relay via PostgreSQL LISTEN/NOTIFY):

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.

11. Newsletter (Marketing-Mails)

Auf www.kyth.systems können sich Interessenten freiwillig für unseren Newsletter (Produkt-Updates, Versand-Tipps, Branchen-News) anmelden:

12. Browser-Speicherung

KARL speichert im Browser nur betriebsnotwendige Daten — keine Empfänger-Adressdaten und keine Tracking-/Marketing-Profile:

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

Automatische Bereinigung über APScheduler (täglich 03:00–03:50 UTC) sowie bei jedem Server-Start (Art. 5 Abs. 1 lit. c DSGVO — Datenminimierung).
DatenkategorieAufbewahrungLöschmechanismus
Versandprotokolle (shipments)90 TageCleanup-Job + Start-Up
Tracking-Events90 TageCleanup-Job
Abholungen (pickups)90 TageCleanup-Job
Retouren90 TageCleanup-Job
Label-PDFs (label_archive)30 TageCleanup-Job
Druckwarteschlange (print_queue)30 TageCleanup-Job
E-Mail-Versandhistorie (notifications)180 TageCleanup-Job
Audit-Log (DSGVO-Aktionen)365 TageCleanup-Job
Mobile-Scan-Events24 StundenCleanup-Job 03:50 UTC
Mobile-Scan-SSE-TicketsBis Ablauf, max. 1 TagCleanup-Job 03:50 UTC
OAuth-NoncesUnmittelbar nach Callback (wenige Minuten)Cleanup + Expiry
Shop-Daten, Credentials, SettingsBis Deinstallationshop/redact-Webhook (bzw. 7-Tage-Fallback)
Endkunden-PII (auf Anfrage)Sofortcustomers/redact-Webhook
Alle Daten (auf Anfrage)SofortE-Mail an datenschutz@kyth.systems

14. Ihre Rechte nach DSGVO

Als betroffene Person haben Sie folgende Rechte:

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:

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. Multi-Tenant-Isolation

Jeder Shopify-Shop hat in KARL eine eigene, strikt isolierte Datenpartition. Alle Datenbank-Tabellen mit PII sind über shop_id mit Foreign-Key-Constraint auf die shops-Tabelle gebunden (ON DELETE CASCADE). Ein Shop kann technisch ausschließlich auf seine eigenen Daten zugreifen — die Isolation wird server-seitig aus dem authentifizierten Shopify Session-Token abgeleitet und auf jedem API-Call neu verifiziert.

17. Ä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.