autheo_sdk 1.0.7
autheo_sdk: ^1.0.7 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,
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.