UPI Verification API
VERIFICATION OF UPI VIRTUAL PAYMENT ADDRESS (VPA)
Description
National Payment Corporation Of India (NPCI) developed an instant real time payment system called Unified Payment Interface (UPI) to promote digital payments in India. Every bank account holder who registers for UPI receives a unique virtual payment address (VPA). UPI is being used across all major banks, institutions and merchants to accept and transfer digital money.
This API can be used to verify if a provided VPA is correct and belongs to an active current or savings bank account. This also returns the name of the account holder.

API Outcome
- Account holder name Name of the UPI payment address holder. This is same as the name registered with associated bank account.
- Status Status to validate if provided VPA exists and is valid.
API Details
Request
Type | URL |
---|---|
Post | https://api.attestr.com/api/{version}/public/finanx/vpa |
Request Body Parameters
Type | Name | Description | Optional (default) | Min Version | Max Version |
---|---|---|---|---|---|
String | vpa | Virtual payment address to verify | Required | v1 |
Request Header Parameters
Type | Name | Value / Description | Optional (default) | Min Version | Max Version |
---|---|---|---|---|---|
String | Content-Type | application/json | Required | v1 | |
String | Authorization | Basic {authToken} | Required | v1 |
If you do not have the authentication token, please refer to Register App to generate one.
Sample Request
{
"vpa": "88xxxxxx18@upi"
}
Response
Http Status Code 200
Please note that the valid key decides the availability of rest of the keys in the response. If provided VPA is invalid, then all keys except valid and message are omitted. If true, remaining keys will have appropriate data.
Key | Description | Type | Min Version | Max Version |
---|---|---|---|---|
valid | True | false if the provided VPA is valid | Boolean | v1 | |
name | Name of the virtual payment address holder | String | v1 | |
message | Message string if the provided VPA is invalid (available only if valid is false) | String | v1 |
Sample Response
Sample response for the case when VPA is valid
{
"valid": true,
"name": "Gitanjali Raheja"
}
Sample response for invalid / non existent VPA
{
"valid": false,
"message": "Invalid VPA or no matching account exists"
}
Error Response
Parameter | Type | Description |
---|---|---|
code | Number | Unique error codes for different errors. Always available. |
message | String | Error message describing the error. Always Available. |
details | String | Detail error message. Available only for certain types of errors. |
Error Codes
HTTP Status | Error Code | Error Message |
---|---|---|
400 | 4001 | Malformed data or missing required parameter values |
400 | 4005 | Operation could not be performed due to low credits balance |
401 | 4016 | Invalid client authorization |
403 | 4031 | Unauthorized access |
403 | 4035 | Requested service is not provisioned for your account |
403 | 4039 | Client's IP address is not whitelisted |
403 | 4035 | Requested service is not provisioned for your account |
429 | 4291 | Maximum account rate limit exceeded |
429 | 4292 | Maximum API rate limit exceeded |
429 | 4293 | Maximum account daily limit exceeded |
429 | 4294 | Maximum API daily limit exceeded |
500 | 5001 | Request could not be processed |
504 | 5041 | Source or beneficiary bank is either offline or NPCI / IPMS is unavailable |
503 | 5031 | Service unavailable or discontinued |
Sample Error Response
{
"code": 4001,
"message": "Malformed data or missing required parameter values"
}