3DS2 - Authentication Challenge, with 3DS Method (deprecated)
To test this scenario, use one of the card numbers below:
CARD | Expiry date | Label |
---|---|---|
4970110000001003 | To be chosen | VISA |
5100010000000106 | To be chosen | MASTERCARD |
375900000010015 | To be chosen | AMEX |
Exchange flow
1. Initial call to the PCI/Charge/Authenticate service with a card enrolled for 3DS2.
{ "amount":"9990", "currency":"XPF", "transactionCategory":"PAYMENT", "productType":"GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid":"9876357" }, "paymentForm": { "expiryMonth":"09", "expiryYear":"22", "networkPreference":"VISA", "pan":"4970110000001003" }, "device": { "acceptHeader":"text/html", "colorDepth":"32", "deviceType":"BROWSER", "ip":"69.89.31.226", "javaEnabled": true, "language":"FR", "screenHeight":"768", "screenWidth":"1258", "timeZoneOffset":"-120", "userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101" }, "protocolRequest": { "name":"THREEDS", "version":"2", "challengePreference":"NO_PREFERENCE" } }
2. A return with a FINGERPRINT instruction (3DS Method).
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-04T13:14:07+00:00", "ticket":"bbea766294a84618a2a4b0d167cff9b3", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "instructionType":"FORM", "name":"FINGERPRINT", "timeout":10, "target":{ "element":"IFRAME", "visible":false, "_type":"V4/Charge/Authenticate/InstructionTarget" }, "http":{ "method":"POST", "url":"https://acs.sg.com/acs/v2/3dsMethod", "body":{ "threeDSMethodData":"eyJ0aHJlZURzTW..." }, "_type":"V4/Charge/Authenticate/HttpRequest" }, "_type":"V4/Charge/Authenticate/AuthenticationInstruction" }, "_type":"V4/AuthenticationResponseData" } }
3. Redirection to the ACS in the invisible iFrame, loading and execution of the JavaScript code of the ACS fingerprint.
The characteristics of the Iframe are given in the answer.value.target object. The form to be displayed in the Iframe is described in the answer.value.http object.
4. Return via the browser with an instruction result.
{ "eventName":"LYRA_AUTH_INSTRUCTION_RESULT", "value":{ "name":"FINGERPRINT", "value":"eyJjZXJ0aWZpY2F0Z...", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true } } }
5. A new call to the PCI/Charge/Authenticate service transmitting this result.
{ "amount": "9990", "currency": "XPF", "transactionCategory": "PAYMENT", "productType": "GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid": "9876357" }, "paymentForm": { "expiryMonth": "09", "expiryYear": "22", "networkPreference": "VISA", "pan": "4970110000001003" }, "device": { "acceptHeader": "text/html", "colorDepth": "32", "deviceType": "BROWSER", "ip": "69.89.31.226", "javaEnabled": true, "language": "FR", "screenHeight": "768", "screenWidth": "1258", "timeZoneOffset": "-120", "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101" }, "protocolRequest": { "name": "THREEDS", "version": "2", "challengePreference": "NO_PREFERENCE" }, "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "instructionResult": { "name" : "FINGERPRINT", "protocol" : { "name" : "THREEDS", "network": "VISA", "version" : "2.1.0", "challengePreference": "NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0Z..." } }
7. A return with a CHALLENGE instruction of redirection to the ACS with a CReq (visible iFrame).
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-04T13:14:09+00:00", "ticket":"bbea766294a84618a2a4b0d167cff9b3", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "instructionType":"FORM", "name":"CHALLENGE", "timeout":600, "target":{ "element":"IFRAME", "visible":true, "width":500, "height":600, "_type":"V4/Charge/Authenticate/InstructionTarget" }, "http":{ "method":"POST", "url":"https://acs.sg.com/acs/v2/creq", "body":{ "creq":"eyJ0aHJlZURTU2V...", "threeDSSessionData":"H4sIAAAAAAAAAC2..." }, "_type":"V4/Charge/Authenticate/HttpRequest" }, "_type":"V4/Charge/Authenticate/AuthenticationInstruction" }, "_type":"V4/AuthenticationResponseData" } }
7. Redirection to the ACS in the iFrame for cardholder authentication.
The iFrame's characteristics are given in the answer.value.target object. The form to be displayed in the iFrame is described in the answer.value.http object.
8. Return via the browser with an instruction result.
{ "eventName":"LYRA_AUTH_INSTRUCTION_RESULT", "value":{ "name":"CHALLENGE", "value":"eyJjZXJ0aWZpY2F0Z...", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true } } }
9. New call to the PCI/Charge/Authenticate service with this result.
{ "amount":"9990", "currency":"XPF", "transactionCategory":"PAYMENT", "productType":"GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid":"9876357" }, "paymentForm": { "expiryMonth":"09", "expiryYear":"22", "networkPreference":"VISA", "pan":"4970110000001003" }, "device": { "acceptHeader":"text/html", "colorDepth":"32", "deviceType":"BROWSER", "ip":"69.89.31.226", "javaEnabled": true, "language":"FR", "screenHeight":"768", "screenWidth":"1258", "timeZoneOffset":"-120", "userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101" }, "protocolRequest": { "name":"THREEDS", "version":"2", "challengePreference":"NO_PREFERENCE" }, "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "instructionResult": { "name" : "CHALLENGE", "protocol" : { "name" : "THREEDS", "network":"VISA", "version" : "2.1.0", "challengePreference":"NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0Z..." } }
10. Return from the payment platform server with the final authentication result.
Successful authentication.
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-04T13:16:21+00:00", "ticket":"bbea766294a84618a2a4b0d167cff9b3", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"CHALLENGE", "authenticationId":{ "authenticationIdType":"dsTransId", "value":"18e46ff7-b882-4102-9af4-aef9f40ee6a6", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "authenticationValue":{ "authenticationValueType":"CAVV", "value":"PdY1V9f/aHxC2wbZt4/7Z6Q9f44=", "_type":"V4/Charge/Authenticate/AuthenticationValue" }, "status":"SUCCESS", "commerceIndicator":"05", "extension":{ "authenticationType":"THREEDS_V2", "threeDSServerTransID":"3b25e3ed-5d48-4f99-af61-0d5db9e3b18e", "dsTransID":"18e46ff7-b882-4102-9af4-aef9f40ee6a6", "acsTransID":"410d9fb4-8db1-483e-9a80-f94c3a79017e", "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV2" }, "reason":{ "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }
Failed authentication
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-04T13:16:21+00:00", "ticket":"bbea766294a84618a2a4b0d167cff9b3", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"4ceb0194-8900-41c6-8ef4-debdbe7421b1", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"CHALLENGE", "authenticationId":{ "authenticationIdType":"dsTransId", "value":"e8286d62-006e-413e-ad3b-328503b14e71", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "status":"FAILED", "extension":{ "authenticationType":"THREEDS_V2", "threeDSServerTransID":"fdce5a18-2f2f-46c7-bdd4-3bd40b7e816d", "dsTransID":"e8286d62-006e-413e-ad3b-328503b14e71", "acsTransID":"54feb2ac-9666-4ce3-86e5-d8f947cebd87", "transStatusReason":"01", "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV2" }, "reason":{ "code":"CARD_AUTHENTICATION_FAILED", "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }