
How UPI Works: 6 Myths About Your ₹10 Chai Payment
You scan, you pay, the speaker talks. Here's how UPI actually works behind your ₹10 chai, and the 6 myths almost everyone believes about it.
You drink chai, you scan the QR, you pay the chai anna 10 rupees on PhonePe. Two seconds later his speaker says "received". Simple, right?
Here's how UPI actually works. PhonePe never holds your money. It's a messenger that passes your request to NPCI, the central switch for every UPI payment in India. NPCI finds the chai anna's bank, asks your bank to take out 10 rupees, and tells his bank to add 10. Your bank is the only one that checks your PIN and your balance.
That's the whole story in one paragraph. But I've noticed most of us carry a slightly wrong picture of what happens in those two seconds. So let's go myth by myth, and let the systems talk to each other so you can actually see it.
TL;DR
- PhonePe, GPay and Paytm are messengers. Your money sits in your bank the whole time.
- NPCI is the traffic police. It routes messages between banks. It doesn't look inside your account.
- Your UPI PIN is locked on your phone so that only your own bank can open it.
- Your balance changes in seconds, but the banks settle the real money with each other later, in batches.
- A "pending" payment is not lost money. If you got debited and he didn't get credited, the rules force a refund.
- The speaker isn't listening to your phone. A server pushes the message to it over its own SIM.
How does UPI work, in one ₹10 chai?
Before we break the myths, let's meet the cast. There are five characters in every chai payment.
- You, holding your phone and a glass of chai.
- PhonePe (or GPay, or Paytm). In UPI language this is your PSP, the Payment Service Provider. It's the app you tap on.
- NPCI, the National Payments Corporation of India. It runs the UPI switch in the middle.
- Your bank, where your money actually lives. UPI calls it the remitter bank.
- The chai anna's bank, where his money lives. UPI calls it the beneficiary bank.
Now watch the conversation. This is roughly what they say to each other when you pay.
PhonePe → NPCI: "This guy wants to send 10 rupees to chaianna@ybl. Here's his request, and his PIN is locked inside it."
NPCI: "chaianna@ybl... okay, that UPI ID belongs to an account at the anna's bank. Got it."
NPCI → your bank: "Minus 10 from this account. The PIN is attached, you check it."
Your bank: "PIN is correct. Balance is 340, so yes, he can pay. Done, minus 10."
NPCI → anna's bank: "Add 10 to the chai anna's account."
Anna's bank: "Done, plus 10."
NPCI → PhonePe: "Success."
Speaker: "PhonePe par das rupaye prapt hue." 🔊
That's the happy path. Now let's see where our mental picture goes wrong.
Myth 1: Does your money actually pass through PhonePe?
No. And this is the one that surprises people the most.
When you hand the chai anna a 10 rupee note, the money physically leaves your hand and lands in his. It feels like UPI works the same way, with PhonePe as the hand in the middle. It doesn't.
PhonePe is a messenger. It shows you a nice screen, reads the QR, collects your request, and sends it to NPCI. That's its job. The 10 rupees go from your bank to his bank. PhonePe never holds them, not even for a second.
This is also why you can pay the same chai anna from GPay, Paytm or your bank's own app, and it still lands in the same account. The app on top can change. The banks underneath do the actual money work.
So when someone says "I have money in PhonePe", what they usually mean is "I have money in the bank account I linked to PhonePe". (PhonePe wallet balance is a separate thing, and it's not UPI.)
Myth 2: Does NPCI check whether you have the money?
This one is half true, and I get why people say it. NPCI sits in the middle of everything, so it feels like NPCI is the one making all the decisions.
Think of NPCI as the traffic police at a busy junction. The traffic police decide which vehicle goes where, and they keep the whole junction moving. But they don't open your car's boot to count your luggage.
NPCI does two big things for your chai:
- It finds the right bank. You scanned a QR that says
chaianna@ybl. That's a UPI ID, officially called a VPA (Virtual Payment Address). NPCI asks the anna's app which bank account sits behind that ID. This is called address resolution, and NPCI has to get an answer within 10 seconds. - It routes the messages. It sends "minus 10" to your bank and "add 10" to his bank, and it passes the answers back.
The balance check happens at your bank. Your bank is the only place that knows you have 340 rupees. NPCI asks the question, and your bank answers it.
It sounds like a small detail, but it's good system design. Nobody in the middle needs to know your balance. Each system knows only what it needs to know.
Myth 3: Does PhonePe know your UPI PIN?
It doesn't, and this is my favourite part of the whole design.
When you type your 4 or 6 digit PIN, you're not typing it into PhonePe's own screen. The PIN pad comes from a small library that NPCI provides and every UPI app has to use. The moment you type the PIN, it gets encrypted on your phone, locked with a key that only your bank can open.
So picture it like this. You write your PIN on a paper, put it in a box, and lock it with your bank's lock. Then you hand the box to PhonePe. PhonePe carries it to NPCI, and NPCI carries it to your bank. Your bank opens the lock and reads the PIN.
PhonePe: "I have no idea what's inside this box. I'm just carrying it."
NPCI: "Same here. I only know which bank it's for."
Your bank: "Opening it... PIN matches. Approved."
On top of that, every message between these systems travels over encrypted connections. So even the "carrying" part is protected.
This is why nobody from PhonePe, GPay or your bank will ever need your PIN. If someone calls asking for it, that person is a scammer. Nobody genuine in the flow ever sees your PIN.
(If you want to play with the idea of scrambling data, try our hash generator. Hashing isn't the same as the encryption UPI uses, but it's a fun way to see how a PIN can turn into something unreadable.)
Myth 4: Does the money jump from your bank to his bank instantly?
Your balance changes instantly. The real money between banks moves later. Wait, what?
Here's the thing nobody tells you. When your bank says "minus 10" and his bank says "plus 10", both are updating their own books. The anna can spend that 10 rupees right away. But your bank still owes his bank 10 rupees.
Now think about scale. In August 2026, UPI processed 24.51 billion transactions worth ₹29.82 lakh crore in a single month. That's about 791 million payments a day. If every bank sent real money to every other bank for every single chai, the system would choke.
So the banks do something smarter. It's called net settlement.
NPCI (at settlement time): "Okay SBI, today your customers sent 5,000 crore to HDFC customers, and HDFC customers sent 4,800 crore to yours. So SBI, you owe HDFC 200 crore. Pay that. We're done."
Every bank in UPI keeps an account with the RBI, and the money moves between those accounts. UPI runs 10 settlement cycles a day, between roughly 9 am and 9 pm.
So your chai payment finishes in seconds for you and the anna. For the banks, it becomes one small line inside a much bigger number that gets settled a few hours later. Honestly, this is my favourite system design lesson in the whole article. You don't have to do the expensive thing for every request. You can do the cheap thing now, like updating a balance, and batch the expensive thing, like moving real money, for later.
Myth 5: Does "pending" mean your money is gone?
No. Pending just means one of the systems in the chain didn't answer in time.
Remember the conversation from the start? Every step has a deadline. Since June 2025, NPCI requires the main pay request to get a response within 15 seconds, and the status check within 10 seconds. Now imagine the anna's bank server is having a bad day.
NPCI → anna's bank: "Add 10 to the chai anna's account."
(...silence...)
NPCI: "Hello? Hello?? ...okay, I'll mark this as pending and check again."
PhonePe → You: "Payment pending ⏳"
And now you're standing at the chai stall, the anna is looking at you, and your screen is spinning. We've all been there.
Here's what actually happens in the background.
Case 1: Your bank never took the money. The payment simply fails. Nothing moved, so there's nothing to fix. Pay again.
Case 2: Your bank took 10, but the anna's bank never confirmed. This is the scary one: debited, not credited. The system keeps checking the status. After the big UPI outages of 2025, NPCI limited these checks to 3 times, with at least 90 seconds between them, because apps checking again and again had helped overload the system. Most of these cases sort themselves out within minutes.
If it still doesn't resolve, the RBI rules kick in. Under RBI's 2019 turnaround-time rules, if you were debited and the other person wasn't credited:
- For a person-to-person payment, your bank must auto-reverse the money by T+1 day (T is the day you paid).
- For a payment to a merchant, like a shop QR, the limit is T+5 days.
- If the bank is late, it has to pay you ₹100 for every day of delay, without you even asking.
So pending is annoying, but your money isn't gone. The worst case is that the refund takes a day or a few days. My tip: don't pay a second time the moment you see "pending". Check with the anna first. Otherwise you'll end up with one payment pending and one successful, and then you're waiting for a refund on a chai you already drank.
Myth 6: Is the speaker connected to your phone?
Nope. It doesn't care about your phone at all.
That little box on the chai anna's counter has its own 4G SIM or Wi-Fi inside. When the anna's side gets confirmation that 10 rupees landed in his account, it tells a cloud server, and the server pushes a message straight to that box. The box reads it out.
Anna's bank / PhonePe → speaker cloud: "10 rupees received for this merchant."
Cloud → speaker box: "Say it."
Speaker: "Received 10 rupees." 🔊
And in Telangana and Andhra, PhonePe SmartSpeakers can say it in Mahesh Babu's voice. PhonePe added his voice for Telugu in 2024, after Amitabh Bachchan for Hindi. So the chai anna literally has Mahesh Babu confirming his payments. That's a flex.
Why does this matter? Because the speaker listens to the anna's side, not yours. A screenshot of a "successful" payment can be faked. The announcement comes only after money actually reaches his account. That's why so many shopkeepers trust the box more than your phone screen.
How does UPI handle 791 million payments a day?
Now zoom out. Put all six myths together and you can see why this system holds up at India scale.
- The apps are thin. PhonePe and GPay handle the screens and the QR. They don't move money, so they can be replaced or added without touching the banks.
- One switch in the middle. Every bank connects to NPCI once, instead of every bank connecting to every other bank. With 752 banks live on UPI as of August 2026, that's the difference between 752 connections and hundreds of thousands.
- Each system knows only what it needs. The app doesn't know your PIN. NPCI doesn't know your balance. Your bank does the checking.
- Cheap now, expensive later. Balances update in seconds, and real money settles in batches.
- Hard deadlines and automatic cleanup. Every step has a timeout, and failures have a refund rule with a penalty attached.
If you ever get asked "design a payment system" in an interview, this is a great answer to study. Nobody made it clever with one magic trick. It works because every piece does one job and nothing more.
That's the system design behind your chai. ☕
Frequently Asked Questions
Is UPI owned by PhonePe or Google Pay?
No. UPI is run by NPCI, the National Payments Corporation of India, which was set up under the RBI and the banks. PhonePe, Google Pay and Paytm are apps that plug into UPI.
Who checks my UPI PIN?
Only your own bank. The PIN is encrypted on your phone with your bank's key, so PhonePe and NPCI pass it along without being able to read it.
Money got debited but the shop didn't receive it. What should I do?
Don't pay again right away. Wait a few minutes, because most cases resolve on their own. If it doesn't, raise a complaint in your UPI app. Under RBI rules, a debited-but-not-credited merchant payment must be reversed within T+5 days, and the bank owes you ₹100 per day of delay after that.
How long can a UPI payment stay pending?
Most pending payments resolve within minutes. If you were debited and the other person wasn't credited, the auto-reversal deadline is T+1 day for person-to-person payments and T+5 days for merchant payments.
Does the chai anna's soundbox work without internet?
It needs a connection, but not the anna's phone. It has its own SIM (or Wi-Fi) and gets the announcement pushed from a server.
Want more breakdowns like this? Browse the Art of Code blog for more real-world system design, and check out the developer job board when you're ready to build systems like this yourself.
Written by Adithya Guttha, Founder of Art of Code.