Frequently Asked Questions

A list of commonly asked questions you might have as you explore the FaceTec SDK.

Here are the general categories of FAQs we receive:


Encryption Key Questions

Where can I find My Device SDK Encryption Keys?

You'll find your Device SDK Encryption Keys on Your Account Page.

Do the FaceTec Device SDK or FaceTec Server Encryption Keys expire?

Yes, Encryption Keys expire about every 90 days and must be rotated out with new ones.

Can the FaceTec SDKs and Encryption Keys be downloaded automatically?

No, automated downloads of the FaceTec SDKs and Encryption Keys are not supported. To update Keys or download the Latest Versions, the Developer must physically log into the FaceTec Developer Site to see FaceTec's Announcements, Release Notes, Version Alerts, and other notifications, then download and update the SDKs and Encryption Keys. FaceTec may make important changes to the download process that should be utilized.

Can I modify the Production Key that is issued by FaceTec?

No, this will prevent Your Application from initializing successfully. A common reason you may want to edit the Production Key is to change the App/Package/Domain. In this case, you should visit Your Account Page, update Your App/Package/Domain, and then contact FaceTec to regenerate Your Keys. Editing the Expiration Date of Your Production Keys is not allowed and will prevent Your Application from initializing successfully.

Do FaceTec SDKs support Per-User Encryption/Decryption Keys?

No. The FaceTec SDKs and APIs do not directly support this. However, this can be implemented by Your Team outside of the context of the FaceTec SDKs to add a new layer of security to Your Application's Data.

Can I add my own Encryption/Decryption System on top of FaceTec's Default Encryption?

Yes. Although FaceTec's Default Encryption provides Baseline Security, Your Team can implement its own Custom Encryption/Decryption Scheme as an Additional Layer to enhance security and further protect Your Team's Data.

Similar to how FaceTec's Software works, Your Team can Encrypt data on the Device Side by using Your Team's Public Key and decrypt data by using the corresponding Private Key.

Can I decrypt 3D FaceScans & 3D FaceMaps?

No. 3D FaceScans and 3D FaceMaps are encrypted and in a proprietary format. 

Is the process for rotating Production Keys different in the v10 SDKs compared to v9?

In v9, Production Keys had to be updated across all deployed components (FaceTec Server, Usage Log Server, Android SDK, Browser SDK, and iOS SDK). This often led to some SDKs not having their Production Keys properly updated, resulting in outages caused by expired Production Keys.

With v10, FaceTec simplified the Production Keys rotation process by centralizing it within the Usage Log Server config.yml file. This reduces operational complexity, helps prevent outages due to running SDKs with expired Production Keys, and speeds up the Keys rotation process.


Algorithms & Accuracy Questions

For Matching, which range of FAR/FRR do FaceTec SDKs operate?

FaceTec 3D to 3D Matching Algorithms operate upwards of 1/125,00,000 FAR with less than 1% FRR depending on lighting conditions and camera quality. Please see the FaceTec 3D Face Matching Whitepaper for more details.

For 3D Liveness, which range of FAR/FRR do FaceTec SDKs operate?

Usability and Success Rates are documented here. FaceTec Liveness FAR (False Accept Rate for Spoofs) is 0% - a threshold at which no single Spoof artifact is known to bypass the FaceTec 3D Liveness Detection Algorithms.

For Matching 3D to 3D, can thresholds be changed depending on My Security or Usability Opinions?

For 3D to 3D Matching, thresholds cannot be altered, and 3D to 3D Matching can only succeed if and only if the two 3D FaceMaps Match at better than 1/125,000,000 FAR and both 3D FaceMaps come from Live Humans. FaceTec does not allow 3rd parties to change thresholds since this would cause different security levels in different implementations, which would impact the reputation of FaceTec's Customers and Partners, as well as FaceTec itself.

For 3D Liveness, can thresholds be changed depending on My Security or Usability Opinions?

Altering Liveness Detection thresholds is not allowed. FaceTec does not allow 3rd parties to change thresholds since this would cause different security levels in different implementations, which would impact the reputation of FaceTec's Customers and Partners, as well as FaceTec itself.

For Photo ID Matching, can thresholds be changed depending on My Security or Usability Opinions?

Yes, for Photo ID Matching, FaceTec SDKs return a Match Level Result that corresponds to the strength of the Match, up to 1/500,000 FAR.

I got a False Match in a 1:N Search / 3D:3D Matching. What does that mean?

Please be advised that False Matches are possible at any threshold, even Match Level 15. So this could happen again in the future. For 1:N, many customers use a manual human review if a new user appears to highly match a user who is already in the database.

FaceTec is continually working to improve the FAR (False Accept Rate) and optimize the algorithms. Today our FAR for 3D:3D Matches in 1:1 is 125M FAR @ .99% FRR, and for 1:N, depending on the size of the DB of 3D FaceMaps the Elastic FAR feature can raise the FAR as high as 1/1 Billion to decrease false matches.

Higher match levels are also more probable between two Family Members, especially close Family Members, and even more so for Twins. If a False Match occurs, FaceTec recommends the case be reviewed by a human, and if a fraud attempt is determined to have been made, adding the Users to a 1:N 3D-DB Watchlist since the Family Member is likely to attempt fraud again.

I got a False Match in a 3D:2D API or 2D:2D API. What does that mean?

False Matches are possible at any threshold, especially if the 2D data being used has any type of quality-related aspects.

Are you using a Match Level threshold of Match Level 1, 2, 3, 4, or 5? If so, please be advised that Match Levels 1-5 are "weak matches" and should generally only be used to get reasonable confidence. For example, at Match Level 4 with a False Acceptance Rate of 1/1,000, a global population of 8 Billion+ people means that more than 8,000,000 people (8,000,000,000 / 1,000) will match at this threshold! Many customers use a manual human review if a user appears to match at these thresholds.

Are you using a Match Level threshold of Match Level 6 or higher? While these should be rare occurrences, please note that even at Match Level 6 with a 1/100,000 False Acceptance Rate (FAR), a global population of 8 Billion+ people means that more than 80,000 people (8,000,000,000 / 100,000 ) will match at this threshold. Higher match levels are more probable between two Family Members. If a False Match occurs at these thresholds, FaceTec recommends the case be reviewed by a human, and if a fraud attempt is determined to have been made, adding the User to the 1:N Bad Actor 3D-DB.

I got a Rejection in a 3D:2D API or 2D:2D API. What does that mean?

Rejections are possible at any threshold. If the 2D Image is low resolution, has other quality-related aspects, or is otherwise in a difficult scenario for even a Human Reviewer to confidently determine that the two samples actually Match, these are cases where rejections can be expected.

FaceTec continually works to improve the rate at which the Real 3D User is Matched against various types of 2D Images for that same User, and optimize its Matching Algorithms. Keeping up-to-date with versions will also ensure you have the best possible performance. 

Does FaceTec guarantee I will see its documented False Acceptance Rates?

FaceTec's documented False Acceptance Rates are based on a global dataset of 100,000,000+ User Images from ~100,000 Unique User Identities. For more information, please see the FaceTec SDK 1/125,000,000 FAR Matching Report.

If your dataset is smaller or consists of faces that are more similar than a global dataset of 100,000,000+ User Images from ~100,000 Unique User Identities, you will see different behavior in practice. This is expected and by design. FaceTec advises you to set Match Level thresholds that work for your use case and your dataset, which could mean using higher Match Levels to achieve the rates you desire for your application.

What is the NIST FRVT and has FaceTec participated in this test?

The NIST FRVT (MUGSHOT) is a decades-old test designed to measure the performance of 2D Face Matching algorithms in near ideal conditions.

NIST is not capable of testing FaceTec's 3D algorithm because its dataset doesn't contain 3D FaceMaps, only 2D images that were initially collected for Passports and were shared with NIST by another US government agency.

2D Face Matching is plagued by racial bias, low FARs, and many other performance-related behaviors. As proven by Apple's Face ID (which NIST also cannot test), 3D technology has shown itself to be the only method of 1:1 Face Authentication that can work for everyone in almost all environments.

There are several other areas that are rarely discussed that continue to make the NIST FRVT less relevant for Face Authentication every day:

  1. The data is NOT Real-World. The images in the NIST FRVT dataset conform to 19794-5: Lighting is ideal, no shadows are present, no directional lighting, no glare in glasses, no dark or bright environments, pose is ideal, resolution, and camera quality is controlled. In Real-World Authentication of Users in the wild, lighting varies, glare exists, shadows are present, environments change, and user devices have 0.3MP/VGA cameras.

  2. The test is being gamed. Since the test set has stayed constant for years, and companies are allowed to submit algorithms multiple times, algorithm developers are encouraged to submit their algorithm, see how it does, then learn from it and resubmit. For instance, among the current top 5 algorithms, those developers/companies have submitted 25 times!

The FaceTec 3D Face Matching Whitepaper explains how FaceTec's self-certification process follows the same testing methodology as NIST but with a randomized 3D test set, and illustrates how and why FaceTec's 3D Algorithms can achieve 668% better matching performance than the NIST #1 Algorithm, with a Real-World dataset, not just an ideal one.

Where can I find Testing Reports and Certifications details related to the FaceTec SDKs?

You can find FaceTec's Case Studies, White Papers, Resources, Testing Reports, and Certifications in our Developer's Site on the Studies, Reports, Tests & Certifications Guide.


Database Questions

Which MongoDB Version should I use with the FaceTec Server?

The FaceTec Server uses the MongoDB Java Driver 5.1 and is compatible with the MongoDB versions listed in the Official MongoDB Compatibility Matrix for this driver.

Although not explicitly listed, MongoDB 8.0 and 8.1 versions are also supported, as the FaceTec Server does not rely on any MongoDB Features that would introduce incompatibilities with these versions.

The exact MongoDB Java Driver version is also specified in the pom.xml file included with the FaceTec Server package.

Does FaceTec enforce a Data Retention Policy?

No. FaceTec is an on-premise solution. Customers have full control over their Database and stored data, determining which data to retain or delete in accordance with their own Data Retention Requirements.

For more details, refer to the Reviewing & Altering Data Storage in Your Architecture guide, which includes example queries and guidelines for removing old or unnecessary data.


Compatibility Questions

What devices & OS levels are supported for iOS?

The FaceTec iOS SDK is compatible with ALL Devices iOS 12+.

What devices & OS levels are supported for Android?

The FaceTec Android SDK is compatible with ALL Devices with a Front-Facing Camera, Android 5+, armv7 or arm64.

What web browsers are supported for the FaceTec Browser SDK?

Please see FaceTec's Compatibility Matrix for information regarding the Supported Web Browsers.

What web servers are supported for the FaceTec Browser SDK?

In short, all modern web servers will output HTML, CSS, JS, and WASM files that are needed to run the Browser SDK.

Are there any Android devices that are not supported?

FaceTec supports all Android devices with a front-facing camera running Android 5 or above. FaceTec-integrated Apps can compile and deploy to the Android simulator, but FaceTec SDK APIs cannot actually be used on the Android simulator because they require a physical device and the user to perform a real session. Android x86 devices, which are an extremely small and decreasing percentage of devices, are not supported. DEVICE_NOT_SUPPORTED is returned if the device is x86 or does not have a front-facing camera.

Is Huawei HarmonyOS supported?

FaceTec does not offer an SDK that directly integrates with HarmonyOS, but we do offer a Browser SDK that could be loaded through a web form component.

What are the platform requirements for the FaceTec Server?

In short, all popular Modern Linux distros are supported. See FaceTec's Compatibility Matrix for more information.

What versions and platforms are supported?

Please see the Compatibility Page for more information.

Does FaceTec test new major versions of iOS and Android platforms before their release to ensure compatibility?

Yes. However, FaceTec has experienced instances where the final release of these platforms induces unexpected behavior that are not seen in the beta. FaceTec makes it a priority to test new Non-Beta Releases and provide hotfixes with ultra-high priority in the event of an unexpected behavior.

How does the FaceTec Device SDK work in the simulator?

With the FaceTec SDKs integrated, your iOS and Android Apps can compile and run on simulators. However, you cannot make FaceTec SDK API calls on simulators since FaceTec functionality relies on functionality that only real hardware can provide.

Can I use Debugging Tools, such as Xcode Debugger, when using the FaceTec iOS SDK Production Framework?

The FaceTec SDK Production Framework (FaceTecSDK.xcframework) may experience undesirable behavior when used with Debugging Tools, such as Xcode Debugger

While Your Team can still import the FaceTec SDK Production Framework (FaceTecSDK.xcframework), the FaceTec APIs will not initialize when connected to a debugger. To use Debugging Tools for Development Purposes, Your Team must use the FaceTec SDK Development-Only Framework (FaceTecSDKForDevelopment.xcframework).

For more information, please see iOS Additional Steps: Development-Only Framework for Xcode Debugger.

Important Note: For optimal security, the FaceTec SDK Development-Only Framework should not be used in a Production Environment. Your Team should not submit Applications integrated with the FaceTec SDK Development-Only Framework to the App Store.

How can I switch between the FaceTec iOS Development-Only Framework and FaceTec iOS Production Framework in Xcode?

In Xcode, a Custom Build Script can be utilized for one of the Build Phases to choose which FaceTec SDK Framework to use.

In FaceTec iOS SDK v10.1.4+, the Sample App utilizes the new Build Phase, Swap FaceTecSDKForDevelopment Framework, to determine which FaceTec SDK Framework to use. The new Build Phase is located the Embed Frameworks Phase in the Build Phases Section.

For more information, please see iOS Additional Steps: Build Script for Debug vs. Release Mode.

Important Note: Your Team should only include the FaceTec SDK Production Framework in Applications that are shipped to the App Store. Your Team should not include the FaceTec SDK Development-Only Framework.

The FaceTec SDK Development-Only Framework is only needed when your Application needs to execute FaceTec Functionality while connected to Xcode's Debugger.

Can I perform front-end automated tests in the FaceTec SDKs?

