aadhaar_face_rd 0.1.3 copy "aadhaar_face_rd: ^0.1.3" to clipboard
aadhaar_face_rd: ^0.1.3 copied to clipboard

Flutter plugin for integrating UIDAI Aadhaar FaceRD service, enabling secure Aadhaar face authentication using the CAPTURE API on both Android and iOS devices.

Aadhaar FaceRD Flutter Plugin #

A Flutter plugin for integrating UIDAI Aadhaar FaceRD on Android and iOS, enabling secure Aadhaar face authentication using the official CAPTURE interface.

⚠️ Disclaimer

  • This plugin is NOT an official UIDAI SDK
  • Use only if you are a UIDAI-authorised AUA / KUA
  • All biometric capture, liveness checks, and encryption are handled only by the UIDAI FaceRD app
  • This plugin never accesses, stores, or transmits biometric data

✨ Features #

✅ Android FaceRD integration via secure intent
✅ iOS FaceRD integration using UIDAI headless URL scheme
✅ UIDAI-compliant PID Options XML builder
✅ FaceRD app installation check
✅ No biometric data captured or stored by the plugin
✅ Backend-first, audit-safe architecture
✅ Works on both Android and iOS


📱 Platform Behavior #

Android #

  • FaceRD is launched via intent
  • Encrypted PID may be returned to the app
  • App can proceed immediately after capture

iOS (Important) #

  • FaceRD runs in headless mode
  • Face capture & PID generation happen inside FaceRD app
  • PID is sent directly to backend using callbackUrl
  • App does NOT reliably receive PID
  • User must manually return to the app
  • App should poll backend using txnId

👉 This behavior is mandated by UIDAI and Apple security policies.


📘 Detailed Documentation #

  • 📱 iOS FaceRD Flow
    doc/ios_face_rd_flow.md

  • 🧠 Backend Integration (Mandatory for iOS)
    doc/backend_integration.md


🚀 Installation #

Add this to your pubspec.yaml:

dependencies:
  aadhaar_face_rd: ^0.1.3

⚙️ Platform Setup #

Android Setup (REQUIRED) Android 11+ Package Visibility

Android 11 and above require explicit package visibility for FaceRD.

Add the following inside your AndroidManifest.xml:

<queries>
    <package android:name="in.gov.uidai.facerd" />
    <intent>
        <action android:name="in.gov.uidai.rdservice.face.CAPTURE" />
    </intent>
</queries>

❗ Without this configuration, FaceRD installation checks will fail on Android 11+.

iOS Setup (REQUIRED) #

1️⃣ Info.plist Configuration

Add the following entries to Info.plist:

<!-- Allow querying Aadhaar FaceRD URL scheme -->
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>FaceRDLib</string>
</array>

<!-- Callback URL scheme for your app -->
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>face_rd_callback</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>face_rddemo</string>
        </array>
    </dict>
</array>

This is mandatory to:

Detect FaceRD installation

Launch FaceRD using the CAPTURE URL scheme

Aadhaar FaceRD Example App #

This example demonstrates how to use the aadhaar_face_rd plugin on both Android and iOS, including iOS lifecycle handling.

Structure #

example/lib/
├── main.dart
│ Entry point for the example app
│
├── services/facerd_service.dart
│ Wrapper around AadhaarFaceRd plugin
│ - Installation check
│ - Launch FaceRD
│ - Stream handling
│
└── screens/face_rd_demo_page.dart
UI layer
- Launch FaceRD
- iOS app resume handling
- Backend polling trigger (txnId based)

3
likes
160
points
187
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for integrating UIDAI Aadhaar FaceRD service, enabling secure Aadhaar face authentication using the CAPTURE API on both Android and iOS devices.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on aadhaar_face_rd

Packages that implement aadhaar_face_rd