autheo_sdk 1.0.6 copy "autheo_sdk: ^1.0.6" to clipboard
autheo_sdk: ^1.0.6 copied to clipboard

A Flutter SDK for KYC verification

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,
  // Optional
  email: 'john@example.com',
  phone: '0244123456',
  idType: 'Ghana Card',
  idNumber: 'GHA-123456789-0',
  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 No 'Ghana Card' ID document type
idNumber String No '' 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.