3DS SDK Advanced Options

Here you can find out how to:

Todo Java Script

Device data collection

Device information is gathered by the 3DS SDK from a shopper device during 3DS Service initialization. By default, SDK collects as many parameters as it can. The full list of device info can be found in the EMVCo Specifications, check the file called “EMV® 3-D Secure SDK—Device Information”.

Device data blacklist

You can set a list of parameters which should not be pulled from the device because of some market or regional restrictions. Use identifiers from the “EMV® 3-D Secure SDK—Device Information” file, e.g. , and add this info to the 3DS config.

Security

As soon as 3DS Service is initialized, you may want to verify security warnings and abort the transaction in case of high risk. Here is the list of possible security warnings to be detected:

Security warning IDDescriptionSeverity Level
SW01The device is jailbroken.High
SW02The integrity of the SDK has been tampered.High
SW03An emulator is being used to run the app.High
SW04A debugger is attached to the app.Medium
SW05The OS or the OS version is not supported.High

There are two places where you can check detected warnings:

  • Init callback

    If you initialized 3DS Service yourself, you may check warnings right after the initialization is done. The service provides a callback for this:

  • Before submit callback

    If you use our Ready-to-use UI and let MSDK to do the initialization, the right place to check warnings is a callback which is called before submitting the transaction. For this purpose, you should implement . See details in the MSDK guide.

App bundle identifier

The expected bundle identifier for the application. This should match the Bundle Identifier identity setting specified when building the application. A security warning (SW02) is raised if this value does not match the Bundle ID of the application at runtime.

Note that this value should not be hardcoded in the app for security reasons. You should store it on your server and retrieve it in runtime.

UI customization

3DS SDK allows to customize challenge screens to match your app’s look-and-feel. API provides the following classes to customize specific elements on the screen:

ClassDescription
ToolbarCustomizationBackground color of the toolbar + header label customization
LabelCustomizationHeading text customization
TextCustomizationNon-heading text cusomization
TextBoxCustomizationCorner radius of input fields + label customization
ButtonCustomizationButton background color, corner radius and font customization. Make sure you set appropriate style for each type of buttons:
  • CANCEL – Button placed in the right corner of Toolbar
  • SUBMIT – Main action on the screen
  • RESEND – Secondary action
  • CONTINUE – Main action in case of authentication in the external app
  • NEXT – Main action in case of authentication consists of several steps

See the sample code how UI customization can be applied in your app:

Challenge screens customization

Decoupled authentication

Some issuers may want to reach out to authenticate their cardholder outside of the EMV 3DS message flows. If decoupled authentication is supported, it’s recommended to add one more check for 3D Secure transaction status. If MSDK returns ‘decoupled’ status, then make sure that you add appropriate message on your order confirmation screen to let shopper know that external authentication is required. Provide all necessary recognizable data (merchant name, incremental transaction amount, reasons for additional authentication) that will allow shopper to go through authentication process seamlessly.

Note: Android

Device data collection

Device information is gathered by the 3DS SDK from a shopper device during 3DS Service initialization. By default, SDK collects as many parameters as it can. The full list of device info can be found in the EMVCo Specifications, check the file called “EMV® 3-D Secure SDK—Device Information”.

Data sourcePermission typeRequired permissions
Telephony ManagerRun-time permissions

This group of parameters requires the following permissions:
android.permission.SEND_SMS
android.permission.READ_PHONE_STATE
android.permission.READ_PHONE_NUMBERS

User approval is not required for API 22 and earlier because these permissions are granted during installation.
Wifi ManagerInstallation-time permissionsandroid.permission.ACCESS_WIFI_STATE
Bluetooth ManagerInstallation-time permissionsandroid.permission.BLUETOOTH

Device data blacklist

You can set a list of parameters which should not be pulled from the device because of some market or regional restrictions. Use identifiers from the “EMV® 3-D Secure SDK—Device Information” file, e.g. , and add this info to the 3DS config.

Security

As soon as 3DS Service is initialized, you may want to verify security warnings and abort the transaction in case of high risk. Here is the list of possible security warnings to be detected:

Security warning IDDescriptionSeverity Level
SW01The device is jailbroken.High
SW02The integrity of the SDK has been tampered.High
SW03An emulator is being used to run the app.High
SW04A debugger is attached to the app.Medium
SW05The OS or the OS version is not supported.High

There are two places where you can check detected warnings:

  • Init callback

    If you initialized 3DS Service yourself, you may check warnings right after the initialization is done. The service provides a callback for this:

  • Before submit callback

    If you use our Ready-to-use UI and let MSDK to do the initialization, the right place to check warnings is a callback which is called before submitting the transaction. For this purpose, you should implement . See details in the MSDK guide.

App signature

App signature is used to verify that application wasn’t tampered before installation. SDK expects the value as the SHA256 fingerprint of the certificate used to sign the app. A security warning (SW02) is raised if this value does not match the real app signature.

Note that app signature should not be hardcoded in the app for security reasons. You should store it on your server and retrieve it in runtime.

Apps filter

3DS Service checks the list of installed apps on the shopper device. If it finds any suspicious applications or those that are not installed from the trusted app stores, a security warning (SW02) will be raised.

By default, trusted store is

  • Google Play store (com.android.vending)

and malicious apps are:

  • de.robv.android.xposed
  • de.robv.android.xposed.installer
  • com.saurik.substrate

You are welcome to complete these lists with your values using config properties:

UI customization

3DS SDK allows to customize challenge screens to match your app’s look-and-feel. API provides the following classes to customize specific elements on the screen:

ClassDescription
ToolbarCustomizationBackground color of the toolbar + header label customization
LabelCustomizationHeading text customization
TextCustomizationNon-heading text cusomization
TextBoxCustomizationCorner radius of input fields + label customization
ButtonCustomizationButton background color, corner radius and font customization. Make sure you set appropriate style for each type of buttons:
  • CANCEL – Button placed in the right corner of Toolbar
  • SUBMIT – Main action on the screen
  • RESEND – Secondary action
  • CONTINUE – Main action in case of authentication in the external app
  • NEXT – Main action in case of authentication consists of several steps

See the sample code how UI customization can be applied in your app:

Challenge screens customization

Decoupled authentication

Some issuers may want to reach out to authenticate their cardholder outside of the EMV 3DS message flows. If decoupled authentication is supported, it’s recommended to add one more check for 3D Secure transaction status. If MSDK returns ‘decoupled’ status, then make sure that you add appropriate message on your order confirmation screen to let shopper know that external authentication is required. Provide all necessary recognizable data (merchant name, incremental transaction amount, reasons for additional authentication) that will allow shopper to go through authentication process seamlessly.