Enhanced Payment Links on WhatsApp
PayU supports multiple ways to accept payments on WhatsApp in partnership with Meta. Merchants integrate with PayU; PayU handles the Meta side—you do not need a separate commercial or technical integration with Meta for these flows.
Enhanced Payment Links (EPL) is the simplest option: you send an approved WhatsApp template message with a Pay Now call-to-action, the customer taps it, and completes payment on PayU’s Hosted Checkout page on the browser (outside WhatsApp). If you already use PayU payment links, link generation and webhooks work the same as today.
Prerequisites for integrationAfter you ensure that the list of items listed under Prerequisites to go live on EPL, the integration with PayU is complete and not other steps are required.
What EPL is and how it fits alongside other WhatsApp payment options.
End-to-end steps from link creation to webhook notification.
Why EPL is often the best starting point and typical industries.
Why EPL is often the best starting point and typical industries.
WABA, template approval, allowlisting, and PayU account needs.
EPL vs UPI Intent vs PG Deep Integration at a glance.
Prerequisites to go live on EPL
EPL uses Meta’s Enhanced Payment Links pattern: PayU generates a payment link for the order, your system sends a WhatsApp Cloud API template whose CTA URL carries the PayU link (with the PayU-specific URL suffix Meta requires), WhatsApp shows an enhanced card with Pay Now, and the customer pays on PayU checkout using UPI, cards, net banking, wallets, EMI, and other methods your PayU setup supports.
Meta defines three WhatsApp commerce payment flavours; EPL sits at the lowest complexity end (typically 1–2 weeks to go live), with no PG-to-WhatsApp OAuth linking in Business Manager.
| EPL | UPI Intent | PG Deep Integration | |
|---|---|---|---|
| Complexity | Low | Medium | High |
| Typical engineering effort | 1–2 weeks | 4–5 weeks | 8–12 weeks |
| Payment methods | All (UPI, cards, net banking, wallets, EMI) | UPI-primary (others extendable) | UPI, cards, net banking, wallets |
| Payment inside WhatsApp? | No — opens PG checkout in browser | Partial — UPI apps open from WhatsApp | Yes — native in-chat checkout |
| Best for | Collections, insurance, lending, EMI, fast go-live | Bill pay, utilities, BBPS, government | E-commerce, travel, quick commerce, food |
How the payment flow works
- Your backend calls PayU to generate a payment link (same as existing payment-link flows).
- Your backend calls the WhatsApp Cloud API with an approved template; the template’s CTA includes the PayU link URL pattern Meta expects.
- The customer sees the template card in WhatsApp and taps Pay Now.
- The browser opens PayU hosted checkout; the customer pays with any supported method.
- PayU processes the payment and sends your existing PG webhook (same payload and reconciliation patterns as today).
The following sequence diagram matches the steps above (same styling as other PayU Developer Guide sequence diagrams such as the refunds workflow).
%%{init: {
"theme": "base",
"sequence": {
"mirrorActors": false,
"rightAngles": true,
"messageAlign": "left",
"fontSize": 12,
"actorFontSize": 12,
"noteFontSize": 11,
"actorMargin": 90,
"width": 170,
"boxMargin": 10,
"messageMargin": 38,
"diagramMarginX": 60,
"diagramMarginY": 18
},
"themeVariables": {
"fontFamily": "Arial, Helvetica, sans-serif",
"fontSize": "12px",
"background": "#FFFFFF",
"primaryColor": "#A6C307",
"primaryTextColor": "#002843",
"primaryBorderColor": "#002843",
"secondaryColor": "#F4F9E0",
"lineColor": "#002843",
"textColor": "#002843",
"actorBkg": "#A6C307",
"actorBorder": "#002843",
"actorTextColor": "#002843",
"actorLineColor": "#002843",
"signalColor": "#002843",
"signalTextColor": "#002843",
"labelBoxBkgColor": "#F4F9E0",
"labelBoxBorderColor": "#A6C307",
"noteBkgColor": "#F4F9E0",
"noteTextColor": "#002843",
"noteBorderColor": "#A6C307",
"activationBkgColor": "#E8F0C4",
"activationBorderColor": "#002843"
}
}}%%
sequenceDiagram
box Merchant
participant MS as Merchant system
end
box PayU
participant PU as PayU
end
box WhatsApp
participant WA as Cloud API
end
participant C as Customer
MS->>PU: Create payment link
PU-->>MS: Payment link URL
MS->>WA: Send approved template (CTA includes PayU link suffix)
WA->>C: Template card with Pay Now
Note over C: Tap Pay Now — opens browser
C->>PU: Hosted checkout (browser)
C->>PU: Complete payment
PU->>MS: PG webhook (same as payment links)
Customer journey
Payment Experience with UPI URL
In a live integration, your backend creates the UPI Intent via PayU and sends POST /messages with type: order_details and payment_type: "upi" (per your programme spec).
Step 1: Choose payment path and receive the order card
In the chat, the business asks how the customer wants to pay (for example Pay with UPI vs Other payment option). After the customer selects Pay with UPI, the business sends an order-style message: order reference, line item (for example Electricity bill), amount, short narrative, and actions such as Review and pay and Pay now.
Step 2: Review native order details (pending)
The customer opens the Order details view: merchant branding, ORDER reference, Order pending state, line items and pricing (including any discount), Total, and Continue to move toward payment.
Step 3: Choose UPI payment method
The Choose payment method sheet lists Pay on WhatsApp (linked bank as Default), options to Add payment method or View account balance, and Pay on other UPI app (for example Google Pay, PhonePe, More UPI apps). The customer selects an option and taps Continue (POWERED BY UPI).
Step 4: In-chat payment confirmation
In the thread, the customer sees the order summary alongside a completed payment bubble (amount, Sent to the business, Completed with read receipts). This corresponds to a successful UPI authorisation after the customer confirms on their bank or TPAP flow.
Step 5: Receipt and order complete
The business sends a closing message: Order complete, paid line item, and a receipt (or reference) number for the customer’s records. Your systems should already have received the PayU PG webhook for reconciliation.

