3DS Authentication

Authentication Request Model

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
public class ThreeDSServerAuthenticationRequest {
 
  /**
   * Indicates the type of channel interface being used to initiate the transaction. The accepted values are:
   *
   *  01 -> App-based (APP)
   *  02 -> Browser (BRW)
   *  03 -> 3DS Requestor Initiated (3RI)
   *
   *  This is a required field.
   */
  private DeviceChannelEnum deviceChannel;
  /**
   * Identifies the category of the message for a specific use case. The accepted values are:
   *
   *  01 -> PA
   *  02 -> NPA
   *
   *  This is a required field.
   */
  private MessageCategoryEnum messageCategory;
  /**
   * Indicates whether the 3DS Method successfully completed. The value is used only when deviceChannel = 02 (Browser).
   *
   * The accepted values are:
   *
   *  Y -> Successfully completed
   *  N -> Did not successfully complete
   *  U -> Unavailable - 3DS Method URL was not present in the PRes message data for the card range associated
   *                      with the Cardholder Account Number.
   *
   * If the 3DS Server handles the 3DS Method response, then this field is not required and it will be resolved
   * internally. If there is no 3DS Method URL associated with the Directory Server to which the cardholder belongs,
   * then this field is not required and 3DS Server will send U. Otherwise, this field should be sent.
   */
  private ThreeDSMethodCompletionIndicatorEnum threeDSCompInd;
  /**
   * Contains information for the 3DS Requestor. More details can be found at {@link ThreeDSRequestor}.
   */
  private ThreeDSRequestor threeDSRequestor;
  /**
   * Universally unique transaction identifier assigned by the 3DS Server to identify a single transaction.
   * This value has 36 characters in a format defined in IETF RFC 4122. In case 3DS Method is previously invoked,
   * the threeDSServerTransID should be sent. If not, 3DS Server will generate a new transaction identifier.
   */
  private String threeDSServerTransID;
  /**
   * Fully qualified URL of 3DS Requestor website or customer care site. This field is optional and it is recommended
   * to be configured in the configuration.
   */
  private URL threeDSRequestorURL;
  /**
   * Contains information for the Cardholder Account. More details can be found at {@link CardholderAccount}.
   */
  private CardholderAccount cardholderAccount;
  /**
   * Contains information for the Cardholder. More details can be found at {@link Cardholder}.
   *
   * This field is required unless market or regional mandate restricts sending this information.
   */
  private Cardholder cardholder;
  /**
   * Boolean flag indicating whether the validation for required cardholder data should not be applied in case when
   * market or regional mandate restricts sending the information.
   *
   * This field is not required and if not provided, it will be checked in the 3DS Server configuration. If it's not
   * configured there, default value is false meaning no relaxation of validation rules on cardholder data.
   */
  private Boolean relaxRegionalValidationRules;
  /**
   * Contains purchase information. More details can be found at {@link Purchase}.
   */
  private Purchase purchase;
  /**
   * Contains information for the Acquirer. More details can be found at {@link AcquirerData}.
   */
  private AcquirerData acquirer;
  /**
   * Contains merchant information. More details can be found at {@link MerchantData}.
   */
  private MerchantData merchant;
  /**
   * Unstructured information sent between the 3DS Server, the DS and the ACS.
   *
   * This field is not required to be filled by the Requestor and the requirements for the presence of this field
   * are DS specific.
   */
  @JsonDeserialize(using = BroadcastInfoDeserializer.class)
  @JsonSerialize(using = BroadcastInfoSerializer.class)
  private String broadInfo;
  /**
   * Defines the SDK UI types that the device supports for displaying specific challenge user interfaces within the SDK.
   *
   * This field is required only when deviceChannel=01 (APP).
   *
   * Fields in this object:
   *    sdkInterface -> Specifies all of the SDK Interface types that the device supports for displaying specific
   *                    challenge user interfaces within the SDK. Accepted values are:
   *                      01 -> Native
   *                      02 -> HTML
   *                      03 -> Both
   *    sdkUiType -> Contains a list of all UI types that the device supports for displaying specific challenge user
   *                 interfaces within the SDK. Accepted values for each UI type are:
   *                    01 -> Text
   *                    02 -> Single select
   *                    03 -> Multi select
   *                    04 -> OOB
   *                    05 -> Html Other (valid only for HTML UI)
   *                 For Native UI SDK Interface accepted values are 01-04 and for HTML UI accepted values are 01-05.
   */
  private DeviceRenderingOptionsSupported deviceRenderOptions;
  /**
   * Data necessary to support requirements not otherwise defined in the 3D Secure message are
   * carried in a Message Extension. This field is limited to 81.920 characters.
   *
   * Requirements of this field are set by each Directory Server.
   *
   * The fields for each message extension attribute are:
   *    id -> A unique identifier for the extension. Payment System Registered Application Provider Identifier (RID) is
   *          required as prefix of the ID. The maximum length is 64 characters.
   *    name -> The name of the extension data set as defined by the extension owner. Maximum length is 64 characters.
   *    criticalityIndicator -> A boolean value indicating whether the recipient must understand the contents
   *                            of the extension to interpret the entire message.
   *    data -> The data carried in the extension. The maximum lenght is 8059 characters.
   */
  private List<MessageExtensionAttribute> messageExtension;
  /**
   * Contains browser information. More details can be found at {@link Browser}.
   *
   * This field is required when deviceChannel=02 (BRW).
   */
  private Browser browserInformation;
  /**
   * Indicates the type of 3RI request. This data element provides additional information to the ACS to determine the
   * best approach for handling a 3RI request. The accepted values are:
   *  01 -> Recurring transaction
   *  02 -> Installment transaction
   *  03 -> Add card
   *  04 -> Maintain card information
   *  05 -> Account verification
   *
   *  This field is required only when deviceChannel=03 (3RI) and messageCategory=02 (NPA).
   */
  private ThreeRIIndicatorEnum threeRIInd;
  /**
  * Contains SDK information. More details can be found at {@link Sdk}.
   *
   * All fields in this object are required for App-based transactions.
  */
  private Sdk sdkInformation;
}

