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 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.

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 50 characters, which is what most apps keep.

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 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.

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 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.

ParameterMeaningBuilt hereNotes
paPayee addressYesYour 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.
pnPayee nameYesThe 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.
amAmountYesThe 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.
cuCurrencyYesAlways 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.
tnTransaction noteYesA short reference that lands in both statements. URL-encoded and trimmed to 50 characters, which is roughly where apps start silently truncating.
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 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, 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 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 isTapping the linkScanning the QR
Android phone with a UPI appOpens the app chooser, then the pay screenScans from inside any UPI app or the camera
iPhone with a UPI appOpens the installed app straight to the pay screenScans 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)Often blocked. The link may need opening 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 only optional 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. 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?
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. The same string encoded as a QR code is exactly what you see taped to shop counters across India.
Does this work with Google Pay, PhonePe and Paytm?
Yes. The upi:// intent is an NPCI standard, not an app-specific format, so Google Pay, PhonePe, Paytm, BHIM, Amazon Pay, CRED, Navi, Slice and every bank UPI app all understand it. On Android, tapping the link brings up the app chooser if more than one UPI app is installed. Scanning the QR works the same way from inside any of those apps.
Why does nothing happen when I click the link on my laptop?
That is expected, and it is the single most 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, always with two decimals, because some apps reject a bare integer or a three-decimal value. The payer still sees the amount and confirms it, and in most apps they cannot edit it. 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, and several apps read the empty value as zero and refuse to open the pay screen. With the parameter absent, the app opens on the amount keypad and the payer types whatever they owe. 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 can only receive money. Nobody can pull funds out of your account with it, because every debit needs your UPI PIN entered 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. Remember the rule that never changes, you never enter your UPI PIN to receive money, only to send it.
Does Flyn see my money, or take a cut?
No, on both counts. Flyn is not a payment gateway and never sits in the money path. This page assembles a text string in your browser and draws a QR code from it, with no server call at all, so your UPI ID is never sent to us. The payment 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, and that is the most common use. 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 lays out the code with your name and amount on an A4 sheet ready for the counter.
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. Keep it under about 50 characters, since many apps quietly truncate longer notes.
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. A QR you print today keeps working for as long as the UPI ID stays active with your bank. The one thing that does break it is closing or changing the 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, but UPI apps also look up the name your bank has registered against that VPA. Where the two differ, most apps show the bank's version on the confirm screen, because that is the one that has been verified. Use your real registered name or trading name to avoid a mismatch that makes 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. NRIs with international mobile numbers from a list of partner countries can use UPI, and UPI acceptance has been extended to a handful of markets including Singapore, the UAE, Nepal, Bhutan and Sri Lanka. Whether it works depends entirely on the payer's bank and app, not on this link. 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.