One call shows the check in a bottom sheet and returns a one-time token for your server. Android and iOS, in 35 languages.
Add the package
Download the SDK zip from the docs and copy its sdk/flutter folder into your project, then add it as a path dependency. It uses webview_flutter and nothing else.
YAML · pubspec.yaml
# pubspec.yaml: the Flutter SDK is the sdk/flutter folder of the SDK zip
dependencies:
fitmykb_verify:
path: ./packages/fitmykb_verify
Allow your app
In your dashboard, add the app's package name or bundle id (for example com.example.shop) as one of the site key's websites. That's the only setting.
Ask for the check
FitMyKBVerify.verify opens a bottom sheet with the check and returns the token, or null if the person closes it. Language, theme, size and puzzle style work as on the web.
Dart · sign-up
import 'package:fitmykb_verify/fitmykb_verify.dart';
Future<void> createAccount(BuildContext context) async {
final token = await FitMyKBVerify.verify(
context,
siteKey: 'YOUR_SITE_KEY',
appId: 'com.example.shop', // your package name / bundle id
language: 'hi', // or leave it out to follow the phone
);
if (token == null) return; // the person closed the sheet
// Send the token to YOUR server, which checks it with siteverify.
await api.signUp(email, password, captcha: token);
}
Check it on your server
Send the token with the sign-up request. Your server posts it to siteverify with the secret. Never put the secret in the app: anyone can read an app's files.
Score only
Pass action: 'signup' to skip the box entirely: the sheet closes by itself and your server gets a score from 0 to 1.