UPI by the Numbers — Why It's Unavoidable

Unified Payments Interface (UPI) is not just another payment method in India. It is the world's largest real-time payment system by transaction volume, and it is growing at a pace that traditional payment rails cannot match.

MetricValueSource
Monthly active users400+ millionNPCI Dec 2025
Monthly transactions12+ billionNPCI Dec 2025
Annual transaction value$2+ trillionNPCI FY2025
UPI apps available400+NPCI ecosystem
Banks live on UPI600+NPCI
Percentage of digital payments in India~80%RBI annual report

For Indian businesses, accepting UPI is not optional — it is how 60%+ of customers expect to pay. A 2025 survey by Razorpay found that UPI accounts for 66% of all digital payment transactions by volume in India. Credit cards: 13%. Debit cards: 11%. Net banking: 8%. Wallets: 2%.

If your business does not have a UPI QR code, you are turning away a majority of your potential customers. Worse — you are forcing them to use a method they consider inconvenient (cash, card) or untrustworthy (sharing card details online).

💡 Context: India added 500+ million new digital payment users between 2019 and 2025 — almost entirely driven by UPI. Most of these users started with a simple scan-and-pay flow from a P2P app (Google Pay, PhonePe, Paytm). They have never typed a card number on a website. UPI is their only digital payment habit.

How UPI QR Codes Actually Work

A UPI QR code encodes a UPI intent URL. When scanned, the payer's UPI app decodes the URL and opens with the payee's VPA (Virtual Payment Address), amount, and reference pre-filled. The payer enters their UPI PIN. The payment completes in under 5 seconds.

Here is what a UPI intent URL looks like:

upi://pay?pa=merchant@bank&pn=BusinessName&am=100&tr=INV001&tn=Payment%20for%20Order%20001&cu=INR

Parameter breakdown:

  • pa — Payee VPA. The UPI ID (e.g., merchant@bank). Required.
  • pn — Payee name. Displayed on the payer's screen. Optional but strongly recommended.
  • am — Amount in INR. Decimal format, no currency symbol. Optional (for static QR codes, omit this — customer enters amount manually).
  • tr — Transaction reference. Your invoice number, order ID, or unique code. Optional but useful for reconciliation.
  • tn — Transaction note. Description shown to the payer. URL-encoded. Optional.
  • cu — Currency. Always INR for domestic payments. Optional but good practice.

When the QR code is scanned:

  1. The phone camera decodes the QR (or the in-app scanner in Google Pay/PhonePe/Paytm decodes it)
  2. The operating system detects the upi:// scheme and opens the user's default UPI app (or shows a list of installed UPI apps)
  3. The UPI app parses the URL and shows a payment screen with the payee VPA, amount, and description pre-filled
  4. The user confirms the amount (if not pre-filled) and enters their UPI PIN
  5. The payment goes through the NPCI UPI switch — money moves directly from the payer's bank account to the payee's bank account
  6. Both parties receive instant confirmation. No intermediary holds funds. No settlement delay.

Key technical detail: UPI uses a virtual address (VPA) — not a bank account number or IFSC code. The VPA is a proxy. The payer never sees your account number. The money goes to the bank account mapped to your VPA. If you switch banks, you get a new VPA. Your existing QR codes stop working. Keep this in mind before switching business accounts.

⚠️ Important: UPI QR codes are not encrypted. Anyone who sees the QR code can decode the VPA. This is fine — the VPA is designed to be shared. The security is in the UPI PIN that the payer enters. Never put your bank account number or IFSC in a QR code. Only your VPA.

Static vs Dynamic vs Bharat QR vs Intent URL

Not all UPI QR codes are the same. The right format depends on your business type.

Static UPI QR Code

Encodes your VPA only. No amount, no reference. The customer opens their UPI app, scans the code, and manually types the amount. Best for:

  • Kirana stores, small retail: Amount varies per bill. Customer tells you the bill total, you point at the QR, they enter the amount.
  • Restaurants and food stalls: Bill amount varies. Static QR on a table tent or counter works.
  • Service businesses: Plumbers, electricians, tutors, freelance services where each transaction is different.

Dynamic UPI QR Code