For more information on the ThreeDSServerAuthenticationRequest fields, visit:

Authentication Request JSON Samples

Authentication Request without merchantConfigurationId
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
{
  "deviceChannel": "02",
  "messageCategory": "01",
  "threeDSCompInd": "Y",
  "threeDSRequestor": {
    "threeDSRequestorAuthenticationInd": "02",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "04",
      "threeDSReqAuthTimestamp": "201812201735",
      "threeDSReqAuthData": "threeDSReqAuthData"
    },
    "threeDSRequestorChallengeInd": "03",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "VOGXpZvTlCmBUyPnnZfmsGDKqxRsRwPovkAE",
      "threeDSReqPriorAuthMethod": "01",
      "threeDSReqPriorAuthTimestamp": "201812201735",
      "threeDSReqPriorAuthData": "threeDSReqPriorAuthData"
    }
  },
  "threeDSServerTransID": "df4b3490-db44-4a88-9619-ab173ff76fbe",
  "cardholderAccount": {
    "acctType": "02",
    "cardExpiryDate": "1812",
    "acctInfo": {
      "chAccAgeInd": "04",
      "chAccDate": "20181220",
      "chAccChangeInd": "03",
      "chAccChange": "20181220",
      "chAccPwChangeInd": "04",
      "chAccPwChange": "20181220",
      "shipAddressUsageInd": "03",
      "shipAddressUsage": "20181220",
      "txnActivityDay": 1,
      "txnActivityYear": 1,
      "provisionAttemptsDay": 1,
      "nbPurchaseAccount": 1,
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "01",
      "paymentAccInd": "03",
      "paymentAccAge": "20181220"
    },
    "chAccChangeInd": "03",
    "chAccChange": "20181220",
    "chAccPwChangeInd": "04",
    "chAccPwChange": "20181220",
    "shipAddressUsageInd": "03",
    "shipAddressUsage": "20181220",
    "txnActivityDay": 1,
    "txnActivityYear": 1,
    "provisionAttemptsDay": 1,
    "nbPurchaseAccount": 1,
    "suspiciousAccActivity": "01",
    "shipNameIndicator": "01",
    "paymentAccInd": "03",
    "paymentAccAge": "20181220",
    "acctNumber": "1111111111111111",
    "schemeId": "Visa",
    "acctID": "acct-Id",
    "payTokenInd": true
  },
  "cardholder": {
    "addrMatch": "N",
    "billAddrCity": "billAddrCity",
    "billAddrCountry": "222",
    "billAddrLine1": "billAddrLine1",
    "billAddrLine2": "billAddrLine2",
    "billAddrLine3": "billAddrLine3",
    "billAddrPostCode": "billAddrPostCode",
    "billAddrState": "111",
    "email": "aaa-bbb@example.com",
    "homePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "mobilePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "workPhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "cardholderName": "cardholderName",
    "shipAddrCity": "shipAddrCity",
    "shipAddrCountry": "111",
    "shipAddrLine1": "shipAddrLine1",
    "shipAddrLine2": "shipAddrLine2",
    "shipAddrLine3": "shipAddrLine3",
    "shipAddrPostCode": "shipAddrPostCode",
    "shipAddrState": "222"
  },
  "relaxRegionalValidationRules": false,
  "purchase": {
    "purchaseInstalData": 3,
    "merchantRiskIndicator": {
      "shipIndicator": "01",
      "deliveryTimeframe": "02",
      "deliveryEmailAddress": "a-b@example.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "01",
      "preOrderDate": "20181220",
      "giftCardAmount": 2,
      "giftCardCurr": "111",
      "giftCardCount": 1
    },
    "purchaseAmount": 1,
    "purchaseCurrency": "111",
    "purchaseExponent": 1,
    "purchaseDate": "20181220173550",
    "recurringExpiry": "20181220",
    "recurringFrequency": 1,
    "transType": "01"
  },
  "acquirer": {
    "acquirerBin": "acq-bin",
    "acquirerMerchantId": "acq-mer-id"
  },
  "merchant": {
    "mcc": "code",
    "merchantCountryCode": "333",
    "merchantName": "name"
  },
  "broadInfo": {"message": "TLS 1.x will be turned off starting summer 2019 "},
  "messageExtension": [
    {
      "name": "name",
      "id": "id",
      "criticalityIndicator": false,
      "data": {
        "valueOne": "value1",
        "valueTwo":"value2"
      }
    }
  ],
  "browserInformation": {
    "browserAcceptHeader": "brw-accept-header",
    "browserIP": "brw-ip",
    "browserJavaEnabled": true,
    "browserLanguage": "brw-lang",
    "browserColorDepth": "8",
    "browserScreenHeight": 1,
    "browserScreenWidth": 1,
    "browserTZ": 1,
    "browserUserAgent": "brw-user",
    "challengeWindowSize": "01"
  }
}
Authentication Request with present merchantConfigurationId
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{
  "deviceChannel": "02",
  "messageCategory": "01",
  "threeDSCompInd": "Y",
  "threeDSRequestor": {
    "threeDSRequestorAuthenticationInd": "02",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "04",
      "threeDSReqAuthTimestamp": "201812201735",
      "threeDSReqAuthData": "threeDSReqAuthData"
    },
    "threeDSRequestorChallengeInd": "03",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "VOGXpZvTlCmBUyPnnZfmsGDKqxRsRwPovkAE",
      "threeDSReqPriorAuthMethod": "01",
      "threeDSReqPriorAuthTimestamp": "201812201735",
      "threeDSReqPriorAuthData": "threeDSReqPriorAuthData"
    }
  },
  "threeDSServerTransID": "df4b3490-db44-4a88-9619-ab173ff76fbe",
  "cardholderAccount": {
    "acctType": "02",
    "cardExpiryDate": "1812",
    "acctInfo": {
      "chAccAgeInd": "04",
      "chAccDate": "20181220",
      "chAccChangeInd": "03",
      "chAccChange": "20181220",
      "chAccPwChangeInd": "04",
      "chAccPwChange": "20181220",
      "shipAddressUsageInd": "03",
      "shipAddressUsage": "20181220",
      "txnActivityDay": 1,
      "txnActivityYear": 1,
      "provisionAttemptsDay": 1,
      "nbPurchaseAccount": 1,
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "01",
      "paymentAccInd": "03",
      "paymentAccAge": "20181220"
    },
    "schemeId": "Visa",
    "acctNumber": "1111111111111111",
    "acctID": "acct-Id",
    "payTokenInd": true
  },
  "cardholder": {
    "addrMatch": "N",
    "billAddrCity": "billAddrCity",
    "billAddrCountry": "222",
    "billAddrLine1": "billAddrLine1",
    "billAddrLine2": "billAddrLine2",
    "billAddrLine3": "billAddrLine3",
    "billAddrPostCode": "billAddrPostCode",
    "billAddrState": "111",
    "email": "aaa-bbb@example.com",
    "homePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "mobilePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "workPhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "cardholderName": "cardholderName",
    "shipAddrCity": "shipAddrCity",
    "shipAddrCountry": "111",
    "shipAddrLine1": "shipAddrLine1",
    "shipAddrLine2": "shipAddrLine2",
    "shipAddrLine3": "shipAddrLine3",
    "shipAddrPostCode": "shipAddrPostCode",
    "shipAddrState": "222"
  },
  "relaxRegionalValidationRules": false,
  "purchase": {
    "purchaseInstalData": 3,
    "merchantRiskIndicator": {
      "shipIndicator": "01",
      "deliveryTimeframe": "02",
      "deliveryEmailAddress": "a-b@example.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "01",
      "preOrderDate": "20181220",
      "giftCardAmount": 2,
      "giftCardCurr": "111",
      "giftCardCount": 1
    },
    "purchaseAmount": 1,
    "purchaseCurrency": "111",
    "purchaseExponent": 1,
    "purchaseDate": "20181220173550",
    "recurringExpiry": "20181220",
    "recurringFrequency": 1,
    "transType": "01"
  },
  "acquirer": {
    "acquirerBin": "acq-bin",
    "acquirerMerchantId": "acq-mer-id"
  },
  "merchant": {
    "merchantConfigurationId": "merId"
  },
  "broadInfo": {"message": "TLS 1.x will be turned off starting summer 2019 "},
  "messageExtension": [
    {
      "name": "name",
      "id": "id",
      "criticalityIndicator": false,
      "data": {
        "valueOne":"value1",
        "valueTwo":"value2"
      }
    }
  ],
  "browserInformation": {
    "browserAcceptHeader": "brw-accept-header",
    "browserIP": "brw-ip",
    "browserJavaEnabled": true,
    "browserLanguage": "brw-lang",
    "browserColorDepth": "8",
    "browserScreenHeight": 1,
    "browserScreenWidth": 1,
    "browserTZ": 1,
    "browserUserAgent": "brw-user",
    "challengeWindowSize": "01"
  }
}
Authentication Request for APPLICATION flow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
{
  "deviceChannel": "01",
  "messageCategory": "01",
  "threeDSCompInd": "U",
  "threeDSRequestor": {
    "threeDSRequestorAuthenticationInd": "02",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "04",
      "threeDSReqAuthTimestamp": "201812201735",
      "threeDSReqAuthData": "threeDSReqAuthData"
    },
    "threeDSRequestorChallengeInd": "03",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "VOGXpZvTlCmBUyPnnZfmsGDKqxRsRwPovkAE",
      "threeDSReqPriorAuthMethod": "01",
      "threeDSReqPriorAuthTimestamp": "201812201735",
      "threeDSReqPriorAuthData": "threeDSReqPriorAuthData"
    }
  },
  "threeDSServerTransID": "df4b3490-db44-4a88-9619-ab173ff76fbe",
  "cardholderAccount": {
    "acctType": "02",
    "cardExpiryDate": "1812",
    "acctInfo": {
      "chAccAgeInd": "04",
      "chAccDate": "20181220",
      "chAccChangeInd": "03",
      "chAccChange": "20181220",
      "chAccPwChangeInd": "04",
      "chAccPwChange": "20181220",
      "shipAddressUsageInd": "03",
      "shipAddressUsage": "20181220",
      "txnActivityDay": 1,
      "txnActivityYear": 1,
      "provisionAttemptsDay": 1,
      "nbPurchaseAccount": 1,
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "01",
      "paymentAccInd": "03",
      "paymentAccAge": "20181220"
    },
    "schemeId": "Visa",
    "acctNumber": "1111111111111111",
    "acctID": "acct-Id",
    "payTokenInd": true
  },
  "cardholder": {
    "addrMatch": "N",
    "billAddrCity": "billAddrCity",
    "billAddrCountry": "222",
    "billAddrLine1": "billAddrLine1",
    "billAddrLine2": "billAddrLine2",
    "billAddrLine3": "billAddrLine3",
    "billAddrPostCode": "billAddrPostCode",
    "billAddrState": "111",
    "email": "aaa-bbb@example.com",
    "homePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "mobilePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "workPhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "cardholderName": "cardholderName",
    "shipAddrCity": "shipAddrCity",
    "shipAddrCountry": "111",
    "shipAddrLine1": "shipAddrLine1",
    "shipAddrLine2": "shipAddrLine2",
    "shipAddrLine3": "shipAddrLine3",
    "shipAddrPostCode": "shipAddrPostCode",
    "shipAddrState": "222"
  },
  "relaxRegionalValidationRules": false,
  "purchase": {
    "purchaseInstalData": 3,
    "merchantRiskIndicator": {
      "shipIndicator": "01",
      "deliveryTimeframe": "02",
      "deliveryEmailAddress": "a-b@example.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "01",
      "preOrderDate": "20181220",
      "giftCardAmount": 2,
      "giftCardCurr": "111",
      "giftCardCount": 1
    },
    "purchaseAmount": 1,
    "purchaseCurrency": "111",
    "purchaseExponent": 1,
    "purchaseDate": "20181220173550",
    "recurringExpiry": "20181220",
    "recurringFrequency": 1,
    "transType": "01"
  },
  "acquirer": {
    "acquirerBin": "acq-bin",
    "acquirerMerchantId": "acq-mer-id"
  },
  "merchant": {
    "mcc": "code",
    "merchantCountryCode": "333",
    "merchantName": "name"
  },
  "broadInfo": {"message": "TLS 1.x will be turned off starting summer 2019 "},
  "deviceRenderOptions": {
    "sdkInterface": "01",
    "sdkUiType": [
      "02"
    ]
  },
  "messageExtension": [
    {
      "name": "name",
      "id": "id",
      "criticalityIndicator": false,
      "data": {
        "valueOne":"value1",
        "valueTwo":"value2"
      }
    }
  ],
  "sdkInformation": {
    "sdkAppID": "90d9b629-e639-4188-82d8-09e5c508bc86",
    "sdkEncData": "enc-data",
    "sdkEphemPubKey": {
      "kty": "EC",
      "crv": "P-256",
      "x": "test",
      "y": "test"
    },
    "sdkMaxTimeout": 5,
    "sdkReferenceNumber": "ref-num",
    "sdkTransID": "7f101033-df46-4f5c-9e96-9575c924e1e7"
  }
}
Authentication Request for 3RI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
  "deviceChannel": "03",
  "messageCategory": "01",
  "threeDSCompInd": "U",
  "threeDSRequestor": {
    "threeDSRequestorAuthenticationInd": "02",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "04",
      "threeDSReqAuthTimestamp": "201812201735",
      "threeDSReqAuthData": "threeDSReqAuthData"
    },
    "threeDSRequestorChallengeInd": "03",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "VOGXpZvTlCmBUyPnnZfmsGDKqxRsRwPovkAE",
      "threeDSReqPriorAuthMethod": "01",
      "threeDSReqPriorAuthTimestamp": "201812201735",
      "threeDSReqPriorAuthData": "threeDSReqPriorAuthData"
    }
  },
  "threeDSServerTransID": "df4b3490-db44-4a88-9619-ab173ff76fbe",
  "cardholderAccount": {
    "acctType": "02",
    "cardExpiryDate": "1812",
    "acctInfo": {
      "chAccAgeInd": "04",
      "chAccDate": "20181220",
      "chAccChangeInd": "03",
      "chAccChange": "20181220",
      "chAccPwChangeInd": "04",
      "chAccPwChange": "20181220",
      "shipAddressUsageInd": "03",
      "shipAddressUsage": "20181220",
      "txnActivityDay": 1,
      "txnActivityYear": 1,
      "provisionAttemptsDay": 1,
      "nbPurchaseAccount": 1,
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "01",
      "paymentAccInd": "03",
      "paymentAccAge": "20181220"
    },
    "schemeId": "Visa",
    "acctNumber": "1111111111111111",
    "acctID": "acct-Id",
    "payTokenInd": true
  },
  "cardholder": {
    "addrMatch": "N",
    "billAddrCity": "billAddrCity",
    "billAddrCountry": "222",
    "billAddrLine1": "billAddrLine1",
    "billAddrLine2": "billAddrLine2",
    "billAddrLine3": "billAddrLine3",
    "billAddrPostCode": "billAddrPostCode",
    "billAddrState": "111",
    "email": "aaa-bbb@example.com",
    "homePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "mobilePhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "workPhone": {
      "cc": "cc",
      "subscriber": "subs"
    },
    "cardholderName": "cardholderName",
    "shipAddrCity": "shipAddrCity",
    "shipAddrCountry": "111",
    "shipAddrLine1": "shipAddrLine1",
    "shipAddrLine2": "shipAddrLine2",
    "shipAddrLine3": "shipAddrLine3",
    "shipAddrPostCode": "shipAddrPostCode",
    "shipAddrState": "222"
  },
  "relaxRegionalValidationRules": false,
  "purchase": { },
  "acquirer": {
    "acquirerBin": "acq-bin",
    "acquirerMerchantId": "acq-mer-id"
  },
  "merchant": {
    "mcc": "code",
    "merchantCountryCode": "333",
    "merchantName": "name"
  },
  "broadInfo": {"message": "TLS 1.x will be turned off starting summer 2019 "},
  "messageExtension": [
    {
      "name": "name",
      "id": "id",
      "criticalityIndicator": false,
      "data": {
        "valueOne":"value1",
        "valueTwo":"value2"
      }
    }
  ],
  "threeRIInd": "02"
}

