Privacy & Security

On-device.
Always.

QR & Barcode Scanner was built with a simple principle: your camera feed, your scan history, and your generated codes belong to you. We enforce this in the architecture, not just the policy.

The core promise

What happens on your phone stays on your phone.

Every frame your camera captures, every code decoded, every QR generated — all processed locally on the device using expo-barcode-scanner and react-native-qrcode-svg. Zero network calls for core scanning and generation features.

History is stored in AsyncStorage — the device's local key-value store. There is no account, no login, no server that receives your scan data by default.

  • Camera frames never uploaded or transmitted
  • All decoding done on-device, in real time
  • History stored in local AsyncStorage only
  • QR generation fully offline — no server needed
  • No account, no login required for any free feature
  • No advertising SDKs integrated
  • No usage analytics or tracking SDKs
Data flow diagram
Camera frames
→ Stays on device · Never uploaded
Decoded payload
→ Saved to AsyncStorage · On-device only
Dynamic QR scan
→ Hits server for redirect · IP hashed <24h
Payment (Razorpay)
→ Card details handled by Razorpay · we never see them
Permissions

What we ask for, and why.

QR & Barcode Scanner requests the minimum permissions required. Every permission is explained at the time it's requested, not buried in a consent screen on first launch.

Permission When asked Why it's needed Required?
Camera First time you tap the Scan tab Live camera feed for real-time barcode scanning. Frames never leave the device. Required for scanning
Photos / Gallery When you tap the gallery icon in the scanner, or "Save to Photos" Read: scan codes in existing images. Write: export generated QR codes as PNGs to your camera roll. Optional
Location Only if you enable "Tag scans with location" in Settings Optionally geo-tag scans with the location where they were captured. Off by default and never asked proactively. Optional · Off by default
Contacts When you tap "Add to contacts" on a vCard scan result Pre-fill the system Contacts sheet with the decoded vCard fields. QR & Barcode Scanner does not read your existing contacts. Optional · On-demand
Our commitments

What we never do.

Every line below is a constraint on the product. Some are policy choices; others are baked into the architecture so they're not changeable at our convenience.

What we never do
Upload camera frames or scan payloads to any external service
Integrate any advertising, tracking, or usage-analytics SDKs
Sell or share user data with third parties
Read your existing Contacts, Photos, or Location without asking each time
Show ads of any kind, ever
Your controls

You're in full control.

Clear history

Settings → Privacy → Clear history. Wipes all scan and creation records from the device. Irreversible.

Settings → Privacy → Clear history

Export your data

Export full history and folders as CSV or JSON. Your data, portable, in an open format. No lock-in.

History → ··· → Export

Clear all data

One tap wipes local history, folders, dynamic codes, and settings. Cannot be undone.

Settings → Clear all data

Delete account

Have an account? Remove it and any server-side subscription record by emailing privacy@scancraft.app.

Settings → Logout, or email privacy@scancraft.app

GDPR / CCPA requests

Request a full data export or deletion under GDPR or CCPA. Response within 30 days.

privacy@scancraft.app