Encodes VPA + amount + transaction reference. The amount is pre-filled in the payer's app. The customer scans, sees the amount, enters their PIN, and pays. Best for:

  • E-commerce checkout: Generate a fresh QR for each order with the exact amount and order ID.
  • Bill payments: Fixed-amount invoices (school fees, rent, EMI, subscription renewal).
  • Fixed-price retail: Stores where items have labeled prices. Customer picks items, bills at counter, QR shows exact total.
  • Event tickets, passes: Fixed price per ticket type. Dynamic QR prevents "I paid ₹100 for a ₹500 ticket" disputes.

Bharat QR

An NPCI standard that works across UPI, RuPay, Visa, and Mastercard. More complex to generate. Wider compatibility — a Bharat QR can be scanned with any card-accepting app, not just UPI apps. For most Indian small businesses, standard UPI QR is simpler and sufficient. Bharat QR makes sense for larger retailers that also accept card payments and want a single QR for all methods.

UPI Intent URL (manual, non-QR)

You can generate a upi:// hyperlink and send it via WhatsApp, SMS, or email. The user taps the link and their UPI app opens with everything pre-filled. Useful for invoice payments where the customer is not physically present. No QR printing needed.

💡 Pro tip: For most small businesses, start with a static QR. It costs nothing, works for every transaction, and you can switch to dynamic later when you integrate with billing software. A printed static QR on a laminated card costs ₹5 to produce and lasts 6-12 months.

Getting a UPI ID for Your Business

Before you can generate a QR code, you need a UPI ID (VPA). There are three tiers:

1. Personal VPA (for tiny / microbusinesses)

  • Format: name@okhdfcbank, name@oksbi, name@paytm, name@icici, etc.
  • Cost: Free. Instant. Available through any UPI app (Google Pay, PhonePe, Paytm, BHIM, bank apps).
  • Limits: ₹1 lakh per transaction in most cases. ₹1 lakh per day for many providers (varies by bank).
  • Suitable for: Freelancers, home-based businesses, roadside stalls, small kirana stores doing less than ₹1 lakh/month in digital payments.
  • Drawback: The VPA is tied to the phone number used to register. If you lose that SIM or switch numbers, you lose the VPA. Not ideal for a business that needs stable, long-term payment addresses.

2. Business VPA (for growing businesses)

  • Format: businessname@bank (more professional, can be branded).
  • Cost: Linked to a current account. Minimal monthly charges (~₹100-500 depending on bank).
  • Limits: ₹5 lakh+ per transaction. Much higher daily limits.
  • Providers: HDFC Bank, ICICI Bank, SBI (SBI Pay), Axis Bank, Razorpay, Paytm Business, PhonePe Business.
  • Suitable for: Restaurants, retail stores, service businesses doing ₹1-10 lakh/month in digital payments.
  • Advantage: Separate VPA from personal accounts. Supports multiple users (staff can receive payments under the same VPA). Better reconciliation tools.

3. Third-party UPI Aggregator (for high-volume / online businesses)

  • Providers: Razorpay UPI, Cashfree UPI, PayU UPI, Instamojo.
  • Cost: 0-0.5% per transaction (negotiable at volume). Some have flat monthly fees.
  • Limits: Custom. Can handle ₹50 lakh+/day.
  • Suitable for: E-commerce stores, SaaS platforms, businesses doing ₹5 lakh+/month in UPI payments.
  • Advantage: API integration, automated reconciliation dashboards, instant refunds, webhook notifications. Supports UPI AutoPay for subscriptions.
TypeSetup CostPer-Transaction FeeDaily LimitBest For
Personal VPAFreeZero (P2P/P2M ≤₹2,000)~₹1,00,000Microbusinesses, freelancers
Business VPA₹100-500/mo (account charges)Zero (P2M ≤₹2,000); 0-0.3% above₹5,00,000+Retail, restaurants, services
UPI AggregatorMinimal0-0.5%CustomE-commerce, high-volume

Generate a UPI QR Code in 30 Seconds

