curl --request POST \
--url https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp \
--header 'client-id: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp"
headers = {
"x-api-key": "<api-key>",
"client-id": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>', 'client-id': '<api-key>'}};
fetch('https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"client-id: <api-key>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("client-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp")
.header("x-api-key", "<api-key>")
.header("client-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["client-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": 200,
"timestamp": 1738243999577,
"transaction_id": "f6efc218742a405c8dd65cf19c13b878",
"sub_code": "SUCCESS",
"message": "Aadhaar eKYC Successful",
"data": {
"address": {
"careOf": "S/O H. Nue Mahammed",
"country": "India",
"district": "Bangalore",
"house": "NO. 6",
"landmark": "",
"locality": "MTS LAYOUT J X NAGAR 51TH PHASE",
"pin": "561118",
"postOffice": "J P Nagar",
"state": "Karnataka",
"street": "19TH MAIN",
"subDistrict": "",
"vtc": "Bangalore"
},
"dateOfBirth": "28-06-1999",
"email": "e2afb1d691d72a535b501053e6291abdb51c05cccc7c08b4439ab3e",
"gender": "M",
"generatedAt": "1738304139979",
"maskedNumber": "xxxx-xxxx-8091",
"name": "Mohammed Nihar",
"phone": "ad0e19163c4ff90313ce2b1457ea0687fbfbf0f344566e50bed07f60ae064",
"photo": "rWHcAdajJoopFSYqnjNVXYebkngc0U",
"aadhaar_linked_mobile_match": "Yes/No",
"document_pdf": "YqnjNVXYebkngc0U"
}
}Verify OTP
This API will validate the OTP entered by the user to authenticate with UIDAI. Once successfully validated response will have the below details.
curl --request POST \
--url https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp \
--header 'client-id: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp"
headers = {
"x-api-key": "<api-key>",
"client-id": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>', 'client-id': '<api-key>'}};
fetch('https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"client-id: <api-key>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("client-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp")
.header("x-api-key", "<api-key>")
.header("client-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.deepvue.tech/v2/ekyc/aadhaar/verify-otp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["client-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": 200,
"timestamp": 1738243999577,
"transaction_id": "f6efc218742a405c8dd65cf19c13b878",
"sub_code": "SUCCESS",
"message": "Aadhaar eKYC Successful",
"data": {
"address": {
"careOf": "S/O H. Nue Mahammed",
"country": "India",
"district": "Bangalore",
"house": "NO. 6",
"landmark": "",
"locality": "MTS LAYOUT J X NAGAR 51TH PHASE",
"pin": "561118",
"postOffice": "J P Nagar",
"state": "Karnataka",
"street": "19TH MAIN",
"subDistrict": "",
"vtc": "Bangalore"
},
"dateOfBirth": "28-06-1999",
"email": "e2afb1d691d72a535b501053e6291abdb51c05cccc7c08b4439ab3e",
"gender": "M",
"generatedAt": "1738304139979",
"maskedNumber": "xxxx-xxxx-8091",
"name": "Mohammed Nihar",
"phone": "ad0e19163c4ff90313ce2b1457ea0687fbfbf0f344566e50bed07f60ae064",
"photo": "rWHcAdajJoopFSYqnjNVXYebkngc0U",
"aadhaar_linked_mobile_match": "Yes/No",
"document_pdf": "YqnjNVXYebkngc0U"
}
}Authorizations
The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
The CLIENT_ID provided to you. This header parameter is required for authentication purposes.
Query Parameters
OTP received on the registered mobile number, with a validity of 10 minutes.
reference_id received from the Generate OTP API Endpoint.
Y/N based on whether your customer has given consent for validating their KYC. This is mandatory as per regulations.
The purpose of the KYC check, which is mandatory as per regulations.
10-digit mobile number to check whether it is the same mobile linked to Aadhaar on which the OTP was sent.
True or False, depending upon whether pdf needs to be generated or not.