Saltearse al contenido

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.

Ventana de terminal
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",
"contact": "[email protected]"
},
"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.

Ventana de terminal
curl https://qr3.app/v1/account/export \
-H "Authorization: Bearer qr3_sk_..." \
-o meine-daten.json

La 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.

Ventana de terminal
curl -X DELETE https://qr3.app/v1/account \
-H "Authorization: Bearer qr3_sk_..."

Qué sucede:

  1. Todos los códigos QR se eliminan de forma lógica (se archivan)
  2. Todos los registros de escaneo se eliminan de forma permanente (PII)
  3. Todas las claves de API se revocan
  4. 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.

Ventana de terminal
# Aktuelle Einwilligungen abrufen
curl https://qr3.app/v1/account/privacy/consents \
-H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivieren
curl -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:

CampoPredeterminadoDescripción
marketing_emailsfalseBoletines informativos y correos electrónicos promocionales
analyticstrueEstadísticas de uso agregadas
product_updatestrueNovedades 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 gespeichert

La 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:

PlanRetención
Free7 días
Pro90 días
Business / Agency1 año
EnterprisePersonalizado (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