Qraft StudioQR • BARCODE • NFC
Back to All Guides
QR Codes
7 min read2026-09-07

How UPI QR Codes Work: NPCI Deep-Link Specs, URI Parameters & Print Rules

Master the National Payments Corporation of India (NPCI) unified payment interface standard. Learn the exact URI syntax, merchant vs peer parameters, and counter standee sizing.

A
Alex Morgan
Lead Systems Architect
Open QR Code Studio

The Architecture of Frictionless QR Payments

In the digital payments landscape, the Unified Payments Interface (UPI) developed by the National Payments Corporation of India (NPCI) has become a global gold standard for instant real-time settlement. Millions of retail storefronts, street vendors, and e-commerce invoices display printed UPI QR codes that launch apps like Google Pay, PhonePe, Paytm, and BHIM instantly upon scanning.

This guide breaks down the underlying URI protocol, parameter requirements, and print specifications for commercial merchant standees.

---

1. The Anatomy of a UPI Payment URI

A compliant UPI QR code encodes a standard deep-link URI structured as follows:

upi://pay?pa=storename@icici&pn=Heritage%20Books&mc=5942&tr=INV98234&am=250.00&cu=INR&tn=Order%20Payment

Every query parameter serves a specific protocol function defined by NPCI:

  • **`pa` (Payee Address - Mandatory):** The Virtual Payment Address (VPA) of the recipient (e.g., `merchant@okaxis`, `business@upi`).
  • **`pn` (Payee Name - Mandatory):** The official legal business name or individual account holder. Must be URL-encoded (spaces converted to `%20`).
  • **`mc` (Merchant Category Code - Optional):** 4-digit ISO 18245 MCC code identifying the trade classification (e.g., `5411` for grocery stores, `5812` for restaurants).
  • **`tr` (Transaction Reference ID - Optional):** A unique alphanumeric invoice or order number for automated accounting reconciliation.
  • **`am` (Transaction Amount - Optional):** Decimal transaction amount (e.g., `150.00`). If omitted, the scanning app prompts the customer to input the amount manually.
  • **`cu` (Currency Code - Mandatory if Amount is set):** Must strictly be set to `INR` (Indian Rupee).
  • **`tn` (Transaction Note - Optional):** Brief memo or bill description visible on the customer's payment confirmation screen.

---

2. Static vs. Dynamic UPI QR Codes: Which Should You Print?

  • **Static Counter Standees (No Amount Pre-filled):**
  • * Contains only `pa` and `pn`.
  • * **Best For:** Physical checkout counters, café cash registers, and acrylic desk stands. The customer scans, types the exact bill total, enters their secure 4- or 6-digit MPIN, and shows the cashier the green checkmark screen.
  • * **Advantage:** Never expires. You print it once on durable acrylic or metal and it remains valid for the lifetime of your bank account.
  • **Dynamic Invoicing QR Codes (Amount & Order ID Fixed):**
  • * Generated programmatically on PDF invoices, restaurant dining table receipts, or digital POS terminal screens.
  • * Pre-populates the exact order total (`am=499.50`) and order number (`tr=REC-4829`), eliminating customer input errors.

---

3. Print Standee Sizing & Optical Contrast Rules

When generating your payment standee in our [QR Code Studio](/qr-code):

  1. **Physical Sizing:** For point-of-sale counter standees placed 30–50 cm away from customer smartphone cameras, print at a minimum width of **50 mm × 50 mm (2 × 2 inches)**.
  2. **Error Correction Level:** If placing your brand or store logo in the center of the payment code, always select **High (30%) Error Correction (H)**.
  3. **Download Vector:** Always export in **SVG or 300 DPI PDF** to ensure clean, crisp black modules that low-end smartphone cameras can resolve under dim indoor store lighting.
Try it in the Studio

Generate Production-Ready Codes for Free

Create customizable vector exports with live mockups, error correction, and instant client-side rendering.

Open QR Code Studio