Authentication Response Model

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
public class ThreeDSServerAuthenticationResponse {
 
  /**
   * Universally unique transaction identifier assigned by the 3DS Server to identify a single transaction. It has
   * the same value as the corresponding received authentication request. This value has 36 characters in a format
   * defined in IETF RFC 4122.
   */
  private String threeDSServerTransID;
  /**
   * Fully qualified URL of the ACS in case the authentication response message indicates that further
   * Cardholder interaction is required to complete the authentication.
   */
  private URL acsURL;
  /**
   * Indicates whether a transaction qualifies as an authenticated transaction.
   */
  private TransactionStatusEnum transStatus;
  /**
   * Payment System-specific value provided as part of the ACS registration for each supported DS. Authentication Value
   * may be used to provide proof of authentication.
   */
  private String authenticationValue;
  /**
   * Payment System-specific value provided by the ACS to indicate the results of the attempt to authenticate the
   * Cardholder.
   */
  private String eci;
  /**
   * Indication of whether a challenge is required for the transaction to be authorised due to local/regional
   * mandates or other variable.
   */
  private ACSChallengeMandatedIndicatorEnum acsChallengeMandated;
  /**
   * The sent Authentication Request to the Directory Server.
   */
  private AuthenticationRequest authenticationRequest;
  /**
   * The received Authentication Response from the Directory Server.
   */
  private AuthenticationResponse authenticationResponse;
  /**
   * Date and time of the purchase, expressed in UTC. The field is limited to 14 characters, formatted as
   * YYYYMMDDHHMMSS.
   */
  @JsonFormat(pattern = "yyyyMMddHHmmss")
  private LocalDateTime purchaseDate;
  /**
   * Object containing error details if any errors occurred.
   */
  private ErrorDetails errorDetails;
  /**
   * Challenge Request object in case the authentication response message indicates that further Cardholder
   * interaction is required to complete the authentication.
   */
  private ChallengeRequest challengeRequest;
  /**
   * Base64-encoded Challenge Request object in case the authentication response message indicates that further
   * Cardholder interaction is required to complete the authentication.
   */
  private String base64EncodedChallengeRequest;
}

