Building the SDK
Creating a Document Detector SDK Instance
To create an instance of DocumentDetector
, configure it using the provided methods to suit your application's needs.
Builder Methods
setAndroidSettings(AndroidSettings)
Configures Android-specific settings, including security configurations like root detection.
✅
setStage(CafStage)
Defines the environment stage (e.g., PROD
, BETA
). Default: PROD
.
✅
setPersonId(String)
Associates a unique person ID or CPF for the document capture flow.
✅
setPreviewSettings(PreviewSettings)
Enables or disables the preview screen for document capture. Default: true
.
❌
setNetworkSettings(int)
Sets the network timeout duration in seconds. Default: 20
.
❌
setUploadSettings(UploadSettings)
Configures upload-related settings when capturing documents.
❌
setDisplayPopup(bool)
Toggles the display of instructional popups before each capture step. Default: true
.
❌
setCountryCodeList(List)
Restricts accepted passport documents to specific countries.
❌
setMessageSettings(MessageSettings)
Customizes the messages displayed during the capture process.
❌
setUrlExpirationTime(String)
Configures the expiration time for image URLs on the server (e.g., "30m", "10d"). Default: 30m
.
❌
setUseAnalytics(bool)
Enables or disables data collection for analytics. Default: false
.
❌
setIOSSettings(IOSSettings)
Configures iOS-specific settings.
❌
setCurrentStepDoneDelayAndroid(bool, int?)
Enables or disables delay between capture steps on Android, and sets the duration (milliseconds).
❌
setCurrentStepDoneDelayIOS(int)
Sets the delay duration (in seconds) between capture steps on iOS.
❌
Example Implementation (Flutter)
Below is an example of how to integrate and configure the Document Detector SDK in a Flutter application.
void startDocumentDetector(List<DocumentCaptureFlow> captureFlow) async {
String personId = personIdController.text;
String mobileToken = mobileTokenController.text;
DocumentDetector documentDetector =
DocumentDetector(mobileToken: mobileToken, captureFlow: captureFlow);
// Configure Android-specific settings
AndroidSettings androidSettings = AndroidSettings(
securitySettings: SecuritySettings(
useAdb: true,
useDebug: true,
useDeveloperMode: true,
useEmulator: true,
useRoot: true));
documentDetector.setAndroidSettings(androidSettings);
documentDetector.setNetworkSettings(20);
documentDetector.setStage(isBeta ? CafStage.beta : CafStage.prod);
documentDetector.setPersonId(personId);
documentDetector.setPreviewSettings(PreviewSettings(show: true));
try {
DocumentDetectorEvent event = await documentDetector.start();
// Handle the result
if (event is DocumentDetectorEventSuccess) {
print("SUCCESS: ${event.documentType}");
} else if (event is DocumentDetectorEventFailure) {
print("FAILURE: ${event.errorMessage}");
} else if (event is DocumentDetectorEventClosed) {
print("User closed document capture flow");
}
} catch (e) {
print("Error starting DocumentDetector: ${e}");
}
}
Last updated