ThreeDSRequestor

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
public class ThreeDSRequestor {
 
  /**
   * Indicates the type of Authentication request. This data element provides additional information to the ACS to
   * determine the best approach for handling an authentication request. This value is used for App-based and Browser
   * flows. The accepted values are:
   *
   *  01 -> Payment transaction
   *  02 -> Recurring transaction
   *  03 -> Installment transaction
   *  04 -> Add card
   *  05 -> Maintain card
   *  06 -> Cardholder verification as part of EMV token ID&V
   *
   *  This is a required field.
   */
  private ThreeDSRequestorAuthenticationIndicatorEnum threeDSRequestorAuthenticationInd;
  /**
   * Information about how the 3DS Requestor authenticated the cardholder before or during the transaction. This object
   * contains the following fields:
   *    threeDSReqAuthMethod -> Mechanism used by the Cardholder to authenticate to the 3DS Requestor. Accepted values
   *    are:
   *      01 -> No 3DS Requestor authentication occurred (i.e. cardholder "logged in" as guest)
   *      02 -> Login to the cardholder account at the 3DS Requestor system using 3DS Requestor's own credentials
   *      03 -> Login to the cardholder account at the 3DS Requestor system using federated ID
   *      04 -> Login to the cardholder account at the 3DS Requestor system using issuer credentials
   *      05 -> Login to the cardholder account at the 3DS Requestor system using third-party authentication
   *      06 -> Login to the cardholder account at the 3DS Requestor system using FIDO Authenticator.
   *
   *      The next values are accepted as well if 3DS Server initiates authentication with EMV 3DS 2.2.0 version
   *      or greater (required protocol version can be set in
   *      {@link ThreeDSServerAuthenticationRequest#preferredProtocolVersion} field):
   *      07 -> Login to the cardholder account at the 3DS Requestor system using FIDO Authenticator
   *            (FIDO assurance data signed).
   *      08 -> SRC Assurance Data.
   *
   *    threeDSReqAuthTimestamp -> Date and time in UTC of the cardholder authentication. Field is limited to 12
   *                               characters and accepted format is YYYYMMDDHHMM
   *    threeDSReqAuthData -> Data that documents and supports a specific authentication process. In the current
   *                          version of the specification, this data element is not defined in detail, however the
   *                          intention is that for each 3DS Requestor Authentication Method, this field carry data
   *                          that the ACS can use to verify the authentication process. For example, if the 3DS
   *                          Requestor Authentication Method is:
   *                            03 -> then this element can carry information about the provider of the federated ID and
   *                                  related information
   *                            06 -> then this element can carry the FIDO attestation data (incl. the signature)
   *
   * This field is optional, but recommended to include.
   */
  private ThreeDSRequestorAuthenticationInformation threeDSRequestorAuthenticationInfo;
  /**
   * Indicates whether a challenge is requested for this transaction. For example: For 01-PA, a 3DS Requestor may have
   * concerns about the transaction, and request a challenge. For 02-NPA, a challenge may be necessary when adding a new
   * card to a wallet.
   *
   * This field is optional. The accepted values are:
   *
   *  01 -> No preference
   *  02 -> No challenge requested
   *  03 -> Challenge requested: 3DS Requestor Preference
   *  04 -> Challenge requested: Mandate.
   *
   *  The next values are accepted as well if 3DS Server initiates authentication with EMV 3DS 2.2.0 version
   *  or greater (required protocol version can be set in
   *  {@link ThreeDSServerAuthenticationRequest#preferredProtocolVersion} field):
   *
   *  05 -> No challenge requested (transactional risk analysis is already performed)
   *  06 -> No challenge requested (Data share only)
   *  07 -> No challenge requested (strong consumer authentication is already performed)
   *  08 -> No challenge requested (utilise whitelist exemption if no challenge required)
   *  09 -> Challenge requested (whitelist prompt requested if challenge required).
   *
   * If the element is not provided, the expected action is that the ACS would interpret as 01 -> No preference.
   */
  private ThreeDSRequestorChallengeIndicatorEnum threeDSRequestorChallengeInd;
  /**
   * This field contains information about how the 3DS Requestor authenticated the cardholder as part of a previous
   * 3DS transaction. This object contains the following fields:
   *    threeDSReqPriorRef -> This data element provides additional information to the ACS to determine the best
   *                          approach for handling a request. The field is limited to 36 characters containing
   *                          ACS Transaction ID for a prior authenticated transaction (for example, the first
   *                          recurring transaction that was authenticated with the cardholder).
   *    threeDSReqPriorAuthMethod -> Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor.
   *                                 Accepted values for this field are:
   *                                    01 -> Frictionless authentication occurred by ACS
   *                                    02 -> Cardholder challenge occurred by ACS
   *                                    03 -> AVS verified
   *                                    04 -> Other issuer methods
   *    threeDSReqPriorAuthTimestamp -> Date and time in UTC of the prior authentication. Accepted date format is
   *                                    YYYYMMDDHHMM.
   *    threeDSReqPriorAuthData -> Data that documents and supports a specfic authentication porcess. In the current
   *                               version of the specification this data element is not defined in detail, however
   *                               the intention is that for each 3DS Requestor Authentication Method, this field carry
   *                               data that the ACS can use to verify the authentication porcess. In future versions
   *                               of the application, these details are expected to be included. Field is limited to
   *                               maximum 2048 characters.
   *
   * This field is optional, but recommended to include.
   */
  private ThreeDSRequestorPriorTransactionAuthenticationInformation threeDSRequestorPriorAuthenticationInfo;
  /**
   * Indicates whether the 3DS Requestor requests the ACS to utilise Decoupled Authentication and
   * agrees to utilise Decoupled Authentication if the ACS confirms its use. Accepted values are:
   *    Y -> Decoupled Authentication is supported and preferred if challenge is necessary.
   *    N -> Do not use Decoupled Authentication.
   *
   * The field is optional and if value is not present, the expected action is for the ACS to interpret as 'N'.
   * Available for supporting EMV 3DS 2.2.0 and later versions.
   */
  private ThreeDSRequestorDecoupledRequestIndicatorEnum threeDSRequestorDecReqInd;
  /**
   * Indicates the maximum amount of time that the 3DS Requestor will wait for an ACS to provide the results
   * of a Decoupled Authentication transaction (in minutes). Valid values are between 1 and 10080.
   *
   * The field is optional and if value is not present, the expected action is for the ACS to interpret it as
   * 10080 minutes (7 days).
   * Available for supporting EMV 3DS 2.2.0 and later versions.
   */
  private Integer threeDSRequestorDecMaxTime;
}