UPI VPA Verification — Account Holder Lookup
Verify any UPI VPA (Virtual Payment Address) and retrieve the linked account holder name. Instant validation for payment workflows.
curl -X GET "https://production.deepvue.tech/v1/verification/upi?vpa=rahul%40upi&name=RAHUL%20KUMAR%20SHARMA" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-H "x-api-key: YOUR_API_KEY"
import requests
import json
url = "https://production.deepvue.tech/v1/verification/upi?vpa=rahul%40upi&name=RAHUL%20KUMAR%20SHARMA"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://production.deepvue.tech/v1/verification/upi?vpa=rahul%40upi&name=RAHUL%20KUMAR%20SHARMA", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://production.deepvue.tech/v1/verification/upi?vpa=rahul%40upi&name=RAHUL%20KUMAR%20SHARMA", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://production.deepvue.tech/v1/verification/upi?vpa=rahul%40upi&name=RAHUL%20KUMAR%20SHARMA')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request['x-api-key'] = 'YOUR_API_KEY'
response = http.request(request)
puts response.body
{
"code": 200,
"timestamp": 1737634320519,
"transaction_id": "c149c0d2da834ab7b77870edb56d5a93",
"sub_code": "SUCCESS",
"message": "UPI Successfully Verified",
"data": {
"account_exists": true,
"name_at_bank": "RAHUL KUMAR SHARMA",
"name_information": {
"name_at_bank_cleaned": "RAHUL KUMAR SHARMA"
}
}
}
{
"code": 200,
"timestamp": 1738007863367,
"transaction_id": "a91dedbc69844de4b54cb88f4e86ed64",
"sub_code": "INVALID_VPA",
"message": "Invalid VPA",
"data": {
"account_exists": false,
"name_at_bank": "RAHUL KUMAR SHARMA"
}
}
{
"detail": "Inactive client_id"
}
{
"detail": "Not authenticated"
}
{
"detail": "Not a valid token"
}
{
"code": 422,
"timestamp": 1737920869344,
"transaction_id": "fade8a2518dd4e939f70aacdbd75d06b",
"sub_code": "INVALID_INPUT",
"message": "Invalid UPI VPA provided"
}
{
"code": null,
"timestamp": null,
"transaction_id": "a73af0b7accc4c3fbaa3dd2dc2cab550",
"message": "Failed at bank"
}
/v1/verification/upi
Target server for requests. Edit to use your own host.
ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (JWT). ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
API Key for authentication. The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
Query Parameters
rahul@upiRAHUL KUMAR SHARMAResponses
Overview
You can verify the UPI details of your customer before adding them to your payouts account using the UPI Verification feature. This functionality streamlines payment operations by validating recipient information upfront.
The API addresses two main scenarios:
- Verifying customer names against their UPI registration.
- Validating whether a given UPI identifier actually exists within the banking system.
Both checks execute instantly. The verification process confirms UPI account existence and retrieves the registered account holder's name from banking records. Successful responses include both raw and cleaned name data for matching against customer records.
A successful response is billable only in case of a 200 response status code. Charges apply exclusively when the API returns successful verification results.