Verify Bank Account

Bank account verification or penny drop check is commonly referred to as a way to verify the authenticity of a customer's bank account. This operation can be used to verify a bank account and IFSC code combination. The operation will return a success response (billable) in two cases:

  1. The bank account or IFSC code or both are invalid

  2. The bank account and IFSC combination are verified

Testing Data

Use the following request parameters to test out the Bank Verification APIs. Please note that Bank details other than the ones mentioned below will result in Invalid response.

IFSC

Account number

Response

Remarks

SBIN0021745

026291800001191

200

Invalid account number or ifsc response

SBIN0008752

000100289877623

200

Success response

SBIN0021746

00011020001772

503

Source Unavailable response

Request Parameters & description

Param

Required

Description

ifsc

yes

11-digit IFSC code of the account holder, i.e. user

account_number

yes

Bank account number of the user

name

yes

Name of the Bank Account Holder

mobile

yes

Mobile number of the Bank account holder

Response structure & description

Response

Description

reference_id

Reference id of the verification

account_exists

Returns true or false, indicating if the account exists or not

amount_deposited

Returns 1, indicating if the penny drop mechanism was successful.

message

Returns message to know if the account was verified successfully or not.

name_at_bank

Name of the account holder

Test URL

get
Verify Bank Account

https://api.sandbox.co.in/bank/:ifsc/accounts/:account_number/verify?name={{name}}&mobile={{mobile}}
Request
Response
Request
Path Parameters
ifsc
required
string
11-digit alpha-numeric code used to identify the bank branches
account_number
required
string
Bank account number. Max length: 40 characters.
Headers
Authorization
required
string
JWT Authorization token
x-api-key
required
string
Public key required to authorize API access.
x-api-version
optional
string
Query Parameters
name
required
string
Name. Max length: 100 characters
mobile
required
string
Mobile. Length: 10 digits
Response
200: OK
Success
Invalid Account Number or IFSC
Success
{
"data": {
"reference_id": "1234567",
"account_exists": true,
"amount_deposited": 1,
"message": "Bank Account details verified successfully.",
"name_at_bank": "JOHN DOE"
},
"code": 200,
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Invalid Account Number or IFSC
{
"data": {
"account_exists": false,
"message": "Invalid account number or ifsc provided"
},
"code": 200,
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
403: Forbidden
Access denied
Invalid token
Insufficient credits
Access denied
{
"code": 403,
"message": "Access denied",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Invalid token
{
"code": 403,
"message": "Not a valid token",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Insufficient credits
{
"code": 403,
"message": "Insufficient credits",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
422: Unprocessable Entity
Invalid IFSC pattern
Phone should be numeric
Please provide a valid bank account
Please provide a valid phone number
Invalid IFSC provided
Invalid bank account number or ifsc provided
Invalid IFSC pattern
{
"code": 422,
"message": "Invalid IFSC pattern",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Phone should be numeric
{
"code": 422,
"message": "Phone should be numeric",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Please provide a valid bank account
{
"code": 422,
"message": "Please provide a valid bank account",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Please provide a valid phone number
{
"code": 422,
"message": "Please provide a valid phone number",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Invalid IFSC provided
{
"code": 422,
"message": "Invalid IFSC provided",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
Invalid bank account number or ifsc provided
{
"code": 422,
"message": "Invalid bank account number or ifsc provided",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
500: Internal Server Error
{
"code": 500,
"message": "Internal Server Error",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}
503: Service Unavailable
{
"code": 503,
"message": "Source Unavailable",
"timestamp": 1614696176218,
"transaction_id": "611335dc-8be4-40d1-8438-b86526462939"
}

JWT Authorization token can be obtained by calling the Authenticate API

Example Request

cURL
Java
Node.js
Python
cURL
curl --location --request GET 'https://api.sandbox.co.in/bank/HDFC0000001/accounts/12345678912/verify?name=JOHN%20DOE&mobile=9999999999' \
--header 'Authorization: eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJBUEkiLCJyZWZyZXNoX3Rva2VuIjoiZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKaGRXUWlPaUpCVUVraUxDSnpkV0lpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1Gd2FWOXJaWGtpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1semN5STZJbUZ3YVM1eGRXbGphMjh1WTI5dElpd2laWGh3SWpveE5Ua3dPVFk1TmpBd0xDSnBiblJsYm5RaU9pSlNSVVpTUlZOSVgxUlBTMFZPSWl3aWFXRjBJam94TlRVNU16UTNNakF3ZlEueHNmYkhQTERFRlRvTy1OUWdaUUpLM25OUjFxdlhvWmhaOHRqS3gzSExydjZiVkJaMHpJZEZ5ai1MUTg1YnJZS0xXQnFnZHlzZ1NDSXlDUXNtV2VOYkEiLCJzdWIiOiJqb2huQGRvZS5jb20iLCJhcGlfa2V5Ijoia2V5X2xpdmVfQWRlKioqKioqKioqKioqKioqKioqKioqKioqKipVeHMiLCJpc3MiOiJhcGkucXVpY2tvLmNvbSIsImV4cCI6MTU5MTA1NjAwMCwiaW50ZW50IjoiQUNDRVNTX1RPS0VOIiwiaWF0IjoxNTkwOTY5NjAwfQ.nH23CR5RHGQ0U19I_vq3vyJ_85A1a2iEMQij5QHgJQdDuS9x7FmTidsr1CQabSFF5ujE40SFxHv1gJM20TauUw' \
--header 'x-api-key: key_live_Ade**************************Uxs' \
--header 'x-api-version: 3.4.0'
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://api.sandbox.co.in/bank/HDFC0000001/accounts/12345678912/verify?name=JOHN%20DOE&mobile=9999999999")
.header("Authorization", "eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJBUEkiLCJyZWZyZXNoX3Rva2VuIjoiZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKaGRXUWlPaUpCVUVraUxDSnpkV0lpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1Gd2FWOXJaWGtpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1semN5STZJbUZ3YVM1eGRXbGphMjh1WTI5dElpd2laWGh3SWpveE5Ua3dPVFk1TmpBd0xDSnBiblJsYm5RaU9pSlNSVVpTUlZOSVgxUlBTMFZPSWl3aWFXRjBJam94TlRVNU16UTNNakF3ZlEueHNmYkhQTERFRlRvTy1OUWdaUUpLM25OUjFxdlhvWmhaOHRqS3gzSExydjZiVkJaMHpJZEZ5ai1MUTg1YnJZS0xXQnFnZHlzZ1NDSXlDUXNtV2VOYkEiLCJzdWIiOiJqb2huQGRvZS5jb20iLCJhcGlfa2V5Ijoia2V5X2xpdmVfQWRlKioqKioqKioqKioqKioqKioqKioqKioqKipVeHMiLCJpc3MiOiJhcGkucXVpY2tvLmNvbSIsImV4cCI6MTU5MTA1NjAwMCwiaW50ZW50IjoiQUNDRVNTX1RPS0VOIiwiaWF0IjoxNTkwOTY5NjAwfQ.nH23CR5RHGQ0U19I_vq3vyJ_85A1a2iEMQij5QHgJQdDuS9x7FmTidsr1CQabSFF5ujE40SFxHv1gJM20TauUw")
.header("x-api-key", "key_live_Ade**************************Uxs")
.header("x-api-version", "3.4.0")
.asString();
Node.js
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'GET',
'hostname': 'https://api.sandbox.co.in',
'path': '/bank/HDFC0000001/accounts/12345678912/verify?name=JOHN%20DOE&mobile=9999999999',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJBUEkiLCJyZWZyZXNoX3Rva2VuIjoiZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKaGRXUWlPaUpCVUVraUxDSnpkV0lpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1Gd2FWOXJaWGtpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1semN5STZJbUZ3YVM1eGRXbGphMjh1WTI5dElpd2laWGh3SWpveE5Ua3dPVFk1TmpBd0xDSnBiblJsYm5RaU9pSlNSVVpTUlZOSVgxUlBTMFZPSWl3aWFXRjBJam94TlRVNU16UTNNakF3ZlEueHNmYkhQTERFRlRvTy1OUWdaUUpLM25OUjFxdlhvWmhaOHRqS3gzSExydjZiVkJaMHpJZEZ5ai1MUTg1YnJZS0xXQnFnZHlzZ1NDSXlDUXNtV2VOYkEiLCJzdWIiOiJqb2huQGRvZS5jb20iLCJhcGlfa2V5Ijoia2V5X2xpdmVfQWRlKioqKioqKioqKioqKioqKioqKioqKioqKipVeHMiLCJpc3MiOiJhcGkucXVpY2tvLmNvbSIsImV4cCI6MTU5MTA1NjAwMCwiaW50ZW50IjoiQUNDRVNTX1RPS0VOIiwiaWF0IjoxNTkwOTY5NjAwfQ.nH23CR5RHGQ0U19I_vq3vyJ_85A1a2iEMQij5QHgJQdDuS9x7FmTidsr1CQabSFF5ujE40SFxHv1gJM20TauUw',
'x-api-key': 'key_live_Ade**************************Uxs',
'x-api-version': '3.4.0'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
Python
import requests
url = "https://api.sandbox.co.in/bank/HDFC0000001/accounts/12345678912/verify?name=JOHN DOE&mobile=9999999999"
payload = {}
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJBUEkiLCJyZWZyZXNoX3Rva2VuIjoiZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKaGRXUWlPaUpCVUVraUxDSnpkV0lpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1Gd2FWOXJaWGtpT2lKclpYbGZiR2wyWlY5QlpHVXFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtsVjRjeUlzSW1semN5STZJbUZ3YVM1eGRXbGphMjh1WTI5dElpd2laWGh3SWpveE5Ua3dPVFk1TmpBd0xDSnBiblJsYm5RaU9pSlNSVVpTUlZOSVgxUlBTMFZPSWl3aWFXRjBJam94TlRVNU16UTNNakF3ZlEueHNmYkhQTERFRlRvTy1OUWdaUUpLM25OUjFxdlhvWmhaOHRqS3gzSExydjZiVkJaMHpJZEZ5ai1MUTg1YnJZS0xXQnFnZHlzZ1NDSXlDUXNtV2VOYkEiLCJzdWIiOiJqb2huQGRvZS5jb20iLCJhcGlfa2V5Ijoia2V5X2xpdmVfQWRlKioqKioqKioqKioqKioqKioqKioqKioqKipVeHMiLCJpc3MiOiJhcGkucXVpY2tvLmNvbSIsImV4cCI6MTU5MTA1NjAwMCwiaW50ZW50IjoiQUNDRVNTX1RPS0VOIiwiaWF0IjoxNTkwOTY5NjAwfQ.nH23CR5RHGQ0U19I_vq3vyJ_85A1a2iEMQij5QHgJQdDuS9x7FmTidsr1CQabSFF5ujE40SFxHv1gJM20TauUw',
'x-api-key': 'key_live_Ade**************************Uxs',
'x-api-version': '3.4.0'
}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))