uqudo
HomeCustomer PortalBook a Demo
  • KYC
    • Getting Started
      • Use Cases
        • User Enrolment
        • Face Authentication
      • Integration Options
        • Uqudo SDK
        • Uqudo API
        • No-code KYC
      • Customer Portal
        • Manage your SDK/API credentials
        • Create a new secret
        • Create a support request
    • Uqudo SDK
      • Integration
        • Android
          • Prepare Environment
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
          • UI Customisation
            • UX & Branding
            • Dark / Night mode
            • Text & Language
              • General Strings
              • Scanning
              • Reading
              • Face Recognition
              • Background Check
              • Lookup
          • Analytics
        • iOS
          • Prepare Environment
          • Usage
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
          • UI Customisation
            • UX & Branding
            • Dark / Night mode
            • Text & Language
          • Analytics
        • Web
          • SDK installation
            • Vanilla HTML+JS project
            • JS Frameworks (React, Angular, VueJs, etc...)
          • SDK Initialisation
          • CORS
          • Enrolment Flow
          • Face Session Flow
          • Javascript Usage
          • Typescript Usage
          • Operation Error
          • UI Customisation
            • Styles Configuration
            • Text & Language
            • Assets & Images
          • Webview Usage
          • Analytics
        • Capacitor
          • Plugin Installation
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
        • Cordova
          • Plugin Installation
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
        • Flutter
          • Plugin Installation
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
        • React Native
          • Plugin Installation
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
        • Xamarin and .NET
          • Plugin Installation
          • Enrolment Flow
          • Lookup Flow
          • Face Session Flow
          • Analytics
      • SDK result
        • Validation and Parsing
        • Data Structure
          • Common Object
          • Scan Object
          • Reading Object
            • Algerian ID
            • Bahrain ID
            • Ghana ID
            • Iraqi ID
            • Netherlands DL
            • Oman ID
            • Moroccan ID
            • Qatar ID
            • Saudi ID
            • Senegal ID
            • Turkish ID
            • UAE ID
            • Passports
          • Face Object
          • Lookup Object
            • Ghana SSNIT
            • Ghana Voter ID
            • Ghana Passport
            • Ghana Driving Licence
            • India PAN card
            • India Aadhaar ID
            • Nigeria Voter ID
            • Nigeria Driving Licence
            • Nigeria NIN
            • Nigeria BVN
            • Kenya National ID
            • South Africa ID
            • Uganda Voter ID
            • UAE Emirates ID
          • Verification Object
        • Download a Resource
        • Encrypt the SDK result
        • Security & Best Practices
      • Upgrade the SDK
      • Changelog
        • Mobile SDK
        • Web SDK
    • Uqudo API
      • Authorisation API
      • Scan API
        • Passports
          • AUS (Australia)
          • BEL (Belgium)
          • BHR (Bahrain)
          • CAN (Canada)
          • CHE (Switzerland)
          • DEU (Germany)
          • EGY (Egypt)
          • FRA (France)
          • GBR (UK)
          • IND (India)
          • JOR (Jordan)
          • KWT (Kuwait)
          • LBN (Lebanon)
          • MAR (Morocco)
          • OMN (Oman)
          • PAK (Pakistan)
          • PHL (Philippines)
          • PSE (Palestine)
          • QAT (Qatar)
          • SAU (Saudi Arabia)
          • SDN (Sudan)
          • SYR (Syria)
          • TUN (Tunisia)
          • TUR (Turkey)
          • UAE (UAE)
          • USA (USA)
          • YEM (Yemen)
          • ZAF (South Africa)
        • Generic National IDs
        • Country Specific IDs
          • BHR_DL (Bahrain Driving Licence)
          • BHR_ID (Bahrain ID)
          • BHR_VL (Bahrain Vehicle License)
          • COD_DL (DRC Driving Licence)
          • COD_VOTER_ID (DRC Voter ID)
          • DZA_ID (Algerian ID)
          • EGY_ID (Egypt ID)
          • GBR DL (UK Driving License)
          • GBR_ID (UK Resident ID)
          • GHA_DL (Ghana Driving Licence)
          • GHA_ID (Ghana National ID)
          • GHA_SSNIT (Ghana Social Security and National Insurance Trust)
          • GHA_VOTER_ID (Ghana Voter ID)
          • IND_ID (India Identity Card)
          • IND_PAN (Indian PAN Card)
          • IRQ_ID (Iraqi ID)
          • JOR_VL (Jordan Vehicle License)
          • KEN_ID (Kenya ID)
          • KWT_ID (Kuwait ID)
          • LBN DL (Lebanese Driving Licence)
          • LBN_ID (Lebanese ID)
          • MAR_ID (Moroccan ID)
          • NGA_DL (Nigeria Driving Licence)
          • NGA_NIN (Nigeria Digital NIN)
          • NGA_VOTER_ID (Nigeria Voter Card)
          • NLD_DL (Netherlands Driving Licence)
          • OMN_DL (Oman Driving Licence)
          • OMN_ID (Oman ID)
          • OMN_VL (Oman Vehicle License)
          • PAK_ID (Pakistan ID)
          • PHL_DL (Philippines Driving License)
          • QAT_DL (Qatar Driving Licence)
          • QAT_ID (Qatar ID)
          • RSL_ID (Somaliland National ID)
          • RWA_ID (Rwanda ID)
          • SAU_DL (Saudi Arabia Driving Licence)
          • SAU_ID (Saudi Arabia ID)
          • SAU_VL (Saudi Vehicle License)
          • SDN_DL (Sudan Driving Licence)
          • SDN_ID (Sudan ID)
          • SDN_VL (Sudan Vehicle License)
          • SEN_ID (Senegal ID)
          • SOM_ID (Somali ID)
          • TUN_ID (Tunisian ID)
          • TUR_ID (Turkish ID)
          • UAE_DL (UAE Driving Licence)
          • UAE_ID (UAE Emirates ID)
          • UAE_ID_DIGITAL (UAE Emirates ID digital version)
          • UAE_VISA (UAE Visa)
          • UAE_VL (UAE Vehicle Licence)
          • UAE_EVISA (UAE e-visa)
          • UAE_ID_APPLICATION_FORM (UAE ID application form)
          • UAE_PASSPORT_DIGITAL (Digital Emirates Passport)
          • UGA_ID (Uganda ID)
          • UGA_VOTER_ID (Uganda Voter ID)
          • USA_DL (USA Driving Licence)
          • ZAF_DL (South Africa Driving License)
          • ZAF_ID (South Africa ID)
        • MRZ only (TD1 or TD3)
      • Info API
      • Face API
      • Lookup API
        • Ghana
        • India
        • Kenya
        • Nigeria
        • South Africa
        • Uganda
        • UAE
      • Background Check API
    • No-code KYC
      • Workflow Settings
      • Text Settings
      • Other Settings
      • Onboard Users
  • KYB
    • Getting Started
      • Use Cases
        • Low-complexity
        • Medium-complexity
        • High-complexity
      • Integration Options
        • Uqudo API
    • Uqudo API
      • Company API
      • Screening API
      • Data Matching API
      • Session API
  • Coverage
    • Middle East
      • 🇧🇭Bahrain
      • 🇮🇷Iran
      • 🇮🇶Iraq
      • 🇮🇱Israel
      • 🇯🇴Jordan
      • 🇰🇼Kuwait
      • 🇱🇧Lebanon
      • 🇴🇲Oman
      • 🇵🇸Palestine
      • 🇶🇦Qatar
      • 🇸🇦Saudi Arabia
      • 🇸🇾Syria
      • 🇹🇷Turkey
      • 🇦🇪United Arab Emirates
      • 🇾🇪Yemen
    • Africa
      • 🇩🇿Algeria
      • 🇦🇴Angola
      • 🇧🇯Benin
      • 🇧🇼Botswana
      • 🇧🇫Burkina Faso
      • 🇧🇮Burundi
      • 🇨🇲Cameroon
      • 🇨🇻Cape Verde
      • 🇨🇫Central African Republic
      • 🇹🇩Chad
      • 🇰🇲Comoros
      • 🇨🇩Democratic Republic of Congo
      • 🇩🇯Djibouti
      • 🇪🇬Egypt
      • 🇬🇶Equatorial Guinea
      • 🇪🇷Eritrea
      • 🇸🇿Eswatini
      • 🇪🇹Ethiopia
      • 🇬🇦Gabon
      • 🇬🇲Gambia
      • 🇬🇭Ghana
      • 🇬🇳Guinea
      • 🇬🇼Guinea-Bissau
      • 🇨🇮Ivory Coast
      • 🇰🇪Kenya
      • 🇱🇸Lesotho
      • 🇱🇷Liberia
      • 🇱🇾Libya
      • 🇲🇬Madagascar
      • 🇲🇼Malawi
      • 🇲🇱Mali
      • 🇲🇷Mauritania
      • 🇲🇺Mauritius
      • 🇲🇦Morocco
      • 🇲🇿Mozambique
      • 🇳🇦Namibia
      • 🇳🇪Niger
      • 🇳🇬Nigeria
      • 🇨🇩Republic of Congo
      • 🇷🇼Rwanda
      • 🇸🇹Sao Tome and Principe
      • 🇸🇳Senegal
      • 🇸🇨Seychelles
      • 🇸🇱Sierra Leone
      • 🇸🇴Somalia
      • 🇸🇴Somaliland
      • 🇿🇦South Africa
      • 🇸🇸South Sudan
      • 🇸🇩Sudan
      • 🇹🇿Tanzania
      • 🇹🇬Togo
      • 🇹🇳Tunisia
      • 🇺🇬Uganda
      • 🇿🇲Zambia
      • 🇿🇼Zimbabwe
    • Asia
      • 🇦🇫Afghanistan
      • 🇦🇲Armenia
      • 🇦🇿Azerbaijan
      • 🇧🇩Bangladesh
      • 🇧🇹Bhutan
      • 🇧🇳Brunei
      • 🇰🇭Cambodia
      • 🇨🇳China
      • 🇹🇱East Timor
      • 🇬🇪Georgia
      • 🇭🇰Hong-Kong (China)
      • 🇮🇳India
      • 🇮🇩Indonesia
      • 🇯🇵Japan
      • 🇰🇿Kazakhstan
      • 🇰🇬Kyrgyzstan
      • 🇱🇦Laos
      • 🇲🇴Macau (China)
      • 🇲🇾Malaysia
      • 🇲🇻Maldives
      • 🇲🇳Mongolia
      • 🇲🇲Myanmar
      • 🇳🇵Nepal
      • 🇰🇵North Korea
      • 🇵🇰Pakistan
      • 🇵🇭Philippines
      • 🇸🇬Singapore
      • 🇰🇷South Korea
      • 🇱🇰Sri Lanka
      • 🇹🇼Taiwan (China)
      • 🇹🇯Tajikistan
      • 🇹🇭Thailand
      • 🇹🇲Turkmenistan
      • 🇺🇿Uzbekistan
      • 🇻🇳Vietnam
    • Europe
      • 🇦🇱Albania
      • 🇦🇩Andorra
      • 🇦🇹Austria
      • 🇧🇾Belarus
      • 🇧🇪Belgium
      • 🇧🇦Bosnia and Herzegovina
      • 🇧🇬Bulgaria
      • 🇭🇷Croatia
      • 🇨🇾Cyprus
      • 🇨🇿Czech Republic
      • 🇩🇰Denmark
      • 🇪🇪Estonia
      • 🇫🇴Faroe Islands (Denmark)
      • 🇫🇮Finland
      • 🇫🇷France
      • 🇩🇪Germany
      • 🇬🇮Gibraltar (UK)
      • 🇬🇷Greece
      • 🇬🇱Greenland (Denmark)
      • 🇬🇬Guernsey (UK)
      • 🇭🇺Hungary
      • 🇮🇸Iceland
      • 🇮🇪Ireland
      • 🇮🇲Isle of Man (UK)
      • 🇮🇹Italy
      • 🇯🇪Jersey (UK)
      • 🇽🇰Kosovo
      • 🇱🇻Latvia
      • 🇱🇮Liechtenstein
      • 🇱🇹Lithuania
      • 🇱🇺Luxembourg
      • 🇲🇹Malta
      • 🇲🇩Moldova
      • 🇲🇨Monaco
      • 🇲🇪Montenegro
      • 🇳🇱Netherlands
      • 🇲🇰North Macedonia
      • 🇨🇾Northern Cyprus
      • 🇳🇴Norway
      • 🇵🇱Poland
      • 🇵🇹Portugal
      • 🇷🇴Romania
      • 🇷🇺Russia
      • 🇸🇲San Marino
      • 🇷🇸Serbia
      • 🇸🇰Slovakia
      • 🇸🇮Slovenia
      • 🇪🇸Spain
      • 🇸🇪Sweden
      • 🇨🇭Switzerland
      • 🇺🇦Ukraine
      • 🇬🇧United Kingdom
      • 🇻🇦Vatican City
    • North America
      • 🇦🇮Anguilla (UK)
      • 🇦🇬Antigua and Barbuda
      • 🇧🇸Bahamas
      • 🇧🇧Barbados
      • 🇧🇿Belize
      • 🇧🇲Bermuda (UK)
      • 🇻🇬British Virgin Islands (UK)
      • 🇨🇦Canada
      • 🇰🇾Cayman Islands (UK)
      • 🇨🇷Costa Rica
      • 🇨🇺Cuba
      • 🇩🇲Dominica
      • 🇩🇴Dominican Republic
      • 🇸🇻El Salvador
      • 🇬🇩Grenada
      • 🇬🇹Guatemala
      • 🇭🇹Haiti
      • 🇭🇳Honduras
      • 🇯🇲Jamaica
      • 🇲🇽Mexico
      • 🇲🇸Montserrat (UK)
      • 🇵🇦Panama
      • 🇰🇳Saint Kitts and Nevis
      • 🇱🇨Saint Lucia
      • 🇻🇨Saint Vincent and the Grenadines
      • 🇹🇨Turks and Caicos Islands (UK)
      • 🇺🇸United States of America
    • South America
      • 🇦🇷Argentina
      • 🇧🇴Bolivia
      • 🇧🇷Brazil
      • 🇨🇱Chile
      • 🇨🇴Colombia
      • 🇪🇨Ecuador
      • 🇬🇾Guyana
      • 🇳🇮Nicaragua
      • 🇵🇾Paraguay
      • 🇵🇪Peru
      • 🇸🇷Suriname
      • 🇹🇹Trinidad and Tobago
      • 🇺🇾Uruguay
      • 🇻🇪Venezuela
    • Oceania
      • 🇦🇺Australia
      • 🇫🇯Fiji
      • 🇵🇫French Polynesia (France)
      • 🇰🇮Kiribati
      • 🇲🇭Marshall Islands
      • 🇫🇲Micronesia
      • 🇳🇷Nauru
      • 🇳🇨New Caledonia (France)
      • 🇳🇿New Zealand
      • 🇵🇼Palau
      • 🇵🇬Papua New Guinea
      • 🇸🇭Saint Helena (UK)
      • 🇼🇸Samoa
      • 🇸🇧Solomon Islands
      • 🇹🇴Tonga
      • 🇹🇻Tuvalu
      • 🇻🇺Vanuatu
