The non-legal version of our privacy policy. Plain-English explanation of what data we collect, where it sits, how it's protected, and how to get it out.
The app has no analytics SDK, no ad SDK, no third-party tracker. The marketing site doesn't run any either — verifiable from the open-source repo.
We don't sell, rent, or transfer your data to any third party. There is no business model in which this changes — the app stays free.
All Firebase traffic is TLS 1.3. Cloud Firestore encrypts data at rest in Google Cloud. Your phone's local cache uses platform-native encryption.
Receipt images stay on-device — the ML model runs locally and only the extracted text fields ever leave your phone. Read why →
Settings → Account → Delete. Removes your auth record, all transactions, all wallets you own, and Storage receipt images within 24 hours.
Settings → Export. CSV of every transaction across every wallet. Coming Q3 2026: .xlsx and per-wallet exports.
That's it. There is no other database, no analytics warehouse, no marketing tool. Source: firestore.rules in the app repository.
Firestore enforces a single source of truth: only authenticated members of a wallet can read or write its transactions. Here's the actual rule that gates it (excerpt):
match /wallets/{walletId} {
allow read, update, delete: if request.auth != null
&& request.auth.uid in resource.data.memberIds;
match /transactions/{txId} {
allow read, write: if request.auth != null
&& request.auth.uid in get(
/databases/$(database)/documents/wallets/$(walletId)
).data.memberIds;
}
}
Even if a bug in our app code tried to read someone else's wallet, Firestore would reject the request server-side.
Email hello@pocketfi.app with details and reproduction steps. We aim to acknowledge within 48h, patch within 14d, and credit you in the changelog.
hello@pocketfi.appEvery Firestore rule, every line of Dart, every Cloud Function — auditable on GitHub. Open an issue with anything that looks off.