Skip to content

Concept map· 6 connected terms

UPI Payment(UPI)

Also called: Unified Payments Interface · UPI intent · UPI QR code · WhatsApp UPI payment

In one line
A real-time bank-to-bank payment over India's Unified Payments Interface, started from a WhatsApp chat by an in-chat bill, a UPI intent, a link or a QR code.

Reviewed

What is a UPI payment?

UPI — the Unified Payments Interface — is India's real-time payment system, run by the National Payments Corporation of India (NPCI). A payer approves a payment in a UPI app with their UPI PIN, money moves directly between bank accounts within seconds, and every transaction gets a reference number banks and gateways use to trace it. A business receives UPI payments at a virtual payment address (a UPI ID such as shop@bank) provided by its bank or payment gateway.

A WhatsApp chat can start a UPI payment in four ways. In India, Meta's Payments API sends an order details message (order_details), an itemised bill; when the customer taps to pay, they choose WhatsApp's own UPI or any other UPI app installed on the phone. A UPI intent — a upi://pay?… string carrying the payee address, name, merchant category and a transaction reference — can be attached to that bill or opened from a gateway's payment page. A dynamic QR code generated for one order suits customers chatting on WhatsApp Web or a laptop. And a gateway payment link offers UPI alongside other methods.

However it starts, the payment completes in the customer's UPI app and the bank system, not inside the chat — so the business must learn the outcome from its payment gateway and Meta's payment lookup API (in Deep Integration mode WhatsApp also sends a payment webhook), then tell the customer. That is the difference from WhatsApp Payments as a whole, which also covers cards, netbanking and wallets: a UPI payment is always approved with a UPI PIN in the customer's chosen UPI app (which may be WhatsApp's own) and settled between banks, while the chat carries the request and the receipt.

Key takeaways

  • A UPI payment moves money bank to bank within seconds over NPCI's network, approved by the payer with a UPI PIN in a UPI app.
  • From WhatsApp it starts four ways: an order details bill, a UPI intent, a one-time QR code or a gateway payment link.
  • The payment completes outside the chat, so confirm it with your gateway or Meta's lookup API, never from a screenshot.
  • Give every request a unique reference; in UPI Intent mode, reuse the order or transaction ID behind the gateway's intent as the bill's reference_id.
  • Send an order status update with the same reference_id, or the customer's bill keeps showing pending.

Follow one UPI payment from bill to receipt

9 / 9
  • CustomerWhatsApp chat
  • WhatsAppCloud API
  • Your backend
  • Payment gatewaymerchant VPA
  • UPI app + banksNPCI network

Step 9 of 9Event

WhatsAppCustomer

Bill shows the order as complete

  • Request — solid arrow — a call that expects an answer
  • Response — dashed arrow — the answer coming back
  • Event — dotted arrow — something happened and is pushed out
A WhatsApp bill with a UPI intent, the customer's PIN in their UPI app, the gateway's confirmation and the order_status that closes the loop. Step through who talks to whom, and when.

Step 9 of 9: WhatsApp to Customer — Bill shows the order as complete

Why does a UPI payment matter?

UPI is how most Indian customers prefer to pay, so making it a tap away from the chat removes the last excuse to drop off — no card to find, no netbanking login. But because the payment happens outside WhatsApp, the business side is where things go wrong: unreferenced payments that cannot be matched to an order, screenshots treated as proof, or bills left showing pending. Getting the reference and the confirmation path right is what makes UPI on WhatsApp dependable.

How does a UPI payment work?

  1. Create a referenced payment request

    Your gateway creates the order and a dynamic UPI intent or QR whose transaction reference (tr) is unique to it. In UPI Intent mode, use the same order or transaction ID as the bill's reference_id so the gateway's status and the chat bill line up. Never ask customers to pay a bare UPI ID with no reference.

  2. Put it in the chat

    Send an order_details bill with a upi_intent_link or gateway payment setting, a payment link in a button, or a QR image for customers on desktop.

  3. The customer approves in a UPI app

    They choose WhatsApp or another UPI app, check the payee name and amount, and enter their UPI PIN. Funds move between banks over NPCI's network, usually within seconds.

  4. Confirmation reaches you

    Your gateway sends a webhook with the result and the bank reference; in Deep Integration mode WhatsApp also sends a statuses webhook of type payment. Verify by your reference before fulfilling.

  5. Update the customer

    Send an order status update (order_status) with the same reference_id so the bill in the chat moves from pending to processing or completed, then the receipt or e-ticket.

Example: A pottery workshop in Bengaluru

