1. Introduction
This Privacy Policy explains how FinLedger ("the Application", "we", "us", or "our"), created and maintained by Devanshu Patil, handles information when you install and use the FinLedger Android application.
FinLedger is engineered with an uncompromising privacy-first design philosophy. Unlike typical fintech services, FinLedger does not require you to create an online account, does not upload your ledger to proprietary servers, and processes all financial computations locally on your Android device.
2. Data Stored Locally
All financial records and settings you create or import into FinLedger reside exclusively in your device's sandboxed internal storage. Specifically:
- Data is managed using the Android Room persistence library and SQLite.
- The database file is encrypted at rest using SQLCipher (256-bit AES-CBC).
- Master cryptographic keys are generated and protected by the hardware-backed Android KeyStore (TEE / StrongBox).
- Your data is inaccessible to other standard applications installed on the same device.
3. Transaction Data
Transaction records (including income, expenses, account transfers, amounts, dates, categories, notes, and tags) are entered manually by you or approved from local automated sources.
All transaction processing, balance adjustments, and double-entry postings are executed strictly in memory on your device using FinLedger's domain engine. Transaction data is never transmitted to any third party or remote server.
4. Account Information & Credentials
FinLedger allows you to create virtual ledger representations of Cash, Bank Accounts, UPI handles, Credit Cards, and Investment holdings.
Crucial distinction: FinLedger never requests, stores, or handles your actual online banking credentials, netbanking passwords, debit/credit card CVVs, PINs, or UPI MPINs. Accounts inside FinLedger are sovereign ledger references maintained by you.
5. SMS-Related Processing
FinLedger includes an optional financial SMS detection and batch inbox scanner feature designed to simplify expense entry for debit and credit alerts from supported banks and payment providers.
- On-Device Only: SMS inspection is performed 100% on-device using local regular expressions (`Regex`). Raw SMS text is parsed in volatile memory and never transmitted over the internet.
- Financial Filtering: The parser strictly ignores non-financial personal text messages, OTPs, and private correspondence.
- Mandatory User Confirmation Gate: Discovered transactions are placed into a local staging queue ("Unresolved Queue"). No transaction enters your financial ledger without your explicit review and manual approval.
- Optional Permission: SMS permissions (`RECEIVE_SMS`, `READ_SMS`) are completely optional. You can deny SMS permissions and use FinLedger entirely through manual transaction entry and CSV statement import.
6. Attachments & Receipt Photos
When you attach invoice photos or receipt images to a transaction:
- Files are copied into FinLedger's sandboxed private application storage (`context.filesDir`).
- Files are not exposed to public shared galleries or accessible by other apps without your explicit intent.
- The system calculates a SHA-256 cryptographic hash of file bytes to verify file integrity and detect storage corruption.
- When a transaction is deleted, associated attachment files are permanently removed from disk.
7. Contacts & People Data
For the Lending & Borrowing debt tracker and Split & Group Expenses modules, FinLedger allows you to associate names with debts or shared group expenses.
These contact names and settlement notes exist exclusively within your local database. FinLedger does not harvest your device contact address book or upload contact information to any external server.
8. Local Backups (.finbak)
FinLedger provides a manual backup utility allowing you to export your database and preferences to a `.finbak` archive using the Android Storage Access Framework (SAF).
Local backup archives can be password-protected and encrypted. You maintain total custody over where these backup files are stored (e.g., local SD card, USB storage, or personal cloud storage).
9. Google Drive Cloud Sync
FinLedger provides an optional cloud sync integration using the Google Drive REST API v3.
- Restricted Scope: FinLedger requests access solely to the restricted `drive.appdata` hidden folder (`https://www.googleapis.com/auth/drive.appdata`). FinLedger cannot view, edit, or delete any of your personal files, photos, or documents in your main Google Drive.
- Client-Side Encryption: Backup payloads are serialized and encrypted on your Android device prior to being transmitted over HTTPS directly to Google's servers.
- Zero Middleman: Transmission occurs directly between your Android device and your personal Google account. No FinLedger intermediary server exists.
- Completely Optional: Cloud sync is disabled by default and requires explicit user sign-in.
10. Third-Party Services & SDKs
FinLedger maintains a strict policy against surveillance and advertising libraries:
- No Analytics SDKs: We do not include Google Analytics, Firebase Analytics, Mixpanel, or Flurry.
- No Advertising Networks: The app contains zero ad networks (AdMob, Unity Ads, etc.).
- No Crash Telemetry: Production release builds strip all debugging logs via ProGuard rules.
11. Data Transmission Policy
Under normal offline operation, FinLedger generates zero network traffic.
Network sockets are opened solely when you explicitly initiate an action that requires network connectivity, specifically:
- Authenticating with Google OAuth for optional Drive backup.
- Uploading or downloading encrypted backup snapshots to/from your hidden `drive.appdata` folder.
- Checking for app updates via official Google Play In-App Updates library.
12. Data Retention Policy
Because your data is stored locally on your device, FinLedger retains your data indefinitely until you choose to delete individual records, reset the application, or uninstall the app.
13. Data Deletion & Factory Reset
You retain absolute sovereignty over your financial data. You may delete your data at any time through:
- In-App Reset: Navigating to Settings → Security & Data → "Reset Application", which immediately purges the SQLCipher database, DataStore preferences, and KeyStore cryptographic keys.
- Android System Settings: Clearing app data or cache via Android Settings → Apps → FinLedger → Clear Storage.
- Uninstalling: Removing FinLedger from your device permanently deletes all local application storage.
14. Security Measures
FinLedger implements defensive security controls:
- Biometric Unlock: Supports Android BiometricPrompt (Fingerprint / 3D Face Unlock) with strong biometric class authentication.
- Cryptographic PIN Fallback: 4-digit PIN verified using Salted PBKDF2 with 50,000 hashing iterations and a 16-byte random salt, verified in constant time to resist timing attacks.
- Auto-Lock: Automatically re-engages security lock when the application is backgrounded or device screen turns off.
- ProGuard R8 Stripping: All verbose debug logs and sensitive execution traces are stripped from release binaries.
15. Children's Privacy
FinLedger is a general-audience personal finance tool and does not knowingly collect or solicit personal data from children under the age of 13. Because all data remains locally on the device, no personal child data is ever collected or processed remotely.
16. Changes to this Privacy Policy
We may update this Privacy Policy from time to time to reflect new application features, architectural improvements, or regulatory requirements. Any modifications will be reflected with an updated "Effective Date" at the top of this document and published within the official application repository.
17. Contact Information
If you have questions, feedback, or security concerns regarding this Privacy Policy or FinLedger's data practices, please contact the developer:
Lead Architect & Developer: Devanshu Patil
Email: devanshupatil50@gmail.com
Google Play Store: FinLedger on Google Play
GitHub Repository: github.com/patildevanshu/All-in-One-Finance-Manager
Developer Profile: github.com/patildevanshu