Do I need Zapier to connect Razorpay with WhatsApp?
Razorpay WhatsApp integration: Key ID, Key Secret, KYC documents, webhooks, and payment-link receipts on the official WhatsApp Cloud API via Ominiflow. No. Ominiflow provides native Razorpay webhook integration for payment links, receipts, and failed-payment follow-ups.
Last updated: 10 September 2026
Razorpay WhatsApp integration puts payment collection where Indian customers actually respond — not buried in email or lost to SMS DND filters. You connect Razorpay API integrations with a Key ID and Key Secret, map webhooks, and send payment links on the official WhatsApp Cloud API. Payment links on WhatsApp typically see 3–5× higher click-through than email for coaching institutes, D2C brands, B2B invoicing, and event registration.
Setup architecture, event mapping, template examples, and compliance notes below. For the full integration stack mental model, see WhatsApp API integration guide.
Too long? Start here
- Flow: Razorpay event (payment link created, captured, failed) → Ominiflow webhook → WhatsApp utility template → customer
- Setup: Live Razorpay account (KYC done) → copy Key ID + Key Secret → connect in Ominiflow → map webhooks → test with ₹1
- Credentials: Key ID is public-ish; Key Secret never leaves your server or Ominiflow vault
- Templates: Utility category for payment links and receipts; authentication for OTP if applicable
- Phone format: E.164 (+919876543210) — Razorpay customer phone must match
- Timeline: KYC 1–2 days if not already live; templates 1–48 hours; webhook mapping under an hour
Razorpay Key ID and Key Secret (what you actually paste)
Every Razorpay API integration — including WhatsApp — authenticates with two values from the Razorpay Dashboard. Ominiflow asks for both when you open Integrations → Razorpay.
| Credential | Where it lives | Safe to expose? |
|---|---|---|
| Key ID | Dashboard → Account & Settings → API Keys | Treat as semi-public. Still do not ship it in a mobile app or GitHub gist. |
| Key Secret | Shown once when you generate the key pair | Never. Not in frontend JS, not in WhatsApp template copy, not in chatbot logs. |
| Webhook secret | Dashboard → Webhooks → Secret | Used to verify X-Razorpay-Signature. Store with the Key Secret. |
- Log in to Razorpay Dashboard
- Switch to Test mode first (toggle in the sidebar)
- Go to Account & Settings → API Keys → Generate Key
- Copy Key ID (starts with
rzp_test_in test,rzp_live_in live) - Copy Key Secret immediately — Razorpay will not show it again. If you lose it, regenerate the pair and update Ominiflow
- Paste both into Ominiflow → Integrations → Razorpay → Save
- Repeat in Live mode after KYC is approved and a ₹1 test payment succeeded in test
Test and live keys are different. A test Key ID against a live webhook URL (or the reverse) is the most common “payment captured, no WhatsApp” bug. Rotate keys if a contractor leaves; regenerating invalidates the old secret instantly.
Required documents for Razorpay (KYC before live keys)
You cannot send real customer payment links on WhatsApp until Razorpay KYC is complete and live API keys are active. Document lists below are what Indian businesses typically upload in Razorpay Dashboard → Account & Settings → Business KYC. Razorpay’s reviewer may ask for extras — treat this as the starter pack, not a legal checklist.
| Business type | Documents usually required |
|---|---|
| Proprietorship | PAN of proprietor, Aadhaar, cancelled cheque / bank statement, business proof (GST, Udyam, or Shop Act) |
| Partnership / LLP | PAN of firm, partnership deed / LLP certificate, IDs of partners, cancelled cheque, GST if registered |
| Private limited / Pvt Ltd | Certificate of Incorporation, MOA/AOA, PAN of company, directors’ PAN + address proof, cancelled cheque, GST certificate |
| All types | Bank account in the business name, authorised signatory ID, business address proof, website or WhatsApp catalog URL |
- GST: required if you are GST-registered; Razorpay uses it for invoices on platform fees
- Website / WhatsApp presence: reviewers look for a real offer (course page, Shopify store, or WhatsApp business profile) before enabling live settlements
- Name match: PAN, bank account, and WhatsApp display name should tell the same story or KYC bounces
- Timeline: complete files often clear in 1–2 business days; mismatches stretch to a week
WhatsApp-side documents (Meta Business verification) are separate: GST/PAN for India plus a phone number not already on the consumer app. See the WhatsApp API onboarding checklist.
Why integrate Razorpay with WhatsApp?
- Higher collection rates — payment links opened within minutes, not hours
- Failed payment recovery — auto-retry nudge with fresh link before cart/order expires
- Receipt delivery — instant confirmation with transaction ID reduces "did my payment go through?" support tickets
- Event and course sales — registration bot sends Razorpay link → on capture, ticket QR via WhatsApp (see events case study)
- B2B invoicing — invoice link + reminder sequence without manual follow-up calls
Architecture
Two integration patterns — pick based on who owns payment logic:
Pattern A: Ominiflow as middleware (recommended)
- Razorpay fires webhook on
payment.captured,payment.failed,payment_link.paid - Ominiflow receives event, maps customer phone + amount + link
- Ominiflow sends approved WhatsApp template via Cloud API
- Inbound customer reply routes to inbox or chatbot
Pattern B: Your backend + Ominiflow API
Your server listens to Razorpay webhooks, then POSTs to Ominiflow send-message API. Use when you need custom business logic (split payments, multi-party approval) before messaging. See webhook guide for outbound patterns.
Step-by-step setup
- Onboard WhatsApp API — Onboarding checklist. Utility templates for payments.
- Connect Razorpay — Ominiflow → Integrations → Razorpay. Paste Key ID and Key Secret from Dashboard → Account & Settings → API Keys (test first, then live).
- Configure Razorpay webhooks — In Razorpay Dashboard, point webhook URL to Ominiflow endpoint (or your middleware). Subscribe:
payment.captured,payment.failed,payment_link.paid,refund.processed. - Create templates — Submit in Ominiflow + Meta Business Manager (parallel). Allow 1–48 hours approval.
- Map fields — Customer name →
{{1}}, amount →{{2}}, payment link →{{3}}, transaction ID →{{4}}. - Test — Create ₹1 payment link, complete payment, verify WhatsApp receipt. Test failed payment with test card
4111 1111 1111 1111.
Razorpay webhook setup for WhatsApp
Razorpay webhook is what actually fires the WhatsApp template. Keys alone do not send messages — the webhook tells Ominiflow that a payment was created, captured, failed, or refunded.
- In Razorpay Dashboard go to Account & Settings → Webhooks → Add New Webhook
- Paste the Ominiflow webhook URL from Integrations → Razorpay
- Set the webhook secret; Ominiflow verifies
X-Razorpay-Signatureon every call - Subscribe at minimum:
payment_link.paid,payment.captured,payment.failed,refund.processed. Addsubscription.chargedif you use Razorpay Subscriptions - Save, then send Razorpay’s test webhook (or a ₹1 test link) and confirm a WhatsApp utility template lands
If the webhook retries and you see duplicate receipts, dedupe on payment.id — Razorpay retries on non-2xx. Full webhook patterns: WhatsApp API webhook guide.
Razorpay events → WhatsApp messages
| Razorpay event | WhatsApp action | Template category |
|---|---|---|
payment_link.created | Send payment link to customer | Utility |
payment.captured | Payment receipt + thank you | Utility |
payment.failed | Retry prompt with new link | Utility |
refund.processed | Refund confirmation | Utility |
subscription.charged | Recurring payment receipt | Utility |
invoice.paid | Invoice paid confirmation | Utility |
Sample templates
Payment link (utility)
Hi {{1}}, your payment of ₹{{2}} is pending. Pay securely here: {{3}}
— {{brand_name}}Payment success (utility)
Thank you {{1}}! We received ₹{{2}}. Transaction ID: {{3}}. Receipt: {{4}}Payment failed (utility)
Hi {{1}}, your payment of ₹{{2}} could not be processed. Retry here: {{3}}Variable count in payload must match template placeholders exactly — mismatch causes error #132000. Full reference: template API guide.
Use cases by vertical
Coaching and ed-tech
Lead qualifies on WhatsApp bot → Razorpay payment link for course fee → on capture, send welcome pack PDF + class schedule. Failed payment: 24h and 72h retry nudges.
D2C partial payments
Custom order requires 50% advance → payment link on WhatsApp → balance link before dispatch. Sync order status to Shopify via Ominiflow.
B2B invoicing
Invoice generated in ERP → Razorpay payment link → WhatsApp to accounts payable contact → reminder at day 3 and day 7 if unpaid.
Event registration
Bot collects attendee details → Razorpay link → on payment.captured, send QR ticket. Case study: +45% registrations.
Compliance and security
- Never send full card numbers on WhatsApp — only links and transaction IDs
- PCI scope — Razorpay handles card data; your integration passes links only
- Opt-in — customer must have initiated contact or opted in at checkout for payment messages
- Webhook verification — Validate Razorpay
X-Razorpay-Signatureon every inbound webhook - PII logging — Redact phone numbers in production logs
Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
| Payment captured, no WhatsApp | Missing phone on Razorpay customer | Collect phone at payment link creation |
| Template send fails | Variable mismatch | Match {{1}}–{{n}} count to payload |
| Link not clickable | URL in wrong component | Use button or body URL per template spec |
| Duplicate receipts | Webhook retry without idempotency | Dedup on payment.id |
FAQ
Do I need Zapier to connect Razorpay with WhatsApp? expand_more
No. Ominiflow native Razorpay integration handles webhook events and template dispatch. Zapier is optional for edge workflows.
Where do I find Razorpay Key ID and Key Secret? expand_more
Razorpay Dashboard → Account & Settings → API Keys. Generate a pair, copy Key ID and Key Secret, and paste them into Ominiflow. Use rzp_test_ keys until a ₹1 payment succeeds, then switch to rzp_live_.
What documents are required for Razorpay before WhatsApp payment links? expand_more
Complete Razorpay KYC first: PAN, bank proof, business proof (GST / incorporation), and authorised-signatory ID. Live Key ID / Key Secret will not settle real charges until KYC is approved. Meta verification for the WhatsApp number is a separate step.
Can I send Razorpay payment links on WhatsApp? expand_more
Yes. Use utility templates with the payment link as a variable or CTA button. Links must be HTTPS and stable (no rotating shorteners post-approval).
What happens when a Razorpay payment fails? expand_more
Configure payment.failed webhook to send a retry template with a fresh payment link. Typical recovery: 15–25% of failed payments on second nudge.
Is Razorpay WhatsApp integration PCI compliant? expand_more
Yes when you only pass Razorpay-hosted payment links — card data never touches your WhatsApp integration.
Can I combine Razorpay with Shopify on WhatsApp? expand_more
Yes. Shopify order events and Razorpay payment events can run parallel flows on Ominiflow — order confirm from Shopify, payment link from Razorpay for custom orders. Related: All integrations · API integration guide · Freshdesk integration Updated September 2026. Razorpay WhatsApp integration — Key ID, Key Secret, KYC documents, and Cloud API webhooks for Indian businesses.