Give us a call
Call us at +41 41 555 20 40
{
"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"
}
The field emrtd_passport
contains the Result about the document.
The sod_info
contains the hashes for all available Data Groups (hash_for_data_group
) and the hash algorithm (hash_algorithm
) used to calculate those hashes.
You can use these values to verify the authenticity and integrity of each Data Group without sending sensitive data to the Document Validation Server. (Only applicable when using the REST API)
The following steps would be necessary:
passive_authentication
was successful.hash_algorithm
.Will be null The Data Group 1 contains the MRZ Info, which will be parsed and returned as mrz_info
. Please note mrz_info
may be null if the file could not be parsed. Please refer to ICAO Doc9303 for details on those MRZ fields.
document_type
document_code
issuing_state
primary_identifier
secondary_identifier
nationality
document_number
date_of_birth
gender
date_of_expiry
optional_data1
optional_data2
Note to the Date of Expiry (date_of_expiry
) in the MRZ Info (Data Group 1): The Date of Expiry from the MRZ is often before the Not After-Date of the Document Certificate. Hence, To check if a document is expired, check the Date of Expiry from the MRZ/DG1.
The Data Group 2 contains at least one photo of the face of the document holder. This photo will be extracted and returned as a Base64 encoded JPEG. Please note face_photo
may be null if the file could not be parsed.
The Data Group 7 will contain one or more photo(s) of the signature or usual mark. This/These photo(s) will be extracted and returned as signature_photos
. The photos will be Base64 encoded JPEGs.
The Data Group 11 will contain additional personal details. This details will be parsed and returned as additional_personal_details
.
The Data Group 12 will contain additional document details. This details will be parsed and returned as additional_document_details
.
The overall result of passive Authentication will be returned in field passive_authentication
.
passive_authentication
Overall Passive Authentication result. Whether the integrity and authenticity of the data could be verified using a trusted country certificate.
Possible values: {true, false}
The details of each Passive Authentication step will be returned as passive_authentication_details
.
document_certificate_valid
sod_signature_valid
data_groups_checked
data_groups_with_valid_hash
all_hashes_valid
error
sod_signature_valid
will be false. However, the signature could not be verified because of an exception.Please note that some fields may be null, if one of the errors {“FAILED_TO_PARSE_SOD”, “DATA_GROUPS_HASHED_WITH_UNSUPPORTED_ALGORITHM” or “SIGNATURE_VERIFY_EXCEPTION”} occurred.
Please see security_mechanisms.html and for a detailed description of Passive Authentication.
Verifies that the Chip is not cloned. The Chip Authentication protocol is optional and may not be supported by all eMRTDs.
Possible Values are: { “SUCCESS”, “FAILED”, “UNAVAILABLE” }. If the eMRTD does not support Chip Authentication the result will be “UNAVAILABLE”.
The Chip Authentication Result is only meaningful if the integrity and authenticity of DG14 is confirmed (passive_authentication must be true!!).
Please see security_mechanisms.html and for a detailed description of Chip Authentication.
The field chip_authentication_result
is not present in the response of the REST endpoint v4/validate
, because Chip Authentication requires the server to access to the Chip directly.
Verifies that the Chip is not cloned. The Active Authentication protocol is optional and may not be supported by all eMRTDs.
Possible Values are: { “SUCCESS”, “FAILED”, “UNAVAILABLE” }. If the eMRTD does not support Active Authentication the result will be “UNAVAILABLE”.
The Active Authentication Result is only valid if the integrity and authenticity of DG15 (and DG14 if present) is confirmed (passive_authentication must be true!!).
Please see security_mechanisms.html and for a detailed description of Active Authentication.
The field active_authentication_result
is not present in the response of the REST endpoint v4/validate
.
The field errors
may contain other general errors that occurred while processing the data.
Possible values are explained below:
"FAILED_TO_PARSE_SOD"
"FAILED_TO_PARSE_DG1", "FAILED_TO_PARSE_DG2", "FAILED_TO_PARSE_DG7", "FAILED_TO_PARSE_DG11", "FAILED_TO_PARSE_DG12"
FAILED_TO_ENCODE_FACE_PHOTO_AS_JPEG
face_photo
anyways.FAILED_TO_ENCODE_SIGNATURE_PHOTO_AS_JPEG
signature_photos
anyway.The field files_binary
contains the SOD and the DataGroup files in binary form, base64 encoded. Please refer to ICAO Doc9303 – Part 10 if you are interested in the encoding of these files.
The field files_binary
is only present if the corresponding environment variable is set to “true”. Please see INSTALL.html.
The field files_binary
is not present in the response of the REST endpoint v4/validate
.
This emrtd_passport
JSON is designed to contain all relevant infos about a ICAO eMRTD documents and the relevant infos about Check Results (Passive Authentication, Chip Authentication, Active Authentication).
However, we might add further additional fields to this result JSON in the future. Your Parser of the emrtd_passport
JSON Object should be implemented in a way, that additional fields do not break it. In the case a field is added, we will provide an updated Documentation to you.
The field client_validation_id
is a (unique) transaction id to identify the verification and to map the result to a user/session. This is the validation_id
the WebSocket client used.
The field client_validation_id
is not present in the response of the REST endpoint v4/validate
.
Give us a call
Call us at +41 41 555 20 40
Contact by e-mail
Contact us via our contact form.
Personal meeting
Arrange a personal meeting.