LogoLogo
Useful links
  • Home
  • Product guides
  • API
  • SDKs
  • Overview
  • First steps
  • ANDROID
    • Getting Started with the SDK
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • Setting up the SDK
          • Setting properties
          • Capture Stages
          • Messages Settings
          • Customization
          • Security Settings
          • Detection Steps
          • Upload Mode
          • Advanced Settings
            • Proxy configuration
            • Preview configuration
        • Start Document Detection
        • Source Code
        • Google security form
        • Reduce SDKs size
        • SDKs response
        • References
        • FAQ
      • Face Liveness
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • SDK Lifecycle
        • Building the SDK
        • Start Liveness Verification
        • Source Code
        • References
        • Advanced Features
        • FAQ
      • Face Authenticator
        • Release Notes
      • Smart Auth
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • Permissions
        • SDK Lifecycle
        • Building the SDK
        • Start Smart Authentication
        • Source Code
        • References
        • FAQ
      • Face Liveness (deprecated)
        • Release Notes
  • iOS
    • Getting Started with the SDK
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Installing the SDK
        • Setting up the SDK
          • Setting properties
          • Messages Settings
          • Customization
          • Detection Steps
          • Upload Mode
          • Advanced Settings
            • Proxy configuration
            • Preview configuration
        • Start Document Detection
        • References
        • FAQ
      • Face Liveness
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • SDK Lifecycle
        • Building the SDK
        • Start Liveness Verification
        • Source Code
        • References
        • FAQ
      • Face Authenticator
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • Building the SDK
        • Start the SDK
        • References
        • FAQ
      • Smart Auth
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • SDK Lifecycle
        • Building the SDK
        • Start Smart Authentication
        • Source Code
        • References
        • FAQ
      • Face Liveness (deprecated)
        • Release Notes
  • REACT NATIVE
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Document Verification
        • Source Code
        • TypeScript References
        • Customizing Style
        • FAQ
      • Face Liveness
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Liveness Verification
        • Source Code
        • TypeScript References
        • FAQ
      • Face Authenticator
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Authentication Verification
        • Source Code
        • TypeScript References
        • FAQ
      • Smart Auth
        • Getting started
        • Release notes
        • Using Native Modules
          • Requirements
          • Gradle Source Code
          • Podfile Source Code
          • Native Module Android
          • Native Module iOS
          • Import Native Modules
          • Source Code
          • TypeScript References
          • FAQ
        • Using Expo Modules
          • Requirements
          • Create Local Expo Module
          • Gradle Source Code
          • Podspec Source Code
          • Native Module Android
          • Native Module iOS
          • Import Expo Modules
          • Source Code
          • TypeScript References
          • FAQ
  • WEB (JAVASCRIPT)
    • Standalone Modules
      • Document Detector
        • Getting started
        • SDK builder options
          • Analytics
          • Appearance
          • Messages
        • SDK methods
        • Event listeners
        • Customization
        • Release notes
      • Face Liveness
        • Customization
        • Release notes
      • Face Authenticator
        • Customization
        • Release notes
      • Smart Auth
        • SDK errors
        • Customization
        • Release notes
LogoLogo

2025 © Caf. - All rights reserved

On this page
  • Creating a Document Detector SDK Instance
  • Builder Methods
  • Example Implementation (Flutter)
  1. FLUTTER
  2. Standalone Modules
  3. Document Detector

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

Parameter
Description
Required

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 2 months ago