A Bengaluru pottery studio sells Saturday workshop seats on WhatsApp. A customer books one seat and receives an order_details bill for 1,180 rupees (1,000 plus 18% GST) with a UPI intent from the studio's gateway. She taps Pay, picks her usual UPI app and enters her PIN. Seconds later the gateway's webhook reports success with the bank reference; the studio's backend checks the status by reference, marks the seat sold and sends order_status: completed. A customer who asks from a laptop gets a one-time QR code instead.

A UPI payment in code

{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "919812345678",
"type": "interactive",
"interactive": {
"type": "order_details",
"body": { "text": "Pottery workshop, Sat 25 Oct, 11 am. Pay to confirm your seat." },
"action": {
"name": "review_and_pay",
"parameters": {
"reference_id": "POT-1025-0042",
"type": "digital-goods",
"payment_settings": [
{
"type": "upi_intent_link",
"upi_intent_link": {
"link": "upi://pay?pa={MERCHANT_VPA}&pn=Clay%20Studio&mc={MCC}&purpose={PURPOSE_CODE}&tr=POT-1025-0042"
}
}
],
"currency": "INR",
"total_amount": { "value": 118000, "offset": 100 },
"order": {
"status": "pending",
"items": [
{ "name": "Workshop seat", "amount": { "value": 100000, "offset": 100 }, "quantity": 1 }
],
"subtotal": { "value": 100000, "offset": 100 },
"tax": { "value": 18000, "offset": 100, "description": "GST 18%" }
}
}
}
}
}

UPI Intent mode, sent to /{PHONE_NUMBER_ID}/messages. The intent comes from your gateway and may carry only pa, pn, mc, purpose and tr; here reference_id reuses the tr value. Amounts are in paise (offset 100).

Key facts at a glance

A UPI payment: key facts and limits

Operator
NPCI (National Payments Corporation of India)
Payer approves with
UPI PIN (4 or 6 digits) in a UPI app
Payee address
UPI ID / VPA, e.g. shop@bank
Bank reference
12-digit UTR (RRN) per transaction
Intent fields used by WhatsApp
pa, pn, mc, purpose, tr
reference_id (UPI Intent mode)
Your order or transaction ID behind the intent; up to 35 characters
Amounts in order_details
value + offset 100 (paise), INR only
Per-transaction limit
Commonly one lakh rupees; higher for some merchant categories

Common wrong turns

Common mistakes with a UPI payment

  • Accepting screenshots as proof

    A screenshot can be edited or show a payment that later failed. Fulfil only when your gateway or Meta's payment lookup API confirms the payment for that reference.

  • Static UPI IDs and QR codes

    Asking customers to pay a fixed UPI ID leaves you matching amounts and names by hand. Use a dynamic intent or QR with a unique transaction reference for every order.

  • Sending UPI intents to desktop users

    A upi:// intent needs a UPI app on the same device, and raw intent strings are not reliably tappable in chat. Offer a QR code or a payment link to customers on WhatsApp Web or a laptop.

  • Giving up on pending payments

    UPI transactions can sit pending and settle minutes later. Do not cancel the order or ask the customer to pay again on the first non-success; wait for the final status.

Good practice

Best practices for a UPI payment

  • Show the payee name the customer will see in their UPI app, so they recognise it at the PIN screen.
  • Store the gateway transaction ID and the bank UTR with each order — support and refunds will ask for both.
  • Set an expiry on bills for perishable stock such as seats or slots, at least five minutes ahead.
  • Since NPCI lifted the cap on WhatsApp's UPI user base at the end of 2024, many customers can pay with WhatsApp's own UPI; never assume they will, and let them choose their app.
  • On cash-on-delivery orders, a UPI request sent before dispatch is the usual route for COD-to-prepaid conversion.

UPI FAQs

Does my customer need WhatsApp's own UPI to pay me?+
No. On an order details bill the customer can pick WhatsApp or any other UPI app installed on the phone, and a payment link or QR code works with any UPI app.
How do I know a UPI payment really succeeded?+
From your payment gateway: its webhook and status API report the result with a bank reference. Meta's payment lookup API also returns the status by `reference_id`, and in Deep Integration mode WhatsApp sends a payment webhook too.
Can customers pay by UPI on WhatsApp Web?+
Not with an intent, which needs a UPI app on the same device. Send a QR code they can scan with their phone, or a payment link.
What does it cost to send a UPI bill on WhatsApp?+
The message is billed like any other: a service message at ₹0.145 inside an open window (charged in India since 1 October 2026), or a template rate outside it. Transaction fees, if any, come from your gateway agreement.

See InfiQ pricing

* Per-message rates for India, ex-GST: marketing, utility and authentication effective 1 July 2026; service messages ₹0.145 since 1 October 2026 (they were ₹0 until 30 September 2026). Volume commitments earn discounts — final rate is confirmed on your account; applicable GST extra. Rates for other countries differ (see the international rate table on /pricing).

Try it on the official WhatsApp Business API

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.