No. Since FaceTec requires the selfie camera and real, live data to work, the FaceTec Device SDK requires deployment to an actual device to perform real 3D Liveness Checks, 3D Enrollments, 3D:3D Re-Verification, and ID Scanning. FaceTec does not provide a means of performing Front-end Automated Tests using Emulators, Simulators, Bots, "fake data", or any other tools that launch into FaceTec's UI via automation due to the increased risk for potential vulnerabilities if such functionality were implemented.

Does FaceTec Android SDK support 16 KB Page Size for Android Apps?

Yes, the FaceTec Android SDKs support 16 KB Memory Page Size. If your Android App is reporting a 16 KB Memory Page Size incompatibility, you can use Android Native APK Analyzer to analyze your code for the libraries that are not compatible.


Architecture & Infrastructure Questions

Can I use FaceTec without the FaceTec Server?

No. The primary reason for this is Security. Without Server-Side Processing, Video Injection, GenAI Attacks, and Root-Bypass Attacks would be very easy to perform. The FaceTec Server is also required due to performance. FaceTec's technology requires substantial amounts of Computer Vision, AI, and Heavy Processing that would not be feasible on a client-side-only architecture.

Can I host the FaceTec Server on My Network, provide My Own API Endpoint, and store My Own FaceMaps?

Yes, this is actually required! This is accomplished by deploying the FaceTec Server to your own infrastructure and using a Production Key. With this Keys type, both the Device SDKs and the FaceTec Servers will not require an HTTPS connection to FaceTec Servers to validate your Key. Production Keys will only be issued after the Customer has deployed the FaceTec Server and is sending FaceTec Server Usage Logs to FaceTec on a daily basis and this has been verified by FaceTec. The initial set of FaceTec Keys that are generated will usually have a short (30-90 day) expiration so that FaceTec can verify that the customer is sharing their daily Usage Logs with FaceTec. Once this has been verified, the longer-term SDK Keys can be generated. FaceTec also recommends that Device SDK Keys be stored on the Customer's Server and served to the Customer's Application via its own internal API infrastructure. This way, FaceTec Device Keys can be updated without the Customer needing to perform a release of their client-side code/Application.

Can I call FaceTec Server Endpoints directly from My Client-Side App Code?

FaceTec requires that you not implement the SDK in this manner for security reasons.

Instead, you should upload FaceTec data using your already-existing web service using your organization's security best practices, THEN call FaceTec Server REST Endpoints via secure server-to-server calls. This way, FaceTec Server and its endpoints are not open to the outside world and/or public internet.

The Sample App Client-Side App Code is meant to demonstrate how to parse the default FaceTec Server REST responses. In Production, you should make these decisions in your own web service code and decide how you want to communicate back to your own application using protocols and methodologies that you use for other non-FaceTec API calls your app already makes.

Do I need to set up a Proxy Server for My FaceTec Server?

No. FaceTec does not recommend a Proxy Server for many reasons. Proxy Servers are difficult to set up, configure, analyze, and manage for the lifetime of any application. FaceTec sees frequent unexpected behaviors when Proxies are used due to Developer Errors and Maintenance Problems.

The best solution is to use FaceTec as designed, since it runs when using FaceTec's Default Run Steps and code.

Please note that FaceTec requires ALL Anonymous, Non-PII Usage Log Data to be sent to FaceTec automatically, and thus, there is no compelling reason to use a Proxy Server.

If you still decide to use a Proxy Server, please note that FaceTec cannot assist in diagnosing and investigating behaviors related to Your Custom Proxy Server Setup.

How can I build and maintain My Own Docker Image for the FaceTec Server?

The FaceTec Server ships as a Runnable Docker Container. All dependencies, build steps, and run steps are documented as part of the Setting up FaceTec Server Guide, whereas the FaceTec Server itself contains the Dockerfile and all associated configuration files. Both the FaceTec Server Guide and Package should be Your Primary Reference for how to create Your Own Customized Docker Container.

Can I get Callbacks for more granular User Behavior?

No. There are threading and performance limitations, as well as security implications, to providing further granular metrics outside of what is already provided.

Across all FaceTec Partners and Customers, 98-99% of Users are able to Successfully Prove Liveness, and further analytics are both unnecessary and would cause additional problems for the broad array of User Devices and runtime environments.

Do the FaceTec SDKs stream videos to Your Cloud?

No. The FaceTec Device SDKs create a 3D FaceMap that Your Secure App Code uploads to Your Own Cloud for processing by Your FaceTec Server.

Is FaceTec FedRAMP compliant or otherwise approved for use by Governments?

FaceTec SDKs run 100% within your networks, and your application code controls network requests, data handling, and data storage. Thus, FedRAMP and other such assessments and certifications have not been required for the FaceTec SDK to be deployed in Government Apps!

Is FaceTec GDPR compliant, CCPA compliant, POPI compliant, or otherwise compliant with Data Protection & Privacy Regulations?

FaceTec SDKs run 100% within Your Networks, and Your Application Code controls Network Requests, Data Handling, and Data Storage. Since FaceTec does not process any of Your Real User PII, there are no known Privacy Regulations that FaceTec conflicts with.

Does FaceTec have an On-Device Mode?

No. In fact, purely on-device Liveness Detection has been proven to be insecure because of bootrom exploits like Checkm8 (and other such prolific amounts of client-side security behaviors). FaceTec deployments require biometric processing on the server.

How big is the FaceTec Device SDK?

The actual footprint of FaceTec SDKs in Your App varies by platform, architecture, and based on which standard libraries you already include in your app. The overall package for iOS/Android SDK compressed size is ~4.5 to ~5.5MB.

Can the size of the FaceTec Device SDK be reduced if we only use certain features?

No, as FaceTec Machine Learning Algorithms improve over time, they also increase in size. FaceTec expects the FaceTec Server to continue to grow and believes the overall size doesn't create resource problems and enables significant accuracy improvements.

Can the size of the FaceTec Server be reduced?

No, as we have improved our Machine Learning Algorithms, they have grown in size. We expect our FaceTec Server to continue to grow. We believe the overall size doesn't create resource problems and enables significant accuracy improvements.

Does FaceTec use Biometric Encryption?

Securing user biometric data is a high priority for us. FaceTec FaceMaps and ID Scans are encrypted by default and required by our APIs.

Can I just capture a video or 2D photo with My App and FaceTec can "check Liveness" on it?

