SB nº 285: EMV® 3-D Secure SDK – Device Information
EMV® Specification Bulletin No. 285 May 2023 EMV® 3-D Secure SDK—Device Information Data Version 1.6 This Specification Bulletin No. 285 describes changes incorporated into the EMV® 3-D Secure SDK—Device Information Data Version 1.6, May 2023.
Applicability
This Specification Bulletin applies to:
- EMV® 3-D Secure SDK—Device Information Data Version 1.6 Updates are provided in the order in which they appear in the specification. Deleted text is identified using strikethrough, and red font is used to identify added text. Unedited text is provided only for context.
Effective Date
- May 2023 countries. Contents EMV® 3-D Secure SDK—Device Information Data Version 1.6. Table 1. 2. 2. Table 2. 2. 2.42. Table 2. 2.52. Table 2. 2.62. Table 2. 2. Table 2.62. 2. Table 2. 2. Table 2.82. countries. Throughout Specification
- Revisions added to improve grammar, consistency, clarity and readability without any effect on the meaning or interpretation of the specification are not included in this specification bulletin, except when provided as context for other, more substantive revisions.
- Instances of SDK have been replaced with 3DS SDK.
- To ensure consistency with other recently published 3-D Secure documents, the EMV 3-D Secure Protocol and Core Functions Specification is referred to as the Core Specification.
- References and bookmarks have been updated to accommodate deleted/added sections and tables. countries. Chapter 1
Introduction
The 3-D Secure protocol is aimed at securing authentication in Browser-based and mobile aApp-based transactions. The EMV 3-D Secure—Protocol and Core Functions Specification (hereinafter also referred to as the Core Specification) describes the 3-D Secure protocol and core functions. The 3DS Mobile SDK is the mobile device-side component of 3-D Secure. The EMV 3-D Secure—SDK Specification describes the specification for the 3DS SDK. Device identification is used to uniquely identify mobile platform devices in the 3-D Secure ecosystem.
1.4 Abbreviations Table 1.1 Abbreviations Abbreviation ABI API LoA MCC MNC NITZ
Description
Application Binary Interface Application Programming Interface Letter of Approval Mobile Country Code Mobile Network Code Network Identity and Time Zone Chapter 2 Device Information Parameters This chapter describes the device identification parameters that shall be collected by the 3DS SDK from all mobile device platforms. These parameters are categorised as device platform Common parameters, Platform-specific parameters and Platform Provider-specific parameters that are common to all device platforms. The 3DS SDK shall collect and provide to the 3DS Server either the:
- for the Default-SDK – the Common parameters (see Section 2.42.5) and one set of the Device Platform-specific parameters (See Section 2.52.6 for Android, and Section 2.62.7 for iOS, Section 2.7 for Windows), OR
- for the Split-SDK – the Platform Provider-specific parameters (see Section 2.8)., then prepare and encrypt the Device Information as defined in Requirements 2 through 5 in the Core Specification. The ACS uses the Device Information for device identification and risk analysis. countries. All parameters shall be encoded as String or Array of String. The 3DS SDK shall collect all the parameters listed in the applicable tables: Table 2.2, Table 2.3, Table 2.4 OR Table 2.5, unless the parameter cannot be collected for any of the reasons stated in Table 2.6. Note: The availability of a higher number of device parameters improves the effectiveness of risk-based decision-making by the ACS. This, in turn, increases the probability of applying a Frictionless Flow. Note: If collecting Platform Provider-specific parameters from Section 2.8, the parameters defined in Sections 2.5, 2.6 and 2.7 are not collected.
2.1 Data Version The Data Version may change when, for example, there are parameter changes in future mobiledevice OS versions, an existing parameter is deprecated, etc. The device identification parameters that are described in this document constitute Data Version 1.56.
2.2 Minimum Supported Platform Versions Table 2.1 Minimum Supported Platform Versions Platform Minimum Version Android Android 810 (API version 2629) iOS 1215 Note: The 3DS SDK can elect to support older OS versions of the OS if the versions are supported by OS providersas long as the OS vendors provide security fixes for these versions. [Section 2.4 is an entirely new section, added in Version 1.6] 2.4 Data Format and Representation All parameters shall be encoded as String or Array of String. Boolean device parameters are coded as String of “false” or “true”. Integer parameters are coded as String with the format (-) integer part.
- Integer may only have a negative sign (-), the positive sign (+) is not allowed.
- Integer has no leading zeros. Examples: 2, -3 Floating-point and Double Floating-point number parameters are represented as String with the format (-) integer par, dot (.) decimal part.
- It may only have a negative sign (-), the positive sign (+) is not allowed.
- The integer part has no leading zeros.
- The decimal part has no trailing zeros.
- If the integer part is null, then it is represented by 0 (zero).
- If the decimal part is null, then the dot and decimal part are not present. countries. Examples: 0, 1.2, -1.2, 0.12, 12 2.42.5 Common Device Identification Parameters Available in All Mobile Device Platforms In addition to the platform-specific device parameters discussed later in this document, Table 2.2 lists the device Common parameters that the 3DS SDK shall be collected collect from all mobile platforms (Android, and iOS and Windows) for Device ID validation and risk analysis platforms. For Platform Provider-specific parameters, refer to Section 2.8. The availability of these parameters is subject to change in future OS versions. Note: Each parameter listed in this table shall be collected by the SDK unless the parameter cannot be collected for any of the reasons stated in Table 2.7. Table 2.2 Common Parameters Available in Android, and iOS and Windows 10 Platforms Identifier Parameter Description Permissions C001 C002 Platform that the device is using. JSON Data Type: String Values accepted:
- “Android”
- “iOS”
- “Windows 10” Mobile device manufacturer and model. JSON Data Type: String Values accepted:
- Android: Build.MANUFACTURER + “ ” “||” + Build.MODEL returns the mobile device manufacturer and model. Example: “sSamsung||SM- G960U1”
- iOS: utsname.machine returns the device model. Example: “iPhone10.4” Note: Apple as a manufacturer is not included because it is the same for all iOS devices. countries. Identifier C003 C004 C005 Parameter Description Operating system name. JSON Data Type: String Values accepted:
- Android: “Android” + “ ” + (Build.Version.SDK_INT equivalent field name from Build.Version.VERSION_CODE S) + “ ” + Build.Version.RELEASE + “ API ” + Build.Version.SDK_INT returns the name of the operating system and the API level., for eExample, the following format: “Android Q 10 API 29” Operating system version. JSON Data Type: String Values accepted:
- Android: Build.VERSION.RELEASE returns the version of the operating system. Example: “8.1.0”
- iOS: the systemVersion property of the UIDevice class returns the version of the operating system. Example: “14.2” Device locale set by the user. For more information, refer to IETF BCP 47. JSON Data Type: String Values accepted:
- Android: the device locale.Language() + “-” + locale.getCountry() returns the device locale., for eExample, the following format: “en-US”.
- iOS: the device currentLocale.languageCode + “-” + currentLocale.countryCode returns the device locale., for eExample, the following format: “en-US”. Permissions countries. Identifier C006 C008 C009 C010 Parameter Description Permissions Time Zzone Time zone offset in minutes between UTC and the device local time JSON Data Type: String Length: Variable, 1–4 characters Value accepted:
- Integer in the range of -720 to 840, coded as a string If UTC -5 hours:
- “300“
- “+300” Pixel width and pixel height., i.e. “1080x1920”. JSON Data Type: String Length: Variable, maximum 13 characters Both width and height: Integer in the range of 0 to 999999 Expressed as width x height, for example: “1080x1920”. User-assigned device name. JSON Data Type: String On Android, this parameter requires Bluetooth permission during installation Installation-time permissions AND Runtime permissions. No permissions required on iOS or Windows 10. Local IP address of the 3DS SDK in IPv4 or IPv6 format. JSON Data Type: String Length: Variable, maximum 45 characters Values accepted:
- IPv4 address. Refer to RFC 791.
- IPv6 address. Refer to RFC 4291. No permissions required on iOS or Windows 10. countries. Identifier C011 C012 C013 C014 C015 Parameter Description Permissions Device physical location latitude. JSON Data Type: String Value accepted:
- Double Floating-point number coded as a string Range: -90 to 90 Run-time permissions required on Android API level 23 and later, and iOS and Windows 10. Installation-time permissions required on Android API level 22 and earlier. Device physical location longitude. JSON Data Type: String Value accepted:
- Double Floating-point number coded as a string Range: -180 to 180 Run-time permissions required on Android API level 23 and later, and iOS and Windows 10. Installation-time permissions required on Android API level 22 and earlier. The unique package name/bundle identifier of the application in which the 3DS SDK is embedded. JSON Data Type: String Universally unique ID that is created for each installation of the 3DS Requestor App on a Consumer Device. JSON Data Type: String Length: 36 characters Note: This should be the same ID that is passed to the 3DS Requestor App in the AuthenticationRequestParamete rs object (refer to Section 4.12.1 in the EMV 3DS 3-D Secure—SDK Specification). 3DS SDK version as applied by the implementer and stored securely in the 3DS SDK (refer to Req 58 in the EMV 3DS 3-D Secure—SDK Specification). JSON Data Type: String countries. Identifier C016 C017 C018 Parameter Description Permissions Identifies the vendor and version of the 3DS SDK that is used for a specific transaction. The value is assigned by EMVCo when the Letter of Approval (LoA) of the specific 3DS SDK is issued. JSON Data Type: String Length: Variable, maximum 32 characters Note: The ACS should verify that this value matches the SDK Reference Number present in the AReq message. Date and time when the 3DS SDK gathers the Device Information converted into UTC. Refer to the Core Specification for the definition of UTC. JSON Data Type: String Length: 14 characters Format accepted: YYYYMMDDHHMMSS No permissions required Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction. Refer to the Core Specification for the definition of the SDK Transaction ID. JSON Data Type: String Length: 36 characters Note: The sdkTransID is added to the Device Information before the 3DS SDK encrypts the data. It is updated every time the createTransaction method is invoked. No permissions required 2.52.6 Android-specific Device Parameters Table 2.3 provides information about Table 2.3 lists the device Platform-specific parameters that shall be collected by the 3DS SDK shall collect from the Android mobile device platform for risk analysis by the ACS. The Group or Identifier column contains the name of the parameter group or parameter identifier. countries. Table 2.3 Android-specific Parameters Group or Identifier Element Description A001 Unique identifier of the device. Example:
- IMEI for GSM phones and
- MEID or ESN for CDMA phones. JSON Data Type: String A002 Unique subscriber ID. JSON Data Type: String A003 IMEI software version. JSON Data Type: String A004 Group identifier level 1 for a GSM phone. JSON Data Type: String A005 Phone number string for line 1. JSON Data Type: String A006 MMS user agent profile URL. JSON Data Type: String A007 MMS user agent. JSON Data Type: String A008 ISO country code equivalent of the current registered operator’s Mobile Country Code (MCC). Length: 2 characters JSON Data Type: String Value accepted:
- The ISO-3166-1 alpha-2 country code equivalent of the MCC. Comments Permissions countries. Group or Identifier A009 A010 A011 A012 A013 Element Description Comments Permissions Numeric name (mobile country code + mobile network code) (MCC + Mobile Network Code (MNC)) of the current registered operator. JSON Data Type: String Alphabetic name of the current registered operator. JSON Data Type: String NETWORK_TYPE_xxxx for the current data connection. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Integer coded as a string Number of phones available. Returns 1 for single standby mode (single SIM functionality). Returns 2 for dual standby mode (dual SIM functionality). Length: 1 character JSON Data Type: String Value accepted:
- Integer in the range of 0 to 5, coded as a string UseFrom API level 30 onwards use getActiveModemCoun t() for API level 30 and higher. Constant that indicates the device phone type. This indicates the type of radio used to transmit voice calls. JSON Data Type: String countries. Group or Identifier A014 A015 A016 A017 A018 A019 Element Description ISO country code equivalent for the SIM provider’s country code. Length: 2 characters JSON Data Type: String Value accepted:
- The ISO-3166-1 alpha-2 country code equivalent of the SIM provider’s country code MCC+MNC (mobile country code + mobile network code) of the SIM provider. JSON Data Type: String Length: Variable, maximum 6 numeric characters Service Provider Name (SPN). JSON Data Type: String Serial number of the SIM, if applicable. JSON Data Type: String Constant that indicates the state of the default SIM card. Length: 1 character JSON Data Type: String Value accepted:
- Integer in the range of 0 to 9, coded as a string Alphabetic identifier associated with the voice mail number. JSON Data Type: String Comments Permissions countries. Group or Identifier A020 A021 A022 A023 A024 Element Description Voice mail number. JSON Data Type: String Returns true if an Integrated Circuit Card (ICC card) is present. JSON Data Type: String Values accepted:
- “false”
- “true” Indicates whether the phone supports hearing aid compatibility. JSON Data Type: String Values accepted:
- “false”
- “true” Determines if the device is considered roaming on the current network, for GSM purposes. JSON Data Type: String Values accepted:
- “false”
- “true” Determines if the current device supports SMS service. JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions countries. Group or Identifier A025 A026 A027 A138 A139 Element Description Comments Permissions Determines whether the phone supports TTY mode. JSON Data Type: String Values accepted:
- “false”
- “true” From API level 28 onwards use TelecomManager.isT tySupported(). to be used instead from API level 28 onwards. Determines if the current device is “voice capable”. JSON Data Type: String Values accepted:
- “false”
- “true” Determines whether the device is a world phone. JSON Data Type: String Values accepted:
- “false”
- “true” Provides a platformwide unique identifier for each carrier. Length: Variable, maximum 11 characters JSON Data Type: String Values accepted:
- Integer coded as a string Provides user-facing name of the specific carrier idID JSON Data Type: String countries. Group or Identifier A140 A141 A142 A143 A144 Element Description Comments Permissions Provides the Manufacturer code from the Mobile Equipment Identifier JSON Data Type: String Provides carrier ID of the current subscription Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Integer coded as a string Provides the user-facing name of the specific carrier ID JSON Data Type: String Returns Indicates if the ability to register multiple SIM cards simultaneously on the network is supported by the device and by the carrier. Length: 1 character JSON Data Type: String Values accepted:
- “0”
- “1”
- “2” Available only for API 29 or higher No permissions required Installationtime permissions networkCo untryIso Returns the ISO-3166-1 alpha-2 country code equivalent of the Mobile Country Code (MCC) of the current registered operator. Available only for API 30 No permissions or higher required countries. Group or Identifier A145 WiFiManag er A028 A029 A030 A031 Element Description Returns the subscription ID for the given phone account. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Integer coded as a string Comments Returns the wireless MAC address of the device. JSON Data Type: String For API level 31 or higher, set to RE04 in the DPNA. Returns the basic service set identifierBasic Service Set Identifier (BSSID) of the current access point. JSON Data Type: String Returns the service set identifierService Set Identifier (SSID) of the current 802.11 network. JSON Data Type: String Each configured network has a unique small integer ID, used to identify the network when performing operations on the supplicant. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Integer coded as a string Permissions countries. Group or Identifier Element Description Comments Permissions A032 Determines if this adapter supports the 5 GHz band. JSON Data Type: String Values accepted:
- “false”
- “true” A033 Determines if this adapter supports Device-to-AP RTT. JSON Data Type: String Values accepted:
- “false”
- “true” A034 Determines if this adapter supports advanced power and performance counters. JSON Data Type: String Values accepted:
- “false”
- “true” A035 Determines if this adapter supports WifiP2pManager. JSON Data Type: String Values accepted:
- “false”
- “true” A036 Determines if this adapter supports offloaded connectivity scan. JSON Data Type: String Values accepted:
- “false”
- “true” countries. Group or Identifier A037 A038 A146 A147 A148 Bluetooth Manager Element Description Determines if scanning is always available. JSON Data Type: String Values accepted:
- “false”
- “true” Determines if this adapter supports Tunnel Directed Link Setup. JSON Data Type: String Values accepted:
- “false”
- “true” Returns a Boolean (coded as a string “0” or “1”) if 6GHz band is supported. JSON Data Type: String Values accepted:
- “false”
- “true” Returns the Fully Qualified Domain Name fully qualified domain name of the network if it is a Passpoint network. JSON Data Type: String Returns the Provider Friendly Name of the network if it is a Passpoint network. JSON Data Type: String Comments Permissions countries. Group or Identifier A039 A040 A149 Element Description Hardware MAC address of the local Bluetooth adapter. Example: 00:00:56:B1:C0:6E JSON Data Type: String Values accepted:
- 48 bits represented as 6 hexadecimal bytes separated by “:” (colon hexadecimal notation) Returns the array of BluetoothDevice MAC address coded as string that are bonded (paired) to the local adapter. For eExample::[“48:F0:7B:61:DD:D4"," ED:90:C2:3D:E8:14”] JSON Data Type: Array of String Values accepted:
- 48 bits represented as 6 hexadecimal bytes separated by “:” (colon hexadecimal notation) Returns the array of BluetoothDevice alias coded as a string that are bonded (paired) to the local adapter. JSON Data Type: Array of String Comments Permissions Installationtime permissions AND Run-time permissions Installationtime permissions AND Run-time permissions Installationtime permissions AND Run-time permissions countries. Group or Identifier A041 Element Description Returns true if Bluetooth is currently enabled and ready for use. JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions Build A042-A052 [added at the end for each] JSON Data Type: String A053 JSON Data Type: String Deprecated in API level 26.; getSerial() to be used instead from From API level 26 onwards use getSerial(). A153 SKU The SKU of the hardware (from the kernel command line). JSON Data Type: String Available only for API level 31 or higher. No permissions required A154 SOC_MANUF ACTURER The manufacturer of the device’s primary system-on-chip. JSON Data Type: String Available only for API level 31 or higher. No permissions required A155 SOC_MODEL The model name of the device’s primary system-on-chip. JSON Data Type: String Available only for API level 31 or higher. No permissions required A054 Ordered list of 32bit Application Binary Interfaces (ABIs) supported by this device. The most preferred ABI is the first element in the list. JSON Data Type: Array of String countries. Group or Identifier A055 A056 A057 A058 A059 Build.VER SION A060 A061 Element Description Ordered list of 64bit ABIs supported by this device. The most preferred ABI is the first element in the list. JSON Data Type: Array of String Comma-separated tags describing the build, such as “unsigned,debug”. JSON Data Type: String Build time. JSON Data Type: String Length: Variable, maximum 20 characters Value accepted:
- Positive long integer coded as a string Type of build, such as “user” or “eng”. JSON Data Type: String JSON Data Type: String The current development codename, or the string “REL” if this is a release build. JSON Data Type: String The internal value used by the underlying source control to represent this build. JSON Data Type: String Comments Permissions countries. Group or Identifier A062 A063 A064 Settings Secure A065 Element Description The developer preview revision of a pre-release SDK. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string The user-visible SDK version of the framework; its possible values are defined in Build.VERSION_CO DES. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string The user-visible security patch level. JSON Data Type: String Specifies whether display colour inversion is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions countries. Group or Identifier A066 A067 A068 A069 Element Description Specifies whether accessibility is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Specifies whether to speak passwords while in accessibility mode. JSON Data Type: String Values accepted:
- “false”
- “true” Origins for which browsers should allow geolocation by default. The value is a spaceseparated list of origins. JSON Data Type: String A 64-bit number (expressed as a hexadecimal string) that is randomly generated when the end, unique to each combination of app-signing key, user first sets up the, and device. This number should remain constant for the lifetime of the end user’s device. Values of ANDROID_ID are scoped by signing key and user. The value may change if a factory reset is performed on the device or if an APK signing key changes. JSON Data Type: String Value accepted:
- 8-byte hexadecimal [0-9,a-f,A-F] Comments Permissions countries. Group or Identifier A071 A073 A074 A075 A076 A077 Element Description Comments Permissions Setting to record the input method used by default. JSON Data Type: String List of enabled accessibility providers. JSON Data Type: Array of String List of input methods that are currently enabled. JSON Data Type: Array of String Setting to record the visibility of the input method selector. JSON Data Type: String Specifies whether applications can be installed for this user via the system’s ACTION_INSTALL_PAC KAGE mechanism. Encoded as eitherJSON Data Type: String Values accepted:
- “false”
- “true” From API level 29 onwards use PackageManager.can RequestPackageInst alls() Note: canRequestPackageI nstalls()needs Runtime permissions (android.permissio n.REQUEST_INSTALL_ PACKAGES). If no permission, set to be used instead from API level 29 onwards RE03 in the DPNA. Degree of location access enabled by the end user. JSON Data Type: String From API level 28 onwards use LocationManager.is LocationEnabled() to be used instead from API level 28 onwards. countries. Group or Identifier A078 A079 A080 A081 A082 Element Description If enabled, apps should try to skip any introductory hints on first launch. JSON Data Type: String Values accepted:
- “false”
- “true” Secure system settings, containing system preferences that applications can read but are not allowed to write. JSON Data Type: String Default text-to-speech engine pitch. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Default text-to-speech engine speech rate. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Default text-to-speech engine. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Comments Permissions countries. Group or Identifier A083 A150 A151 Settings Global A084 A085 Element Description Space-delimited list of plugin packages that are enabled. JSON Data Type: String User-selected Real Time Text (RTT) mode. Boolean coded as a string “0” or “1”. JSON Data Type: String Values accepted:
- “false”
- “true” Indicates whether the device is under in restricted secure Factory Reset Protection (FRP) mode. Boolean coded as a string “0” or “1”. JSON Data Type: String Values accepted:
- “false”
- “true” Specifies whether Android Debug Bridge (ADB) is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Comma-separated list of radios that need to be disabled when airplane mode is on. JSON Data Type: String Comments Permissions countries. Group or Identifier A086 A087 A088 A089 Element Description If 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed. JSON Data Type: String Values accepted:
- “false”
- “true” Scaling factor for animator-based animations. JSON Data Type: String Value accepted:
- Floating-point number coded as a string Value to specify whether the user prefers the date, time and time zone to be automatically fetched from the network. Refer to Network Identity and Time Zone (NITZ). JSON Data Type: String Values accepted:
- “false”
- “true” Value to specify whether the user prefers the time zone to be automatically fetched from the network. (Refer to NITZ). JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions countries. Group or Identifier A070 A090 A072 A091 A092 A093 Element Description Comments Permissions Determines whether or not data roaming is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Available only for API level 17 or higher. Note: TelephonyManager.i sDataRoamingEnable d() may also be used. Determines whether the end user has enabled development settings. JSON Data Type: String Values accepted:
- “false”
- “true” Determines whether the device has been provisioned. JSON Data Type: String Values accepted:
- “false”
- “true” Host name and port for global httpHTTP proxy. JSON Data Type: String User preference for which networks should be used. JSON Data Type: String Determines whether the device must remain switched on while it is plugged in. JSON Data Type: String Value accepted:
- Integer in the range of 0 to 15, coded as a string countries. Group or Identifier A094 A095 A096 A097 A098 Element Description Scaling factor for activity transition animations. JSON Data Type: String Value accepted:
- Floating-point number coded as a string Indicates whether USB mass storage is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” If this setting is set (to anything), then all references to Gmail on the device must change to Google Mail. JSON Data Type: String If 1, when launching DEBUG_APP, it will wait for the debugger before starting user code. JSON Data Type: String Values accepted:
- “false”
- “true” Determines whether the end user should be notified of open networks. JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions countries. Group or Identifier A152 Settings System A099 A100 A101 Element Description Comments Permissions Returns Indicates if ramping ringer is enabled on incoming call ringtone. Boolean coded as a string “0” or “1”. JSON Data Type: String Values accepted:
- “false”
- “true” Available only for API level 29 or higher, deprecated in API level 33. From API level 33 onwards, use AudioManager.isRam pingRingerEnabled()” Control whether the accelerometer will be used to change screen orientation. JSON Data Type: String Values accepted:
- “false”
- “true” Determines whether remote devices may discover and/or connect to this device. JSON Data Type: String Values accepted:
- “0”
- “1”
- “2” Bluetooth discoverability timeout. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string countries. Group or Identifier A102 A103 A104 A105 Element Description Comments Permissions Date format: string. JSON Data Type: String Values accepted:
- mm/dd/yyyy
- dd/mm/yyyy
- yyyy/mm/dd Deprecated in API level 31 From API level 31 onwards, use A120 TIME_12_24. CDMA-only settings + DTMF tone type played by the dialler when dialling. JSON Data Type: String Values accepted:
- “false”
- “true” Specifies wWhether the audible DTMF tones are played by the dialler when dialling. JSON Data Type: String Values accepted:
- “false”
- “true” The behaviour when the user presses the end call button if they are not on a call. JSON Data Type: String Values accepted:
- “0”
- “1”
- “2”
- “3” countries. Group or Identifier A106 A107 A108 A109 A110 Element Description Comments Permissions Scaling factor for fonts, float. JSON Data Type: String Value accepted:
- Positive Floatingpoint number coded as a string Specifies wWhether the haptic feedback (long presses) is enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Deprecated in API level 33 Determines which streams are affected by ringer mode changes. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Persistent store for the system-wide default notification sound. JSON Data Type: String Determines which streams are affected by mute. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string countries. Group or Identifier A111 A112 A113 A114 Element Description Persistent store for the system-wide default ringtone URI. JSON Data Type: String The screenScreen backlight brightness between 0 and 255. Length: Variable, maximum 3 characters JSON Data Type: String Value accepted:
- Integer in the range of 0 to 255, coded as a string Control whether to enable automatic brightness mode. JSON Data Type: String Values accepted:
- “false”
- “true” The amount of time in milliseconds before the device goes to sleep or begins to dream after a period of inactivity. This value is also known as the user activity timeout period since the screen is not necessarily turned off when it expires. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Comments Permissions countries. Group or Identifier A115 A116 A117 A118 A119 Element Description Specifies wWhether sound effects (key clicks, lid open) are enabled. JSON Data Type: String Values accepted:
- “false”
- “true” Setting to enable Auto Caps in text editors. JSON Data Type: String Values accepted:
- “false”
- “true” Setting to enable Auto Punctuate in text editors. JSON Data Type: String Values accepted:
- “false”
- “true” Setting to enable Auto Replace (AutoText) in text editors. JSON Data Type: String Values accepted:
- “false”
- “true” Setting to show password characters in text editors. JSON Data Type: String Values accepted:
- “false”
- “true” Comments Permissions countries. Group or Identifier A120 A121 A122 A123 Package Manager Element Description Comments Permissions Display time in the 12hour format or the 24hour format. JSON Data Type: String Values accepted:
- “12”
- “24” Default screen rotation when no other policy applies. JSON Data Type: String Values accepted:
- “0”
- “1”
- “2”
- “3” Specifies wWhether vibrate is on for different events. JSON Data Type: String Values accepted:
- “false”
- “true” Specifies wWhether the phone vibrates when it is ringing during an incoming call. JSON Data Type: String Values accepted:
- “false”
- “true” Available only for API level 23 or higher. Deprecated in API level 33. countries. Group or Identifier A124 A125 A126 A127 Element Description Comments Permissions Returns whether the device has been booted into safe mode. JSON Data Type: String Values accepted:
- “false”
- “true” Returns an array of nonsystem application packages that are installed on the device. JSON Data Type: Array of String NoRun-time permissions required Retrieves the package name of the application that installed a package. This identifies which market the package came from. JSON Data Type: String Starting From API level 30 onwards, use getInstallSourceInfo(). Retrieves a list of features that are available on the device. The 3DS SDK shall share only the count of items in this list and not the full list itself. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string countries. Group or Identifier A128 Environme nt A129 Locale A130 DisplayMe trics Element Description Retrieves a list of shared libraries that are available on the device. The 3DS SDK shall share only the count of items in this list and not the full list itself. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Returns the current state of the primary shared/external storage media. JSON Data Type: String Returns the system’s installed locales. The 3DS SDK shall share only the length of this list and not the full list itself. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string Comments Permissions countries. Group or Identifier A131 A132 A133 A134 Element Description The logical density of the display. JSON Data Type: String Value accepted:
- Floating-point number coded as a string The screen density expressed as dots per inch. Length: Variable, maximum 11 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string A scaling factor for fonts displayed on the display. JSON Data Type: String Value accepted:
- Floating-point number coded as a string The exact physical pixels per inch of the screen in the X dimension. JSON Data Type: String Value accepted:
- Floating-point number coded as a string Comments Permissions countries. Group or Identifier A135 StatFs A136 WebView A137 Element Description The exact physical pixels per inch of the screen in the Y dimension. JSON Data Type: String Value accepted:
- Floating-point number coded as a string The total number of bytes supported by the filesystem. Length: Variable, maximum 19 characters JSON Data Type: String Value accepted:
- Positive integer coded as a string The default user agent of the WebView component during the App-based HTML flow. String defaultUserAgent = android.webkit.Web Settings.getDefaul tUserAgent(context); JSON Data Type: String Comments Permissions 2.62.7 iOS-specific Device Parameters Table 2.4 provides information about lists the device Platform-specific parameters that shall be collected by the 3DS SDK shall collect from the iOS mobile device platform for risk analysis by the ACS. In this table, the The Group or Identifier column contains the name of the parameter group or parameter identifier. Note: The 3DS SDK does not require any permissions to collect these parameters. countries. Note: Each parameter listed in this table shall be collected by the 3DS SDK unless the parameter cannot be collected for any of the reasons stated in Table 2.6. Table 2.4 iOS-specific Parameters Group or Identifier Attribute UIDevice I001 Description Alphanumeric string that uniquely identifies a device to the app’s vendor. JSON Data Type: String I002 Style of interface to use on the current device. JSON Data Type: String UIFont I003 I004 I005 Returns an array of font family names available on the system. JSON Data Type: Array of String Returns an array of font names for all the font families listed in I003. JSON Data Type: Array of String SystemReturns the system font. JSON Data Type: String I006 I007 I008 Returns the standard font size used for labels. JSON Data Type: String Value accepted:
- Floating-point number represented coded as a string, e.g., ’10.5’ Returns the standard font size used for buttons. JSON Data Type: String Value accepted:
- Floating-point number represented coded as a string, e.g. “18”. Returns the size of the standard small system font. JSON Data Type: String Value accepted:
- Floating-point number coded as a string countries. Group or Identifier I009 NSLocale I010 I011 I012 NSTimeZone I013 NSBundle Attribute Description Returns the size of the standard system font. JSON Data Type: String Value accepted:
- Floating-point number coded as a string Formatted as the device locale language + “-” + device locale country. For example, “en-US”. JSON Data Type: String Returns an array of string as provided by the OS method, each of which identifies a locale available on the system. JSON Data Type: Array of String Returns the user’s language preference order as an array of string as provided by the OS method. JSON Data Type: Array of String Returns the time zone offset in minutes between UTC and the default time zone for the current application. JSON Data Type: String Length: Variable, 1–4 characters Value accepted:
- Integer in the range of -720 to 840, coded as a string Example time zone offset values in minutes: If UTC -5 hours:
- “300”
- “+300” If UTC +5 hours:
- “-300” countries. Group or Identifier I014 I015 Attribute Description Encoded as either “false” or “true” The file URL for the main application bundle’s App Store receipt. [[NSBundle mainBundle] appStoreReceiptURL] https://developer.apple.com/documentati on/foundation/nsbundle/1407276appstorereceipturl JSON Data Type: String Indicates whether the receipt file residing in the appStoreReceiptURL path exists and is non-empty. Indirectly, this field can be used to determine whether the application has been purchased from the Apple App sStore. JSON Data Type: String Values accepted:
- “false”
- “true” [Section 2.7 Windows 10-specific Device Parameters has been deleted in its entirety. Subsequent sections, tables and references have been renumbered accordingly.] 2.8 Platform Provider-specific Parameters Table 2.5 provides information about lists the device Platform Provider-specific parameters that shall be collected by the 3DS SDK for risk analysis by shall collect from the ACS Platform Provider-specific platform. If providing Platform Provider-specific parameters, the parameters defined in Sections 2.5, 2.6, 2.7 and 2.82.7 shall not be provided. Refer to the definition of the term “Platform Provider” in the Core Specification. Table 2.62.5 Platform Provider-specific Parameters Group or Parameter Identifier Description Comments D001 Platform that the device is using, as a string. JSON Data Type: String D002 Platform-defined device model, as a string. JSON Data Type: String D003 Platform-defined OS name, as a string. JSON Data Type: String countries. Group or Parameter Identifier Description D005 Device locale set by the user, as a string., refer to IETF BCP 47 The Device Locale as set by the user is made consists of the device Language Code + “-” + current Country Code., for example, the following format: Example: “en-US”. JSON Data Type: String D006 D008 User-selected or platform-provisioned Time Zone for the user’s device rendering the 3DS challenge. Time zone offset in minutes between UTC and the device local time as a string. JSON Data Type: String Length: Variable, 1–4 characters Value accepted:
- Integer in the range of -720 to 840, coded as a string Example time zone offset values in minutes: If UTC -5 hours:
- “300”
- “+300” Pixel width and pixel height, as a string, i.e., JSON Data Type: String Length: Variable, maximum 13 characters Value accepted:
- Both width and height: Integer in the range of 0 to 999999. Expressed as width x height, for example: “1080x1920”. D013 The unique package name/bundle identifier of the application in which the 3DS SDK is embedded. JSON Data Type: String D015 3DS SDK version as applied by the implementer and stored securely in the 3DS SDK (refer to Requirement 58 in the EMV 3-D Secure—SDK Specification). JSON Data Type: String Comments countries. Group or Parameter Identifier Description Comments D016 Identifies the vendor and version of the 3DS SDK that is utilised for a specific transaction. The value is assigned by EMVCo when the Letter of Approval (LoA) of the specific 3DS SDK is issued and is provided as a string. JSON Data Type: String Note: The ACS should verify that this value matches the SDK Reference Number present in the AReq message. D017 Challenge window width and height in pixels, as a string, i.e.,. JSON Data Type: String Length: Variable, maximum 13 characters Value accepted:
- Both width and height: Integer in the range of 0 to 999999. Expressed as width x height, for example: “500x600”. D021 Example:
- Hardware Device ID
- Platform-calculated device fingerprint JSON Data Type: String D022 Constant that indicates the device type. ValidJSON Data Type: String Values accepted:
- “01” = Desktop
- “02” = TV-connected
- “03” = Tablet/Mobile
- “04” = Headless/Voice
- “05” = Wearable
- “06” = Internet of Things
- “99” = Other Not applicable countries. Group or Parameter Identifier Description D023 List of cardholder input methods enabled on the device as an array of string, i.e. [“01”, “02”]. Valid values: JSON Data Type: Array of String Values accepted:
- “01” = Physical Keyboard
- “02” = Touch Keyboard
- “03” = TV-connected Onscreen Keyboard
- “04” = Voice-activated
- “05” = Gesture-activated
- “99” = Other D024 List of output methods enabled on the device as an array of string. Valid values: JSON Data Type: Array of String Values accepted:
- “01” = Display
- “02” = Audio
- “03” = Monochrome Display
- “99” = Other D025 Preferred network and issuer logo colour preference provided as a string. Valid values: JSON Data Type: String Values accepted:
- “01” = Full Colour
- “02” = Monochrome White
- “03” = Monochrome Black
- “99” = Other D026 Identifier of the transacting user’s platform Account ID. This identifier is a unique immutable hash of the user’s account identifier for the given platform, provided as a string. JSON Data Type: String Comments countries. Group or Parameter Identifier Description Comments D027 Gets the set of languages preferred by the user, in order of preference provided as an array of string, as defined in IETF BCP 47. JSON Data Type: Array of String D028 The device identifier of the device where the transaction started before it was transferred to another device or method for/to complete authentication. JSON Data Type: String Provided as a string, fFor example: D029 External IP address of the device as collected by the 3DS SDK in IPv4 or IPv6 format, provided as string. JSON Data Type: String Length: Variable, maximum 45 characters Values accepted:
- IPv4 address. Refer to RFC 791.
- IPv6 address. Refer to RFC 4291. D030 Exact content of the HTTP Accept Headers as sent to the 3DS Requestor from the Cardholder Browser, provided as string. JSON Data Type: String Browser-SDK onlyOnly applicable to the SplitSDK/Browser. For other devices, return RE02. D031 Exact content of the HTTP User-Agent header, provided as string. JSON Data Type: String D032 Information about the Device ID, for example: “03”. Valid values: JSON Data Type: String Values accepted:
- “01” = Hardware-based identifier
- “02” = Hardware fingerprint identifier
- “03” = Key-based software identifier
- “04” = Software fingerprint identifier
- Provided as a string, for example: “03” countries. Group or Parameter Identifier Description D033 Information about the Device ID, for example: “02”. Valid values: JSON Data Type: String Values accepted:
- “01” = Hardware-based identifier
- “02” = Hardware fingerprint identifier
- “03” = Key-based software identifier
- “04” = Software fingerprint identifier
- Provided as a string, for example: “02” D034 dateTime Date and time when the 3DS SDK gathers the Device Information converted into UTC. Refer to the Core Specification for the definition of UTC. JSON Data Type: String Length: 14 characters Format accepted: YYYYMMDDHHMMSS D035 sdkTransI D Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction. Refer to the Core Specification for the definition of the SDK Transaction ID. JSON Data Type: String Length: 36 characters Note: The sdkTransID is added to the Device Information before the 3DS SDK encrypts the data. It is updated every time the createTransaction method is invoked. Comments 2.9 Reasons for Device Parameter Unavailability [The following note was added at the end of section introduction.] Note: The availability of a higher number of device parameters improves the effectiveness of risk-based decision-making by the ACS, which may increase the probability of applying a Frictionless Flow. countries. Table 2.6: Device Parameter Unavailability Reasons Reason Code Description RE01 Market, regional or privacy restriction on the parameter.
2.10 Device Information JSON Data Table 2.82.7 Device Parameters JSON Structure Platform Device Information Android {"DV":"1.56","DD":{"C001":"Android","C002":"HTC||One_M8"," C004":"5.0.},"DPNA":{"C010":"RE01","C011":"RE03"},"SW":[" SW01","SW04"]} iOS {"DV":"1.56","DD":{"C001":"iOS","C002":"iPhone6,1","C003": " iPhone OS ","C004":"9.}," DPNA":{"C010":"RE01","C011":"RE03"},"SW":["SW01","SW04"]} Windows 10 {"DV":"1.50","DD":{"C001":"Windows","C002":"NOKIA RM984_1006","C003":"WindowPhone","C004":"10.0.10586.1},"DPNA":{"C010":"RE02","C011":"RE03"},"SW":["S W01","SW04"]} Platform Providerspecific {"DV":"1.56","DD":{"D001":"Android","D002":"Personal device","D003":"aPhone","D004":"13.0.186.},"DPNA":{"D028":"RE02","D031":"RE03"},"SW":["S W01","SW04"]}
countries.
Legal Notice
The EMV® Specifications are provided “AS IS” without warranties of any kind, and EMVCo neither assumes nor accepts any liability for any errors or omissions contained in these Specifications. EMVCO DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT, AS TO THESE SPECIFICATIONS. EMVCo makes no representations or warranties with respect to intellectual property rights of any third parties in or in relation to the Specifications. EMVCo undertakes no responsibility to determine whether any implementation of the EMV® Specifications may violate, infringe, or otherwise exercise the patent, copyright, trademark, trade secret, know-how, or other intellectual property rights of third parties, and thus any person who implements any part of the EMV® Specifications should consult an intellectual property attorney before any such implementation. Without limiting the foregoing, the Specifications may provide for the use of public key encryption and other technology, which may be the subject matter of patents in several countries. Any party seeking to implement these Specifications is solely responsible for determining whether its activities require a license to any such technology, including for patents on public key encryption technology. EMVCo shall not be liable under any theory for any party’s infringement of any intellectual property rights in connection with the EMV® Specifications
countries.