Payment Experience with EPL flow
Step 1: Payment request appears in the chat
The business sends an approved template message. The customer sees a structured payment card: amount (for example ₹100.00), short instructions (“Please make the payment…”), optional Pay with hints (card brands), and a primary Pay now CTA on the card.
Step 2: Customer taps Pay now
Tapping Pay now follows the dynamic URL on the CTA (your PayU payment link with the Meta-required suffix). WhatsApp then opens the next payment UI, in other setups it can be PayU checkout in the in-app browser.
There is no separate still between frames 01 and 02; the animated GIF under Assets and publishing shows the transition.
Step 3: Choose payment method
The customer sees Choose payment method (sheet header with close X):
- Pay on WhatsApp — linked bank account (for example ICICI Bank ••1234) as Default, plus links to view balance or Add payment method.
- More payment methods — Google Pay, PhonePe, More UPI apps, and Other payment methods (debit card, net banking, and more).
The customer selects an option and taps Continue (green). Footer shows POWERED BY UPI.
Step 4: Review and confirm payment
The sheet moves to Confirm payment (back arrow to change method). The customer checks:
- Payee — business name / logo and payee identifier (in the demo, a UPI ID such as
merchant@wabank). - Pay from — selected bank or instrument (for example ICICI Bank ••5256, Default).
- Total — e.g. ₹100.00.
When satisfied, the customer taps Send payment (green).
Step 5: Authenticate
For the UPI on WhatsApp path, the bank/UPI step shows ENTER UPI PIN, amount and merchant name, numeric keypad, and submit (checkmark). For card / net banking (if the customer chose Other payment methods earlier), authentication is OTP or the bank’s page instead—those paths are not shown in these stills.
Step 6: Success in chat and webhook to merchant
The conversation updates with a completed payment line (green outbound bubble: amount, Send to merchant, Completed with read receipts). The payment card in-thread may show a post-pay state (for example View details). Your PayU PG webhook fires on success with the same contract as for standard payment links (no separate EPL webhook type).
P2M / PG Deep Integration on WhatsApp Flow
Step 1: Business sends catalogue or order in WhatsApp
The merchant (or automation) sends a structured order or catalogue message in the conversation—line items, amounts, and context the customer needs before paying. This is typically an order_details-style interactive message initiated over the WhatsApp Cloud API once your PG and Meta payment_configuration are in place.
Step 2: Customer taps Review & Pay in the chat
From the order bubble or card, the customer taps Review & Pay (or the equivalent CTA Meta renders for your template). The UI stays inside WhatsApp; there is no hand-off to an external merchant web checkout for the core native flow.
Step 3: Native payment sheet opens
WhatsApp opens the native payment sheet so the customer can choose UPI (including linked bank / TPAP where offered), cards, net banking, wallets, and EMI when your programme supports it.
Step 4: Customer completes payment without leaving WhatsApp
The customer enters OTP, UPI PIN, or other authentication required by the selected method. Authorisation completes without leaving WhatsApp for the native P2M path (contrast with EPL, where checkout opens in a browser, and contrast with UPI Intent–only flows that lean on UPI apps).
Step 5: Instant confirmation and order update in the chat
On success, the customer sees payment confirmation and order status updates in the same thread (for example paid / processing / complete, depending on your implementation). Your backend should consume WhatsApp payment / order webhooks where configured, and continue to handle the PayU PG webhook for reconciliation—PG Deep Integration uses both channels versus EPL or UPI Intent alone.

