Free Tool
4.9/5

Free UPI Payment Link Generator

Turn your UPI ID into a payment link and a real, scannable QR code for UPI apps like GPay, PhonePe and Paytm. Fix the amount or let the payer choose. Built in your browser: your UPI ID never leaves it.

Flyn does not touch your money. This page builds a payment request, not a payment. The link and the QR are assembled in your browser from what you type, with and your UPI ID is never sent to Flyn. Money moves directly between the payer's UPI app and your bank.

The same ID you see in GPay, PhonePe, Paytm or your bank app under "My UPI ID".

Shown on the payer's confirm screen next to the name your bank has on file.

Amount

Written into the link as two decimals, so 499 becomes 499.00.

Appears in both statements, so it is the fastest way to match a payment to an order. Trimmed to 80 characters, our own cap: NPCI's spec sets no length, and 80 is the figure Google Pay's web payment API documents for its transaction note.

CurrencyINR (fixed)

Fill in your UPI ID and payee name, then generate. The QR below is a real, scannable code, test it with your own phone before you print it.

Sending the catalogue with the payment request?

A UPI link cannot be tracked, by design, because it does not touch the web. The catalogue, price list or product page you send alongside it can be. Wrap that one in a Flyn short link and see how many people actually opened it before they paid.

Free click counts Free QR on every link Custom domains on Pro
Shorten for free

How to Create a UPI Payment Link in 3 Steps

Step 1: Enter your UPI ID and payee name, UPI Payment Link Generator screenshot
1

Enter your UPI ID and payee name

Type the UPI ID you want the money to land in, in the name@bank shape, plus the name the payer should see. The shape is checked as you type, so a missing handle or a stray space is caught before you print anything.

Step 2: Set the amount and a note, UPI Payment Link Generator screenshot
2

Set the amount and a note

Fix the amount for an invoice, or switch to payer chooses and the amount parameter is dropped from the link entirely. Add an order or table number as the note, then generate the link and a real, scannable QR.

Step 3: Share the link, or print the QR, UPI Payment Link Generator screenshot
3

Share the link, or print the QR

Send the link to anyone on a phone, share it on WhatsApp, or download the QR as PNG or SVG and print it for the counter. Anyone at a desktop uses the QR, because a upi:// link has nothing to open there.

What Is a UPI Payment Link?

A UPI payment link is a deep link, not a web address. It looks like upi://pay?pa=you@bank&pn=Your%20Shop&am=499.00&cu=INR&tn=Order%201042 and its whole job is to hand a set of payment details to a UPI app on the payer's phone. The app opens on its confirm screen with your ID, your name and the amount already filled in, and the payer enters their UPI PIN. Nothing has been paid until they do.

That distinction matters more than it sounds. This is a payment intent, not a transaction. There is no gateway, no order id, no webhook and no settlement report, because nothing in the chain belongs to a service provider. The string is just text. Encode that same text as a QR code and you get a square of the kind taped next to tills across India, which is why the two outputs on this page are really the same thing in two shapes.

The upside is that it costs nothing and cannot be switched off. There is no account to keep active, no free trial that expires and takes your printed code with it, and no third party in the money path. The trade-off is the other side of the same coin: because nothing intermediates the payment, nobody can tell you how many people opened the link, and there is no automatic order confirmation. You reconcile from your bank statement, which is exactly what the transaction note field is for.

This generator is deliberately the plain version of the format. It builds the bare intent, with no merchant category code, no signed payload and no PSP dependency, so the code you print today encodes the same payment request for as long as your UPI ID is still active.

The Parameters in a UPI Link

Five parameters do the work here, and four more turn up on registered-merchant links. Here is what each one is for, and why this tool generates some and deliberately leaves the rest alone.

ParameterMeaningBuilt hereNotes
paPayee addressYesYour VPA, the name@bank identifier that receives the money. The one parameter a upi://pay link cannot do without. Left unencoded apart from spaces, since @ is a legal character inside a query string, so there is no reason to send it as %40.
pnPayee nameYesThe label offered to the payer. URL-encoded, so "Sharma Electronics" becomes Sharma%20Electronics. The payer may instead be shown the name their app looks up against that VPA, so use your registered or trading name.
amAmountYesThe amount in rupees. NPCI asks only for the "Transaction amount in decimal format", and its own examples use a bare integer; we write two decimals because that is unambiguous. Omitted completely when you pick "payer chooses", because the spec says "If 'am' is not present then field is editable" and does not define an empty am=.
cuCurrencyYesINR. UPI settles in rupees, so there is nothing to choose here. This tool writes the parameter out rather than leaving it implied.
tnTransaction noteYesA short reference that lands in both statements. URL-encoded and capped at 80 characters. NPCI's spec sets no length for it; 80 is our own cap, borrowed from the "(Maximum length is 80 characters)" that Google Pay's web payment API documents for its transaction note.
trTransaction referenceNoA unique reference id used by merchants to reconcile a specific order through their PSP. Only meaningful if you have a payment provider generating and tracking those ids, so this tool leaves it out.
mcMerchant category codeNoA four digit code identifying the business category on a registered merchant VPA. Issued during merchant onboarding, not something you can invent, so it is omitted.
urlInvoice URLNoA link to an invoice or order page. This tool leaves it out, because a plain short link sent alongside the payment request does the same job without depending on where the payer's app chooses to show it.
mode, orgid, signSigned intent fieldsNoUsed for verified merchant intents that carry a digital signature issued by a PSP. They cannot be self-generated, and an invalid signature is worse than none, so this tool builds the plain, unsigned intent.

Every value except the VPA is percent-encoded, so a payee name with a space or an ampersand in it cannot break the query string. The VPA keeps its @ because that character is legal inside a query string, so there is nothing to gain from encoding it.

Why the Link Does Nothing on a Laptop

This is a common question about UPI links, and the answer is not a bug. Here is what happens on each device, and which of the two outputs to send.

A upi:// link is handed to an app, not fetched from a server. Your operating system looks for something registered to handle the upi scheme. On a phone with GPay or PhonePe installed, it finds one. On a desktop it finds nothing, so the browser stays exactly where it is. Nothing is broken, and no amount of retrying will change it. Send the QR to desktop payers instead.

Where the payer isTapping the linkScanning the QR
Android phone with a UPI appOpens the UPI app on its pay screen, or an app chooser if more than one is installedScans from a UPI app's own scanner or the camera
iPhone with a UPI appIf an installed app claims the scheme it opens on its pay screen, though we have not tested this on iOS. With more than one installed, Apple documents that which app the system targets is undefinedScans from the Camera app or in-app scanner
Phone with no UPI app installedNothing happens, or an "unsupported address" alertNothing to scan with until an app is installed
Windows or Mac desktopNothing happens. There is no app to hand it toThe answer here. Show it on screen, scan with a phone
In-app browser (Instagram, WhatsApp)May not open at all. If nothing happens, open the page in Chrome or Safari firstWorks, because the scan happens outside the browser

The practical rule is simple. If you are messaging a customer who is holding a phone, send the link. If you are on a call, on a video, on a poster, or emailing someone at a desk, send the QR image. When you are not sure, send both: they encode the same payment request, so there is no risk of them disagreeing.

Fixed Amount or Payer Chooses: Which to Use

The amount is the field that changes how the payer's app opens, so it is worth getting right before you print anything.

ModeIn the linkBest forWatch out for
Fixed amountam=499.00 presentInvoices, order totals, fixed-price products, depositsA typo in the amount means a wrong payment and a manual refund. Regenerate rather than editing the string by hand.
Payer choosesam left out entirelyTips, donations, running tabs, variable-weight goodsPayers occasionally type the wrong figure, so put the amount in the note or say it out loud at the counter.

The empty amount trap

