Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Payments

UPI QR codes in Hindi and regional languages

The QR payload is an ASCII upi:// URI and never needs translating: the payer's app displays its own language. Localise everything around the code instead: the call to action, the instructions and the printed name. A Hindi CTA beside an English one costs nothing and widens who scans.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

The code is already universal

A common worry from shop owners: "do I need a Hindi QR code for Hindi-speaking customers?" No such thing exists, and that is good news. The payload inside every UPI QR code is an ASCII URI:

upi://pay?pa=shop@upi&pn=Sharma%20Stores&cu=INR

The VPA is structurally ASCII (letters, digits, dots and dashes before the @, Latin letters after it), and the parameters are Latin keys. The customer never reads any of this. Their app reads it, and the app renders its interface in whatever language the customer chose, major UPI apps ship in Hindi and a wide set of Indian languages, with BHIM alone offering well over a dozen. The confirmation screen, the buttons, the PIN prompt: all localised by the app, for free, regardless of who printed the code.

So one code serves every customer. What varies by language is everything printed around it.

Why not to put Devanagari inside the payload

Technically, pn and tn are percent-encoded, so non-Latin text can be forced in. It is a bad trade. In a URI, each character becomes percent-encoded UTF-8, and a Devanagari character is three bytes, so one Devanagari character costs nine payload characters (%E0%A4%B8) against one for a Latin letter. A short Hindi name balloons the payload, pushes the code up versions, and shrinks every module at print size. App handling of non-Latin pn is also inconsistent, and mismatches with the bank-registered name (held in Latin script) confuse the very confirmation screen customers rely on. Oversized, misbehaving payloads are a recurring cause of codes not being detected.

Keep the payload Latin; put the language on the paper.

What to localise on the standee

The call to action. The line that tells passers-by what to do:

Language CTA
Hindi स्कैन करें और भुगतान करें
Hindi (colloquial) यहाँ स्कैन करें, सभी UPI ऐप चलेंगे
English Scan any UPI app to pay

The instructions. "Open any UPI app → scan → enter amount → confirm" in the languages your counter actually hears. For regional languages beyond Hindi, have a native speaker write the line: a mistranslated CTA reads worse than an English one.

The business name. Print it in local script and Latin. The Latin version matters because the payer's app shows the bank-registered name, which is in Latin script: the customer should be able to match what they see on screen to something on the standee. That match is the fraud check, as the small-shop guide explains.

Multilingual standee layout

A bilingual A5 that works: business name in both scripts at the top, the code at 8–10 cm in the middle, Hindi CTA directly under the code, English CTA under that, VPA in small Latin text at the bottom. Two languages fit comfortably; three is the practical ceiling before the code loses space it needs: sizing rules are on printing a UPI standee. Donation contexts often justify the trilingual version (local language, Hindi, English) since the audience is widest: see UPI QR for donations.

Generate once at /upi, reuse the same SVG across every language variant of the artwork, and decode-verify each final layout: the code should be identical in all of them, and the decoder proves it.

FAQ

Can I make a UPI QR code in Hindi?

The code itself has no language. It encodes an ASCII upi:// link that apps read, and each customer's app displays its own language. What you localise is the signage around the code: the CTA, instructions and printed name.

Will a Hindi-speaking customer's app work with my QR code?

Yes. Major UPI apps ship interfaces in Hindi and many other Indian languages. The same code produces a Hindi confirmation screen for one customer and a Tamil one for another, chosen in their app settings.

Should the payee name in the code be in Devanagari?

No. Percent-encoding makes each Devanagari character cost nine payload characters, app handling is inconsistent, and the bank-registered name shown to payers is in Latin script anyway. Print the Devanagari name on the standee instead.

What should a bilingual UPI standee say?

Business name in both scripts, one clear CTA per language (for Hindi, स्कैन करें और भुगतान करें), and the VPA in Latin text. Keep the code at least 8 cm wide; languages share the margins, not the code's space.

Try it: free, no signup

  • 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…
  • Printing a UPI QR standee, Sizes that follow the 10:1 rule, A5 vs A4, matt lamination, dual UPI + BharatQR layouts, and a free PDF workflow from generator to print shop.
  • 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…
  • 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.
  • UPI QR code not detected by the payment app, Ranked causes (a malformed upi:// link with no pa, app parsing quirks, BharatQR confusion, and screenshot degradation), with the payload shape to check against.