Editorial portrait of a person looking at a phone camera in a green setting.
Liveness + Face Match + Local Biometric Database

Liveness.
Facial Biometrics.
Zero cost.

Facelocal SDK gives you liveness detection and facial biometrics at zero cost.

Native at its core.
Simple to integrate.
React Native
TypeScript
Expo Modules
Kotlin
Swift
How Facelocal works

From liveness
to approval.

facelocalThe path to approval

The same illustrated face appears in the capture, gallery and comparison.

  1. Liveness

    Native camera
    Liveness passed
    ReferenceAfter liveness

    Your customer completes the liveness check

  2. EXIF + Device Fingerprint

    Example of matching metadata
    Comparison of the photo’s metadata with the phone’s model profile
    Photo EXIFModel profile
    ManufacturerAppleManufacturerApple
    ModeliPhone 14ModeliPhone 14
    Eligible photo

    When searching the photo gallery, we only consider images with EXIF (Exchangeable Image File Format) identical to that of the liveness image. The idea is to compare images taken with the same phone.

  3. Face Match

    Reference
    Eligible photo
    Threshold met

    The SDK scans all images in the gallery and, as soon as it finds the first eligible match, stops the search and displays the result.

  4. Approved

    Search complete
    status: "approved"approved: true

    Your application receives the decision and criteria as JSON. The SDK delivers everything: Liveness + Biometric Face Match + Automatic Decision Model

Access to a facial biometric database is not easy to obtain. In some countries, such as Brazil, it is possible to access the federal government’s database of driver’s license photos, but this is not the reality around the world, leaving us dependent on document analysis that is expensive and inefficient. The idea was to create something that could be used worldwide at a very low cost, helping companies and developers achieve a basic level of compliance when it comes to determining whether someone is who they claim to be. Facelocal SDK is not an anti-fraud solution, but rather a low-cost stopgap tool. Between having nothing and having Facelocal SDK, Facelocal SDK is the better choice. The liveness capture is compared with eligible photos from the user-authorized library on their phone, without uploading to a server, and on-device processing costs nothing. You invest in this SDK once and that’s it—you can use it forever.

When searching the photo gallery, we only consider images with EXIF (Exchangeable Image File Format) identical to that of the liveness image. The idea is to compare images taken with the same phone, and we also compare Device Fingerprint information to ensure the compared images are from the same device. Is it a silver-bullet solution? Far from it. This information can be manipulated by advanced users with malicious intent.

Results your app can use

The decision and evidence.
In the same JSON.

The API returns approval, score and threshold, along with the compared photo’s EXIF and the capture’s Device Fingerprint. Your app can see which criteria were met and which photos were used.

Open integration guide
result.json · abbreviated example
{
  "status": "approved",
  "approved": true,
  "reason": "match-found",
  "faceMatch": {
    "similarity": 0.91,
    "similarityPercent": 91,
    "threshold": 0.83,
    "thresholdPercent": 83,
    "percentageIsProbability": false
  },
  "exif": {
    "manufacturerMatches": true,
    "modelMatches": true,
    "editable": true,
    "provesDeviceOrigin": false
  },
  "deviceFingerprint": {
    "kind": "model-profile",
    "uniqueDevice": false,
    "provesOwnership": false
  },
  "processing": "on-device",
  "identityVerified": false
}
Illustrative example: 0.91 = 91% similarity, above the 83% threshold. This is not accuracy or a probability of identity.

Truly native.

Android

Kotlin · CameraX · API 26+ (Android 8).
Physical ARM device and Release build.

Tested on a physical device

iOS

Swift · AVFoundation · iOS 16.4+.
Native implementation available.

Tested on iPhone
Before you integrate

Understand the criteria.
Integrate with clarity.

See which photos qualify, how EXIF and the Device Fingerprint inform the decision, and what each result means for your integration.

Why is Facelocal available at zero cost?

Liveness and Face Match run on the phone itself, without a per-verification fee or cloud biometrics service. Source access costs US$ 999, once, or can be unlocked with a valid coupon. The demo APK and guides are public.

Does my customer need to select or upload a photo?

No. Your customer completes liveness with the camera and grants full library access. Selfie search and Face Match are automatic, without manual selection or upload. The SDK stops at the first valid match; it does not need to compare the entire library. A search that reaches its configured limit without a match, with photos still to examine, is inconclusive.

Which photos are eligible for Face Match?

Only locally available photos with a single face and EXIF containing the manufacturer, model and original date. The SDK checks the manufacturer and model against the liveness device’s profile, accepting the exact model or a previously verified hardware alias. Photos missing these fields or from a different model are excluded.

What do EXIF and the Device Fingerprint prove?

They indicate consistency between the photo’s metadata and the model profile used for capture. The SDK reads EXIF from the same bytes it compares, but metadata can be edited and many devices share the same model. They do not prove that a photo was never altered or that it came from that specific physical device.

What happens if my customer limits photo access?

The SDK respects the permissions granted by the operating system. If access is limited or denied, it ends the flow without scanning the library. The limited-access option cannot be hidden and permission cannot be forced. Your app should explain how to grant full access in Settings if the customer wants to continue.

Does the result confirm my customer’s identity or device ownership?

The result identifies a facial match between the liveness capture and an eligible library photo. It does not validate a name, Brazilian tax ID (CPF), legal identity or phone ownership. The similarity percentage is a model score, not a probability of identity or a measure of accuracy.

Has the SDK been tested on Android and iOS?

Yes. The SDK has been tested on Android devices and iPhones. Target compatibility is Android 8 / API 26+ and iOS 16.4+. Both require your own native Release build; Expo Go and browsers do not run the biometrics.

Are my customer’s photos retained after verification?

The facial reference remains in native memory and is released when scanning ends. The JSON API can return up to two copies in private cache on the customer’s device, with a TTL of 30 to 300 seconds, defaulting to 300. Call releaseFaceLocalVerification after the interface and app components have finished using the images. The TTL does not guarantee cleanup at the exact second if the process is suspended; respect expiresAt and explicitly release the images. Gallery originals are not deleted.

Does the SDK protect against image injection?

There are local integrity, frame-sequence, native-camera and session checks. They reduce known forms of manipulation, but do not make a compromised device trustworthy. There is no guarantee of invulnerability, anti-injection certification or remote attestation. A server must not accept JSON generated on the device as irrefutable proof.

Can I integrate it into an app that needs internet access?

Review the policy first. The Face Local plugin removes the INTERNET permission from the entire Android Release build, not just the biometrics. Keeping network access requires a configuration review and an audit of the native libraries. On iOS, ATS does not block all HTTPS traffic. Validate the app’s network and storage behavior on a physical device before using it in production.

What are the Face Local terms of use?

You may integrate Face Local into your applications under your own brand. Selling or reselling the SDK, including a repackaged or renamed version, is not permitted. This restriction does not prevent you from selling your own application. See the license in the documentation.

Your next step

Bring Face Local
into your app.

Source code for US$ 999, paid once, or a valid coupon. Start with the public Android APK and explore the integration guides. On-device processing still has no per-verification fee.

Read the documentation first
v0.6.0

Face Local SDK

TypeScript + Kotlin + Swift.
Typed SDK, source code and integration guides.

Source code · US$ 999 once or a valid coupon.

Get source code

Demo app.

Try the liveness and Face Match flow before integrating the SDK.

Looking for the latest version…

Face Local SDK. Review the terms of use and distribution before integrating it into your application. Terms of use.