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 don't support Deutsche 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 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 | 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 30 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 | 7766674831270 | SBIN0000003 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | BENEFICIARY_BANK_OFFLINE | Beneficiary Bank Offline | 7766668692253 | INDB0000018 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | NPCI_UNAVAILABLE | NPCI Unavailable | 7766668458130 | INDB0000018 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | IMPS_MODE_FAIL | IMPS Mode fail | 7766667521638 | ICIC0000001 | Any name | Any phone number |
424 | UNABLE_TO_VALIDATE | FAILED_AT_BANK | Failed at bank | 7766671735852 | SBIN0000004 | Any name | Any phone number |
520 | UNABLE_TO_VALIDATE | VERIFICATION_FAILED | Verification attempt | 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”
}