Aadhaar App Create URL API (Intent)
Introduction
Signzy's new Aadhaar App API lets you verify customers using face recognition instead of OTPs. It's 80% cheaper, eliminates fraud, works offline, and increases conversion by 40%. We're the first company UIDAI-certified to offer this, and you can integrate it in just one day.
This API will help you generate Intent link which you can present to your customer by embedding in button of web journey on mobile or mobile app or SMS/Email. Whenever customer clicks on link, Aadhaar app pops up for giving consent. On successful journey, you'll receive the Aadhaar details in callback.
API details
Endpoint
POST https://api.signzy.app/api/v3/aadhaar/get-intentPOST https://api-preproduction.signzy.app/api/v3/aadhaar/get-intentRequest headers
Name | Value | Required | Description |
|---|---|---|---|
Content-Type | application/json | Mandatory | The type of content that the request body contains. |
Authorization | XXXXXXXXXXXXXXX | Mandatory | An authentication token to authorize the request. Reach out to the Signzy support team to get one created. |
Request body parameter
Parameter | Type | Description | Mandatory |
|---|---|---|---|
callbackURL | String | The destination URL where the final result or status updates will be sent via Webhook. | Yes |
intentTtl | String | Time To Live for the session (in ms). Defines how long the Intent link remains valid. | No |
imageTtl | String | Time To Live for face image in response (in ms) if Persist URL is used. | No |
language | String | The UI language for the user journey (e.g., "hi" for Hindi, "en" for English). | No |
faceAuthentication | Boolean | Flag to enable/disable facial matching in the authentication flow. Set to false to skip face match. true : Performs facial matching for verification. false: Bypasses face match step entirely. | No |
faceAuthenticationMode | String | Method of authentication offline: verification from data within Aadhaar app. online: verification from data from UIDAI CIDR. (not enabled by UIDAI for now) | No |
nameOfThePerson | String | The name of the individual undergoing verification. | No |
scope | String | Unique identifier or bitmask defining specific service permissions. | No |
iOS | Boolean | Optimization toggle for iOS-specific webview or app behaviors. Default: Android flow | No |
{
"callbackURL": "https://webhook.site/4a317a94-ca3a-4d8d-b42b-25a0586d2171",
"intentTtl": "300000000",
"imageTtl": "3000000",
"language": "hi",
"faceAuthentication": true,
"faceAuthenticationMode": "offline",
"nameOfThePerson": "Siddhant Sehgal",
"scope": "1111111111111111111111111111111111111111",
"iOS": true
}Code samples
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api-staging.signzy.app/api/v3/aadhaar/get-intent"
method := "POST"
payload := strings.NewReader(`{
"callbackURL": "https://webhook.site/4a317a94-ca3a-4d8d-b42b-25a0586d2171",
"intentTtl": "300000000",
"imageTtl": "3000000",
"language": "hi",
"faceAuthentication": true,
"faceAuthenticationMode": "offline",
"nameOfThePerson": "Siddhant Sehgal",
"scope": "1111111111111111111111111111111111111111",
"iOS": true
}`)
client := &http.Client {}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "rKL5vNRpobQm9F4AJw5EfckCq57afDX1")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}Response body parameters
Parameter | Data Type | Description |
|---|---|---|
result | Object | Contains the result of the task being performed. |
result.requestId | String | Unique ID allocated after the authorization in digilocker iframe. |
result.intentLink | String | The URL to complete the authentication. |
{
"result": {
"requestId": "dad09fa0-d8d1-45a8-8b04-9b11eb4a7894",
"intentLink": "pehchaan://in.gov.uidai.pehchaan?request=eyJhbGciOiJSUzI1NiIsInR5cCI6ImNyZWRlbnRpYWwtcmVxK2p3dCJ9.eyJ0eG4iOiJkYWQwOWZhMC1kOGQxLTQ1YTgtOGIwNC05YjExZWI0YTc4OTQiLCJpIjoiY3JlZGVudGlhbCIsImxhbmciOiJoaSIsInNjIjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSIsIm0iOiIwIiwicG9wIjoiMSIsImFjIjoic2lnbnp5dGVjaCIsInNhIjoiMDBiMSIsImNiIjoiaHR0cHM6Ly9hcGktc3RhZ2luZy5zaWduenkuYXBwL2FwaS92My9hYWRoYWFyLXVpZGFpL2NhbGxiYWNrVXJsIiwiYXVkIjoic2lnbnp5LmNvbSIsImlzcyI6Imh0dHBzOi8vcGVoY2hhYW4udWlkYWkuZ292LmluL3YxLyIsImV4cCI6MTc3MTMyODEwNywiaWF0IjoxNzcxMjQxNzA3LCJodCI6IlNpZGRoYW50IFNlaGdhbCIsImp0aSI6IjMzNDFmMDI2LWEzZjgtNDA2NC1iNjVhLWVlMmM3MjA2NTc3ZCIsImNoIjoid2ViIiwiYWlkIjoiIiwiYXNpZyI6IiJ9.MDjsTw0g_h93WYnxXRsbe2t61u3jWx_19AGNqxMRZf8FS9OvnmLNO9gDWRh7FU7GL-DYXw5nbgjJ53Jk_U-hKRJL4h9tpLsd7ShGmj83eiLY87R-qQKMuGegvgMozAbHecB9sCJQWCe5PpW-M7APMeTFbKRK4caGNPlhOiNSNj8C7daoamlbLJnaUmMqV3W5hLqH6rLNS5QX_Qww7nFU40jE-kvnGLSulClveJ_SjIYDRJiKOTgGM2FEEe11dEBGi3JPTmIY8TP_Wdt0F935IDTwY32kiO0dpkLMVzCLED0rLUq4bXnEUQprgyw-wg90dHEz1ppyDtigG07yBC1_3w&source=web"
}
}Note: Once the consent is given successfully, the below response will be received in the callback URL provided in the request packet.
{
"requestId" : "83895c0a-2701-4ff1-8e57-8d9e0264d4",
"credentialIssuingDate" : "2026-02-13T12:13:22",
"enrolmentDate" : "2020-09-04T14:35:32",
"enrolmentNumber" : "08154213173740",
"isNri" : "No",
"residentImage" : "https://persist.signzy.tech/api/files/1624989922/download/bdf3f468c7d14f6aaf8e23a735311acbba28681b187c.png",
"residentName" : "Cooper",
"localResidentName" : "कुमार",
"ageAbove18" : "Yes",
"ageAbove50" : "No",
"ageAbove60" : "No",
"ageAbove75" : "No",
"dob" : "27/07/1997",
"gender" : "MALE",
"careOf" : "S/O: Rajesh Sharma",
"localCareOf" : "S/O: राजेश शर्मा",
"building" : "Sunrise Apartments",
"localBuilding" : "सनराइज अपार्टमेंट्स",
"locality" : "Green Park Colony",
"localLocality" : "ग्रीन पार्क कॉलोनी",
"street" : "Main Market Road",
"localStreet" : "सिमराढाब बिरनी",
"landmark" : "Near City Hospital",
"localLandmark" : "सिटी अस्पताल के पास",
"vtc" : "Palaunjia",
"localVtc" : "पलौंजिया",
"subDistrict" : "Birni",
"localSubDistrict" : "बिरनी",
"district" : "Giridih",
"localDistrict" : "गिरीडीह" ,
"state" : "Jharkhand",
"localState" : "झारखण्ड",
"poName" : "Indore GPO",
"localPoName" : "इंदौर जी.पी.ओ.",
"pincode" : "825334",
"address" : "S/O: Kumar VILL POST PS Giridih Jharkhand 825334",
"regionalAddress" : "S/O: कुमार ग्राम पोस्ट थाना गिरीडीह झारखण्ड 825334",
"mobile" : "9999999999",
"maskedMobile" : "XXXXX-X9999",
"email" : "",
"maskedEmail" : "" }
Contact Us for Any Assistance
If you have any questions or need assistance, please reach out to our customer support team. You can contact us via email at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.
We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!