Leaving the amount box blank and letting am= stay in the link with nothing after it is not the same as an open amount. NPCI's UPI Linking Specifications say of the amount field, “If 'am' is not present then field is editable”, so an absent parameter is the documented way to hand the payer the keypad. The same spec spells out what an empty value means for the neighbouring mam tag, grouping it with the tag being absent or null, but says nothing about an empty am=. This tool removes the parameter entirely in payer-chooses mode rather than emit a form the spec does not define.

Where Indian Sellers Actually Use This

Six patterns that come up again and again for shopkeepers, resellers, freelancers and creators.

Counter QR for a shop

Print the open-amount code once, tape it near the till, and stop dictating your UPI ID over a noisy counter. The code does not expire, because there is no service behind it.

Per-order links for resellers

Generate a fixed-amount link with the order number as the note, paste it into the WhatsApp chat, and match the payment to the order from your statement later.

Freelance invoices

Add the link at the bottom of a PDF invoice next to your bank details. Clients on a phone tap it, clients at a desk scan the QR from the same page.

Creator tips and donations

An open-amount QR in a video description, a story, or a stream overlay. Supporters decide the number, and you do not share an account number publicly.

Event and workshop fees

One fixed-amount code on the registration poster, with the batch name in the note so late payers are still easy to identify.

Delivery and cash on delivery

Hand the customer a printed code on the delivery slip instead of hunting for change, with the invoice number already in the transaction note.

Printing a UPI QR That Scans First Time

A code that scans perfectly on your screen can fail on a counter. These six things are worth checking before you print a hundred copies.

Keep the quiet zone

The white margin around the code is part of the code. Cropping it tight against a border or a photo is a common reason a printed QR refuses to scan.

Print at 3 cm or larger

A counter code should be at least 3 cm square, and a poster read from two metres away needs roughly a tenth of the reading distance in width. Bigger is safer than clever.

Black on white, nothing else

Coloured or reversed codes lose contrast under shop lighting. If you must brand it, brand the frame around the code, not the modules themselves.

Matte, not glossy

Glossy lamination throws back overhead light straight into the camera. Matte lamination protects the print without the glare that kills scans.

Test before you print a hundred

Scan the on-screen code with two different UPI apps, then scan the first printed copy. Check the amount and the note on the confirm screen, not just that something opened.

Put the amount in words too

Print the payee name and the amount under the code. It reassures the payer before they scan and catches the case where someone photographs an old code.

What Flyn Does, and What It Never Touches

Flyn is a link and QR company, not a payment company. This page takes what you type, joins it into a string, and draws a QR code from that string in your browser. Your UPI ID, your amount and your note are never sent to us. If you accept analytics cookies the page makes requests of its own, so a busy network tab is not a sign that your payment details went somewhere: those requests do not carry them.

Money does not pass through Flyn either. When a customer scans your code, their UPI app talks to their bank, which talks to NPCI, which talks to your bank. Flyn is not a step in that chain and could not be even if it wanted to be. There is no fee, no cut, no settlement delay and no dashboard of your transactions here, because we simply do not have them.

The recent-requests list under the tool lives in this browser's localStorage so you can rebuild a code without retyping. The tool does not upload it, and the clear button removes it. On a shared shop computer, clear it when you finish.

For anything that genuinely needs measuring, the product page, the catalogue, the price list you send alongside the payment request, use a Flyn short link. That is the part of the transaction that happens on the web, and it is the part that can honestly be counted.

Why Use Flyn's UPI Link Generator

Free forever, honest about what it can and cannot do, and built by a team that makes links and QR codes for a living.

No server, no storage

The link is built in your browser and your UPI ID is never sent to us. There is no account and no database row holding it here.

A real, scannable QR

Proper error correction and a full quiet zone, exported as PNG or vector SVG, so the printed version scans as well as the screen one.

Static and permanent

No account, no trial and no service behind the code. Nothing can be switched off later and take your printed QR with it.

Honest about desktop

