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:trueif the custom watchlist check completed successfully; otherwise,false.- Fields inherited from
BaseResult:resultCode: TheResultCodefor this result.error: WhenresultCodeisERROR, theThrowablethat caused it; otherwise,null.deviceStats: TheDeviceStatssnapshot 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.