Powered by GitBook
On this page

Was this helpful?

  1. KYC
  2. Uqudo SDK
  3. SDK result
  4. Data Structure

Verification Object

Available only for mobile SDK version 3.x and above and web SDK 3.4.2 and above.

{
.....
  "verifications": [{
	"documentType": "document type, e.g. UAE_ID",
	"sourceDetection": {
  		"enabled": true,
                "allowNonPhysicalDocuments": true or false,
  		"selectedResolution": "e.g. 2160x3840",
  		"optimalResolution": true or false
	},
	"idScreenDetection": {
  		"enabled": true or false,
  		"score": 0-100
	},
	"idPrintDetection": {
  		"enabled": true or false,
  		"score": 0-100
	},
	"idPhotoTamperingDetection": {
  		"enabled": true or false,
  		"score": 0-100
	},
	"dataConsistencyCheck": {
  		"enabled": true or false,
  	  	"fields": [{
      			"name": "common field name",
"match": "MATCH or MATCH_PARTIALLY or NO_MATCH",
      			"sources": [{
          			"source": "SCAN or READING or LOOKUP",
          			"documentSide": "FRONT or BACK or none",
          			"name": "original field name that is used in the source",
          			"value": "original value of the field"
        		}]
    		}]
	},
	"mrzChecksum": {
  		"enabled": true or false,
  		"finalCheckDigit": number,
  		"valid": true or false,
  		"checkDigits": [{
   			"fieldName": "name",
   		 	"fieldValue": "value",
   			"checkDigit": number,
   		 	"valid": true or false
   	 	}]
	},
	"reading": {
  		"enabled": true or false,
                "passiveAuthentication": {
                     "enabled": true,
                     "countrySigningCertificateAvailable": true or false,
                     "documentSigningCertificateAvailable": true or false,
                     "documentSigningCertificateSignatureValid": true or false,
                     "documentDataSignatureValid": true or false,
                },
                "chipAuthentication": {
                     "enabled": true
                },
                "activeAuthentication": {
                     "enabled": true
                }
	},
	"biometric": {
  		"enabled": true or false,
  		"type": "FACIAL_RECOGNITION"
  		"matchLevel": 0-5	
        },
	"lookup": {
  		"enabled": true or false,
  		"documentFound": true or false
	}
   }]
......
}

