Skip to content

eMRTD Result ​

This eMRTD Result represents data from an eMRTD and check results.
Refer to the Security Mechanisms Overview and ICAO Doc9303 (Part 10 and 11 in particular).

With the WebSocket API, the Client Validation ID will be included additionally.

Example JSON
json
{
  "emrtd_passport": {
    "sod_info": {
      "hash_algorithm": "SHA-256",
      "hash_for_data_group": {
        "1": "B7ZYsPUdx6/77hON2QpI/7Hr36tlH5m+Am0WuzWDFn4=",
        "2": "b4xR1WNjbu5DY67seOpC8OAmkwErnwbsXkJIzTiCuas=",
        "7": "Rt0gaZ1pvAnp0CEcd+ir05fWCpT+cj7ecKxH+rWUDoo=",
        "11": "/oYfYTAHXtF5oZbb6kcMrq7BGoMVtmOWsqvM0ctyBCI=",
        "12": "IXIYTHM0l3EeCpu74Z1zHTGT1HQH1KRKU+2Dhu8OuRA=",
        "14": "w62EEvLa74fLyhBYiulDtrt/2vQmueFGAJM5s+UdtMM=",
        "15": "VjBncDBu+qGAcCoZFthMNuU3pmBR8ECLXejkKhjIM+A="
      }
    },
    "mrz_info": {
      "document_type": "TD3",
      "document_code": "P",
      "issuing_state": "USA",
      "primary_identifier": "PARKER",
      "secondary_identifier": ["PETER"],
      "nationality": "USA",
      "document_number": "5S280806",
      "date_of_birth": "010810",
      "gender": "MALE",
      "date_of_expiry": "250718",
      "optional_data1": "",
      "optional_data2": null
    },
    "face_photo": "/9j/4AAQ...",
    "signature_photos": ["/9j/4AAQ..."],
    "additional_personal_details": {
      "full_name_of_holder": "PETER BENJAMIN PARKER",
      "other_names": [],
      "personal_number": null,
      "full_date_of_birth": "20010810",
      "place_of_birth": "NEW YORK USA",
      "permanent_address": null,
      "telephone": null,
      "profession": null,
      "title": null,
      "personal_summary": null,
      "proof_of_citizenship_image": null,
      "other_valid_travel_document_numbers": null,
      "custody_information": null
    },
    "additional_document_details": {
      "issuing_authority": "UNITED STATES DEPARTMENT OF STATE",
      "date_of_issue": "20091116",
      "names_of_other_persons": null,
      "endorsements_and_observations": null,
      "tax_or_exit_requirements": null,
      "image_of_front": null,
      "image_of_rear": null,
      "date_and_time_of_personalization": null,
      "personalization_system_serial_number": null
    },
    "passive_authentication": false,
    "passive_authentication_details": {
      "sod_signature_valid": true,
      "document_certificate_valid": false,
      "data_groups_checked": [1, 2, 7, 11, 12, 14, 15],
      "data_groups_with_valid_hash": [1, 2, 7, 11, 12, 14, 15],
      "error": null,
      "all_hashes_valid": true
    },
    "chip_authentication_result": "SUCCESS",
    "active_authentication_result": "UNAVAILABLE",
    "errors": [],
    "files_binary": {
      "dg7": "Z4IGqwIBAV9Dggaj/9j/4AAQSkZ...",
      "dg14": "bgIxAA...",
      "sod": "d4IKgjCCCn4GCSqGSIb3DQEHAqCCCm...",
      "dg12": "bDVcBF8ZXyZfGSFVTklURUQgU1RBVEVTIERFUEFSVE1FTlQgT0YgU1RBVEVfJggyMDA5MTExNg==",
      "dg11": "azpcBl8OXytfEV8OFVBFVEVSIEJFTkpBTUlOIFBBUktFUl8rCDIwMDEwODEwXxEMTkVXIFlPUksgVVNB",
      "dg2": "dYIGKH9hggYjAgEB...",
      "dg1": "YVtfH1hQPFVTQVBBUktFUjw8UEVURVI8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDVTMjgwODA2PDN..."
    }
  },
  "client_validation_id": "69fe774e-50d3-49fc-a285-6fab7665563e"
}

