Guide

How to pay with UPI when there's no internet

No data, no Wi-Fi, still need to pay? Here's how UPI works offline over *99# and UPI 123Pay, which SIM uses which, and what you need to get started.

Update, 31 October 2026: Daak no longer uses *99#. From version 1.5.0 it pays over UPI 123Pay on every SIM. Here's why.

You're at the counter. The shop's QR code is right there. You open your UPI app and get... the spinner. One bar of signal, zero bars of internet. The queue behind you starts doing that polite little cough.

Good news: India has had a way to pay without internet for years. Most people just don't know about it, because it hides behind a short code and a phone number nobody advertises.

The two offline UPI rails

UPI has two official ways to work without mobile data. Both are run by NPCI, the same people behind UPI, and both talk to your bank directly.

1. *99#, the USSD menu. You dial *99# like a phone number and a text menu pops up on screen. It's the same tech your carrier uses to show your prepaid balance. It runs on basic mobile signal, so 2G is plenty. Works on Airtel, Vi and BSNL.

2. UPI 123Pay, a phone call. You call a number, a voice menu asks who you're paying and how much, and you confirm with your UPI PIN on the keypad. It was built for feature phones, which means it also works on your smartphone when the data's gone. Works on every SIM, Jio included.

Why two? Jio runs only on 4G VoLTE and doesn't support USSD codes like *99#. So on Jio, the phone call is the way.

What you need

  • A bank account linked to the mobile number in your phone. Same rule as any UPI app.
  • A UPI PIN. If you already use GPay, PhonePe or Paytm, you have one. If not, keep your debit card handy the first time.
  • Signal. Not internet, just the bars that let you make a call.

Paying over *99#, step by step

  1. Dial *99# and choose your language.
  2. Pick Send Money, then how you want to pay: mobile number, UPI ID and so on.
  3. Type in the details and the amount.
  4. Enter your UPI PIN in the pop-up.
  5. Wait for your bank's SMS. That's your receipt.

The menus are tiny, they time out quickly, and typing a UPI ID on a number keypad feels like texting in 2006. It works. It's just fiddly.

Paying over 123Pay, step by step

  1. Call 080 4516 3666 from the SIM linked to your bank.
  2. Follow the voice menu: choose to send money, type the receiver's mobile number, then the amount.
  3. On Jio, 123Pay hangs up and calls you back to confirm. Answer it.
  4. Press 1, then type your UPI PIN on the call keypad.
  5. Your bank's SMS lands a few seconds later.

Never used 123Pay before? The first call walks you through picking your bank and setting up. It takes a couple of minutes, and you only do it once. I wrote a whole post on the 123Pay two-call payment on Jio if you want the details.

Where Daak comes in

I built Daak because I love that these rails exist and hate using them by hand. Daak sits on top of both:

  • It checks your SIM and picks the rail. Airtel, Vi and BSNL get *99#. Jio gets 123Pay.
  • You scan a QR, pick a contact or type a number. Daak dials and types the details for you.
  • It tells you what's happening on the call, step by step, so you're never staring at your phone wondering whether to press something.
  • When your bank's SMS arrives, Daak marks the payment paid and shows a proper receipt.

Your PIN never goes into Daak. You type it into the *99# pop-up or on the 123Pay call, which your carrier and bank run. Daak doesn't even have permission to use the internet, so it couldn't send anything anywhere if it tried. More on that in why Daak has no internet permission.

A few honest limits

  • 123Pay calls have a per-payment limit, and banks don't all agree on it yet. Daak keeps calls to ₹4,999 a payment, so you don't get rejected halfway through.
  • Your carrier may charge a small fee for each *99# session.
  • Your bank sets how much you can send per day.
  • iPhones can't do this from an app. Apple doesn't let apps dial USSD codes or read SMS.

The short version

No internet doesn't mean no UPI. Dial *99# on Airtel, Vi or BSNL, call 123Pay on Jio, or let Daak do the dialing for you. Next time the spinner shows up at the counter, you'll be the calm one in the queue.