You do not need a payment gateway provider, a developer, or RBI registration to generate a UPI QR code. You can create one right now in three steps using our free tool:

  1. Go to our UPI QR Code Generator
  2. Enter your UPI ID (VPA), business name, amount (optional — leave blank for static QR), and reference
  3. Customize the QR design (colors, logo), then download PNG or SVG

That is it. The generated QR code works with all 400+ UPI apps. No account needed. No data stored. The QR code is generated entirely in-browser — your UPI ID never leaves your device.

💡 Pro tip: Generate both a static QR (VPA only, no amount) and a dynamic QR (with amount) for different use cases. Keep the static QR on your counter for in-person payments. Generate dynamic QRs programmatically for invoices and online orders using the same VPA.

MDR — UPI's Killer Feature (Zero Fees)

Merchant Discount Rate (MDR) is the fee that payment processors charge businesses for accepting digital payments. Here is how UPI compares to other methods:

Payment MethodMDR (Typical)On ₹1,000 Transaction
UPI P2M (under ₹2,000)0%₹0
UPI P2M (above ₹2,000)0% — for bank-account-based UPI. 0.30% for RuPay credit card on UPI.₹0 or ₹3
Credit card (Visa/Mastercard)1.5% — 3%₹15 — ₹30
Debit card0.9% — 1.5%₹9 — ₹15
Payment gateway (non-UPI)2% + GST₹23.60
Cash₹0 (but handling costs, theft risk)₹0 (hidden costs vary)

Let us make this concrete. A restaurant that does ₹10 lakh/month in digital payments:

  • If all payments are UPI: ₹0 in MDR fees. Annual saving: ₹0.
  • If all payments are credit cards: ₹20,000-30,000/month in MDR. Annual: ₹2.4-3.6 lakh.
  • If mix of 60% UPI + 40% card: ₹8,000-12,000/month in MDR. Annual: ₹96,000-1.44 lakh.

The government mandate (2020) explicitly zeroed MDR on UPI payments under ₹2,000. For amounts above ₹2,000, UPI remains zero MDR when the payment goes from a bank account (not a credit card linked via RuPay). Credit card on UPI (RuPay) attracts 0.30% MDR — still far lower than the 2-3% of traditional card networks.

Bottom line: For 90% of Indian small businesses, UPI QR is the cheapest way to accept digital payments. A business accepting ₹50,000/day in UPI payments instead of credit cards saves approximately ₹15,000-30,000 per month in MDR fees.

⚠️ Reality check: Some UPI aggregators (Razorpay, Cashfree) charge a "platform fee" of 0-0.5% even on UPI transactions. This is their processing fee, not MDR. For in-person payments via a bank-provided business VPA, there is genuinely zero MDR. For online payments through an aggregator, the fee is the aggregator's charge, not an NPCI-mandated MDR. Read the fine print before signing up.

Where and How to Display Your UPI QR Code

Where you put the QR code determines how often it gets used. Based on deployment patterns across Indian businesses:

Store counter (laminated card)

Most common approach. Print the QR code on a 10cm × 10cm card, laminate it, and place it on the counter. The customer points their phone at it from ~20-30cm distance. Works for 90% of retail scenarios.

  • Material: Matte lamination (glossy creates glare under shop lights).
  • Replace frequency: Every 6-12 months. Static QR codes printed on thermal paper (like billing counter stickers) degrade in 2-3 months due to heat and UV exposure. Use a proper print+laminate.
  • Multiple counters: If your store has multiple billing counters, place one QR per counter. Customers should not have to reach across another person to scan.

Bill / invoice print

Print a dynamic QR on every bill with the exact amount pre-filled. The customer scans the bill, sees the amount already entered, and pays. Reduces "wrong amount sent" problems and speeds up the payment flow.

  • Works with any billing software that supports QR image injection
  • For smaller setups: print a QR sticker on the bill manually using a label printer
  • Customers can scan while standing at the counter — reduces queue time by ~15 seconds per customer

WhatsApp / message payment requests

Send the QR image along with the bill via WhatsApp. The customer saves the QR to their gallery, opens their UPI app, and scans from the gallery. Slightly more friction than in-person scanning, but eliminates "account transfer please" back-and-forth.

Website checkout page