eMRTD ​

The field emrtd_passport contains the Result about the document.

SOD Info ​

Details from the Document Security Object (SOD).

  • hash_algorithm: String E.g. "SHA-256"
  • hash_for_data_group: Object Entry for each Data Group present
    • 1: String Base64 encoded hash value for Data Group 1
    • 2: String Base64 encoded hash value for Data Group 2
    • ...
Example JSON
json
{
  "emrtd_passport": {
    "sod_info": {
      "hash_algorithm": "SHA-256",
      "hash_for_data_group": {
        "1": "B7ZYsPUdx6/77hON2QpI/7Hr36tlH5m+Am0WuzWDFn4=",
        "2": "b4xR1WNjbu5DY67seOpC8OAmkwErnwbsXkJIzTiCuas=",
        ...
      }
    },
    ...
  }
}

MRZ Info ​

MRZ information from Data Group 1.

  • document_type: String "TD1", "TD2" or "TD3"
  • document_code: String "P" for passports
  • issuing_state: String E.g. "USA"
  • primary_identifier: String Usually the family name
  • secondary_identifier: Array<String> Usually the given names
  • nationality: String E.g., "USA"
  • document_number: String String for the document number
  • date_of_birth: String Format: yyMMdd
  • gender: String: String "FEMALE", "MALE" or "UNSPECIFIED"
  • date_of_expiry: String Format: yyMMdd
  • optional_data1: String Optional data field
  • optional_data2: String | null Optional data field (TD1 only)
Example JSON
json
{
  "emrtd_passport": {
    ...
    "mrz_info": {
      "document_type": "TD3",
      "document_code": "P",
      "issuing_state": "USA",
      "primary_identifier": "PARKER",
      "secondary_identifier": ["PETER"],
      "nationality": "USA",
      "document_number": "5S280806",
      "date_of_birth": "010810",
      "gender": "MALE",
      "date_of_expiry": "250718",
      "optional_data1": "",
      "optional_data2": null
    },
    ...
  }
}

Face Photo ​

Base64 encoded JPEG image from DataGroup 2.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "face_photo": "/9j/4AAQ...",
    ...
  }
}

Signature Photos ​

Base64 encoded JPEG image(s) from Data Group 7.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "signature_photos": ["/9j/4AAQ..."],
    ...
  }
}

Additional Personal Details ​

Additional Personal Details from Data Group 11.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "additional_personal_details": {
      "full_name_of_holder": "PETER BENJAMIN PARKER",
      "other_names": [],
      "personal_number": null,
      "full_date_of_birth": "20010810",
      "place_of_birth": "NEW YORK USA",
      "permanent_address": null,
      "telephone": null,
      "profession": null,
      "title": null,
      "personal_summary": null,
      "proof_of_citizenship_image": null,
      "other_valid_travel_document_numbers": null,
      "custody_information": null
    },
    ...
  }
}

Additional Document Details ​

Additional Document Details from Data Group 12.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "additional_document_details": {
      "issuing_authority": "UNITED STATES DEPARTMENT OF STATE",
      "date_of_issue": "20091116",
      "names_of_other_persons": null,
      "endorsements_and_observations": null,
      "tax_or_exit_requirements": null,
      "image_of_front": null,
      "image_of_rear": null,
      "date_and_time_of_personalization": null,
      "personalization_system_serial_number": null
    },
    ...
  }
}

Passive Authentication ​

Boolean indicating the overall Passive Authentication result.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "passive_authentication": false,
    ...
  }
}

Passive Authentication Details ​

  • sod_signature_valid: Boolean | null Whether the Signature of the Document Security Object is verified using the Document Signer Certificate
  • document_certificate_valid: Boolean | null Whether the Document Signing Certificate is signed by a trusted Country Certificate
  • data_groups_checked: Array<Integer> | null Data Groups that were processed
  • data_groups_with_valid_hash: Array<Integer> | null Data Groups with valid hash value
  • error: String | null Error message during passive authentication
  • all_hashes_valid: Boolean | null Whether all checked Data Groups are authentic and unchanged
