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 Code | Account Status | Account Status Code | Message | Bank Account | IFSC |
---|---|---|---|---|---|
200 | VALID | ACCOUNT_IS_VALID | Bank Account details verified successfully | 026291800001191 | YESB0000262 |
200 | INVALID | INVALID_BANK_ACCOUNT | Invalid account number or IFSC provided | 7766666585146 | YESB0000001 |
200 | INVALID | INVALID_IFSC | IFSC Code is invalid | 7766667287515 | ICIC0000001 |
200 | INVALID | ACCOUNT_BLOCKED | Account is blocked | 7766667989884 | RATN0000070 |
200 | INVALID | NRE_ACCOUNT | Given account is an NRE account | 7766667755761 | ICIC0000001 |
200 | VALID | ACCOUNT_IS_VALID | Bank Account is valid but Name at Bank is unavailable |
Status - Error
Sub Code | Account Status | Account Status Code | Message | Explanation | Bank Account | IFSC | Name | Phone |
---|---|---|---|---|---|---|---|---|
412 | UNABLE_TO_VALIDATE | INSUFFICIENT_BALANCE | Insufficient balance to process this request | - | 50101329442375 | HDFC0000001 | Any name | Any phone number |
412 | UNABLE_TO_VALIDATE | REJECTED | Rejected due to already on going concurrent request for same bankAccount and ifsc | - | ||||
422 | UNABLE_TO_VALIDATE | INVALID_ACCOUNT | Please provide a valid bank account | - | Account number greater than 40 characters | Any IFSC | Any name | Any phone number |
422 | UNABLE_TO_VALIDATE | INVALID_IFSC | Please provide a valid IFSC | - | 341234218090 | YESB00000010 (IFSC > 11 characters) | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | SOURCE_BANK_DECLINED | Source bank declined | The 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. | 7766674831270 | SBIN0000003 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | BENE_BANK_DECLINED | Beneficiary Bank Decline | The beneficiary bank has declined the request. You can reinitiate the request to reattempt with the partner bank(s). | 7766674831278 | SBIN0000008 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | CONNECTION_TIMEOUT | Timeout while processing request | The 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). | 7766671267606 | SBIN0000002 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | BENEFICIARY_BANK_OFFLINE | Beneficiary Bank Offline | The beneficiary's bank server is down or unavailable at the moment. | 7766668692253 | INDB0000018 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | NPCI_UNAVAILABLE | NPCI Unavailable | Downtime at National Payments Corporation of India (NPCI). | 7766668458130 | INDB0000018 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | IMPS_MODE_FAIL | IMPS Mode fail | IMPS may be disabled. Beneficiary needs to enable IMPS at the bank since bank account verification uses IMPS rail. | 7766667521638 | ICIC0000001 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | FAILED_AT_BANK | Failed at bank | The 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. | 7766671735852 | SBIN0000004 | Any name | Any phone number |
520 | UNABLE_TO_VALIDATE | VERIFICATION_FAILED | Verification attempt Failed | The error displays due to an internal server error at Cashfree Payments' end. | 7766667053392 | ICIC0000001 | Any name | Any phone number |
422 | UNABLE_TO_VALIDATE | INVALID_NAME | Please provide a valid Name | Any account number | Any IFSC | Name with special symbols | Any phone number | |
422 | UNABLE_TO_VALIDATE | INVALID_PHONE | Please provide a valid Phone number | Any account number | Any IFSC | Any name | Phone 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”
}