Embed the UPI QR code on your website's payment page. The customer opens the page on their phone, scans the QR from their laptop/desktop screen, and pays on their phone. This reduces cart abandonment — no card details to type, no OTP to wait for, no redirects to a payment gateway page.

  • Best for: service bookings, order confirmations, invoice payment pages
  • For high-traffic e-commerce: integrate a UPI aggregator API instead of manual QR (automated payment confirmation)

Delivery parcels

If you do Cash on Delivery (COD), include a laminated UPI QR card in the delivery package. The delivery agent shows the QR, the customer scans and pays digitally. Reduces the delivery agent's cash handling — no change to carry, no fake note risk, no "I only have a ₹500 note" situations.

⚠️ UPI QR on delivery parcels: Do not print the QR directly on the cardboard box. Cardboard absorbs ink unevenly and the QR becomes unscannable. Use a sticker label (matte finish) or a separate laminated card inside the package.

Common UPI QR Problems and Fixes

"QR code not working"

Cause: Misspelled VPA in the QR code. A typo in merchant@bank (e.g., merchent@bank) generates a valid QR code that leads nowhere. The customer's UPI app tries to send money to a VPA that does not exist.

Fix: Test before printing. Use your own UPI app to scan the QR and send ₹1 to yourself. If the ₹1 test payment reaches your account, the QR is correct. Always test with at least two UPI apps (Google Pay and PhonePe, for example) because some apps handle edge cases differently.

"Payment failed but money debited"

Cause: UPI payment timeout or bank-side failure. The payer's bank debited the amount, but the NPCI switch did not receive confirmation. Money is stuck in limbo.

Fix: RBI mandates auto-reversal of failed UPI transactions within 48 hours. In practice, 99% auto-reverse within 2-4 hours. Tell the customer to check their bank statement — if the debit shows but no credit reversal within 24 hours, the customer's bank can manually reverse it via a dispute request. As a merchant, you cannot initiate a reversal because the money never reached your account.

"Wrong amount sent"

Cause: Static QR code with no amount pre-filled. The customer entered ₹100 instead of ₹1,000. Or ₹1,000 instead of ₹100.

Fix: For static QRs, add a text instruction near the QR: "Please enter the exact bill amount before paying." For dynamic QRs (with pre-filled amount), this problem does not exist. For recurring wrong-amount problems, switch to a dynamic QR generated by your billing software at the point of sale.

"Customer's UPI app does not open when scanning"

Cause: Some phones — especially budget Android phones — use a generic QR scanner that decodes the URL but does not automatically trigger the upi:// protocol handler. The user sees the decoded text instead of a payment screen.

Fix: Add a label: "Scan with Google Pay, PhonePe, Paytm, or any UPI app." If the customer's default camera scanner does not work, they can open their UPI app and use the in-app QR scanner instead. Most UPI apps have a dedicated scan button on the home screen.

"Daily limit reached"

Cause: Personal UPI VPAs have per-transaction and per-day caps. Typically ₹1 lakh per transaction and an aggregate daily limit that varies by bank (often ₹1 lakh). Customers making large payments (rent, advance, bulk order) may hit this limit.

Fix: For transactions above ₹1 lakh, request payment via NEFT/RTGS (which has no per-transaction cap for most accounts) or ask the customer to split into two payments on consecutive days. For businesses, upgrade to a Business VPA with higher limits.

"QR code damaged / won't scan"

Cause: Physical damage — scratches, fading from sunlight, water damage, lamination peeling. Thermal paper prints degrade especially fast in Indian summer temperatures.

Fix: Use high-quality matte lamination. Store a digital copy of the QR code and reprint whenever the physical copy shows wear. Standard rule: replace counter QRs every 6 months. Check them monthly by doing a test scan yourself. If your phone has to try twice, replace the QR.

💡 Final tip: Keep a backup QR code in your phone's gallery. If a customer's scan fails, show them the QR on your phone screen. It works as a fallback and takes 3 seconds. Also — enable payment sound notifications on your phone (most UPI apps have this). You hear a "payment received" sound and confirm the transaction without looking at your phone. This builds trust with the customer and reduces disputes.

Ready to create your UPI QR code?
Generate UPI QR Code →