Privacy Policy
ExpenseFlow (“ExpenseFlow,” “we,” “us”) is a personal finance tracker that helps you log expenses, track budgets, and get AI-powered coaching. This policy explains what we collect, how we use it, and the choices you have. It applies to the ExpenseFlow mobile app (Android and iOS) and the companion web app at expenseflow-mobile-app-web.web.app.
Short version: your expenses are stored primarily on your device and (if you sign in) synced to your private Supabase account. Free plan users may see Google AdMob ads, Premium users get an ad-free experience, and Google Gemini is used for AI features. We do not sell your personal data or share your financial entries with ad networks.
1. Information we collect
1.1 Information you provide
- Account details: email address and (optionally) name when you sign up via email, Google, or Apple Sign-In.
- Financial data you enter: expense amounts, descriptions, categories, merchant names, monthly income, savings goals, sinking funds, budgets, and scratch-pad notes.
- Due-date reminders: reminders you create for upcoming payments (credit-card bill, EMI, rent, insurance, and similar), including a label, optional amount, the due date or monthly due-day, and your notification timing. When you are signed in, these reminders are synced to your account so they survive reinstalling the app and follow you across devices; the reminder notifications themselves are scheduled locally on your device.
- Business tracking data (optional): if you use the Business Tracker, the business income and expense entries, party names, office trip names, and advance amounts you record. This data is stored in your account like your personal expenses, is never mixed into your personal tracking, and is deleted with your account.
- AI auto-categorization: when you ask the app to auto-categorize an entry (personal, business, or office), the item description and amount are sent to Google Gemini to suggest a category. Any category corrections you make are remembered on your device and account to improve future suggestions; these learned keyword rules are not shared with other users.
- Imported transactions: if you import a Google Pay CSV or PDF statement, we parse it on your device by default to create expense entries. If a statement can’t be read on your device, we ask your permission first before sending its text to Google Gemini to extract the transactions — if you decline, nothing leaves your device. The statement file itself is not uploaded to our servers.
- Screenshots you import: if you use Import from Screenshot (Premium), the screenshot you pick — or share to ExpenseFlow — is sent to Google Gemini to read the transactions out of it. We ask your permission before each import, and if you decline nothing is sent. The image is used only to extract that list: it is never stored on our servers, never used to train any model, and the copy on your device is deleted as soon as it has been read. Nothing is added to your expenses until you review the entries and tap save.
- Coach conversations: messages you send to the AI financial coach, which are forwarded to Google Gemini to generate a reply.
1.2 Information collected automatically
- Device identifiers: in ad-enabled versions, Google AdMob may collect or receive identifiers such as the Android Advertising ID, app set ID, and other device or account identifiers for advertising, measurement, analytics, fraud prevention, security, and compliance. On iOS, IDFA access only occurs where allowed by the system App Tracking Transparency setting.
- App interactions and diagnostics: crash logs, SDK diagnostics, app launch data, taps, ad views, rewarded-ad completion, and similar interaction data used to keep the app stable, measure ad performance, and prevent invalid activity.
- Approximate location: Google services, including UMP and AdMob, may use IP address to estimate a general region for consent, fraud prevention, and ad delivery. We do not collect precise GPS location for ads.
1.3 Permissions we request on your device
- Microphone & speech recognition — only when you tap the voice-entry button. Audio is handled by your device’s own speech service (Google or Apple); depending on the device, that service may process audio on its own servers under its provider’s terms — it is never sent to ExpenseFlow’s servers or to Gemini, and ExpenseFlow never records or stores your voice.
- Notifications — to deliver the reminders you create (due-date reminders, daily logging nudges) on the schedule you choose. Notifications are scheduled locally on your device.
- Photos — only when you scan a receipt or import a screenshot. You choose each image, either by picking it in the app or by sharing it to ExpenseFlow from another app. ExpenseFlow does not browse, scan, or index your photo library.
- Biometric / Face ID — to unlock the app locally. Biometric data never leaves your device.
- Internet — to sync with Supabase and call the AI coach.
1.4 We never read your SMS or email
Many expense apps ask for permission to read your text messages or email inbox to log transactions automatically. ExpenseFlow deliberately does not do this and never will. Your bank alerts, OTPs, personal messages, and email stay entirely on your device — the app does not request SMS or email permissions at all. Nor does ExpenseFlow read notifications from your other apps. Faster logging is offered only through means you explicitly hand us, one item at a time: typing a quick line, speaking a voice note, scanning a receipt you choose to photograph, or importing a statement file or a payment screenshot you pick yourself (or share to ExpenseFlow). Nothing is read in the background, and nothing is added to your expenses until you review it and tap save.
2. How we use your information
- To operate core features: storing expenses, computing your Safe-to-Spend, tracking budgets, detecting recurring subscriptions, and reminding you of upcoming due dates.
- To provide AI features: classifying transactions and generating coaching replies via Google Gemini.
- To authenticate you and keep your account secure.
- To manage subscriptions and premium entitlement state.
- To respond to your support requests.
- To monitor aggregate performance and fix bugs — we do not use your financial data for analytics or marketing.
3. Where your data is stored
- On-device first: expenses, categories, funds, reminders, and settings are stored locally in an encrypted Hive database so the app works offline.
- Cloud sync via Supabase: when you are signed in, your data — expenses, categories, funds, budgets, due-date reminders, and settings — is mirrored to a Supabase Postgres database (hosted in the region configured for the project) so it survives reinstalling the app and syncs across your devices. Supabase enforces row-level security so only you can read your rows.
- AI providers: transaction descriptions, coach messages, receipt images you scan, and screenshots you import are sent to Google Gemini at request time. We do not retain a copy beyond what is needed to return a response.
4. Third-party services we use
- Supabase — authentication and database hosting. See Supabase Privacy Policy.
- Resend — email delivery. We share your email address with Resend to send account emails (address verification and password reset) and, if someone adds you to a shared group, the group-invitation email. If you invite a person to your group, we share that invitee’s email address with Resend solely to deliver the invitation. Members of a shared group also receive group-activity emails (for example when a group expense is edited or a settlement is recorded) and scheduled balance-reminder emails containing that group’s statement and each member’s balance; the group admin controls the reminder schedule (including off) and every such email carries an unsubscribe option. Resend processes this only to send email on our behalf. See Resend Privacy Policy.
- Google Gemini (Generative AI API) — AI classification, coaching, receipt scanning, and reading statements or screenshots you choose to import. See Gemini API terms.
- ExchangeRate-API (open.er-api.com) — live currency exchange rates. Only a 3-letter currency code (e.g. “USD”) is sent to convert foreign-currency group expenses to ₹; no personal or financial data is sent. See ExchangeRate-API.
- RevenueCat — subscription entitlement management.
- Google Play Billing / Apple In-App Purchase — subscription purchase processing handled by the relevant app store. For users in India, all prices are inclusive of applicable taxes (GST); the store checkout and receipt show the final price charged.
- Google AdMob — advertising for Free plan users, ad measurement, and fraud prevention. See Google advertising privacy information.
- Google User Messaging Platform (UMP) — consent and privacy-choice management for ads where required, including the EEA, UK, and Switzerland.
- Google Sign-In / Sign in with Apple — optional OAuth login.
- Firebase (Hosting & Crashlytics) — hosts the web companion app and this privacy page, and collects crash diagnostics to keep the app stable.
5. Advertising & consent
ExpenseFlow may show ads to Free plan users through Google AdMob. Premium subscribers receive an ad-free experience. AdMob and related Google SDKs may collect or receive the Android Advertising ID, app set ID, IP address, device and account identifiers, app interactions, ad interactions, diagnostics, and approximate location inferred from IP address. These data types are used to serve ads, limit repeated ads, measure ad performance, detect invalid activity, prevent fraud, and comply with legal obligations.
We do not send your expense amounts, income, savings goals, transaction descriptions, budget details, coach messages, or imported statement files to AdMob for advertising.
In the EEA, UK, and Switzerland, Google UMP may show a consent form before personalized ads are requested. If you decline consent, the app can request non-personalized ads where available. You can revisit ad privacy choices from Settings → Privacy options when that option is shown. You can also reset or delete the Android Advertising ID in Android settings. On iOS 14.5+, IDFA-backed advertising is controlled by the system App Tracking Transparency prompt and iOS tracking settings.
6. Your choices & rights
- Access / export: use Settings → Export data to download everything we have (JSON backup is free; CSV export is available to Premium).
- Delete: use Settings → Delete account to permanently remove your account and all associated data from Supabase. Locally cached data is cleared at the same time.
- Correct: edit any expense, category, or profile field directly in the app.
- Withdraw ad consent: open Settings → Privacy options to revisit the UMP consent form where available, or use your device advertising and tracking settings.
- EU/UK users: you also have the rights to object, restrict processing, portability, and to lodge a complaint with your local data-protection authority.
- UAE users: if you are in the United Arab Emirates, the UAE Personal Data Protection Law (Federal Decree-Law No. 45 of 2021) gives you rights to access your personal data and information about how it is processed, to correct or delete it, to receive a copy in a portable format, to restrict or object to certain processing (including for direct marketing), and to request review of decisions made solely by automated processing. Use the in-app tools above or contact us (section 12); you may also complain to the UAE Data Office.
7. Data retention
We retain your data for as long as your account is active. When you delete your account, financial data and the account record are removed within 30 days. Backups are overwritten on a rolling 30-day cycle. Aggregated, non-identifying logs may be retained longer for security and debugging.
8. Children
ExpenseFlow is not directed to children under 13 (or the minimum age in your jurisdiction). We do not knowingly collect data from children. If you believe a child has used the app, contact us and we will delete the data.
9. Security
On-device settings are stored in an AES-encrypted Hive box. Traffic between the app and our backend is sent over HTTPS. Supabase enforces row-level security so one user cannot read another user’s rows. No system is perfectly secure; if you discover a vulnerability, please report it to the contact address below.
10. International transfers
Some of our processors (Gemini, Firebase, Supabase, RevenueCat, and Resend) operate globally and may process your data outside your country of residence, including in the United States. Where required, we rely on the standard contractual clauses published by the European Commission and, for UAE users, on these same contractual safeguards with our processors, consistent with the UAE Personal Data Protection Law’s cross-border provisions.
11. Changes to this policy
We may update this policy from time to time. Material changes will be announced in-app before they take effect. The “Last updated” date at the top reflects the most recent revision.
12. Contact
For privacy questions or to exercise your rights, email Quantumcreations.in@gmail.com.
Data controller: QuantumCreations (Jaya Pankaj Jambhulkar)
Postal address: FL-C/801, Pristine Prolife 170, Nr. Sayaji Hotel,
Maharashtra 411057, India