We tell you up front that a upi:// link does nothing on a laptop, instead of letting you find out after you have sent it to a customer.

Frequently Asked Questions

What is a UPI payment link?
A UPI payment link is a deep link in the form upi://pay?pa=you@bank&pn=Your%20Name&am=499.00&cu=INR that opens a UPI app with the payee, amount and note already filled in. The payer only has to confirm and enter their UPI PIN. It is a payment request, not a payment: no money moves until the payer approves it inside their own app. Encoded as a QR code, a string of this shape is what sits on the counter QRs used across India, minus the signed merchant fields a PSP adds when it onboards a shop.
Does this work with Google Pay, PhonePe and Paytm?
The upi:// deep link is an NPCI specification, not an app-specific format. NPCI's UPI Linking Specifications require that "All PSP applications must mandatorily implement listening to 'UPI' links within their mobile applications for QR, intent, NFC, BLE, UHF etc." That wording is addressed to PSP applications. Of the consumer apps, the developer documentation we found describing this deep link is Google Pay's and Paytm's; we are not going to speak for apps whose docs we have not read. Tapping the link is mainly an Android mechanism: on Android it opens your UPI app, or an app chooser if more than one is installed. Paytm's developer documentation says its Smart Intent flow "only works on the Android platform", and Apple documents that where several apps register the same URL scheme "the app the system targets is undefined", so on an iPhone with more than one UPI app installed do not rely on the tap. The QR encodes exactly the same string, so scanning it from inside the app you want to pay with sidesteps the question of which app a tap opens.
Why does nothing happen when I click the link on my laptop?
That is expected, and it is a common confusion with UPI links. A upi:// link is not a web address; the operating system hands it to an installed UPI app, and a Windows or Mac machine does not have one. The browser simply has nowhere to send it, so it does nothing or shows an "unsupported protocol" message. The QR code is the desktop answer: show it on screen and let the payer scan it with their phone.
What is a VPA and where do I find mine?
VPA stands for Virtual Payment Address, the name@bank identifier UPI uses instead of an account number, for example 9876543210@ybl or sharma@okaxis. Open your UPI app and look for "My UPI ID", "UPI IDs" or "Manage UPI IDs" in the profile section. Most people have several, one per app and bank, and any of them can receive money. Use the one attached to the account you actually want the money in.
Can I set a fixed amount?
Yes, choose "Fixed amount" and type it. The generator writes it into the link as am=499.00, using two decimals so the rupees-and-paise value is unambiguous. That is our choice, not a requirement: NPCI's UPI Linking Specifications ask only for the "Transaction amount in decimal format", and NPCI's own example links use a bare integer, am=10, so am=499 is valid too. The payer still sees the amount and confirms it inside their own app. This is the right mode for a specific invoice, an order total, or a fixed-price product.
Can I leave the amount blank so the payer decides?
Yes, switch to "Payer chooses" and the am parameter is left out of the link entirely. That matters: an empty am= is not the same as no am at all. NPCI's UPI Linking Specifications say of the amount, "If 'am' is not present then field is editable", so an absent parameter is the documented way to hand the payer the keypad. The same spec defines what an empty value means for the neighbouring mam tag but says nothing about an empty am=, so this tool does not emit one. Use this for tips, donations, running tabs and anything priced on the spot.
Is it safe to share my UPI ID publicly?
A UPI ID is what people send money to. Nobody can pull funds out of your account by knowing it, because a debit has to be approved on your own device. The real risk is the collect-request scam: a fraudster sends you a request to pay and calls it a refund or a prize. Treat the PIN as the tell. Entering your UPI PIN authorises money leaving your account, so anything asking for your PIN in order to receive money is a scam.
Does Flyn see my money, or take a cut?
No, on both counts. Flyn is not a payment gateway and does not sit in the money path. This page assembles a text string in your browser and draws the QR code from it, so your UPI ID, your amount and your note are never sent to us and we keep no record of the link. To be precise about what does leave the page: if you accept analytics cookies, this page runs product analytics like the rest of the site, which records that a tool was used and general page performance. Your UPI ID, amount and note are not part of that, and text you type into the fields is masked. The payment itself happens directly between the payer's UPI app and your bank, exactly as if they had typed your UPI ID by hand.
Can I print the QR and stick it on my counter?
Yes, that is exactly what the QR output is for. Download the PNG for a quick print or the SVG if your printer or designer wants vector, then print it at 3 cm square or larger for counter distance. Keep the white border around the code, do not crop it, and do not place it behind glare-prone glossy lamination. The Print button opens a clean print sheet with the code, your name and the amount, on whatever paper size your printer is set to.
Can I add a note for each order?
Yes, the transaction note field becomes the tn parameter, and it shows up in both your statement and the payer's. Putting an order number or a table number in there is the fastest way to reconcile payments later, especially when several customers pay the same amount within a minute of each other. NPCI's UPI linking spec does not set a length for the note, so the 80-character cap here is our own. We borrowed the number from Google Pay's web payment API documentation, which says of its transaction note "(Maximum length is 80 characters)". That is a different integration surface from the upi:// link this page builds, so treat 80 as a cautious house limit rather than a rule of the deep-link format. Keep the note short if you want it to display in full.
Do I need a business or merchant account to use this?
No. Any personal UPI ID can receive money, and a plain upi://pay intent works without any merchant onboarding, MCC code or signed payload. That said, personal accounts have daily receiving and transaction-count limits set by your bank, and banks do notice sustained business volume on a savings account. If you are taking payments all day, talk to your bank about a current account or a proper merchant VPA.
Is there a limit on how much someone can pay through this link?
The limit comes from the banks, not from the link. Most banks cap a single UPI transfer at Rs 1,00,000 and apply a daily ceiling on top of that, though higher limits exist for specific categories like insurance, education and hospitals. If a payment is refused for size, the payer can split it or use a bank transfer. Nothing in the generated link raises or lowers those limits.
Does the link or the QR code ever expire?
No. Everything is encoded in the string itself, so there is no server, no account and no subscription behind it that could be switched off. The string does not change, so a QR you print today stays valid for as long as the UPI ID it points at is active with your bank. What breaks it is closing or changing that underlying account, in which case generate a new code with the new UPI ID.
Why does the payer see a different name than the one I typed?
The payee name you enter goes into the pn parameter as a label. A UPI app can also look up the name your bank has registered against that VPA, and where the two differ the payer may be shown the bank's version on the confirm screen instead of your label. Use your real registered name or trading name so the two do not disagree and make a careful payer hesitate.
Can customers outside India pay through a UPI link?
Usually not. UPI is an Indian payment rail, so the payer needs a UPI app linked to an Indian bank account. Some narrow arrangements are worth naming, and none of them lets an overseas customer pay this link. NPCI circular NPCI/UPI/OC/161/2022-23 of 10 January 2023 allows NRE and NRO accounts with an international mobile number from ten listed countries (Singapore, Australia, Canada, Hong Kong, Oman, Qatar, USA, Saudi Arabia, the UAE and the UK) to be onboarded and transact on UPI, but those are still Indian bank accounts. UPI acceptance abroad runs the other way: NPCI's release is headlined "UPI is Now Accepted in Nepal" and says "Indian citizens can seamlessly conduct QR-code-based UPI transactions in Nepal", which is Indian travellers paying foreign merchants, not foreign customers paying you. The UPI-PayNow link with Singapore does move money into a UPI ID, but the RBI restricts it to person-to-person remittances for "Maintenance of Relatives Abroad" and "Gift", not merchant payments. For international customers, use a card checkout instead.

The payment is untrackable. Everything around it does not have to be.

Print the UPI code for free, then put a Flyn short link on the catalogue, the price list and the product page you send with it. Free click counts and a free QR on every link, with analytics breakdowns and custom domains on Pro.