Skip to main contentSkip to navigation

How to connect Razorpay to WhatsApp with WatEase

Connecting Razorpay to WhatsApp with WatEase lets you send a Razorpay payment link straight into a WhatsApp chat, capture the payment, and process refunds against the same order — all from your WatEase dashboard.

You add your own Razorpay API keys once, WatEase stores them AES-256-GCM encrypted per tenant, and every inbound Razorpay webhook is signature-verified before WatEase acts on it.

Setup takes a few minutes. The one step people get wrong is the webhook: WatEase does not create it for you, so you add it in your Razorpay dashboard yourself. This guide is explicit about that.

Before you start

  • A WatEase account with a WhatsApp Business number already connected (the WhatsApp Cloud API via Meta embedded signup).
  • A Razorpay account with KYC activated, so you can generate live API keys and accept real payments.
  • Your Razorpay API key — both the Key ID and the Key Secret. You generate these in your own Razorpay Dashboard.

Step by step

  1. 1

    Generate a Razorpay API key

    In your Razorpay Dashboard, go to Settings → API Keys → Generate Key. Razorpay shows the Key ID and the Key Secret. Copy both. A live key looks like rzp_live_… — the rzp_test_… form only works in test mode.

    Razorpay shows the Key Secret only once at generation time. Copy it immediately; if you lose it, regenerate the key.

  2. 2

    Open Payment Gateways in WatEase

    In WatEase, go to Dashboard → Settings → Payment Gateways (the URL is /settings/payment-gateways). Find the Razorpay card and click it to open the dialog titled "Configure Razorpay".

  3. 3

    Enter your Key ID and Key Secret

    In the "Configure Razorpay" dialog, paste the Key ID into the "Key ID" field (its placeholder is rzp_test_xxxxxxxxxx) and the Key Secret into the "Key Secret" field. Use your rzp_live_… key for real payments.

    Credentials are stored AES-256-GCM encrypted, scoped to your tenant. WatEase never displays the Key Secret back to you after saving.

  4. 4

    Add a webhook in your Razorpay dashboard

    In your Razorpay Dashboard, go to Settings → Webhooks and add a new webhook pointing at WatEase. Set a secret for that webhook — you choose the value. This is the step WatEase cannot do for you: WatEase does NOT auto-create the webhook in Razorpay.

    Keep this Razorpay webhook page open — you will paste the exact same secret into WatEase in the next step. If the two do not match, WatEase will reject the webhooks.

  5. 5

    Paste the Webhook Secret into WatEase

    Back in the "Configure Razorpay" dialog, paste the secret you just set in Razorpay into the "Webhook Secret" field. WatEase uses it to verify the signature on every inbound webhook before acting on it.

  6. 6

    Choose the Configuration Scope

    Set the "Configuration Scope" field to decide where this gateway applies — the whole tenant (all of your WatEase workspace) or a specific store. Pick tenant-wide if you run a single storefront.

  7. 7

    Test the connection

    Click "Test Connection". WatEase verifies your credentials against Razorpay before saving so you catch a wrong key or a test-vs-live mismatch now, not on your first live payment.

    If Test Connection fails, the most common cause is a test key (rzp_test_…) entered while you expect live payments, or a Key Secret copied with a stray space.

  8. 8

    Save the configuration

    Once Test Connection passes, click "Save Configuration". Razorpay is now connected. You can create orders, generate Razorpay payment links into WhatsApp chats, capture payments, and issue refunds from WatEase.

What it does

  • Create Razorpay orders from WatEase.
  • Generate Razorpay payment links and send them into the WhatsApp chat.
  • Capture payments once the customer pays.
  • Issue full and partial refunds against the order.
  • Verify the signature on every inbound webhook before acting on it.
  • Handle Razorpay webhook events: payment.captured, payment.failed, refund.created, refund.processed, refund.failed, payment_link.paid and payment_link.expired.
  • A circuit breaker that trips on repeated upstream failures, so a Razorpay outage does not hammer the API.

What it does not do

  • It does NOT auto-register webhooks in Razorpay. You add the webhook URL and secret in your own Razorpay dashboard — WatEase cannot create it for you.
  • It does NOT handle payment disputes or chargebacks. There is no dispute flow; manage disputes in your Razorpay dashboard.
  • It does not parse Retry-After headers from Razorpay. Instead of backing off on a header value, it uses a circuit breaker that trips on repeated upstream failures.

Troubleshooting

Test Connection fails.
Check the key mode. A live workspace needs an rzp_live_… key, not the rzp_test_… key shown as the placeholder. Re-copy the Key Secret from Razorpay (it is easy to grab a trailing space) and try again.
Payments succeed but the order does not update in WatEase.
The webhook is not reaching WatEase or the signature does not match. Confirm the webhook URL you set in Razorpay → Settings → Webhooks points at WatEase, and that the Webhook Secret in Razorpay is byte-for-byte the same value you pasted into the "Webhook Secret" field in WatEase.
The customer says the payment link expired.
Razorpay emits payment_link.paid and payment_link.expired events. If a link expired unpaid, generate a fresh payment link and send it again into the WhatsApp chat.
Refunds are not going through.
Refunds run against the original order, so the payment must be captured first. Confirm the payment shows as captured, then issue the full or partial refund. WatEase acts on refund.created, refund.processed and refund.failed events once the webhook is verified.

Frequently asked questions

Is there an extra WatEase charge for connecting Razorpay?
No. Integrations are included in your WatEase plan. You still pay Razorpay’s own transaction fees and Meta’s WhatsApp conversation charges — those are billed by Razorpay and Meta, not by WatEase.
Does WatEase create the Razorpay webhook for me?
No. You add the webhook in your Razorpay Dashboard → Settings → Webhooks, set a secret there, and paste that same secret into the "Webhook Secret" field in WatEase. WatEase verifies every webhook signature but does not register the webhook for you.
Where are my Razorpay keys stored?
They are stored AES-256-GCM encrypted and scoped to your tenant. WatEase never displays the Key Secret back to you after you save the configuration.
Can I use a test key first?
Yes. Enter an rzp_test_… Key ID and Key Secret to try the flow in Razorpay test mode. Switch to your rzp_live_… key when you are ready to accept real payments, and re-run Test Connection.
Does WatEase handle chargebacks or disputes?
No. There is no dispute flow in WatEase. Handle any Razorpay disputes or chargebacks in your Razorpay dashboard. WatEase covers orders, payment links, captures and refunds.

See also the Razorpay integration overview.