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. The lists and matching criteria are driven by your Incode configuration. When the flow reaches this module, it shows a spinner during the check and then a brief success or failure screen. To show no UI, run Custom Watchlist as a headless API instead.
For an overview of this module and how it works, see Custom Watchlist.
How you use this module depends on your integration pattern. When the app defines the steps in code, you add the module to an IncdOnboardingFlowConfiguration as shown below; when the flow is defined in Dashboard, you reference it and let the back end drive the steps. See Integration Approaches.
Availability: All variants.
UI: v1 and v2.
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.
flowConfig.addCustomWatchlist()
Configuration Options
Custom Watchlist has no configurable options. The watchlist sources and matching behavior are controlled by your Incode Flow or Workflow configuration.
Result
func onCustomWatchlistCompleted(_ result: CustomWatchlistResult)
CustomWatchlistResult fields:
success: Bool?:truewhen the watchlist check completed cleanly.falseis a single catch-all value covering both a non-clean backend result (which may include a match) and an operational failure (for example, a network error). The SDK does not expose a way to distinguish which occurred from this field alone.nilonly reflects the type's unset default; the SDK does not currently delivernilto signal a pending result.error: IncdError?: Populated for failures that prevent the check from starting at all, such as no active session. Not populated for a request-level failure or non-clean result during the check itself, which is instead reflected only insuccess: false.
Headless
When you run Custom Watchlist as a headless API, it runs as a background process and isn't visible to the end user. It calls back with the result.
IncdOnboardingManager.shared.processCustomWatchlist { result in /* CustomWatchlistResult */ }
processCustomWatchlist has two parameters:
interviewId: String?: The identifier of the session to run the watchlist check against. Defaults tonilwhen checking the current session.completion: (CustomWatchlistResult) -> Void: Called with the sameCustomWatchlistResulttype used by the flow-moduleonCustomWatchlistCompleted(_:)callback.