Static or Dynamic UPI QR Code for a Shop Counter

For most shop counters, a static UPI QR code is the right choice. It holds your UPI ID and name, never changes, and the customer types the bill amount into their app. A dynamic QR code is generated for one specific payment and arrives with the amount already filled in, which suits invoices and fixed-price sales. The UPI rules set by NPCI define both types, and no general law forces a small shop to use either. The one hard legal rule is under GST: businesses with aggregate turnover above Rs 500 crore must print a dynamic QR on consumer (B2C) invoices, under Notification 14/2020-Central Tax dated 21 March 2020. Print a static code on a sturdy display, check it every morning, and confirm every payment in your own bank or UPI app.
Work it out: UPI QR Code Generator. Free, no sign-up.
In short
- A static UPI QR suits most shop counters because the customer types the amount and one printed code works for every payment.
- A dynamic QR fixes the amount for one payment and is the right tool when each bill must match an invoice.
- The only firm legal requirement is the dynamic QR on B2C GST invoices for businesses above Rs 500 crore turnover, under Notification 14/2020-Central Tax.
- Check your printed code every morning and confirm each payment in your own bank or UPI app, because stickers are easily swapped.
- Test every code in at least two UPI apps before you print a batch.
The direct answer: which code to use and what the rules say
A static UPI QR code encodes your UPI ID (the virtual payment address, such as name@bank) and your payee name. It carries no amount. The customer scans it, types the amount, and enters their UPI PIN. One printed code can take thousands of payments over its life, which is why most kirana shops, tea stalls and salons use it.
A dynamic UPI QR code is created for a single payment. It carries the amount, and often a transaction reference that ties the money to one bill. The customer scans, checks the pre-filled amount, and pays. Dynamic codes usually come from a billing system, a payment gateway or a bank portal, not from a sticker you buy once.
The NPCI UPI specifications describe both formats, and the NPCI guidelines for BHIM-UPI brand use apply to printed merchant codes. There is no rule that a shop must choose one. The legal rule that does bite is the GST requirement for B2C invoices from large businesses, covered below. If you have a billing system, or you issue invoices with fixed amounts, a dynamic code is worth setting up. If you run a counter with varying bill sizes, the static code is enough.
You can build and test a static or fixed-amount code with the free QR code generator on this page before you print anything.
How to decide, step by step
Start with three questions. How many bills do you take in a day? Does each bill need to be matched to a specific invoice? Is your turnover above the GST threshold that makes dynamic codes mandatory? The answers point to one of three setups, as the table shows.
| Your counter | What you issue | Code that fits |
|---|---|---|
| Small shop, varied small bills | Handwritten or printed bill, no billing software | Static code on the counter |
| Shop or restaurant with billing software | Computer bill per sale | Dynamic code generated by the billing or payment system, plus a static code as backup for walk-ins |
| Business above Rs 500 crore turnover selling to consumers | GST tax invoice to unregistered buyers | Dynamic QR printed on the B2C invoice, as the GST notification requires |
Once you pick a setup, the rest of the work is operational. Make sure the payee name on the code matches the name on your bank account, check that settlements reach your current account, and decide who checks the day's payments. A dynamic setup needs a person or software to confirm that each invoice was paid. A static setup needs a person to match the day's credits against the till total.
A worked example with real numbers
Take a shop that handles about 40 bills a day, with an average bill of Rs 250. On a static code, the day's expected UPI total is about Rs 10,000 (40 multiplied by Rs 250). These figures are illustrative, not a survey. The risk is amount entry. If a customer types 2,500 instead of 250, the shop receives Rs 2,250 too much. The shop must refund that difference, and the till shows nothing wrong because the payment itself went through correctly.
Now take a business with a billing system that generates a dynamic code for each bill. The bill for Rs 250 carries Rs 250 inside the code. The customer cannot change it. The day's total can be matched bill by bill against the settlement report. The trade-off is cost in setup and in staff time to integrate the system. For a shop doing 40 bills a day, the saving in refunds and matching time may or may not justify that effort. Measure your own refund and matching errors for two weeks before you decide.
The cases that change the answer
The first case is turnover. Under Notification No. 14/2020-Central Tax dated 21 March 2020, a registered business whose aggregate turnover exceeds Rs 500 crore in any financial year from 2017-18 onwards must include a dynamic QR code on B2C tax invoices. The requirement took effect on 1 December 2020, after deferrals. Circular No. 146/02/2021-GST dated 23 February 2021 clarified the details. A business below the threshold is not bound by this rule, though it may still choose a dynamic code.
The second case is the invoice type. The notification covers invoices to unregistered buyers, not business-to-business invoices. Some supplies are also excluded, such as certain services by insurers, banks and goods transport agencies. A B2B invoice with a dynamic code is not a legal requirement under this notification.
The required content of a GST dynamic QR is set out in the clarification. It includes the supplier's GSTIN, the supplier's UPI ID, the invoice number and date, the total invoice value, and the GST breakup. If a supplier issues an invoice carrying a dynamic QR and the buyer pays by another route, the invoice is treated as complying. Check the exact fields with your billing software vendor or CA before you rely on the output.
The third case is size. Section 269SU of the Income-tax Act, 1961, as referred to in the Taxation and Other Laws (Amendment) Bill, 2026, requires large businesses with turnover above Rs 50 crore to accept certain electronic payment modes, which include BHIM-UPI QR codes. Accepting UPI is therefore a legal duty for a large business, though it does not dictate static or dynamic. The same bill would amend Section 10A of the Payment and Settlement Systems Act, 2007. That section currently bars charges on notified electronic payments. The bill passed the Lok Sabha on 6 August 2026 and would let the government decide which modes carry charges. The Centre has said everyday peer-to-peer and general merchant UPI payments will stay free, and the bill's final form should be checked after it is notified.
The fourth case is the cost of change. A static code works offline once printed. A dynamic code depends on your billing system, internet access and the payment provider's uptime. If your system fails during a busy hour, staff need a fallback code at the counter.
How to print a counter code that stays valid
A printed code stays valid as long as the UPI ID behind it is active and the code has not been replaced by someone else. Follow these steps when you set it up.
- Generate the code from your own UPI ID linked to your business bank account, not a personal account. Use your payee name exactly as your bank records it.
- Test the printed or on-screen image in at least two apps, such as Google Pay and PhonePe or Paytm, with a small amount you can refund. Confirm the payee name shows correctly.
- Print at a clear size. QRStuff recommends a minimum of 2 cm by 2 cm for close scanning, and a larger size if customers scan from a distance. Its 10:1 rule suggests a code 30 cm wide for a scan from 3 metres.
- Laminate it or use a rigid, enclosed display. Thin paper stickers are easy to cover with a fake one.
- Keep the code within your own line of sight, and record the date you printed it.
- Inspect the code at opening every day. Look for a second sticker over the first, crooked edges or a fresh print that does not match the sign beside it.
The biggest threat to a static code is a fraudster who pastes a sticker over yours. The sticker points to their own UPI ID. Scammers do this on counters, donation boxes and parking meters. Your defence is the daily physical check and confirming each payment in your own bank or UPI app, not the customer's screen.
Common mistakes
The first mistake is treating a static code as an invoice. A static code cannot say which bill was paid. If you need to match payments to invoices, use a dynamic code or write the bill number in the transaction note through your system.
The second mistake is letting the amount field stay open for a fixed-price item. If every service costs the same, a dynamic code avoids the typing error completely. A static code relies on the customer typing correctly.
The third mistake is printing one code and forgetting it. Check the code each morning. Staff should also know to confirm payments on the shop's app, not to accept a screenshot from the customer.
The fourth mistake is using a code from a third-party generator without checking the payee details. Your bank or payment provider should issue your official merchant QR. Use a generator for testing and layout, then confirm the final code with your provider.
What to check with your bank, CA or lawyer
Ask your bank or payment aggregator whether your merchant QR is current and what display rules apply to it. NPCI issued an addendum to the Mandatory Brand Guidelines for BHIM UPI Merchant QR on 5 June 2026. Banks and payment providers must align new codes with it, and non-compliant printed material may need replacing. Ask whether your existing sticker needs reprinting.
Ask your CA whether your turnover is above the Rs 500 crore threshold in any year since 2017-18, and whether your invoices are B2C or B2B. Ask whether Section 269SU applies to you. Ask a lawyer to review any contract with a billing vendor that stores your UPI or bank details. For the amendment to Section 10A, check the notified text once it is published.
Finally, ask your bank how a refund for a wrongly typed amount is processed, and how long it takes. Put that process in writing for your staff.
Where automation fits
Many employers now give routine accounts and payroll checks to AI workers. These tools read settlement files, match each day's credits against the sales record, flag gaps and draft the reconciliation for a person to approve. The owner or finance lead still decides what to do about a shortfall, and still confirms the counter code and the bank details. Automation handles the matching. It does not replace the judgement on a dispute.
Sources
How AiStaffo would automate this
AiStaffo would connect your billing or sales record to your bank's daily settlement file, so every UPI credit is matched to a bill without anyone keying it in. An AI worker would flag any credit that does not match a bill, such as a wrongly typed amount, and prepare the refund note for approval. It would also send a daily reminder to check the counter code and log the result. You would still decide on refunds, confirm the code with your bank, and handle any dispute with a customer. To discuss your counter setup, Book a free automation audit.
Questions people ask
Is a static UPI QR code legal for a small shop in India?
When is a dynamic UPI QR code mandatory?
Can I use one static QR code for my whole shop and several counters?
What should I do if a customer pays the wrong amount on a static code?
How do I know if my printed QR code has been replaced by a fraudster?
Will the proposed Section 10A change make UPI payments cost shops money?
Book a free automation audit
Thirty minutes. We look at one process you run every week and tell you exactly what an AI worker would take off your desk, and what it would not.


































