Free UPI Payment Link Generator
Turn your UPI ID into a payment link and a real, scannable QR code for GPay, PhonePe, Paytm and every other UPI app. Fix the amount or let the payer choose. Built in your browser, nothing is sent to a server.
Flyn never touches your money. This page builds a payment request, not a payment. Everything is assembled in your browser, there is no server call, 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.
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 50 characters, which is what most apps keep.
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 never touches 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.
How to Create a UPI Payment Link in 3 Steps
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.
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.
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 the black and white square taped next to every till in 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 intent that every UPI app accepts, with no merchant category code, no signed payload and no PSP dependency, so the code you print today behaves the same in five years as long as your UPI ID is still active.
Every Parameter in a UPI Link
Five parameters do the work, and four more exist for registered merchants. Here is what each one is for, and why this tool generates some and deliberately leaves the rest alone.
| Parameter | Meaning | Built here | Notes |
|---|---|---|---|
| pa | Payee address | Yes | Your VPA, the name@bank identifier that receives the money. The only truly mandatory parameter. Left unencoded apart from spaces, since the @ is a legal query character and every UPI app expects it raw. |
| pn | Payee name | Yes | The label shown to the payer. URL-encoded, so "Sharma Electronics" becomes Sharma%20Electronics. Apps still cross-check the name your bank has on file for that VPA and usually show that instead. |
| am | Amount | Yes | The amount in rupees, written with two decimals. Omitted completely when you pick "payer chooses", because an empty am= is read as zero by several apps and blocks the pay screen. |
| cu | Currency | Yes | Always INR. UPI settles in rupees only, so there is nothing to choose here, but the parameter is included because some older apps expect it to be present. |
| tn | Transaction note | Yes | A short reference that lands in both statements. URL-encoded and trimmed to 50 characters, which is roughly where apps start silently truncating. |
| tr | Transaction reference | No | A 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. |
| mc | Merchant category code | No | A 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. |
| url | Invoice URL | No | A link to an invoice or order page that a few apps surface on the confirm screen. Support is inconsistent, so a plain short link sent alongside the payment request is more reliable. |
| mode, orgid, sign | Signed intent fields | No | Used 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 intent every app accepts. |
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 and UPI apps expect it raw.
Why the Link Does Nothing on a Laptop
This is the question people ask about UPI links more than any other, and the answer is not a bug. Here is what actually 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 is | Tapping the link | Scanning the QR |
|---|---|---|
| Android phone with a UPI app | Opens the app chooser, then the pay screen | Scans from inside any UPI app or the camera |
| iPhone with a UPI app | Opens the installed app straight to the pay screen | Scans from the Camera app or in-app scanner |
| Phone with no UPI app installed | Nothing happens, or an "unsupported address" alert | Nothing to scan with until an app is installed |
| Windows or Mac desktop | Nothing happens. There is no app to hand it to | The answer here. Show it on screen, scan with a phone |
| In-app browser (Instagram, WhatsApp) | Often blocked. The link may need opening in Chrome or Safari first | Works, 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 only optional field that changes how the payer's app opens, so it is worth getting right before you print anything.
| Mode | In the link | Best for | Watch out for |
|---|---|---|---|
| Fixed amount | am=499.00 present | Invoices, order totals, fixed-price products, deposits | A typo in the amount means a wrong payment and a manual refund. Regenerate rather than editing the string by hand. |
| Payer chooses | am left out entirely | Tips, donations, running tabs, variable-weight goods | Payers 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. Several UPI apps parse the empty value as zero and refuse to open the pay screen at all, which looks to the payer like a broken code. This tool removes the parameter entirely in payer-chooses mode, which is the behaviour every app handles correctly.
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 never expires 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 never 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. Almost every failure comes from one of these six things.
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 the most 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 always 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. There is no API call behind the Generate button, which you can verify yourself: open your browser's network tab, fill the form, and watch nothing leave the page. Your UPI ID never reaches a Flyn server, because no request is ever made.
Money never passes 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 one thing stored anywhere is the recent-requests list under the tool, which lives in this browser's localStorage so you can rebuild a code without retyping. It is never uploaded, 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. Your UPI ID is never sent to Flyn, so there is nothing for us to leak or lose.
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?
Does this work with Google Pay, PhonePe and Paytm?
Why does nothing happen when I click the link on my laptop?
What is a VPA and where do I find mine?
Can I set a fixed amount?
Can I leave the amount blank so the payer decides?
Is it safe to share my UPI ID publicly?
Does Flyn see my money, or take a cut?
Can I print the QR and stick it on my counter?
Can I add a note for each order?
Do I need a business or merchant account to use this?
Is there a limit on how much someone can pay through this link?
Does the link or the QR code ever expire?
Why does the payer see a different name than the one I typed?
Can customers outside India pay through a UPI link?
Related Free Tools
The rest of the counter kit, all free and all built the same way.
WhatsApp Link Generator
A wa.me click-to-chat link with the order message pre-filled, to send next to the payment request.
Dynamic QR Code Generator
A QR you can re-point after printing, with scan counts. For catalogues and offers, not payments.
QR Code Generator
Turn any link, text or contact detail into a clean, downloadable QR code in PNG or SVG.
vCard QR Code Generator
A scannable business card. Customers save your shop number in one tap instead of typing it.
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.