Flutter SDK
Integrate VOVE ID in Flutter with typed statuses, locales, and step-by-step control.
Use the plugin version your team has tested and approved.
Install
dependencies:
vove_id_flutter: ^1.6.0Run:
flutter pub get
cd ios && pod installAdd a camera usage description on iOS and camera permission on Android, then request authorization at runtime.
Initialize
import 'package:flutter/widgets.dart';
import 'package:vove_id_flutter/vove_id_flutter.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Vove.initialize(
environment: VoveEnvironment.sandbox,
publicKey: 'public_sandbox_replace_me',
);
runApp(const MyApp());
}The public key may ship in the application. Create the session token on your backend; never embed the private API key in the app.
Start
Treat the result as a journey signal. Your backend should verify the webhook and retrieve the current KYC resource before making a final decision.
Configuration
showUI
bool
true
Show the built-in welcome and summary screens.
exitAfterEachStep
bool
false
Return control after each configured step.
onMaxAttemptsReached
VoidCallback?
null
Present an approved recovery or support path.
locale
VoveLocale?
en
en, fr, ar, de, or arMA.
enableVocalGuidance
bool?
false
Enable supported spoken guidance.
Documented status values are success, pending, canceled, and maxAttempts. Treat any other value as a safe pending/error state—never as success.
Step-by-step journey
Next-step values map to liveness, ID document, driving license, address proof, car registration document, done, or unknown. They depend on the configured flow.
Production checklist
Pin and regression-test the package version.
Confirm iOS and Android permission denial/recovery paths.
Test physical devices across supported OS versions.
Match
sandbox/productionto the public key and session token.Test backgrounding, process recreation, network loss, and max attempts.
Reconcile final state on the backend.
Troubleshooting
iOS cannot find VoveStartConfiguration
Update CocoaPods metadata, run pod install, and rebuild.
Native plugin is missing
Stop the app and perform a full native rebuild; hot reload cannot install plugins.
Session token is rejected
Fetch a fresh token from the matching environment.
Camera is blank or denied
Check platform declarations, runtime authorization, and physical-device behavior.
Unrecognized result or next step
Keep the user pending, capture non-sensitive diagnostics, and escalate.
See SDK compatibility, session creation, and production readiness.
Last updated