Hoppa till innehåll

GDPR & dataskydd

Dataskydd genom design

qr3.app är byggt från grunden för att vara GDPR-kompatibelt:

  • IP-anonymisering — IP-adresser omvandlas omedelbart till SHA-256-hashar (med ett dagligen roterande salt) i Edge-workern. Den ursprungliga IP-adressen når aldrig databasen.
  • Lagringspolicyer — Skanningsdata raderas automatiskt efter en abonnemangsberoende period (Free: 7 dagar, Pro: 90 dagar, Business: 1 år).
  • Dataminimering — Endast de uppgifter som är nödvändiga för driften samlas in.

Privacy-API

Sammanfattning av personuppgifter (Art. 15 GDPR)

GET /v1/account/privacy — Returnerar en översikt över alla sparade uppgifter.

Terminal window
curl https://qr3.app/v1/account/privacy \
-H "Authorization: Bearer qr3_sk_..."

Svar:

{
"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" }
]
}
}
}

Dataexport (Art. 20 GDPR — dataportabilitet)

GET /v1/account/export — Laddar ner alla data som en JSON-fil.

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

Exporten innehåller:

  • Alla QR-koder (inklusive raderade)
  • Aggregerad skanningsstatistik (inga råa IP-hashar)
  • Tidsstämplar för skapande och ändring

Radera konto (Art. 17 GDPR — rätten att bli bortglömd)

DELETE /v1/accountOåterkallelig radering av alla data.

Terminal window
curl -X DELETE https://qr3.app/v1/account \
-H "Authorization: Bearer qr3_sk_..."

Vad som händer:

  1. Alla QR-koder mjukraderas (arkiveras)
  2. Alla skanningsposter raderas permanent (PII)
  3. Alla API-nycklar återkallas
  4. KV-cache ogiltigförklaras

Hantera samtycken

GET /v1/account/privacy/consents — Hämta aktuella samtycken.

POST /v1/account/privacy/consents — Uppdatera samtycken.

Terminal window
# 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 }'

Samtyckesfält:

FältStandardBeskrivning
marketing_emailsfalseNyhetsbrev och reklammejl
analyticstrueAggregerad användningsstatistik
product_updatestrueProduktnyheter och ändringsloggar

Teknisk GDPR-implementering

IP-anonymisering (Art. 25 GDPR)

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

Saltet roterar varje dag vid midnatt UTC. Detta innebär att även om saltet är känt är det inte möjligt att korrelera IP-adresser över flera dagar.

Datalagring (automatiserad)

Ett dagligt cron-jobb (purgeOldScans) raderar skanningsdata efter en abonnemangsberoende period:

AbonnemangLagringstid
Free7 dagar
Pro90 dagar
Business / Agency1 år
EnterpriseAnpassad (SLA)

Underbiträdesavtal (DPA)

Cloudflare, Inc. behandlar uppgifter som personuppgiftsbiträde. Underbiträdesavtalet (DPA) finns tillgängligt på cloudflare.com/cloudflare-customer-dpa.

Cloudflare behandlar uppgifter på servrar inom EU (Frankfurt). Standardavtalsklausuler (SCC) i enlighet med art. 46 GDPR tillämpas.


Kontakt