Autheo SDK

A Flutter SDK for KYC verification — ID card capture, liveness selfie, OTP, and address verification.

Requirements

Minimum
Flutter 3.16.0
Dart 3.2.0
Android API 21 (Android 5.0)
iOS 12.0

Installation

Add to your pubspec.yaml:

dependencies:
  autheo_sdk: <latest-version>

Then run:

flutter pub get

Platform Setup

Android

Add the following permissions to android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Set minimum SDK version in android/app/build.gradle:

minSdkVersion 21

iOS

Add the following keys to ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>Required to capture ID card and selfie for verification</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>Required to verify your location for address verification</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>Required to select proof of residence document</string>

Set minimum deployment target to iOS 12.0 or higher in ios/Podfile:

platform :ios, '12.0'

Usage

import 'package:autheo_sdk/autheo_sdk.dart';

final result = await AutheoSDK.startVerification(
  context,
  apiKey: 'your-api-key',
  firstName: 'John',
  lastName: 'Doe',
  businessId: 'your-business-id',
  verificationType: 'ID Verification',
  isAddressCheck: false,
  isAmlCheck: false,
  isCreditCheck: false,
  isOtpRequired: true,
  idType: 'Ghana Card',
  idNumber: 'GHA-123456789-0',
  // Optional
  email: 'john@example.com',
  phone: '0244123456',
  addressCheckType: 'digital', // 'standard' | 'digital' | 'physical'
);

if (result.isSuccess) {
  debugPrint('Verification passed: ${result.message}');
} else {
  debugPrint('Verification failed: ${result.message}');
}

Parameters

Parameter Type Required Default Description
apiKey String Yes Your Autheo API key
firstName String Yes Candidate first name
lastName String Yes Candidate last name
businessId String Yes Your business account ID
verificationType String Yes e.g. 'ID Verification'
isAddressCheck bool Yes Include address verification step
isAmlCheck bool Yes Run AML/blacklist check
isCreditCheck bool Yes Run credit history check
isOtpRequired bool Yes Require OTP before proceeding
email String No '' Candidate email
phone String No '' Candidate phone number
idType String Yes ID document type e.g. 'Ghana Card'
idNumber String Yes ID document number
addressCheckType String No 'digital' 'standard', 'digital', or 'physical'

Result

VerificationResult is returned with:

Field Type Description
isSuccess bool true if verification completed successfully
message String? Human-readable status message
data Map<String, dynamic>? Verification response data
error String? Error detail if verification failed

Troubleshooting

Camera not opening on Android — ensure CAMERA permission is declared and minSdkVersion is at least 21.

Face detection not working on certain devices — the SDK automatically caps resolution and uses NV21 format with row-padding stripped for compatibility with Samsung and Sony devices.

Firebase duplicate class error — if your app uses firebase-messaging, this SDK is safe. The google_ml_kit meta-package (which caused this conflict) has been replaced with the specific google_mlkit_face_detection package.