Verify Bank Account

Bank account number verification service which returns the name of the bank account holder by inputting bank account number and IFSC. Works for all IMPS & UPI enabled banks.

Header Parameters

NameTypeDescriptionMandatory (M) , Optional (O)Provided by INSTANTPAY (Y/N)
X-Ipay-Auth-CodeStringAuth Code -1 (Fixed)MY
X-Ipay-Client-IdStringUnique Client IDMY
X-Ipay-Client-SecretStringUnique secret keyMY
X-Ipay-Endpoint-IpStringUnique secret keyMN

Request Parameters

NameTypeMandatory (M) , Optional (O)Description
payee.nameStringOEnter the Beneficary name If you want to Validate whether it is matching with name registered at bank or not.
payee.accountNumberStringMAccount Number of End User
payee.bankIfscStringMIFS Code of Bank
externalRefStringMYour Unique Transaction Id
consentStringMIt will be Y always
pennyDropStringMIt will be YES,NO or AUTO
latitudeStringMEnd Customer Latitude, Represented in
degrees with 4 digits after decimal
longitudeStringMEnd Customer Longitude, Represented in
degrees with 4 digits after decimal

Sample Request for Bank Account Verification

curl --location --request POST 'https://api.instantpay.in/identity/verifyBankAccount' \
--header 'X-Ipay-Auth-Code: {{authCode}}' \
--header 'X-Ipay-Client-Id: {{clientId}}' \
--header 'X-Ipay-Client-Secret: {{clientSecret}}' \
--header 'X-Ipay-Endpoint-Ip: {{endPointIP}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "payee" : {
        "name" : "Instantpay India",
        "accountNumber" : "7770007428585742",
        "bankIfsc" : "YESB0CMSNOC"
    },
    "externalRef" : "123456789",
    "consent" : "Y",
    "pennyDrop": "YES",
    "latitude" : "20.5936",
    "longitude" : "78.9628"
}'
POST /identity/verifyBankAccount HTTP/1.1
Host: api.instantpay.in
X-Ipay-Auth-Code: {{authCode}}
X-Ipay-Client-Id: {{clientId}}
X-Ipay-Client-Secret: {{clientSecret}}
X-Ipay-Endpoint-Ip: {{endPointIP}}
Content-Type: application/json

{
    "payee" : {
        "name" : "Instantpay India",
        "accountNumber" : "7770007428585742",
        "bankIfsc" : "YESB0CMSNOC"
    },
    "beneBank" : "Instantpay India",
    "externalRef" : "PPT2",
    "consent" : "Y",
    "pennyDrop": "YES",
    "latitude" : "20.5936",
    "longitude" : "78.9628"
}

📘

Note :

If you have passed pennyDrop YES, It will be verified from Bank(Rs 1 Will be Credited)

If you have passed pennyDrop NO,It will be verified from Bank(Rs 1 will not be Credited)

If you have passed pennyDrop AUTO, It will be verified at Instantpay server and If not found then it will be initiated on penny less i.e Rs 1 will not be Credited

If a Account number is verified again with pennyDrop YES within 24 hours then from the second instance Rs 1 will not be credited to the Bank Account.

In the response If isPennyDrop is true then transaction is initiated on Penny drop if it is false then transaction initiated on penny less.

Response Parameters

NameTypeDescription
statuscodeStringInstantPay Status Code
actcodeStringAction Code
statusStringStatus message
dataArrayResponse Data (If Present)
timestampStringResponse time (YYYY-MM-DD HH:MM:SS)
ipay_uuidStringRequest reference number
orderidStringTransaction Id ( If transaction otherwise it is null )
environmentStringLive/Sandbox

Sample Response for Bank Account Verification

{
    "statuscode": "TXN",
    "actcode": null,
    "status": "Transaction Successful",
    "data": {
        "externalRef": "123456789",
        "poolReferenceId": "1240315102923AFEFN",
        "txnValue": "0.00",
        "txnReferenceId": "407510310584",
        "pool": {
            "account": "7428585742",
            "openingBal": "20.10",
            "mode": "DR",
            "amount": "0.00",
            "closingBal": "20.10"
        },
        "payer": {
            "account": "7428585742",
            "name": "Instantpay India Limited"
        },
        "payee": {
            "name": "Instantpay India Ltd",
            "account": "7770007428585742",
            "ifsc": "YESB0CMSNOC",
            "type": "",
            "mccCode": "",
            "merchantOnboardingType": "",
            "merchantGenre": "",
            "accountType": "",
            "iin": "",
            "nameMatchPercent" : 100
        },
        "isCached": false,
        "isPennyDrop": false
    },
    "timestamp": "2024-03-15 10:29:24",
    "ipay_uuid": "h0059b912fe7-ac74-49f4-9f25-d9af53d89411-wOLLeQN8MiZ0",
    "orderid": "1240315102923AFEFN",
    "environment": "LIVE",
    "internalCode": null
}

Name Match Percent

To check if the provided beneficiary name and the name registered at the bank are the same, consumes a lot of time and effort. Instantpay BAV has introduced a new feature that will help you to verify if the names are same and provide the result accordingly.

A new parameters, nameMatchPercent will be available in the response, which will help you make faster validations and process payments successfully.

To get the nameMatchPercent in the API response the user have to pass the Beneficiary name in the API request.

You can categorize the match percent results using the table below.

Name Match Percent RangeMatch Result
100Exact Match
85.00 - 99.00Close Match
60.00 - 84.00Moderate Match
34.00 - 59.00Poor Match
1 - 33.00No Match

Sandbox Values for Bank Account Verification

You can make test payments using the credentials mentioned below. The deducted amount from the Instantpay wallet will be refunded in T+1 working days as this is a testing transaction. Make sure you entered the correct keys in the request.

Note: For Sandbox, bankIfsc can be any IFS Code.

NameValueResults
accountNumber1111111111Transaction Successful
accountNumber0000000000Transaction Under Process
accountNumberAny ValueTransaction Failed
Language
Click Try It! to start a request and see the response here!