Your information, explained
Privacy policy
1. Who we are
Soldi is a personal-finance and shared-expense management app operated by Naman Jain, based in Karnataka, India.
This policy explains how we handle information when you use the Soldi Android app and its supporting account, synchronization and invitation services. For privacy questions or requests, contact namankhrj@gmail.com.
2. Information we handle
Account and profile
We handle your phone number, account identifiers, display name, time zone and sign-in/session information. If you provide a contact email address, we store it. Our authentication provider processes information needed to manage sign-in.
Financial records and preferences
- Transaction amounts, dates, merchants or payees and payment methods.
- Bank names, masked account/card suffixes, account labels and transaction references where available.
- Descriptions, notes, categories, budgets and recurring-spending information.
- Group names, participants, allocations, balances, settlements and activity history.
- Capture, notification, spending-inclusion and other app preferences.
Some information is stored only on your device. Structured transactions, personal expenses, categories, account preferences and shared records are sent to our backend for the relevant synchronization features. Transaction backups can include the bank name, last four account digits, merchant, amount, date, notes and payment method.
Soldi does not ask for bank-login passwords, card security codes or payment authorization PINs. It records expenses and settlements; it does not execute bank transfers or UPI payments.
People you add or select
Soldi uses names and phone numbers you add manually or select from contacts. On Android it uses the system contact picker, not broad address-book permission. Participant names and phone numbers may be sent to our backend to manage shared records and link participants with their accounts. Only provide information you are entitled to share.
For "on Soldi" discovery, we send hashes of normalized numbers for people added to Soldi to check for matching accounts. The lookup service does not retain the submitted list as a contact directory; it records usage to limit abuse. Phone-number hashes are not anonymous information.
Technical information and support
We handle app/platform and operating-system versions, build information, push tokens, capture-permission states, capture outcomes, processing times, error information and diagnostic identifiers. Servers and providers may process IP addresses and request metadata to deliver and protect the service.
Feedback includes its topic and message. App version, device model and platform may be attached if you choose to include app information. Support emails contain what you provide. Do not send passwords, OTPs, full card details or unrelated private messages.
3. SMS and notification access
Incoming financial SMS
If you grant SMS permission, Android delivers incoming messages to Soldi's receiver. Soldi examines them on-device to identify supported financial transactions. We do not use this permission to read the historical inbox, send SMS or act as the default messaging app.
The expense parser is designed to ignore OTPs, personal conversations, promotions and unsupported transactions. Automated recognition can make mistakes; review and correct captured entries when needed.
Payment notifications
Android grants broad notification-listener access when you enable Notification access. Soldi's normal flow filters notifications to supported payment apps before parsing their content on-device to identify transactions and avoid duplicates.
Original messages versus extracted data
Soldi does not persist or upload original, unredacted SMS or notification bodies as part of capture. Extracted financial details are stored and may sync. Redacted message-format samples may also be stored and uploaded for diagnostics, as explained below. Local parsing does not mean all derived information stays on-device.
SMS and Notification access are optional. You can decline or revoke them in Android settings and use manual entry. Revocation stops future access through that permission; it does not erase existing records.
4. Capture diagnostics and redacted samples
Soldi sends account-linked diagnostics to understand capture reliability, investigate missed or duplicate transactions and improve format support. These diagnostics are not anonymous.
Events include capture, parsing, storage and prompt outcomes; permission/pause states; parser identifiers; confidence bands; processing times; and app/operating-system information.
Eligible financial-looking messages may produce a redacted sample even when not saved as an expense. Messages with recognized security terms such as OTP, password, PIN or CVV are excluded. Digits become synthetic zeros; words outside a fixed financial-format vocabulary become placeholders. Samples are limited to 512 characters and up to 10 per device per day.
Redaction aims to remove identifying values while retaining formatting. It is not a guarantee of anonymity.
Diagnostics and eligible samples are automatically enabled for signed-in use, without a separate in-app opt-out. Disabling a capture source stops new capture through it, not queued or uploaded diagnostics. Permission and capture-health events may still be generated.
Review pending: verify prominent in-app disclosure and required consent for this behavior. A privacy policy does not substitute for disclosure or consent.
5. How we use information
- Create accounts and support sign-in.
- Capture, categorize, display and synchronize financial records.
- Calculate summaries, budgets, balances and allocations.
- Manage groups, invitations, participant linking and discovery.
- Deliver prompts and shared-activity updates.
- Diagnose failures, improve reliability and respond to support.
- Protect accounts, prevent abuse and meet legal obligations.
We do not sell personal information or use it for targeted advertising. The launch version has no ads.
7. Service providers and other disclosures
- Google Cloud: backend hosting/infrastructure. The backend server is in Mumbai, India.
- Supabase: authentication and account/session information.
- Firebase Cloud Messaging: push tokens and notification delivery/content.
- Firebase Crashlytics: crash diagnostics and app/device information. Reports are associated with an account identifier when signed in.
- Production login SMS provider: not selected yet; phone-number and authentication-message processing must be documented before launch.
See the Google Privacy Policy, Firebase privacy information and Supabase Privacy Policy.
We may disclose information where legally required, in response to valid legal process or as necessary to protect users, investigate abuse or protect legal rights.
Review pending: verify database/storage and support-email providers and add any missing processors.
8. Storage locations and security
Local information stays in app device storage; synchronized information is processed by our backend and providers. The backend server is in Mumbai. Authentication, push, crash reporting, support and other processing may occur abroad. We do not promise all data stays in India.
We use HTTPS and authenticated, access-controlled backend services. No storage or transmission is completely secure. Synchronization is not end-to-end encrypted: the backend processes structured records to provide the service. Protect your device/account and avoid sensitive details in notes or support messages.
Review pending: confirm Supabase/database regions and international-processing requirements.
9. How long we retain information
Account and financial information is retained while needed to provide requested features, subject to deletion below. Individual expense deletion may be a soft deletion for synchronization/history, not immediate erasure of every record.
- Redacted server samples: removed after 7 days by scheduled cleanup.
- Server diagnostic events: deleted after 30 days by scheduled cleanup.
- Pending local diagnostics: pruned after 7 days during queue maintenance; acknowledged uploads are removed from the queue.
Cleanup is not instantaneous at the exact retention boundary.
- Maximum database/infrastructure backup retention and expiry after deletion.
- Server, access and security logs.
- Feedback and support correspondence.
- Authentication, messaging and crash-provider records.
- Shared ledger history, detached account references and exceptional deletion requests.
10. Account deletion and your choices
Contact namankhrj@gmail.com, subject "Soldi privacy request", for access, correction, deletion or complaints. We may reasonably verify identity. Do not send an OTP or password.
In the app, open Settings > Privacy and data > Delete account, review the consequences and type DELETE. See our draft external deletion instructions for requesting without reinstalling.
- Private synchronized financial records, preferences, registered push tokens and account-linked backend diagnostics are removed.
- Direct profile identifiers are removed/replaced with a deleted marker; detached references may remain for history.
- Groups without other active registered participants are deleted.
- Other participants retain shared expenses, balances and history. Your entry becomes a guest without the account link or participant phone number. The display name and identifying details in shared entries may remain. This is not complete anonymization.
- Feedback is detached, not automatically erased; its text may identify you.
- Authentication-provider and other provider-held information must also be addressed in the deletion process.
Uninstalling, logging out, clearing only local data or stopping capture does not delete cloud records. Account deletion does not remove copies held by others. Specific legal obligations or legitimate disputes may require limited retention; we will explain applicable limits in our response.
Depending on law, you may have additional access, correction, erasure, consent-withdrawal or complaint rights. Contact us to exercise them or discuss retained shared records.
11. Adults-only launch
Soldi's initial launch is for people aged 18 and over. We do not intend to provide accounts to children under 18. Contact us if you believe a child has provided personal information so we can investigate and act appropriately.
12. Android permissions and controls
Manage SMS, Notification access and permission to display notifications in Android settings. Soldi also provides capture pause and source/account preferences. Discovery has no separate opt-out.
Disabling displayed notifications may stop prompts but does not necessarily disable SMS or listener access. Manage the source permission separately to stop access.
13. Changes to this policy
We may update this policy as features, providers or legal requirements change. We will update its effective/last-updated date and provide additional notice or obtain consent where required.
14. Contact
Naman Jain
Operator of Soldi
Karnataka, India
namankhrj@gmail.com