Flutter
Overview
The vove_id_flutter plugin wraps the native Vove iOS and Android SDKs to deliver a single, idiomatic Dart API for ID verification, KYC, and AML compliance. It supports:
Sandbox and production environments
Full-screen or custom UI flows
Locale overrides
Vocal guidance
Per-step exits and next-step routing
Max-attempt callbacks
Quickstart
Initialize the SDK
Call Vove.initialize as soon as your verification UI loads—before you invoke Vove.start—to ensure the native SDK is ready. For most apps this happens when the screen that initiates verification is displayed:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Vove.initialize(
environment: VoveEnvironment.sandbox, // or production
publicKey: 'YOUR_PUBLIC_KEY',
);
runApp(const MyApp());
}Start a verification session
Generate a session token on your backend (see Vove’s REST API docs) and pass it to Vove.start. The call returns a VoveVerificationResult describing the current status and the next required step (when exitAfterEachStep is enabled).
final config = VoveStartConfiguration(
showUI: true,
exitAfterEachStep: false,
onMaxAttemptsReached: () {
// e.g., prompt the user to contact support
},
);
final result = await Vove.start(
sessionToken: 'SESSION_TOKEN_FROM_BACKEND',
configuration: config,
locale: VoveLocale.fr,
enableVocalGuidance: true,
);
switch (result.status) {
case VoveVerificationStatus.success:
// grant access
break;
case VoveVerificationStatus.pending:
// wait for manual review
break;
case VoveVerificationStatus.maxAttempts:
// show support options
break;
default:
// handle other outcomes
}Result Values
VoveVerificationStatus can be:
successpendingcanceledmaxAttempts
When exitAfterEachStep is true, result.nextStep indicates the next action (ID_DOCUMENT, LIVENESS, ADDRESS_PROOF, CAR_REGISTRATION_DOCUMENT, DRIVING_LICENSE, DONE, or unknown).
Configuration Options
showUI
bool
true
Displays Vove’s built-in welcome/summary screens. Disable to provide your own UI.
exitAfterEachStep
bool
false
Returns control after each step (e.g., ID_DOCUMENT, LIVENESS) so you can interleave your own flows.
onMaxAttemptsReached
VoidCallback?
null
Invoked when the user reaches the maximum verification attempts.
locale
VoveLocale?
en
Overrides the SDK UI language (en, fr, ar, de, arMA).
enableVocalGuidance
bool?
false
Plays voice instructions during the 3D liveness step.
Troubleshooting
VoveStartConfiguration not found (iOS)
Run pod repo update && pod install so VoveSDK ≥ 1.5.0 is fetched.
Session token rejected
Confirm your backend uses Vove’s Verification Session API and you’re passing the fresh token unmodified.
Last updated