How to Create a QR Code for UPI Payments (Direct Merchant & P2P)
Universal URI schema, VPA parameters, counter standees, and fraud prevention · Updated October 2026
1. What Is UPI and Why Has It Revolutionized Real-Time Payments?
The Unified Payments Interface (UPI)—developed by the National Payments Corporation of India (NPCI)—is one of the most sophisticated, high-volume real-time payment systems in the world, processing over 14 billion transactions every month.
Unlike traditional card networks (Visa, Mastercard, Amex), which rely on expensive hardware Point-of-Sale (POS) terminals that require monthly cellular SIM fees and charge merchants a 1.5% to 3.0% Merchant Discount Rate (MDR), UPI operates on an interoperable, mobile-first architecture. A simple printed 2D matrix barcode placed on a shop counter can collect instantaneous bank-to-bank settlements at zero transaction cost.
Furthermore, UPI QR codes are not restricted to India; bilateral payment agreements have expanded UPI QR acceptance to retail destinations across Singapore, the UAE, France, Mauritius, Nepal, and Sri Lanka, making cross-border QR payments an international standard.
2. The Universal upi://pay URI Specification
All UPI-compatible applications (including Google Pay, PhonePe, Paytm, BHIM, Cred, Amazon Pay, Navi, and hundreds of mobile banking apps) natively parse the universal upi://pay URI scheme.
upi://pay?pa=store@okaxis&pn=Acme%20Store&cu=INR&mc=5411
Direct-encoded static UPI URI. Paste this into QRKeep with your Virtual Payment Address (VPA) and store title.
Key parameters defined by the NPCI standard:
pa=(Payee Address / VPA): The recipient's Virtual Payment Address (e.g.merchanthub@iciciorjohn@oksbi). This is mandatory.pn=(Payee Name): The registered business or personal name displayed on the customer's phone screen upon scanning (e.g.Acme%20Coffee%20Roasters). URL-encoded spaces (%20) ensure seamless string parsing.am=(Transaction Amount): Optional. If omitted, the customer enters any custom amount at checkout. If specified (e.g.am=250.00), the customer's payment application locks in that exact bill total.cu=(Currency Code): Mandatory. Must be set toINR.mc=(Merchant Category Code): Optional 4-digit ISO 18245 code (e.g.5812for restaurants,5411for grocery stores).
3. Dynamic vs. Static UPI Payment QR Codes
In physical commerce, retailers utilize two distinct models of UPI barcode integration:
Permanent Counter Standees
Encodes VPA and Payee Name without an amount (pa=...&pn=...). Printed once on an acrylic standee or wooden block. The customer scans and types the bill amount manually.
- Zero monthly terminal rental fees
- Never breaks or requires Wi-Fi at the standee
- Immune to battery drain or hardware crashes
Dynamic Receipt QR Codes
Includes the exact invoice sum (am=1450.00) and invoice reference (tr=INV-9021). Generated per-transaction and printed at the bottom of the thermal paper receipt.
- Eliminates cashier amount entry errors
- Accelerates supermarket checkout lanes
- Ideal for automated vending machines
4. Step-by-Step Tutorial: Generating Your Permanent UPI QR Code
- Construct Your UPI URI: Open a text editor and assemble your string:
upi://pay?pa=YOUR_UPI_ID@bank&pn=YOUR_STORE_NAME&cu=INR
- Paste into QRKeep: Navigate to the QRKeep generator and paste your URI. Because static UPI strings are compact (around 50 characters), QRKeep compiles a spacious, clean Version 3 (29×29 modules) matrix.
- Export Vector SVG for Print: Click SVG. Vector SVGs can be scaled infinitely for acrylic standees, wooden billing blocks, or counter posters without losing edge sharpness.
- Verification Scan: Scan the generated preview with Google Pay or PhonePe. Verify that your registered business name appears correctly before printing.
5. Fraud Prevention & Physical Tampering Defense
Because static QR standees handle financial value in open physical retail environments, merchants must safeguard against physical tampering:
- Beware of Sticker Overlays: A common real-world attack involves a fraudster placing their own malicious QR sticker directly over your counter standee. Staff must inspect payment standees at the start of every shift.
- Encapsulate Under Acrylic or Metal: Print your QR code behind clear acrylic, beneath sealed glass, or laser-engrave it onto anodized aluminum. This prevents fraudulent stickers from adhering without immediate visual notice.
- Audio Confirmation Boxes: Pair your static QR standee with an instant soundbox (such as Paytm or PhonePe Soundbox) that announces successful payment amounts out loud to store staff.
6. Pre-Press Sizing & Design Standards
For swift checkout line throughput, adhere to these sizing rules:
- Standee Dimensions: Print the QR matrix at a minimum of 2.5 × 2.5 inches (65 × 65mm) so standing customers can scan comfortably from 18 inches away.
- Clear Framing & Logos: Include a clear label above the code: “Accepted Here: Google Pay, PhonePe, Paytm, BHIM, UPI”.
- Matte Finish: Always use matte lamination to avoid specular glare from cashier overhead spotlighting.
7. Transaction Notes & Universal PSP App Interoperability
The NPCI UPI specifications define several optional query parameters that simplify retail accounting and payment verification:
- Contextual Transaction Notes (
tn=): You can pre-fill the customer's payment remark with your store branch or table number, such as&tn=Table%2007%20Orderor&tn=Store%20Branch%20Downtown. When the customer submits payment, this note appears verbatim in your bank statement, enabling effortless evening reconciliation. - Universal PSP Interoperability: Because the standard
upi://payURI scheme is registered across the entire Indian banking ecosystem, a single printed static QR code works interchangeably across PhonePe, Google Pay, Paytm, BHIM, Cred, and mobile banking applications without requiring proprietary merchant hardware. - Zero Platform Dependency: Unlike aggregator payment QR codes that require proprietary merchant settlement accounts, a direct UPI URI pays directly into your primary bank VPA with immediate settlement and zero intermediary transaction cut.
8. Frequently Asked Questions (FAQ)
Can a customer alter the payment recipient when scanning my UPI QR code?
No. The recipient Virtual Payment Address (VPA) is permanently encoded into the matrix. When scanned, the banking app locks in your exact VPA and verified merchant name. The customer can only modify the payment amount if no fixed amount was hardcoded.
Do static UPI payment QR codes ever expire?
No, never. The 2D matrix directly encodes your bank VPA. As long as your bank account and VPA remain active with your payment service provider, your physical counter standee will function permanently.
Does QRKeep collect a commission or intermediate transaction cut?
Zero. QRKeep is an open, client-side utility that compiles the optical barcode. All payments travel peer-to-peer directly between your customer's bank and your bank via the NPCI banking network. QRKeep has zero access to your funds or transaction telemetry.
Create Your Permanent UPI Payment QR Code Now
Generate clean, high-resolution vector SVG UPI payment QR codes in seconds. Permanent for life with zero monthly gateway fees.