3DS1 - Authentication completed (SUCCESS or FAILED)
To test this scenario, use one of the card numbers below:
CARD | Expiry date | Label |
---|---|---|
4970100000000022 | To be chosen | Visa |
5970100300000026 | To be chosen | mastercard |
378283000000002 | To be chosen | Amex |
When entering the authentication code, type:
- The expected code, to obtain a successful authentication.
- A wrong code, to obtain a failed authentication.
Exchange flow
1. Initial call to the PCI/Charge/Authenticate service with a card enrolled for 3DS1.
{ "amount": "9990", "currency": "EUR", "transactionCategory": "PAYMENT", "productType": "GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid": "9876357" }, "paymentForm": { "expiryMonth": "09", "expiryYear": "22", "networkPreference": "VISA", "pan": "4970100000000022" }, "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": "1", "challengePreference": "NO_PREFERENCE" } }
2. A return with a CHALLENGE instruction of redirection to the ACS with a paReq (visible iFrame).
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-05T06:44:46+00:00", "ticket":"a983c631193f4777b342772777085c6f", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"", "_type":"V4/WebService/Response", "answer":{ "id":"a30802af-24e3-4071-8e07-331bfbc40cfa", "protocol":{ "name":"THREEDS", "version":"1.0.2", "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":390, "height":467, "_type":"V4/Charge/Authenticate/InstructionTarget" }, "http":{ "method":"POST", "url":"https://acs.sg.com/1.0.2/acs/v1/interactive_authenticate", "body":{ "MD":"H4sIAAAAAAAAAEVRyb...", "PaReq":"eJxVUtty2jAQ/RW...", "TermUrl":"https://pass.sample-acs.net/public/v1/3dsv1/notify/.../VISA" }, "_type":"V4/Charge/Authenticate/HttpRequest" }, "_type":"V4/Charge/Authenticate/AuthenticationInstruction" },"_type":"V4/AuthenticationResponseData" } }
3. Redirection to the ACS in the iFrame, cardholder authentication.
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":"CHALLENGE", "value":"eyJjZXJ0aWZpY2F0ZSI...", "protocol":{ "name":"THREEDS", "version":"1.0.2", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true } } }
5. A new call to the PCI/Charge/Authenticate service transmitting this result.
{ "amount": "9990", "currency": "EUR", "transactionCategory": "PAYMENT", "productType": "GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid": "9876357" }, "paymentForm": { "expiryMonth": "09", "expiryYear": "22", "networkPreference": "VISA", "pan": "4970100000000022" }, "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": "1", "challengePreference": "NO_PREFERENCE" }, "id":"a30802af-24e3-4071-8e07-331bfbc40cfa", "instructionResult": { "name" : "CHALLENGE", "protocol" : { "name" : "THREEDS", "network": "VISA", "version" : "1.0.2", "challengePreference": "NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0ZSI..." } }
6. Answer of the payment gateway server with the final authentication result.
Successful authentication.
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-05T06:45:49+00:00", "ticket":"a983c631193f4777b342772777085c6f", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"", "_type":"V4/WebService/Response", "answer":{ "id":"a30802af-24e3-4071-8e07-331bfbc40cfa", "protocol":{ "name":"THREEDS", "version":"1.0.2", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"CHALLENGE", "authenticationId":{ "authenticationIdType":"xid", "value":"SGJSVVNmRmljVVRGU0RnRTRDQ2g=", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "authenticationValue":{ "authenticationValueType":"CAVV", "value":"Q2F2dkNhdnZDYXZ2Q2F2dkNhdnY=", "_type":"V4/Charge/Authenticate/AuthenticationValue" }, "status":"SUCCESS", "commerceIndicator":"05", "extension":{ "authenticationType":"THREEDS_V1", "enrolled":"Y", "algorithmName":"CVV_ATN", "algorithm":"2", "signatureValid":true, "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV1" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }
Failed authentication
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.23.0", "serverDate":"2021-05-05T06:45:49+00:00", "ticket":"a983c631193f4777b342772777085c6f", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"", "_type":"V4/WebService/Response", "answer":{ "id":"a30802af-24e3-4071-8e07-331bfbc40cfa", "protocol":{ "name":"THREEDS", "version":"1.0.2", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"CHALLENGE", "authenticationId":{ "authenticationIdType":"xid", "value":"WkJld1pYd25lRUxwY2R1U0Jtd2c=", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "status":"FAILED", "commerceIndicator":"06", "extension":{ "authenticationType":"THREEDS_V1", "enrolled":"Y", "signatureValid":true, "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV1" }, "reason":{ "code":"REJECTED", "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }