RGPD y Privacidad
Privacidad desde el diseño
qr3.app está diseñado desde cero para cumplir con el RGPD:
- Anonimización de IP — Las direcciones IP se convierten inmediatamente en hashes SHA-256 (con una sal que rota diariamente) en el Edge Worker. La IP original nunca llega a la base de datos.
- Políticas de retención — Los datos de los escaneos se eliminan automáticamente según el plazo de cada plan (Free: 7 días, Pro: 90 días, Business: 1 año).
- Minimización de datos — Solo se recopilan los datos estrictamente necesarios para el funcionamiento.
API de Privacidad
Resumen de datos (Art. 15 del RGPD)
GET /v1/account/privacy — Devuelve un resumen de todos los datos almacenados.
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" } ] } }}Exportación de datos (Art. 20 del RGPD — Portabilidad de datos)
GET /v1/account/export — Descarga todos los datos como un archivo JSON.
curl https://qr3.app/v1/account/export \ -H "Authorization: Bearer qr3_sk_..." \ -o meine-daten.jsonLa exportación contiene:
- Todos los códigos QR (incluidos los eliminados)
- Estadísticas de escaneo agregadas (sin hashes de IP sin procesar)
- Marcas de tiempo de creación y modificación
Eliminar cuenta (Art. 17 del RGPD — Derecho al olvido)
DELETE /v1/account — Eliminación irrevocable de todos los datos.
curl -X DELETE https://qr3.app/v1/account \ -H "Authorization: Bearer qr3_sk_..."Qué sucede:
- Todos los códigos QR se eliminan de forma lógica (se archivan)
- Todos los registros de escaneo se eliminan de forma permanente (PII)
- Todas las claves de API se revocan
- Se invalida la caché de KV
Gestionar consentimientos
GET /v1/account/privacy/consents — Obtener los consentimientos actuales.
POST /v1/account/privacy/consents — Actualizar los consentimientos.
# 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 }'Campos de consentimiento:
| Campo | Predeterminado | Descripción |
|---|---|---|
marketing_emails | false | Boletines informativos y correos electrónicos promocionales |
analytics | true | Estadísticas de uso agregadas |
product_updates | true | Novedades de productos y registros de cambios |
Implementación técnica del RGPD
Anonimización de IP (Art. 25 del 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 gespeichertLa sal rota diariamente a la medianoche UTC. Esto significa que incluso si se conoce la sal, no es posible correlacionar las IP entre diferentes días.
Retención de datos (automatizada)
Una tarea programada (cron job) diaria (purgeOldScans) elimina los datos de escaneo según el plazo de cada plan:
| Plan | Retención |
|---|---|
| Free | 7 días |
| Pro | 90 días |
| Business / Agency | 1 año |
| Enterprise | Personalizado (SLA) |
DPA de subencargados del tratamiento
Cloudflare, Inc. procesa los datos como encargado del tratamiento. El DPA está disponible en cloudflare.com/cloudflare-customer-dpa.
Cloudflare procesa los datos en servidores de la UE (Fráncfort). Las Cláusulas Contractuales Estándar (SCC) de conformidad con el Art. 46 del RGPD están vigentes.
Contacto
- Delegado de Protección de Datos: [email protected]
- Acuerdo de procesamiento de datos (DPA): [email protected] (bajo petición)
- Política de privacidad: Política de privacidad