Skip to main content
Webhooks are event-based notifications that you receive when a specific event related to a wallet transfer occurs.
In rare cases, such as network retries, read timeouts, processing delays, or delivery failures, Cashfree may send the same webhook more than once for the same event. To prevent unintended side effects, implement idempotency (ensuring a duplicate webhook produces the same result as processing it once) in your webhook handler to handle duplicate deliveries.

Webhook signature

Cashfree includes the webhook signature in the request header. The following is a sample header from a webhook request.
Always capture the webhook payload in its raw text format before parsing into JSON. Parsing and re-serialising the payload can change the structure (for example, array ordering, spacing, or null handling) and cause a signature mismatch during verification. Use the exact raw body string from the request when computing the signature.
Verifying the signature is mandatory before processing any webhook. Refer to Signature Verification for more details.

Transfer webhook events

Cashfree triggers the following events at different stages of a wallet transfer: The following examples show the webhook payload for each event type.

Transfer webhook payload fields

The webhook payload contains important metadata in its top-level fields.

Transfer data fields

Transfer webhook events contain the following fields inside data: