Webhooks
Webhooks are real-time notifications sent from Zoho Payments' servers to your servers when specific events occur. You can subscribe to a predefined set of events while configuring the URL to receive these notifications. This enables you to take appropriate actions swiftly, based on the events. Refer to our API Docs for request examples of the webhooks.
Zoho Payments supports the following webhooks:
Payment Webhooks
A payment webhook is triggered when a payment is processed in Zoho Payments, notifying your system of the payment status (successful, declined, or pending). It provides details like payment ID, amount, and payment method, enabling your system to take immediate actions such as order fulfillment or customer notifications. This webhook ensures you’re always up to date with transaction statuses.
Below is a list of payment webhook events and their descriptions.
| Events | Description |
|---|---|
| payment.succeeded | This event is triggered when a payment succeeds, providing details such as the payment ID, payment method, and amount paid. |
| payment.failed | This event is triggered when a payment fails, providing information about the failure reason, allowing you to take necessary actions to resolve the issue. Webhooks are triggered for each payment attempt while the session is active. Before acting on a payment.failed webhook, verify the payment session status using the Payment Session ID, as the payment may succeed in a later attempt. |
Payment Link Webhooks
A payment link webhook is triggered when a payment is made through a link in Zoho Payments, notifying your system of the payment link status (paid, cancelled, or expired). Enabling this webhook helps keep customers informed of their payment status in real-time.
Below is a list of payment link webhook events and their descriptions.
| Events | Description |
|---|---|
| payment_link.paid | This event is triggered when a payment link is successfully paid, providing the payment ID, amount, and the date and time of the payment. |
| payment_link.cancelled | This event is triggered when a payment link is manually cancelled, providing the link details with the status marked as cancelled. |
| payment_link.expired | This event is triggered when a payment link expires without payment, providing the link details with the status marked as expired. |
Refund Webhooks
A refund webhook is triggered when a refund is initiated or processed. It notifies your system about the refund status (successful, failed, or pending), including details like the original payment ID and refunded amount. Subscribing to this webhook helps automate actions like updating customer accounts or notifying customers about their refund status in real-time.
Below is a list of refund webhook events and their descriptions.
| Events | Description |
|---|---|
| refund.succeeded | This event is triggered when a refund is successful, providing details such as the refund amount, payment ID, and the reason for the refund. |
| refund.failed | This event is triggered when a refund fails, providing the failure reason. |
Payout Webhooks
A payout webhook is triggered when a payout transaction is processed in Zoho Payments, notifying your system of the payout status (initiated, completed, or failed). It provides key details like payout ID, amount, and transaction summary, enabling your system to track payout progress and take appropriate actions.
Below is a list of payout webhook events and their descriptions.
| Events | Description |
|---|---|
| payout.initiated | This event is triggered when a payout is successfully initiated, providing details like payout ID, amount, and transaction summary. |
| payout.paid | This event occurs when a payout is successfully completed, with details such as payout ID, amount, and transaction summary. |
| payout.failed | This event occurs when a payout fails for various reasons, including payout ID, amount, transaction summary, and the failure reason. |
Mandate Webhooks
A mandate webhook is triggered when a mandate’s status changes in Zoho Payments, notifying your system with details such as the mandate ID, customer information, and authorized amount. This webhook keeps you informed across the mandate lifecycle when it is activated, paused, resumed, or deactivated.
Below is a list of mandate webhook events and their descriptions.
| Events | Description |
|---|---|
| mandate.active | This event is triggered when a mandate becomes active, providing details such as the mandate ID, customer information, and the authorized amount. |
| mandate.paused | This event is triggered when a mandate is paused, providing the mandate details. |
| mandate.resumed | This event is triggered when a paused mandate is resumed, providing the mandate details. |
| mandate.inactive | This event is triggered when a mandate becomes inactive, providing the mandate details including the inactive category. |
Virtual Account Webhooks
A virtual account webhook is triggered when a payment is received for a virtual account or when a virtual account is closed, notifying your system of the event along with the virtual account details.
Below is a list of virtual account webhook events and their descriptions.
| Events | Description |
|---|---|
| virtual_account.paid | This event is triggered when a payment is received for a virtual account, providing the virtual account details and payment information. |
| virtual_account.closed | This event is triggered when a virtual account is closed, providing the virtual account details and status. |