The FaceTec Device SDKs are a required integration component. Here is a non-exhaustive list of an extensive amount of technology built into the FaceTec Device SDKs, making "server-side-only processing" of Liveness (or any other checks) both not possible and not desired:

  • Proprietary FaceTec camera code selects the optimal resolution and processing parameters depending on the device, camera properties, platform, screen size, and estimated device performance profile.
  • Face detection, landmarking, ML-based video frame quality pre-filtering, and sorting occur on 100 frames or more.
  • Face detection is performed using multiple algorithms and models trained specifically for FaceTec SDK data, and dynamic parameters depending on the camera, device, platform, and phase of capture.
  • Face landmarking and cropping is performed using multiple models and algorithms trained and developed specifically for FaceTec algorithms using FaceTec-captured data.
  • Face detection and landmarking are areas of ongoing research and development at FaceTec.
  • Image crops and feature extraction are performed, and data is aggregated.
  • ML-based analysis is performed on the face to determine if more data needs to be captured or if the engine can move to the next phase.
  • ML and non-ML-based analysis is performed on frames in real-time to filter and sort frames by looking for things like facial expressions, blur, lighting, pose, landmark occlusion, and more.
  • The engine produces feedback that the FaceTec Interface reacts to. The feedback has evolved and been tuned over the years in order to provide fast, easy capture for the users, and to get the exact data needed to make a Liveness decision.
  • Algorithmic responses and feedback are collected and annotated.
  • FaceTec SDKs decide whether the device needs to enter low-light mode.
  • Non-ML-based computations are performed that influence the overall decision after processing.
  • A payload is generated called the FaceTec 3D FaceScan, which only ever exists as encrypted data.
  • Developers control a public/private key pair used during encryption on the device and decryption on the server. This enforces encryption by default. Because of this, it is not possible for FaceTec to crack a random FaceMap (for instance, even if directed to by a government agency).
  • The FaceTec 3D FaceScan format and the FaceTec SDK end-to-end engine have been 3rd party penetration tested yearly for the last 3 years with no medium/high severity behaviors currently existing and all known behaviors mitigated.
  • FaceTec 3D FaceScans generated with iOS, Android, or Browser are 100% compatible with other platforms.
  • The above process occurs in just a few seconds and generates a 300-400KB payload.
  • FaceTec leverages SIMD where possible to accelerate ML and image processing operations.
  • The FaceTec Server runs many images, image crops, 3D data, and other features through over 60 algorithms to get the overall decision.

Can I host the FaceTec Device SDK binaries on a Public Repo, GitHub, Maven, Cocoapods, etc.?

No.

Our Organization does not use a Cloud Provider (like AWS, Google, Azure) and is using a custom and privately-developed and maintained technology and hardware stack. Can FaceTec provide Performance Benchmarks for Our Custom Environment?

You will need to test FaceTec SDK performance within Your Custom Infrastructure. With dozens, or even hundreds of variables outside of FaceTec's control, this type of question is outside the scope of any benchmarks or assistance FaceTec can provide. This just means that you will need to test the integration and compare your Hardware and Performance to our Recommended Baseline Hardware and Baseline Performance Benchmarks at those baselines.

Our Organization wants to use a specific: database technology, network topology, load balancer, CPU model, RAM model, hard drive type, router/firewall software/hardware, web server technology, virtualization technology, container management technology, data redundancy technology, backup technology, additional cryptography to FaceMap data, sharding/replica system, logging aggregation technology. Can FaceTec provide performance benchmarks for Our Custom Setup, approve Our Setup, or otherwise help us tweak and tune Our Custom Configuration?

FaceTec provides Recommended Baseline Hardware and Baseline Performance Benchmarks. Similar setups have been tested across AWS, Google, and Azure, and these setups provide consistent speeds.

These types of questions come down to testing the actual setups themselves and diagnosing performance-related behaviors/discrepancies, should they arise. FaceTec does not provide these types of testing or consulting services because, for example, testing the differences between two different types of load balancers and how they route traffic is beyond the scope of our core technology. FaceTec has verified compelling levels of performance for large per-day session volumes with large cloud providers. If you are having difficulties replicating our benchmarks, but are using a different configuration than our benchmarks are using, please start by investigating the differences between your setup and our benchmark configurations.

How do I configure SSL for the Server or Dashboard SDKs?

There are numerous ways to do this, depending on your architecture and whether you are using a Cloud Provider or not. On AWS, you can use a Classic Load Balancer and connect it to Amazon Certificate Manager. There are a few additional configuration steps that you can find by searching Amazon’s documentation. If you are using another Cloud Provider, please use similar steps. If you are using your own custom servers, FaceTec recommends sending your request to a load balancer, and the load balancer will balance your load. Configuring specific web servers is outside the scope of our support. Adding an SSL to a web server is a task usually handled by a Network Administrator.

How do I add Access Controls to the Server Dashboard?

There are a few ways to secure the Server Dashboard. One is restricting access to the server by IP Address. You can accomplish this with firewall rules. Another option is to put a reverse proxy in front of the website using a service like Nginx. Here is an article about adding HTTP Basic Authentication using Nginx.

Incorrect response MIME type. Expected 'application/wasm'

Browser SDK uses a .wasm file that may require extra configuration on your web server. You may need to add "application/wasm" to the MIME Type configuration of your Web server. Each web server may have a different process, and FaceTec recommends referring to your server manual.

Can I store variables in the FaceTec Server Config.yml file in other locations?

For the FaceTec Server, you can use the FaceTec Server and make updates to the code that will allow you to use environment variables or variables stored in a database instead of values in the config.yml file. FaceTec recommends modifying the FaceTecInstanceManager.java file.

Can I scan a QR Code on a Desktop to perform a 3D FaceScan on a Mobile Device?

While there is no included solution for this functionality, it is supported by the FaceTec SDKs. This feature can be created with some modifications to Your Code. Specifically, you will need to use a QR Library to generate a QR Code for the User to log in on their Mobile Device. Then, you will need to use Security Service Edge (SSE), WebSocket, or a Pooling Mechanism to notify the Desktop Browser App in real-time that the User has performed a 3D FaceScan on their Mobile Device.


Performance & Benchmarks Questions

Why is My Server-Side 3D FaceScan, 3D FaceMap, ID Scan, or 2D Image Processing slow?

Please take a look at the Hardware Components Section and Min. Recommended Hardware Specs. If you are not running with at least these specs, you will achieve slower performance than our benchmarks. If your setup is roughly the same as our recommendations, or you otherwise have a question about the performance you are getting, please gather Server Troubleshooting Info and Send us a Support Request.


Customization Questions

How do I customize the branding and colors of FaceTec SDKs to fit with my app?

The FaceTec goal is to provide all end Users with a cohesive authentication experience inside our Customers'/Partners' Applications. FaceTec provides numerous guides, sample code, and public APIs to brand and customize the experience of FaceTec SDKs to fit your application

How do I hide the FaceTec SDK Security Watermark or customize the oval?

The security watermark on the main camera interface is not customizable and must be present. FaceTec SDKs are a trusted security brand that exists across numerous applications and platforms. FaceTec does not allow full white labeling of our SDKs as they are important to display to the User which technology they are using for both Security and Branding purposes. This is similar to RSA, Face ID, Touch ID, and many more examples of products that follow the same requirement.

The FaceTec Oval is only customizable via our public APIs for the oval. There is no universal outline shape for a human face. It is tempting to believe that adding ears or trying other face shapes will look better than an oval. This would give you an experience that is highly subjective and not appropriate for all users' face types, accounting for all ages, genders, ethnicities, etc. The FaceTec Oval is also the most efficient way to leverage the screen real estate for other elements in the FaceTec Interface. The FaceTec Interface also must stay consistent so that users who are familiar with the interface know they can trust it. Consistency and familiarity foster trust. Please check out the Security Watermark, Oval, and Branding Guide for more details.

Can I move the FaceTec Buttons, Text, and other UI Elements?