Benefits for your business
- Minimal backend change if you already use PayU payment links—reuse link APIs and webhooks.
- No OAuth linking of your PayU account inside WhatsApp Business Manager for EPL.
- Full checkout breadth on PayU hosted pages (EMI, auto-debit, etc.), not limited to in-chat UPI-only flows.
- Fastest path to WhatsApp collections compared with deeper native integrations.
Real-world examples cited in product materials include PolicyBazaar (reported 17% conversion uplift after EPL) and Piramal Finance for recurring EMI collection via links.
When you must use EPL?
- Insurance — premium renewals and policyholder collections.
- Lending / NBFCs — EMI and recurring collection links.
- Bulk collections and reminders with a pay link in each template message.
- Merchants who already run PayU payment links and want WhatsApp as an additional channel.
- Teams that need go-live in roughly 1–2 weeks (often dominated by Meta template approval, typically 3–7 business days).
When to consider another flavour instead?
- You need the customer to stay inside WhatsApp for the full payment UX → look at PG Deep Integration (or UPI Intent if UPI-only is acceptable).
- You need rich multi-line-item orders and real-time order status purely in chat (for example food delivery) → PG Deep Integration is usually more appropriate.
Prerequisites to Go Live on EPL
Integrate with MetaRefer to the following to integrating with Meta before proceeding with PayU:
The following table describes other prerequisites:
| Requirement | Detail |
|---|---|
| WhatsApp Business Account (WABA) | Enterprise WABA, verified with Meta. |
| Approved message template | Template with a CTA button; URL must follow Meta’s PayU-specific link suffix rules. Submitted and approved by Meta. |
| PayU account | Standard PayU merchant account. |
| EPL allowlisting | WABA must be added to Meta’s EPL gating list—PayU or your BSP drives this. |
| OAuth to link PG in WA | Not required for EPL. |
| Webhooks | Keep your existing PayU webhook; no new WhatsApp payment webhook is required for EPL. |
Gating list or allowlist (also known as GK biglist) is Meta's authorization mechanism for WhatsApp.
Contact PayU KAMFor WABA verification, template submission, EPL allowlisting, and commercial enablement, work with your PayU Key Account Manager (KAM) or your BSP so the correct Meta and PayU steps complete in order.
Comparison of WhatsApp payment options
| Dimension | EPL | UPI Intent | PG Deep Integration |
|---|---|---|---|
| What you send | Template + CTA URL | order_details interactive message | order_details interactive message |
| Meta template required | Yes | No | No |
| PG–WhatsApp OAuth | No | No | Yes |
payment_configuration in Meta | No | No | Yes |
| EPL allowlist or gating list | Yes | No | No |
| Webhook changes | None (same PG webhook) | None (same PG webhook) | Yes — add WhatsApp payment status webhooks; reconcile with PG webhooks |
| In-chat order management | No | No | Full (order_status, payment lookup APIs) |
| Customer leaves WhatsApp? | Yes (browser checkout) | Partial (UPI app) | No |
PayU is supported across all three solutions, so many merchants can start with EPL and later add UPI Intent or PG Deep Integration without changing payment gateway.
