Data and Downloads Sections

Authentication Sample Client (Java) kk

This is a sample authentication client software which works with authentication API. This software has the capability to authenticate demographic fiels, OTP,and provision to plug-in biometric capture. This is written in Java and requires Java 1.6. Source code along with Maven build files and Eclipse project files are also provided.

This is designed purely as a test tool to reduce the development time taken by the AUAs and device vendors. This is released as source code and developers are free to download, modify, enhance, and use it. THIS IS NOT A SUPPORTED SOFTWARE.

---------------------------------------------------------------------------------------------
User manual - See "Aadhaar e-KYC Basics" book.
----------------------------------------------------------------------------------------------

e-KYC API version 1.0 Sample Client - Full Source Code - updated 08 Jan 2014

e-KYC API version 1.0 Sample Client - Full Binary - updated 08 Jan 2014 (NOTE: Also download Fop and Batik and extract the jar files to "jar" directory for printing to work)

e-KYC API version 2.0 Sample Client - Full Source Code - updated 22nd Sep 2016

e-KYC API version 2.0 Sample Client - Full Binary - updated 22nd Sep 2016

Schema Files for Various APIs

XSD and Protobuf files for Aadhaar Authentication APIs Version 1.6

Authentication Clients and Samples in other Languages

Authenticaion client written in C/C++ is made available to the community by Geodesic team for their GeoAmida device. Full source is hosted at their Github repository. Please note that this software is neither created nor maintained by UIDAI. Aadhaar community is thankful to Geodesic for contributing this as open source to the community.

Authenticaion client written in Python and related tools are made available to the community by Venkata Pingali from TCS Labs, Pune. Full source is hosted at this Github repository. In addition, Aadhaar-based login module for Django is available here. Please note that this software is neither created nor maintained by UIDAI. Aadhaar community is thankful to the author for contributing this as open source to the community.

Authentication Tools

Biometric data formats (FMR, FIR, IIR) testing tool checks if formats are valid ISO formats and as supported by Aadhaar Authentication. Developers can use this tool to test if the biometric record is proper before testing it online.

Biometric Format Test Tool - Binary and Source - Released on 9 Aug 2012

Bulk demographic authentication tool facilitates Demo Auth, accepting demographic data of the residents through various input modalities. THIS IS A SAMPLE TOOL demonstrating the features of demographic authentication. Both source and binary are provided below.

Binary setup and user manual - Binary - Released on 9 Oct 2013

Source code project - Source - Released on 9 Oct 2013

KYR+ Sample Application (NEW VERSION)

This is a sample reference implementation of KYR+ software which works with Aadhaar Enrolment Client 1.2.x versions. This software has the capability to configure fields and capture additional fields specific to registrars. This is built using Visual Studio 2008 using Windows forms and C#.

This is designed purely as a productivity tool to reduce the development time taken by the registrars on the KYR+ aspect. This is released as source code and registrars are free to download, modify, enhance, and use it. THIS IS NOT A SUPPORTED SOFTWARE.

KYR+ sample application (New Version) - Full source code - released 15 March, 2011.

KYR+ sample application (New Version) - Binary - released 15 March, 2011.

KYR+ sample application document (New Version) - User Manual - released 15 March, 2011

Decryption Test Utility (1024-bit)

This test decryptor utility is developed to assist Registrars in decrypting the Registrar Enrolment Packets before go-live. This utility works with packets that are encrypted with 1024-bit key (see below for 2048-bit key tool)This utility supports only PFX and PEM formats for private key files. The private key files must be password protected. This tool also supports USB Token with .Net PKCS11 APIs at location "C:\WINDOWS\system32\aetpkss1.dll".

For all the other cases, a modification in the source code of Decryptor Utility is necessary for execution the decryption. Full source code is available below for download.

This is designed purely as a test tool along with source code provided for initial testing. THIS IS NOT A SUPPORTED SOFTWARE.

Decryption utility binary - last updated 16 Nov, 2010. 

