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", "remoteControl"]
  }
})

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, [rooted, emulator, badBot, highActivity, developerTools, adblock].

Supported risk labels

Currently, we support the following risk labels:

LabelDescription
rootedUser device has been modified to give them access to the root file system and administrative rights.
emulatorInforms whether the request was made with an emulator software.
badBotIndicates that the bot is an automated tool that does not have legitimate uses and assumes fraudulent activity.
tamperingIndicates the usage of anti-detect browser or tampering with the browser default behaviour.
clonedAppIndicates whether the request is coming from a cloned application.
jailbrokenDetects unauthorized modifications made to the device.
fridaToolInforms whether the Frida tool was used to intercept the app at runtime and change its behaviour.
virtualMachineDetects whether the browser is running inside a virtualization software by examining the browser configuration.
locationSpoofingIndicates whether the location of the mobile device has been spoofed or not.
remoteControlIndicates whether the request originated from a device being remotely controlled or remotely controlling another device.
mitmAttackDetects whether the communication between two parties was intercepted and potentially modified.
goodBotIndicates that the bot is a well-known web crawler or other search engine bot.
incognitoDetects whether incognito or private modes are being used.
privacySettingsModePrivacy settings that have the ability to randomize and obfuscate signal output are enabled.
developerToolsInforms whether developer tools were manually opened in Chrome or Firefox browsers.
adblockDetects whether the advertisement blocking software is used.