Spencheck

Privacy Policy for Spencheck

Effective date: September 10, 2026

Spencheck is built to work entirely on your device. This page explains exactly what data the app touches, where it's stored, and what — if anything — ever leaves your phone.

What stays on your device

Everything you enter — expenses, categories, budgets, credit cards, lending records, wallets, income, savings goals, tags, subscriptions, loans, and investments — is stored locally and protected by AES-256 SQLCipher encryption. None of it is sent anywhere unless you explicitly turn on Cloud backup.

Android only: by default, the app blocks screenshots, screen recording, and hides its content from the recent-apps preview, since your balances and card details are sensitive. You can turn this off from Account > Security & backup if you want to take a screenshot or record your screen yourself.

SMS auto-detection (Android only): the app reads bank/UPI debit-alert messages on-device to suggest expenses. The message text itself is never stored or uploaded — only the amount, merchant name, and date the app extracts from it, and only after you accept or the app auto-logs a repeat merchant. You can grant or revoke SMS permission at any time from your phone's system settings.

Receipt scanning uses Google ML Kit's on-device text recognition — a photo you take is processed on your phone and never uploaded anywhere.

Importing a bank statement (CSV or PDF, Account > Import bank statement) is parsed entirely on your phone — the file itself is never uploaded anywhere, only the transactions you choose to import from it get saved to your expense history.

Android only: to show which UPI apps you have installed for the "Pay via UPI" picker, the app checks your device's installed apps for known UPI-capable ones. This check never leaves your phone.

The chat assistant answers common commands (adding an expense, checking your budget, lending status, and more) instantly on-device — nothing is sent anywhere for these. If you optionally add your own Gemini or ChatGPT API key in Account > Cloud AI provider, open-ended questions you type are sent to that provider's servers to generate a reply, under their own privacy policy, not ours. With no key set, chat never sends anything off your phone.

If you pick a contact to log who you lent money to, the app reads only that one contact's name via your phone's native contact picker — it never requests broad access to your contacts and never scans or lists your full contact book. You can type a phone number in yourself if you want to save one. This data is used strictly on-device and is never uploaded, shared, or stored on our servers.

A PIN or biometric app-lock, and any saved sign-in credentials for fingerprint unlock, are stored securely in your device's hardware keystore.

Third parties we share data with

Spencheck does not sell or share your data with advertisers, data brokers, or analytics networks. Data only ever reaches these third parties, and only for the purpose stated: • Google Firebase (Authentication, Firestore, Cloud Messaging) — used for sign-in, optional Cloud backup, wallet sharing, and push notifications, all described below. Governed by Google's Privacy Policy. • Google Gemini or OpenAI ChatGPT — only if you add your own API key in Account > Cloud AI provider, and only the open-ended chat message you type at that moment. Governed by that provider's own privacy policy, not ours. • Formspree — only if you use Account > Help & feedback to send us a message. The message text, and your email address if you choose to include one, is sent to Formspree so we can read (and optionally reply to) it. Governed by Formspree's own privacy policy, not ours.

What Cloud backup sends (only if you turn it on)

Cloud backup is off by default. If you sign in and turn it on, a copy of your categories, expenses, lending records, budgets, credit cards, wallets, savings goals, subscriptions, loans, investments, income, recurring expenses, tags, chat history, and auto-categorisation keywords is stored in Google Firebase (Firestore), tied to your account. SMS scan history (which messages have already been reviewed) always stays device-only, even with backup on.

Signing in uses Firebase Authentication (email/password or Google Sign-In). We only receive what Firebase/Google provide for sign-in — your email address and, for Google Sign-In, your name and profile photo if you choose that method.

You can turn Cloud backup off, or delete your account entirely, from Account → Cloud backup / Delete account at any time.

Push notifications

If you sign in, this device's Firebase Cloud Messaging token is stored under your account in Firestore so a push notification (e.g. a wallet shared with you updating) can be delivered to this device. Signing out clears this token. This is separate from the reminder notifications Spencheck schedules entirely on-device (budget/payday/card-due alerts) — those never involve Firebase at all.

Wallet sharing

Off by default, and separate from Cloud backup above. If you mark a wallet as shared and add another person's email, that wallet's settings and its activity — each expense/transfer's amount, note, date, and who logged it — are stored in a shared Firestore location visible to any account signed in with an email you added, not just your own account. Full expense detail (category, tags, receipt) stays private on your own device; only the amount, note text, date, and your email are shared. Remove an email from the share list (or turn sharing off) to revoke that person's access.

What we don't do

No ads, no ad-tracking SDKs, no selling or sharing your data with third parties, and no reading of your bank account directly — Spencheck never connects to your bank; SMS detection only reads the text of messages already on your phone.

Data retention and deletion

Local data (everything described above) stays on your device for as long as the app is installed. You can delete individual entries at any time from within the app, and uninstalling the app permanently deletes all locally stored data.

If you signed in and used Cloud backup, that copy is retained in Firestore until you delete it yourself. Turning Cloud backup off (without deleting your account) stops future syncs but does not retroactively delete the existing Firestore copy — use Delete account, below, for that.

To request deletion of your Spencheck account and all associated data, either:

In the app (fastest — deletes immediately):
1. Open the Spencheck app and sign in.
2. Go to the Account tab (bottom navigation).
3. Scroll down and tap "Delete account".
4. Confirm the deletion when prompted.

From the web, without the app installed — email mgokulnarayana@gmail.com from your registered email address with the subject "Account Deletion Request." We'll verify the request and delete your account within 30 days.

Either method permanently removes, in order: your Firestore backup data, your Firebase Authentication account, and every local table on the device you had the app installed on. This cannot be undone. See the dedicated Delete Your Account page for the same steps.

Changes to this policy

We may update this Privacy Policy from time to time. Changes will be posted on this page and reflected in the "Effective date" above.

Contact us

Questions, suggestions, or privacy-related inquiries about this policy or your data — contact the developer:

Developer: Gokul Narayana Maddala

Address: Nellore, Andhra Pradesh, India

Email: mgokulnarayana@gmail.com