Privacy Policy
Last updated 8 October 2026
Kharcha is a personal expense tracker made by Shubham Jangid, an individual developer in India ("I", "me"). This policy explains what information the app uses, why, where it goes, and what you can do about it. It describes how the app actually works today; if that changes, this policy changes first.
Contact for anything in this policy (including complaints): Shubham Jangid, help@shubhamjangid.in
The short version
- Kharcha works fully without an account. Without one, your records stay on your phone and are not sent to me or anyone else.
- Bank SMS are read on your phone only. The text of a message is never uploaded, sold or shared.
- Backup is optional. If you create an account, a copy of your records is stored in Google Firebase, in India, so you can restore it on a new phone.
- No ads, no analytics, no tracking SDKs in the app, and no selling of data. The website counts visits anonymously, without cookies.
- You can delete everything, on the phone and in the cloud, from inside the app.
What is used, and why
| Information | Where it is kept | Why | When |
|---|---|---|---|
| Expenses you add or confirm: amount, date, category, payment method, card, merchant, note, event, and an edit history | Your phone; and your backup if you sign in | To show you your spending | Always (backup only if you sign in) |
| Categories, events, cards (a name and the last 4 digits, typed by you or read from a bank SMS), bill-cycle day | Your phone; and your backup if you sign in | To organise expenses and show card bills | Always (backup only if you sign in) |
| Friends records: a name you type, amounts lent, borrowed or gifted, repayments, notes | Your phone; and your backup if you sign in | Your own record of money with people you know | Only if you use Friends |
| Bank SMS: the text of each bank alert Kharcha uses, its sender and the details read from it | Your phone only | To create expenses, and to re-read alerts when the app improves | Only if you allow SMS access |
| Your email address and password | Google Firebase Authentication (the password is held only by Google, not by me) | To sign you in to your backup | Only if you create an account |
| Settings (reminder time, switches) | Your phone | To remember your choices | Always |
| Your email address, if you join the launch waitlist on this website, and whether you asked for the beta | Cloudflare D1, a database in my Cloudflare account | To email you when Kharcha launches, and to invite you to the beta if you asked | Only if you submit the waitlist form |
Kharcha does not access your contacts, location, camera, microphone, photos, call log, or advertising ID.
Bank SMS
Before Android asks for SMS permission, Kharcha shows this screen (and shows it again if you switch SMS on later in Settings):
> Find expenses in your bank SMS. Kharcha can read the SMS messages on this > phone to find bank, card and UPI transaction alerts and turn them into expenses > for you to review. > > - It's optional. Kharcha works fully without it — you add expenses yourself. > - Messages are read only on this phone. Kharcha never uploads, sells or shares your SMS. > - Messages from people (phone numbers) are skipped; only bank alerts are used. > - The text of each bank alert stays on this phone, so it can be re-read if Kharcha improves. > - If you turn on backup, only what Kharcha creates is backed up: the expense > (amount, date, merchant, category) and the card it was paid with (bank and last 4 digits). > - You can turn this off any time in More → Settings.
Only "Allow SMS access" leads to Android's permission request. Skipping it carries on without SMS. In detail:
- Messages are read and interpreted on the phone, by code inside the app. No server, network service or AI service is involved.
- Messages from ordinary phone numbers are skipped before the app's own code sees them. Other business messages are checked for transaction details and discarded if they are not bank alerts.
- Which messages are read. When you switch SMS on you choose how far back to look: the last 30 days, the last 7 days, or "only from today", which reads the last 24 hours so that a payment made earlier the same day isn't missed. After that, Kharcha reads new messages each time you open the app. There is no background service and nothing listens for incoming messages.
- "Missed an expense?" re-reads bank messages from the last 30 days, while you have that screen open and only if SMS is switched on, to list ones that did not become an expense. Nothing from it is stored unless you add a message as an expense.
- The text of each bank alert Kharcha uses (one-time passwords in it are masked) is kept in the app's private storage on the phone, together with its sender, amount, merchant, card digits and date. It is excluded from Android's cloud backup and from phone-to-phone transfer.
- "Share sample" opens Android's share sheet with the text of one message, so you can send it to me to help support that bank's format. Kharcha hides what it can first — masked account and card numbers, UPI IDs, balances and long reference numbers — but please read it before sending, as names or other details may remain. It happens only when you tap it; you choose the app and the recipient, and that app usually lets you edit the text.
- Adding detected expenses automatically is off by default. Detected expenses wait in Review until you add or ignore them.
Backup and sign-in (optional)
If you create an account, the records listed above (not SMS text) are copied to Google Cloud Firestore and kept in sync. They are stored in Google's Delhi, India region (asia-south2). Each account can read and write only its own records, and all traffic is encrypted in transit (TLS).
Sign-in is handled by Google Firebase Authentication, which processes your email address, and may do so outside India. Google also sends the account emails you ask for (email confirmation, password reset).
The launch waitlist
The form on kharcha.shubhamjangid.in stores two things: the email address you type, and whether you ticked “Invite me to the Android beta”. Nothing else is kept — no name, no device details, and no IP address (your IP is used only, in memory, to stop one address flooding the form).
- What it's used for: one email when Kharcha is available on Google Play and, if you asked, an invitation to the closed beta. If you ask for the beta, your address is added to the Google Play tester list for Kharcha, because Google needs it to let you install the test version.
- Where it's kept: Cloudflare D1, a database in my own Cloudflare account, in its Asia-Pacific region. It is not shared, sold, or added to any marketing list.
- How long: until a few weeks after the public launch email is sent, and in any case no longer than six months after Kharcha is publicly available on Google Play. Then the list is deleted.
- Leaving: email help@shubhamjangid.in, or reply to any message from the list, and your address is deleted.
Visits to this website
kharcha.shubhamjangid.in counts its visitors so I can tell whether anyone is reading it. It does this without cookies, without JavaScript and without any analytics company. The app itself counts nothing.
- What is recorded for a page view: the page, the time, the site you came from (just its name, such as linkedin.com) or the campaign tags on the link you followed (utm_source, utm_medium, utm_campaign), the country Cloudflare reports for the connection, and whether the device is a phone, tablet or computer. On the homepage, which sections came onto your screen.
- Telling visits apart: each visit carries an id made by scrambling your IP address and browser name together with a random value that changes every day. The random value is deleted when the day ends, so an id cannot be turned back into an IP address, or matched with your visits on other days, by me or anyone else. Your IP address itself is never stored.
- Not recorded: your IP address, cookies, your name or email, or anything about you on other websites. If your browser sends Do Not Track or Global Privacy Control, nothing is recorded at all.
- Where and how long: Cloudflare D1 in my own Cloudflare account, for 13 months, then deleted. It is never shared or sold.
Optional encryption of the backup
In Settings you can set an encryption password. Kharcha then encrypts these fields on your phone before they are uploaded: merchant names, notes (on expenses, their edit history, loans and repayments) and friends' names. Without the password, those fields cannot be read by me, by Google, or by anyone who obtained the backup.
- Everything else in the backup stays readable to the storage provider: amounts, dates, categories, payment methods, card names and last 4 digits, event names, loan amounts and your email address. This is not end-to-end encryption of the whole backup.
- The password itself is never uploaded or stored. The key derived from it is kept in Android's secure (Keystore-protected) storage on your phone, so you don't have to re-enter it. A random salt and a check value derived from the key are stored with your account, so you can open the backup on a new phone with the same password. Neither reveals the password.
- Nobody can reset or recover the password. If you forget it, your records on the phone are unaffected, but the encrypted fields in the backup cannot be restored on another phone.
- The method is AES-256 with a key derived from your password. Its strength depends on your password: someone holding the backup could try guesses offline, so use a long phrase. The minimum is 8 characters.
Service providers
| Provider | What it does | What it receives |
|---|---|---|
| Google Firebase (Authentication, Cloud Firestore) | Sign-in and backup | Your email, and the backed-up records — only if you create an account |
| Expo (EAS Update) | Delivers app updates | Each time the app starts it checks for an update, which sends your IP address, device platform and app version, and may include an install identifier. No personal or financial records. |
| Cloudflare | Hosts this website, and stores the launch waitlist and the anonymous visit counts (D1) | Visitors' IP addresses and standard request logs; waitlist email addresses; the visit records described in "Visits to this website" |
These providers process data on my behalf under their own terms. Kharcha has no advertising, analytics or crash-reporting providers (the website's visit count is my own, described above), and does not sell, rent or share personal data with anyone for their own purposes.
Notifications
If you turn on the daily reminder, it is scheduled on the phone at the time you choose and needs no server. You can change or turn it off in Settings.
Permissions
| Permission | Why |
|---|---|
| Read SMS (optional) | To find bank, card and UPI alerts and create expenses, on the phone |
| Notifications (optional) | The one daily reminder |
| Run at startup | To keep the reminder scheduled after a restart |
| Vibrate | Feedback on that reminder |
Android also lists a few standard permissions that apps and their libraries declare automatically — such as internet access, network state, short background work, and a badge on the app icon. None of them gives access to your personal information. Kharcha asks you for no other permissions.
How long data is kept
- On your phone: until you delete it, erase the app's data, or uninstall.
- In the backup: until you delete it (Settings → Erase your data) or delete your account. Deleted records are removed from the live database immediately. Google may keep residual copies in its own backup systems for a limited period under its own policies. I keep no copies of my own.
- If Indian law requires a particular record to be kept for a minimum period, it is kept only for that period and purpose.
Your choices and rights
Under India's Digital Personal Data Protection Act, 2023 you have the right to:
- Access a summary of your personal data and who processes it — most of it is visible in the app; for the rest, email me.
- Correct or update it — edit any record in the app, or email me.
- Erase it — in the app: More → Settings → Erase your data, which can erase only this phone, only the cloud backup, or delete everything and close the account.
- Withdraw consent as easily as you gave it — switch off SMS or backup in Settings, revoke the SMS permission in Android, or delete your account. Withdrawing does not affect what was done before.
- Nominate someone to exercise these rights for you in case of death or incapacity — email me.
- Raise a grievance — see below.
Deleting your account without the app: email help@shubhamjangid.in from the address you signed up with. The account and all its cloud records are deleted within 30 days and you will get a reply when it is done. Anything on a phone you still have stays there until you uninstall the app or clear its data.
Grievances
Contact (grievance officer): Shubham Jangid, help@shubhamjangid.in. I acknowledge grievances within 24 hours and resolve them within 15 days. If you are not satisfied with the outcome, you may complain to the Data Protection Board of India.
Children
Kharcha is meant for people aged 18 and over. Please do not use it if you are under 18. If I learn that an account belongs to someone under 18, it will be deleted.
Security
Cloud records are protected by per-account access rules and encrypted in transit. On the phone, data is held in the app's private storage, which other apps cannot read on a non-rooted device, and is excluded from Android backup and device transfer. Optional field encryption is described above. No system is perfectly secure; if there is a breach affecting your data, I will tell you and the authorities as the law requires. Please report security issues to help@shubhamjangid.in rather than publicly.
Other people's information
If you record a friend in Friends, you are entering another person's name. Please record only what you need — a first name or nickname is enough — and only people you have a real reason to keep a note about. Kharcha never contacts them.
Language
This policy is in English. On request, I will provide it in Hindi or another language listed in the Eighth Schedule to the Constitution of India.
Changes
If this policy changes in a way that matters, the new version will be published here and announced through an app update before it applies to you. The date at the top shows the current version.