Effective / Last Updated Date: November 11, 2026 · Application: Finora (com.example.finora, Version 1.0) · Developer: Israr Azeem (Individual Developer) · Privacy Contact: israrazeem48@gmail.com
This Privacy Policy governs the Finora Android native application (package com.example.finora, Version 1.0), developed and published by Individual Developer Israr Azeem, and the official Finora companion web pages (https://www.finoraapp.site and https://sites.google.com/view/finora-ledger).
Audience & Children's Privacy: Finora is intended for a 13+ / General Audience and is not directed at children under 13 (or the applicable minimum age of digital consent in your jurisdiction). We do not knowingly collect personal data from children under 13.
Finora is an offline-first personal finance and multi-currency ledger. Your accounts, balances, currencies, expenses, income, transfers, split transactions, categories, tags, payees, budgets, recurring plans, debts/loans, investments, receipt photos and extracted OCR text, and generated exports (PDF, CSV, QIF, JSON, and .finora files) are stored locally on your Android device.
Encrypted Local Database: Financial records are stored in a local Room SQLite database (finora_db_v22, 14 tables) encrypted with SQLCipher AES-256 (PBKDF2-HMAC-SHA256, 10,000 iterations), with Android automatic cloud backup disabled (allowBackup="false"). Local SQLCipher database encryption uses an app/device-managed key by default, whereas optional .finora backup files can be protected by a user-chosen passphrase (AES-256-GCM, 310,000 iterations).
Biometric & PIN Lock: Optional Android Biometric / Fingerprint / device screen lock and optional fallback PIN use Android system biometrics (androidx.biometric) strictly on-device.
Conservative Banner Placements: The Finora Free plan may display conservative anchored adaptive banner advertisements only on two dedicated placements (More bottom and Insights bottom). Zero interstitial ads exist in this release, and core financial workflows (add, edit, clone, split, transfer, delete transactions, account management, viewing, search, and filtering) never show ads or delays.
Optional Opt-In Rewarded Ads: Rewarded ads may be offered only after optional configurable free export or print allowances (daily or monthly) are used when enabled in a build. You must explicitly tap Watch an Ad; tapping Not Now or dismissing early keeps your inputs intact with zero penalty, zero waiting period, and no reward granted. Rewards unlock non-transferable in-app export/print uses only upon Google's official reward callback.
Finora Pro Ad Removal: Subscribing to Finora Pro ($8.00 USD / 1 year auto-renewing Google Play subscription) or an eligible Remove Ads purchase disables all banner ads, rewarded ad prompts, and usage limits.
SDK Data Processing (play-services-ads:25.5.0): When active in a live build with online connectivity and applicable consent, Google Mobile Ads processes the Android Advertising ID (AD_ID and Android Privacy Sandbox AdServices permissions), IP address (including coarse IP-derived location), device and app diagnostics, and ad interaction/performance data for ad delivery, frequency capping, fraud prevention, and measurement. Ad personalization depends on your consent choices (UMP) and device privacy settings. Finora configures Google Mobile Ads for a 13+ General Audience with maximum ad content rating PG (MAX_AD_CONTENT_RATING_PG). Development/debug builds use Google sample test ad units, and release builds without configured live AdMob IDs keep ad serving disabled. See Google Privacy Policy and Google Ads Technologies.
Finora uses the Google User Messaging Platform SDK (ConsentManager) to request updated consent status on app launch and display Google's consent prompt whenever regionally required. With DELAY_APP_MEASUREMENT_INIT = true, ad SDK measurement and initialization are deferred until canRequestAds() permits. You can review or change your advertising privacy choices anytime via Advertising Privacy Options inside Subscription & Pro or Privacy & Data Wipe whenever required by UMP, or adjust your Android OS Advertising ID settings.
Finora Pro & Store Products: Finora supports Finora Pro ($8.00 USD / 1 year auto-renewing Google Play subscription, or the localized price shown by Google Play Store at checkout) and optional permanent unlocks if configured in Google Play Console. Payments are processed solely by Google Play (Google Play Terms of Service); Finora never collects or stores payment card numbers or bank account details used for checkout.
Entitlement Handling: Finora receives verified Play entitlement state (PURCHASED, PENDING, autoRenewing, product IDs, and purchase timestamp), acknowledges valid purchases, keeps PENDING payments ungranted until settled, retains Pro access until the end of the billing cycle when canceled before renewal, revokes Pro if expired, refunded, or suspended, and supports Restore Purchases. Sanitized entitlement status is stored locally in finora_monetization_prefs without storing or logging raw purchaseToken or orderId values. Builds without Play Console SKUs configured show an unconfigured status rather than fake purchase buttons.
Verified directly in Finora's codebase architecture: the monetization module (AdMobManager, ConsentManager, RewardedAdManager, BillingRepository, and EntitlementRepository) has zero access to or imports of FinoraDatabase, DAOs, FinoraRepository, transaction amounts, balances, descriptions, payees, categories, splits, or financial reports. Every AdRequest contains zero financial keywords or user profile targeting.
Google Play Services Auth (21.6.0) & Google Drive API: Used strictly when you opt in to connect Google Drive under More > Cloud Sync, requesting only the non-sensitive https://www.googleapis.com/auth/drive.file scope (app-created backup files only). Google API Services User Data Policy (Limited Use): Finora's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. Finora does not sell Google user data or use it for advertising.
Dropbox, Nextcloud & Custom WebDAV: Optional user-initiated backup transfers (FinoraBackups/finora_cloud_snapshot.json) over HTTPS via Dropbox OAuth 2.0 + PKCE, Nextcloud Login Flow v2 / WebDAV, or custom WebDAV. Credentials and tokens are encrypted on-device in Android Keystore AES-256-GCM (finora_cloud_vault.enc).
Local Wi-Fi Companion: Optional Ktor 3.0.3 local LAN HTTP server protected by a 6-digit PIN and QR pairing strictly on your local Wi-Fi network; no Finora cloud server or relay is used.
Google ML Kit Text Recognition (16.0.1): Processes receipt photos 100% on-device; receipt images remain in app-private storage.
Public Currency Exchange Rate Fetch: Optional HTTPS lookup to fetch public currency conversion rates; zero ledger or personal data is sent.
Analytics & AI Clarification: The Finora Android application operates without a developer backend server and integrates no Firebase Analytics or Firebase Crashlytics SDKs (firebase-ai is an unused dependency in Gradle with zero runtime AI prompts executed by Finora). This companion website (www.finoraapp.site / sites.google.com/view/finora-ledger) separately uses Google Analytics 4 (G-M2WLZ893Y4) solely for website traffic analytics and Search Console ownership verification.
Local Device Wipe: In the app, go to More > Privacy & Data Wipe to erase all 14 Room financial tables on your device after confirmation (clearAllTables()). Uninstalling Finora removes local sandbox databases, DataStore preferences, and the Keystore-wrapped finora_cloud_vault.enc file.
Cloud Disconnect & Remote Files: Tapping Logout in More > Cloud Sync deletes local credentials and revokes supported tokens while leaving local financial records untouched. Erasing local app data or uninstalling Finora does not automatically delete backup snapshots already uploaded to your Google Drive, Dropbox, Nextcloud, or WebDAV storage—manage or delete those files directly in your cloud storage, or revoke Google access via Google Account Permissions or Dropbox Connected Apps.
Google Play & AdMob Retention: Purchase records are retained by Google Play as required for billing, refunds, fraud prevention, and tax law, and ad interaction/diagnostic records are governed by Google's retention policies. The developer cannot manually delete Google's third-party billing or AdMob logs.
Privacy & Data Deletion Inquiries: Contact Israr Azeem at israrazeem48@gmail.com.