# 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.

Source: https://useqr.app/docs/payments/upi-qr-without-amount · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 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](/docs/payments/upi-qr-code-format).

## Where open beats fixed

- **Shop counters**, where every bill is different.
- **Tips**, where the amount is the customer's choice by definition.
- **[Donations](/docs/payments/upi-qr-for-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](/docs/payments/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:

1. **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.
2. **Print prices large and near the code** so the number being copied is in the customer's
   eye line.
3. **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.
4. **Use [fixed-amount codes](/docs/payments/upi-qr-with-fixed-amount) for the expensive
   items.** Typos on a ₹40 coffee are absorbable; typos on a ₹15,000 fee are not. A locked
   `am` removes 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](/bulk) and [decode-verify](/validate) 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

- https://useqr.app/upi
- https://useqr.app/bulk
- https://useqr.app/validate
