Payments
A UPI QR code with a fixed amount
Add am with up to two decimal places to the upi://pay link and every scan pre-fills that exact amount — UPI apps treat it as merchant-set, so the payer cannot edit it. Fix the amount for tickets, tuition and price lists; leave it open for a general shop counter.
What a fixed amount does
Add am to the UPI deep link and the payer's app opens
with the amount already filled in:
upi://pay?pa=school@okaxis&pn=Sunrise%20School&am=15000.00&tn=Term%202%20fees&cu=INR
The behavioural detail that matters: the payer cannot edit a pre-filled amount. UPI apps
treat am as merchant-set — the customer either confirms ₹15,000.00 or cancels. There is no
field to retype, which means no mis-keyed digits, but also no flexibility if the price on the
code is wrong.
am accepts up to two decimal places and rides with cu=INR — UPI settles in rupees
only. A malformed amount (three decimals, a comma, a currency symbol) is the quickest way to
produce a code that some apps silently refuse; if a code opens with an empty amount box, see
payment QR amount not prefilled.
When fixing the amount is right
A fixed amount earns its place when the price is genuinely stable and the typo cost is real:
- Tickets and passes — one code per ticket tier, printed on the ticket or shown at the gate.
- Tuition and fees — a term fee of ₹15,000 mis-keyed as ₹1,500 is a reconciliation headache; locked amounts remove the failure mode entirely.
- Price lists and fixed menus — a code beside each item, each carrying that item's price.
- Parking, tolls, entry fees — posted single rates that change rarely and come with new signage when they do.
The common thread is that the amount is per thing, not per conversation. If the customer decides the total (a shop counter, a tip jar, a donation box), use an open-amount code instead.
The permanence trap
A printed fixed amount is as permanent as the paper it is on. Change the price and every
standee, sticker and flyer carrying the old am is now wrong — and unlike a wrong menu,
customers cannot override it. This is the core argument in
static vs dynamic UPI QR codes: print fixed
amounts only where the price and the signage change together.
Screens do not have this problem. A till or checkout page that generates a code per transaction can fix the exact bill every time, which is where fixed amounts do their best work.
One code per price, generated together
A price list needs one code per item. Build a CSV with a row per item — VPA, name, amount, and a distinct note — and generate the whole set with the bulk tool:
| pa | pn | am | tn |
|---|---|---|---|
| stall@upi | Dosa Corner | 60.00 | Masala dosa |
| stall@upi | Dosa Corner | 40.00 | Filter coffee |
| stall@upi | Dosa Corner | 100.00 | Combo |
The tn value appears on the payer's screen and in your statement, so settlement tells you
what sold. For anything that needs per-transaction tracking — tickets especially — add a
unique tr as well; see transaction references.
Each code is generated client-side and can be decode-verified before you print a hundred of them.
FAQ
Can the customer change the amount on a UPI QR code?
Not when the code sets am. UPI apps treat a pre-filled amount as merchant-set and lock the field — the payer can only confirm or cancel. To let customers choose the amount, generate the code without am.
How do I make a UPI QR code with a fixed amount?
Enter your VPA, payee name and the amount in a UPI QR generator. The amount becomes the am parameter of the upi://pay link, with up to two decimal places, and every scan pre-fills it.
Should my shop standee have a fixed amount?
Usually no. A printed amount becomes wrong the first time your price changes, and customers cannot override it. Fix amounts on per-item or per-ticket codes; keep the general counter code open.
Can a fixed-amount UPI code include paise?
Yes. The am parameter accepts up to two decimal places, so 149.50 is valid. More than two decimal places is invalid and some apps will reject the code outright.
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 without an amount — Omit am and the payer types the amount — right for counters, tips and donations. The risk is the extra-zero typo, and there are cheap ways to blunt it.
- 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…
- UPI transaction references — tr and tn — tr is the machine reference that comes back in settlement; tn is the note the payer sees. The uniqueness discipline that makes UPI reconcile itself.
- Payment QR code amount not prefilled — UPI carries the amount in am=, PIX in EMV tag 54, EPC in an EUR line. Why the field goes missing, why some apps ignore it, and how to regenerate per scheme.