Last updated: September 24, 2026
Onetap has no user account, no password and no advertising. Your ledger — your transactions, categories, budgets and lists — is encrypted and kept on your phone. We do not run a server that stores it.
Three things do leave your phone, and you should know exactly what they are: the audio you record when you hold the microphone, the text of the expense you describe, and the text of payment notifications from the banking apps you choose to add. All three go to an AI provider to be read. Card and account numbers are masked before they go, and one-time passcodes are never sent at all. The sections below set this out in full.
There is one more thing, and it is a small one: Onetap sends anonymous product analytics — a short list of named events such as "a setup step was reached" or "a locked feature was tapped" — so we can see where the app is failing people. No amount, no merchant, no note, no category and no name is ever part of it, and nothing is tied to you. You can turn it off in Settings. Section 9 lists every event.
The microphone is used only while you are holding the microphone button. It does not listen in the background, and it does not listen when you are not holding it.
When you release it, the recording is uploaded over HTTPS to Groq
(api.groq.com), which transcribes it with the Whisper speech model and returns
text. This is not your phone's built-in speech recognition — the audio does leave the
device. It is sent without any name, account or identifier attached to it, because Onetap
has no account to attach.
The transcribed text — or text you type — is sent to the same provider's language model so it can be turned into an amount, a description and one of your own category names. The result is shown to you in an editor to confirm or change; nothing is saved until you do.
If the provider cannot be reached, Onetap falls back to a parser that runs entirely on your phone and reads plain notes without any network at all.
This is the most sensitive thing Onetap does, so it is worth reading closely.
If you switch on bank automation, you grant Onetap notification access and add the specific banking, wallet or payment apps you want it to watch. From then on:
Notification access can be revoked at any time in Android's own settings, and bank automation can be switched off in Onetap's settings, independently.
While you are not subscribed, payment alerts from those same apps are still captured, masked and one-time-code checked exactly as above — but they are held on your phone and not sent anywhere, because reading them is the part that needs a subscription. They are listed in Settings under "Waiting to be recorded", where you can record them if you subscribe, delete any of them, or discard them all. Anything not dealt with is removed automatically after 30 days.
Onetap currently uses Groq for both transcription and interpretation. Requests are sent over HTTPS and carry no account identifier, because Onetap has no account.
Under Groq's own terms, which we rely on and you can read yourself:
We keep no copy of any of it ourselves, because we operate no server. We may change provider as the app evolves — the app is written so that this is a configuration change — and this page will be updated when we do.
Transactions, categories, budgets, tags, lists and recurring entries are stored on your
device in Android's EncryptedSharedPreferences (AES-256, with the key held in
the Android Keystore). They are not transmitted to us. Uninstalling the app, or clearing its
storage in Android's settings, removes them.
When a list's currency differs from an amount you spoke, Onetap fetches reference rates from a public exchange-rate service. That request contains no personal information — it asks only for the current rate table.
Onetap can back up your ledger to your own Google Drive so you do not lose it when you change phone. This is entirely opt-in — nothing is backed up unless you sign in and ask for it.
drive.appdata scope, which reaches a single hidden
folder created for Onetap — not your wider Drive, and none of your other files.
Onetap is free for three days — no card and no sign-up — and after that some features need a subscription. If you buy one, the purchase is handled by Google Play and its status is managed through RevenueCat, which records that a purchase exists and whether it is active. Onetap never sees or stores your card details — Google Play handles payment entirely.
Onetap uses PostHog to count how the app is being used. This is the only analytics in the app: there is no advertising SDK, no ad network, no ad identifier, and no session recording or screen recording of any kind.
Automatic capture is switched off. PostHog's default behaviour is to record every screen you open, every tap and every app launch; all of that is disabled in Onetap. What is sent is a fixed list of events written by hand, and it is the whole list:
| Event | What it carries |
|---|---|
| A setup step was reached | The step's internal name, e.g. voiceInputFragment |
| Setup finished | Nothing |
| The free trial started, reached day 1/2/3, or ended | The day number |
| A locked feature was tapped | Which one — voice, bank automation, history, export, backup, extra list |
| The subscription screen was shown | Whether it came from setup or from the app |
| A purchase or restore finished | Which plan, and whether it succeeded, was cancelled or failed. Never a price, and never a payment detail |
| A bank alert was handled | The outcome — recorded, needs review, set aside, held, unreadable — and the package name of the banking app that posted it, so we can fix a bank whose alerts we read badly. Never the alert's text, and never an amount or account number |
| A spoken entry was interpreted | Whether it was understood. Never the words, and never the amount |
| A transaction was saved | How the editor was filled — by voice, by hand, or from a bank alert. Never what was in it |
| Bank automation's state, once per launch | Whether it is on, off, waiting for a bank to be chosen, paused for notification access, or limited to when the app is open |
| An export finished | CSV or PDF, and whether it saved or failed. Never the file name, the list, or how many rows were in it |
| A Google Drive backup or restore finished | Which of the three it was, and whether it worked. Never the contents of the backup |
| A budget was set or cleared | Which of the two, and how many budgets the list holds afterwards. Never the category it was on, and never the amount |
Nothing from your ledger is in that list. No transaction, amount, merchant, note, category name, budget, list name, currency, tag, email address or account identifier is ever sent to PostHog.
You are not identified. Onetap never tells PostHog who you are — no email, no account, no advertising ID, no device serial. Events arrive against a random identifier the analytics library generates on your device; reinstalling the app produces a new one. As part of any internet request, PostHog's servers see the IP address your device connects from; the project is configured to discard it after deriving an approximate country, so it is not stored against your events.
The library also attaches technical details about the device, which it uses to tell an old Android from a new one: manufacturer and model, Android version, the Onetap version, screen size, locale and timezone.
You can switch it off. Settings → Share anonymous usage data. Turning it off stops collection immediately. PostHog's own privacy documentation is here.
| Permission | Why Onetap asks for it |
|---|---|
| Internet | To reach the AI provider, Google Drive, Google Play billing and anonymous analytics. |
| Microphone | Only while you are holding the microphone button to speak an expense. |
| Notifications (post) | To tell you when a budget crosses its alert threshold, and when a bank notification has been recorded. |
| Notification access | Granted separately by you, in Android's settings, so bank automation can read payment alerts from the apps you added. Revocable at any time. |
Onetap does not request location, contacts, photos, calendar, SMS or call logs, and declares no advertising ID.
Your ledger lives on your device, so uninstalling the app or clearing its storage removes it. Text and audio sent for interpretation are processed to produce an answer and are not retained by us, because we run no server to retain them on; the provider's own retention is governed by their terms, linked above.
The anonymous events in section 9 are held by PostHog on our behalf. They are not linked to you, so there is no account for us to look up and delete — turning the switch off in Settings stops any more being sent.
If you used Google Drive backup, that copy lives in your own Google account — see section 7 for how to remove it.
Onetap is not directed at children under 13, and we do not knowingly collect information from children under that age.
If Onetap's features or data handling change — a different AI provider, a new source of data — this page is updated and the "Last updated" date above changes with it.
Questions about this policy or how Onetap handles information can be sent to info@truetechsol.org.