codes.

Privacy Policy

Last updated: May 2026

codes. is an offline-first app. We don't collect, store, or share personal information on our servers. This page describes what data the app handles, where it lives, and the limited cases where data leaves your device.

Short version: The app works entirely on your phone. There are no user accounts. We never see your codes, vouchers, customer names, or business data. Optional cloud sync between paired phones uses end-to-end encryption — the relay server can't read what passes through it.

1. What data the app stores

All data is stored locally on your device in the app's private storage:

None of this is transmitted to us. We have no servers that store your business data.

2. What data leaves your device

2a. Team transfers (file-share mode)

When you send codes to a teammate using the file-share workflow (WhatsApp, AirDrop, email, etc.), the app generates an encrypted .pcm file containing the codes and metadata. You choose which app delivers the file. The contents are encrypted with a shared key that only the paired phones know — even if intercepted, the file can't be read without the key.

2b. Cloud sync (Pro Online tier — opt-in)

If you purchase Pro Online and enable cloud sync, paired phones exchange encrypted packages via a relay server (currently hosted on Cloudflare Workers).

2c. In-app purchases (Pro upgrades)

Purchases are processed by Apple App Store or Google Play. We use RevenueCat to validate receipts and track entitlements across devices. RevenueCat receives an anonymous device identifier and the purchase receipt — no personal info from you.

See RevenueCat's privacy policy for their handling.

2d. Crash reports (if enabled)

Crash reporting is off by default. You can turn it on in Settings → "Send crash reports". When enabled, the app sends an anonymized report to our own relay server (not a third party) only when an error occurs.

Each report contains: the error message and technical stack trace, the app version, your platform (iOS/Android), which screen was open, a random anonymous identifier (not linked to your identity), and a timestamp. Before sending, the app redacts code-like strings (e.g. promo codes, voucher IDs) and email addresses from the error text.

Crash reports never contain your codes, vouchers, customer or partner names, or any identifying personal information. Reports are rate-limited (at most a handful per session). You can disable crash reporting anytime in Settings; no further reports are sent once it's off.

3. What we never collect

4. Permissions the app requests

5. Children

This app is intended for use by businesses and adults distributing promotional content. It is not directed at children under 13 and we do not knowingly collect data from children.

6. Data retention & deletion

Because we don't store your data on our servers, there's nothing to "delete" on our side. To remove all data from your device:

If you've used cloud sync, undelivered relay messages addressed to your phone will expire automatically.

7. Security

Team-mode communication (both file-share and cloud sync) uses AES-GCM with 256-bit keys. The shared team key is generated on the Owner's phone and transferred to Distributors via QR code during pairing — it never travels through any server.

Random initialization vectors are generated per-message. Replay protection is enforced via package-ID deduplication.

8. Third parties

9. Changes to this policy

If we change how the app handles data, we will update this policy and post the new "Last updated" date. Material changes will be announced in-app.

10. Contact

Questions about this privacy policy: support@evdiag.net