FAQ

Questions
answered.

Everything about how AHD works, what it can and can't do, sourced from the app itself.


What is it
What is *99# UPI?
*99# is India's USSD-based UPI service built by NPCI. It works without internet. You dial a code, your bank responds through SMS-style menus over the voice channel, and you reply to send money. Works on any phone with a basic cellular signal.
Is AHD on the Play Store?
Not currently. Download the APK from GitHub releases.
Do I need an account?
No account, no email, no sign-up. Your bank account is already linked to *99# by NPCI when you set up UPI. AHD is just the interface.
The two modes
What are Auto and Manual mode?
Auto

AHD handles the carrier USSD dialog automatically using Accessibility Service. You stay in the app the whole time.

Manual

Opens your dialer pre-filled with the *99# code. You navigate the menus yourself. No Accessibility Service needed.

Carriers & limits
Which carriers work?
Airtel, Vodafone (Vi), and BSNL: yes. Jio: no. That's a Jio network-level constraint, not an AHD limitation.
AIRTEL ✓ VI ✓ BSNL ✓ JIO ✗
What are the transaction limits?
₹5,000 per transaction and ₹10,000 per day. These are NPCI-level limits for the *99# channel, not set by AHD.
Setup & permissions
How do I enable banking on *99# first?
One-time setup to link your bank to the *99# channel. After this, AHD handles everything.
1
Open your phone's dialer and call *99#
2
Enter your bank name when prompted (SBI, HDFC, ICICI…)
3
Follow on-screen prompts to link your bank account
Done once, never again.
How do I enable *99# in BHIM app?
If you use BHIM as your UPI app, toggle on the *99# service in BHIM settings once.
1
Open BHIM → tap your profile avatar (top-left initials)
2
Scroll down → tap Settings
3
Find "USSD service (*99#)" under Account settings → toggle ON
Why does it need Accessibility Service?
Android's only public USSD API can't navigate multi-step menus. Accessibility Service lets AHD automatically type your amount, UPI ID, and PIN into the carrier's dialog so you don't have to. If you'd rather not, use Manual mode: it just opens your dialer instead.
Why does it need Call Phone permission?
To programmatically initiate USSD calls to *99#. AHD never places regular phone calls, only USSD requests to the carrier. It also reads the active SIM's carrier name to warn you if you're on Jio (where *99# is unsupported).
Android 13+ won't let me enable Accessibility
Since AHD is sideloaded, Android 13+ blocks restricted settings like Accessibility by default. The fix:
1
Settings → Apps → AHD
2
Tap the ⋮ three-dot menu (top right)
3
Allow restricted settings → confirm with your PIN or fingerprint
4
Return to AHD → enable Accessibility. It works now.
Payments & failures
Is my PIN safe?
Your PIN is held in volatile memory only, masked as •••• in any logs, cleared within 500ms of session end, never persisted, and never shared. The app has no INTERNET permission and is structurally incapable of sending anything anywhere.
What if a payment fails?
AHD surfaces the carrier's exact error message. Common causes: wrong PIN, bank not linked to *99#, daily limit exceeded, wrong UPI ID, or weak signal. Tap the failed transaction in history to see the full reply and retry in one tap. A 25-second timeout prevents stuck sessions.
How does the overlay work?
In Auto mode, AHD paints a branded overlay over the system USSD dialog so you only ever see AHD's UI during a session. We never see your PIN, as it's typed locally on your device, never stored, and never sent anywhere.
Security & Risks
What are the network security risks of USSD?
USSD (*99#) signaling occurs over the unencrypted GSM voice channel, meaning it is not encrypted end-to-end like HTTPS. This makes it theoretically vulnerable to carrier-level interception, SIM swapping, and base station spoofing (IMSI catchers). AHD has no control over cellular protocol security; users should operate with normal cellular safety precautions.
Can other apps steal my details from the clipboard?
In Manual Mode, AHD copies details (like the recipient's UPI ID) to the system clipboard. If your device has malicious applications installed, they may perform clipboard hijacking to read or alter copied text. Always verify the recipient's name on the carrier's final confirmation screen before entering your PIN.
Is it safe to enter my PIN during screen share or casting?
No. Since AHD works entirely offline, it cannot monitor or block active screen recording, casting, or remote-desktop apps (AnyDesk, Zoom, TeamViewer). If you enter your PIN while sharing your screen, your PIN could be visually compromised. Ensure all sharing/recording is stopped before initiating a payment.
Why does the automation fail on custom Android skins?
Custom Android distributions (like Xiaomi's HyperOS/MIUI, OPPO's ColorOS, or Vivo's Funtouch OS) modify the layout structure of system USSD dialogs. This can prevent the Accessibility Service from parsing the menus correctly in Auto Mode. If you experience issues, switch to Manual Mode in the app Settings to execute the transaction safely.