> For the complete documentation index, see [llms.txt](https://docs.uqudo.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.uqudo.com/docs/kyc/uqudo-sdk/sdk-result/data-structure/reading-object/generic-id.md).

# Generic ID

{% hint style="info" %}
We do support eID cards (ID-1 format) issued by countries that include a Machine Readable Zone (MRZ) on the back, comply with ICAO Doc 9303, and contain a contactless chip (ISO/IEC 14443 / NFC). This feature is available in the "Enrollment Flow" and "NFC / Reading Flow" using the document type GENERIC\_ID or MRZ (when scanning only the back side). If a country is not supported, the NFC reading step is skipped according to the SDK's default configuration.\
If you believe an eID card complies with the standard but the SDK still skips the NFC reading step, please contact us.
{% endhint %}

{% hint style="info" %}
The validity section below includes security-related data. Consumers should evaluate this data using the [**verification.reading**](/docs/kyc/uqudo-sdk/sdk-result/data-structure/verification-object.md) object, which provides the canonical source for implementing business-specific validation and verification logic.
{% endhint %}

<table><thead><tr><th width="179">Attribute Level 1</th><th width="176">Attribute Level 2</th><th>Description</th></tr></thead><tbody><tr><td><strong>photo</strong></td><td></td><td>Base64 encoded picture of the user.</td></tr><tr><td><strong>photoMimeType</strong></td><td></td><td>image/jp2 or image/jpeg</td></tr><tr><td><strong>signature</strong></td><td></td><td>Base64 encoded signature (Only if available)</td></tr><tr><td><strong>signatureMimeType</strong></td><td></td><td>image/jp2 or image/jpeg (Only if available)</td></tr><tr><td><strong>mrz</strong></td><td></td><td>{} MRZ object</td></tr><tr><td></td><td><strong>documentCode</strong></td><td>Document code as per MRZ standard</td></tr><tr><td></td><td><strong>dateOfExpiry</strong></td><td>Date of expire as per MRZ standard</td></tr><tr><td></td><td><strong>optionalData2</strong></td><td>Optional field 2 as per MRZ standard</td></tr><tr><td></td><td><strong>gender</strong></td><td>Gender as per MRZ standard</td></tr><tr><td></td><td><strong>nationality</strong></td><td>Nationality as per MRZ standard</td></tr><tr><td></td><td><strong>documentNumber</strong></td><td>Document number as per MRZ standard</td></tr><tr><td></td><td><strong>dateOfBirth</strong></td><td>Date of Birth as per MRZ standard</td></tr><tr><td></td><td><strong>issuingState</strong></td><td>Document issuer as per MRZ standard</td></tr><tr><td></td><td><strong>secondaryIdentifier</strong></td><td>First name as per MRZ standard</td></tr><tr><td></td><td><strong>primaryIdentifier</strong></td><td>Surname as per MRZ standard</td></tr><tr><td></td><td><strong>optionalData1</strong></td><td>Optional Data 1 as per MRZ standard</td></tr><tr><td><strong>personalDetails</strong></td><td></td><td>{} Additional personal details</td></tr><tr><td></td><td><strong>nameOfHolder</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>otherNames</strong></td><td>Type array of strings, null or empty if not available</td></tr><tr><td></td><td><strong>personalNumber</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>fullDateOfBirth</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>placeOfBirth</strong></td><td>Type array of strings, null or empty if not available</td></tr><tr><td></td><td><strong>permanentAddress</strong></td><td>Type array of strings, null or empty if not available</td></tr><tr><td></td><td><strong>telephone</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>profession</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>title</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>personalSummary</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>proofOfCitizenship</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>otherValidTDNumbers</strong></td><td>Type array of strings, null or empty if not available</td></tr><tr><td></td><td><strong>custodyInformation</strong></td><td>Type string, null if not available</td></tr><tr><td><strong>documentDetails</strong></td><td></td><td>{} Additional document details</td></tr><tr><td></td><td><strong>issuingAuthority</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>dateOfIssue</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>namesOfOtherPersons</strong></td><td>Type array of strings, null or empty if not available</td></tr><tr><td></td><td><strong>endorsementsAndObservations</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>taxOrExitRequirements</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>imageOfFront</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>imageOfRear</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>dateAndTimeOfPersonalization</strong></td><td>Type string, null if not available</td></tr><tr><td></td><td><strong>personalizationSystemSerialNumber</strong></td><td>Type string, null if not available</td></tr><tr><td><strong>countrySigningCertificate</strong></td><td></td><td>{} Available only if CSCA (Country Signing Certificate Authority) is available for the issuing document</td></tr><tr><td></td><td><strong>serialNumber</strong></td><td></td></tr><tr><td></td><td><strong>publicKeyAlgorithm</strong></td><td></td></tr><tr><td></td><td><strong>subject</strong></td><td></td></tr><tr><td></td><td><strong>certificateThumbprint</strong></td><td></td></tr><tr><td></td><td><strong>validFrom</strong></td><td></td></tr><tr><td></td><td><strong>signatureAlgorithm</strong></td><td></td></tr><tr><td></td><td><strong>issuer</strong></td><td></td></tr><tr><td></td><td><strong>validTo</strong></td><td></td></tr><tr><td><strong>documentSigningCertificate</strong></td><td></td><td>{}</td></tr><tr><td></td><td><strong>serialNumber</strong></td><td></td></tr><tr><td></td><td><strong>publicKeyAlgorithm</strong></td><td></td></tr><tr><td></td><td><strong>subject</strong></td><td></td></tr><tr><td></td><td><strong>certificateThumbprint</strong></td><td></td></tr><tr><td></td><td><strong>validFrom</strong></td><td></td></tr><tr><td></td><td><strong>signatureAlgorithm</strong></td><td></td></tr><tr><td></td><td><strong>issuer</strong></td><td></td></tr><tr><td></td><td><strong>validTo</strong></td><td></td></tr><tr><td><strong>dataGroupHashes</strong></td><td></td><td>[{}] Array of objects. DG1, DG2, DG7, DG11 and DG12 hashes, stored and computed (Only DGs that are available)</td></tr><tr><td></td><td><strong>computedHash</strong></td><td></td></tr><tr><td></td><td><strong>dataGroupNumber</strong></td><td></td></tr><tr><td></td><td><strong>storedHash</strong></td><td></td></tr><tr><td></td><td><strong>match</strong></td><td>If computedHash and storedHash match</td></tr><tr><td><strong>validity</strong></td><td></td><td>{}</td></tr><tr><td></td><td><strong>dataGroupHashesSucceeded</strong></td><td>True if all data group hashes, computed and stored, match</td></tr><tr><td></td><td><strong>documentSignerSucceeded</strong></td><td>Available only if CSCA (Country Signing Certificate Authority) is available for the issuing document and the digital signature of the data in the chip was successfully verified. Otherwise absent. If digital signature verification fails we reject the reading during the enrollment flow at SDK level dropping the session with a specific error code.</td></tr><tr><td></td><td><strong>sodSignatureSucceeded</strong></td><td>True if the signature of the SOD object has been successfully validated against the document signing certificate. For a completed session this value can only be true.</td></tr><tr><td></td><td><strong>activeAuthenticationPerformed</strong></td><td>True if active authentication was performed, otherwise absent. Please note that if active authentication is supported and it fails we reject the reading during the enrollment flow at SDK level dropping the session with a specific error code.</td></tr><tr><td></td><td><strong>chipAuthenticationPerformed</strong></td><td>True if chip authentication was performed, otherwise absent. Please note that if chip authentication is supported and it fails we reject the reading during the enrollment flow at SDK level dropping the session with a specific error code.</td></tr></tbody></table>