Only via supported APIs. Most UI elements cannot be moved in order to provide a consistent, optimal experience across 10,000+ Device Models and Platform combinations. To learn more, please see UI/UX: Moving UI Elements.

How do I customize specific strings?

There are string files in the SDK package that you can use as a reference to start to customize. These files contain the default English translations, so you can modify them to whatever you’d like and include them in your package as described in the docs to get the customizations you desire. Please see the String Customization Guide for more details.

Can I disable or configure the lockout function?

No. FaceTec Device SDKs will enter a "Lockout State" when there are too many unsuccessful sessions in a short time period. While in the Lockout State, attempting to launch into the FaceTec Device SDKs will immediately return with FaceTecSessionStatusLockedOut.

A Session will increment the Lockout Counter when at least one frame with a face is processed but success does not occur. This is to prevent developers from giving users a poor user experience and to prevent infinite attempts to use FaceTec SDKs in a short period of time. A Lockout occurs after 15 unsuccessful User Sessions within a 5-minute span of time. Once the user is in a Lockout State, the user must wait 5 minutes before being allowed to use the FaceTec SDKs again. The Lockout is not cleared by performing a successful session, as this would provide a bypass of the Lockout functionality.

Apple, Google, and many more of the World's top companies have established and widely accepted security practices of not allowing infinite and immediate retry attempts at authentication. Please see iOS/Android PIN methodology, TouchID, Face ID, Android fingerprint, and general website password policies for more information.

Can I change the FaceTec UI Strings to other languages?

Yes. All strings in the FaceTec UI can be localized for the languages you want to support. This process is detailed in the Text & Language Editing documentation.

The Sample Apps automatically localize the strings shown in the FaceTec UI to the initially supported languages when the Device's language changes. The Sample App code demonstrates how string localization is handled in the Device SDKs, and should be used as a reference for optimal integration.


Usage Logs Questions

Do I need to send Usage Logs to FaceTec?

Yes.

Do Usage Logs contain PII?

No.

How do I process Usage Logs for information?

Usage Logs are for FaceTec consumption. If you need to track usage, you can easily create your own system to count how often you call FaceTec SDK APIs and what the results are.

Why does FaceTec require Usage Logs?

FaceTec must be able to count the usage of its own product, and this is the only way to do that. Also, the Usage Logs contain useful, anonymous, non-PII information from the User Session that FaceTec uses to understand which particular algorithms need improvement. Thus, sending FaceTec Usage Logs contributes to helping improve the accuracy and success rates of future Users using your own products and services!


SDK Behavior Questions

How and when should I initialize the FaceTec Device SDKs?

The call to initialize should be made as early as possible in your App, not at the moment a User taps to initiate a FaceTec Session. 

Please check out the Getting Started Guide Initialization section for more details.

When does FaceTec exit due to a "Context Switch"?

FaceTec provides a real-time capture interface that uses the OS camera APIs, on-device computer vision, and AI models with real-time feedback.

During a capture, the User may receive OS-level notifications, switch apps, or switch tabs.  When this occurs, FaceTec returns to an initial state so that when the User returns, they are ready to perform a 3D Face Scan as quickly as possible.

In rare, specific scenarios, an OS notification, App switch, or tab switch may cause underlying operating system-level cleanup of background Apps, processes, or changes to the camera hardware state.  Although FaceTec makes a best effort to recover from OS-level interventions, these events may be unrecoverable. In these rare scenarios, FaceTec will exit with a status that indicates a Context Switch has occurred.

What is the FaceTec Session Status?

The FaceTec Session Status (FaceTecSessionStatus) is a status returned by the FaceTec SDK whenever the SDK initializes or a Session completes. The FaceTec Session Status is available in each of the SDKs.

Location: 

Android - Included in the Java Docs located in the root folder of the SDK.

iOS - Included in FaceTecSDK.framework folder -> Headers folder -> FaceTecPublicApi.h.

Browser - Included in core-sdk folder -> FaceTecSDK.js folder -> FaceTecPublicApi.d.ts.

While the SDKs automatically handle quite a few scenarios by default, we recommend using the FaceTec Session Status to help Your Users with more specific messages and next steps.

* Important Note: 3D Liveness Session Status only reports if the session was successfully completed. It does not return the result of the 3D Liveness Check.

Do the Device SDKs & FaceTec Server log info or errors?

Yes, logs are output to stdout. The FaceTec Server Core outputs Usage Logs. FaceTec Server outputs info and errors. The Device SDKs log errors and unexpected behavior, but they generally do not log info. This is to prevent excessive information from being outputted to the Container Application's Log Stream.

In my opinion, users need to move the phone too close to their face. Can we change this?

No. FaceTec's algorithms are highly tuned to extract the 3D signal from a Real, Live Human face performing a Liveness Check Session in the manner that is configured in the SDKs by default. On tablets and larger-screen phones, the interface is drawn at a much smaller size to mitigate user perception that the phone must be placed very close to the face.

Does FaceTec provide access to Older Versions of its software?

No, FaceTec does not provide access to Older Versions for Security reasons.  FaceTec's Latest Versions always contain the latest Security, Device Compatibility, Performance, and Usability Improvements.

Do you support Maven, Swift Package Manager (SPM), or Cocoapods?

No, supporting Maven/Cocoapods would require us to host older versions of our SDK to not break current integrations. FaceTec requires SDK version upgrades frequently, and thus, we do not support a means of easily staying on older versions.

If needed, Partners & Customers are encouraged to set up their own private Maven/Cocoapods repositories.

Why do some 3D FaceScans, 3D FaceMaps, or ID Scans have different results depending on the FaceTec Server version I am using?

FaceTec SDKs are a probabilistic system and there will always be FaceMaps that get different Liveness or Matching results depending on the FaceTec SDK version being used. With almost every release, FaceTec ships improvements to various algorithmic subsystems of FaceTec SDKs. This inevitably causes the results of some FaceMaps to be different as they are evaluated by different versions of FaceTec Server.

What is the "Session ID"?

Every User Session is unique. The FaceTec Device SDKs return a Session ID in each Result. This Session ID is configured in our default implementations and is used for diagnostics purposes. In Production, the Session ID is not used by the FaceTec Server.

Why is Landscape Mode on Tablets and Mobile Devices not allowed?

FaceTec only supports Portrait Mode in order to ensure an Optimal User Experience across the widest range of devices. Landscape Mode produces poor Face Alignment and results in a poor User Experience. To capture their image, Users need to look far to the left or far to the right, which results in images that are not suitable for performing high-confidence 3D Liveness Checks and 3D:3D Matching. Additionally, most tablets that have the camera located on the top when held in Landscape Mode produce a Landscape Image, which prevents the camera from collecting the optimal amount of pixels for the User's Face Scan -- In these cases, it is still optimal to perform the 3D FaceScan in Portrait Mode.

Developers simply need to ensure the device is in Portrait Mode before invoking the FaceTec SDKs. In the v10 Android and iOS SDK, this is already handled for Developers via FaceTec's Orientation Screen.

What are Adaptive 3D FaceMaps?

