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/CreatePayment service with a card enrolled in 3DS2.
{ "amount": "9990", "currency": "EUR", "paymentForms": [ { "paymentMethodType": "CARD", "pan": "4970110000001029", "expiryMonth": "11", "expiryYear": "27", "securityCode": "123" } ], "device": { "acceptHeader":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "colorDepth":"24", "deviceType":"BROWSER", "ip":"69.89.31.226", "javaEnabled":false, "language":"fr-FR", "screenHeight":"720", "screenWidth":"1280", "timeZoneOffset":"-60", "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36" }, "customer": { "email": "sample@example.com" } }
2. Return with a FINGERPRINT instruction (3DS Method) and the session ID (operationSessionId)
{ "webService":"PCI/Charge/CreatePayment", "version":"V4", "applicationVersion":"5.29.0", "serverDate":"2021-12-01T09:03:23+00:00", "ticket":"089f3efd0c0c44bfa99bf87771324946", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://api.systempay.fr", "_type":"V4/WebService/Response", "answer":{ "id":"335b8fe2-249b-44aa-b055-65767b3b3679", "operationSessionId":"9400b1414bb147899ec5bb1281e32141", "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", "showUrl":true, "fullscreen":false }, "http":{ "method":"POST", "url":"https://acs-test.com/acs/v2/3dsMethod", "body":{ "threeDSMethodData":"eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90bHMtcGFzcy5wYXl6ZW4uZXUvcHVibGljL3YxLzNkc3YyL25vdGlmeS8zZHNtZXRob2Q_and0PUg0c0lBQUFBQUFBQUFEVlEyWEtqTUJEOG9xU0VPV0lfTG1Dd1pDVENMZkhpd29DTklPQWpYZ3ZwNnhkWHNnOVRYZE05VXowOXJVUjlTUkdvaXZMS1ZoNG9FMmpCTDl2T05ITENpYUdJTkFRRlY1bzc4QnRPc1ZrN2l6Nzg5cVAzWGNyWFBFcHhuNjNnQk41YmlRU2pSRVdydWFzS3dFT09QcWlEN25UWlcwckZIcFlMZmktY2VuSE5EbWxsTXRkd3NtdllYMnM0bUo5VXM1TTRLNzFzeU1NSTVEWGtMejMtMFh1c1NBR05jc3hra0VJUUZ2QkIzTGhqaWNheG0ybEJ5alNpbU01Nnd2R0NZUzU0NEFsLV9CSThYQ29mdnRMb2wydC1PY3lOT2VqdEg1X3h2OC1mNVU2MGdWendhc2tELXd2UHRsNmF5VmZ1M0hqOUFhZE1oUzdXc0lzRjFzRzcxenhPcV8xSkgyVlJWTnNxczdCV0FuTTg1b2FwTUdGT2dkMFBmWnQzbDloTW1RVGExUzR5cnpySE5nMmJXM3ZxNXQzZTY0M2tUQ1NLR1hYLU92dktjYy10RjEzR01CWUhDaHNMZERZZHctUFJ2WnRvcGtNdXAtbXdrU0o2UGwwU2JPRC1ZZEZ6TDN4X3RqNHZGazNzcnZiQ2JUd3o4MDFxbFktbnFTSHI0RGtkdHRlVTVfNjZSWDEzQjNkZHlJdktrelBmc08wbTRpbU5HMmRvX1Z4UVA5ZTdUNENEaEx2akp0cjluWTdkS1h6akdYX3NHaVZSUlFzWnNrYlRUX2YxS3R1ZGZhdGF2LW5za1l4cHhGRlRUWk9KRHNRc0NqR0FxNnJKRGNCVnFwUjE2MW85eHVIZ2RNeVFUQV9NRDVOZDFqZnlQTUpUSjYyaHRBdmxQbWVkLUs3NEI3QUVzZldpQWdBQSIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMzM1YjhmZTItMjQ5Yi00NGFhLWIwNTUtNjU3NjdiM2IzNjc5In0" }, "_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 iFrame characteristics are provided 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":"eyJjZXJ0aWZpY2F0ZSI6IlBBU1NfMS4zNy4wX0pXVCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJwYXNzQ2xhaW0iOiJ7XCJwcm90b2NvbFwiOntcIm5hbWVcIjpcIlRIUkVFRFNcIixcInZlcnNpb25cIjpcIjIuMS4wXCIsXCJuZXR3b3JrXCI6XCJWSVNBXCIsXCJjaGFsbGVuZ2VQcmVmZXJlbmNlXCI6XCJOT19QUkVGRVJFTkNFXCIsXCJzaW11bGF0aW9uXCI6dHJ1ZX0sXCJmaW5nZXJwcmludENvbXBsZXRpb25cIjpcIlNVQ0NFU1NGVUxcIixcImV2ZW50c1wiOlt7XCJjb2RlXCI6XCIzZHNfbWV0aG9kX2RvbmVcIixcImRhdGVcIjpcIjIwMjEtMTItMDFUMDk6MDM6MjUuMDc5MDM3WlwiLFwibGV2ZWxcIjpcIklORk9cIixcIm5ldHdvcmtcIjpcIlZJU0FcIn1dLFwiaWRcIjpcIjMzNWI4ZmUyLTI0OWItNDRhYS1iMDU1LTY1NzY3YjNiMzY3OVwifSIsImlzcyI6IlBBU1MiLCJleHAiOjE2MzgzNTAzMDV9.ONUBqTVQz-mU4nfiscwk1r9uLf791X-XneK1zdgNvUgNJKzqq70tm4GraH6FkxXbk2aBYKAqAWcpJ7m42U5vyS1gzE8W-n7WjEs9Dmr0bezD8sT7Ptu-CFfWVVE-Lp9Op8Z8OFZhsg8XM9TkJQk8AZ5qAtvD2YjqBMkTlVUDppYV67TV4W2pw7imHPuP1KcGNF-U5gRuHuKI6JTpZLcjfr2fKZ8nsf2roUZqXQg7EUP1Upsw22Wirpn4s_-1FUkhJwOylB64oZHpal82F61I2srnaPpvrsY7LOjju9B_mZbzA2Li7wNN55PSeSxBmpw4KZRVdeEO6YLucPZltXyJFQ", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true } } }
5. A new call to the PCI/Charge/CreatePayment service transmitting this result.
{ "operationSessionId": "9400b1414bb147899ec5bb1281e32141", "instructionResult": { "name" : "FINGERPRINT", "protocol" : { "name" : "THREEDS", "network": "VISA", "version" : "2.1.0", "challengePreference": "NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0ZSI6IlBBU1NfMS4zNy4wX0pXVCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJwYXNzQ2xhaW0iOiJ7XCJwcm90b2NvbFwiOntcIm5hbWVcIjpcIlRIUkVFRFNcIixcInZlcnNpb25cIjpcIjIuMS4wXCIsXCJuZXR3b3JrXCI6XCJWSVNBXCIsXCJjaGFsbGVuZ2VQcmVmZXJlbmNlXCI6XCJOT19QUkVGRVJFTkNFXCIsXCJzaW11bGF0aW9uXCI6dHJ1ZX0sXCJmaW5nZXJwcmludENvbXBsZXRpb25cIjpcIlNVQ0NFU1NGVUxcIixcImV2ZW50c1wiOlt7XCJjb2RlXCI6XCIzZHNfbWV0aG9kX2RvbmVcIixcImRhdGVcIjpcIjIwMjEtMTItMDFUMDk6MDM6MjUuMDc5MDM3WlwiLFwibGV2ZWxcIjpcIklORk9cIixcIm5ldHdvcmtcIjpcIlZJU0FcIn1dLFwiaWRcIjpcIjMzNWI4ZmUyLTI0OWItNDRhYS1iMDU1LTY1NzY3YjNiMzY3OVwifSIsImlzcyI6IlBBU1MiLCJleHAiOjE2MzgzNTAzMDV9.ONUBqTVQz-mU4nfiscwk1r9uLf791X-XneK1zdgNvUgNJKzqq70tm4GraH6FkxXbk2aBYKAqAWcpJ7m42U5vyS1gzE8W-n7WjEs9Dmr0bezD8sT7Ptu-CFfWVVE-Lp9Op8Z8OFZhsg8XM9TkJQk8AZ5qAtvD2YjqBMkTlVUDppYV67TV4W2pw7imHPuP1KcGNF-U5gRuHuKI6JTpZLcjfr2fKZ8nsf2roUZqXQg7EUP1Upsw22Wirpn4s_-1FUkhJwOylB64oZHpal82F61I2srnaPpvrsY7LOjju9B_mZbzA2Li7wNN55PSeSxBmpw4KZRVdeEO6YLucPZltXyJFQ" } }
6. Return from the payment gateway server with the payment result.
{ "webService":"PCI/Charge/CreatePayment", "version":"V4", "applicationVersion":"5.29.0", "status":"SUCCESS", "answer":{ "shopId":"12345678", "orderCycle":"CLOSED", "orderStatus":"PAID", "serverDate":"2021-12-01T09:03:27+00:00", "orderDetails":{ "orderTotalAmount":9990, "orderEffectiveAmount":9990, "orderCurrency":"EUR", "mode":"TEST", "orderId":null, "_type":"V4/OrderDetails" }, "customer":{ "billingDetails":{ "address":null, "category":null, "cellPhoneNumber":null, "city":null, "country":null, "district":null, "firstName":null, "identityCode":null, "language":"FR", "lastName":null, "phoneNumber":null, "state":null, "streetNumber":null, "title":null, "zipCode":null, "legalName":null, "_type":"V4/Customer/BillingDetails" }, "email":"sample@example.com", "reference":null, "shippingDetails":{ "address":null, "address2":null, "category":null, "city":null, "country":null, "deliveryCompanyName":null, "district":null, "firstName":null, "identityCode":null, "lastName":null, "legalName":null, "phoneNumber":null, "shippingMethod":null, "shippingSpeed":null, "state":null, "streetNumber":null, "zipCode":null, "_type":"V4/Customer/ShippingDetails" }, "extraDetails":{ "browserAccept":null, "fingerPrintId":null, "ipAddress":"185.244.73.2", "browserUserAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36", "_type":"V4/Customer/ExtraDetails" }, "shoppingCart":{ "insuranceAmount":null, "shippingAmount":null, "taxAmount":null, "cartItemInfo":null, "_type":"V4/Customer/ShoppingCart" }, "_type":"V4/Customer/Customer" }, "transactions":[ { "shopId":"12345678", "uuid":"a401f2dcd9a44279a17d029b5b02acff", "amount":9990, "currency":"EUR", "paymentMethodType":"CARD", "paymentMethodToken":null, "status":"PAID", "detailedStatus":"AUTHORISED", "operationType":"DEBIT", "effectiveStrongAuthentication":"DISABLED", "creationDate":"2021-12-01T09:03:25+00:00", "errorCode":null, "errorMessage":null, "detailedErrorCode":null, "detailedErrorMessage":null, "metadata":null, "transactionDetails":{ "liabilityShift":"YES", "effectiveAmount":9990, "effectiveCurrency":"EUR", "creationContext":"CHARGE", "cardDetails":{ "paymentSource":"EC", "manualValidation":"NO", "expectedCaptureDate":"2021-12-01T09:41:34+00:00", "effectiveBrand":"VISA", "pan":"497011XXXXXX1029", "expiryMonth":11, "expiryYear":2027, "country":"GL", "issuerCode":17807, "issuerName":"Banque Populaire Occitane", "effectiveProductCode":null, "legacyTransId":"921257", "legacyTransDate":"2021-12-01T09:03:25+00:00", "paymentMethodSource":"NEW", "authorizationResponse":{ "amount":9990, "currency":"EUR", "authorizationDate":"2021-12-01T09:03:25+00:00", "authorizationNumber":"3fd7e5", "authorizationResult":"0", "authorizationMode":"FULL", "_type":"V4/PaymentMethod/Details/Cards/CardAuthorizationResponse" }, "captureResponse":{ "refundAmount":null, "refundCurrency":null, "captureDate":null, "captureFileNumber":null, "effectiveRefundAmount":null, "effectiveRefundCurrency":null, "_type":"V4/PaymentMethod/Details/Cards/CardCaptureResponse" }, "threeDSResponse":{ "authenticationResultData":{ "transactionCondition":null, "enrolled":null, "status":null, "eci":null, "xid":null, "cavvAlgorithm":null, "cavv":null, "signValid":null, "brand":null, "_type":"V4/PaymentMethod/Details/Cards/CardAuthenticationResponse" }, "_type":"V4/PaymentMethod/Details/Cards/ThreeDSResponse" }, "authenticationResponse":{ "id":"335b8fe2-249b-44aa-b055-65767b3b3679", "operationSessionId":"9400b1414bb147899ec5bb1281e32141", "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":"6a2e4809-4bdb-4ba6-b511-20601c6bfcc1", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "authenticationValue":{ "authenticationValueType":"CAVV", "value":"LyUFeU5XRQ0vZ82COOICYlRl+lY=", "_type":"V4/Charge/Authenticate/AuthenticationValue" }, "status":"SUCCESS", "commerceIndicator":"05", "extension":{ "authenticationType":"THREEDS_V2", "threeDSServerTransID":"335b8fe2-249b-44aa-b055-65767b3b3679", "dsTransID":"6a2e4809-4bdb-4ba6-b511-20601c6bfcc1", "acsTransID":"5355a0ea-d6b4-4751-92c8-5dcb94a53db2", "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV2" }, "reason":{ "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" }, "installmentNumber":null, "installmentCode":null, "markAuthorizationResponse":{ "amount":null, "currency":null, "authorizationDate":null, "authorizationNumber":null, "authorizationResult":null, "_type":"V4/PaymentMethod/Details/Cards/MarkAuthorizationResponse" }, "cardHolderName":null, "identityDocumentNumber":null, "identityDocumentType":null, "_type":"V4/PaymentMethod/Details/CardDetails" }, "fraudManagement":{ "riskControl":[], "riskAnalysis":[], "_type":"V4/PaymentMethod/Details/FraudManagement" }, "subscriptionDetails":{ "subscriptionId":null, "_type":"V4/PaymentMethod/Details/SubscriptionDetails" }, "parentTransactionUuid":null, "mid":"9999999", "sequenceNumber":1, "taxAmount":null, "preTaxAmount":null, "taxRate":null, "externalTransactionId":null, "nsu":null, "tid":"001", "acquirerNetwork":"CB", "taxRefundAmount":null, "userInfo":"API REST", "paymentMethodTokenPreviouslyRegistered":null, "occurrenceType":"UNITAIRE", "_type":"V4/TransactionDetails" }, "_type":"V4/PaymentTransaction" } ], "subMerchantDetails":null, "_type":"V4/Payment" }, "ticket":"4e182d2c766e43c287a0467cf3fa581f", "serverDate":"2021-12-01T09:03:27+00:00", "applicationProvider":"", "metadata":null, "mode":"TEST", "serverUrl":"https://api.systempay.fr", "_type":"V4/WebService/Response" }