SDK reference · Android SDK / Android Individual Modules

Custom Watchlist

The Custom Watchlist module screens the user's collected data, including biometric face data when available, against your organization's private watchlist of blocked or trusted users, and influences the Session outcome accordingly. It runs as a background process and isn't visible to the end user. The lists and matching criteria are driven by your Incode configuration.

For an overview of this module and how it works, see Custom Watchlist.

How you use this module depends on your integration pattern. In Patterns 1 and 2, you add the module to a FlowConfig in code as shown on this page. In Pattern 3, you define your modules and configuration in Dashboard as a Flow or Workflow and reference it by ID with startFlow() or startWorkflow() as shown on Run Flows Configured in Dashboard.

Add Custom Watchlist

Add the module with addCustomWatchlist(). If you also use the Antifraud module, call addAntifraud() first, then addCustomWatchlist(), so Custom Watchlist runs after Antifraud.

flowConfigBuilder.addCustomWatchlist()
flowConfigBuilder.addCustomWatchlist();

Custom Watchlist ships both a v1 (legacy View) and a v2 (Jetpack Compose) capture screen; the active one depends on your Incode configuration. Contact your Incode representative to enable v2.

Example

The example below adds Custom Watchlist as the only step in the flow and listens for the result through onCustomWatchlistProcessed().

val flowConfig = FlowConfig.Builder()
    .addCustomWatchlist()
    .build()

val onboardingListener = object : OnboardingListener() {
    override fun onCustomWatchlistProcessed(customWatchlistResult: CustomWatchlistResult) {
        // Custom watchlist step processed. Inspect the result.
    }
}

IncodeWelcome.getInstance()
    .startOnboarding(activityContext, sessionConfig, flowConfig, onboardingListener)
FlowConfig flowConfig = new FlowConfig.Builder()
    .addCustomWatchlist()
    .build();

IncodeWelcome.OnboardingListener onboardingListener = new IncodeWelcome.OnboardingListener() {
    @Override
    public void onCustomWatchlistProcessed(@NonNull CustomWatchlistResult customWatchlistResult) {
        // Custom watchlist step processed. Inspect the result.
    }
};

IncodeWelcome.getInstance()
    .startOnboarding(activityContext, sessionConfig, flowConfig, onboardingListener);

Configuration Options

Custom Watchlist has no configurable options. It is added with a no-argument builder method. The watchlist sources and matching behavior are controlled by your Incode Flow or Workflow configuration.

For the complete option set, see CustomWatchlist in API Reference.

Result

Custom Watchlist delivers a CustomWatchlistResult to the onCustomWatchlistProcessed(CustomWatchlistResult) callback on your IncodeWelcome.OnboardingListener. Key fields include:

  • success: true if the custom watchlist check completed successfully; otherwise, false.
  • Fields inherited from BaseResult:
    • resultCode: The ResultCode for this result.
    • error: When resultCode is ERROR, the Throwable that caused it; otherwise, null.
    • deviceStats: The DeviceStats snapshot of the device state when the result was produced.
    • motionStatus: Device motion assessment during capture. One of the following:
      • UNCLEAR: Motion could not be determined; the default.
      • PASS: Device motion was within acceptable limits.
      • FAIL: Excessive device motion was detected.

Errors surface via OnboardingListener.onError(Throwable). This module does not define a module-specific exception type.

For all fields, see CustomWatchlistResult in API Reference.

Was this page helpful?