Adaptive 3D FaceMaps are 3D FaceMaps that have been generated from an Existing 3D FaceMap and "improved" upon with new data collected from the Last Successful 3D:3D Match of the User. When a new 3D FaceMap is matched against, and the result is successful (the Match Level is 15, i.e. 1 in 125,000,000 FAR), the FaceTec Server assembles a new 3D FaceMap that includes new data to improve usability rates, while still maintaining the same high level of security.

When using the FaceTec Server (v9), the Enrolled FaceMap is replaced with the Adaptive 3D FaceMap upon a successful 3D Liveness Check + 3D Matching. FaceTec recommends performing the same process in the FaceTec Server.

Can the Rear-Camera be used for 3D Liveness in Supervised Scenarios?

Yes, FaceTec supports Rear-Camera 3D Liveness and creates 3D FaceScan files on Device SDKs iOS v9.6.48+ and Android v9.6.36+. An approved supervised scenario for using this feature would be: a Bank branch manager performs an authentication on another customer using a Bank Owner Smart Device. For more information, please see the Rear-Camera 3D Liveness (Beta) Guide.

Does the FaceTec Browser SDK support NFC Scanning?

Web Browsers do not currently support NFC Scanning of Passports and eIDs. When Web Browsers support this, FaceTec will add support for NFC.

Angular (or Another Framework) has a special behavior that overrides the Browser's Back Button to do navigation without a Page Refresh. How do I handle this gracefully with the Browser SDK?

Angular and other SPA frameworks provide special behavior that catches the User pressing the Back Button and performs special, prescriptive behavior in order to prevent page reloads. The philosophy behind this is that navigation can be performed without a page load because all of the code for the entire app is already loaded, and the User just needs to perceive there was a page load.

The FaceTec Browser SDK presents an interface outside of the Angular (and other frameworks) layout tree in order to give a consistent UX with the Frame in the same location that is best for usability and accuracy. When the default Angular Back Button behavior is invoked, depending on your App configuration, this might cause your page to navigate while the Browser SDK UI is still up. This behavior is By Design, and you can use supported Angular (and other SPA framework) APIs to provide a good UX in this case.

You can do this by using Angular's methods for catching and overriding the Back Button behavior. Once you catch the Back Button behavior, FaceTec's recommendation is to simply perform a no-op if the Browser SDK UI is up. This way, no state in your application changes, and the User still has a perfectly viable and intuitive way to cancel out of the experience by using the Cancel Button in the Browser SDK UI. The other option is to reload the page to whichever state you would like upon catching the Back Button.

Here are some resources to help with overriding the Back Button behavior in Angular:

What is the ideal amount of Front & Back Images to have when creating new OCR Templates?

FaceTec recommends uploading 5-10 examples of each document type that you plan on supporting.  Good performance can be achieved using 1-3 examples, but our recommendation is 5-10 to maximize performance.

Browser SDK will initialize on localhost, but not using an IP Address or on http?

The Browser SDK must run on a website that uses HTTPS/SSL to successfully initialize (except for localhost testing).  This requirement is due to Browser WebRTC Camera APIs and is not something that can be changed via configuration.

Is the FaceTec Server supported on Mac Silicon and Other ARM CPUs?

To facilitate Testing and Local Development, Mac Computers with Apple Silicon, along with any other Unsupported OS/CPU Combination, will no longer fail to start the FaceTec Server. These OS/CPU Combinations are still incompatible and cannot be used in a Production Environment, but the FaceTec Server can be initialized. Subsequent Calls to other APIs will still throw Standard FaceTec Exceptions.

This feature is implemented to support Limited Development and IDE Support for the FaceTec Server for Apple Silicon Development Machines. To enable this feature, add the following under the appropriate FaceTec Service (facetec_server_prebuilt_with_usage_log_server, facetec_server_recompiled_with_usage_log_server, facetec_server_prebuilt, or facetec_server_recompiled ) in docker-compose.yml.

 platform: linux/amd64

The FaceTec Server on ARM still remains unsupported and cannot be used to process Real Sessions and Other Transactions.

On iOS, when using the Browser SDK, when the Device is in Low Power Mode, why is there a Pause Icon appearing briefly during 3D Liveness and ID Scan Sessions?

On Browsers on iOS, iOS has platform-specific behavior to show a pause icon briefly when any Video Control appears onscreen and the Device is in Low Power Mode. This behavior is specific to iOS and cannot be turned off or detected. This UI behavior does not impact processing or Liveness Check performance and disappears moments after it is shown.

Can FaceTec be used from a Fragment in the Android SDK?

No, FaceTecSessions cannot be started from Fragments due to security and usability limitations.

Can I disable the Auto-Capture during ID Scanning?

No, auto-capture is an integral part of the FaceTec Device SDK engine and ensures that frames are captured and analyzed in real-time.  FaceTec processes all frames in real-time to determine quality and aggregates frames that should be sent in the ID Scanning payload.  If auto-capture does not succeed within 5 seconds, a "Take Photo" button appears to allow the User to submit the frames that have been auto-captured up to that point.

What is the expected behavior for cancellation scenarios?

The behavior of cancellation scenarios, such as complete, incomplete, and canceled sessions, will output specific results and responses according to each scenario.

  • Sessions In-Progress: During an in-progress Session with the FaceTec Server APIs, the Server will return a response object with a resultBlob which is used to determine the next steps of the journey for the User on the Device SDKs.
  • Default Behavior For Complete Sessions: When completing a Session with the FaceTec Server APIs, the Server will return a response object with full session results, which are then stored in the FaceTec Database and displayed in the Dashboard.
  • Canceled Sessions: When a FaceTec Session is canceled mid-journey by the User, the FaceTec Server will not return a standard Result Blob. In these scenarios, the Device SDK will send a request to the FaceTec Server signaling that the Session was canceled, then the FaceTec Server will store a Session Result via the storeCancelledSessionResult callback for display in the Dashboard.
  • Catastrophic failure (Internet connection problems, App Closed, App Crash, etc): Catastrophic failure scenarios will not produce a Result Blob, Response Object, or have a specific callback.
Important Note: Catastrophic failure events can be tracked via Usage Logs, but will not have specific details or a cancel event logged.

Why does the Browser SDK request camera permission multiple times in some Third-party Apps in WebView?

Some Third-Party Applications implement their own Native WebViews that require Camera Permissions to be requested each time a Camera Operation is performed. The FaceTec Browser SDK is unable to control or modify the behavior that has been programmed directly into these WebViews.

If Your Team would like to have this behavior addressed, then FaceTec recommends submitting a Ticket to the Third-Party Application's Designated Support Channel.

For more details about how FaceTec is used in WebViews, please see FaceTec's WebViews & Embedded Web Interfaces Guide, along with the Android and iOS WebView Documentation.

How to Configure FaceTec Feature Flags in My Application?

Certain FaceTec Features, such as Rear Camera 3D Liveness (Beta), iFrame Support, and others, require implementing a specific Feature Flag to be enabled in Your Application.

FaceTec provides detailed documentation outlining the process for implementing Feature Flags in Your Hosted FaceTec Server and Device SDKs in the Setting FaceTec Feature Flags Guide.

