UPI QR Code Generator
Create a UPI payment QR code using structured payment fields including UPI ID/VPA, payee name, amount and transaction reference.
This generator keeps the GS1 Digital Link URI directly inside the QR code. Premium QR dynamic redirects are not used for GS1 Digital Link codes.
Advanced Customization
Colors & Gradients
Logo & Social Icon
QR Code Size
UPI QR Code Generator
Quick answer: A UPI QR code encodes a payment request using the upi:// URI scheme defined by the National Payments Corporation of India (NPCI). The required field is the payee VPA — the Virtual Payment Address such as name@upi. Omitting the amount lets the payer enter the value.
How to create a UPI QR code
- Enter the payee VPA — the Virtual Payment Address in the format name@bankhandle, for example merchant@okaxis or freelancer@ybl.
- Enter the payee name as it should appear in the sender's transaction history.
- Enter a fixed amount in INR if you want to pre-fill the payment value, or leave it empty to let the payer type the amount in their UPI app.
- Add a transaction note (tn field) of up to 50 characters if the payment needs a description visible to the payer.
- Add a transaction reference (tr field) if your system uses reference IDs for reconciliation.
- Scan the generated code with a UPI app on your own device to confirm the VPA and amount are correct before downloading.
- Customise the pattern, eye style, colours and logo if needed, then export PNG, SVG, WEBP or JPG at up to 4096 px.
The QR code is built in your browser. Nothing you enter is uploaded.
What a UPI QR code is
A UPI QR code is a standard QR code whose payload is a payment URI following the upi:// scheme defined by the National Payments Corporation of India (NPCI). The QR symbol follows ISO/IEC 18004:2015, the international standard for QR Code symbology. The UPI payload layer is specified in the NPCI UPI Product Overview and BHIM Brand Guidelines.
UPI — Unified Payments Interface — is India's real-time interbank payment system. A UPI payment moves funds directly from one bank account to another through the NPCI network. Any UPI-enabled app, including Google Pay, PhonePe, Paytm, and BHIM, can scan the QR code and initiate a payment.
A UPI QR code is not a bank account number, a card number, or a wallet. The VPA — Virtual Payment Address — acts as a proxy that resolves to the linked bank account at payment time. The payer never sees the account number.
UPI payload syntax and field reference
URI structure
The full UPI payment URI format, per the NPCI specification, is:
upi://pay?pa=<VPA>&pn=<name>&am=<amount>&cu=INR&tn=<note>&tr=<reference>All field values must be percent-encoded per RFC 3986. Spaces become %20. The ampersand-separated query string assembles the complete payment request.
| Parameter | Field name | Required | Format and constraints |
|---|---|---|---|
| pa | Payee address (VPA) | Yes | name@bankhandle — the Virtual Payment Address |
| pn | Payee name | Yes (UPI 2.0) | URL-encoded display name of the payee |
| am | Amount | No (static QR) | Decimal in INR, two decimal places, e.g. 50.00 |
| cu | Currency | Required if am present | Always INR — no other currency is valid for UPI |
| tn | Transaction note | No | Human-readable note, maximum 50 characters |
| tr | Transaction reference | No | Alphanumeric reference ID for reconciliation |
| mc | Merchant category code | No | ISO 18245 four-digit code for merchant transactions |
UPI 2.0, released by NPCI in August 2018, added a sign parameter for RSA-signed merchant QR codes. This signature is generated by the merchant's payment service provider and cannot be created by a manual URI generator.
VPA format
A VPA (Virtual Payment Address) follows the format handle@bankname. The bankname is a registered UPI payment service provider suffix allocated by NPCI. Common suffixes include:
| Suffix | Associated payment service provider or bank |
|---|---|
| @okaxis | Axis Bank via Google Pay |
| @ybl | Yes Bank via PhonePe |
| @paytm | Paytm Payments Bank |
| @upi | BHIM and direct bank VPAs |
| @oksbi | State Bank of India via Google Pay |
A VPA is unique to the individual or business registered with the UPI provider. Entering a non-existent VPA generates a valid-looking QR code that the UPI network will reject at payment time. Verify the VPA resolves correctly by scanning the code with a UPI app before printing.
Static vs dynamic UPI QR codes
| Feature | Static UPI QR | Dynamic UPI QR |
|---|---|---|
| Amount | Fixed or open-value | Fixed per transaction |
| Reusable | Yes | One use per code (PSP-generated) |
| Created by | Any URI generator | Payment service provider platform |
| Suitable for | Shops, tip jars, freelancers | High-value merchant transactions |
| Reconciliation | Manual or via tr field | Automatic via PSP transaction ID |
A static UPI QR with no fixed amount is the most common format for small merchants and freelancers. It is reusable, printable, and scannable from any UPI-enabled app. A dynamic UPI QR is generated by a payment service provider's platform for each transaction and typically carries a unique transaction ID linked to the PSP's backend.
When to use a UPI QR code
Small shops and street vendors. A printed static QR at the counter allows customers to pay the amount they owe by entering it in their UPI app. No card reader required.
Freelancers and service providers. A QR code on an invoice or quote allows clients to initiate a UPI payment directly to the freelancer's VPA without calling up the contact manually.
Tip jars and donation points. An open-value static QR lets donors choose their own amount. The payee name and transaction note make the payment identifiable in the statement.
Rental and shared expense collection. A QR code sent in a chat or pasted on a notice board allows housemates or co-attendees to pay their share without bank transfer details.
Remote and field workers. A QR code on a printed card or lanyard allows instant payment receipt in locations where internet is available but a POS terminal is not.
Design and print requirements
Maintain a four-module quiet zone on all sides. ISO/IEC 18004:2015 section 6.3.3 specifies this minimum, and UPI scanner apps require it for reliable detection.
Print at a minimum of 5 cm by 5 cm for full dynamic payload UPI codes at point-of-sale. This figure is cited from industry guidance for UPI QR display at merchant counters. A QR code with only a VPA and no optional fields is a smaller payload and can be printed at 2 cm, but 5 cm is the safe floor for a public merchant display.
Use dark modules on a light background. Strong contrast is particularly important in the high-ambient-light environments where UPI codes are typically scanned, such as outdoor stalls and shop counters.
A UPI code with all optional fields — payee name, amount, note, reference, and merchant category code — produces a longer URI and a denser QR symbol. At a fixed print size, more data means smaller modules. If you are using all fields, print larger rather than tighter.
Use error correction level M as a baseline. Error correction level M recovers approximately 15 percent of damaged codewords and is a reasonable default for a merchant QR likely to be handled and displayed in varying conditions.
Troubleshooting: why your UPI QR code is not working
The VPA does not exist or is typed incorrectly. The UPI network rejects payments to a VPA that is not registered. Scan the code with a UPI app and confirm the app shows the correct registered payee name before accepting the code as ready to use.
The amount field uses commas instead of a decimal point. UPI amounts must be formatted as a decimal number with a period separator: 1000.00, not 1,000.00. A comma in the am field may be rejected by some UPI apps.
The currency field is missing or incorrect. cu=INR is required whenever the am field is present. Omitting it, or using any other currency code, is outside the NPCI UPI specification and will cause errors in some apps.
The transaction note exceeds 50 characters. The tn field has a maximum of 50 characters per the NPCI specification. Truncate the note to 50 characters or fewer.
The code is too small to scan at the counter. A dense UPI payload at less than 3 cm will fail intermittently in poor lighting or when the scanner camera is a low-quality phone. Print at 5 cm or larger for any public-facing merchant display.
The payee name contains special characters. All field values must be percent-encoded. If the payee name contains an ampersand, equals sign, or other reserved character, it must be encoded as %26, %3D, and so on. This generator handles the encoding automatically — if you are constructing the URI manually, encode carefully.
UPI versus other payment QR systems
| Feature | UPI QR (India) | EPC QR (Europe/SEPA) | PIX QR (Brazil) |
|---|---|---|---|
| Governing body | NPCI | European Payments Council | Banco Central do Brasil |
| Currency | INR only | EUR only | BRL |
| Standard | upi:// URI, NPCI spec | EPC069-12 v3.1 | EMVCo MPM, BCB BR Code Manual |
| Minimum required field | Payee VPA (pa) | Beneficiary name and IBAN | PIX key in merchant account |
| Amount required | No | No | No (static open-value) |
Each system is specific to its payment network and jurisdiction. A UPI QR works only with UPI-enabled apps and only for INR transactions through the NPCI network.
What this UPI QR Code Generator gives you
This browser-based tool builds an NPCI-style upi:// payment request containing a VPA, payee name and optional amount or note. It is designed for Indian merchant payments, invoices, remote requests and fixed-amount collection. The live preview updates while you edit, which makes it easier to catch a missing field or an unexpectedly dense symbol before download.
You can adjust matrix patterns, finder-eye styles, foreground and background colours, gradients, frames, size and an optional logo. Exports are available as SVG, PNG, WEBP and JPG at 512, 1024, 2048 or 4096 pixels. SVG is the practical choice for professional print. A high-resolution PNG suits office documents and digital artwork.
The static payload is constructed in your browser. The information entered into the generator does not need to be uploaded to create the QR image. Confirm the VPA and displayed payee inside the payment app before approval; the QR image itself does not validate account ownership.
Using this QR code in Bahrain and abroad
UPI is an Indian payment system, not a domestic Bahrain payment rail. It is useful in Bahrain only when the intended payer and payee have compatible UPI access.
Use British English spelling in customer-facing copy when that matches your organisation’s house style, and provide Arabic wording where the audience expects it. Keep the action after scanning obvious. A short line beside the symbol such as “Scan to save the contact” or “Scan to open the location” gives people confidence before they point their camera.
Test the final design on current iPhone and Android devices. Test it again after printing on the actual paper, sticker, card, sign or packaging material. Bahrain’s bright outdoor light can expose glare and low-contrast problems that are less obvious on a computer screen. For international use, confirm country codes, currencies, time zones, regional app availability and payment-network compatibility.
Before you publish
- Correct QR payload type
- Complete and verified data
- Four-module quiet zone
- Strong foreground contrast
- Proportional square scaling
- Logo kept within safe limits
- SVG or high-resolution PNG
- Final-size device scan test
Frequently asked questions
Open a question to read a concise technical answer.
01What is the UPI QR code format?+
The format is upi://pay?pa=<VPA>&pn=<name>&am=<amount>&cu=INR&tn=<note>&tr=<reference>. The pa field (payee VPA) is required. The am field is optional for static QR codes — omitting it lets the payer enter the amount in their UPI app. All values must be percent-encoded per RFC 3986. This format is defined by NPCI, the National Payments Corporation of India.
02What is a VPA in a UPI QR code?+
A VPA — Virtual Payment Address — is the UPI equivalent of a username for payments. It follows the format name@bankhandle, such as merchant@okaxis or freelancer@ybl. The VPA resolves to a linked bank account through the NPCI network. The payer never sees the actual account number when using a VPA.
03Can I make a UPI QR code without a fixed amount?+
Yes. Omit the am and cu parameters from the URI. The QR code will open the payment screen in the payer's UPI app with the payee name pre-filled, and the payer enters the amount manually. This is the most common format for small merchant QR codes displayed at a counter.
04Does a UPI QR code work with Google Pay, PhonePe, and Paytm?+
Yes. Any app that supports the NPCI UPI standard can scan a UPI QR code. Google Pay, PhonePe, Paytm, BHIM, and all other NPCI-certified UPI apps are compatible with the upi:// URI format.
05What is the difference between a static and dynamic UPI QR code?+
A static UPI QR encodes the VPA and optional fixed amount directly. It is reusable and can be created without a payment service provider. A dynamic UPI QR is generated by a PSP platform for a specific transaction and carries a unique transaction ID. Dynamic codes support automated reconciliation and are typically used by registered merchants for higher-value transactions.
06Is a personal UPI VPA the same as a merchant UPI account?+
No. A personal VPA is linked to an individual bank account and is suitable for peer-to-peer payments. NPCI and bank rules govern merchant collection accounts separately. If you are collecting payments for a business at scale, contact your bank or a UPI-certified payment service provider about a merchant account and the associated compliance requirements. A personal VPA is not a substitute for a merchant account.
07What is the minimum print size for a UPI QR code?+
Industry guidance for merchant UPI QR codes is a minimum of 5 cm by 5 cm for a full dynamic payload displayed at a point-of-sale counter. A code with only a VPA and no optional fields can be printed at 2 cm for close-range scanning, but 5 cm is the safe standard for a public merchant display.
08How do I add a transaction note to a UPI QR code?+
Add the tn parameter to the URI: tn=Payment%20for%20order%20123. The value must be URL-encoded and no longer than 50 characters per the NPCI specification. The note appears in the payer's transaction history and helps both parties identify the payment.
09Why does my UPI QR code scan but the payee name is wrong?+
The pn parameter is a display hint that appears in the payer's app before payment confirmation. The actual payee name registered with the UPI provider may differ if the pn field was typed incorrectly. The VPA (pa field) determines who receives the funds. Verify the VPA resolves to the correct registered name by scanning the code with a live UPI app.
10Does a UPI QR code expire?+
A static UPI QR code does not expire. The VPA is encoded directly in the pattern, and the code continues to work as long as the VPA remains active and linked to a bank account. If the VPA is deregistered or the bank account is closed, the UPI network will reject payments even though the QR code still scans.