Guides

Razorpay WhatsApp Integration: Key ID, Key Secret & Payment Links

Published on
Updated on
18 min read
By Kapil Nagar
Razorpay WhatsApp integration with Key ID, Key Secret, and payment link webhooks

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.

CredentialWhere it livesSafe to expose?
Key IDDashboard → Account & Settings → API KeysTreat as semi-public. Still do not ship it in a mobile app or GitHub gist.
Key SecretShown once when you generate the key pairNever. Not in frontend JS, not in WhatsApp template copy, not in chatbot logs.
Webhook secretDashboard → Webhooks → SecretUsed to verify X-Razorpay-Signature. Store with the Key Secret.
  1. Log in to Razorpay Dashboard
  2. Switch to Test mode first (toggle in the sidebar)
  3. Go to Account & Settings → API Keys → Generate Key
  4. Copy Key ID (starts with rzp_test_ in test, rzp_live_ in live)
  5. Copy Key Secret immediately — Razorpay will not show it again. If you lose it, regenerate the pair and update Ominiflow
  6. Paste both into Ominiflow → Integrations → Razorpay → Save
  7. 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 typeDocuments usually required
ProprietorshipPAN of proprietor, Aadhaar, cancelled cheque / bank statement, business proof (GST, Udyam, or Shop Act)
Partnership / LLPPAN of firm, partnership deed / LLP certificate, IDs of partners, cancelled cheque, GST if registered
Private limited / Pvt LtdCertificate of Incorporation, MOA/AOA, PAN of company, directors’ PAN + address proof, cancelled cheque, GST certificate
All typesBank 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)

  1. Razorpay fires webhook on payment.captured, payment.failed, payment_link.paid
  2. Ominiflow receives event, maps customer phone + amount + link
  3. Ominiflow sends approved WhatsApp template via Cloud API
  4. 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

  1. Onboard WhatsApp API — Onboarding checklist. Utility templates for payments.
  2. Connect Razorpay — Ominiflow → Integrations → Razorpay. Paste Key ID and Key Secret from Dashboard → Account & Settings → API Keys (test first, then live).
  3. 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.
  4. Create templates — Submit in Ominiflow + Meta Business Manager (parallel). Allow 1–48 hours approval.
  5. Map fields — Customer name → {{1}}, amount → {{2}}, payment link → {{3}}, transaction ID → {{4}}.
  6. 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.

  1. In Razorpay Dashboard go to Account & Settings → Webhooks → Add New Webhook
  2. Paste the Ominiflow webhook URL from Integrations → Razorpay
  3. Set the webhook secret; Ominiflow verifies X-Razorpay-Signature on every call
  4. Subscribe at minimum: payment_link.paid, payment.captured, payment.failed, refund.processed. Add subscription.charged if you use Razorpay Subscriptions
  5. 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 eventWhatsApp actionTemplate category
payment_link.createdSend payment link to customerUtility
payment.capturedPayment receipt + thank youUtility
payment.failedRetry prompt with new linkUtility
refund.processedRefund confirmationUtility
subscription.chargedRecurring payment receiptUtility
invoice.paidInvoice paid confirmationUtility

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-Signature on every inbound webhook
  • PII logging — Redact phone numbers in production logs

Troubleshooting

IssueCauseFix
Payment captured, no WhatsAppMissing phone on Razorpay customerCollect phone at payment link creation
Template send failsVariable mismatchMatch {{1}}–{{n}} count to payload
Link not clickableURL in wrong componentUse button or body URL per template spec
Duplicate receiptsWebhook retry without idempotencyDedup 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.

Need help? Chat with AI