Back to Blog
Payment Integration

WhatsApp Payment Links & UPI Deep Linking India 2026: Complete Guide

Updated July 22, 2026 14 min read

Most Indian SMBs still collect money the same way they did in 2019: they type their UPI ID into the chat, the customer screenshots it, pays whenever they remember, and sends a blurry screenshot back. You then match it to an order by hand. This guide replaces that with two things that actually work at scale in 2026 — raw UPI deep links, and gateway payment links — with real fee maths in rupees, the reconciliation trap that costs shop owners the most money, and exactly how to fire 500 of these from one WhatsApp campaign.

The friction you are actually removing

Count the taps in the screenshot method: read the UPI ID, switch apps, paste, re-type the amount, pay, screenshot, switch back, send. Eight actions, four of them error-prone, and every one of them is a place where a customer who was ready to pay stops being ready to pay. A payment link collapses that to two: tap, enter PIN.

For a kirana or D2C operator doing 40 orders a day at an average ticket of ₹850, even a modest recovery of stalled payments is real money. If five orders a day currently sit unpaid overnight and half of those get paid the same evening because you sent a tappable link plus a reminder, that is roughly ₹2,125 a day of cash pulled forward — against a messaging cost of about ₹11 for those 80 utility messages. That is the honest case for payment links: not magic conversion multipliers, but less friction, faster cash, and far less manual matching.

Method 1: UPI deep links (free, no gateway, Android-first)

A UPI deep link is just a URL using the upi:// scheme. Tapped on Android, the OS shows the UPI app chooser and pre-fills the payee, amount and note. Nothing is debited without the customer's UPI PIN, so the link itself is not a security risk.

UPI Deep Link Format

upi://pay?pa=merchant@upi&pn=StoreName&am=500&cu=INR&tn=Order123&tr=INV2026001
  • pa: Payee address — your merchant VPA. Required.
  • pn: Payee name shown on the confirmation screen. URL-encode spaces as %20. Required.
  • am: Amount in rupees, two decimals, no comma separators. Write 1250.00, never 1,250.
  • cu: Currency — always INR.
  • tn: Transaction note the payer sees. Keep it under ~50 characters; put the order ID here.
  • tr: Transaction reference — your own unique ID. This is the field that makes reconciliation possible, and the one almost everybody omits.

What a real message looks like

Message template with variables:

Hi {{name}}, your order {{order_id}} is confirmed. Amount payable: ₹{{amount}}

Tap to pay by UPI (GPay / PhonePe / Paytm):

upi://pay?pa=store@paytm&pn=MyStore&am=1250.00&cu=INR&tn=Order12345&tr=INV12345

On an iPhone this link does nothing. Read the next section before you send this to a mixed list.

Four limits of raw UPI deep links

  • iOS does not resolve upi://. Roughly a fifth of Indian smartphone spend sits on iPhones and it skews to exactly the high-ticket customers you care about.
  • No webhook, so no automatic reconciliation. You find out you were paid by reading a bank SMS.
  • The amount is not always locked. With a verified merchant VPA most apps lock am; with a personal VPA several apps let the payer edit it. Always verify the settled amount, not the requested one.
  • No refunds, no partial payments, no expiry. A deep link you sent in March still works in December.

Method 2: Gateway payment links (https, works everywhere)

A gateway link is a normal https:// checkout URL. It opens in the browser on every device, offers UPI intent, UPI QR, cards, net banking and wallets on one page, and — critically — fires a webhook to your system the moment money lands. That webhook is what turns payment collection from a WhatsApp chore into an automated flow.

OptionTypical cost on UPICards / net bankingWebhook + refundsBest for
Raw UPI deep link₹0Not supportedNo / NoUnder ~20 orders a day, Android-only lists
Razorpay Payment LinksNil to small flat fee~2% + 18% GSTYes / YesDefault choice for most SMBs
Cashfree / PhonePe linksNil to small flat fee~1.75–2% + GSTYes / YesUPI-heavy, high daily volume
InstamojoPercentage + flat feePercentage + flat feeYes / YesCreators, one or two SKUs, no dev help
Paytm BusinessNil to small flat fee~2% + GSTYes / YesMerchants already settling into Paytm

One regulatory fact does most of the work in that table: person-to-merchant UPI carries zero MDR in India, so gateways cannot charge you a percentage on UPI collections the way they do on cards. What they can charge is a platform or per-link fee, and those change. Treat the numbers above as the shape of the market, not a quote — pull the live rate card from your gateway before you build margin assumptions on it.

