Payments
A UPI QR code without an amount
Leave am out of the upi://pay link and the payer types the amount before confirming. Open-amount codes suit shop counters, tips and donations where totals vary. The risk is a mis-keyed amount — ₹100 becomes ₹1,000 with one extra zero — so print prices clearly and watch larger credits.
The open-amount code
Omit am and the payload is nothing but identity:
upi://pay?pa=shop@upi&pn=My%20Shop&cu=INR
The payer's app opens with an empty amount field, the customer types the total, and confirms. This is the standard printed standee — the format behind almost every counter code in India — because it is generated once and correct forever. Prices live on the menu; the code only says who gets paid. The full parameter set is on the UPI QR format page.
Where open beats fixed
- Shop counters, where every bill is different.
- Tips, where the amount is the customer's choice by definition.
- Donations, where a suggested amount can suppress larger gifts and exclude smaller ones.
- Anywhere prices change — a fixed amount printed on paper outlives its accuracy; an open code cannot go stale. The trade-off is covered in static vs dynamic UPI QR.
The ₹100 vs ₹1,000 problem
The cost of an open amount is that a human types it. The characteristic error is not a random digit — it is the extra zero. ₹100 becomes ₹1,000; ₹1,500 becomes ₹15,000. The error is silent because the payer confirms the number they typed, not the number they meant, and the app has no idea what the bill was.
Both directions hurt. Undertyping loses you revenue you may never notice; overtyping creates a refund conversation and an awkward reversal through the payer's bank.
Cheap mitigations:
- Say the amount out loud as the customer types. The counter script "that's one twenty" catches most extra zeros before the PIN goes in.
- Print prices large and near the code so the number being copied is in the customer's eye line.
- Check your credit alerts for large amounts — an unexpectedly big credit is usually a typo, not a windfall, and refunding it promptly is cheaper than the dispute.
- Use fixed-amount codes for the expensive
items. Typos on a ₹40 coffee are absorbable; typos on a ₹15,000 fee are not. A locked
amremoves the field entirely.
Splitting the difference
You do not have to choose one model for the whole business. A common pattern:
| Context | Code |
|---|---|
| General counter | Open amount |
| Fixed-price items and combos | One fixed-amount code each |
| Tips | Open amount, separate tn=Tip |
| Invoices over ₹5,000 | Fixed amount, unique tr |
Distinct tn values make settlement tell you which stream a credit belongs to. Generate the
whole set from a CSV with the bulk tool and decode-verify each before
printing.
What to print beside an open code
Because the customer supplies the amount, the print around the code has to supply
everything else: your business name exactly as pn encodes it (the fraud check), the
VPA as text (the fallback when a camera struggles), and the prices. A bare code on a
counter makes the customer do the work of finding all three.
FAQ
How do I make a UPI QR code where the customer enters the amount?
Generate the code with the amount field left blank. The upi://pay link then carries only your VPA and name, the payer's app opens with an empty amount box, and the customer types the total before confirming.
Is a UPI QR code without an amount safe?
Yes — the payer still sees the payee name and must confirm with their UPI PIN. The main risk is not fraud but typos: a customer adding an extra zero pays ten times the bill.
Should a tip jar QR code have a suggested amount?
Keep the code itself open and print suggested amounts beside it. A locked amount forces one tip size; printed suggestions anchor generosity while leaving the choice with the tipper.
Why does my printed UPI code not show a price?
Because it was generated without the am parameter, which is normal for standees. The amount is meant to be typed by the payer; prices belong on the menu or signage, not inside the code.
Try it — free, no signup
Related
- The UPI QR code format, parameter by parameter — A UPI QR code is a upi://pay deep link. pa (the VPA) and pn (payee name) are required; am, cu, tn, tr, mc and mode are optional. NPCI standardised it, so…
- A UPI QR code with a fixed amount — Set am in the upi://pay link and every scan pre-fills that exact amount, which the payer cannot edit. When to lock the price and when to leave it open.
- Static vs dynamic UPI QR codes — A static UPI code omits the amount, so the customer types it — that is the printed shop standee, generated once and used forever. A dynamic code sets am…
- A UPI QR code for donations — Open amount, VPA registered in the organisation's name, name printed large, laminated standee. The donation-specific details that build donor trust.
- A UPI QR code for a small shop — Generate a static code from your VPA with no amount, print it at 4 cm or larger on matt stock, put your business name in large text beside it, and check…