Source detection:

  • enabled: Always true

  • allowNonPhysicalDocuments: By default is set to false, can be overridden in the mobile SDK configuration. Always true for the web SDK

  • selectedResolution: Resolution used to perform source detection

  • optimalResolution: Indicates if the process was performed with optimal resolution. Regarding the mobile SDK, in the majority of the cases it should be true but in rare cases might be false, for instance for phones that don’t support an optimal resolution. Suboptimal resolution can affect the accuracy of the source detection process and therefore should trigger a warning and therefore manually evaluated

Id screen detection:

  • enabled: Always true

  • score: An assigned score ranging from 0 to 100 indicates the likelihood of a document scanned through a screen. A higher score suggests a higher probability to be a screen. It's important to be aware that the mobile SDK only will reject scanning attempts if the score exceeds 50 unless allowNonPhysicalDocuments is set to true

Id print detection:

  • enabled: Always true

  • score: An assigned score ranging from 0 to 100 indicates the likelihood of a document scanned through a printed copy. A higher score suggests a higher probability to be a printed copy. The mobile SDK does not reject scans of printed documents. Please note that low-light conditions may affect the result, potentially increasing the score and leading to false positives. We are committed to improving this aspect in future releases, refining quality check procedures to ensure optimal image quality. Eventually, printed documents above a certain score will be rejected directly from the mobile SDK, similar to how screens are handled. Note: Starting with version 3.2.0 and above, the mobile SDK only will reject scans of ID documents presented on paper. It's important to be aware that the mobile SDK will reject scanning attempts if the score exceeds 50 unless allowNonPhysicalDocuments is set to true Dec 6, 2024: We have implemented an advanced machine learning system that identifies unique printing patterns with unprecedented accuracy. This enhancement comes as an addition to the existing print detection features to provide a more reliable detection of printed copies of ID documents, reflected in improved accuracy of the idPrintDetection score in your verification results. Mobile SDK v3.2.0 and above includes built-in features to reject paper-based document scans during the document scanning step. These features operate locally within the mobile SDK for optimal user experience. The newly added enhancement is considered as an added security layer that operates server-side only and thus does not block the user during the document scanning process. Hence, even with allowNonPhysicalDocuments set to False, it is possible that you get a high isPrintDetection score in the verification result object for a successful onboarding.

