UPI QR Code & Intent Deep-Link Format Specification
This specification details the structure, schema, and URI parameters used by Dynamic UPI and the upiqrcode WebAssembly engine to generate standard-compliant Unified Payments Interface (UPI) payment QR codes and deep links.
QR Data Schema
Section titled “QR Data Schema”The upiqrcode engine processes the following input parameters:
payeeVPA— The receiver’s Virtual Payment Address (e.g.merchant@upi).payeeName— The verified entity or personal name registered with the receiving bank.amount— Transaction amount in decimal representation (e.g.150.00). Optional.currency— Three-letter ISO currency code. Defaults toINR.transactionNote— Payment reference or description displayed in the payer’s mobile app. Optional.transactionId— Unique transaction reference identifier generated by the merchant or app. Optional.
NPCI Deep-Link Intent URI Specification
Section titled “NPCI Deep-Link Intent URI Specification”The generated deep-link conforms to the National Payments Corporation of India (NPCI) UPI linking standard:
upi://pay?pa=payeeVPA&pn=payeeName&am=amount&cu=currency&tn=transactionNoteSupported Query Parameters
Section titled “Supported Query Parameters”| Parameter | Key | Description | Status | Example |
|---|---|---|---|---|
| Payee VPA | pa |
Payee Virtual Payment Address / UPI ID | Required | merchant@upi |
| Payee Name | pn |
Receiver’s registered name | Required | Acme Store |
| Amount | am |
Transaction amount in INR | Optional | 299.00 |
| Currency | cu |
Currency code (default: INR) |
Optional | INR |
| Note | tn |
Transaction description or invoice ID | Optional | Order #1042 |
| Ref ID | tr |
Transaction reference ID for reconciliation | Optional | TXN12345678 |
QR Code Scanning & App Intent Handling
Section titled “QR Code Scanning & App Intent Handling”- Camera / App Scanning: When a user scans the QR code with any UPI app (Google Pay, PhonePe, Paytm, BHIM, CRED), the app parses the embedded
upi://payURI. - Pre-Filled Checkout: The app automatically pre-fills the payee VPA, payee name, amount, and note fields.
- Payer Confirmation: The user confirms the transaction using their secure UPI MPIN.
Next Steps
Section titled “Next Steps”- Getting Started — Overview of Dynamic UPI features.
- How to Use — Practical step-by-step implementation guide.
- Privacy Architecture — In-browser memory sandbox and zero-retention policy.