Example JSON
json
{
  "emrtd_passport": {
    ...
    "passive_authentication_details": {
      "sod_signature_valid": true,
      "document_certificate_valid": false,
      "data_groups_checked": [1, 2, 7, 11, 12, 14, 15],
      "data_groups_with_valid_hash": [1, 2, 7, 11, 12, 14, 15],
      "error": null,
      "all_hashes_valid": true
    },
    ...
  }
}

Note ​

Some fields are null if one of the following errorsFAILED_TO_PARSE_SOD, DATA_GROUPS_HASHED_WITH_UNSUPPORTED_ALGORITHM or SIGNATURE_VERIFY_EXCEPTION occurred.

Chip Authentication Result ​

Chip Authentication result, either SUCCESS, FAILED or UNAVAILABLE.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "chip_authentication_result": "SUCCESS",
    ...
  }
}

Notes: ​

  • The authenticity of Data Group 14 must be verified through Passive Authentication to ensure that the Chip Authentication result is meaningful. (passive_authentication must be true!!).
  • This field is not present in the response of the REST API v4/validate

Active Authentication Result ​

Active Authentication result, either SUCCESS, FAILED or UNAVAILABLE.

Example JSON
json
{
  "emrtd_passport": {
    ...
    "active_authentication_result": "UNAVAILABLE",
    ...
  }
}

Notes: ​

  • The authenticity of Data Group 14 and 15 must be verified through Passive Authentication to ensure that the Chip Authentication result is meaningful. (passive_authentication must be true!!).
  • This field is not present in the response of the REST API v4/validate

Errors ​

Errors that might occur while processing the data.

Error CodeDescription
FAILED_TO_PARSE_SODSOD is available but could not be parsed.
FAILED_TO_PARSE_DG1Data Group 1 is available but could not be parsed.
FAILED_TO_PARSE_DG2Data Group 2 is available but could not be parsed.
FAILED_TO_PARSE_DG7Data Group 7 is available but could not be parsed.
FAILED_TO_PARSE_DG11Data Group 11 is available but could not be parsed.
FAILED_TO_PARSE_DG12Data Group 12 is available but could not be parsed.
FAILED_TO_ENCODE_FACE_PHOTO_AS_JPEGFailed to encode Face Photo as normal JPEG.
FAILED_TO_ENCODE_SIGNATURE_PHOTO_AS_JPEGFailed to encode one or multiple Signature Photos as normal JPEG(s).
Example JSON
json
{
  "emrtd_passport": {
    ...
    "errors": [],
    ...
  }
}

Notes: ​

  • If one of the images could not be encoded as normal JPEG, the field will contain the RAW image bytes. The images are supposed to be encoded as JPEG or JPEG2000 (JP2).

Files Binary ​

Base64 encoded files (binary) (SOD + Data Group).

  • sod: String Binary SOD file, base64 encoded.
  • dg1: String Binary Data Group 1, base64 encoded.
  • dg2: String Binary Data Group 2, base64 encoded.
  • ...
Example JSON
json
{
  "emrtd_passport": {
    ...
    "files_binary": {
      "dg7": "Z4IGqwIBAV9Dggaj/9j/4AAQSkZ...",
      "dg14": "bgIxAA...",
      "sod": "d4IKgjCCCn4GCSqGSIb3DQEHAqCCCm...",
      "dg12": "bDVcBF8ZXyZfGSFVTklURUQgU1RBVEVTIERFUEFSVE1FTlQgT0YgU1RBVEVfJggyMDA5MTExNg==",
      "dg11": "azpcBl8OXytfEV8OFVBFVEVSIEJFTkpBTUlOIFBBUktFUl8rCDIwMDEwODEwXxEMTkVXIFlPUksgVVNB",
      "dg2": "dYIGKH9hggYjAgEB...",
      "dg1": "YVtfH1hQPFVTQVBBUktFUjw8UEVURVI8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDVTMjgwODA2PDN..."
    }
  }
}

Notes: ​

Client Validation ID ​

A (unique) transaction id to map the result to a user/session. This is the validation_id the WebSocket client used.

Example JSON
json
{
  "emrtd_passport": {
    ...
  },
  "client_validation_id": "69fe774e-50d3-49fc-a285-6fab7665563e"
}

Notes: ​