Bank Verification Sync V1.2

Use this API to validate the given bank account number and IFSC. This is a sync verification request.

You can claim free credits to verify your beneficiary details. You can also verify the provided beneficiary name is the same as the name registered at the bank with our name match score.

📘

We do not support Deutsche Bank, Fincare Small Finance Bank as of now because the IMPS rails are not live.

❗️

Fraud Alert

There have been cases of fraudulent activity where malicious users abuse merchants’ websites/apps by attempting penny-drop verification to the same bank account. We have implemented the necessary checks to prevent these activities in the future and block merchant accounts involved in suspicious activities. You will receive the following message if we detect any fraudulent activity:

Users attempt multiple bank account verification to the same bank account

"subCode": 200,
"accountStatus": "VALID",
"accountStatusCode": "ACCOUNT_IS_VALID",
"message": "High # transactions detected for Account Number '099878736870'"
Users use multiple virtual accounts linked to the same underlying account

"subCode": 422,
"accountStatus": "UNABLE_TO_VALIDATE",
"accountStatusCode": "INVALID_ACCOUNT",
"message": "Fraud activity detected for this account"
Users append leading zeros to bank account number

"subCode": 200,
"accountStatus": "VALID",
"accountStatusCode": "ACCOUNT_IS_VALID",
"message": "High # transactions detected for Account Number '099878736870'"
Users append leading zeros to multiple virtual accounts linked to the same underlying account

"subCode": 422,
"accountStatus": "UNABLE_TO_VALIDATE",
"accountStatusCode": "INVALID_ACCOUNT",
"message": "Fraud activity detected for this account"

Test Data

View the test data and use this information to trigger the validations. The test data are usable only in the test environments such as gamma and sandbox.


To fetch the status of such a request you can use the Get Verification Status API, by passing the refId as bvRefId.

Bank account verification uses the IMPS network. Verification will return the account status as "VALID" for any valid IFSC of the bank where the account exists. The API also returns city, branch and MICR in the response. However, these are returned on the basis of the IFSC provided. It is possible that the bank account may be linked to a different IFSC in the same bank.


Click to view the response codes.

Response Codes

Status - Success

Sub CodeAccount StatusAccount Status CodeMessageBank AccountIFSC
200VALIDACCOUNT_IS_VALIDBank Account details verified successfully026291800001191YESB0000262
200INVALIDINVALID_BANK_ACCOUNTInvalid account number or IFSC provided7766666585146YESB0000001
200INVALIDINVALID_IFSCIFSC Code is invalid7766667287515ICIC0000001
200INVALIDACCOUNT_BLOCKEDAccount is blocked7766667989884RATN0000070
200INVALIDNRE_ACCOUNTGiven account is an NRE account7766667755761ICIC0000001
200VALIDACCOUNT_IS_VALIDBank Account is valid but Name at Bank is unavailable

Status - Error

Sub CodeAccount StatusAccount Status CodeMessageExplanationBank AccountIFSCNamePhone
412UNABLE_TO_VALIDATEINSUFFICIENT_BALANCEInsufficient balance to process this request-50101329442375HDFC0000001Any nameAny phone number
412UNABLE_TO_VALIDATEREJECTEDRejected due to already on going concurrent request for same bankAccount and ifsc-
422UNABLE_TO_VALIDATEINVALID_ACCOUNTPlease provide a valid bank account-Account number greater than 40 charactersAny IFSCAny nameAny phone number
422UNABLE_TO_VALIDATEINVALID_IFSCPlease provide a valid IFSC-341234218090YESB00000010 (IFSC > 11 characters)Any nameAny phone number
424UNABLE_TO_VALIDATESOURCE_BANK_DECLINEDSource bank declinedThe error occurs when the source bank rejects the request because the integration between beneficiary bank and partner bank does not follow all of the NPCI guidelines.7766674831270SBIN0000003Any nameAny phone number
424UNABLE_TO_VALIDATEBENE_BANK_DECLINEDBeneficiary Bank DeclineThe beneficiary bank has declined the request. You can reinitiate the request to reattempt with the partner bank(s).7766674831278SBIN0000008Any nameAny phone number
424UNABLE_TO_VALIDATECONNECTION_TIMEOUTTimeout while processing requestThe request has failed because there was a connection timeout between the bank and Cashfree Payments. You can reinitiate the request to reattempt with the partner bank(s).7766671267606SBIN0000002Any nameAny phone number
424UNABLE_TO_VALIDATEBENEFICIARY_BANK_OFFLINEBeneficiary Bank OfflineThe beneficiary's bank server is down or unavailable at the moment.7766668692253INDB0000018Any nameAny phone number
424UNABLE_TO_VALIDATENPCI_UNAVAILABLENPCI UnavailableDowntime at National Payments Corporation of India (NPCI).7766668458130INDB0000018Any nameAny phone number
424UNABLE_TO_VALIDATEIMPS_MODE_FAILIMPS Mode failIMPS may be disabled. Beneficiary needs to enable IMPS at the bank since bank account verification uses IMPS rail.7766667521638ICIC0000001Any nameAny phone number
424UNABLE_TO_VALIDATEFAILED_AT_BANKFailed at bankThe request is successfully sent to the respective bank but the request fails due to unknown reasons at the bank's end. It could be due to server issue from the bank's end.7766671735852SBIN0000004Any nameAny phone number
520UNABLE_TO_VALIDATEVERIFICATION_FAILEDVerification attempt FailedThe error displays due to an internal server error at Cashfree Payments' end.7766667053392ICIC0000001Any nameAny phone number
422UNABLE_TO_VALIDATEINVALID_NAMEPlease provide a valid NameAny account numberAny IFSCName with special symbolsAny phone number
422UNABLE_TO_VALIDATEINVALID_PHONEPlease provide a valid Phone numberAny account numberAny IFSCAny namePhone with length greater than 12 characters.

👍

Note:

In a few scenarios, the nameAtBank parameter in the Bank Account Verification API did not return the exact customer name registered with the Bank. We have now fixed this issue, and you will see the exact name registered with the bank.

In some cases, for valid bank accounts if the name at the bank is not available then you will a custom message Bank Account is valid but Name at Bank is unavailable.

Sample Response:

{
“refId”: “250948",
“nameAtBank”: “”,
“bankName”: “JANATA SAHAKARI BANK LIMITED”,
“utr”: “21451863XXXX”,
“city”: “TALEGAON DABHADE”,
“branch”: “TALEGAON DABHADE”,
“micr”: 0,
“nameMatchScore”: “100”,
“accountStatus”: “VALID”,
“accountStatusCode”: “ACCOUNT_IS_VALID”,
“message”: “Bank Account is valid but Name at Bank is unavailable”
}

Language
Click Try It! to start a request and see the response here!