How UPI Works – Complete Guide to India's Payment System
Everything about India's Unified Payments Interface: UPI IDs, QR format, apps and global expansion.
What is UPI?
UPI — the Unified Payments Interface — is India's national real-time payment system, developed and operated by the National Payments Corporation of India (NPCI) under the oversight of the Reserve Bank of India (RBI). Launched in April 2016, UPI has grown into the world's largest instant payment network by transaction volume, processing over 10 billion transactions per month as of 2026. It allows any two bank account holders to transfer money instantly, 24/7 including holidays, at zero cost to consumers, using a simple Virtual Payment Address (VPA) in the format username@bankhandle.
How UPI Works – Step by Step
A merchant displays a UPI QR code (static for any amount, or dynamic with a fixed amount). The customer opens any UPI app — PhonePe, Google Pay, Paytm, BHIM — scans the code, reviews the pre-filled payment details, and enters their UPI PIN to authorize. The NPCI infrastructure processes the transfer in real time and both parties receive instant confirmation. Funds move directly between bank accounts with no intermediary wallet involved.
- 1
Merchant displays UPI QR code
A static QR code (for any amount) is printed or displayed at the counter. For invoices and e-commerce, a dynamic QR with the exact amount is generated per transaction.
- 2
Customer opens any UPI app
PhonePe, Google Pay, Paytm, BHIM, Amazon Pay, WhatsApp Pay or any banking app work identically. UPI is fully interoperable across all participating apps and banks.
- 3
Customer scans the QR code
The app activates the camera. The UPI QR can be scanned from a printed slip, a phone screen or a digital PDF.
- 4
Payment details are pre-filled
The payee UPI ID, name, and amount (if embedded) are instantly extracted. No manual entry, no typos, no wrong IFSC codes.
- 5
Customer enters UPI PIN
The 4- or 6-digit UPI PIN is the final authentication step. It never leaves the device and is never stored anywhere outside the bank's secure system.
- 6
Transfer completes within seconds
The NPCI infrastructure processes the transfer in real time. Funds move directly between bank accounts – no intermediary wallet involved.
- 7
Both parties receive confirmation
The payer gets a transaction success notification. The payee receives an instant credit alert via SMS and in-app notification.
Understanding UPI IDs (Virtual Payment Address)
A UPI ID (Virtual Payment Address / VPA) is the human-readable address of a bank account in the UPI system. The format is always username@bankhandle — for example john@okicici or 9876543210@paytm. The username can be a mobile number, name or custom string. The bank handle identifies the bank or payment app. One person can have multiple UPI IDs linked to different apps — all pointing to the same bank account. The UPI ID completely replaces the need to share account numbers and IFSC codes.
| Handle | Bank | App / Usage |
|---|---|---|
| @okicici | ICICI Bank | Google Pay / third-party |
| @ybl | Yes Bank | PhonePe |
| @paytm | Paytm Payments Bank | Paytm |
| @oksbi | State Bank of India | Google Pay (SBI) |
| @upi | NPCI / all banks | BHIM |
| @axl | Axis Bank | Axis Pay |
| @hdfcbank | HDFC Bank | HDFC MobileBanking |
| @okaxis | Axis Bank | Google Pay (Axis) |
| @ibl | IndusInd Bank | IndusInd |
| @kotak | Kotak Mahindra Bank | Kotak Pay |
The UPI QR Payload Format
A UPI QR code encodes a standard deep link using the upi://pay URI scheme, defined by the NPCI UPI Deep Link specification. Required parameters are pa (payee UPI ID) and pn (payee name). Optional parameters include am (amount in INR), cu (currency, always INR), tn (transaction note, max 50 chars), mc (4-digit Merchant Category Code) and tr (transaction reference). Example: upi://pay?pa=merchant@okhdfc&pn=Raj%20Stores&am=150.00&cu=INR&tn=Invoice%20001
upi://pay?pa=merchant@okhdfc&pn=Raj%20Stores&am=150.00&cu=INR&tn=Invoice%20001
| Parameter | Example Value | Required | Description |
|---|---|---|---|
| pa | merchant@okhdfc | Required | Payee UPI ID (Virtual Payment Address) |
| pn | Raj Stores | Required | Payee name – URL-encoded, max 50 characters |
| am | 150.00 | Optional | Amount in INR – decimal with dot (omit for static QR) |
| cu | INR | Optional | Currency – always INR for UPI |
| tn | Invoice 001 | Optional | Transaction note / payment purpose – max 50 chars |
| mc | 5411 | Optional | Merchant Category Code (4-digit MCC) |
| tr | TXN001 | Optional | Transaction reference – for merchant reconciliation |
Static vs Dynamic QR Codes
Static UPI QR codes contain only the payee UPI ID and name with no preset amount. The payer enters the amount manually — ideal for shops, restaurants and general use. The code can be printed once and used indefinitely. Dynamic QR codes include a specific amount and transaction reference, generated per transaction. They are ideal for invoices, e-commerce checkouts and POS terminals where automatic reconciliation is required.
| Feature | Static QR | Dynamic QR |
|---|---|---|
| Amount embedded | No – payer enters amount | Yes – fixed in QR code |
| Best for | Shops, general use | Invoices, e-commerce checkout |
| Reusability | Print once, use forever | New code per transaction |
| Payer input | Amount + PIN | PIN only |
| Reconciliation | Manual matching | Automatic via transaction ref |
The UPI App Ecosystem
All UPI apps are fully interoperable — a payment from PhonePe lands instantly in an account linked to BHIM, Paytm or any banking app. There is no lock-in to any specific app. As of 2025, PhonePe leads with ~48% market share, followed by Google Pay (~37%), Paytm (~8%), BHIM (~3%) and Amazon Pay (~2%). Every major Indian bank also has its own UPI-enabled mobile banking app. All use the same NPCI infrastructure and accept QR codes from any source.
UPI's Global Expansion
UPI is no longer limited to India. NPCI International has extended UPI acceptance to countries with large Indian diaspora communities: Singapore (linked to PayNow), UAE, Bahrain, France, UK, Mauritius, Nepal, Bhutan and more. Indian travellers can pay at Singapore merchants accepting PayNow QR codes using their UPI app — the transaction is settled in SGD from the Indian bank account in INR. The G20 mandate to interlink fast payment systems globally will further expand UPI's reach.
Singapore
PayNow
UAE
AECB / Mashreq
France
LYRA
UK
PayXpert
Bahrain
BFC
Mauritius
MCB
Nepal
NPI / Fonepay
Bhutan
BNBL
Malaysia
DuitNow (planned)
Thailand
PromptPay (planned)
Security & Privacy
The UPI PIN is entered by the payer in their own banking app and is never encoded in the QR code or transmitted to the merchant. No charge can occur without the payer actively entering their PIN or biometric. A UPI QR contains only the UPI ID and name — no bank account details, no IFSC, no sensitive data. QRPayHub generates UPI QR codes entirely client-side: no payment data is sent to our servers. Failed transactions are automatically refunded within 24–48 hours per RBI guidelines.
- 🔒PIN never in QR code: The UPI PIN is entered by the payer in their own banking app and is never encoded in the QR code or transmitted to the merchant.
- ✅Payment always authorized by payer: No charge can occur without the payer actively entering their PIN or biometric. QR codes are read-only payment requests.
- 🏦NPCI regulated, RBI supervised: UPI operates under the Payment and Settlement Systems Act, 2007. All transactions are logged and audited by NPCI.
- ⚡Instant refunds for failures: Failed or disputed transactions trigger automatic refunds within 24–48 hours per RBI circular.
- 🛡️Safe to share QR publicly: A UPI QR contains only your UPI ID and name – no bank account details, no IFSC, no sensitive data.
- 🌐Client-side generation: QRPayHub generates UPI QR codes entirely in your browser. No payment data is sent to our servers.