Facial ID Reference Guide

Understand the FACEIO Facial ID, also called the Index ID: how fio.js returns it, how it maps to enrolled users, how it appears in webhook events, and how to delete it through the REST API.

Connect to the FACEIO Console to create applications, manage APIs, and configure webhooks for enrollment, authentication, and Facial ID events.

What is a FACEIO Facial ID?

The application-scoped identifier returned for an enrolled FACEIO user.

The Facial ID, also called the Index ID, is the unique identifier assigned to a user after a successful FACEIO enroll() operation. Your application receives this value as facialId and can use it to map a FACEIO enrollment to a local account record.

A Facial ID is not the user's email address, password, username, or database primary key. It is the identifier FACEIO returns so your application can recognize the same enrolled user on future authenticate() calls and related webhook events.

If this is your first FACEIO implementation, start with the Getting Started guide to create an application and prepare your App Public ID, then use the Integration Guide to wire enroll(), authenticate(), and Facial ID handling into your web application.

Created during enrollment

Returned by enroll() after the user completes the FACEIO enrollment flow.

Returned during login

Returned by authenticate() so your app can identify the authenticated enrolled user.

Deleted on request

Removed with the /deletefacialid REST API when a user disables face authentication or requests deletion.

Treat the Facial ID as account-security data. Store it server-side when you need to link FACEIO authentication to a local account, avoid exposing it in public logs or analytics, and provide a deletion path that follows your privacy obligations and the FACEIO Privacy Best Practices.

How fio.js Returns the Facial ID

FACEIO exposes the Facial ID through the resolved Promise returned by the client-side fio.js methods. The exact object contains more fields, but the important account-linking value is facialId.

Flow
Returned value
How to use it
userInfo.facialId
Store it in your backend and link it to the newly enrolled user account.
userData.facialId
Compare it with the account record expected by your application before creating a session.
facialId
Use it to synchronize enrollment, authentication, and deletion events with your backend.

If you pass a payload during enroll(), FACEIO can return that payload during future authentication. Keep the payload limited to values your application needs, and do not use client-side payload data as the only authorization check.

Facial ID Lifecycle

  1. 1. Create a FACEIO application. Use the Getting Started guide and the FACEIO Console ↗ to configure your application, widget settings, and security options.
  2. 2. Enroll the user. Follow the Integration Guide, then call enroll() after the user chooses to enable facial authentication and grants the required browser permissions.
  3. 3. Store the returned facialId. Save it in your backend if you need to map FACEIO authentication to your local account model.
  4. 4. Authenticate returning users. Call authenticate() and compare the returned facialId with the account or session your application expects.
  5. 5. Keep the backend synchronized. Use webhooks when enrollment, authentication, or Facial ID deletion events should update account state, audit logs, or risk controls.
  6. 6. Delete when needed. Use /deletefacialid when a user revokes consent, deletes their account, disables biometric login, or requests removal.

The Facial Recognition Engine

The selected facial recognition engine maps an enrolled user's face into a mathematical feature vector used for future matching. FACEIO returns the Facial ID so your application can reference the enrolled record inside its own account workflow.

FACEIO itself, including fio.js, the embedded widget, the REST API, and the Console, does not store, handle, or have access to biometric hashes. The facial recognition engine selected by the application owner manages those hashes according to the engine choice, region, consent flow, and deletion policy.

Available Recognition Engines

When you create a new application ↗, FACEIO lets you choose a recognition engine for that application. The engine choice affects how enrollment and matching are handled behind the FACEIO widget.

PixLab Insight
Default

The default engine developed by PixLab ↗ for FACEIO applications.

AWS Rekognition

An alternative engine option backed by Amazon Web Services infrastructure.

Use the FACEIO Console ↗ to create a test application and validate which engine and security settings fit your user experience, account flow, and deployment requirements.

Facial Vectors and Biometric Hashes

A facial vector, also called a biometric hash, is an array of floating-point values produced by the selected recognition engine during enrollment. FACEIO does not expose that biometric hash to your application through fio.js; your application receives the Facial ID and related response fields.

Do not treat a Facial ID as a public profile identifier or expose it in browser logs, analytics events, public support threads, or URLs. If you store it locally, store it server-side with the same care you apply to authentication-related account data.

For privacy planning, combine this reference with the Privacy Best Practices, Security Best Practices, and Trust Center.

How Developers Should Handle Facial IDs

  • Store it with account data. Save the returned facialId in your backend when you need to link FACEIO to a local user record.
  • Do server-side checks. Use the returned Facial ID as an input to your authorization logic, not as a standalone session grant.
  • Keep payloads minimal. If you attach a payload during enrollment, include only data your authentication flow actually needs.
  • Synchronize with webhooks. Use webhook events when changes to enrollment or deletion state must reach your backend.
  • Offer user controls. Give enrolled users a path to disable biometric login or request Facial ID deletion.
  • Document retention. Define when Facial IDs are kept, deleted, or unlinked in your product and privacy notices.

Deleting Facial IDs With the REST API

Facial ID deletion is performed through the FACEIO REST API using the /deletefacialid endpoint. Provide the Facial ID you want to remove from the target application using the supported REST API request format documented in the REST API reference.

After successful deletion, that enrolled Facial ID can no longer be used to authenticate the user. If the same user later chooses to enroll again, FACEIO creates a new enrollment record and returns a new Facial ID.

When to delete a Facial ID

  • The user disables biometric login or revokes consent for facial authentication.
  • The user deletes their account or requests deletion of their enrollment record.
  • Your retention policy says the enrollment is no longer needed.
  • Your support or security team needs to unlink the user from the current Facial ID and require re-enrollment.

For product and privacy guidance around user deletion, consent revocation, and retention, read the Privacy Best Practices Guide. For backend event handling, read the FACEIO Webhooks reference. For security controls around deletion and account recovery, review the Security Best Practices.

Privacy and Security Notes

Facial IDs sit at the intersection of authentication, privacy, account recovery, and user consent. Handle them as security-sensitive identifiers even though they are not biometric hashes. FACEIO does not store, handle, or have access to biometric hashes; the selected recognition engine manages them while your application receives the returned facialId for account mapping.

Privacy Best Practices

Plan user consent, Facial ID deletion, retention, and account-level privacy controls before launch.

View Privacy Guide

Security Best Practices

Review domain restrictions, PIN policy, liveness checks, webhook validation, and backend authorization.

View Security Guide

REST API Deletion

Use the REST API when a user disables facial authentication, revokes consent, or requests removal of an enrolled Facial ID.

View Deletion Endpoint

Webhook Events

Use webhooks to keep your backend synchronized when enrollment, authentication, or deletion events change account state.

View Webhooks

Start a 5 minutes Facial Authentication integration...

Create a FACEIO application, implement fio.js, store the returned facialId safely, and connect deletion or webhook workflows when your backend needs them.

Application-Scoped IDs
Deletion API
Webhook Events