Legal

Privacy Policy

Last updated: 2026

Applies to the Google Play build, the F-Droid build and to APKs built from the published source.

The short version

Your transactions, budgets and bank messages stay in an encrypted database on your phone. AuraSpend has no account, no analytics, no advertising and no crash reporting, and runs no server that receives your data. It touches the network in two optional cases: the categorisation model you choose to download, and a Google Drive backup you start yourself.

What we collect

Nothing is collected by the developer. AuraSpend has no sign-up, and the developers receive no data from the app. The app stores the following on this device: transactions (amounts, dates, notes, categories and type), the categories, budgets, subscriptions and savings goals you create, the bank-message queue it has read, the messages it could not turn into a transaction, your preferences, and the corrections you make to classifications.

What stays on your device

Everything above stays on this device, in a database encrypted with SQLCipher using a key held in the Android Keystore. Phone numbers, UPI references, UTRs and similar identifiers are masked out of the message text before it is stored. Android's own backup and device-to-device transfer are configured to exclude the database, the preferences and the model directory.

Permissions, and why each is needed

AuraSpend requests only the permissions it uses, and asks for the two that are user-facing at the moment the feature that needs them is switched on. The list below is the app's merged manifest — every permission that ships, including the ones its libraries add — with what each one is for.

Permission Why
READ_SMS Lets the app read the bank and card messages your phone already receives, so it can turn them into transactions. It is requested only when you switch on automatic categorisation, it is read-only, and the app never sends an SMS. You can decline it and use every other feature, entering expenses by hand or importing a CSV instead.
INTERNET Used for exactly two optional things: downloading the optional 22 MB categorisation model from Hugging Face, and the Google Drive backup and restore you start yourself. The app has no server of its own and makes no request for usage data, diagnostics or analytics.
ACCESS_NETWORK_STATE Lets the app check that a connection is available before it downloads the model or talks to Google Drive, so background work fails quietly instead of retrying on a dead network.
POST_NOTIFICATIONS Lets the app tell you when a background categorisation pass has finished, and — in the Google Play build — when a newer version is available. It is requested only after you have been told what the notifications are, and the app works with them declined.
USE_BIOMETRIC Used by the optional app lock: if you set a four-digit PIN, your fingerprint or face can unlock the app instead of it. Declining leaves the PIN as the only way in.
USE_FINGERPRINT The legacy fingerprint permission, kept by the AndroidX biometric library so that the app lock's biometric shortcut keeps working on older Android versions. It is only used if you switch the shortcut on.
WAKE_LOCK Held briefly by Android's background job scheduler while the periodic categorisation pass runs, so the phone is not kept awake for the whole pass.
RECEIVE_BOOT_COMPLETED Used by the background job scheduler to re-arm the periodic categorisation pass after the phone restarts, so an inbox that was waiting is picked up again without you opening the app.
FOREGROUND_SERVICE Allows a long background categorisation pass to run as a foreground service while it is working, so Android does not stop it part-way through and the pass can show its progress.

The manifest also declares one app-scoped signature permission, com.awbuilds.auraspend.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION. The AndroidX libraries generate it so that broadcast receivers registered at runtime cannot be exported; it is never shown to you and grants nothing. Every other permission above is either requested by the app at the point of use or added by a library for a background job the app uses.

2. Bank SMS

If you turn on Auto-categorize messages in Settings, AuraSpend asks Android for permission to read SMS (READ_SMS). Only then does it read your inbox, and only for messages it can take as bank or card activity.

  • Processing happens on your device. Message text is never uploaded.
  • Messages that look like one-time passwords or alerts are skipped unless they also describe a movement of money. Messages that contain an amount but that no parser recognises are kept in a separate list for you to review, rather than discarded.
  • Identifiers are masked before storage. Phone numbers, UPI references, UTRs, folio ids and hash-like tokens are removed from the message text before it is written to the database, and from the notes and exports as well. Amounts, dates and the bank's own card mask are left intact so that the app still works. A one-off backfill masked the messages stored before this behaviour existed.
  • You can turn the feature off at any time. Turning it off stops new messages being read. It does not delete the transactions it has already created.
  • You can deny the permission and use AuraSpend fully. Expenses can be entered by hand, or imported from a CSV file.

Android's Auto Backup is configured to exclude the app's database, its SMS queue, its preferences and the model directory, so these are not copied to Google's backup service, and they are not carried over in a device-to-device transfer.

3. Network use

AuraSpend requests the Internet permission for two optional features. Those are the only times the app connects to anything.

ConnectionWhenWhat is sent
huggingface.coOnly when you tap to download the smart-categories model (about 22 MB).A request for the model file and its tokenizer. The request carries no account or message content.
Google (Drive API and sign-in)Only when you back up to, or restore from, Google Drive.Your Google sign-in and the backup file you asked to write or read. See section 4.

Nothing else is contacted. The app has no server of its own.

4. Google Drive

Google Drive is used for two things, and only when you ask: backing up your data to your own Drive, and restoring a backup. Both live under Settings → Data; restore is also offered during onboarding. This feature is not present in the F-Droid build — see section 8.

  • Scope: the app requests the drive.file scope. This lets it read and write only the files it creates, not the rest of your Drive.
  • Where it lives: the backup is a file named auraspend_backup.json in your own Google Drive.
  • Contents: transactions, categories, budgets, subscriptions, savings goals, the stored bank-message queue, the messages the app could not turn into a transaction, and the classification memory. Message bodies are stored with phone numbers, account fragments and reference ids masked, but they are still message text. The file is not encrypted by AuraSpend, so anyone who can open your Drive can read it.
  • Restore replaces data: restoring replaces the data on the device in a single transaction. If the restore fails, the existing data is left as it was.
  • Authentication: sign-in is handled by Google. We never see your Google password.

A backup runs only when you tap it, and it overwrites the previous backup file. There is no scheduled or background sync, and nothing is uploaded on its own.

Google's handling of data in your Drive is governed by Google's Privacy Policy.

5. On-device model

The smart-categories model is a sentence encoder, about 22 MB, used to suggest categories. It is downloaded from Hugging Face only after you tap the download button, and it runs entirely on your phone. AuraSpend is fully functional without it — the parsing layer does the categorising on its own.

  • The file is checked against a fixed SHA-256 digest before it is used. A file that does not match is rejected.
  • You can delete the model in Settings. The app keeps working, and your transactions are not affected.

Hugging Face's handling of requests is governed by its privacy policy.

6. Storage and deletion

Your data is stored on this device, and kept until you remove it.

  • Individual records: delete a transaction, budget, subscription, goal or category from its screen.
  • Everything at once, from inside the app: Settings → Data → Delete all data wipes every table, re-seeds the default categories and forgets the position of the SMS scan, so a fresh scan can pick your inbox up again. It asks for confirmation first.
  • Everything at once, from outside the app: uninstall AuraSpend. Android removes its local data with the app. Clearing the app's storage in Android's Settings does the same without uninstalling. The encrypted database and its write-ahead log go with it.
  • Bank-message queue: processed messages remain in the local queue. Uninstalling the app removes them.
  • Unrecognised messages: deleted automatically after 30 days, by the same background pass that classifies new messages.
  • Smart-categories model: delete it from Settings.
  • Drive backups: uninstalling does not delete backups in your Google Drive. Delete the auraspend_backup.json file in Drive to remove it.

7. Security

  • The database is encrypted at rest. AuraSpend uses SQLCipher, and the passphrase is derived from a non-exportable key held in the Android Keystore. The passphrase is never written to disk, to a log, or into a backup. There is no fallback to plain text: if the key cannot be obtained, the app refuses to open the database rather than opening it unencrypted.
  • Identifiers are masked before storage, as described in section 2.
  • An optional app lock — a four-digit PIN stored only as a salted PBKDF2 hash, with a biometric shortcut where the hardware supports it. It locks on a cold start and again after a minute in the background. There is deliberately no back door: “forgot PIN” wipes the data through the same path as “Delete all data”.
  • Your data is kept in an on-device database that other apps cannot read.
  • The app's release builds are signed, and the release process verifies the signatures before publishing. Each release publishes a SHA-256 checksum file alongside the artifacts.
  • Android's Auto Backup and device-to-device transfer exclude the database, the SMS queue, the preferences and the model directory.

No software is perfectly secure. Your phone's lock screen and device encryption are the main protection for data on a lost or shared device. Drive backups are not encrypted by AuraSpend; treat them as you would any file in your Drive. CSV exports are likewise plain files that you choose where to put them.

8. The three builds

AuraSpend ships in three forms. They contain the same application code; the differences are the packaging and the optional Google services.

BuildGoogle Drive backupIn-app update check
Google Play (prod)YesYes — a daily check with Play, and Settings → About → Check for updates
GitHub Releases APK (prod)YesYes
F-Droid (fdroid)No — F-Droid's inclusion policy excludes Google Play ServicesNo — F-Droid handles updates

The update check asks the Play Store app already on your device whether a newer version exists. Nothing about the question — or the answer — is sent to AuraSpend, which has no server to send it to; the record of which version you run stays between Android and Google Play, exactly as it does for every Play-installed app.

There is no analytics, advertising or telemetry in any of them, and no feature is held back behind a purchase. The differences above are recorded in the project's decision records, ADR 0012 and ADR 0013.

Data you export

Every transaction can be exported to a CSV file from Settings → Data, and a CSV can be imported back. The export is a plain file that you choose where to put it.

Deleting your data

Everything at once, from inside the app: Settings → Data → Delete all data wipes every table, re-seeds the default categories and forgets the position of the SMS scan, so a fresh scan can pick your inbox up again. It asks for confirmation first. Everything at once, from outside the app: uninstall AuraSpend — Android removes its local data with the app, encrypted database and write-ahead log included. A Drive backup is a file in your own Google Drive; uninstalling does not remove it, so delete auraspend_backup.json there if you want it gone.

Children

AuraSpend is not directed at children and collects no data from anyone. Parents and guardians should supervise the use of any finance app by a minor.

Your rights

Because no data is collected, there is nothing for us to disclose, correct or erase on your behalf. You have full access to, and full control over, everything the app holds: edit or delete any record, export it all to CSV, or wipe the lot from Settings → Data. If you are in the EEA, the UK, California or another region with similar rights, those rights apply to you.

Changes to this policy

If a change ever affects what the app does with data, this page is updated in the same release as the change, and the store listing is updated to match. The change is recorded in the project's public history at github.com/auraspend/auraspend, so earlier versions can be compared.

Contact

Questions about privacy can go to the project's issue tracker: github.com/auraspend/auraspend/issues. For a privacy question about your own data, the app's Settings → Data screen is usually the faster answer.