Files
boc/quixzoom-privacy.html
T

341 lines
18 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="canonical" href="https://www.quixzoom.com/privacy/">
<meta charset="UTF-8">
<link rel="canonical" href="https://www.quixzoom.com/privacy.html">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Privacy Policy quiXzoom</title>
<meta name="description" content="quiXzoom Privacy Policy — how we collect, use, and protect your personal data.">
<link rel="stylesheet" href="/assets/css/quixzoom-apple.css">
<style>
:root {
--bg: #F2F2F7;
--surface: #FFFFFF;
--surface2: #F2F2F7;
--label: #000000;
--label2: #3C3C43;
--label3: rgba(60,60,67,0.65);
--separator: rgba(60,60,67,0.29);
--accent: #0066FF;
--font: -apple-system, "SF Pro Text", "Helvetica Neue", sans-serif;
--font-display: -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif;
--radius-lg: 16px;
--radius-sm: 10px;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #000000;
--surface: #1C1C1E;
--surface2: #2C2C2E;
--label: #FFFFFF;
--label2: #EBEBF5;
--label3: rgba(235,235,245,0.65);
--separator: rgba(84,84,88,0.65);
}
}
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-font-smoothing: antialiased; }
body {
font-family: var(--font);
background: var(--bg);
color: var(--label);
padding: env(safe-area-inset-top, 20px) env(safe-area-inset-right, 20px) env(safe-area-inset-bottom, 40px) env(safe-area-inset-left, 20px);
max-width: 680px;
margin: 0 auto;
}
header { padding: 32px 0 24px; text-align: center; }
header .logo { font-family: var(--font-display); font-size: 28px; font-weight: 700; letter-spacing: -0.5px; color: var(--accent); }
header h1 { font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--label); margin-top: 6px; }
header p { font-size: 13px; color: var(--label3); margin-top: 4px; }
.card { background: var(--surface); border-radius: var(--radius-lg); padding: 20px; margin-bottom: 12px; }
.card-title { font-family: var(--font-display); font-size: 17px; font-weight: 600; color: var(--label); margin-bottom: 12px; }
p, li { font-size: 15px; line-height: 1.6; color: var(--label2); }
ul { padding-left: 20px; margin-top: 8px; }
li { margin-bottom: 6px; }
.row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 0.5px solid var(--separator); }
.row:last-child { border-bottom: none; }
.row-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.blue { background: rgba(0,102,255,0.12); }
.green { background: rgba(52,199,89,0.12); }
.orange { background: rgba(255,149,0,0.12); }
.red { background: rgba(255,59,48,0.12); }
.purple { background: rgba(175,82,222,0.12); }
.teal { background: rgba(50,173,230,0.12); }
.row-content { flex: 1; }
.row-label { font-size: 15px; font-weight: 600; color: var(--label); }
.row-sub { font-size: 13px; color: var(--label3); margin-top: 2px; line-height: 1.5; }
a { color: var(--accent); text-decoration: none; }
footer { text-align: center; padding: 24px 0 8px; font-size: 13px; color: var(--label3); }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
<meta property="og:type" content="website">
<meta property="og:title" content="Privacy Policy quiXzoom">
<meta property="og:description" content="quiXzoom — Earn per Mission. No Platform Fee.">
<meta property="og:url" content="https://www.quixzoom.com/privacy.html">
<meta property="og:image" content="https://www.quixzoom.com/images/og-image.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="quiXzoom Privacy Policy">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://www.quixzoom.com/images/og-image.jpg">
<meta name="twitter:title" content="Privacy Policy quiXzoom">
</head>
<body>
<header>
<div class="logo">quiXzoom</div>
<h1>Privacy Policy</h1>
<p>Last updated: 18 June 2026 &nbsp;·&nbsp; Version 1.1</p>
</header>
<div class="card">
<div class="card-title">Introduction</div>
<p>quiXzoom ("we", "us") is a crowdsourced field data collection platform operated by Landvex AB, org. no. 559141-7042, registered in Sweden. This policy explains how we collect, use and protect your personal data in accordance with GDPR (EU 2016/679) and applicable national law.</p>
<p>By using the app you accept this policy. If you do not accept it, do not use the service.</p>
</div>
<div class="card">
<div class="card-title">Data Controller</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9M15 21V9"/></svg>
</div>
<div class="row-content">
<div class="row-label">Landvex AB</div>
<div class="row-sub">Data Protection contact: <a href="mailto:privacy@quixzoom.com">privacy@quixzoom.com</a><br>Address: Landvex AB, Tyresö, Sweden</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">What data do we collect?</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
</div>
<div class="row-content">
<div class="row-label">Account data</div>
<div class="row-sub">Name, email address, phone number, bank account number (for payouts), identity document (KYC — stored encrypted).</div>
</div>
</div>
<div class="row">
<div class="row-icon green">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#34c759" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
</div>
<div class="row-content">
<div class="row-label">Location data</div>
<div class="row-sub">GPS coordinates at mission acceptance, check-in and image upload. We do not collect background location outside active missions.</div>
</div>
</div>
<div class="row">
<div class="row-icon orange">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ff9500" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>
</div>
<div class="row-content">
<div class="row-label">Images and media</div>
<div class="row-sub">Photos uploaded as part of a mission. Images may contain EXIF metadata (camera, date, coordinates) which we retain for quality verification.</div>
</div>
</div>
<div class="row">
<div class="row-icon purple">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#af52de" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
</div>
<div class="row-content">
<div class="row-label">Device information</div>
<div class="row-sub">Device model, OS version, app version, push notification token. Never IDFA/IDFV without explicit consent.</div>
</div>
</div>
<div class="row">
<div class="row-icon teal">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#32ade6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
</div>
<div class="row-content">
<div class="row-label">Payment data</div>
<div class="row-sub">Payout history, mission earnings (in local currency), tax documentation. Card details are never handled directly by us.</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">How do we use your data?</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
</div>
<div class="row-content">
<div class="row-label">Performance of contract (Art. 6.1b GDPR)</div>
<div class="row-sub">Match Zoomers with missions, verify submissions, process payouts, generate tax documentation.</div>
</div>
</div>
<div class="row">
<div class="row-icon green">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#34c759" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
</div>
<div class="row-content">
<div class="row-label">Legal obligation (Art. 6.1c GDPR)</div>
<div class="row-sub">Accounting law (7 years), AML/KYC requirements, statutory tax reporting obligations.</div>
</div>
</div>
<div class="row">
<div class="row-icon orange">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ff9500" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<div class="row-content">
<div class="row-label">Legitimate interest (Art. 6.1f GDPR)</div>
<div class="row-sub">Fraud prevention, platform integrity, push notifications about nearby missions.</div>
</div>
</div>
<div class="row">
<div class="row-icon purple">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#af52de" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</div>
<div class="row-content">
<div class="row-label">Consent (Art. 6.1a GDPR)</div>
<div class="row-sub">Marketing via email/SMS, analytics cookies (if accepted via cookie banner).</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">Image processing and AI</div>
<p>Images you upload are used to build structured field intelligence datasets. They are processed by Landvex AB's AI infrastructure — no third-party model is trained on your images. Images are stored in the EU (Stockholm, eu-north-1) and deleted after 5 years unless the client requests longer retention.</p>
<p>We never sell your images to third parties. Clients (e.g. insurance companies, municipalities) who commissioned a mission receive access to the delivered intelligence output, not to your raw camera images.</p>
<p>Anonymised observation data (imagery de-identified from your personal data) is licensed to Landvex for the production of intelligence products. This is covered by a Data Processing Agreement. Your identity is never disclosed to any client or intelligence recipient.</p>
</div>
<div class="card">
<div class="card-title">Cookies</div>
<div class="row">
<div class="row-icon green">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#34c759" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
</div>
<div class="row-content">
<div class="row-label">Necessary cookies</div>
<div class="row-sub">Session ID, CSRF token. Cannot be disabled — required for the app to function.</div>
</div>
</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
</div>
<div class="row-content">
<div class="row-label">Analytics cookies (requires consent)</div>
<div class="row-sub">Anonymised app usage via Landvex Analytics (no data to Google Analytics). Stored in EU, max 13 months.</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">Zoomer relationship</div>
<p>Zoomers are engaged as independent contractors, not employees. We are the data controller for data collected through the app. You are responsible for not photographing individuals or private property outside the scope of the mission without authorisation.</p>
<p>Income from quiXzoom is taxable. We report earnings to relevant tax authorities for payouts that exceed applicable reporting thresholds in your country.</p>
</div>
<div class="card">
<div class="card-title">Your rights</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
</div>
<div class="row-content">
<div class="row-label">Access</div>
<div class="row-sub">Request a copy of all data we hold about you.</div>
</div>
</div>
<div class="row">
<div class="row-icon green">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#34c759" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
</div>
<div class="row-content">
<div class="row-label">Rectification</div>
<div class="row-sub">Correct inaccurate data directly in the app under Settings → Profile.</div>
</div>
</div>
<div class="row">
<div class="row-icon red">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ff3b30" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/><path d="M10 11v6M14 11v6"/></svg>
</div>
<div class="row-content">
<div class="row-label">Erasure ("right to be forgotten")</div>
<div class="row-sub">Request account deletion. Note: data required for accounting is retained for 7 years by law.</div>
</div>
</div>
<div class="row">
<div class="row-icon orange">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ff9500" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 17 12 21 16 17"/><line x1="12" y1="12" x2="12" y2="21"/><path d="M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"/></svg>
</div>
<div class="row-content">
<div class="row-label">Data portability</div>
<div class="row-sub">Export your missions and payment history in machine-readable format (JSON/CSV).</div>
</div>
</div>
<div class="row">
<div class="row-icon purple">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#af52de" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/></svg>
</div>
<div class="row-content">
<div class="row-label">Objection and restriction</div>
<div class="row-sub">Object to processing based on legitimate interest. Restrict processing during a dispute.</div>
</div>
</div>
<p>Send requests to <a href="mailto:privacy@quixzoom.com">privacy@quixzoom.com</a>. We respond within 30 days. You have the right to lodge a complaint with your national supervisory authority.</p>
</div>
<div class="card">
<div class="card-title">Data storage and security</div>
<ul>
<li>All data stored in the EU (AWS eu-north-1, Stockholm).</li>
<li>Encryption at rest (AES-256) and in transit (TLS 1.3).</li>
<li>Account data deleted within 90 days of account closure.</li>
<li>Payment and tax data retained for 7 years (accounting law).</li>
<li>Images linked to completed missions retained for 5 years.</li>
</ul>
</div>
<div class="card">
<div class="card-title">Third-party providers</div>
<p>We share data with a minimal number of trusted partners, all operating under GDPR-compliant data processing agreements:</p>
<ul>
<li><strong>AWS</strong> — cloud infrastructure (EU region)</li>
<li><strong>Stripe</strong> — Zoomer payouts via Stripe Connect</li>
<li><strong>Tax authorities</strong> — statutory reporting</li>
</ul>
<p>We never sell, rent or trade your data with advertisers.</p>
</div>
<div class="card">
<div class="card-title">Contact</div>
<div class="row">
<div class="row-icon blue">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
</div>
<div class="row-content">
<div class="row-label">Data protection enquiries</div>
<div class="row-sub"><a href="mailto:privacy@quixzoom.com">privacy@quixzoom.com</a></div>
</div>
</div>
<div class="row">
<div class="row-icon green">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#34c759" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<div class="row-content">
<div class="row-label">Support</div>
<div class="row-sub"><a href="/support">quixzoom.com/support</a></div>
</div>
</div>
</div>
<footer>
<p>© 2026 Landvex AB · <a href="terms/index.html">Terms of Service</a> · <a href="privacy/index.html">Privacy Policy</a></p>
<p>quiXzoom is a trademark of Landvex AB</p>
</footer>
</body>
</html>