Six Razorpay triggers start a run the moment Razorpay reports an event:
| Trigger | What it says | Razorpay event |
|---|---|---|
| Payment captured | When a payment is captured into your account | payment.captured |
| Payment failed | When a customer's payment fails | payment.failed |
| Payment link paid | When a payment link is paid in full | payment_link.paid |
| Order paid | When an order is paid | order.paid |
| Refund processed | When a refund reaches the customer | refund.processed |
| Subscription charged | When a subscription's payment is taken | subscription.charged |
They are instant triggers — see How instant triggers work. Razorpay only sends events to an address set in its own Dashboard, so you paste Bizomate's address and a secret there once.
Who can do this
Workspace Admins and Editors, on every plan. Viewers see the trigger and its status, but not the secret.
On Razorpay's side, someone who can manage Webhooks in the Razorpay Dashboard.
Before you start
A Razorpay connection — see Connect Razorpay.
Steps
In Bizomate, choose the trigger:
- Open the workflow in the designer and open the trigger picker — Browse all triggers on an empty workflow, or select the trigger and Change how it starts.
- Under Razorpay, select the trigger — for example Payment captured. It reads Razorpay · instant.
- In Connection, choose your Razorpay connection.
- Below, One step in Razorpay says what to do there — Razorpay sends events only to addresses set in its dashboard. Copy these two into Razorpay › Settings › Webhooks, tick “payment.captured”, and save. Bizomate checks every event against the secret.
- Beside Webhook address, select Copy. The toast says Copied — The address is on your clipboard.
- Beside Secret, select Copy — Shown once — copy it now. Bizomate checks every event against it. Keep it until you have pasted it into Razorpay; once you leave the trigger, it shows only as dots.
In Razorpay, add the webhook:
- Sign in to the Razorpay Dashboard, in the same mode as the connection's key — Test Mode for a
rzp_test_key. Test and live mode each have their own webhooks. - Go to Account & Settings, then Webhooks, and select Add New Webhook.
- Paste the address in Webhook URL.
- Paste the secret in Secret.
- Optional: an Alert Email for Razorpay to write to if deliveries fail.
- Under Active Events, tick the event the trigger names —
payment.capturedfor Payment captured. - Select Create Webhook.
Back in Bizomate:
- Add the steps, then Publish. You can paste the address before publishing — it is made the first time an Admin or Editor opens the trigger.
- Make a test payment — for example pay a link made with a test key. The panel reads Waiting for the first event — Make a payment through Razorpay — a test one, if the connection holds test keys; it appears here within seconds. — then Listening — instant — Last event 10:45 · Payment captured · ₹ 1,499.00.
- On Output, select Use the last event, then Test run.
What the trigger gives
Each event is one item. Payment captured, Payment failed, Payment link paid, Order paid and Subscription charged give the payment:
| Field | What it is |
|---|---|
id |
The payment's id — pay_…. Use it in Refund a payment or Fetch a payment. |
status |
captured, failed … |
amount, amountMain, amountText |
149900 (paise), 1499, ₹ 1,499.00. |
amount_refunded, amount_refundedMain, amount_refundedText |
How much has been refunded. |
currency |
INR. |
method |
upi, card, netbanking … |
email, contact |
The customer's email and phone. |
orderId |
The order paid, if any. |
description, captured, createdAt |
As Razorpay has them. |
event |
The Razorpay event — payment.captured. |
And, for some:
| Trigger | Also gives |
|---|---|
| Payment failed | errorReason — why it failed, in Razorpay's words. |
| Payment link paid | linkId (plink_…) and referenceId — the link's Reference. |
| Order paid | receipt — the order's Receipt. |
| Subscription charged | subscriptionId (sub_…). |
Refund processed gives the refund: id (rfnd_…), paymentId, status, currency, amount, amountMain, amountText and event.
Use them in later steps as {{ trigger.id }}, {{ trigger.amountText }} and so on.
What happens next
- Each event starts one run of the live version, in Production, named after it — Payment captured · ₹ 1,499.00.
- Every event is checked. Razorpay signs each one with the secret; one whose signature does not match is answered 401 and starts nothing.
- Other events are ignored. If the webhook in Razorpay has more events ticked, the trigger starts runs only for its own.
Good to know
- One workflow, one address. Each workflow has its own address and secret, and takes only its trigger's event. Two workflows on Razorpay events need two webhooks in Razorpay, one each.
- Changing to another Razorpay trigger keeps the address and the secret. Tick the new trigger's event on the webhook in Razorpay.
- Lost the secret? It cannot be shown again. Copy the workflow — the copy has its own address and secret, shown once when you open its trigger — and set up a new webhook in Razorpay with those. See Copy a workflow.
- Switched off, events still arrive and show as the last event, but start no runs.
- Deleting the workflow does not remove the webhook from Razorpay. Its address then answers No workflow listens here.; delete the webhook in Razorpay too.
If something goes wrong
| What you see | Why | What to do |
|---|---|---|
| Waiting for the first event stays after a payment | The webhook is in the other mode, the event is not ticked, or the address was pasted wrongly. | In Razorpay, check the webhook is in the same mode as the payment, has the event ticked, and has the address shown on the panel. |
| Razorpay shows deliveries failing with 401 | The secret in Razorpay is not the one Bizomate made. | Paste the secret again. If it is lost, copy the workflow and use the copy's address and secret. |
| Nothing has arrived yet — make one happen in Razorpay, then try again. on Output | No event has reached the trigger. | Make a test payment, wait for Listening — instant, then Use the last event. |
| An event shows on the panel but no run started | The workflow is switched off, or not published. | Publish and switch it on — see Switch a workflow on or off. |