Testing your Integration
...
Testing Overview
Testing your Direct (API) Inte...
Testing 3D Secure 2 Authentication
testing 3d secure 2 authentication to trigger specific 3d secure 2 user journeys , include the cardholdername as specified in the testing 3d secure 2 authentication /#cardholdername table the cardholdername is case sensitive and corresponds to an expected transaction result important to consider ensure judopay has enabled 3d secure 2 on your sandbox tokens if 3d secure 2 is not enabled on your tokens, the test transaction will be successful, however it will not have followed the 3d secure 2 verification process contact customer support mailto\ help\@judopay com to set this up the following 3d secure 2 scenarios are intended for merchants who are directly integrating with judopay, to test the how 3d secure works docid\ k7fnzbol73ssctbct4nxm if you are integrating using judopay's front end / ui sdk, the 3d secure 2 flows are handled on your behalf cardholdername table to trigger a challenge response without device details , from the cardholdername table, use cardholdername frictionless nomethod with challengerequestindicator=challengeasmandate if you specify a different cardholdername to any found in the table below, the frictionless successful flow will be the default flow true false 227,140,207false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type electronic commerce indicator the electronic commerce indicator (eci) as received from the 3d secure server denotes the 3d secure authentication status, used to show liability status for more information, see liability shift docid\ qmiciv81gzuixfm0idymg you should check how your app responds to the different transaction results testing frictionless 3d secure 2 flows request example { "cardnumber" 4976000000003436, "cv2" 452, "expirydate" "12/25", "cardaddress" { "address1" "32 mulberry street", "address2" "eastfort", "town" "violetdell", "postcode" "vl14 8pa", "countrycode" 826 }, "judoid" "yourjudoid", "yourconsumerreference" "yourconsumerreference", "yourpaymentreference" "yourpaymentreference", "yourpaymentmetadata" { "internallocationref" "example", "internalid" 99 }, "amount" 150 10, "currency" "gbp", "cardholdername" "frictionless successful", "mobilenumber" 7999999999, "phonecountrycode" 44, "emailaddress" "first last\@test com", "shippingaddress" { "isbillingaddress" true }, "threedsecure" { "authenticationsource" "browser", "methodnotificationurl" "https //api sandbox judopay com/order/3ds/methodnotification", "challengenotificationurl" "https //api sandbox judopay com/order/3ds/challengenotification", "challengerequestindicator" "nochallenge" } } when testing a 3d secure 2 frictionless flow , make sure the challengerequestindicator is not set to challengeasmandate successful frictionless scenarios to trigger specific 3d secure 2 user journeys , include the cardholdername as specified in the testing 3d secure 2 authentication /#cardholdername table the cardholdername is case sensitive and corresponds to an expected transaction result frictionless successful true false 72,157,101,77,83,70false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details no additional information is required second response receipt step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } step two receipt response { "receiptid" "933048235499622400", "yourpaymentreference" "df11021c 7435 4894 8eb2a", "type" "payment", "createdat" "2023 01 18t17 20 34 5486+00 00", "result" "success", "message" "authcode 150", "judoid" 100502814, "merchantname" "test merchant", "appearsonstatementas" "test merchant", "originalamount" "150 10", "netamount" "150 10", "amount" "150 10", "currency" "gbp", "acquirertransactionid" "7017269349", "externalbankresponsecode" "0", "carddetails" { "cardlastfour" "3436", "enddate" "1225", "cardtoken" "sof jub 6lcsfkeiepavizxva", "cardtype" 1, "cardscheme" "visa", "cardfunding" "credit", "cardcategory" "", "cardcountry" "us", "bank" "jpmorgan chase bank, n a " }, "billingaddress" { "address1" "32 mulberry street", "address2" "eastfort", "town" "violetdell", "postcode" "vl14 8pa", "countrycode" 826 }, }, "consumer" { "yourconsumerreference" "3ds2 test 1" }, "threedsecure" { "attempted" true, "result" "passed" }, "risks" { "postcodecheck" "unknown", "cv2check" "unknown", "eciindicator" "05" } } frictionless nomethod true false 74,156,104,80,75,66false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call, no additional information is required first response receipt step one receipt response { "receiptid" "933048235499622400", "yourpaymentreference" "df11021c 7435 4894 8eb2a", "type" "payment", "createdat" "2023 01 18t17 20 34 5486+00 00", "result" "success", "message" "authcode 150", "judoid" 100502814, "merchantname" "test merchant", "appearsonstatementas" "test merchant", "originalamount" "150 10", "netamount" "150 10", "amount" "150 10", "currency" "gbp", "acquirertransactionid" "7017269349", "externalbankresponsecode" "0", "carddetails" { "cardlastfour" "5462", "enddate" "1225", "cardtoken" "sof jub 6lcsfkeiepavizxva", "cardtype" 1, "cardscheme" "visa", "cardfunding" "credit", "cardcategory" "", "cardcountry" "us", "bank" "jpmorgan chase bank, n a " }, "billingaddress" { "address1" "11 jackson close", "address2" "stoneden", "town" "wildefay", "postcode" "wl2 7dq", "countrycode" 826 }, "consumer" { "yourconsumerreference" "3ds2 test 1" }, "threedsecure" { "attempted" true, "result" "passed" }, "risks" { "postcodecheck" "unknown", "cv2check" "unknown", "eciindicator" "05" } the expected outcome shows the conditional steps within the 3ds 2 flow depending on how you are integrating with judopay, you may only see the receipt or error response for example, if you are using judopay's front end / ui sdk, this will handle the conditional steps on your behalf you will not see the conditional device details check step, as this occurs in the background it is useful to have an understanding of the full 3ds 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app for more information on the 3ds 2 flow, see how 3d secure works docid\ k7fnzbol73ssctbct4nxm unsuccessful frictionless scenarios frictionless authnotsuccess true false 66,154,93,74,73,61false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details in response to the call made to /resume3ds error code 177 authentication was attempted but failed due to issuer response step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } error response { "message" "authentication was attempted but failed due to issuer response ", "code" 177, "category" 4 } frictionless authfailed true false 72,153,89,76,64,67false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details in response to the call made to /resume3ds error code 165 unable to process transaction card authentication failed with 3ds server step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } error response { "message" "unable to process transaction card authentication failed with 3ds server ", "code" 165, "category" 4 } frictionless issuerreject true false 71,150,83,76,69,55false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details in response to the call made to /resume3ds error code 186 authentication rejected by the issuer as card used is flagged as stolen step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } error response { "message" "authentication rejected by the issuer as card used is flagged as stolen ", "code" 186, "category" 4 } frictionless authenticationerror true false 70,161,83,81,78,68false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details in response to the call made to /resume3ds error code 182 unable to authenticate transaction as card authentication has failed step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } error response { "message" "unable to authenticate transaction as card authentication has failed ", "code" 182, "category" 4 } the expected outcome shows the conditional steps within the 3ds 2 flow depending on how you are integrating with judopay, you may only see the receipt or error response for example, if you are using judopay's front end / ui sdk, this will handle the conditional steps on your behalf you will not see the conditional device details check step, as this occurs in the background it is useful to have an understanding of the full 3ds 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app for more information on the 3ds 2 flow, see how 3d secure works docid\ k7fnzbol73ssctbct4nxm testing a challenge 3d secure 2 flow to trigger specific 3d secure 2 user journeys , include the cardholdername as specified in the testing 3d secure 2 authentication /#cardholdername table the cardholdername is case sensitive and corresponds to an expected transaction result challenge required true false 72,152,83,74,67,54false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type the 3d secure 2 flow will return conditional steps should additional information be required from the consumer in response to the initial call first response device details in response to the call made to /resume3ds second response challenge in response to the call made to /complete3ds third response receipt step one initial request > device details response { "methodurl" "https //test portal gpwebpay com/ paysim/sim/acs", "version" "2 2 0", "receiptid" "933044681309327360", "result" "additional device data is needed for 3d secure 2", "message" "issuer acs has requested additional device data gathering", "md" "ewogicj0ahjlzurtu2vydmvyvhjh" } step two resume 3ds2 request > challenge required response { "challengeurl" "https //acs2p test gpe cz/challenge", "creq" "ewogicjtzxnzywdlvhlwzsigoi", "version" "2 1 0", "receiptid" "933047860931497984", "result" "challenge completion is needed for 3d secure 2", "message" "issuer acs has responded with a challenge url", "md" "ewogicj0ahjlzurtu2vydmvyvhjhb" } step three complete 3ds2 request > receipt response { "receiptid" "933048235499622400", "yourpaymentreference" "df11021c 7435 4894 8eb2a", "type" "payment", "createdat" "2023 01 18t17 20 34 5486+00 00", "result" "success", "message" "authcode 150", "judoid" 100502814, "merchantname" "test merchant", "appearsonstatementas" "test merchant", "originalamount" "150 10", "netamount" "150 10", "amount" "150 10", "currency" "gbp", "acquirertransactionid" "7017269349", "externalbankresponsecode" "0", "carddetails" { "cardlastfour" "3436", "enddate" "1225", "cardtoken" "sof jub 6lcsfkeiepavizxva", "cardtype" 1, "cardscheme" "visa", "cardfunding" "credit", "cardcategory" "", "cardcountry" "us", "bank" "jpmorgan chase bank, n a " }, "billingaddress" { "address1" "32 mulberry street", "address2" "eastfort", "town" "violetdell", "postcode" "vl14 8pa", "countrycode" 826 }, "consumer" { "yourconsumerreference" "3ds2 test 1" }, "threedsecure" { "attempted" true, "result" "passed" }, "risks" { "postcodecheck" "unknown", "cv2check" "unknown", "eciindicator" "05" } } the expected outcome shows the conditional steps within the 3ds 2 flow depending on how you are integrating with judopay, you may only see the receipt or error response for example, if you are using judopay's front end / ui sdk, this will handle the conditional steps on your behalf you will not see the conditional device details check step, as this occurs in the background it is useful to have an understanding of the full 3ds 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app for more information on the 3ds 2 flow, see how 3d secure works docid\ k7fnzbol73ssctbct4nxm for a list of possible error codes, types and descriptions, see codes and descriptions docid zrsihomuew xnrq4pbtj