Id photo tampering detection:

  • enabled: Always true

  • score: An assigned score ranging from 0 to 100 indicates the likelihood of tampering with the ID photo. A higher score suggests a higher probability of tampering. It's important to be aware that the mobile SDK only will reject scanning attempts if the score exceeds 70. Scores surpassing 40 should trigger a warning and therefore manually evaluated

Data consistency check:

  • enabled: Always true

  • fields: List of fields found across all the steps of the KYC journey that are duplicates and therefore can be matched. Please be aware that the list may be empty if there are no fields available for matching.

  • Field object:

    • name: Common field name across all the sources

    • match: MATCH or MATCH_PARTIALLY or NO_MATCH

    • sources: List of sources that have been matched

    • Source object:

      • source: The source of the field. Possible values are SCAN, READING or LOOKUP

      • documentSide: The side of the document (FRONT or BACK) if source is SCAN

      • name: Original field name

      • value: Value of the field

MRZ checksum:

  • enabled: Enabled if the document contains a MRZ

  • finalCheckDigit: The check digit number used to validate the checksum of multiple values across the MRZ

  • valid: If the final checksum is valid or not

  • checkDigits: List of check digit validations per MRZ field

  • Check digit object:

    • fieldName: Field name

    • fieldValue: Field value

    • checkDigit: Check digit number

    • valid: If the checksum is valid or not

Reading:

  • enabled: If the reading step (NFC chip reading) was enabled or not. Only available in the mobile SDK

  • passiveAuthentication: Available only if passive authentication is supported by the document

    • enabled: true If passive authentication is supported by the document (e.g. passport), otherwise passiveAuthentication object is not returned as described above

    • countrySigningCertificateAvailable: true if the country signing certificate is available

    • documentSigningCertificateAvailable: true if the document signing certificate is available

    • documentSigningCertificateSignatureValid: implies that countrySigningCertificateAvailable is true. If countrySigningCertificateAvailable is false the attribute is not exported

    • documentDataSignatureValid: if digital signature validation of the data was successful or not. For passports could be false as we don't reject the reading because some passports could have a defect

  • activeAuthentication: Available only if active authentication was performed

    • enabled: true If active authentication is supported by the document, otherwise activeAuthentication object is not returned as described above

  • chipAuthentication: Available only if chip authentication was performed

    • enabled: true If chip authentication is supported by the document, otherwise chipAuthentication object is not returned as described above

Biometric:

  • enabled: If biometric was enabled or not

  • type: Can only be FACIAL_RECOGNITION

  • matchLevel: match level returned

Lookup:

  • enabled: If lookup was enabled or not

  • documentFound: If a matching document was found or not

It's important to always validate the SDK result against your specific requirements. The mobile SDK only is designed to automatically detect and block screen presentations, printed document attacks, and ID portrait substitution attacks, unless these features are disabled. However, our server-side verification goes further by performing these same checks alongside additional specialized verifications, such as print detection models, which can catch issues that may be missed by the mobile SDK. While the mobile SDK acts as an initial security layer, server-side validation is essential. Currently, we replicate all mobile SDK security checks on our servers, following the zero-trust principle toward the client, and are working on introducing more advanced security features that will be available exclusively server-side.

Note: For the web SDK, it's essential to validate the result because it doesn't automatically detect or block screen presentations, printed document attacks, or ID portrait substitution attacks. These checks are handled entirely on the server side. Also, make sure to validate the other sections of the verification object, like "Data consistency check", "MRZ checksum", "Reading", "Biometric" and "Lookup".

PreviousUAE Emirates IDNextDownload a Resource

Last updated 3 months ago

Was this helpful?