Please note that FaceTec does not control which Application Your Team implements the Feature Flag in. Your Team is responsible for selecting and implementing the FaceTec Feature Flags in Your Application.


Audit Trail Image

How can Audit Trail Images be used in my Organization?

Audit Trail Images may be used for various purposes, including—but not limited to—Fraud Investigations, Transaction Validation, Internal Dashboards, Matching Against Identity Documents, and others.

Please refer to the Audit Trail Image Acceptable Use section for guidelines on the permitted and prohibited cases of Audit Trail Images within Your organization.

Where can I find the Audit Trail Images and ID Scan Images from Sessions performed in my Application?

Audit Trail Images and ID Scan Images are stored in Your Database and can be retrieved as per the logic outlined in our documentation (Audit Trail Images, ID Scan Images).

FaceTec also provides Query Examples that you can use to find stored Audit Trail or ID Scan Images via the Session Launch ID or externalDatabaseRefID in Your Database.

Should Audit Trail Images and ID Scan Base64 Images be returned in the Response of the /process-request API?

No. By design, to maintain Optimal Performance and keep Network, CPU/Memory Overhead Processing, Response Times to a minimum, Audit Trail Images and ID Scan Base64 Images are stored directly in the Database and not returned in the API Response.

There are numerous side effects of increasing the Payload Size of an API Call when sending Requests to the Backend, such as:

  • Higher Network Latency and Bandwidth Requirements
  • Increased CPU Processing and Memory Overhead
  • Slower API Responses
  • Degraded User Experience

For the reasons above, FaceTec recommends querying and retrieving Audit Trail Images and ID Scan Base64 Images directly from the Database for Optimal Performance and to prevent Unexpected Behavior from Non-Recommended Customizations.


Development vs. Production Questions

Do FaceTec SDKs make Network Requests to the FaceTec Network Servers?

Device SDKs in Development Mode will make a request to the FaceTec Network Servers during initialization. Device SDKs in Production Mode will not make any requests to FaceTec Network. FaceTec Server will not make any requests to FaceTec AT ALL.

When should we use Development vs Production Mode on Device SDKs?

Development Mode is designed for prospective customers to use when trying out the FaceTec Solution. After signing an agreement, FaceTec asks that Partners/Customers use Production Mode in all of their environments (Dev, Test, QA, Prod).

How can I configure my SDKs to initialize with all the Domain/Package/Bundle IDs associated with my Domain?

You can add the "*" symbol to the beginning or the end of a Domain URL to successfully initialize the Browser SDK or the Android/iOS SDKs with all subdomains associated with the specified Domain and Package ID. Please see the FaceTec Domains/Package/Bundle IDs documentation for additional details.

Here are Domain/Package/Bundle ID supported examples:

  • *.your_domain.com will allow the Browser SDK to initialize with all associated subdomains.
  • com.your_domain.* will allow the Android and iOS SDKs to initialize with all associated Package IDs.

Test API Questions

Why is 2D:2D Match (/match-2d-2d) not available in the FaceTec Testing API?

This feature is disabled in the FaceTec Testing API and requires approval by an account representative.


Mobile Framework Support

Does FaceTec support 3rd Party Frameworks (React, Angular, React Native, Flutter, Cordova, Xamarin, etc.)?

To learn how to integrate the FaceTec SDKs with specific 3rd Party Frameworks, see the 3rd Party Frameworks Guides.

FaceTec SDKs are compatible with each of the frameworks via each framework's native plugin system. To integrate the FaceTec iOS and Android SDK with 3rd Party Frameworks, you should use the native plugin system and refer to FaceTec's 3rd Party Sample Apps and Boilerplate Code.


Demo Questions

I'm trying to Screencast or Live Demo FaceTec SDKs to My Team or Another Company. How do I do this?

For iOS, QuickTime Movie Recording mode is recommended to show your Live Demo on your screen.

For Browser, QuickTime Screen Recording mode is recommended to show your Live Demo on your screen.

For Android, by default, the 3D Liveness and ID Scan Sessions are protected from screen recording. We offer a feature flag for creating marketing videos. Please Send a Support Request for more information.


iOS App Submission

FaceTec can be used in iOS Apps as long as your users explicitly agree that their Face Data will be used. Make sure you have the correct disclaimers and privacy policies in place.

1. In the App Store Review Guidelines, there is one section discussing local authentication.

2.5.13 Apps using facial recognition for account authentication must use LocalAuthentication (and not ARKit or other facial recognition technology) where possible, and must use an alternate authentication method for users under 13 years old.

Server-side Face Matching cannot be done locally, so the "where possible" is the key phrase.

 

2. In the Apple Developer Program License Agreement, there is one section pertaining to FaceData.

3.3.52 - Face Data
- You may not use Face Data for authentication, advertising, or marketing purposes, or to otherwise target an end-user in a similar manner;

Apple does not want to prevent companies from using strong biometric user security, but they do not want biometrics to be used for surveillance or marketing.

3. The FaceTec iOS Demo Application is an approved app in the Apple App Store, and here is a link to our Privacy Policy.


Account & Applications Questions

Why does My Account have an Accounting Hold?

Once an invoice is over 15 days Past Due, your dev.facetec.com account may be put on hold. This disables the ability to download new SDKs and access information about your applications. This hold will not affect your production environment. Please contact your accounting department to make sure all invoices have been paid in full. *Your previously downloaded SDK Encryption Keys will remain working until their expiration date.

Does FaceTec Charge Fees for Usage in Development Mode and Test Environments?

Yes, FaceTec charges for 3D Liveness usage in All Environments. FaceTec is unable to detect which mode the FaceTec Server is running in, and thus charges for all 3D Liveness Decisions rendered, as shown in the Logs. FaceTec believes Test and Quality Assurance usage should be minimal compared to your production usage, and associated charges will be trivial. FaceTec also runs a deduplication process and only charges for each unique 3D FaceScan that results in a 3D Liveness Decision. For example, if you process a 3D FaceScan multiple times during testing, it would only count as one 3D Liveness Check.

Why are FaceTec SDK Encryption Keys rotated every 3 months?

FaceTec uses the SDK Encryption Keys as part of the SDK Security. FaceTec requires SDK Encryption Keys to be rotated regularly (typically every 90 days) as part of best practices. The Encryption Keys are irrevocable and will only stop working after their expiration date.

How does FaceTec calculate 1 or 2+ users per month?

Due to our privacy-protecting architecture and data-sovereign on-prem software deployments, FaceTec is unable to track any data that would allow us to calculate exact users across installs or across devices. FaceTec uses the Device Installation ID, a randomly generated UUID, that is created when an App is installed on a Device. FaceTec tallies the number of Installation IDs the FaceTec Server issued a 3D Liveness Result for then categorizes them between 1 use or 2+ uses each month.

When should I use a new FaceTec Application?

By default, FaceTec creates one FaceTec Application per Server Cluster, designed to be used in all environments (Dev, QA, Test, and Production). In general, most Customers and Partners use only one Application for all environments, as creating a New Application requires managing and rotating the new set of SDK Encryption Keys every 90 days in each of the SDKs and adhering to FaceTec's Update Policy, which leads to unnecessary overhead.