Worked example: what a ₹1,250 order actually costs you

Single order, paid by UPI

  • Order confirmation with payment link (utility category): ₹0.14
  • One reminder 3 hours later if unpaid (utility): ₹0.14
  • Paid-receipt message (utility): ₹0.14
  • Gateway fee on UPI: ₹0 (zero MDR)
  • Total cost to collect ₹1,250: about ₹0.42, or 0.034%.

If the same customer pays by credit card instead, add roughly ₹25 + GST in MDR. That gap is why UPI-first framing in the message ("Tap to pay by UPI") is worth writing deliberately rather than leaving the customer to pick.

Now scale it. A 2,000-order month with a reminder and a receipt on every order is 6,000 utility messages — about ₹840. Run the same 2,000 sends as marketing-category messages instead and you pay ₹0.92 each: ₹5,520. Same content, 6.6x the bill, because the template category was wrong. Category discipline is the highest-leverage cost lever in WhatsApp payment collection; the mechanics are in our guide to free and low-cost utility templates, and the full category economics are broken down in conversation vs per-message pricing.

Sending payment links at scale from WhatSender

1

Build the CSV, one row per customer

Columns: phone, name, order_id, amount, pay_url. Generate pay_url per row from your gateway API, or build the upi:// string in a spreadsheet formula. This is your contact list upload.

2

Write the template with variables

Use placeholders for name, order_id, amount and pay_url so one message body serves the whole list. State the amount in plain text next to the link — Indian customers will not tap a bare URL.

3

Send as a utility-category message

Order confirmations, invoices and payment reminders are utility, not marketing, when they follow a real transaction. Getting this right is the difference between ₹0.14 and ₹0.92 per send.

4

Schedule the follow-up before you send

Set the reminder campaign at the same time as the original, targeted at the unpaid segment, timed 3-4 hours later within 9am-9pm IST. Scheduling it later means it never happens.

5

Reconcile from the reference, not the screenshot

Gateway webhook returns your order_id; mark paid automatically. For raw UPI deep links, match the transaction note against your order sheet daily and accept that this is manual work.

6

Read the analytics, then prune

Delivered vs read vs paid, split by hour. Numbers that never read anything after three campaigns are dead weight you are paying for on every send.

WhatSender handles steps 1 through 6 with contact lists, templates with variables, scheduling and per-campaign analytics, and the Android app lets you fire the reminder batch from a phone when you are away from a desk. If you want the payment step to happen inside a structured in-chat form rather than a link tap, read WhatsApp Flows for cart and checkout. If you want native in-chat UPI instead of links, that is a different product surface entirely and is covered in WhatsApp Payments UPI for Indian businesses.

The reminder sequence that actually collects

A single payment link with no follow-up leaves money on the table; four follow-ups get you blocked. The pattern that holds up for Indian SMB order flows:

WhenMessageCategory
T+0Order confirmed, amount, payment link, expiry statedUtility
T+3hSame link, one line: "Still open, expires tonight"Utility
T+24hFinal reminder with a fresh link and new expiryUtility
T+48hStop. Move to a human call, not a fourth message.

Keep every send inside 9am–9pm IST; a payment reminder at 11pm reads as a scam attempt and earns blocks. Timing evidence for Indian lists is in best time to send WhatsApp messages in India, and the same reminder logic applied to e-commerce baskets is in abandoned cart recovery.

Seven mistakes that cost real money

  • Comma in the amount. am=1,250 is invalid; several UPI apps silently drop to a blank amount and the customer pays whatever they feel like. Use am=1250.00.
  • Unencoded spaces in the payee name. pn=Sharma Traders truncates at the space in some clients. Use Sharma%20Traders.
  • Sending upi:// links to a mixed device list. Every iPhone recipient gets a dead link and a bad impression. Send https gateway links to the whole list instead of segmenting by device you cannot reliably detect.
  • A bare link with no context. "Pay here: bit.ly/xyz" reads exactly like a fraud message in 2026. Amount, order ID, business name, then the link.
  • Generic URL shorteners. They strip trust and some are treated as spam signals. Use your gateway's own short domain, or a branded one — see link shorteners and click tracking.
  • No expiry. A live link from three months ago will eventually be paid against a cancelled order, and now you owe a refund plus a reconciliation headache.
  • Payment links to cold contacts. Money requests to people who never transacted with you is the fastest route to reports and a blocked number. Read how to avoid a WhatsApp ban on bulk messaging before any large send.

Compliance: what DPDP and UPI rules mean here

Payment links sit at the intersection of two rulebooks. Under the DPDP Act, phone numbers and order data are personal data you process for a stated purpose — collecting money for an order the customer placed is a legitimate transactional purpose, but reusing that same list to push a Diwali offer is a separate purpose that needs its own consent. Keep the two lists separate in your contact manager. On the UPI side, never ask for a UPI PIN, OTP, CVV or card number in chat; no legitimate collection flow ever needs them, and asking is the single behaviour customers are trained to report. Full compliance detail is in our DPDP Act compliance guide.

Troubleshooting

Link is not tappable in the chat

WhatsApp only auto-links text it recognises as a URL. Put the link on its own line with no trailing punctuation, and no character immediately before the scheme.

UPI app opens but the amount is empty

Almost always a malformed am value: a comma, a rupee symbol, or more than two decimal places. Rebuild the URL from clean numeric data, not from a formatted display string.

Customer says they paid but nothing shows

Ask for the 12-digit UPI transaction reference, not a screenshot. Screenshots are trivially edited; the reference can be checked against your settlement report.

Payment succeeded but the order stayed unpaid in your system

Your webhook endpoint returned a non-200 and the gateway gave up retrying, or you never set reference_id so there was nothing to match on. Log every webhook payload raw before you parse it.

Transaction declined above a certain amount

Per-transaction and per-day UPI caps are set by the payer's bank and app, commonly ₹1,00,000 per day with lower first-day limits on newly linked accounts. For high-ticket orders, offer a gateway link so cards and net banking are available as a fallback.

Payment link campaigns in WhatSender

  • Templates with variables: one message body, a unique amount, order ID and payment URL per row of your CSV.
  • Scheduling: queue the T+3h and T+24h reminder batches at the same moment you queue the original send.
  • Media alongside the link: attach the invoice PDF, a product image, or a short video under 16MB in the same campaign.
  • Analytics + Android app: see delivered and read counts per campaign, and run the follow-up batch from your phone.
Try WhatSender Free

Frequently asked questions

Can I send payment links through WhatsApp bulk messages?

Yes. UPI deep links and gateway links are both just text in the message body, and template variables let each recipient receive a different amount and order ID from one campaign. The constraint is not technical, it is list quality: send money requests only to people with a real, recent transaction with you.

Do UPI deep links work on iPhone?

Not reliably. iOS does not register upi:// as a system URL scheme, so the tap usually does nothing. Use an https gateway link for any mixed list — it opens in Safari and still offers UPI intent, QR, cards and net banking.

What does it cost to send a payment link on WhatsApp in India?

At June 2026 rates, about ₹0.14 per utility message and ₹0.92 per marketing message, plus whatever your gateway charges on the rail the customer picks. UPI person-to-merchant carries zero MDR, so a UPI-paid order typically costs you only the messages — roughly ₹0.42 for a confirm, reminder and receipt.

Can the customer change the amount in a UPI deep link?

With a verified merchant VPA, most apps lock it. With a personal VPA, several apps allow an edit. This is why you reconcile against the settled amount from your statement or webhook, never against the amount you asked for.

How do I reconcile payments back to orders automatically?

Put your order ID in the gateway link's reference field (or in tn and tr for a deep link), then consume the gateway webhook and mark the order paid on the matching reference. Raw UPI deep links have no webhook, so that path stays manual — which is the real reason to graduate to a gateway once you cross about 20 orders a day.

Should I use WhatsApp Pay instead of payment links?

They solve different problems. Native WhatsApp Pay keeps the payment inside the chat but has narrower coverage and setup requirements; payment links work for every business with a UPI ID or a gateway account today, and work identically for orders that started on Instagram, a phone call or a shop counter. Details in the WhatsApp Payments UPI guide.

Conclusion

Start with raw UPI deep links if you are doing under twenty orders a day on an Android-heavy list: they cost nothing and remove seven of the eight taps. Move to gateway links the moment manual reconciliation starts eating an hour a day, or the moment you get your first iPhone complaint. Either way, send in the utility category, put the amount and order ID beside the link in plain text, cap yourself at three reminders inside 48 hours, and never ask for a PIN or OTP in chat.

For the wider playbook this fits into — list building, segmentation, templates and measurement — start with the complete WhatsApp marketing guide for India.

Send Payment Links in WhatsApp Messages

Templates with variables, scheduled reminders, media attachments and per-campaign analytics — from the web dashboard or the Android app.

Try WhatSender Free

Related Articles