Photo ID Matching Guide
Perform a Certified Liveness Check, Match the Liveness-proven 3D FaceMap to the user's 2D Photo ID, and then OCR the text from the Document.
To match 3D FaceMaps with images from an NFC Chip, use FaceTec's Face Portrait/NFC API.
Introduction and Background
Live Users can be matched to their Photo ID with very high accuracy due to the ability of FaceTec's 3D AI to recreate any 2D photo of a User from a 3D FaceMap. FaceTec’s ID Scan Technology uses real-time processing and proprietary Computer Vision & AI algorithms to overcome the most prevalent image processing challenges for Identity Documents, such as glare, low image quality, sizing problems, and general wear-and-tear.
Features and Notes:
The Photo ID Match process only succeeds if the User passes Liveness and the Live User matches the face present on the Photo ID.
FaceTec Device SDKs provide access to 3 high-resolution photos of the Photo ID Document via the
FaceTecIDScanResultresult object. These photos can be saved for auditing purposes and sent via Server-to-Server API to eKYC vendors for OCR and document authenticity checks.Usage of the FaceTec Device SDK interface for the FaceTec 3D FaceMap and the ID Document Scan is required.
The full code for the Photo ID Match process is provided in the Sample App.
User’s 3D Face-to-Photo ID Match Levels (probabilities) are returned in the FaceTec Server.
Info on FaceTec's Photo ID OCR technology can be found in the OCR Photo ID Guide
Photo ID Match Levels
FaceTec 3D:2D Photo Match Levels & associated accuracy:
Match Level 7 - 1/500,000 FAR
Match Level 6 - 1/100,000 FAR
Match Level 5 - 1/10,000 FAR
Match Level 4 - 1/1,000 FAR
Match Level 3 - 1/500 FAR
Match Level 2 - 1/250 FAR
Match Level 1 - 1/100 FAR
Match Level 0 - Non-match
* The False Reject Rates vary with types of Anti-tampering on IDs and the age of the Photo on ID.
Getting Started
To get started with Photo ID Matching, check out the PhotoIDMatchProcessor class in the Sample Apps located on the downloads page.
The components of the solution are:
Your application retrieves the FaceTec SDK ID Scan object. The FaceTec SDK ID Scan object is a proprietary and encrypted-by-default piece of data that is only usable by the FaceTec Server.
Your application retrieves the FaceTec SDK Audit Trail Images (images from the User Session) and ID Scan Front & Back (if applicable) Images.
Your application uploads the FaceTec ID Scan object to your secure web service.
Your secure web service determines the appropriate externalDatabaseRefID* for fetching the User's 3D FaceMap and then passes both the FaceTec ID Scan and the externalDatabaseRefID* to the FaceTec Server via /match-3d-2d-idscan.
The Match Level is returned along with other metrics, and Your App determines how to proceed based on the results and your business logic.
* Note: The externalDatabaseRefID is 100% controlled by your business logic and code. FaceTec does not set this internally (but we do demonstrate how to set it in our samples). Setting & Retrieving the externalDatabaseRefID should be done in Server-Side Code, not your Device-Side code.
ID Scans
High-Resolution Images (JPEGs) of the Photo ID are provided to Developers from each ID Scan session.

Info on FaceTec's Photo ID OCR technology can be found in the OCR Photo ID Guide.
Recommended Use: ID Scan
With standalone ID Scans, you can capture images of Photo IDs without performing a Liveness Check first, or at all. In many cases, only the document needs to be collected and processed at that time, so we allow Developers to choose if and when they perform Liveness Checks. ID Scans can be performed at any time by using our Standalone ID Scans.
Setting and Building Logic for Match Levels
You are responsible for setting Match Level Thresholds for Scan Acceptance in Your Application. The default minimum Match Level is set to Match Level 4 (1/1,000 FAR). Please note that at 1/1,000 FAR with 8 Billion+ People in the World, (8,000,000,000 / 1,000) = 8,000,000 other People in the World will receive Match Level 4 against a given comparison. Because of this, FaceTec does not consider Match Levels 1-5 a "strong match". Match Level 6 (1/100,000 FAR) is a relatively strong match. Match Level 7 is a strong match, but still not nearly as strong as performing 3D:3D Matching (1/125,000,000 FAR).
Match Levels returned by FaceTec are mostly controlled by the quality of the Face Image on the Document itself, which can vary widely depending on the Document Type being scanned. For instance, a Document Type that generally has Low-Quality Face Images, or Documents that are weathered, damaged, or scanned poorly by the User, will return lower Match Levels.
In general, FaceTec recommends setting the highest possible Match Level that you can for your scenario. In many cases, asking the User to Retry to perform another Scan will help guide Users to provide better Scans that can achieve higher Match Levels. Retries can be requested of the User dynamically using the FORCE_RETRY ID Scan Behavior Modifier, and usage of this API is strongly encouraged if higher Match Levels are needed for your use case.
Important Note: If FaceTec proceeds to IDScan completion, it does not mean that FaceTec has "verified the identity" or "authenticated" a User.
Conditionally Skip the ID Scan
In some cases, you may wish to perform the 3D Liveness Check and, based on custom backend logic, skip the FaceTec ID Scan UI.
To skip the ID Scan UI after a Successful 3D Liveness Check, call the FaceTecFaceScanResultCallback.proceedToNextStep function, passing in FaceTecSDK.FaceTecIDScanNextStep.Skip, as shown in the following code snippet:
faceScanWasSuccessful = faceScanResultCallback.proceedToNextStep(scanResultBlob, FaceTecSDK.FaceTecIDScanNextStep.Skip);Redacting Fields
Developers can choose which fields they would like to redact for ID Scans. To learn how to redact fields, see ID Scan - Redacting Fields.
ID Scan: Advanced Behavior Customization
To customize the logic and behavior of FaceTec's ID Scans, the proper Retry & Rejection Modifier or Logic Flow Modifier will need to be used.
ID Scan: Additional Images in ID Scan Results
By default, the /match-3d-2d-idscan API will save additional images from the ID Scan Results, such as the Front and Back ID Scan Crops, to Your Team's Database. To minimize the Network Load, these images are not included in the API Response. Your Team needs to add code to the FaceTec Server to modify this behavior. However, this is typically not recommended, as it can negatively impact API Performance and Response Time.
Locale Dependent Document Expiration/Invalidation
Various countries and municipalities have their own unique process for marking IDs as expired or invalid. For instance, some governments may punch a hole in the ID, while others may cut off a corner. As there are many viable ways for a country to mark an ID as invalid, the FaceTec SDKs cannot detect all of them. For this reason, we recommend that Users primarily rely on the expiration date to determine the validity of an ID. However, if there is a specific Document Expiration/Invalidation Process that has not been caught by the FaceTec SDK, please let us know in a Support Request.