APIs send you the data when you request it. For Webhooks, you do not need to make a request. You receive the data when it is available.
Example If you need to know whether a payment link is paid or not, using APIs, you need to keep polling every few seconds until someone pays. However, if you are using Webhooks, you can configure a webhook event payment_link.paid to receive notifications when a customer makes the payment using the link.
You can use Razorpay Webhooks to configure and receive notifications when a specific event occurs.
When one of these events is triggered, we send an HTTP POST payload in JSON to the webhook's configured URL.
You can set up Webhooks from your Razorpay Dashboard and configure separate URLs for Live mode and Test mode. Know more about setting up Payments webhooks and RazorpayX webhooks.
A Test mode webhook receives events for your test transactions. Know more about testing Webhooks.
In webhook URLs, only port numbers 80 and 443 are currently allowed.
Currently, webhooks are available for the following events:
Sent when the authorization payment has been made for the Subscription. A nominal amount is charged to validate the card details and is then automatically refunded.
Triggered when an order is successfully paid.
Sent when a Subscription is paused and moved to the paused state.
Sent when a subscription is cancelled and moved to the cancelled state.
Sent when the payment attempt for a Subscription fails.
Sent when a Subscription is cancelled and moved to the cancelled state.