# 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 for a specific transaction and is shown on a screen. Printing a fixed amount is almost always a mistake.

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

---

## The difference

| | Static | Dynamic |
|---|---|---|
| `am` parameter | absent | present |
| Where it lives | Printed standee | Screen or receipt |
| Generated | Once | Per transaction |
| Amount entered by | The customer | The merchant's system |
| Cost | Printing only | Integration |

## Why a printed fixed amount is a mistake

The code is permanent; your prices are not. A standee reading "₹120" becomes wrong the first
time you change the price, and you cannot recall the ones already on the counter.

Print a static code with no amount, and put the price on the menu where it belongs.

The exception is a **single-price** context that genuinely cannot change without new
signage — a fixed donation tier, a single-item vending point, a parking bay with a posted
rate.

## Where dynamic codes earn their place

- **Point of sale**, where the till displays a code for the exact bill. Removes typing errors
  on larger amounts, which is where errors actually cost something.
- **Invoices**, with `tr` set to your invoice number so reconciliation is automatic.
- **Ecommerce checkout**, where the amount is known and the order id can ride in `tr`.

The `tr` parameter is what makes dynamic codes worth the integration: your settlement report
comes back with your own reference on it.

## Bulk static codes

If you need many static codes — per table, per room, per delivery agent — encode a distinct
`tn` or `tr` per code so settlement tells you which one was used:

```
upi://pay?pa=shop@upi&pn=Chai%20Point&cu=INR&tn=Table%2007
```

Generate them from a CSV with our [bulk tool](/bulk), which decode-verifies each one before
you print a hundred table tents.

## Printing the standee

- **4 cm minimum** of code for a 40 cm counter distance.
- Error correction **M**; **Q** only if you are adding a logo.
- **Matt** laminate. Gloss under a ceiling light is the classic counter failure.
- Print the **VPA and business name** as text alongside — it gives a fallback when a camera
  struggles, and it is a fraud check.

## FAQ

### Should my shop's printed UPI QR code include the amount?
No. Leave the amount out so the customer enters it. A printed fixed amount becomes wrong the moment your prices change, and you cannot recall the standees.

### What is the difference between a static and dynamic UPI QR code?
A static code omits the am parameter and is printed once; a dynamic code sets a specific amount per transaction and is normally shown on a screen.

### How do I tell which table a payment came from?
Give each table's code a distinct tn or tr value. That value appears in your settlement report.

### Do dynamic UPI QR codes cost money?
The code itself does not. Dynamic use implies a point-of-sale or payment-gateway integration, which is where any cost lies.

## Try it

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