AHD uses *99# (India's USSD-based UPI protocol) to send money, check balance, and scan QR codes entirely over your SIM's voice channel. Works on Airtel, Vi and BSNL with zero data.
A real payment on a real phone. Airplane mode on. No tricks.
Built around one constraint: no internet permission in the manifest. The app is physically incapable of making a network call.
Accessibility Service drives the carrier USSD dialog in the background. You stay in the app the whole time.
Camera reads merchant UPI QR codes. Parsed locally, with no network call to decode anything.
Check your bank balance over *99# the same way. No data needed.
Up to 200 transactions stored on-device with SQLCipher encryption. Swipe to delete, tap to retry.
Skip Accessibility altogether: manual mode opens your dialer pre-filled with the *99# sequence.
Every permission, every API call is on GitHub. Verify it yourself before installing.
Scan, fail over from data, and pay through *99# without ever leaving AHD.
AHD handles the carrier dialog automatically using Accessibility Service, keeping you in AHD throughout the payment.
Copies the UPI ID and opens your dialer pre-filled with the *99# code. You navigate the menus yourself. No Accessibility Service needed.
More → full FAQ
Android APK, sideload, no Play Store. Or the PWA, which works on any phone with no install needed.
Source on GitHub · MIT License