BrandKwikID Documentation

DigiLocker API

Digilocker API details

This document provides a comprehensive analysis of three DigiLocker API responses, categorizing fields as either Always Present or Optional based on the data patterns observed.

1. Aadhaar Data API Response

Always Present Fields

Field PathData TypeDescriptionExample Value
aadhaar_data.Certificate.CertificateData.KycRes.@codeStringUnique response code"abc123def456ghi789jkl012mno345"
aadhaar_data.Certificate.CertificateData.KycRes.@retStringResponse status"Y"
aadhaar_data.Certificate.CertificateData.KycRes.@tsStringTimestamp"2025-01-15T10:30:45.123+05:30"
aadhaar_data.Certificate.CertificateData.KycRes.@ttlStringTime to live"2026-01-15T10:30:45"
aadhaar_data.Certificate.CertificateData.KycRes.@txnStringTransaction ID"UKC:abc123def456ghi789jkl012mno34520250115103045"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.@uidStringMasked Aadhaar number"xxxxxxxx1234"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poi.@dobStringDate of birth"15-06-1995"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poi.@genderStringGender"M"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poi.@nameStringFull name"John Doe Smith"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@countryStringCountry"India"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@distStringDistrict"Mumbai"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@stateStringState"Maharashtra"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@pcStringPostal code"400001"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@vtcStringVillage/Town/City"MUMBAI"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@poStringPost Office"Mumbai GPO"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@subdistStringSub District"Mumbai City"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@nameStringName in local language"जॉन डो स्मिथ"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@langStringLanguage code"13"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.PhtStringBase64 encoded photo"/9j/4AAQSkZJRgABAgAAAQABAAD..."
aadhaar_data.Certificate.Signature.@xmlnsStringXML namespace"http://www.w3.org/2000/09/xmldsig#"
aadhaar_data.Certificate.Signature.KeyInfo.X509Data.X509CertificateArrayCertificate chainArray of base64 certificates
aadhaar_data.Certificate.Signature.KeyInfo.X509Data.X509SubjectNameArrayCertificate subject namesArray of subject strings
aadhaar_data.Certificate.Signature.SignatureValueStringDigital signatureBase64 encoded signature
aadhaar_data.Certificate.Signature.SignedInfo.CanonicalizationMethod.@AlgorithmStringCanonicalization algorithm"http://www.w3.org/2001/10/xml-exc-c14n#"
aadhaar_data.Certificate.Signature.SignedInfo.SignatureMethod.@AlgorithmStringSignature algorithm"http://www.w3.org/2000/09/xmldsig#rsa-sha1"
aadhaar_data.Certificate.Signature.SignedInfo.Reference.DigestMethod.@AlgorithmStringDigest algorithm"http://www.w3.org/2001/04/xmlenc#sha256"
aadhaar_data.Certificate.Signature.SignedInfo.Reference.DigestValueStringDigest value"abc123def456ghi789jkl012mno345pqr678stu901vwx234yz567"
aadhaar_data.Certificate.Signature.SignedInfo.Reference.Transforms.Transform.@AlgorithmStringTransform algorithm"http://www.w3.org/2000/09/xmldsig#enveloped-signature"
aadhaar_xmlStringXML representationFull XML string

Optional Fields

Field PathData TypeDescriptionNotes
aadhaar_data.Certificate.CertificateData.KycRes.UidData.@tknStringTokenAlways empty string in samples
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@houseStringHouse detailsPresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@lmStringLandmarkPresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@locStringLocalityPresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.Poa.@streetStringStreet addressPresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@countryStringCountry in local languageAlways space character
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@distStringDistrict in local language"मुंबई"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@pcStringPostal code in local language"400001"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@stateStringState in local language"महाराष्ट्र"
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@houseStringHouse in local languagePresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@lmStringLandmark in local languagePresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@locStringLocality in local languagePresent but varies
aadhaar_data.Certificate.CertificateData.KycRes.UidData.LData.@streetStringStreet in local languagePresent but varies
aadhaar_data.Certificate.Signature.SignedInfo.Reference.@URIStringReference URIAlways empty string

2. Document List API Response

Always Present Fields

Field PathData TypeDescriptionExample Value
issued_files.itemsArrayArray of issued documentsArray of document objects
issued_files.items[].dateStringDocument issue date"15-01-2025"
issued_files.items[].descriptionStringDocument description"Aadhaar Card"
issued_files.items[].doctypeStringDocument type code"ADHAR"
issued_files.items[].issuerStringIssuing authority"Unique Identification Authority of India (UIDAI)"
issued_files.items[].issueridStringIssuer identifier"in.gov.uidai"
issued_files.items[].mimeArraySupported MIME types["application/json", "application/xml", "application/pdf"]
issued_files.items[].nameStringDocument name"Aadhaar Card"
issued_files.items[].typeStringDocument type"file"
issued_files.items[].uriStringDocument URI"in.gov.uidai-ADHAR-abc123def456ghi789jkl012mno345"

Optional Fields

Field PathData TypeDescriptionNotes
issued_files.items[].parentStringParent documentAlways empty string in samples
issued_files.items[].sizeStringDocument sizeAlways empty string in samples

3. PAN Verification API Response

Always Present Fields

Field PathData TypeDescriptionExample Value
document_data.Certificate.@issuedAtStringIssued at location"DigiLocker"
document_data.Certificate.@languageStringLanguage code"99"
document_data.Certificate.@nameStringDocument name"PAN Verification Record"
document_data.Certificate.@numberStringPAN number"ABCDE1234F"
document_data.Certificate.@statusStringDocument status"A"
document_data.Certificate.@typeStringDocument type"PANCR"
document_data.Certificate.CertificateData.PAN.@numStringPAN number"ABCDE1234F"
document_data.Certificate.CertificateData.PAN.@verifiedOnStringVerification timestamp"15-01-2025 12:30:45"
document_data.Certificate.IssuedBy.Organization.@nameStringIssuing organization"Income Tax Department"
document_data.Certificate.IssuedBy.Organization.@typeStringOrganization type"CG"
document_data.Certificate.IssuedBy.Organization.Address.@countryStringCountry code"IN"
document_data.Certificate.IssuedTo.Person.@dobStringDate of birth"15-06-1995"
document_data.Certificate.IssuedTo.Person.@genderStringGender"MALE"
document_data.Certificate.IssuedTo.Person.@nameStringFull name"JOHN DOE SMITH"
document_data.Certificate.IssuedTo.Person.@uidStringUnique identifier"abc123def456ghi789jkl012mno345pqr678"
document_data.Certificate.IssuedTo.Person.Address.@countryStringCountry code"IN"
document_data.Certificate.IssuedTo.Person.Address.@typeStringAddress type"permanent"
document_data.Certificate.QRMetaStringQR code dataBase64 encoded image
document_data.Certificate.Signature.@xmlnsStringXML namespace"http://www.w3.org/2000/09/xmldsig#"
document_data.Certificate.Signature.KeyInfo.X509Data.X509CertificateArrayCertificate chainArray of base64 certificates
document_data.Certificate.Signature.KeyInfo.X509Data.X509SubjectNameArrayCertificate subject namesArray of subject strings
document_data.Certificate.Signature.SignatureValueStringDigital signatureBase64 encoded signature
document_data.Certificate.Signature.SignedInfo.CanonicalizationMethod.@AlgorithmStringCanonicalization algorithm"http://www.w3.org/2001/10/xml-exc-c14n#"
document_data.Certificate.Signature.SignedInfo.SignatureMethod.@AlgorithmStringSignature algorithm"http://www.w3.org/2000/09/xmldsig#rsa-sha1"
document_data.Certificate.Signature.SignedInfo.Reference.DigestMethod.@AlgorithmStringDigest algorithm"http://www.w3.org/2001/04/xmlenc#sha256"
document_data.Certificate.Signature.SignedInfo.Reference.DigestValueStringDigest value"xyz789abc123def456ghi789jkl012mno345pqr678stu901"
document_data.Certificate.Signature.SignedInfo.Reference.Transforms.Transform.@AlgorithmStringTransform algorithm"http://www.w3.org/2000/09/xmldsig#enveloped-signature"
document_xmlStringXML representationFull XML string

Optional Fields

Field PathData TypeDescriptionNotes
document_data.Certificate.@issueDateStringIssue dateAlways empty string in samples
document_data.Certificate.@validFromDateStringValid from dateAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.@codeStringOrganization codeAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.@tinStringTIN numberAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.@uidStringOrganization UIDAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@districtStringDistrictAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@houseStringHouseAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@landmarkStringLandmarkAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@line1StringAddress line 1Always empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@line2StringAddress line 2Always empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@localityStringLocalityAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@pinStringPIN codeAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@stateStringStateAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@typeStringAddress typeAlways empty string in samples
document_data.Certificate.IssuedBy.Organization.Address.@vtcStringVillage/Town/CityAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@titleStringTitleAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@swdStringSWDAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@swdIndicatorStringSWD indicatorAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@maritalStatusStringMarital statusAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@religionStringReligionAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@phoneStringPhone numberAlways empty string in samples
document_data.Certificate.IssuedTo.Person.@emailStringEmail addressAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@districtStringDistrictAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@houseStringHouseAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@landmarkStringLandmarkAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@line1StringAddress line 1Always empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@line2StringAddress line 2Always empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@localityStringLocalityAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@pinStringPIN codeAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@stateStringStateAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Address.@vtcStringVillage/Town/CityAlways empty string in samples
document_data.Certificate.IssuedTo.Person.Photo.@formatStringPhoto formatAlways empty string in samples
document_data.Certificate.Signature.SignedInfo.Reference.@URIStringReference URIAlways empty string

Key Observations

1. Digital Signature Structure

All three APIs maintain consistent digital signature structures with:

  • X.509 certificate chains
  • RSA-SHA1 signature algorithm
  • SHA256 digest algorithm
  • XML canonicalization

2. Address Field Patterns

  • Aadhaar API: Address fields are consistently populated
  • PAN API: Address fields are consistently empty strings
  • List API: No address information

3. Local Language Support

  • Aadhaar API: Provides data in both English and local language (Hindi/Marathi)
  • PAN API: English only
  • List API: English only

4. Empty String Patterns

Many fields consistently return empty strings rather than being omitted entirely, suggesting these are placeholders for future data or optional fields that are not currently utilized.

5. Data Consistency

  • All APIs maintain consistent structure across different users
  • Certificate chains and signature algorithms are standardized
  • MIME type arrays are consistent across document types

6. Additional Fields in Viren's Response

  • New Address Fields: @po (Post Office) and @subdist (Sub District) were found in Viren's data
  • Enhanced Local Language Support: Viren's response includes additional local language fields like @dist, @pc, and @state in the LData section
  • Field Variation: Some users may have more complete address information than others, suggesting data completeness varies by region or data source

Recommendations for API Consumers

  1. Always check for empty strings rather than missing fields
  2. Validate digital signatures using the provided certificate chains
  3. Handle both English and local language data for Aadhaar responses
  4. Use the @ret field to verify successful responses
  5. Parse XML data when available for additional metadata
  6. Implement proper error handling for missing or malformed data