Aadhaar QR Verification

Aadhaar Secure QR Code

The Aadhaar Secure QR Code is supported as a Proof document type, enabling identity verification using cryptographically signed data embedded in the QR code.

What is the Aadhaar Secure QR Code?

The Aadhaar Secure QR Code is a digitally signed QR code issued by the Unique Identification Authority of India (UIDAI). It is printed on Aadhaar letters, e-Aadhaar documents, and Aadhaar PVC cards.

It enables strong identity verification by allowing validation of both the document’s authenticity and issuing authority through digital signatures—without requiring a live connection to government systems.

Unlike standard QR codes, the Aadhaar Secure QR Code is tamper-proof. The data embedded in the code is cryptographically signed by UIDAI, meaning any modification invalidates the signature and is immediately detected during a Proof transaction.

In addition to its security benefits, the Aadhaar Secure QR Code significantly simplifies document capture. Instead of relying on full-image capture of paper or plastic documents—which may be worn, damaged, or difficult to read—the Proof transaction workflow scans the QR code in real time.

This approach improves capture performance by reducing dependence on full document image quality and enabling structured data extraction directly from the QR payload.

🚧

Earlier versions of Aadhaar QR codes contained only demographic information and did not include a photograph. UIDAI later introduced the Secure QR Code, which adds a digitally signed photograph (face) along with demographic data, significantly improving identity verification and fraud detection.


What Information Does the QR Code Contain?

When scanned during the Proof transaction, the Secure QR Code returns verified identity attributes, including:

  • Name
  • Date of birth
  • Gender
  • Selfie / headshot
  • Masked Aadhaar number (reference ID)

All data is digitally signed using UIDAI’s public key infrastructure (PKI), ensuring both authenticity and integrity. AuthID decodes the QR code and validates the signature to confirm the information has not been altered.

How to Run Proof for Aadhaar QR

Create a Proof transaction as described in Creating Proof Transaction and include document type 4093 in the DocumentTypes array.

Inspecting Proof Results for Aadhaar QR

Proof results for the Aadhaar QR Code document type follow the standard Proof response JSON structure and include all typical signals returned by the platform. This ensures consistency across integrations, with verified identity attributes, validation results, and risk signals exposed in the same format as other document types, allowing existing implementations to process Aadhaar QR transactions without any special handling.

Aadhaar QR Signature Signal

For Aadhaar QR Code transactions, in addition to standard Proof signals, Aadhaar QR verification introduces a dedicated signal for QR signature validation.

Signal Name: AadhaarQrSignature

This signal represents the result of cryptographic validation of the QR payload using UIDAI’s public key infrastructure. It confirms that the QR payload is authentic and has not been altered.

The AadhaarQrSignature signal is evaluated as part of the Decision Node and contributes to the overall Proof decision. See Decision Node for details on how signals influence outcomes and how to customize decision policies.

By default, a failed signature validation is treated as a high-risk condition and results in a negative decision. As with other signals, this behavior can be customized through your decision policy configuration.

Example (success):

{
    "Name": "AadhaarQrSignature",
    "Result": "PASS",
    "SignalPass": true,
    "IsIgnored": false,
    "Present": true
}

A PASS result indicates that the QR code signature is valid and the extracted data is authentic. If the signature validation fails, the signal will return a failing result.

Aadhaar QR verification integrates seamlessly with existing Proof workflows and requires no additional implementation beyond specifying the document type.