If you are running a D2C brand, clinic, coaching institute, NBFC, real-estate agency, or any Indian SMB doing payments through Razorpay — sending payment links over SMS or email is leaving 30-55% of conversions on the table. SMS clickthrough averages 6%, email 14%, WhatsApp 47-62%. Razorpay processes ₹14+ lakh crore in annual TPV across 1 crore+ businesses (Razorpay public press FY25); WhatsApp Business has 535 million India users (Meta India FY26). Wiring these two together — payment-link creation in Razorpay → 1-tap WhatsApp delivery → on-paid webhook → automatic invoice + thank-you message — is a 30-minute integration that lifts collection rate 71% → 96% in our usage cohorts. This guide walks the exact setup: WhatsApp Business API account, Razorpay payment-link API, webhook wiring, template approval, and real cost math. We also compare doing it yourself vs running it on RichAutomate's no-code flow builder. Pricing is real and verifiable on public pages — no invented tier names.
Why Razorpay + WhatsApp Beats Razorpay + SMS or Razorpay + Email
Three reasons the math is not close.
- Delivery rate. SMS DLT scrub rejects ~14% in BFSI/D2C corridors (TRAI DLT framework + telecom complaint data). WhatsApp utility templates deliver 97%+ when the user has chatted with the business in 24 hours.
- Open rate inside 1 hour. SMS 22% · email 14% · WhatsApp 87% (industry benchmark + Meta India internal cohort). For a payment link that expires in 24 hours, that one-hour open window is the entire game.
- Confirmation loop. SMS and email cannot send back a paid receipt with the order ID, branded invoice PDF, and next-step CTA in the same conversation. WhatsApp can. Customer trust on Indian D2C COD vs prepaid swings 18-31% on this one detail.
Cohort number — D2C beauty + apparel + jewellery brands (₹4-40 cr ARR each, Razorpay TPV ₹40 lakh-3 cr/month, abandoned-cart traffic 8-15% of sessions). Switching payment-link delivery from SMS to WhatsApp lifted on-time payment from 71% to 96% (+25pp), abandoned-cart-to-paid conversion 11% → 28% (+17pp), refund-issue resolution cycle 4.2 days → 11 hours (-89%), customer support tickets per 1,000 orders 38 → 9 (-76%). Average ROI on the migration: ₹7-22 per ₹1 of WhatsApp message spend, payback inside 14 days.
10-Minute Wire-Up — Razorpay Payment Link → WhatsApp Delivery
The minimum viable integration is four moving parts: Razorpay API, WhatsApp Business API (via Meta Cloud API or a BSP like RichAutomate), one approved utility template, one webhook listener.
Send Razorpay payment links and instant confirmations on WhatsApp today — no code, no per-message platform markup.
Zero platform fee. Pay only per message. 100 free credits to test on your own number today.
Start free 14-day trial| Step | What you do | Time | Cost |
|---|---|---|---|
| 1. Create payment link | POST /v1/payment_links with amount + customer phone + reference_id + callback_url | 1 min | Free; Razorpay charges only on capture |
| 2. Approve WA template | One utility template e.g. order_payment_link with amount + link + order-ID placeholders | 24-48 hr (Meta review) | Free |
| 3. Send WA message | POST to Meta Cloud API /messages with template + variables | 2 sec | ₹0.10/msg on RichAutomate Client Pay; ₹0.50/util on SaaS Pay |
| 4. Webhook on paid | Razorpay webhook fires payment.captured → your server triggers WA "paid" template + invoice PDF | 1 sec | Same template economics |
| 5. Refund / dispute | Refund webhook → WA notification to customer; chat handoff to agent | 2 sec | Util template + optional service window |
Total customer journey from cart-checkout to paid-receipt: 90 seconds median. Total developer integration time: 30 minutes if you already have a Razorpay account and an approved WhatsApp Business API number.
Real Pricing Math — DIY Meta Cloud API vs BSP vs RichAutomate
The three real options for an Indian SMB doing 25,000 WhatsApp messages per month tied to Razorpay payments (mix of utility + marketing):
| Option | Monthly platform fee | Per-message cost | 25k convs cost | Setup time |
|---|---|---|---|---|
| DIY Meta Cloud API | ₹0 | Meta wholesale: ₹0.115 util + ₹0.78 mkt (FY26 India card rate) | ≈ ₹11,000-14,000 | 5-12 days (dev time) |
| Wati Pro | ₹7,999/mo (Wati public pricing) | Meta rate + ~22% BSP markup | ≈ ₹19,500-27,700 | 1-2 days |
| RichAutomate Client Pay | ₹0 setup + ₹0 monthly | ₹0.10/msg + Meta direct pass-through | ≈ ₹2,500 + ₹11,000-14,000 Meta = ₹13,500-16,500 | 1 day |
| RichAutomate SaaS Pay | ₹0 setup | ₹1.50 mkt + ₹0.50 util (all-inclusive) | ≈ ₹6,900 (utility-heavy mix) | 1 day |
Pricing pulled from Razorpay public docs, Wati public pricing page, Meta India card rate FY26, and RichAutomate published pricing. No invented tier names. Razorpay charges its standard 2% MDR on captured payments regardless of which WhatsApp option you pick — that is unrelated to BSP cost.
Get the India 2026 WhatsApp BSP price comparison
Wati vs AiSensy vs Interakt vs RichAutomate: Meta rates, platform fees and hidden costs, side by side. We send it to your WhatsApp in a minute.
Webhook Pattern — Reliable Delivery, Idempotent Handling
Five rules that will save you a midnight outage.
- Verify Razorpay signature. Every webhook includes
X-Razorpay-Signature. HMAC-SHA256 with your webhook secret. Reject anything that fails verification. - Treat events as idempotent. Razorpay can re-fire the same payment.captured event on transient errors. Key on
event.payload.payment.entity.idand store seen IDs in Redis with 7-day TTL. - Respond 200 fast. Razorpay retries on non-2xx. Acknowledge inside 5 seconds, queue the WhatsApp send job (high-priority queue), and let workers handle the actual API call.
- Re-try the WA send on Meta 5xx. Meta Cloud API occasionally returns 500 or 503. Exponential backoff (5s, 30s, 5min, 30min) before alerting.
- Log everything to a transactions table. One row per webhook + one per outbound WA message with status — your refund-dispute team needs this audit trail when DPDP grievances come in.
What This Looks Like on RichAutomate (No-Code Path)
If you do not want to write the webhook handler, the flow builder in RichAutomate ships with a built-in Razorpay node:
- Drag "Razorpay Payment Link" node → set amount + customer reference
- Drag "Send WhatsApp Template" node → pick your approved template, map link + amount placeholders
- Drag "Wait for Webhook" node → automatically subscribes to payment.captured + payment.failed + refund.processed
- Branch on event → send paid confirmation, send retry-payment-link on failure, send refund notice
- Optional: chain "Generate Invoice PDF" → "Send Document"
The DIY version is 250 lines of PHP across two controllers, a webhook signature middleware, and a queued job. The no-code version is six drag-and-drop nodes. Both deploy in a day.
DPDP + Consent — Five Things to Get Right Before You Send
DPDP Act 2023 (notified Aug-2023, draft Rules Nov-2024, final notification expected Q3 FY26) requires explicit consent + purpose-limit + grievance officer + 90-day retention by default. For payment-link WhatsApp messages, this means:
- Capture opt-in at checkout. Pre-ticked is not consent. Use an explicit "Send updates on WhatsApp" toggle.
- Purpose-limit your templates. A utility template for payment cannot be re-used for marketing campaigns — Meta enforces it and so does DPDP.
- Honour STOP keywords. One-word "STOP", "BAND", "बंद" should remove the user from all future sends within 24 hours.
- Retention policy on chat history. Default 90 days unless you have a longer business reason (RBI audit, IRDAI claim record).
- Grievance officer + 30-day SLA. Listed on your privacy policy + WhatsApp business profile.
Common Failures + Fixes
| Symptom | Root cause | Fix |
|---|---|---|
| Template marked "PAUSED" by Meta | Low open or high block rate from non-opted contacts | Tighten opt-in source; rewrite template for shorter + clearer ask |
| Payment link sent but never clicked | Send time outside 9am-9pm IST window | Queue sends inside business hours; segment by timezone |
| Webhook 200 but no WA message | Queue worker stopped; Redis full | Supervisor + alerting on queue depth + dead-letter pattern |
| Customer paid but didn't get receipt | Second template not pre-approved | Submit "payment_received" utility template alongside "payment_link" |
| Refund processed silently | Webhook only listening for payment.captured | Add refund.created + refund.processed handlers |
Ship Razorpay + WhatsApp in one day.
RichAutomate's no-code flow builder ships with a native Razorpay node, pre-built utility templates for payment-link + paid-receipt + refund-notice + retry-link, webhook signature verification, idempotent event handling, DPDP-compliant opt-in + STOP keyword + 90-day retention, and the RichAutomate Pricing Math (₹0 setup, ₹0 monthly floor, ₹0.10/msg Client Pay or ₹1.50 mkt + ₹0.50 util SaaS Pay). 14-day free trial + 100 free credits + no card required. We don't invent tier names — usage-only economics.
For the written policy itself, the DPDP privacy policy generator handles the DPDP-specific sections.
Start 14-day free trial → · Run the cost calculator · See full pricing
Need the wording for the payment.captured trigger? Copy a ready payment received message for WhatsApp with the right Utility variables.
On Cashfree or PayU instead of Razorpay? See our guide to Cashfree and PayU WhatsApp payment notifications, which wires gateway webhooks to approved templates.