Air-Gapped Android App · Zero Servers · Deterministic Rules

Kharcha — Offline Bank SMS Expense Tracker for India.

Know every rupee that left your HDFC, ICICI, Axis, SBI, Kotak, OneCard, and UPI accounts without ever granting internet permission. Kharcha parses your bank SMS inbox on-device, pairs credit card bill settlements so they aren't counted twice, and flags doubtful transactions for 1-tap verification.

Try Live Interactive AppAndroid APK · Private Beta
0 Network

0 Network Permissions

No INTERNET in manifest

Rule Sieve

On-Device SMS Sieve

Drops OTPs, promos & bills

1-Tap Verify

Doubtful Spend Detector

Real Spend vs Not a Spend

Multi-Month

All-Months Comparison

Month-over-month net ledger

01 / AIR-GAPPED VAULT
air-gapped · 0 bytes out

Zero Network Permissions

AndroidManifest omits INTERNET & WebView blocks all network loads at the OS level.

Interactive Sandbox · Runs Locally in Your Browser

Try the Full Kharcha App Live

Loaded with a realistic multi-month Indian bank SMS dataset (October & November 2025). Verify doubtful spends, switch months, inspect category breakdowns, or upload your own SMS CSV/XML dump.

air-gapped://kharcha
NO-NET

KHARCHA

Offline

Nov 2026: ₹995 · Sample

Nov 2026

Monthly Net Spend

₹995

Well within budget

Spent

₹1,060

Refunds

₹65

Counted

5 txns

Doubtful Spends · Verify (3)

We found transactions that might be bill payments, transfers, holds, or missed alerts. Confirm if each was a real spend:

Amazon Pay

Currently Counted

14 Nov · Amazon Pay

₹96

Merchant alert without bank A/c digits — check for duplicate

CreditCard Payment XX 2222

Currently Skipped

14 Nov · Axis ••4444

₹9,000

Skipped by rules, but mentions a payment amount — was this a real spend?

CTRLX

Currently Counted

13 Nov · ICICI ••1111

₹198

Possible credit card bill or self-transfer — could double-count card spends

All Monthly Spendings (1)

Tap a month to open

Monthly Target & Pace

3% of ₹35,000 usedSafe pace: ₹2,000/day

Latest Reported Balances & Limits

From SMS alerts
ICICI ••4444Bal

₹11,290

As of 14 Nov

Amazon PayBal

₹400

As of 14 Nov

Axis ••2222Limit

₹1,40,000

As of 14 Nov

ICICI ••1111Limit

₹25,000

As of 14 Nov

Spend by Account / Card

5 sources in Nov 2026

ICICI ••1111₹579 (55%)
Axis ••2222₹220 (21%)
HDFC ••3333₹165 (16%)
Amazon Pay₹96 (9%)
ZOMATO−₹65 (0%)

Top Merchants & Payees

SWIGGY

Food & Dining · 1 spend

₹381

Amazon Pay

Shopping · 2 spends

₹261

BLINKIT

Groceries · 1 spend

₹220

CTRLX

AI & Subscriptions · 1 spend

₹198

Daily Breakdown · Nov 2026

3 active days
01 · Test Doubtful Spend Verification

Tap “Real Spend” or “Not a Spend”

In the Month tab inside the live phone frame, scroll to the Doubtful Spends · Verify (3) card. Notice how HDFC BillPay (₹12,480), Indian Oil Fuel Hold (₹4,000), and Amazon Pay Wallet Load (₹1,500) ask for your 1-tap confirmation and immediately recalculate the monthly net total.

02 · Multi-Month Comparison

Switch Between November & October 2025

Use the top pill strip or tap any bar in the All Monthly Spendings card to compare October (₹9,349 across 5 spends) against November (₹6,026 across 8 spends).

03 · Mood-Driven Budget Pacing

Edit Your Monthly Target & Safe-to-Spend Pace

Tap Edit Target in the Monthly Target & Pace card. Kharcha computes your daily safe-to-spend allowance and updates its expressive vector mood badge automatically.

04 · Bring Your Own SMS Dump

Import CSV/XML or Paste Raw Bank Alerts

Click Import CSV in the app header or open the Cash tab to paste raw HDFC/ICICI/SBI/Axis SMS lines. Everything runs inside your browser's local memory.

Engineered for Indian Banking Realities

Four Pillars of Accurate Spend Counting

