ReasonCategoryDescription
BANK_GATEWAY_ERRORBankTechnical error at the bank
BENE_BANK_DECLINEDBankRejected by Beneficiary bank due to business reasons
FAILEDBankNo explicit failure reason from the bank
INVALID_IFSC_FAILCustomerInvalid ifsc code provided for bank account
INVALID_ACCOUNT_FAILCustomerBank account is invalid
RETURNED_FROM_BENEFICIARYBankImmediate reversal from the beneficiary bank
INSUFFICIENT_BALANCEVendorMerchant balance is exhausted, need to add funds
IMPS_MODE_FAILBankIMPS mode not supported for the beneficiary
RTGS_MODE_FAILBankRTGS mode not supported (only for RTGS)
REINITIALIZE_TRANSFER_LATERBankTechnical error at the bank, retry later
NRE_ACCOUNT_FAILCustomerCustomer bank account is an NRE account
ACCOUNT_BLOCKEDCustomerCustomer bank account is blocked
DEST_LIMIT_REACHEDBankTransfer limit to beneficiary exceeded
INVALID_MODE_FAILBankTransfer mode not valid for beneficiary
NPCI_UNAVAILABLEBankNPCI in unavailable
BENEFICIARY_BANK_OFFLINEBankBeneficiary bank is offline
INVALID_AMOUNT_FAILVendorAmount is invalid for the given transfer mode
SUSPECTED_TRANSFERCustomerSuspicious transfer identified
BENE_NAME_DIFFERSCustomerBeneficiary name not matching with bank records
DISABLED_MODEVendorTransfer mode not enabled for the account
AMAZON_AMOUNT_EXCEEDVendorAmount should be less than 10000 for Amazon Pay mode
BENEFICIARY_BLACKLISTEDVendorBeneficiary is blacklisted
PAYOUT_INACTIVEVendorPayout account is not active
INVALID_TRANSFER_AMOUNTVendorTransfer amount is invalid
BENEFICIARY_NOT_EXISTVendorBeneficiary does not exist
BENEFICIARY_INVALID_MODEVendorMode Not valid for Beneficiary
INVALID_BENE_ACCOUNT_OR_IFSCVendorInvalid bank account number or ifsc provided
BENEFICIARY_NAME_DIFFERSCustomerBeneficiary name not matching with bank records
ANY_OTHER_REASONBankNo reason provided for the failure/reversal
INVALID_OR_NO_SUCH_ACCOUNT_TYPECustomerInvalid account

Signature Verification

The signature must be used to verify if the request has not been tampered with. To verify the signature at your end, you will need your Cashfree PG secret key along with the payload.

Timestamp is present in the header: x-webhook-timestamp

timestamp := 1617695238078;
signedPayload := timestamp.timestamp.payload; expectedSignature := Base64Encode(HMACSHA256(signedPayload,signedPayload, merchantSecretKey));