India processes 12 billion UPI transactions monthly. WhatsApp is where your customers already are. Combining UPI with WhatsApp creates the smoothest payment experience in Indian business — send a payment request, customer taps Pay, done. This guide covers every method: UPI deep links, Razorpay/Cashfree payment links, QR codes, and payment confirmation automation.
| Method | Setup effort | Customer experience | Best for |
|---|---|---|---|
| UPI deep link (upi://) | ⭐ Easy | Opens UPI app directly | Fixed amount collections |
| Razorpay/Cashfree payment link | ⭐ Easy | Payment page with all UPI options | One-time invoices, flexible amounts |
| WhatsApp Pay (Meta) | ⭐⭐ Medium | Native in-WhatsApp payment | Peer-to-peer, simple payments |
| QR code image in WhatsApp | ⭐ Very easy | Scan QR to pay | Offline businesses, walk-ins |
| Automated link via WA.Expert | ⭐⭐ Medium | Seamless — link in notification | Order confirmations, invoices |
UPI deep link format: upi://pay?pa=YOURUVPA&pn=YOURNAME&am=AMOUNT&cu=INR&tn=REFERENCE. Replace YOURUVPA with your UPI ID (e.g., business@okaxis), AMOUNT with the amount, REFERENCE with invoice/order number.
In your backend: construct the UPI link dynamically with the order amount and reference. Example: upi://pay?pa=waexpert@okaxis&pn=WA.Expert&am=1499&cu=INR&tn=ORDER-12345
In your WA.Expert template, include the UPI link as a button (CTA button type: URL) or as a variable in the message text. Button label: "Pay ₹1,499 via UPI".
UPI payments don't send a webhook to your server directly. Options: (1) Razorpay/Cashfree payment links include success webhooks, (2) UPI deep links require manual reconciliation via bank statement, (3) Add a "Payment Done" quick reply button that customer taps after paying.
For Razorpay/Cashfree links: configure webhook to call WA.Expert API and send a payment receipt WhatsApp automatically when payment is confirmed.
WhatsApp template for UPI: Message: "Hi {{name}}, your invoice #{{invoice_no}} for ₹{{amount}} is ready. Pay via UPI: [button: Pay ₹{{amount}} →] or use UPI ID: yourbusiness@okaxis. Reference: {{invoice_no}}."
POST to Razorpay /v1/payment_links API with amount, currency (INR), description, and customer details. Returns a short_url like https://rzp.io/l/xxxxx.
Use the short_url as a CTA button URL in your WA.Expert template. The customer clicks the button, opens Razorpay's payment page, and pays via any UPI app, card, or net banking.
In Razorpay dashboard: Webhooks → Add Webhook URL → select payment.captured event. Your server receives this webhook when payment succeeds.
Your webhook handler calls WA.Expert API to send a payment receipt WhatsApp with the Razorpay payment ID, amount, and timestamp.
WA.Expert + Razorpay integration: payment link in WhatsApp → payment → automatic receipt. Set up in 30 minutes.