The 3DS Server prepares an initial challengeRequest (CReq) and includes it in the response only if the device channel is Browser and the the authentication response message indicates that further Cardholder interaction is required to complete the authentication. The 3DS Server also generates a base64-encoded CReq of the same initial challengeRequest.

The 3DS Server fills out the following fields of the CReq:

  • threeDSServerTransID
  • acsTransID
  • challengeWindowSize
  • messageVersion
  • messageType

Authentication Response JSON Samples

Authentication Response with Challenge Requested
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
{
  "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
  "transStatus": "C",
  "acsChallengeMandated": "Y",
  "authenticationRequest": {
    "threeDSCompInd": "Y",
    "threeDSRequestorID": "az0123456789",
    "threeDSRequestorName": "Example Requestor name",
    "threeDSRequestorURL": "https://threedsrequestor.adomainname.net",
    "acquirerBIN": "868491",
    "acquirerMerchantID": "mGm6AJZ1YotkJJmOk0fx",
    "addrMatch": "N",
    "cardExpiryDate": "1910",
    "acctNumber": "8944988785642183",
    "billAddrCity": "Bill City Name",
    "billAddrCountry": "840",
    "billAddrLine1": "Bill Address Line 1",
    "billAddrLine2": "Bill Address Line 2",
    "billAddrLine3": "Bill Address Line 3",
    "billAddrPostCode": "Bill Post Code",
    "billAddrState": "CO",
    "email": "example@example.com",
    "homePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "mobilePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "cardholderName": "Cardholder Name",
    "shipAddrCity": "Ship City Name",
    "shipAddrCountry": "840",
    "shipAddrLine1": "Ship Address Line 1",
    "shipAddrLine2": "Ship Address Line 2",
    "shipAddrLine3": "Ship Address Line 3",
    "shipAddrPostCode": "Ship Post Code",
    "shipAddrState": "CO",
    "workPhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "deviceChannel": "02",
    "browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserIP": "192.168.1.11",
    "browserJavaEnabled": true,
    "browserLanguage": "en",
    "browserColorDepth": "48",
    "browserScreenHeight": "400",
    "browserScreenWidth": "600",
    "browserTZ": "0",
    "browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
    "mcc": "5411",
    "merchantCountryCode": "840",
    "merchantName": "UL TS BV",
    "messageCategory": "01",
    "messageType": "AReq",
    "messageVersion": "2.1.0",
    "purchaseAmount": "101",
    "purchaseCurrency": "978",
    "purchaseExponent": "2",
    "purchaseDate": "20170316141312",
    "transType": "01",
    "threeDSServerURL": " https://threedsserver.adomainname.net ",
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "threeDSServerRefNumber": "3DS_LOA_SER_201_12345",
    "threeDSRequestorAuthenticationInd": "03",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "02",
      "threeDSReqAuthTimestamp": "201711071307",
      "threeDSReqAuthData": "validlogin at UL TS BV"
    },
    "threeDSRequestorChallengeInd": "02",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
      "threeDSReqPriorAuthMethod": "02",
      "threeDSReqPriorAuthTimestamp": "201710282113",
      "threeDSReqPriorAuthData": "cKTYtrvvKU7gUoiqbbO7Po"
    },
    "threeDSServerOperatorID": "1jpeeLAWgGFgS1Ri9tX9",
    "acctType": "03",
    "acctInfo": {
      "chAccAgeInd": "03",
      "chAccDate": "20140328",
      "chAccChangeInd": "04",
      "chAccChange": "20160712",
      "chAccPwChangeInd": "02",
      "chAccPwChange": "20170328",
      "shipAddressUsageInd": "04",
      "shipAddressUsage": "20160714",
      "txnActivityDay": "1",
      "txnActivityYear": "21",
      "provisionAttemptsDay": "0",
      "nbPurchaseAccount": "11",
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "02",
      "paymentAccInd": "04",
      "paymentAccAge": "20160917"
    },
    "acctID": "personal account",
    "dsReferenceNumber": "DS18693744953364703075",
    "dsTransID": "1jpe0dc0-i9t2-4067-bcb1-nmt866956sgd",
    "dsURL": "http://dsserver.domainname.com",
    "payTokenInd": true,
    "purchaseInstalData": "024",
    "merchantRiskIndicator": {
      "shipIndicator": "02",
      "deliveryTimeframe": "01",
      "deliveryEmailAddress": "deliver@email.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "02",
      "preOrderDate": "20170519",
      "giftCardAmount": "337",
      "giftCardCurr": "840",
      "giftCardCount": "02"
    },
    "messageExtension": [
      {
        "name": "emvcomsgext",
        "id": "tc8Qtm465Ln1FX0nZprA",
        "criticalityIndicator": false,
        "data": "messageExtensionData"
      }
    ],
    "recurringExpiry": "20180131",
    "recurringFrequency": "6",
    "broadInfo": {
      "message": "TLS 1.x will be turned off starting summer 2019"
    }
  },
  "authenticationResponse": {
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
    "acsReferenceNumber": "3DS_LOA_ACS_201_13579",
    "acsOperatorID": "AcsOpId 4138359541",
    "dsReferenceNumber": "DS186937449533647030",
    "dsTransID": "f25084f0-5b16-4c0a-ae5d-b24808a95e4b",
    "sdkTransID": "b2385523-a66c-4907-ac3c-91848e8c0067",
    "transStatus": "C",
    "acsChallengeMandated": "Y",
    "messageType": "ARes",
    "messageVersion": "2.1.0"
  },
  "purchaseDate": "20170316141312",
  "challengeRequest": {
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
    "messageType": "CReq",
    "messageVersion": "2.1.0",
    "challengeWindowSize": "01"
  },
  "base64EncodedChallengeRequest": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjhhODgwZGMwLWQyZDItNDA2Ny1iY2IxLWIwOGQxNjkwYjI2ZSIsImFjc1RyYW5zSUQiOiJkN2MxZWU5OS05NDc4LTQ0YTYtYjFmMi0zOTFlMjljNmIzNDAiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAxIn0g"
}
Authentication Response for Frictionless flow (with authentication value)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
{
  "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
  "transStatus": "Y",
  "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "authenticationRequest": {
    "threeDSCompInd": "Y",
    "threeDSRequestorID": "az0123456789",
    "threeDSRequestorName": "Example Requestor name",
    "threeDSRequestorURL": "https://threedsrequestor.adomainname.net",
    "acquirerBIN": "868491",
    "acquirerMerchantID": "mGm6AJZ1YotkJJmOk0fx",
    "addrMatch": "N",
    "cardExpiryDate": "1910",
    "acctNumber": "8944988785642183",
    "billAddrCity": "Bill City Name",
    "billAddrCountry": "840",
    "billAddrLine1": "Bill Address Line 1",
    "billAddrLine2": "Bill Address Line 2",
    "billAddrLine3": "Bill Address Line 3",
    "billAddrPostCode": "Bill Post Code",
    "billAddrState": "CO",
    "email": "example@example.com",
    "homePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "mobilePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "cardholderName": "Cardholder Name",
    "shipAddrCity": "Ship City Name",
    "shipAddrCountry": "840",
    "shipAddrLine1": "Ship Address Line 1",
    "shipAddrLine2": "Ship Address Line 2",
    "shipAddrLine3": "Ship Address Line 3",
    "shipAddrPostCode": "Ship Post Code",
    "shipAddrState": "CO",
    "workPhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "deviceChannel": "02",
    "browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserIP": "192.168.1.11",
    "browserJavaEnabled": true,
    "browserLanguage": "en",
    "browserColorDepth": "48",
    "browserScreenHeight": "400",
    "browserScreenWidth": "600",
    "browserTZ": "0",
    "browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
    "mcc": "5411",
    "merchantCountryCode": "840",
    "merchantName": "UL TS BV",
    "messageCategory": "01",
    "messageType": "AReq",
    "messageVersion": "2.1.0",
    "purchaseAmount": "101",
    "purchaseCurrency": "978",
    "purchaseExponent": "2",
    "purchaseDate": "20170316141312",
    "transType": "01",
    "threeDSServerURL": " https://threedsserver.adomainname.net ",
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "threeDSServerRefNumber": "3DS_LOA_SER_201_12345",
    "threeDSRequestorAuthenticationInd": "03",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "02",
      "threeDSReqAuthTimestamp": "201711071307",
      "threeDSReqAuthData": "validlogin at UL TS BV"
    },
    "threeDSRequestorChallengeInd": "02",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
      "threeDSReqPriorAuthMethod": "02",
      "threeDSReqPriorAuthTimestamp": "201710282113",
      "threeDSReqPriorAuthData": "cKTYtrvvKU7gUoiqbbO7Po"
    },
    "threeDSServerOperatorID": "1jpeeLAWgGFgS1Ri9tX9",
    "acctType": "03",
    "acctInfo": {
      "chAccAgeInd": "03",
      "chAccDate": "20140328",
      "chAccChangeInd": "04",
      "chAccChange": "20160712",
      "chAccPwChangeInd": "02",
      "chAccPwChange": "20170328",
      "shipAddressUsageInd": "04",
      "shipAddressUsage": "20160714",
      "txnActivityDay": "1",
      "txnActivityYear": "21",
      "provisionAttemptsDay": "0",
      "nbPurchaseAccount": "11",
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "02",
      "paymentAccInd": "04",
      "paymentAccAge": "20160917"
    },
    "acctID": "personal account",
    "dsReferenceNumber": "DS18693744953364703075",
    "dsTransID": "1jpe0dc0-i9t2-4067-bcb1-nmt866956sgd",
    "dsURL": "http://dsserver.domainname.com",
    "payTokenInd": true,
    "purchaseInstalData": "024",
    "merchantRiskIndicator": {
      "shipIndicator": "02",
      "deliveryTimeframe": "01",
      "deliveryEmailAddress": "deliver@email.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "02",
      "preOrderDate": "20170519",
      "giftCardAmount": "337",
      "giftCardCurr": "840",
      "giftCardCount": "02"
    },
    "messageExtension": [
      {
        "name": "emvcomsgext",
        "id": "tc8Qtm465Ln1FX0nZprA",
        "criticalityIndicator": false,
        "data": "messageExtensionData"
      }
    ],
    "recurringExpiry": "20180131",
    "recurringFrequency": "6",
    "broadInfo": {
      "message": "TLS 1.x will be turned off starting summer 2019"
    }
  },
  "authenticationResponse": {
    "threeDSServerTransID":"8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "dsReferenceNumber":"DS186937449533647030",
    "dsTransID":"f25084f0-5b16-4c0a-ae5d-b24808a95e4b",
    "messageVersion":"2.1.0",
    "sdkTransID":"b2385523-a66c-4907-ac3c-91848e8c0067",
    "messageType":"ARes",
    "transStatus":"Y",
    "acsChallengeMandated": "N",
    "acsOperatorID":"AcsOpId 4138359541",
    "acsReferenceNumber":"3DS_LOA_ACS_201_13579",
    "acsTransID":"d7c1ee99-9478-44a6-b1f2-391e29c6b340",
    "authenticationValue":"MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
    "eci":"05"
  },
  "purchaseDate": "20170316141312"
}
Authentication Response with Error (error while validating ARes received from DirectoryServer )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
{
  "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
  "transStatus": "Y",
  "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "acsChallengeMandated": "N",
  "authenticationRequest": {
    "threeDSCompInd": "Y",
    "threeDSRequestorID": "az0123456789",
    "threeDSRequestorName": "Example Requestor name",
    "threeDSRequestorURL": "https://threedsrequestor.adomainname.net",
    "acquirerBIN": "868491",
    "acquirerMerchantID": "mGm6AJZ1YotkJJmOk0fx",
    "addrMatch": "N",
    "cardExpiryDate": "1910",
    "acctNumber": "8944988785642183",
    "billAddrCity": "Bill City Name",
    "billAddrCountry": "840",
    "billAddrLine1": "Bill Address Line 1",
    "billAddrLine2": "Bill Address Line 2",
    "billAddrLine3": "Bill Address Line 3",
    "billAddrPostCode": "Bill Post Code",
    "billAddrState": "CO",
    "email": "example@example.com",
    "homePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "mobilePhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "cardholderName": "Cardholder Name",
    "shipAddrCity": "Ship City Name",
    "shipAddrCountry": "840",
    "shipAddrLine1": "Ship Address Line 1",
    "shipAddrLine2": "Ship Address Line 2",
    "shipAddrLine3": "Ship Address Line 3",
    "shipAddrPostCode": "Ship Post Code",
    "shipAddrState": "CO",
    "workPhone": {
      "cc": "123",
      "subscriber": "123456789"
    },
    "deviceChannel": "02",
    "browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserIP": "192.168.1.11",
    "browserJavaEnabled": true,
    "browserLanguage": "en",
    "browserColorDepth": "48",
    "browserScreenHeight": "400",
    "browserScreenWidth": "600",
    "browserTZ": "0",
    "browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
    "mcc": "5411",
    "merchantCountryCode": "840",
    "merchantName": "UL TS BV",
    "messageCategory": "01",
    "messageType": "AReq",
    "messageVersion": "2.1.0",
    "purchaseAmount": "101",
    "purchaseCurrency": "978",
    "purchaseExponent": "2",
    "purchaseDate": "20170316141312",
    "transType": "01",
    "threeDSServerURL": " https://threedsserver.adomainname.net ",
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
    "threeDSServerRefNumber": "3DS_LOA_SER_201_12345",
    "threeDSRequestorAuthenticationInd": "03",
    "threeDSRequestorAuthenticationInfo": {
      "threeDSReqAuthMethod": "02",
      "threeDSReqAuthTimestamp": "201711071307",
      "threeDSReqAuthData": "validlogin at UL TS BV"
    },
    "threeDSRequestorChallengeInd": "02",
    "threeDSRequestorPriorAuthenticationInfo": {
      "threeDSReqPriorRef": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
      "threeDSReqPriorAuthMethod": "02",
      "threeDSReqPriorAuthTimestamp": "201710282113",
      "threeDSReqPriorAuthData": "cKTYtrvvKU7gUoiqbbO7Po"
    },
    "threeDSServerOperatorID": "1jpeeLAWgGFgS1Ri9tX9",
    "acctType": "03",
    "acctInfo": {
      "chAccAgeInd": "03",
      "chAccDate": "20140328",
      "chAccChangeInd": "04",
      "chAccChange": "20160712",
      "chAccPwChangeInd": "02",
      "chAccPwChange": "20170328",
      "shipAddressUsageInd": "04",
      "shipAddressUsage": "20160714",
      "txnActivityDay": "1",
      "txnActivityYear": "21",
      "provisionAttemptsDay": "0",
      "nbPurchaseAccount": "11",
      "suspiciousAccActivity": "01",
      "shipNameIndicator": "02",
      "paymentAccInd": "04",
      "paymentAccAge": "20160917"
    },
    "acctID": "personal account",
    "dsReferenceNumber": "DS18693744953364703075",
    "dsTransID": "1jpe0dc0-i9t2-4067-bcb1-nmt866956sgd",
    "dsURL": "http://dsserver.domainname.com",
    "payTokenInd": true,
    "purchaseInstalData": "024",
    "merchantRiskIndicator": {
      "shipIndicator": "02",
      "deliveryTimeframe": "01",
      "deliveryEmailAddress": "deliver@email.com",
      "reorderItemsInd": "01",
      "preOrderPurchaseInd": "02",
      "preOrderDate": "20170519",
      "giftCardAmount": "337",
      "giftCardCurr": "840",
      "giftCardCount": "02"
    },
    "messageExtension": [
      {
        "name": "emvcomsgext",
        "id": "tc8Qtm465Ln1FX0nZprA",
        "criticalityIndicator": false,
        "data": "messageExtensionData"
      }
    ],
    "recurringExpiry": "20180131",
    "recurringFrequency": "6",
    "broadInfo": {
      "message": "TLS 1.x will be turned off starting summer 2019"
    }
  },
  "authenticationResponse": {
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26",
    "acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
    "acsReferenceNumber": "3DS_LOA_ACS_201_13579",
    "acsOperatorID": "AcsOpId 4138359541",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
    "dsReferenceNumber": "DS186937449533647030",
    "dsTransID": null,
    "eci": "05",
    "sdkTransID": "b2385523-a66c-4907-ac3c-91848e8c0067",
    "transStatus": "Y",
    "acsChallengeMandated": "Y",
    "messageType": "ARes",
    "messageVersion": "2.1.0"
  },
  "purchaseDate": "20170316141312",
  "errorDetails": {
    "threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26",
    "acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
    "dsTransID": null,
    "sdkTransID": "b2385523-a66c-4907-ac3c-91848e8c0067",
    "errorCode": "201",
    "errorComponent": "S",
    "errorDescription": "Validation of 3DS Authentication Response failed. A message element required is missing from the message.",
    "errorDetail": "dsTransID"
  }
}