Financial data you enter
Accounts, balances, categories, transactions, budgets, scheduled payments, transfers, and transaction descriptions.
This data is stored locally in the app database and is automatically backed up to Firebase Storage tied to your authenticated account.
App settings
Language, number format, currency, theme, daily reminders, and Wallet automation settings.
Cloud backup includes language, number format, currency, and theme.
Account and authentication data
To use Kora you need an account. Authentication is handled by Firebase Authentication, which supports Google Sign-In on Android/iOS, Sign in with Apple on iOS, and email/password on both platforms.
In that flow, your user identifier, email address, and — if you register with email/password — the password hash managed by Firebase may be processed.
If you permanently delete your account from the app, deletion of your Kora account in Firebase Authentication and its associated remote backup is requested. This does not delete your Google or Apple account.
Subscription data (Kora Pro)
If you purchase or activate a Kora Pro plan, subscription management is handled with RevenueCat. Your user identifier, entitlement status, product identifier, purchase receipts, and renewal or cancellation events may be processed.
Payment is processed by Google Play Billing on Android and the Apple App Store on iOS under their own terms. Kora does not receive or store your card or payment-method details.
Usage analytics
The app logs product events with Firebase Analytics and Amplitude, such as creating, editing, or deleting accounts, categories, budgets, transactions, transfers, and scheduled payments.
To reduce data exposure, these events use indicators and approximate ranges; they are not intended to send free-text descriptions or exact monetary amounts. Amplitude receives the events tied to an anonymous install identifier.
Technical diagnostics and integrity
The app uses Firebase Crashlytics to record crashes, unhandled errors, and technical diagnostics needed for stability and support.
To protect calls to backend services, the app uses Firebase App Check with Play Integrity on Android and DeviceCheck or App Attest on iOS. These services attest the integrity of the device and the app without sending the contents of your financial data.
Local security data
If you enable app lock, the lock state, biometric preference, and a salted PIN hash are stored locally in secure device storage.
The app does not access your biometric template; that validation is handled by the operating system.
Notifications and reminders
If you grant notification permission, the app can schedule daily reminders and notifications related to scheduled payments.
Wallet automation on Android
If you enable notification access to detect Wallet payments, the app may read the merchant name, detected amount, source app, timestamps, and raw notification text to propose a pending expense for your review.
This information is stored on your device so you can review it before turning it into a transaction.
SMS payment detection on Android
If you enable SMS payment detection, the app reads messages that appear to contain payment information (sender, message body, and timestamp) and sends them to Google/Firebase AI services to extract amount, merchant, and date, and propose a pending expense for your review.
The pending expense is stored on your device until you approve it, reject it, or clear app data. The app does not store the original SMS or include it in cloud backup.
Receipt photo scanning
If you enable receipt scanning, the app accesses the camera to capture the image and sends it to Google/Firebase AI services to extract amount, merchant, and date, and propose a pending expense for your review.
The image is processed transactionally: the app does not store it and it is not included in cloud backup.
Voice expense capture
If you enable voice capture, the app accesses the microphone to capture what you dictate. Speech-to-text transcription is performed by the operating system's speech recognition service (Apple on iOS, Google on Android) under their own policies.
Kora does not store the audio. The resulting transcription is processed to extract amount, description, and a suggested category, and is shown as a pending expense for your review before becoming a transaction.
AI category suggestion on Android
If you also enable AI categorization, the app sends the merchant name, displayed amount, notification text, and your list of available categories to Google/Firebase AI services to obtain a category suggestion.
Widget data
If you use the widget, the app shares a local monthly summary with the system, such as the period label and total displayed in the widget.