Indian SMS inboxes are noisy: credit card bill payments look like debits, fuel stations place pre-auth holds, and promotional messages mimic bank alerts. Kharcha solves each with deterministic rules and interactive human-in-the-loop verification.

01 · Doubtful Spend Verification

Never Let a Bill Payment or Wallet Load Skew Your Month

When Kharcha encounters an ambiguous SMS, it doesn't silently guess and corrupt your monthly total. It flags the message with a human-readable explanation and gives you a 1-tap Real Spend vs Not a Spend decision.

UNPAIRED BILL PAY / INFBIL

Detects INFBIL, CRED, and BillDesk debits that lack a matching credit card confirmation SMS, asking if it was a utility bill or CC settlement.

MANDATES & FUEL PRE-AUTH HOLDS

Flags AUTOPAY, E-MANDATE, and petrol pump pre-authorizations (Indian Oil, HPCL, BPCL) that may reverse later.

WALLET & FASTAG TOP-UPS

Spots Amazon Pay, Paytm Wallet, FASTag, and UPI Lite loads so you don't double-count wallet spends.

HIGH-VALUE DEBITS (≥ ₹10,000)

Surfaces large generic IMPS/NEFT/UPI transfers without a known retail merchant so rent, family transfers, or investments can be verified in 1 tap.

Interactive Preview: HDFC Bank · BillPay / SmartPay — ₹12,480
Doubtful · Unpaired BillPay

“Rs.12480.00 debited from HDFC Bank A/c XX4821 on 11-11-25 to INFBIL*BILLPAY. Ref 531511908112.”

02 · Multi-Month Ledger

All-Months Comparison & Safe-to-Spend Pacing

See your entire SMS history grouped month-by-month with instant net spend bars, 10 auto-detected Indian merchant categories, and live account balance extraction.

Month-Over-Month Net SpendINR (₹)
November 2025 (8 txns)₹6,026
October 2025 (5 txns)₹9,349
Avl Bal Extracted

₹84,110

HDFC Bank · XX4821

Avl Limit Extracted

₹1,42,310

Axis Bank · Card XX3310

Safe to spend ₹1,704/day
10 Categories
03 · Indian Bank SMS Sieve

Built for DLT Headers, UPI VPAs & CC Bill Pairing

Recognizes Indian Telecom DLT suffixes (-S, -T, -G vs -P promotional headers), strips OTPs and loan offers, deduplicates reference numbers, and pairs savings-to-credit-card bill settlements within 3 days.

HDFC BankAD-HDFCBK-S

Savings + Regalia CC + UPI

ICICI BankVM-ICICIB-S

Acct XX901 + Coral CC + IMPS

Axis BankAX-AXISBK-S

Flipkart CC + UPI Mandates

State Bank of IndiaVK-SBIINB-S

SBI YONO + Rupay + NEFT

Kotak MahindraJD-KOTAKB-S

811 Acct + IMPS + BillPay

OneCard / FPLVM-ONECARD-S

Metal Credit Card + Fuel Holds

Credit Card Bill Double-Count PreventionPaired ≤ 3 days

When ₹18,450 leaves HDFC Savings via NEFT and Axis Card confirms ₹18,450 received, both are marked card_bill and excluded from new spending.

04 · 100% Air-Gapped Android Architecture

Verifiably Offline in Native Code

Privacy policies are promises; OS sandboxes are guarantees. Kharcha omits android.permission.INTERNET from its manifest AND disables network loads on the Android WebView instance.

AndroidManifest.xml0 Net Perms
<!-- android/app/src/main/AndroidManifest.xml -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- ONLY local SMS & notification permissions. NO android.permission.INTERNET -->
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

    <application
        android:allowBackup="false"
        android:label="Kharcha">
        ...
    </application>
</manifest>
MainActivity.ktSocket Blocked
// android/app/src/main/java/app/kharcha/MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    web = WebView(this)
    setContentView(web)
    web.settings.javaScriptEnabled = true
    web.settings.domStorageEnabled = true
    // Hard-block any network socket inside WebView
    web.settings.blockNetworkLoads = true
    web.addJavascriptInterface(Bridge(), "AndroidSms")
    web.loadUrl("file:///android_asset/index.html")
}

Compiled APK size is just 3.6 MB. Runs on Android 8.0+ (API 26 to 35).

Private Android Build