Webhooks are event-based notifications that are received when a specific event related to async bank account verification occurs.Documentation Index
Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Add webhooks
Add your webhook URL in our system for us to deliver webhook events. Follow the instructions below to configure the webhook URL. Ensure to provide the publicly accessible HTTPS URL to your webhook endpoint.- Log in to the Merchant Dashboard and click Developers.
- Click Webhooks listed under the Secure ID card.
- Click Add Webhook URL in the Webhook screen.
- In the Add Webhook popup, fill in the following information:
- Webhook URL: Enter the URL in this field.
- Click Test & Add Webhook.

Webhook event
The following events are triggered at different stages of the bank account verification process:| Event | Description |
|---|---|
| BANK_ACCOUNT_VERIFICATION_SUCCESS | Bank account verification is a success. |
| BANK_ACCOUNT_VERIFICATION_REJECTED | Bank account verification is rejected. |
| BANK_ACCOUNT_VERIFICATION_FAILED | Bank account verification is a failure. |
BANK_ACCOUNT_VERIFICATION_SUCCESS
BANK_ACCOUNT_VERIFICATION_SUCCESS
BANK_ACCOUNT_VERIFICATION_REJECTED
BANK_ACCOUNT_VERIFICATION_REJECTED
BANK_ACCOUNT_VERIFICATION_FAILED
BANK_ACCOUNT_VERIFICATION_FAILED
Webhook payload fields
The webhook payload contains important metadata in its top-level fields.| Field | Type | Description |
|---|---|---|
signature | string | A Base64-encoded HMAC-SHA256 signature of the payload, generated using a shared client secret. |
event_type | string | Indicates the type of event that triggered the webhook. |
event_time | string | The UTC timestamp of when the event occurred, formatted in ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). |
version | string | Indicates the webhook format being used. Default version is “v1”. |
data | object | Contains event-specific details related to this feature. |
Signature Verification
Verifying the signature is mandatory before processing any response. It helps authenticate that the webhook is from Cashfree Payments. Follow the steps to verify the signature:- Sort the array based on keys.
- Concatenate all the values in this array and the resultant is the post data (postData).
- postData needs to be encrypted using SHA-256 and then base64 encoded.
- Verify if both the signature calculated and the signature received match.
- Proceed further only if the signatures match. If not, discard the request.
- Ensure clientSecret you use is from the oldest active key pair.
Java code - for reference
IPs to whitelist
When you decide to consume the webhooks, first, you need to verify if your systems need an IP whitelisting to be done at your end or not. Accordingly you can whitelist the below IPs of Cashfree:| Sandbox |
|---|
| 52.66.25.127 |
| 15.206.45.168 |
| Prod |
|---|
| 52.66.101.190 |
| 3.109.102.144 |
| 18.60.134.245 |
| 18.60.183.142 |
| Port |
|---|
| 443 (secured) |