---
description: The new Capacitor Biometrics plugin allows you to request biometric authentication, such as using face recognition or fingerprint recognition, on the device.
title: Announcing the Biometrics Plugin for Capacitor - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/announcing-the-capacitor-biometrics-plugin.png
---

[ Skip to content](#announcing-the-capacitor-biometrics-plugin) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* [  Assist ](/docs/cloud/assist/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* [  Conclusion ](#conclusion)

* Related links

# Announcing the Capacitor Biometrics Plugin[¶](#announcing-the-capacitor-biometrics-plugin "Permanent link")

Today we are excited to announce our [Capacitor Biometrics plugin](/docs/plugins/biometrics/). It lets you request **biometric authentication** (Face ID, fingerprint) and device credentials (PIN, pattern, password) on Android and iOS through a single API. The plugin is available to all Capawesome [Insiders](/docs/insiders/).

Let's take a quick look at the [API](/docs/plugins/biometrics/#api) and how to use the plugin in your Capacitor app.

## Bonus: Video Tutorial and Demo App[¶](#bonus-video-tutorial-and-demo-app "Permanent link")

We created a **step-by-step video tutorial** that walks through installing the plugin, configuring iOS Face ID permissions, organizing your biometrics logic in a small helper module, triggering authentication from the app UI, and handling success and error states.

* **[Capacitor Biometrics Demo App](https://github.com/capawesome-team/capacitor-biometrics-demo)** — A minimal, framework-agnostic demo (vanilla JavaScript and Capacitor) with a complete biometric authentication flow using Face ID or fingerprint.

## Installation[¶](#installation "Permanent link")

To install the Capacitor Biometrics plugin, please refer to the [Installation](/docs/plugins/biometrics/#installation) section in the plugin documentation.

## Usage[¶](#usage "Permanent link")

Let's take a look at the basic usage of the plugin. You can find the complete API reference in the [API](/docs/plugins/biometrics/#api) section of the documentation. The plugin supports both **biometric authentication** and **device credential authentication**. Biometric authentication uses the device's biometric capabilities, such as fingerprint or face recognition, while device credential authentication uses the device's lock screen PIN, pattern, or password.

### Biometric Authentication[¶](#biometric-authentication "Permanent link")

The most important method of the plugin is [authenticate()](/docs/plugins/biometrics/#authenticate), which allows you to request biometric authentication from the user. You can customize the authentication prompt with various options, such as the title, subtitle, and button text:

`[](#%5F%5Fcodelineno-0-1)import { Biometrics, ErrorCode } from '@capawesome-team/capacitor-biometrics';
[](#%5F%5Fcodelineno-0-2)
[](#%5F%5Fcodelineno-0-3)
[](#%5F%5Fcodelineno-0-4)const authenticate = async () => {
[](#%5F%5Fcodelineno-0-5)  try {
[](#%5F%5Fcodelineno-0-6)    await Biometrics.authenticate({
[](#%5F%5Fcodelineno-0-7)      title: 'Authentication Required',
[](#%5F%5Fcodelineno-0-8)      subtitle: 'Please authenticate to continue',
[](#%5F%5Fcodelineno-0-9)      cancelButtonText: 'Cancel',
[](#%5F%5Fcodelineno-0-10)      iosFallbackButtonText: 'Use Passcode',
[](#%5F%5Fcodelineno-0-11)    });
[](#%5F%5Fcodelineno-0-12)  } catch (error) {
[](#%5F%5Fcodelineno-0-13)    if (error.code === ErrorCode.USER_CANCELED) {
[](#%5F%5Fcodelineno-0-14)      console.log('User canceled the authentication.');
[](#%5F%5Fcodelineno-0-15)    } else if (error.code === ErrorCode.NOT_ENROLLED) {
[](#%5F%5Fcodelineno-0-16)      console.log('No biometric authentication enrolled.');
[](#%5F%5Fcodelineno-0-17)    } else if (error.code === ErrorCode.NOT_AVAILABLE) {
[](#%5F%5Fcodelineno-0-18)      console.log('Biometric authentication not available.');
[](#%5F%5Fcodelineno-0-19)    } else {
[](#%5F%5Fcodelineno-0-20)      console.log('Another error occurred:', error);
[](#%5F%5Fcodelineno-0-21)    }
[](#%5F%5Fcodelineno-0-22)  }
[](#%5F%5Fcodelineno-0-23)};
`

The method returns a promise that resolves when the user successfully authenticates or rejects with an error if the user cancels the authentication or if there is an error during the authentication process. You can handle the error using the `catch` block, where you can check the error code to determine the reason for the failure. The error codes are defined in the `ErrorCode` enum.

In most cases, you will also want to use the [isEnrolled()](/docs/plugins/biometrics/#isenrolled) method to check whether the device supports biometric authentication at all and whether the user has set it up:

`[](#%5F%5Fcodelineno-1-1)import { Biometrics } from '@capawesome-team/capacitor-biometrics';
[](#%5F%5Fcodelineno-1-2)
[](#%5F%5Fcodelineno-1-3)const isEnrolled = async () => {
[](#%5F%5Fcodelineno-1-4)  const result = await Biometrics.isEnrolled();
[](#%5F%5Fcodelineno-1-5)  if (result.isEnrolled) {
[](#%5F%5Fcodelineno-1-6)    console.log('Biometric authentication is enrolled.');
[](#%5F%5Fcodelineno-1-7)  } else {
[](#%5F%5Fcodelineno-1-8)    console.log('No biometric authentication enrolled.');
[](#%5F%5Fcodelineno-1-9)  }
[](#%5F%5Fcodelineno-1-10)};
`

It's recommended to call this method before calling [authenticate()](/docs/plugins/biometrics/#authenticate) to ensure that the user has set up biometric authentication on their device.

### Device Credential Authentication[¶](#device-credential-authentication "Permanent link")

In addition to biometric authentication, the plugin also supports device credential authentication using the [authenticate()](/docs/plugins/biometrics/#authenticate) method. For this, you need to set the `allowDeviceCredential` option to `true` when calling the method:

`[](#%5F%5Fcodelineno-2-1)import { Biometrics } from '@capawesome-team/capacitor-biometrics';
[](#%5F%5Fcodelineno-2-2)
[](#%5F%5Fcodelineno-2-3)const authenticate = async () => {
[](#%5F%5Fcodelineno-2-4)    await Biometrics.authenticate({
[](#%5F%5Fcodelineno-2-5)      allowDeviceCredential: true,
[](#%5F%5Fcodelineno-2-6)    });
[](#%5F%5Fcodelineno-2-7)};
`

This will show the device's lock screen PIN, pattern, or password prompt if biometric authentication is not available or not enrolled. You can also use the [hasDeviceCredential()](/docs/plugins/biometrics/#hasdevicecredential) method to check whether the device supports device credential authentication:

`[](#%5F%5Fcodelineno-3-1)import { Biometrics } from '@capawesome-team/capacitor-biometrics';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const hasDeviceCredential = async () => {
[](#%5F%5Fcodelineno-3-4)  const { hasDeviceCredential } = await Biometrics.hasDeviceCredential();
[](#%5F%5Fcodelineno-3-5)  return hasDeviceCredential;
[](#%5F%5Fcodelineno-3-6)};
`

## Conclusion[¶](#conclusion "Permanent link")

We hope you find the [Capacitor Biometrics](/docs/plugins/biometrics/) plugin useful. Check the [API Reference](/docs/plugins/biometrics/#api) for the full plugin documentation. 

**Related reading:**

* [Exploring the Capacitor Biometrics API](/blog/exploring-the-capacitor-biometrics-api/)
* [How to Securely Store Credentials with Capacitor](/blog/how-to-securely-store-credentials-with-capacitor/)
* [Alternative to the Ionic Identity Vault plugin](/blog/alternative-to-ionic-identity-vault-plugin/).

**Missing a feature?** 

[Create a feature request](https://github.com/capawesome-team/capacitor-plugins/issues/new/choose) in our [GitHub repository](https://github.com/capawesome-team/capacitor-plugins).

March 18, 2026 

 Back to top 