In breve
Sollus is local-first. You can use all of it without an account, and your financial records stay on your device. If you choose to sign in and turn on Cloud Sync — it is free, and off until you turn it on — a copy of your records is stored on our servers in London so your devices can share it. Synced data is encrypted in transit and at rest, but not end-to-end. Receipt photographs are never kept, and automatic import of payment notifications works on your device only. There is no advertising and no analytics SDK in the app, and nothing in your ledger is sold or shared. You can export everything, and delete your data and your account, at any time.
Disponibile solo in inglese
Questo documento è giuridicamente vincolante ed è pubblicato in inglese affinché il suo significato sia univoco. L'interfaccia è tradotta, ma questo testo no. Se hai bisogno di aiuto per comprenderne una parte, scrivi a support@kelesh.dev e te la spiegheremo nella tua lingua.
A plain-language summary. The sections below are the full policy and take precedence if the two ever read differently.
Sollus (the "app") is developed and published by Ivan Kelesh, an independent developer. The Android app is distributed on Google Play and the iOS app on the App Store, both under the identifier com.ivankelesh.moneytracker, and the web version is available at https://sollus-app.kelesh.dev. This policy also covers this website, https://sollus.kelesh.dev.
For the purposes of the EU and UK General Data Protection Regulation, we are the data controller for your Sollus account, for the records you choose to synchronise with Cloud Sync, for any message you send us, and for the limited website analytics described in section 11. Records you keep only on your device are not processed by us at all.
We process account and synchronised data to provide the service you asked for — signing you in and keeping your devices in step — which is the performance of our agreement with you. We do not use it for advertising, profiling or anything else.
You can contact us about privacy at any time at support@kelesh.dev.
Sollus is local-first. You install it and record income, expenses, accounts, categories and planned transactions without creating an account, without signing in, and without a network connection. Every feature works this way.
Your financial records are held in the application's own storage on the device — the app sandbox on Android, and browser storage in the web version. Unless you turn on Cloud Sync, we do not receive them and cannot recover them for you.
Local data is only as durable as the device it lives on. Uninstalling the app, clearing app or browser storage, or losing the device removes it. Browsers in particular may clear site storage on their own when space is short or a site is unused. Cloud Sync, or an exported backup, is how a copy outlives the device.
A Sollus account is optional. You need one only to use Cloud Sync. You can sign in with Apple, with Google, or with an email address and a password.
Signing in with Google does not give Sollus your Google password, your contacts or anything else in your Google account. Google confirms who you are and shares only the basic profile every Google sign-in includes: your name, email address, a link to your profile picture and an account identifier. Our authentication provider stores that profile with your account; the app itself uses only the email address and the identifier, and none of it is added to your financial records.
Signing in with Apple does not give Sollus your Apple ID password or anything else in your Apple account. Apple confirms who you are and shares an account identifier and an email address. If you choose Hide My Email, that address is a private relay address Apple creates for Sollus, and any email we send to it is forwarded by Apple to your real address. In the iPhone app, Sollus asks Apple only for your email address. In the web version and the Android app, the sign-in also asks Apple for your name, which Apple shows you before you continue; if it is shared, our authentication provider may store it with your account, and the app does not use it. You can stop using Sign in with Apple with Sollus at any time in your Apple ID settings.
Signing in is handled for us by Supabase, our authentication and database provider. Depending on how you sign in, it holds a Sollus account identifier, your email address, which sign-in method you used, and technical session information: authentication tokens, sign-in times, and — in its security logs — the IP address and browser or device type used to sign in.
If you use an email address and password, your password is sent directly to the authentication service over an encrypted connection, which stores only a one-way hash of it. Sollus itself never stores your password. Emails confirming your address or resetting your password are sent by the same service.
Signing out, or turning sync off, never deletes anything: your records stay on the device, and what was synced stays in your account until you delete it.
Cloud Sync is free and off until you turn it on. It requires a Sollus account, and from the moment you enable it the app keeps a copy of the records below on our servers, so every device you sign in to shows the same data.
| Data | Examples | Synced when Cloud Sync is on? |
|---|---|---|
| Transactions | Amount, currency, date, category, account, any note you wrote, planned and recurring details, transfers between accounts, and the exchange rate recorded for a cryptocurrency amount | Yes |
| Accounts | Account name, type, currency, opening balance and credit limit | Yes |
| Categories | Category and subcategory names, icons and colours | Yes |
| Scanned receipts | Details read from the receipt’s QR code — shop or till identifier, receipt number, date, currency, amounts and line items, plus the code’s own address. See section 7. | Yes |
| Receipt photographs | The camera image or picture a receipt was read from | No — no image is stored or sent, ever |
| Debts you track | Obligation details, interest-rate history and payment allocations | Yes |
| Saved calculator scenarios | The figures you entered into a calculator and chose to keep | Yes |
| Calculator input you did not save | Anything typed into a loan, mortgage or card calculator | No — the calculation engine makes no network request at all |
| Payment notifications (automatic import) | Captured notification text and the recognised details waiting for your review. See section 8. | No — never synced |
| App settings | Theme, language, display currency and other preferences | No — these stay on each device |
Each synced record also carries the technical metadata synchronisation needs: identifiers, the time it was created and last changed, and whether it was deleted. That is how a device decides which version of a record is newest, and how a deletion on one device reaches the others.
Synced data is not end-to-end encrypted. It travels over HTTPS, is encrypted at rest by our hosting provider, and is stored behind access rules that let each record be read only by the account that owns it. But it is not encrypted in a way that makes it unreadable to us or to our infrastructure providers. We do not look at your records; we say this plainly because the opposite claim is common and, here, would be untrue.
Turning Cloud Sync off stops further synchronisation on that device. It does not erase what is already stored — to remove that, delete your account as described in section 14.
Financial records are sensitive, and we treat the contents of your ledger as the most consequential data Sollus handles. Everything in it is information you typed or imported yourself, or — if you switch on automatic import — that Sollus read from payment notifications on your own device (section 8). Sollus has no connection to any bank, card or payment provider: it never signs in anywhere on your behalf, and it reads nothing but what your phone already shows you.
Without Cloud Sync, that information is processed in exactly one place: your device. With Cloud Sync, it is also stored on our servers, as section 5 sets out — including the free-text notes attached to a transaction, which are often the most revealing part of a ledger. It is used only to keep your devices in step, never for advertising, credit scoring or profiling, and it is never sold.
The Financial Tools calculators deserve a specific mention, because people type real salaries and real property prices into them. Every loan, mortgage and credit-card calculation runs entirely on your device — the calculation engine makes no network request of any kind. Only a scenario you explicitly save is synchronised, and only if Cloud Sync is on.
Sollus can read the QR code printed on a shop receipt so you do not have to type the purchase in by hand. Using it is optional, and the camera is requested only at the moment you open the scanner — never when the app starts.
No photograph of your receipt is kept. The camera image is examined on your device to find the QR code and is then discarded: it is not saved to your device, not uploaded, and not stored on our infrastructure. There is nowhere in your Sollus account for a receipt image to go.
What Sollus keeps is the information the code itself contains. Depending on the receipt that can include the shop or till identifier, a tax registration number, the receipt number, the date and time of purchase, the currency, and the total, tax and tip amounts — together with the web address the code pointed to, so you can open the original later, and a short, length-limited copy of the code’s raw contents where it is not an address.
That information is financial data about a purchase, and it is treated exactly like the rest of your ledger: it stays on your device, and it is synchronised only if you turn on Cloud Sync, as section 5 sets out.
For almost every receipt Sollus understands, reading it contacts nobody: the shop, the date, the total and the rest are decoded from the code’s own text on your device, and nothing is sent anywhere. If you choose to open the original receipt page, that opens in your browser and is your action, not the app’s. Moldova is the exception, because its codes carry no such text — see below.
A Moldovan receipt’s QR code contains only an identifier — no shop, no date, no amount. To fill the purchase in for you, your device therefore asks the Moldovan fiscal service (Serviciul Fiscal de Stat, mev.sfs.md) for that receipt’s own page, exactly as your browser would if you opened the printed link yourself.
What leaves your device on that request is the receipt identifier, plus the IP address any internet request necessarily carries. Nothing else: no account, no device identifier, no photograph, and none of your other receipts or transactions. It goes to the fiscal service, not to us — on this path no data reaches a Sollus server at all. The request happens only when you scan such a receipt, only for that country, and the session cookie the site sets is discarded after each lookup.
If you would rather not use the camera, you can pick an existing picture instead. Sollus asks your device’s own file picker for a single image, so it receives only the one file you chose and never gains access to your photo library. That picture is read in the same way and is not stored or transmitted either.
Automatic import is optional and off until you switch it on — in the app’s first-run setup or in Settings → Automatic import. Before anything is read, Sollus shows what it will read, why, where it is kept and how to turn it off, and only your explicit agreement switches it on. It is available in the Android app.
You then grant Sollus notification access in Android’s system settings. Android gives an app with that access every notification on the device. Sollus looks only for payments, from any bank, wallet or payment app: it never reads chats, email, SMS messages or calls, it skips any app you exclude and its own notifications, and a notification that is not a payment is discarded on the device at once and never saved. It never keeps one-time codes and it does not use accessibility services. While automatic import is off, Sollus’ notification reader is switched off and receives nothing.
What is processed is the title and text of payment notifications: typically an amount, a currency, a merchant, the last four digits of a card and the name of the app that showed it. Longer card numbers are masked before anything is stored. All of it is processed on your device. Nothing is sent to us or to anyone else, it is never synced — even with Cloud Sync on — and it is not included in the backup file Sollus exports.
By default nothing is added to your records on its own: a recognised payment appears in “Suggested transactions” and as a Sollus notification with Add and Reject, and becomes a transaction only when you add it. If you choose automatic adding, recognised purchases are added for you the next time Sollus runs; payments that are unclear, possibly repeated, on hold, refunds or transfers still wait for you, and every automatically added transaction can be undone. A transaction added either way is an ordinary record and is treated like the rest of your ledger — including being synchronised if Cloud Sync is on.
Sollus’ own notification about a recognised payment shows the merchant and the amount. On the lock screen it only says that there is something to review, unless you allow details in Sollus, and its buttons work only once the phone is unlocked.
The captured text is deleted as soon as you add or reject the payment, and in any case within 7 days of being captured. The recognised details stay in the list for up to 30 days while they wait for you, and an entry you handled, or that expired, is removed 30 days after that. You can delete all of it at any time in Settings → Automatic import; transactions you already added are not affected.
Sollus produces a financial-health score, plain-language summaries, spending observations and forecasts. These are calculated on your device from data already present there. They are not generated by an external AI service, and your spending history is not sent anywhere to produce them — Cloud Sync stores your records, it does not analyse them.
We use a small number of providers, each for a specific function. We do not sell your data, and we do not share it for advertising.
| Provider | What it does for Sollus |
|---|---|
| Supabase | Sign-in, the database behind Cloud Sync (hosted in London, United Kingdom), generation of account confirmation and password-reset emails, and the server function that deletes an account. Used only if you create an account. |
| Resend | Delivery of account confirmation and password-reset emails sent by Supabase. Resend processes the recipient email address, the email content and delivery information for this purpose; it does not receive your synced financial records. |
| Google Play distribution of the Android app, Google Play’s own check for a newer version of the app on Android (see below), and Sign in with Google if you choose it | |
| Apple | App Store distribution of the iOS app, the App Store’s record of which version of the app is live, asked on iPhone and iPad (see below), and Sign in with Apple if you choose it |
| Vercel | Hosting for this website and the web version of the app |
| Google Analytics | Statistics about visits to this website, subject to your choice — see below. Never used in the app or the web version of the app. |
| Frankfurter (api.frankfurter.dev) | Public exchange-rate lookups, so totals can be shown in your display currency |
| CoinGecko | Public cryptocurrency prices and the list of available crypto assets, requested only if you open the crypto list, convert a crypto amount, or hold a crypto balance |
| Federal Reserve Bank of New York | The published SOFR reference index, when a Financial Tools calculation uses it |
| Serviciul Fiscal de Stat (mev.sfs.md) | The Moldovan fiscal service’s own receipt page, requested by your device only when you scan a Moldovan receipt — see section 7 |
Supabase processes your account and synchronised data on our behalf and under our instructions, and Resend processes account emails on the same terms; neither uses them for its own purposes. Apple and Google are involved in signing in only if you choose their button, and then only to confirm who you are.
The app checks for a newer version in two places. First, it checks our own website for a published version number, so it can tell you when an update is available and flag a critical one as necessary. That check downloads a small public file at most once every twelve hours. It sends nothing about you: no identifier, no query string, and not even the version you have installed — the comparison happens on your device after the file arrives.
Second, on a phone it asks the store you installed the app from what that store currently offers. On iPhone and iPad the app asks Apple’s public App Store lookup which version of Sollus is live, at most once every twelve hours — twice if the store for your region has no listing and the default store is asked instead. That request carries the app’s public App Store identifier and the two-letter country from your device’s region setting, and nothing about you or your installation, not even the version you have; the reply’s “What’s new” text and listing link may be shown to you in the update dialog. On Android the check is made by Google Play itself, on your device: the app asks Google Play services whether it has an update to offer, and if you accept one, Google Play downloads and installs it. That is an exchange between the Google Play app and Google under Google’s own terms; nothing in it comes from us or reaches us. The web version checks only our website. In every case the answer stays on your device — the app remembers only what it was told and when it last asked.
The exchange-rate, cryptocurrency and reference-index lookups are requests for public numbers. They carry no account, no identifier and no transaction data — structurally the same as loading a public web page — though, as with any internet request, the service necessarily sees the technical metadata it needs to reply, such as your IP address.
Of those three, the cryptocurrency lookup is the only one whose content depends on what you do: to price an asset the app has to name it, so the request says which cryptocurrencies are being priced — for example "bitcoin" — and which currency to price them in. It says nothing about how much you hold. The request made for a wallet with a fraction of a coin is identical to the one made for a wallet with hundreds, and no balance, account or transaction is part of it. If you never open the cryptocurrency list and never hold a crypto balance, the app does not contact this provider at all.
This website uses Vercel Web Analytics and Vercel Speed Insights. Both are cookie-free: they set no cookie, use no cross-site identifier and do not follow you to other sites. Web Analytics records the page viewed, the referring site and coarse technical facts such as country, browser and device type; Speed Insights records page-loading performance. Neither runs inside the Sollus app, and neither can see anything in your ledger.
This website also uses Google Analytics, in the way the law where you are allows. In the United States, Canada (outside Quebec), Australia, New Zealand and Switzerland, it is on unless you switch it off, and we rely on our legitimate interest in knowing which pages are useful. Everywhere else it stays switched off — not even loaded — until you choose Allow in the banner shown on your first visit, and the legal basis is that consent. To tell the two apart, our host tells the website which country your connection comes from; we keep only the answer to whether we must ask first, never the country.
Wherever you are, you can change your choice at any time from Cookie settings at the bottom of every page; switching Google Analytics off stops it at once and deletes its cookies. If your browser sends a Global Privacy Control signal, we treat it as switching Google Analytics off, unless you allow it on this website yourself.
When it is on, Google Analytics records the pages you view, how you arrived (for example from a search engine or a link), coarse technical facts such as country, browser and device type, and which of our links to Google Play, the App Store or the web version you select — so we can tell which pages actually help people get Sollus. To recognise a returning visitor it sets two cookies, _ga and one beginning _ga_, which expire after 13 months and are readable only by this website. Google signals and ad personalisation are switched off, and no advertising cookie is set. Google Analytics never runs inside the Sollus app or its web version, and cannot see anything in your ledger.
The Sollus app contains no advertising SDKs, no analytics SDKs, no attribution SDKs and no crash-reporting SDKs. Your spending is not profiled, and there is nothing in the app that reports your behaviour back to us or to a third party.
We describe this as the current state of the app rather than as a permanent promise. If that ever changes, this policy will be updated before the change ships, and the change will be described here.
The website sets no advertising cookies, embeds no social widgets and loads no remote fonts. It uses the two cookie-free analytics products named in section 11 and Google Analytics, subject to the choices described there.
It stores a small number of functional values in your browser: a cookie remembering your language choice, so you are not re-asked on every visit; local-storage entries for your light or dark theme preference and for your analytics choice; and a session cookie holding only whether you must be asked before analytics runs. If you allowed analytics, we ask again after twelve months; a refusal stands until you change it. Clearing your browser data removes all of them.
You can delete individual records at any time inside the app, and reset it completely from the Data screen. Records kept only on the device are then gone for good.
If you have an account, you can delete it yourself in the app: open Cloud Sync, choose Delete account and confirm. You may be asked to sign in again first. You can do the same in the web version at https://sollus-app.kelesh.dev, without installing anything, or ask us by email. Our account deletion page, https://sollus.kelesh.dev/delete-account, sets out each route and what happens to each kind of data.
Deleting your account permanently erases your Sollus account, your sign-in identities and every record synchronised to it — everything listed in section 5. It takes effect immediately and cannot be undone.
If you signed in with Apple, deleting your account in the iPhone or Android app also asks Apple to revoke Sollus’s access to your Sign in with Apple, so Sollus no longer appears among the apps using your Apple ID. You may be asked to confirm with Apple first. In the web version this happens only if you signed in with Apple during that visit; otherwise you can remove Sollus yourself under Sign in with Apple in your Apple ID settings.
Deleting your account does not remove the records stored on your devices — deleting the cloud copy is a decision about the cloud, not about the phone in your hand. To remove local records as well, reset the app or clear its data on each device.
Data you keep only on your device is retained until you remove it — by deleting records, resetting the app, clearing browser or app storage, or uninstalling.
Data synchronised to your account is retained for as long as the account exists, so that your devices can continue to share it. When you delete a record on a synced device, its contents — the amount, note, names, receipt details and everything else it held — are erased from our servers when that device next syncs. What remains is a deletion marker carrying only the record’s random identifier and the times it was created, last changed and deleted, which your other devices need in order to remove their own copies. The marker holds none of your financial information, and it is erased with your account.
Our hosting provider keeps rolling backups of the database for disaster recovery. They are overwritten on a fixed schedule, so data you delete can persist in a backup for a limited period afterwards; backups are not used for any other purpose.
The authentication service keeps security logs of sign-in activity for a limited period, to detect and prevent abuse. A message you send us directly is kept for as long as we need it to answer you and to keep a record of the exchange. Automatic import keeps its working data on your device only, for the periods set out in section 8.
Google Analytics deletes the visit-level data it holds about this website after at most 14 months; only aggregated statistics, which do not identify anyone, are kept longer. Its cookies expire after 13 months, or as soon as you switch it off.
Your records live in the operating system's own protected storage for the app — the app sandbox on Android, and browser storage in the web version. On Android, the system's automatic cloud backup is deliberately switched off, so your ledger is not copied to Google's servers behind your back. Every network request the app makes is over HTTPS.
For Cloud Sync, access to synchronised data requires you to be signed in, and the database applies row-level access rules so that every record is reachable only by the account that owns it. Data is encrypted in transit and at rest. Deleting an account asks you to have signed in recently.
No service can promise perfect security, and we do not. We do not claim certifications we do not hold, and we do not describe data as encrypted in ways it is not — see the note in section 5.
Depending on where you live, you may have rights over the personal data we hold about you — typically to access it, to correct it, to have it deleted, to receive a copy in a portable form, to object to or restrict certain processing, and to withdraw consent where processing relies on it.
The most important ones you can exercise yourself, immediately: Sollus exports your complete data as JSON or CSV from inside the app, you can edit or delete any record, and you can delete your account and everything synchronised to it from the Cloud Sync screen. For anything else — including a copy of your account data, or any message you have sent us — write to us and we will respond as quickly as we reasonably can, and within the time the law requires.
To exercise any right, email support@kelesh.dev. If you believe we have handled your data improperly, you may also complain to the data protection authority where you live.
The database behind Cloud Sync is hosted in London, United Kingdom. The United Kingdom is recognised by the European Union as providing an adequate level of data protection. Some server functions — for example the one that deletes an account — may run in our provider's data centre nearest to you.
Our other providers, including Resend, which delivers account emails, Apple and Google when you use their sign-in, and Google Analytics on this website, operate internationally, including outside the European Economic Area. Where data passes through them, we rely on the safeguards they put in place for international transfers, such as the European Commission's standard contractual clauses.
If you never create an account, your financial data is not transferred anywhere: only the technical metadata any internet request carries — an IP address, for instance — crosses a border when the app looks up the public data described in section 11, or when you visit this website.
Sollus is not directed at children. You must be at least 13 years old to use it, and older where the law where you live sets a higher age for consenting to services like this one without a parent or guardian. We do not knowingly collect personal data from anyone below that age; if you believe a child has provided us with data, contact us and we will remove it.
We may update this policy from time to time. The current version and its effective date are always published on this page. Where a change materially affects how your data is handled, we will give notice in the app or by another appropriate means before it takes effect.
Questions about this policy, or about how Sollus handles data: support@kelesh.dev. General support: support@kelesh.dev.
Domande su questo documento?
Scrivici a support@kelesh.dev se hai bisogno di aiuto con questo documento.