Google is already showing Dvaarik for `upi payment link`, `upi deep linking`, and `upi link` queries. That traffic is useful because Indian businesses do not only need a link; they need deposits, advances, booking confirmation, and follow-up. This guide explains the payment link itself, then shows where an AI receptionist should use it inside a real customer conversation.
What is the UPI payment link answer in one sentence?
A UPI payment link is a `upi://pay` URL that opens an Indian UPI app with the payee, amount, currency and note prefilled; the customer still approves with a UPI PIN (product explanation checked 8 Aug 2026). Dvaarik can send the link during a call, WhatsApp chat or Instagram conversation and record the next workflow step.
What is a UPI payment link?
A UPI payment link is a URL that starts with `upi://pay`. When a customer taps it on an Indian smartphone, their UPI app opens with the payee, amount, and note already filled in. The customer still approves the payment using their UPI PIN. The money moves bank-to-bank through UPI, usually within seconds.
What UPI deep linking actually means
Deep linking means a link opens an app directly into a specific action instead of opening a normal web page. In this case, the deep link tells Google Pay, PhonePe, Paytm, BHIM, or another UPI app: open the payment screen with these details. A basic direct link can include `pa` for UPI ID, `pn` for payee name, `am` for amount, `tn` for note, and `cu=INR` for currency. You can test this with the free UPI payment link generator.
The upi://pay URL, parameter by parameter
A UPI deep link is a URL with the scheme `upi:` and the host `pay`, carrying the payment details as query parameters. Nothing is hosted; the string itself is the instruction.
``` upi://pay?pa=name@bank&pn=Business%20Name&am=100.00&cu=INR&tn=Booking%20A123 ```
| Parameter | Meaning | Notes |
|---|---|---|
| `pa` | Payee address — the VPA, e.g. `name@okhdfcbank` | The only genuinely required field |
| `pn` | Payee name shown on the confirm screen | Use the name customers know you by; an unfamiliar name is a common abandon point |
| `am` | Amount | Omit it and the payer types their own |
| `cu` | Currency | `INR` |
| `tn` | Transaction note | Put your booking reference here so the credit is identifiable later |
| `mc` | Merchant category code | Relevant for registered merchants; ordinary VPAs leave it out |
| `tr` | Transaction reference | Your own reference for reconciliation |
| `tid` | Transaction ID | Usually set by the PSP rather than by you |
| `url` | A URL shown alongside the payment | Often an invoice or order page |
The comparison above states the published row-by-row differences; read each row with its source, date, and qualifying notes.
Two practical rules. Everything must be URL-encoded — a business name with a space becomes `Business%20Name`, and an unencoded `&` inside a note will silently truncate every parameter after it, which is the single most common way a hand-built link breaks. And amounts should carry two decimal places; `100` and `100.00` are both usually accepted, but the second form is what you will see in working examples.
If you would rather not assemble this by hand, our UPI payment link generator builds and encodes it for you in the browser, and nothing you type is sent anywhere.
Intent flow versus collect request — two different things called a "payment link"
The subject described in this section: This distinction causes more confusion than any parameter, because both get described as "sending a payment link" and they behave very differently.
Intent flow is what a `upi://pay` deep link triggers. The payer taps it, their UPI app opens with your details pre-filled, and they approve the payment. The money moves because the payer pushed it. Nothing was requested from their bank; you simply handed them a pre-addressed instruction.
Collect request is the opposite direction. You — usually through a payment provider — send a request to the payer's VPA, and a notification appears in their app asking them to approve a pull. The payer did not initiate anything.
The practical differences matter:
- Trust. Intent flow starts with the customer's own tap, so it feels like paying. Collect requests arrive unprompted, which is the same shape as a very common fraud pattern, so a lot of Indian users have learned to decline them.
- Expiry. A collect request has a validity window. An intent link does not expire; it is just a string.
- Who can send it. Anyone can build an intent link. Collect requests generally require a PSP or gateway relationship.
- Confirmation. A collect request flows through the provider who sent it, so they can tell you what happened. An intent link tells you nothing — you look at your bank app.
For a small business collecting a booking deposit inside a WhatsApp conversation, intent flow is almost always the right one. It is free, it is instant, and it does not resemble a scam.
How UPI QR codes relate to deep links
A UPI QR code is not a separate technology. In the common case it encodes the same payment string a deep link carries, so the QR and the link are two presentations of one instruction — one for a camera, one for a tap.
That has a useful consequence: the same generated string solves both your desktop and mobile problems. A `upi://` link needs a UPI app on the same device, so on a laptop it does nothing. Render that identical string as a QR code on screen and the customer scans it with the phone that has their UPI app. Nothing else changes.
Where this matters in practice:
- In-person counters want a QR — static on a card for open-amount payments, or generated per-bill with the amount filled in.
- WhatsApp and SMS want the tappable link, because the customer is already on the phone that will pay.
- Desktop web wants the QR, or a link the customer can send to themselves.
- Printed material wants a static QR with no amount, because you cannot reprint it per customer.
A static QR without an amount also removes a whole class of error: the customer types what the bill actually was, and you are not chasing a link that was generated for the wrong figure.
Why the same link behaves differently in different apps
The subject described in this section: This is the most common support question, and the honest answer is that behaviour is not perfectly uniform across UPI apps and has shifted over time.
Things that vary in practice:
- Whether a pre-filled amount is editable. Some apps present your `am` value locked; others let the payer change it. If your workflow assumes an exact figure, verify the amount received rather than trusting the link.
- Which app opens. On Android, a `upi://` intent with several UPI apps installed usually produces a chooser. Some phones remember a default, which is why your test on your own handset may not match a customer's.
- App-specific schemes. Individual apps also register their own schemes, so you will see links built for one app in particular. Those are more fragile — they fail outright for anyone who uses a different app. Prefer the generic `upi://pay` unless you have a specific reason not to.
- iOS behaviour. URL-scheme handling differs from Android's intent system, and a link tapped inside an in-app browser may not hand off to a payment app at all. A link that works from the SMS app can fail from inside a social app's browser.
- Unencoded characters. A stray `&`, `#` or space in the note silently drops parameters. It is not an app bug; the URL genuinely ended early.
None of this makes deep links unreliable — hundreds of millions of payments run on them. It means you should test rather than assume, which is the next section.
Testing a UPI link before you send it to customers
Five minutes here prevents the failure mode where a customer says "it's not working" and you have no idea which part broke.
- Open it on your own phone and stop at the confirmation screen. Do not pay. Check that the payee name and VPA shown are yours and are spelled the way customers expect.
- Check the amount and the note carried through. If the note is truncated, you have an encoding problem — usually a space or an `&`.
- Try it from a second app. If you use one UPI app, ask a colleague on a different one to open the same link and confirm the screen looks right.
- Try it from inside WhatsApp, not just from your browser. In-app browsers are where hand-off most often fails, and WhatsApp is where you will actually send it.
- Send ₹1 to yourself once. The end-to-end test is the only one that proves the VPA resolves and the credit lands where you expect, with your note attached.
- Then render it as a QR and scan that too, if you plan to use it at a counter.
Do this once per VPA, not per link. Once the pattern works, the generator produces the same shape every time.
When a deep link is the wrong tool
Deep links are free and instant, which makes it tempting to use them for everything. They are genuinely the wrong choice in a few cases, and knowing which saves you a painful month.
When you need automatic confirmation. Nothing calls your system back. If your process requires knowing the payment landed without a human checking, you need a gateway.
When volume outgrows manual reconciliation. At a handful of deposits a day, matching credits by note is fine. At fifty a day it is somebody's job, and that person costs more than gateway fees.
When you need refunds with an audit trail. You can always send money back, but a deep link leaves no linked record tying the refund to the original payment.
When the payer is not on their phone. Desktop checkout works better through a hosted page than through a QR the customer has to scan mid-flow.
When you need to charge repeatedly. Recurring collection is a mandate problem, not a link problem.
The honest summary is that a deep link is excellent at one job — getting a specific amount paid by a specific person during a conversation — and mediocre at everything a payments stack normally does. Most small businesses should use it for deposits and a gateway for anything that needs reconciliation. Where this fits into an actual booking flow, with the link sent mid-conversation and the slot released if payment does not arrive, is covered on our payments feature page.
Direct UPI link vs Razorpay payment link
| Option | Best for | Trade-off |
|---|---|---|
| Direct `upi://pay` link | Small deposits, quick advances, known customers | Usually needs manual UTR/payment verification |
| Razorpay payment link or checkout | Automated confirmation, cards/netbanking, webhooks | Gateway fees and setup complexity |
| WhatsApp payment request | Simple manual follow-up | Harder to automate across every channel |
The comparison above states the published row-by-row differences; read each row with its source, date, and qualifying notes.
Direct UPI is excellent when the business owner can verify payment or when the AI workflow records a UTR. Razorpay is better when the booking should confirm automatically through a webhook.
Where businesses should use payment links
Salons: collect a small deposit before locking a high-value service. Clinics: collect appointment advances when allowed by the clinic's policy. Restaurants: collect party-booking advances before blocking tables. Gyms and studios: collect trial-class or enrollment deposits. Real estate: collect paid site-visit or consultation fees only when appropriate and clearly explained. The point is not to charge everyone; it is to create commitment where no-shows are expensive.
The workflow matters more than the link
A payment link does not solve anything by itself. A business still has to send it at the right moment, verify payment, confirm the booking, send a reminder, and follow up if the customer does not pay. That is where Dvaarik's Payments Agent fits: it sends the payment link during a call, WhatsApp chat, Instagram DM, or website chat, then keeps the conversation moving.
Safe checklist before sending a UPI link
Check the UPI ID, payee name, amount, customer name, service, booking date, refund/cancellation rule, and verification process. For direct UPI links, ask the customer to share the payment screenshot or UTR if your workflow does not auto-confirm. For automated payment flows, prefer a gateway path with webhooks and clear settlement records.
Dvaarik setup path
If you only need a one-off link, use the UPI payment link generator. If you want the AI to send payment links inside conversations, start with payment collection, WhatsApp automation, or the AI receptionist India page. For the short definition, see the UPI payment link glossary.
Frequently asked questions
Can the AI agent send a UPI payment link while it is still on the call with the customer?
Yes — the Payments Agent sends the link mid-conversation and keeps talking while the customer pays. On a voice call it pushes the link to the caller's WhatsApp the moment they agree to the deposit, then stays on the line to confirm the booking once payment is done. On WhatsApp, Instagram DM, or website chat the link simply drops into the same thread, so the customer never has to switch apps or wait for a callback. See how this is wired up on the payment collection page.
Does Dvaarik take a commission or cut from the payments collected?
No — Dvaarik takes zero commission on money collected. The payment moves directly into your own UPI ID or your own gateway account; we never sit in the middle of the funds. What you pay is only the conversation cost from your credits: voice is ₹2/min with simple whole-minute billing and chat is ₹2 per conversation. So a two-minute call that ends with a ₹500 deposit costs you ₹4 in credits, and a WhatsApp thread that does the same costs ₹2. Full rates are on the pricing page.
How do I decide how much deposit to ask for?
Work backwards from what an empty slot actually costs you, not from a percentage rule. If a service bills ₹2,000 and a no-show leaves that slot dead for the hour, you have lost ₹2,000 of capacity, so the deposit only needs to be large enough that the customer either turns up or calls to reschedule. Set it high enough to create commitment and low enough that a genuine customer does not hesitate at the ask — then treat your first number as a starting point and adjust once you see how your own enquiries respond to it. Keep it adjustable either way: the agent can ask for a bigger advance on high-value or peak-slot bookings and skip it entirely on small ones. The no-show maths for service businesses is worked through in reducing salon no-shows.
Customer says the UPI link is not opening — what usually goes wrong?
A `upi://pay` link only works on a phone that has a UPI app installed, so it will do nothing on a laptop, a desktop browser, or a phone without Google Pay, PhonePe, Paytm, or BHIM. Two other common causes: some in-app browsers and chat clients refuse to open non-http link schemes and show the link as plain text, and a UPI ID with a typo will open the app but fail at the payee step. If your customers pay from mixed devices, a hosted gateway link over https is the safer default because it opens anywhere and falls back to cards or netbanking. You can build and test a link in seconds with the free UPI payment link generator.
How does the agent know the customer actually paid before it confirms the booking?
The subject described in this section: It depends on which link you send, and the honest answer is that direct UPI does not confirm itself. With a plain `upi://pay` deep link there is no callback to your system, so the agent asks the customer for the UTR number or the payment screenshot, records it against the booking, and flags it for you to eyeball against your bank or UPI statement. With a gateway payment link, the webhook fires the moment payment succeeds and the agent can confirm the slot and send the WhatsApp confirmation automatically, with no manual check. If you want fully hands-off confirmation, use the gateway path — see how confirmations and reminders chain together on the booking page.
When is asking for a UPI deposit a bad idea?
Skip the deposit when the ask costs you more enquiries than the no-shows cost you slots. That is usually the case for first contact with a price-shopping enquiry, for low-value services where a ₹100 advance is more friction than it is worth, for customer bases that still prefer paying cash at the counter, and for anything where your own policy or professional norms make advance collection inappropriate. Deposits earn their place where the slot is scarce and expensive — peak-hour appointments, party bookings that block tables, high-value services — not across the board. The agent can be told exactly which services and time slots trigger a payment ask and which never do, so it is a rule you set, not a default it applies to everyone.
What is UPI deep linking?
UPI deep linking is the use of a `upi://pay` URL to open a payer's UPI app with your payment details already filled in. It is not a hosted page and there is no gateway in the middle — the URL itself carries the payee address, name, amount, currency and note as query parameters, and whichever UPI app the payer has installed interprets it. Because it is just a string, it costs nothing per transaction and works from WhatsApp, SMS, a QR code or a button on your site.
What does a UPI URL look like?
The basic shape is `upi://pay?pa=name@bank&pn=Business%20Name&am=100.00&cu=INR&tn=Booking%20A123`. Only `pa`, the payee VPA, is genuinely required. `pn` is the payee name shown on the confirmation screen, `am` the amount, `cu` the currency (INR), and `tn` a transaction note where you should put your booking reference. Everything must be URL-encoded — an unencoded space or ampersand will silently truncate every parameter after it, which is the most common reason a hand-built link fails.
What is the difference between a UPI intent link and a collect request?
An intent link is a `upi://pay` URL the payer taps, which opens their app pre-filled so they push the money to you. A collect request goes the other way: you ask their VPA to approve a pull, and a notification arrives unprompted. Intent flow generally converts better in India because it starts with the customer's own tap, whereas unprompted collect requests share a shape with a common fraud pattern and get declined. Collect requests also expire and usually need a payment provider; an intent link is just a string anyone can build.
Is a UPI QR code the same as a UPI deep link?
In the common case they carry the same payment string, just presented for a camera instead of a tap. That is useful because a `upi://` link needs a UPI app on the same device and therefore does nothing on a laptop — render the identical string as a QR and the customer scans it with the phone that has their app. Use the tappable link in WhatsApp and SMS, and a QR at a counter or on printed material, where a static QR with no amount avoids reprinting per customer.
Why does my UPI link work on my phone but not the customer's?
Usually one of four things. The customer has no UPI app installed, or opened it on a desktop where the scheme cannot resolve. The link was tapped inside an in-app browser that did not hand off to a payment app. A different UPI app handled it and presents a pre-filled amount differently from the one you tested with. Or a space, ampersand or hash in the note was not URL-encoded, so the URL genuinely ended early and the parameters after it were dropped. Test from a second app and from inside WhatsApp before blaming the link.
Can I create a UPI payment link for free?
Yes. A `upi://pay` deep link is just a URL, so there is no fee to create one and no per-transaction charge when it is paid — the money goes straight to your own VPA. Our generator builds and URL-encodes one in your browser and sends nothing to our servers. What you do not get for free is automatic confirmation, reconciliation or linked refunds; those are what a payment gateway's fee actually buys.
UPI deep links are powerful because they remove payment friction at the exact moment the customer says yes. But the ranking opportunity is not only the technical link format. The business value comes from connecting the link to booking, reminder, verification, and follow-up.
Send us the payment moment you want to automate. We will tell you whether direct UPI, Razorpay, or a hybrid workflow fits best.
LoginTagged

Written by
Rohith Sriramula
Founder & CEO, Dvaarik AI
A laid-off engineer who went all in on Dvaarik AI. He builds the platform and product workflows from hands-on work with Indian businesses, not theory.