ETSI certified identity verification
Start here
With the emergence of different identity verifications and continuously evolving fraud, regulation is becoming stricter to ensure that verification solutions meet a high degree of assurance and are deemed secure enough to be deployed across the European Union.
For global businesses needing to comply with AML in Europe, the regulatory landscape is extremely fragmented and challenging to navigate. Entities who offer or want to offer European customers regulated products such as bank accounts, loans or mortgages will need to comply with a patchwork of national and EU-wide directives and laws.
Onfido offers a product package which helps customers seeking compliance with regulations by being certified with EU standards. In particular:
- ETSI TS 119 461
- ETSI EN 319 401
- eIDAS Regulation EU 2014/910
In this product guide we give an overview of this ETSI certified product package, which together meets ETSI requirements of Remote Identity Proofing.
ETSI certified identity verification - our product package
Onfido's Real Identity Platform leverages Document, Biometric and Database verifications together with Passive Fraud Signals in an ETSI certified package of products to ensure customers are adhering to European regulations.
These products include:
Document Video Report
Document verification leverages multiple techniques, including specially trained Machine Learning powered algorithms, to classify documents, extract their data and verify their authenticity through specific data integrity and visual authenticity checks. When required, document verification is supported by a team of highly trained human analysts.
In addition to capturing a photo of the document, Document Video Report also captures a video of the document through the SDK and provides the ability to download the video through our API.
You can read more about Document Video Report here.
Facial Similarity Report - Motion
Facial Similarity Motion provides the highest assurance for biometric comparison and liveness detection with low friction and high performance. The user records a video of themselves performing simple head movements. Facial Similarity Motion has been certified iBeta level 2 for PAD (Presentation Attack Detection).
You can read more about the Facial Similarity Report - Motion here.
Known Faces Report
The Known Faces report compares a specific applicant's likeness in their most recent live face capture to live face captures from the last 1 year of applicant faces processed through your Onfido client's account.
It alerts clients to faces which have already been through their identity verification flow, so they can catch repeat identity fraud attempts and prevent duplicate accounts from being opened.
Known Faces, along with the other products listed here, are part of the certified product package and thus required to be compliant.
You can read more about the Known Faces Report here.
Device Intelligence Report
Device Intelligence uses non-visual passive signals to identify fraudulent activity and protect against bad actors.
This includes the verification of the device, app and network's integrity and their connection with recent fraudulent activity.
You can read more about the Device Intelligence Report here.
Studio
Onfido Studio enables clients to build and manage multiple identity verification journeys to meet customer and market requirements. Onfido Studio allows you to orchestrate verification flows using the entire verification suite as well as flexible, no-code workflows.
A specific feature has been built into Studio which provides records concerning the operation of services for the purpose of providing evidence of the correct operation of Onfido software on the applicant's device and Onfido platform, for legal proceedings in accordance with ETSI EN 319 401. This feature is called the Evidence File, described in more detail below.
You can read more about Studio here.
Compatibility
Due to the custom features introduced to comply with ETSI standards, customers are required to use the products detailed above with the following minimum Smart Capture SDK and API versions:
Smart Capture SDK:
- iOS 28.3.0 or above (recommended: latest)
- Android 16.3.0 or above (recommended: latest)
- Web 12.2.1 or above (recommended: latest)
- Flutter 3.3.0 or above (recommended: latest)
- React Native 8.2.0 or above (recommended: latest)
You can read more about the Smart Capture SDK here.
Onfido API: v3.6 (reference documentation can be found here).
Evidence file overview
For each identity verification request, when the request has been completed (whether approved or rejected), Onfido generates and seals an audit trail that contains the description of the identity proofing process and results.
This audit trail is called an "evidence file" and is stored in a specific file format that includes evidence data and an Onfido qualified electronic seal.
Producing this evidence is required by ETSI standards and will allow Onfido's customers to demonstrate the validity of an identity verification process if required.
Evidence file structure
Onfido organises the information found in an evidence file in the following sections:
Section | Description |
---|---|
Applicant | Applicant data provided by customer or applicant |
Identity evidences collected | Details of the identity document capture, including a timestamp of the capture and an electronic footprint of media files stored to bind media files with an evidence file |
Face captured | Details of the applicant face capture, including a timestamp of the capture and an electronic footprint of media files stored to bind media files with an evidence file |
Result of the identity proofing | Overall result of the identity verification and results of each specific validation (see subsections below) |
Attribute and evidence validation | Results of device verification and identity document validation |
Binding to applicant validation | Results of face verification and known faces verification |
Identity proofing process | Step-by-step description of the identity verification process with timestamps and detailed results, including capture steps on the applicant's device and verification reports processed automatically and manually on the Onfido platform |
How to retrieve an evidence file
The evidence file is generated automatically after a workflow run has been completed.
It's important to note that evidence file generation can take a couple of seconds after the workflow run has been completed. As such, evidence files may not be immediately available after receiving notification that a workflow run has completed.
Evidence files can be retrieved by making a call to the Onfido API using a dedicated endpoint, providing the ID of the associated workflow run:
GET /v3.6/evidence_file?workflow_run_id={workflow_run_id}
How to extract data from evidence file
Onfido stores the evidence file as a p7m file. To extract data from this file after retrieving it, you can open it with a text editor and copy the JSON structure included in the file.
An example evidence file (in JSON format) can be found below:
Click here to see an example evidence file
{
"applicant": {
"uuid": "2863cfd4-44dc-4cf0-90b2-f8667e822ece",
"last_name": "Last Name",
"first_name": "First Name",
"dob": "YYYY-MM-DD",
"addresses": [],
"email": "email@email.com",
"telephone": "1111111111"
},
"identity_evidences_collected": {
"identity_document": [
{
"uuid": "4c533cc0-861d-4d85-bf9c-1325966d43ac",
"content_type": "image/jpeg",
"side": "back",
"document_type": "national_identity_card",
"issuing_country": "FRA",
"created_at": "2023-04-27T13:53:52.201+00:00",
"video_attached": true,
"video_checksum": "7fc72419abae7a82770287ffcca917e5babac5ea49854dc57bf3d753b224f18a",
"video_checksum_algorithm": "sha256",
"checksum": "1f783817a6103221dfe5497002a0e65defbf393a7c789899b715c1ba0c56e9e2",
"checksum_algorithm": "sha256",
"verified_at": "2023-04-27T13:54:18.000+00:00"
},
{
"uuid": "09938ae3-e560-4e98-8d6b-9fbd316439ad",
"content_type": "image/jpeg",
"side": "front",
"document_type": "national_identity_card",
"issuing_country": "FRA",
"created_at": "2023-04-27T13:53:39.392+00:00",
"video_attached": true,
"video_checksum": "f7631a20ea04e1aebce649cdf18dfcf80607caada24fdf8aee4bcc19f9cb0e34",
"video_checksum_algorithm": "sha256",
"checksum": "5f836b9897d9e48e3a66705372eae3a5b9f1aaae1156c71876e5dce588743ed1",
"checksum_algorithm": "sha256",
"verified_at": "2023-04-27T13:54:18.000+00:00"
}
]
},
"face_captured": {
"uuid": "7ba22050-7316-4045-a4a0-74fc084a6257",
"created_at": "2023-04-27T13:54:05.474+00:00",
"media_type": "liveness",
"file_name": "7ba22050-7316-4045-a4a0-74fc084a6257.webm",
"content_type": "video/webm",
"checksum": "453acd1503dc1f57611f410c8c842fcee65b7731afbe7fed9bcfd7b120864c72",
"checksum_algorithm": "sha256",
"verified_at": "2023-04-27T13:54:05.000+00:00"
},
"result_of_the_identity_proofing": {
// BASED ON {{baseUrl}}/checks/{{check_id}} output //
"id": "53481497-c130-430e-a4ce-13e87b018e94",
"created_at": "2023-04-18T11:39:39Z",
"status": "complete",
"result": "consider",
"version": "3.6",
"report_ids": [
"5e816286-2dd3-461a-88e8-c3a6025c5d09",
"0afb3c12-638b-4e71-8c46-9152b6789fb7"
],
"applicant_id": "0b7d7ac3-e2a3-4d93-ae78-d0866b916734",
// BASED ON {{baseUrl}}/checks/{{check_id output}} //
"requester": "{{ORGANIZATION ACCOUNT NAME}}",
"attribute_and_evidence_validation": {
"result_of_device_validation": {
"result": "clear"
// RESULT OF DEVICE INTELLIGENCE REPORT IF THIS REPORT IS INCLUDED IN THE CHECK
},
"result_of_document_validation": {
"result": "clear",
"sub_result": "clear"
// RESULT OF DOCUMENT REPORT IF THIS REPORT IS INCLUDED IN THE CHECK
}
},
"binding_to_applicant_validation": {
"result_of_face_verification": {
"result": "clear"
// RESULT OF FACIAL SIMILARITY REPORT IF THIS REPORT IS INCLUDED IN THE CHECK
},
"result_of_known_faces_validation": {
"result": "consider"
// RESULT OF KNOWN FACES REPORT IF THIS REPORT IS INCLUDED IN THE CHECK
}
}
},
"identity_proofing_process": [ // BASED ON {{baseUrl}}//reports?check_id={{check_id}} output //
{
"step": "Attribute and evidence validation - identity document validation",
// IF report "name" == "document" AND IF THIS REPORT IS INCLUDED IN THE CHECK
"created_at": "2022-04-14T13:35:35Z",
"documents": [
{
"id": "b46a67c5-8f6f-4e49-b42d-dcd2f4ca4e60"
}
],
"id": "7257453e-ce5a-45c9-9456-811239b99279",
"name": "document",
"properties": {
"first_name": "NATACHA",
"last_name": "SPECIMEN ABB",
"issuing_country": "FRA",
"document_numbers": [
{
"type": "document_number",
"value": "90RF02331"
}
],
"document_type": "passport",
"gender": "Female",
"nationality": "FRA",
"date_of_birth": "1973-07-12",
"issuing_date": "2019-03-05",
"date_of_expiry": "2029-03-03",
"place_of_birth": "TOULON",
"mrz_line1": "P<FRASPECIMEN<ABB<<NATACHA<<<<<<<<<<<<<<<<<<",
"mrz_line2": "90RF023818FRA7307122F2903035<<<<<<<<<<<<<<02"
},
"result": "consider",
"status": "complete",
"sub_result": "suspected",
"breakdown": {
"data_comparison": {
"result": "consider",
"breakdown": {
"date_of_expiry": {
"result": null,
"properties": {}
},
"issuing_country": {
"result": null,
"properties": {}
},
"document_type": {
"result": null,
"properties": {}
},
"document_numbers": {
"result": null,
"properties": {}
},
"gender": {
"result": null,
"properties": {}
},
"date_of_birth": {
"result": null,
"properties": {}
},
"last_name": {
"result": "consider",
"properties": {}
},
"first_name": {
"result": "consider",
"properties": {}
}
}
},
"data_consistency": {
"result": "clear",
"breakdown": {
"multiple_data_sources_present": {
"result": null,
"properties": {}
},
"date_of_expiry": {
"result": "clear",
"properties": {}
},
"document_type": {
"result": "clear",
"properties": {}
},
"nationality": {
"result": null,
"properties": {}
},
"issuing_country": {
"result": "clear",
"properties": {}
},
"document_numbers": {
"result": "clear",
"properties": {}
},
"gender": {
"result": "clear",
"properties": {}
},
"date_of_birth": {
"result": "clear",
"properties": {}
},
"last_name": {
"result": "clear",
"properties": {}
},
"first_name": {
"result": "clear",
"properties": {}
}
}
},
"compromised_document": {
"result": "clear"
},
"age_validation": {
"result": "clear",
"breakdown": {
"minimum_accepted_age": {
"result": "clear",
"properties": {}
}
}
},
"image_integrity": {
"result": "clear",
"breakdown": {
"supported_document": {
"result": "clear",
"properties": {}
},
"image_quality": {
"result": "clear",
"properties": {}
},
"colour_picture": {
"result": "clear",
"properties": {}
},
"conclusive_document_quality": {
"result": "clear",
"properties": {
"obscured_data_points": "clear",
"obscured_security_features": "clear",
"abnormal_document_features": "clear",
"watermarks_digital_text_overlay": "clear",
"corner_removed": "clear",
"punctured_document": "clear",
"digital_document": "clear",
"missing_back": "clear"
}
}
}
},
"police_record": {
"result": "clear"
},
"issuing_authority": {
"result": null,
"breakdown": {
"nfc_passive_authentication": {
"result": null,
"properties": {}
},
"nfc_active_authentication": {
"result": null,
"properties": {}
}
}
},
"data_validation": {
"result": "clear",
"breakdown": {
"document_expiration": {
"result": "clear",
"properties": {}
},
"gender": {
"result": "clear",
"properties": {}
},
"document_numbers": {
"result": "clear",
"properties": {
"document_number": "clear"
}
},
"expiry_date": {
"result": "clear",
"properties": {}
},
"date_of_birth": {
"result": "clear",
"properties": {}
},
"mrz": {
"result": "clear",
"properties": {}
},
"barcode": {
"result": null,
"properties": {}
}
}
},
"visual_authenticity": {
"result": "consider",
"breakdown": {
"other": {
"result": "consider",
"properties": {}
},
"original_document_present": {
"result": "clear",
"properties": {
"photo_of_screen": "clear",
"screenshot": "clear",
"document_on_printed_paper": "clear",
"scan": "clear"
}
},
"fonts": {
"result": "clear",
"properties": {}
},
"template": {
"result": "consider",
"properties": {}
},
"face_detection": {
"result": "clear",
"properties": {}
},
"digital_tampering": {
"result": "clear",
"properties": {}
},
"picture_face_integrity": {
"result": "clear",
"properties": {}
},
"security_features": {
"result": "clear",
"properties": {}
}
}
}
},
"manual_processing_details": {
"tasks": []
},
"verification_process": "automatic"
},
{
"step": "Binding to applicant - face verification", // IF report "name" == "facial_similarity_video"
// or "facial_similarity_photo"
// or "facial_similarity_photo_fully_auto"
// or "facial_similarity_motion" AND IF THIS REPORT IS INCLUDED IN THE CHECK
"created_at": "2022-04-14T13:35:35Z",
"documents": [
{
"id": "a45090f6-5f2d-4684-9540-4889b9149bcb"
},
{
"id": "4ca80f46-c989-4e3c-a862-3777a826c690"
}
],
"id": "48c3af21-64e3-42cb-a4a5-15ca9421cc63",
"name": "facial_similarity_video",
"properties": {},
"result": "consider",
"status": "complete",
"breakdown": {
"visual_authenticity": {
"result": "clear",
"breakdown": {
"spoofing_detection": {
"result": "clear",
"properties": {}
},
"liveness_detected": {
"result": null,
"properties": {}
}
}
},
"image_integrity": {
"result": "clear",
"breakdown": {
"source_integrity": {
"result": "clear",
"properties": {}
},
"face_detected": {
"result": "clear",
"properties": {}
}
}
},
"face_comparison": {
"result": "consider",
"breakdown": {
"face_match": {
"result": "consider",
"properties": {
"document_id": "b46a67c5-8f6f-4e49-b42d-dcd2f4ca4e60",
"score": 0.2136
}
}
}
}
},
"manual_processing_details": {
"tasks": []
},
"verification_process": "automatic"
},
{
"step": "Attribute and evidence validation - device validation",
// IF report "name" == "device_intelligence" AND IF THIS REPORT IS INCLUDED IN THE CHECK
"id": "0afb3c12-638b-4e71-8c46-9152b6789fb7",
"created_at": "2023-04-18T11:39:39Z",
"status": "complete",
"result": "clear",
"documents": [],
"name": "device_intelligence",
"properties": {
"device": {
"data_available": true,
"randomized_device": false,
"fake_network_request": false,
"ip_reputation": "NOT_ENOUGH_DATA",
"os_anomaly": null,
"sdk_source": "onfido-ios-sdk",
"remote_software": null,
"authentication_type": "sdk_token",
"raw_model": "iPhone 13 Pro",
"document_capture": "live",
"true_os": null,
"rooted": null,
"emulator": false,
"biometric_capture": "unknown_method",
"device_fingerprint_reuse": null,
"os": "iOS",
"single_device_used": true,
"sdk_version": "28.3.0"
},
"ip": {
"vpn_detection": null,
"address": "82.132.213.24",
"type": null,
"proxy_detection": null
},
"geolocation": {
"city": "London",
"region": "unknown",
"country": "GBR"
}
},
"breakdown": {
"device": {
"result": "clear",
"breakdown": {
"device_integrity": {
"result": "clear",
"properties": {}
},
"application_authenticity": {
"result": "clear",
"properties": {}
},
"device_reputation": {
"result": "clear",
"properties": {}
}
}
}
},
"manual_processing_details": {
"tasks": []
},
"verification_process": "automatic"
},
{
"step": "Binding to applicant - known faces validation",
// IF report "name" == "known_faces" AND IF THIS REPORT IS INCLUDED IN THE CHECK
"created_at": "2022-04-14T13:45:31Z",
"id": "488ea397-2e0f-48ee-8a5a-cecc49544083",
"name": "known_faces",
"properties": {
"matches": [
{
"applicant_id": "a97c8ae1-417c-4576-bd16-074af5ac0f25",
"score": 0.9582,
"media_id": "51f5c761-9e84-4863-a75b-671840b1f264",
"media_type": "live_photos"
},
{
"applicant_id": "5abe7ded-785d-4650-8107-54fad47e7e2d",
"score": 0.9579,
"media_id": "423309b6-ab4b-4883-b7c8-7dd10335287a",
"media_type": "live_photos"
},
{
"applicant_id": "0dba97ab-0e28-41d0-81f3-13615f9ce82f",
"score": 0.9564,
"media_id": "bfcf9ab8-cf4c-421d-97d8-0ae33050b11f",
"media_type": "live_photos"
},
{
"applicant_id": "99289620-0918-4ecf-b671-b1f0130f7fde",
"score": 0.9552,
"media_id": "c2b06998-f584-41e3-96f6-d8b844c2d914",
"media_type": "live_photos"
},
{
"applicant_id": "a97c8ae1-417c-4576-bd16-074af5ac0f25",
"score": 0.9508,
"media_id": "30220a02-be09-4727-a367-77135a9f2434",
"media_type": "live_photos"
},
{
"applicant_id": "cbbe1b4d-129a-465b-bf05-5ae0675140a0",
"score": 0.9487,
"media_id": "2aaddb40-dd8b-4be8-a471-4572fcc199e6",
"media_type": "live_photos"
},
{
"applicant_id": "cbbe1b4d-129a-465b-bf05-5ae0675140a0",
"score": 0.9417,
"media_id": "171ff11f-6ee8-4917-a8b8-b3b357fcc63c",
"media_type": "live_photos"
},
{
"applicant_id": "f80a68a7-e3c5-4a2c-bf30-c3a93e833724",
"score": 0.9378,
"media_id": "4becc52e-c3b0-46f1-9485-62ccbdb71c54",
"media_type": "live_photos"
},
{
"applicant_id": "a97c8ae1-417c-4576-bd16-074af5ac0f25",
"score": 0.9361,
"media_id": "b569eb64-8b28-4211-affb-86be58017752",
"media_type": "live_videos"
},
{
"applicant_id": "0189abcf-c8ed-46dc-a825-d543d86d078b",
"score": 0.9265,
"media_id": "a4e825b3-0cae-4b81-bd1c-bf2f8a0f1184",
"media_type": "live_photos"
},
{
"applicant_id": "8522d1c5-293f-4707-80dd-8321075953a2",
"score": 0.9095,
"media_id": "54aea1be-d07f-4e2f-adc8-3d7e2440ec8d",
"media_type": "live_photos"
},
{
"applicant_id": "e8049d70-8809-43ae-8586-8380bd9b712e",
"score": 0.9088,
"media_id": "856b6060-03c2-492e-ad27-dcf01528b1f7",
"media_type": "live_photos"
},
{
"applicant_id": "7d236aba-bcd1-461f-922d-b0fe40eda485",
"score": 0.9063,
"media_id": "6855d8f3-bb8d-473f-836a-8b07b901c66f",
"media_type": "live_videos"
},
{
"applicant_id": "775d24d9-769a-4d73-b750-87cf4e815947",
"score": 0.8736,
"media_id": "bab99006-4d76-43fd-a597-c02c15831a07",
"media_type": "live_photos"
},
{
"applicant_id": "b1ec1cf5-ea8f-4e96-a1a6-96d594a80944",
"score": 0.8644,
"media_id": "1000e1f6-90be-4c78-bf7a-9bb8feba23cc",
"media_type": "live_photos"
},
{
"applicant_id": "e6defd07-87c9-4911-ae5b-50fc2a10c32e",
"score": 0.863,
"media_id": "5f0ed8a7-bacc-4162-9ca2-ba0db3aa5716",
"media_type": "live_videos"
}
]
},
"result": "consider",
"status": "complete",
"breakdown": {
"previously_seen_faces": {
"result": "consider"
},
"image_integrity": {
"result": "clear"
}
},
"manual_processing_details": {
"tasks": []
},
"verification_process": "automatic"
}
]
}
How to validate the signature of an evidence file
Evidence files are sealed with a qualified certificate. To validate this signature, you can use an online tool provided by the EU. Upload the p7m file into the "Signed file" input and click the "Submit" button. You will then see the signature validation results.
How to compare the integrity of media files
To compare the integrity of media files, you need to download related media files from the Onfido platform, using your Dashboard or via API.
Then you will have to calculate the footprint (or hash) of each media file using the algorithm indicated into the following JSON sections (SHA256):
- Document image captured:
identity_evidences_collected.identity_document.checksum_algorithm
- Document video captured:
identity_evidences_collected.identity_document.video_checksum_algorithm
- Face video captured:
face_captured.checksum_algorithm
Please note: You can find online services to calculate footprint.
Then you can compare hashes you produced with hashes included in the evidence file. If they match, you have demonstrated the media files are authentic:
- Document image captured:
identity_evidences_collected.identity_document.checksum
- Document video captured:
identity_evidences_collected.identity_document.video_checksum
- Face video captured:
face_captured.checksum
Storage of the evidence file
Onfido applies the same data deletion policy to evidence files as it does to Applicants and Checks, and will store the evidence file for the lifetime of the applicant's data. Customers are responsible for retrieving the file via the exposed endpoint and storing it as long as it is needed.
Find out more
For more information about ETSI regulations and our compliant product package, contact your Customer Success Manager or Account Manager.
Onfido's onboarding team is also more than happy to assist setting up ETSI compliant identity verification workflows.