Decryption utility source code - last updated 16 Nov, 2010.

Decryption utility "read me" document - last updated 16 Nov, 2010

Decryption Test Utility (2048-bit key)

This test decryptor utility is developed to assist Registrars in decrypting the Registrar Enrolment Packets before go-live. This utility works with packets that are encrypted with 2048-bit key (see above for 1024-bit key tool). This utility supports only PFX and PEM formats for private key files. The private key files must be password protected. This tool also supports USB Token with .Net PKCS11 APIs at location "C:\WINDOWS\system32\aetpkss1.dll".

For all the other cases, a modification in the source code of Decryptor Utility is necessary for execution the decryption. Full source code is available below for download.

This is designed purely as a test tool along with source code provided for initial testing. THIS IS NOT A SUPPORTED SOFTWARE.

Decryption utility binary - last updated 31 Oct, 2011. 

Decryption utility source code - last updated 31 Oct, 2011.

Decryption utility "read me" document - last updated 31 Oct, 2011.

KYR+ Sample Application

(OLD VERSION, see below for new version links) This is a sample reference implementation of KYR+ software which works with Aadhaar Enrolment Client 1.1.x versions. This software has the capability to configure fields and capture additional fields specific to registrars. This software saves the captured data into an embedded database. This is built using Visual Studio 2008 using Windows forms and C#.

This is designed purely as a productivity tool to reduce the development time taken by the registrars on the KYR+ aspect. This is released as source code and registrars are free to download, modify, enhance, and use it. THIS IS NOT A SUPPORTED SOFTWARE.

KYR+ sample application (Old Version) - Full source code for version 3.0 - released 15 Sept, 2010.

KYR+ sample application document (Old Version) - Version 3.0 documentation - released 15 Sept, 2010

FI - Bank Response XML Encryption Certificate

The below certificate should be used for encrypting the response XML before placing them in SFTP INBOX of UIDAI.  

Aadhaar authentication requires the identity data of the resident within the XML (PID block) to be encrypted. AES-256 session key is encrypted using UIDAI's 2048- public key. This page contains all certificates available for the ecosystem.

Sample Java application (both binary and source code zip files) to test Aadhaar authentication can be downloaded from here.

Production Public Key Certificates

Note: Latest production public key certificate (for PID Encryption) will always be available under link: https://uidai.gov.in/images/authDoc/uidai_auth_prod.cer

UIDAI Digital Signature

For validating & signature in the UIDAI response xml , you are requested to make use of the signature public key attached below. (Not required if you are not validating signatures in API responses or using the trust root validation for validating the UIDAI response xml signature)

Staging/Testing Public Key Certificates

Note: Latest staging/testing public key certificate will always be available under link https://uidai.gov.in/images/uidai_auth_stage.cer

PreProduction Signature/Encryption Public Key Certificates

Please find the keys below for validating the Digital Signature of UIDAI response XML, and encrypting the PID block of request XML in PreProduction Environment.

The URL format for integration and testing Aadhaar authentication service by the external entities: http ://///<uid[0]>/uid[1]>/

Test URLs: (remember to append AUA code and first two digits of Aadhaar number)

  • Auth URL - http://auth.uidai.gov.in/1.6//<1st-digit-of-uid>/<2nd-digit-of-uid>/
  • e-KYC URL - http://developer.uidai.gov.in/kyc/1.0//<1st-digit-of-uid>/<2nd-digit-of-uid>/
  • OTP URL - http://developer.uidai.gov.in/otp/1.6//<1st-digit-of-uid>/<2nd-digit-of-uid>/
  • BFD URL - http://developer.uidai.gov.in/bfd/1.6//<1st-digit-of-uid>/<2nd-digit-of-uid>/

URLs for other API versions:

Test Codes:

  • AUA Code ("ac" attribute) : "public"
  • Sub-AUA Code ("sa" attribute) - "public"
  • License Key ("lk" attribute) : You can use any of the following license keys given below. Binary distribution of sample client is shipped with the first one below.
    • AUA License Key: MOSuHNHE9vz9h-6m0ZNAocEIWN4osP3PObgu183xWNxnyM3JGyBHw0U - allows usage of PI, PA, PFA, BIO-FMR, BIO-FIR, BIO-IIR, OTP, PIN, Indian Language, e-KYC
    • ASA License Key: MHyryrzsW4_lgSJB1jQ-zQhd022ODevHJ6SeJJIR2IMi5KwN91Wxgps
  • BFD URL - http://developer.uidai.gov.in/bfd/1.6//<1st-digit-of-uid>/<2nd-digit-of-uid>/
  • Public key certificate - See chapter on certificates (UIDAI Certificate Details to be linked)(remember to use Staging/Test certificate for testing and production certificate for production)
  • Keystore for digital signature for "public" AUA - Keystore in p12 file format (Remove link). You can request p12 file by writing to This email address is being protected from spambots. You need JavaScript enabled to view it.

Following are the test UIDs and their demographic data. All of them have same bio record as given above. If you have your own Aadhaar number (real one) then you can use that to test too.

uid=999941057058
name=Shivshankar Choudhury
dob=13-05-1968
dobt=V
gender=M
phone=2810806979
email=This email address is being protected from spambots. You need JavaScript enabled to view it.
street=12 Maulana Azad Marg
vtc=New Delhi
subdist=New Delhi
district=New Delhi
state=New delhi
pincode=110002

uid=999971658847
name=Kumar Agarwal
dob=04-05-1978
dobt=A
gender=M
phone=2314475929
email=This email address is being protected from spambots. You need JavaScript enabled to view it.
building=IPP, IAP
landmark=Opp RSEB Window
street=5A Madhuban
locality=Veera Desai Road
vtc=Udaipur
district=Udaipur
state=Rajasthan
pincode=313001

uid=999933119405
name=Fatima Bedi
dob=30-07-1943
dobt=A
gender=F
phone=2837032088
email=This email address is being protected from spambots. You need JavaScript enabled to view it.
building=K-3A Rampur Garden
vtc=Bareilly
district=Bareilly
state=Uttar Pradesh
pincode=243001

uid=999955183433
name=Rohit Pandey
dob=08-07-1985
dobt=A
gender=M
phone=2821096353
email=This email address is being protected from spambots. You need JavaScript enabled to view it.
building=603/4 Vindyachal
street=7TH Road Raja Wadi
locality=Neelkanth Valley
poname=Ghatkopar (EAST)
vtc=Mumbai
district=Mumbai
state=Maharastra
pincode=243001

uid=999990501894
name=Anisha Jay Kapoor
gender=F
dob=01-01-1982
dobt=V
building=2B 203
street=14 Main Road
locality=Jayanagar
district=Bangalore
state=Karnataka
pincode=560036

Test UID Creation Process

If you want to make use of your own UIDs (for testing services like e-KYC), you can request for creation of a test UID by writing to This email address is being protected from spambots. You need JavaScript enabled to view it.from your registered e-mail id (email id registered for the UID – which is mandatory). You should not request for a test UID for another person. Please send filled-in consent form (link Staging consent form pdf attached) duly signed by the applicant. .

Test UID creation process is time consuming and you should provide minimum 20 days for the activity to get completed. Any follow ups after 20 days, should be done to the above mentioned mail id ONLY. Please note that, the test UIDs will be created at UIDAI's discretion and UIDAI reserves the rights to deny any such requests for any reasons which will not be disclosed to the requester

This page provides guidelines for handling API errors within the application. While developing applications, AUAs need to decide how to handle the errors gracefully and provide resident/operator friendly messages. Simply showing the error on screen is not helpful. This document is an attempt to provide guidelines for doing better error handling.

Follwing table desribes API error codes, suggestion for how to handle it, possible message to user, and probable reasons for the error.

Any other information regarding errors, please contact auth support team of UIDAI at This email address is being protected from spambots. You need JavaScript enabled to view it..