3DS2 - Frictionless authentication, with 3DS Method (deprecated)
To test this scenario, use one of the card numbers below:
CARD | Expiry date | Label |
---|---|---|
4970110000001029 | To be chosen | VISA |
5100010000000114 | To be chosen | MASTERCARD |
375900000010007 | 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":"4970110000001029" }, "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.22.0", "serverDate":"2021-05-03T15:02:56+00:00", "ticket":"c295ad67f65341529c1db6760df400fd", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"b5bdf588-df35-4d56-8852-a68bd9c20147", "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":"4970110000001029" }, "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":"b5bdf588-df35-4d56-8852-a68bd9c20147", "instructionResult": { "name":"FINGERPRINT", "protocol": { "name":"THREEDS", "network":"VISA", "version":"2.1.0", "challengePreference":"NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0Z..." } }
6. Answer of the payment gateway server with the final authentication result.
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.22.0", "serverDate":"2021-05-03T15:02:58+00:00", "ticket":"c295ad67f65341529c1db6760df400fd", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.secure.osb.pf", "_type":"V4/WebService/Response", "answer":{ "id":"b5bdf588-df35-4d56-8852-a68bd9c20147", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true,"_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"FRICTIONLESS", "authenticationId":{ "authenticationIdType":"dsTransId", "value":"ff405f73-9b56-4cfc-b394-31a49beb4cac", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "authenticationValue":{ "authenticationValueType":"CAVV", "value":"+kAr/o8S0DxgGYkz7QQHZCw8V5k=", "_type":"V4/Charge/Authenticate/AuthenticationValue" }, "status":"SUCCESS", "commerceIndicator":"05", "extension":{ "authenticationType":"THREEDS_V2", "threeDSServerTransID":"b5bdf588-df35-4d56-8852-a68bd9c20147", "dsTransID":"ff405f73-9b56-4cfc-b394-31a49beb4cac", "acsTransID":"1f1202cc-c578-4b3c-84ca-cd9fd79d09d0", "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV2" },"reason":{ "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }