Who we are
Rupis (“Rupis”, “we”, “us”) is developed and published by Karthikeyan Karuppaiah, an independent developer based in India. For the purposes of India’s Digital Personal Data Protection Act, 2023, we decide how the limited personal data described below is processed. You can reach us at support@rupis.app.
This policy covers the Rupis apps for Android and iOS and this website. It does not cover the apps and services Rupis works with — such as your UPI app, your bank, Google Play, the App Store or Google’s advertising and Firebase services — which have their own privacy policies.
What stays on your device
Everything Rupis records for you is processed and stored on your device, and never sent to us:
- Transactions, amounts, payees and UPI IDs, payment notes and statuses
- Labels, rules, budgets, reports and label history
- Attachments, scanned documents, photos, voice notes and Vault files
- Bank SMS and UPI-app notifications that Rupis reads to import payments (where available), which are parsed on the device
- Contacts you pick a payee from, QR codes you scan, and images you share into the app
- Your app-lock PIN (stored as a protected hash) and your settings
We cannot see your financial data. Rupis has no server that receives your ledger, and Android’s automatic cloud backup is switched off for Rupis so the ledger is not copied to Google’s backup service either.
When Rupis goes online
Rupis uses the network only for the purposes below. None of them includes your transactions, amounts, payees, notes, messages or contacts.
1. Purchases and PRO access
When you buy, restore or use Rupis PRO, the app works with Google Play Billing or the App Store to confirm the purchase. To check purchases, keep PRO on one active device and track credit-pack balances, Rupis also contacts the Rupis billing service, which runs on Google Firebase in Mumbai (asia-south1). The app sends it the store purchase token or receipt, the product ID, and a random installation ID that Rupis creates. The service stores:
- a one-way hash of the purchase token (never the raw token)
- the installation ID that currently holds PRO
- purchased and remaining credit counts
- short request records that stop a purchase from being counted twice
We do not receive your name, email address or payment card details. The store handles payment.
2. App integrity
To protect purchases from tampering, Rupis uses Firebase App Check with Google Play Integrity on Android and Apple App Attest or DeviceCheck on iOS. These services confirm that requests come from a genuine copy of Rupis on a genuine device and issue short-lived tokens. They receive app and device integrity signals, not your financial data.
3. Ads on the free tier
The free version shows ads from Google AdMob. Like other ad services, AdMob may collect your device’s advertising ID, device and app information, your IP address (from which it can estimate an approximate location) and how you interact with ads. Ads may be personalised according to your device’s ad settings, where you can also reset or opt out of the advertising ID. Learn more in how Google uses information from apps that use its services. Rupis PRO removes ads.
4. Diagnostics
To find and fix bugs, Rupis can send crash reports (Firebase Crashlytics) and basic feature-usage events (Google Analytics for Firebase). Diagnostics are on by default. You can untick them during setup, or switch them off at any time in Settings → Anonymous diagnostics. Nothing is sent before you finish setup. When it is on, these services receive:
- crash details such as the error, stack trace, app version, device model and OS version
- names of app screens and actions from a fixed list, plus a random app-instance ID, language and approximate country
Diagnostics are not linked to your name, email or phone number, and they never include your transactions, amounts, payees, notes or messages. When diagnostics are switched off, nothing is sent.
5. Reference catalogs and on-device models
Rupis downloads signed reference lists (such as UPI app and bank information) and the on-device language model it uses to read bank SMS. These come from Rupis’ public files hosted on GitHub. They are download-only: Rupis uploads nothing, though the host sees ordinary request information such as your IP address. Catalogs are refreshed only when you ask, at most once a day.
6. Platform services
- QR and document scanning (Android): Google Play services may download its scanning models to your device. Your camera images and QR contents are not sent to us.
- About us: opening Settings → About us loads this website (hosted on Google Firebase Hosting) inside the app. The host sees ordinary request information such as your IP address; nothing from your ledger is sent.
- Updates and ratings: Rupis uses Google Play’s update and in-app review features, and the App Store equivalents, which are handled by the store.
7. Things you choose to share
Some actions send data only because you start them: exporting a backup, PDF or spreadsheet, sharing a payment request, opening a payment in your UPI app, or emailing us feedback or a crash report. You see what is shared and where it goes before it leaves the app.
Permissions
Rupis asks for a permission only when you use the feature that needs it. If you say no, that feature is unavailable; the rest of the app keeps working.
| Permission | Why Rupis asks |
|---|---|
| Camera | Scan UPI QR codes and documents to attach to a transaction. |
| Photos and files | Read a QR code from an image and attach photos or files. |
| Microphone | Record voice notes on a transaction. |
| Contacts | Choose a contact to pay. Contacts are read on the device and never uploaded. PRO |
| Notifications | Reminders, spending trends and progress updates generated on the device. |
| SMS | Import payments from your bank’s messages. Off by default, and only in editions that offer it. Android PRO |
| Notification access | Import payments from your UPI apps’ notifications. Off by default, and only in editions that offer it. Android PRO |
| Biometrics | Unlock the app with your fingerprint or face, after you set a PIN. |
| Internet | The services described in When Rupis goes online. |
Payments
Rupis does not move money. When you pay, Rupis hands the payment to the UPI app you choose, and that app, your bank and the UPI network process it under their own terms and privacy policies. Rupis never asks for, receives or stores your UPI PIN, bank password or card details. It records only the outcome your UPI app reports back to it, on your device.
Backups
Backups are a single .rupisbak file, encrypted with AES-256-GCM using a key derived from a password you choose. Rupis saves the file only where you choose; scheduled auto-backups (PRO) go to a folder you pick. If that folder is synced to a cloud service, that service stores the encrypted file under its own terms. We never receive your backups or your password, so a forgotten backup password cannot be recovered.
Retention & deletion
- Data on your device stays there until you delete it. Clearing the app’s storage or uninstalling Rupis removes it permanently. Backup files you exported are not removed automatically; delete them yourself if you no longer need them.
- Diagnostics are kept by Firebase for a limited period: crash reports for 90 days and event-level usage analytics for 2 months.
- Billing records are kept while your purchase is active and for as long afterwards as is reasonably needed to prevent fraud, handle refunds and meet legal or accounting obligations.
To ask us to delete billing records, email us with your store order ID (for example, the GPA. number in your Google Play receipt) so we can find them. Diagnostics are not linked to your identity, so we usually can’t locate an individual’s records; switching diagnostics off stops further collection.
Your choices & rights
- Turn diagnostics off at any time in Settings → Anonymous diagnostics.
- Remove ads by upgrading to PRO, and manage ad personalisation in your device settings.
- Grant or revoke any permission in your device settings.
- Export your data, or erase it by clearing app storage or uninstalling.
Depending on where you live, including under India’s Digital Personal Data Protection Act, 2023, you may have the right to ask for information about, correction of or erasure of personal data we hold, to withdraw consent, to nominate someone to act for you, and to raise a grievance. Because Rupis keeps your financial data on your device, most of it is under your direct control. For anything we hold, contact us as described below.
Children
Rupis is a personal finance app intended for adults. It is not directed at anyone under 18, and we do not knowingly process children’s personal data. If you believe a child has used a service that sent us data, contact us and we will delete it.
Security
Your ledger is protected by your device’s security and, if you enable it, Rupis app lock with a PIN and biometrics. Backups are encrypted, signed downloads are verified before use, and the Rupis billing service accepts only verified requests and cannot be read by the app or by other users. No method of storage or transmission is perfectly secure, so keep your device updated and your backup password safe.
Where data is processed
The Rupis billing service runs in India (Mumbai). Google, Apple and GitHub may process the limited data they receive on servers in other countries, under their own safeguards and policies.
Changes to this policy
If Rupis changes how it handles data, we will update this page and the date at the top. For significant changes, we will also let you know in the app before they take effect.
Contact & grievances
For privacy questions, data requests or complaints, contact the grievance officer:
Karthikeyan Karuppaiah, Rupis
support@rupis.app
We will acknowledge your message within 7 days and aim to resolve it within 30 days. If you are not satisfied with our response, you may approach the Data Protection Board of India.