Customers and Partners can request for FaceTec to create a New Application when setting up a New Server Cluster that requires Data Separation. However, a New Application is not required or recommended for most scenarios.

How Do I Count Usage of FaceTec APIs?

For billing reconciliation, FaceTec Partners & Customers can use the same method FaceTec uses to count API Usage -- FaceTec uses the Anonymous, Non-PII Usage Logs to calculate monthly invoices and ensure that Success Rates in Your Apps are optimal. FaceTec counts the number of unique 3D FaceScans evaluated for 3D Liveness by the FaceTec Server. FaceTec is an On-Prem solution and you have access to the same plaintext log files that FaceTec does in order to perform internal accounting and auditing purposes.

How can I manage User access to my FaceTec Account?

Access to Your Organization's Account Page and User management can only be conducted on the FaceTec Developer’s Site and requires logging in with an Admin User determined by Your Organization.

Admin Users designated by Your Organization can add or remove Users and manage permissions to determine who can access Your Organization's Account Page, Application details, Production Keys, and download SDKs.

How can I update My User Permissions or add a New User to My Organization's Account?

For Security reasons, FaceTec defers User Management and Account Permissions changes for each Organization to manage.

In such scenarios, reaching out to Your Organization's Admin to add new Users or grant Accounts the required privileges is the recommended path for resolution.

How can I Receive Notifications from FaceTec?

FaceTec recommends Organizations create a Group Email Address with the selected Users and add it to their FaceTec Developer Account to receive FaceTec Integration notifications, SDK Encryption Keys, Reminders, and other content.

Please follow the steps below to add Users or a Group Email to Your Account:

  1. Access the FaceTec Developer Account Page using an Admin Account.
  2. Go to the Your Users section.
  3. Add the Users to the Contact List.
  4. Configure the User or Group Mail with the following permissions: View all Application Details and Encryption Keys, and Receive Emails about Expiring Keys and other Technical Information.

ID Scan Questions

Can I Skip/Disable the OCR Confirmation Screen in FaceTec UI?

Yes. The OCR Confirmation Screen can be skipped/disabled by using the SKIP_USER_CONFIRMATION ID Scan modifier as outlined in the ID Scan: Logic & Behavior Customization documentation.

Disabling the User Confirmation Screen is not recommended as it provides Users with an interface to perform small corrections to their captured data.

Both the Original Scanned Values and User Values are available as part of the documentData JSON object, providing useful data to help catch potential fraudsters who subvert or abuse this feature by intentionally altering names, dates, and other fields, allowing Customers and Partners to add more layers of security to their IDV/KYC System.

How does FaceTec Check Quality during ID Scanning?

The FaceTec ID Scan UI helps Users correctly frame and position the document during the ID Scan flow to ensure the complete document and data are properly captured. The SDKs also perform Anti-Spoofing, Anti-Tampering, Injection Detection, and Image Quality checks, proving the User the ability to perform new attempts to provide better data for optimal OCR performance during the ID Scanning process. Please see the ID Scan Default Logic & Behavior for more details.  FaceTec also provides Users with the ability to manually frame the document and retake their capture.

Outside of the FaceTec SDKs, Your Organization can implement Your own additional validations and Custom Logic, such as comparing OCR values and User Photo against a Trusted Source database, validating the expiration dates of the scanned documents, performing front and back ID Scan field validation, and other checks, using the Session data provided by the SDKs along with the ID Scan Behavior Modifiers, to determine specific conditions and the next steps for the ID Scanning flow in Your IDV/KYC System according to Your Organization's requirements.


Support Questions

How should I provide information to FaceTec Support about Specific Questions and Behavior Observations?

To provide support, FaceTec requires that Your Team create a Support Request (click here). Please make a best effort to provide highly detailed information for Your Team's Question. Most Requests will require Your Team to provide several of the details that are listed below:

  • Steps to Reproduce
  • Logs
  • Screenshots
  • Video/Screen Recording
  • Code
  • Device Model & Camera Information
  • Collected Metrics
  • Network Request
  • Network Response and Details
  • Important Links & Files
  • Relevant Documentation
  • Use Case Information
  • Any Other Relevant Details

Can I set up a meeting with FaceTec to discuss a Support Ticket?

The best way to obtain support is via the FaceTec Support Form, which will guide you in gathering the necessary data for FaceTec to analyze and provide feedback on Your Support Request. Please make sure to use the correct form and to provide detailed information to FaceTec about Your question or the observed behavior.

FaceTec must receive all detailed questions and reports about behavior so that we can evaluate and assist you with the next steps. If you believe a meeting is necessary, FaceTec still needs to receive a detailed list of outstanding questions, along with detailed evidence, videos, log files, reproduction steps, behavior information, and any other requested information FaceTec requests before proceeding.

How can I submit files to FaceTec for Analysis?

After having opened a Support Request with FaceTec, you can use one of the numerous available file-sharing services, such as Google Drive, OneDrive, or others, to submit any files related to Your Support Request to FaceTec for analysis.

My FaceTec Application is returning an exception. How to submit a Support Request and provide data to FaceTec for analysis?

You can submit a Crash/Exception Support Request by choosing the Support Form corresponding to the platform (FaceTec Server, Device SDKs) on which you are experiencing the behavior.

When sending Crash/Exception Stack Traces to FaceTec, please ensure the following:

  • Provide all data requested for the selected Crash/Exception Support Form.
  • If reporting multiple occurrences (e.g. 200), provide at least 5-10 Stack Traces for analysis, not only one stack, as this limits the analysis process.
  • Properly identify the Device SDK Type and Version for each Stack Trace submitted.

Guides to learn how to gather and send stack traces to FaceTec: FaceTec Server Crashes & Errors | Android Crash & Error Logs | Browser Exception & Error Logs | iOS Crash & Error Logs.

How should I request support from FaceTec to investigate Specific 3D Liveness or 3D:3D Matching Cases?

The 3D Liveness and Matching Support Form will guide you in providing the necessary data to investigate 3D Liveness and 3D:3D Matching Cases.

When sending a 3D Liveness or 3D:3D Matching Support Request to FaceTec, please ensure the following:

How should I request support from FaceTec to investigate Specific ID Scan Cases?

The ID Scan Support Form will guide you in providing the necessary data to investigate ID Scan Cases.

When sending an ID Scan Support Request to FaceTec, please ensure the following:

  • Select the appropriate type of ID Scan Behavior or Question for Your Support Request.
  • Provide all data requested in the Support Form for the selected category.
  • Provide at least 5 Demo Sessions or Exported ID Scans that demonstrate the behavior reported.

Does FaceTec provide Postman API Request/Response JSON examples and Test Data Collection?

Yes. FaceTec provides a Postman Test Suite Collection containing API Request/Response JSON examples and Test Data for both v9 and v10 SDKs to help Customers familiarize themselves with each API.

The v9 Postman Test Suite can be downloaded here. For v10, the Postman Test Suite and Data Collection are already included in the v10 FaceTec Server package.

The FaceTec Sample Apps also demonstrate the overall API flow and how data is handled within the SDKs, which is essential for a successful integration with Your App.