Skip to main content
Cashfree sends event-based notifications when a wallet event occurs.
In rare cases, such as network retries, read timeouts, processing delays, or delivery failures, the same webhook might be sent more than once for the same event. To prevent unintended side effects, implement idempotency in your webhook handler to handle duplicate deliveries.

Webhook signature

You receive the webhook signature in the webhook header. The following table shows a sample header from a webhook request.
Always capture the webhook payload in its raw text format before parsing into JSON. Parsing and reserialising 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.

Wallet credit events

Cashfree sends the following event when a wallet credit succeeds: The following example shows a PPI_CREDIT_SUCCESS webhook for a GIFT_PPI sub-wallet. The issued_gift_codes array appears only for gift wallets.

Wallet credit webhook payload fields

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

Wallet debit events

Cashfree sends a debit webhook when a wallet debit completes with SUCCESS. Webhooks are not sent while the debit is PENDING (for example, while OTP verification is in progress). For SMALL_PPI and FULL_KYC_PPI sub-wallets, the webhook is sent after you complete verification with the Verify Debit Wallet API. Cashfree sends the following event when a wallet debit succeeds: The webhook data object uses status and status_code of SUCCESS. For other combinations returned by the Debit Wallet and Verify Debit Wallet APIs, see Status and status-code reference. The following example shows a PPI_DEBIT_SUCCESS webhook for a GIFT_PPI sub-wallet. The applied_gift_codes array appears only for gift wallets.

Wallet debit webhook payload fields

The webhook payload contains important metadata in its top-level fields.
Verify the signature before you process any webhook payload. For more information, see Webhook signature verification.