verisoul_sdk 0.4.62
verisoul_sdk: ^0.4.62 copied to clipboard
Verisoul helps businesses stop fake accounts and fraud
Flutter SDK #
Verisoul provides a Flutter SDK that allows you to implement fraud prevention in your cross-platform mobile applications. This guide covers the installation, configuration, and usage of the Verisoul Flutter SDK.
To run the SDK a Verisoul Project ID is required. Schedule a call here to get started.
System Requirements #
- Flutter SDK 3.0 or higher
- Dart 2.17 or higher
- iOS 14.0 or higher
- Android API level 24 (Android 7.0) or higher
- For Web: Modern browsers with JavaScript enabled
Installation #
Add Dependency #
dependencies:
flutter:
sdk: flutter
# ...
verisoul_sdk: 0.4.61
Android Configuration #
1. Update Minimum SDK Version
Update the Android minimum minSdk to 24 in android/app/build.gradle:
defaultConfig {
minSdk = 24
//...
}
2. Add Maven Repository
If an exception occurs during the build stating that the ai.verisoul:android package cannot be downloaded, add the following Maven repository inside your android/build.gradle file:
allprojects {
repositories {
// ...
maven { url = uri("https://us-central1-maven.pkg.dev/verisoul/android") }
}
}
iOS Configuration #
For iOS-specific configuration including Device Check and App Attest setup, please refer to the iOS SDK Documentation.
Usage #
Initialize the SDK #
Call configure() when your application starts, before running your app:
import 'package:verisoul_sdk/verisoul.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
VerisoulSdk.configure(projectId: "Project ID ", environment: VerisoulEnvironment.prod);
runApp(const MyApp());
}
The configure() method initializes the Verisoul SDK with your project credentials. This method must be called once when your application starts.
Parameters:
projectId: Your unique Verisoul project identifierenvironment: The environment to useVerisoulEnvironment.prodfor production orVerisoulEnvironment.sandboxfor testing
Get Session ID #
The getSessionApi() method returns the current session identifier after the SDK has collected sufficient device data. This session ID is required to request a risk assessment from Verisoul's API.
Important Notes:
- Session IDs are short-lived and expire after 24 hours
- The session ID becomes available once minimum data collection is complete (typically within seconds)
- You should send this session ID to your backend, which can then call Verisoul's API to get a risk assessment
Example:
final session = await VerisoulSdk.getSessionApi();
Reinitialize Session #
The reinitialize() method generates a fresh session ID and resets the SDK's data collection. This is essential for maintaining data integrity when user context changes.
Example:
await VerisoulSdk.reinitialize();
Provide Touch Events #
Wrap your App with VerisoulWrapper to automatically capture touch events:
runApp(VerisoulWrapper(child: const MyApp()));
Error Codes #
The SDK throws VerisoulException with the following error codes:
| Error Code | Description | Recommended Action |
|---|---|---|
| INVALID_ENVIRONMENT | The environment parameter passed to Verisoul.configure() is invalid. Valid values are "dev", "sandbox", or "prod". |
Ensure Verisoul.configure() parameter is exactly:• "dev", "sandbox", or "prod" • Case-sensitive • Free of whitespace |
| SESSION_UNAVAILABLE | A valid session ID could not be obtained. This typically occurs when Verisoul's servers are unreachable due to network blocking or a very slow connection. | • Implement exponential backoff. • Prompt user to check network or disable network blocker. • Log to identify blocking issues. |
| WEBVIEW_UNAVAILABLE | WebView is not available on the device. This can occur when WebView is disabled, missing, uninstalled, or corrupted on the device. | Prompt user to: • Enable WebView in settings • Update Android System WebView • Switch devices |
Exception Structure
All errors are thrown as VerisoulException with the following properties:
| Property | Type | Description |
|---|---|---|
| code | String | One of the error codes above |
| message | String | Human-readable error description |
| cause | Throwable? | The underlying exception that caused the error (if any) |
Web Support #
Add Verisoul Script #
Add the Verisoul script to your web/index.html:
<script
async
src="https://js.verisoul.ai/{env}/bundle.js"
verisoul-project-id="{project_id}"
></script>
Replace the following parameters:
{env}: Use eitherprodorsandbox{project_id}: Your project ID, which must match the environment
Content Security Policy (CSP) #
If your application has a Content Security Policy, update it to include the following Verisoul domains:
<meta
http-equiv="Content-Security-Policy"
content="script-src 'self' https://js.verisoul.ai; worker-src 'self' blob: data:;connect-src 'self' https://*.verisoul.ai wss://*.verisoul.ai;"
/>
Set Account Data (Web Only) #
The setAccountData() function provides a simplified way to send user account information to Verisoul directly from the client side. While easy to integrate, this method has important limitations:
- Offline analysis only: Data sent via account() is only visible in the Verisoul dashboard
- No real-time decisions: Unlike the server-side API, this method doesn't allow your application to receive and act on Verisoul's risk scores in real-time
- Limited use case: Designed specifically for initial pilots and evaluation purposes
await VerisoulSdk.setAccountData(
id: "example-id",
email: "[email protected]",
metadata: {"paid": true}
);
Example #
For a complete working example, see the example folder in this repository.