Enable Device Intelligence simulation

Device Intelligence's output primarily culminates in a selection of risk labels. To support better testing across various scenarios, we have introduced the ability to configure the risk labels returned by Device Intelligence.

The following document assumes that Device Intelligence is already integrated on your side.

To enable Device Intelligence simulation, pass an optional simulationConfig as part of the InitParams.

Usage example

The following is an example of using Device Intelligence simulation:

import { init } from '@sumsub/fisherman'
 
const fisherman = await init({
  token: fishermanToken.value,
  baseUrl: sumsub.value?.fishermanApiUrl,
  simulationConfig: {
    visitorId: "visitorId_1",
    riskLabels: ["goodBot", "incognito", "virtualMachine"]
  }
})

Simulation configuration

Simulation property is an object that is segmented as follows:

export type FpSimulationConf = {
  visitorId?: string
  riskLabels?: string[]
}

The following table explains the element fields of the Simulation property object.

FieldRequiredTypeDescription
FpSimulationConfNoObjectContains configuration properties for simulation.
FpSimulationConf.visitorIdNoStringUnique identifier of the user's browser/device (e.g., constant_visitorId_1).

Set this property to have a constant identifier across all browsers/devices. If this property is not set, the identifier will be generated using the User-Agent (MDN docs) information.
FpSimulationConf.riskLabelsNoArrayMost of Device Intelligence processing results in different risk labels.

Allows you to specify which risk labels Device Intelligence will produce. For example, [badBot, incognito, developerTools, tampering].

Supported risk labels

Currently, we support the following risk labels:

LabelDescription
adblockDetects whether the advertisement blocking software is used.
badBotIndicates the bot is an automated tool that does not have legitimate uses and assumes fraudulent activity.
clonedAppIndicates the request is from a cloned version of the user's app.
developerToolsInforms whether developer tools were manually opened in Chrome or Firefox browsers.
emulatorIndicates the user's app is running from within an Android emulator instead of a physical device.
fridaToolIndicates the user's app is being tampered with using Frida.
goodBotIndicates the bot is a well-known web crawler or other search engine bot.
incognitoDetects whether incognito or private modes are being used.
jailbrokenIndicates the user's app is running on a jailbroken iOS device.
locationSpoofingIndicates the mobile device is trying to spoof its location.
mitmAttackIndicates the request from the user's app is intercepted and potentially modified.
privacySettingsModePrivacy settings that have the ability to randomize and obfuscate signal output are enabled.
rootedIndicates the user's app is running on a rooted Android device.
tamperingIndicates the usage of an anti-detect browser or tampering with the browser's default behavior.
virtualMachineDetects whether the browser is running inside a virtualization software by examining the browser configuration.