RGPD & Protection des données
Privacy by Design
qr3.app est conçu dès le départ pour être conforme au RGPD :
- Anonymisation des IP — Les adresses IP sont immédiatement converties en hachages SHA-256 (avec un sel rotatif quotidien) dans le Edge Worker. L’IP d’origine n’atteint jamais la base de données.
- Politiques de rétention — Les données de scan sont automatiquement supprimées après un délai dépendant de l’abonnement (Free : 7 jours, Pro : 90 jours, Business : 1 an).
- Minimisation des données — Seules les données nécessaires au fonctionnement sont collectées.
API Privacy
Résumé des données (Art. 15 RGPD)
GET /v1/account/privacy — Retourne un aperçu de toutes les données stockées.
curl https://qr3.app/v1/account/privacy \ -H "Authorization: Bearer qr3_sk_..."Response:
{ "data": { "workspace_id": "ws_xxx", "stored_data": { "qr_codes": { "count": 42, "oldest_at": "2026-03-01T..." }, "scan_records": { "count": 15000, "oldest_at": "2026-03-01T..." }, "api_keys": { "count": 2 }, "webhooks": { "count": 1 } }, "your_rights": { "access": "GET /v1/account/export", "erasure": "DELETE /v1/account", }, "data_processing": { "legal_basis": "Contract performance (Art. 6(1)(b) GDPR)", "sub_processors": [ { "name": "Cloudflare, Inc.", "purpose": "CDN, edge computing, database" } ] } }}Export des données (Art. 20 RGPD — Portabilité des données)
GET /v1/account/export — Télécharge toutes les données sous forme de fichier JSON.
curl https://qr3.app/v1/account/export \ -H "Authorization: Bearer qr3_sk_..." \ -o meine-daten.jsonL’export contient :
- Tous les QR Codes (y compris ceux supprimés)
- Des statistiques de scan agrégées (pas de hachages IP bruts)
- Les horodatages de création et de modification
Supprimer le compte (Art. 17 RGPD — Droit à l’oubli)
DELETE /v1/account — Suppression irréversible de toutes les données.
curl -X DELETE https://qr3.app/v1/account \ -H "Authorization: Bearer qr3_sk_..."Ce qui se passe :
- Tous les QR Codes sont soft-deleted (archivés)
- Tous les enregistrements de scan sont définitivement supprimés (PII)
- Toutes les clés API sont révoquées
- Le cache KV est invalidé
Gérer les consentements
GET /v1/account/privacy/consents — Récupérer les consentements actuels.
POST /v1/account/privacy/consents — Mettre à jour les consentements.
# Aktuelle Einwilligungen abrufencurl https://qr3.app/v1/account/privacy/consents \ -H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivierencurl -X POST https://qr3.app/v1/account/privacy/consents \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "marketing_emails": false, "analytics": true, "product_updates": true }'Champs de consentement :
| Champ | Par défaut | Description |
|---|---|---|
marketing_emails | false | Newsletter et e-mails promotionnels |
analytics | true | Statistiques d’utilisation agrégées |
product_updates | true | Nouveautés produits et changelogs |
Implémentation technique du RGPD
Anonymisation des IP (Art. 25 RGPD)
HTTP Request → Cloudflare Edge Worker ↓CF-Connecting-IP Header → SHA-256(IP + täglicher Salt) ↓ip_hash (nicht reversibel) → D1 Datenbank ↓Original-IP wird NIEMALS gespeichertLe sel tourne quotidiennement à minuit UTC. Ainsi, même si le sel est connu, aucune corrélation d’IP d’un jour à l’autre n’est possible.
Rétention des données (automatisée)
Une tâche Cron exécutée quotidiennement (purgeOldScans) supprime les données de scan après un délai dépendant de l’abonnement :
| Plan | Rétention |
|---|---|
| Free | 7 jours |
| Pro | 90 jours |
| Business / Agency | 1 an |
| Enterprise | Personnalisé (SLA) |
DPA sous-traitant
Cloudflare, Inc. traite les données en tant que sous-traitant. L’accord de traitement des données (DPA) est disponible sur cloudflare.com/cloudflare-customer-dpa.
Cloudflare traite les données sur des serveurs situés dans l’UE (Francfort). Les clauses contractuelles types (CCT) conformément à l’Art. 46 RGPD sont en vigueur.
Contact
- Délégué à la protection des données : [email protected]
- Accord de traitement des données (DPA) : [email protected] (sur demande)
- Politique de confidentialité : qr3.app/de/legal/datenschutz