The NDM Simulator allows external configuration of the simulated Authentication response and Results request per account number.
Possible types of Authentication Responses are listed below:
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 | public enum AuthenticationResponseTypeEnum { /** * Authenticated application frictionless authentication response. */ AUTHENTICATED_APPLICATION_FRICTIONLESS, /** * Not authenticated application frictionless authentication response. */ NOT_AUTHENTICATED_APPLICATION_FRICTIONLESS, /** * Invalid application frictionless authentication response with missing sdkTransId. */ APPLICATION_FRICTIONLESS_MISSING_SDK_TRANS_ID, /** * Application challenge authentication response. */ APPLICATION_CHALLENGE, /** * Invalid application challenge authentication response with sdkTransId having invalid format. */ APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMAT, /** * Authenticated browser frictionless authentication response. */ AUTHENTICATED_BROWSER_FRICTIONLESS, /** * Not authenticated browser frictionless authentication response. */ NOT_AUTHENTICATED_BROWSER_FRICTIONLESS, /** * Invalid browser frictionless authentication response with missing dsTransId. */ BROWSER_FRICTIONLESS_MISSING_DS_TRANS_ID, /** * Browser challenge authentication response. */ BROWSER_CHALLENGE, /** * Invalid browser challenge authentication response with missing acsURL. */ BROWSER_CHALLENGE_MISSING_ACS_URL, /** * 3RI authentication response. */ THREE_RI, /** * Protocol error. */ PROTOCOL_ERROR, /** * Browser using Decoupled Authentication. */ BROWSER_DECOUPLED_CHALLENGE_VERSION_2_2_0, /** * Authenticated, Merchant whitelisted. */ AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0 } |
Possible types of Results Request are listed below:
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 | public enum ResultsRequestTypeEnum { /** * Results request indicating authenticated transaction. */ AUTHENTICATED_TRANSACTION, /** * Invalid results request indicating authenticated transaction. */ AUTHENTICATED_TRANSACTION_MISSING_AUTHENTICATION_VALUE, /** * Authenticated transaction with possibility to configure merchant whitelist. */ AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0, /** * Not authenticated transaction with possibility to configure merchant whitelist. */ NOT_AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0, /** * Results request indicating not authenticated transaction. */ NOT_AUTHENTICATED_TRANSACTION, /** * Protocol error. */ PROTOCOL_ERROR } |
In order to configure the type of Authentication response and Results Request per account number, use the cardholder-numbers-simulated-message-types.properties configuration file in the $NDM_SIMULATOR_HOME/conf. An example on how to configure it is listed below:
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 | threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000000.aRes =AUTHENTICATED_APPLICATION_FRICTIONLESS threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000001.aRes =NOT_AUTHENTICATED_APPLICATION_FRICTIONLESS threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000002.aRes =APPLICATION_FRICTIONLESS_MISSING_SDK_TRANS_ID threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000003.aRes =APPLICATION_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000003.rReq =AUTHENTICATED_TRANSACTION threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000004.aRes =APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMAT threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000005.aRes =AUTHENTICATED_BROWSER_FRICTIONLESS threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000006.aRes =NOT_AUTHENTICATED_BROWSER_FRICTIONLESS threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000007.aRes =BROWSER_FRICTIONLESS_MISSING_DS_TRANS_ID threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000008.aRes =BROWSER_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000008.rReq =NOT_AUTHENTICATED_TRANSACTION threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000009.aRes =BROWSER_CHALLENGE_MISSING_ACS_URL threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000010.aRes =THREE_RI threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000011.aRes =PROTOCOL_ERROR threedsdemo.cardholderNumbersSimulatedMessageTypes.num4916486411972975.aRes =BROWSER_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4916486411972975.rReq =AUTHENTICATED_TRANSACTION threedsdemo.cardholderNumbersSimulatedMessageTypes.num7654310438720050.aRes =APPLICATION_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num7654310438720050.rReq =NOT_AUTHENTICATED_TRANSACTION threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000012.aRes =BROWSER_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000012.rReq =AUTHENTICATED_TRANSACTION_MISSING_AUTHENTICATION_VALUE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000013.aRes =APPLICATION_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000013.rReq =PROTOCOL_ERROR threedsdemo.cardholderNumbersSimulatedMessageTypes.num6000009000000001.aRes =BROWSER_DECOUPLED_CHALLENGE_VERSION_2_2_0 threedsdemo.cardholderNumbersSimulatedMessageTypes.num6000009000000001.rReq =NOT_AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0 threedsdemo.cardholderNumbersSimulatedMessageTypes.num6000009000000002.aRes =AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000009000000003.aRes =BROWSER_CHALLENGE threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000009000000003.rReq =AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0,MTIzNDU2Nzg5MDA5ODc2NTQzMjE=,02,17,Y,80 |
There is also a possibility to configure specific message fields values per authentication response and results request type. The configurable message fields per authentication response type are listed below and (if configured) they must be provided in that specific order.
The configurable message fields per results request type are listed below and (if configured) they must be provided in that specific order.
The format requirements for each configurable message field are listed below:
In order to configure the authentication response and results request specific fields, the cardholder-numbers-simulated-message-types.properties configuration file in the $NDM_SIMULATOR_HOME/conf should be also used. If no configuration is provided for the message fields, default values will be used. An example configuration is listed below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000000.aRes =AUTHENTICATED_APPLICATION_FRICTIONLESS,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000001.aRes =NOT_AUTHENTICATED_APPLICATION_FRICTIONLESS,01 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000002.aRes =APPLICATION_FRICTIONLESS_MISSING_SDK_TRANS_ID,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000003.aRes =APPLICATION_CHALLENGE,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000003.rReq =AUTHENTICATED_TRANSACTION,MTIzNDU2Nzg5MDA5ODc2NTQzMjE=,02,18,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000004.aRes =APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMAT,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000005.aRes =AUTHENTICATED_BROWSER_FRICTIONLESS,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000006.aRes =NOT_AUTHENTICATED_BROWSER_FRICTIONLESS,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000007.aRes =BROWSER_FRICTIONLESS_MISSING_DS_TRANS_ID,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000008.aRes =BROWSER_CHALLENGE,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000008.rReq =NOT_AUTHENTICATED_TRANSACTION,07,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000009.aRes =BROWSER_CHALLENGE_MISSING_ACS_URL,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000010.aRes =THREE_RI,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000011.aRes =PROTOCOL_ERROR,D,101,error description,error detail threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000012.aRes =BROWSER_CHALLENGE,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000012.rReq =AUTHENTICATED_TRANSACTION_MISSING_AUTHENTICATION_VALUE,02,07,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000013.aRes =APPLICATION_CHALLENGE,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000013.rReq =PROTOCOL_ERROR,A,201,error description,error detail threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000014.aRes =BROWSER_DECOUPLED_CHALLENGE_VERSION_2_2_0,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000014.rReq =AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09,18,Y,03 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000015.aRes =AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0,MTIzNDU2Nzg5MDA5ODc2NTQkokW=,09,Y,01 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000016.aRes =BROWSER_DECOUPLED_CHALLENGE_VERSION_2_2_0,01,Y,02 threedsdemo.cardholderNumbersSimulatedMessageTypes.num4000001000000016.rReq =NOT_AUTHENTICATED_MERCHANT_WHITELIST_VERSION_2_2_0,18,N,03 |
The NDM Simulator allows external configuration of the Preparation response card ranges data used when simulating a Directory Server.
Each card range is configured in a separate row following the order of the message fields:
The fields values are separated with comma and are defined in that specific order.
Once the card ranges are configured a preparation response including them will be returned on the following endpoint:
An example configuration file on how to configure it exists in the $NDM_SIMULATOR_HOME/conf under the name simulated-card-range-data.properties and it is also listed below:
1 | threedsdemo.simulated-card-range-data.ranges[0] =4000000000000000,4000009999999999,M,2.1.0,2.2.0,2.1.0,2.2.0,01|02|03|04 |
The NDM Simulator allows configuration of the Results Request sent when simulating an ACS for Challenge flow.
Each request is configured in a separate row following the order of the message fields:
The fields values are separated with comma, and are defined in that specific order.
Once the responses are configured, the cardholder can use the configured OTP values for simulating a RReq message.
An example configuration file on how to configure it exists in the $NDM_SIMULATOR_HOME/conf under the name simulated-otp-responses.properties and it is also listed below:
1 2 3 4 5 6 | #otpValue,transStatus,transStatusReason,eci,authenticationValue threedsdemo.simulated-otp-responses.responses[0] =1234,Y,,01,JAmi21makAifmwqo2120cjq1AAA= threedsdemo.simulated-otp-responses.responses[1] =1111,N,01,01, threedsdemo.simulated-otp-responses.responses[2] =2222,R,01,01, threedsdemo.simulated-otp-responses.responses[3] =3333,U,01,01, threedsdemo.simulated-otp-responses.responses[4] =4444,A,01,01,Qm181okmdyqh6yQmYuq1890QAAA= |