3DSecure2

You can integrate your e-commerce application directly to our platform-agnostic 3D2 Secure API so your merchants can mitigate fraud while at the same time allowing the cardholders to enjoy additional security when using their cards online. Paysafe is compliant to 3D Secure version 1.0.2.

Click the links below to view our code samples.

Authentication

Process an authentication
Authentications auth = Authentications.Builder()
                .merchantRefNum(System.Guid.NewGuid().ToString())
                .amount(99999999999)
                .currency("USD")
                .deviceFingerprintingId("3bf74a2a-8668-4f14-b2bf-fd8e07ae2100")
                .card()
                    .holderName("john")
                    .cardNum("4111111111111111")
                    .cardExpiry()
                        .month(System.DateTime.Now.Month)
                        .year(System.DateTime.Now.Year)
                        .Done()
                    .Done()
                .merchantUrl(@"https://mysite.com")
                .authenticationPurpose("PAYMENT_TRANSACTION")
                .deviceChannel("BROWSER")
                .messageCategory("PAYMENT")
                .Build();

Authentications response = client.threeDSecureV2Service().authentications(auth);
Look up an authentication using an authentication ID
EnrollmentChecks enrollmentChecks = client.threeDSecureService().submit(EnrollmentChecks.Builder()
                .merchantRefNum(System.Guid.NewGuid().ToString())
                .amount(100)
                .currency("CAD")
                .customerIp("204.91.0.12")
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36")
                .card()
                    .cardNum("4107857757053670")
                    .cardExpiry()
                        .month(10)
                        .year(2018)
                        .Done()
                    .Done()
                .acceptHeader("text/html,application/xhtml+xml,application/xml;q\u003d0.9,image/webp,*/*;q\u003d0.8")
                .merchantUrl("https://www.google.com")
                .Build());
Authentications response = client.threeDSecureService().submit(Authentications.Builder()
                .merchantRefNum(enrollmentChecks.merchantRefNum())
                .paResp(enrollmentChecks.paReq())
                .enrollmentId(enrollmentChecks.id())
                .Build());
Authentications auth_response = client.threeDSecureService().get(response);
Process a complex authentication
Authentications auth = Authentications.Builder()
              .merchantRefNum(System.Guid.NewGuid().ToString())
              .amount(99999999999)
              .currency("USD")
              .mcc("0742")
              .merchantName("Merchant Name Inc")
              .merchantUrl("https://mysite.com")
              .deviceFingerprintingId("3bf74a2a-8668-4f14-b2bf-fd8e07ae2100")
   	       .card()
                  .holderName("john")
                  .cardNum("4111111111111111")
                  .cardExpiry()
                      .month(System.DateTime.Now.Month)
                      .year(System.DateTime.Now.Year)
                      .Done()
                  .Done()
           	.billingDetails()
                  .city("New York")
                  .country("US")
                  .state("AL")
                  .street("My street 1")
                  .street2("My street 2")
                  .zip("M5H 2N2")
                  .useAsShippingAddress(false)
                  .Done()
              .shippingDetails()
                  .city("New York")
                  .country("US")
                  .state("AL")
                  .street("My street 1")
                  .street2("My street 2")
                  .zip("CHY987")
                  .shipMethod("S")
                  .Done()
              .profile()
                  .cellPhone("+154657854697")
                  .email("example@example.com")
                  .phone("+154657854697")
                  .Done()
              .deviceFingerprintingId("dd45e08a-8eab-443a-a6f3-4361f92bc7d9")
              .deviceChannel("BROWSER")
              .requestorChallengePreference("NO_PREFERENCE")
              .messageCategory("PAYMENT")
              .transactionIntent("GOODS_OR_SERVICE_PURCHASE")
              .authenticationPurpose("PAYMENT_TRANSACTION")
              .maxAuthorizationsForInstalmentPayment(2)
              .initialPurchaseTime("2019-01-21T14:47:31.540Z")
              .billingCycle()
                  .endDate("2014-01-26")
                  .frequency(1)
                  .Done()
              .orderItemDetails()
                  .preOrderItemAvailabilityDate("2014-01-26")
                  .preOrderPurchaseIndicator("MERCHANDISE_AVAILABLE")
                  .reorderItemsIndicator("FIRST_TIME_ORDER")
                  .shippingIndicator("SHIP_TO_BILLING_ADDRESS")
                  .Done()
              .purchasedGiftCardDetails()
                  .amount(1234)
                  .count(2)
                  .currency("USD")
                  .Done()
              .userAccountDetails()
                  .addCardAttemptsForLastDay(1)
                  .changedDate("2010-01-26")
                  .changedRange("DURING_TRANSACTION")
                  .createdDate("2010-01-26")
                  .createdRange("NO_ACCOUNT")
                  .passwordChangedDate("2012-01-26")
                  .passwordChangedRange("NO_CHANGE")
                  .paymentAccountDetails()
                        .createdRange("NO_ACCOUNT")
                        .createdDate("2010-01-26")
                        .Done()
                  .priorThreeDSAuthentication()
                        .data("Some up to 2048 bytes undefined data")
                        .method("FRICTIONLESS_AUTHENTICATION")
                        .id("123e4567-e89b-12d3-a456-426655440000")
                        .time("2014-01-26T10:32:28Z")
                        .Done()
                  .shippingDetailsUsage()
                        .cardHolderNameMatch(true)
                        .initialUsageDate("2014-01-26")
                        .initialUsageRange("CURRENT_TRANSACTION")
                        .Done()
                  .suspiciousAccountActivity(true)
                  .totalPurchasesSixMonthCount(1)
                  .transactionCountForPreviousDay(1)
                  .transactionCountForPreviousYear(3)
                  .travelDetails()
                         .isAirTravel(true)
                         .airlineCarrier("Wizz air")
                         .departureDate("2014-01-26")
                         .destination("SOF")
                         .origin("BCN")
                         .passengerFirstName("John")
                         .passengerLastName("Smith")
                         .Done()
                  .userLogin()
                         .authenticationMethod("NO_LOGIN")
                         .data("Some up to 2048 bytes undefined data")
                         .time("2014-01-26T10:32:28Z")
                         .Done()
               .Done()
               .browserDetails()
                  .acceptHeader("*/*")
                  .colorDepthBits("24")
                  .customerIp("207.48.141.20")
                  .javascriptEnabled(true)
                  .javaEnabled(true)
                  .language("en-US")
                  .screenHeight(768)
                  .screenWidth(1024)
                  .timezoneOffset(240)
                  .userAgent("Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)")
                  .Done()
               .Build();
Authentications response = client.threeDSecureV2Service().authentications(auth);
Process an authentication with payment token
Authentications auth = Authentications.Builder()
              .merchantRefNum(System.Guid.NewGuid().ToString())
              .amount(99999999999)
              .currency("USD")
              .mcc("0742")
              .merchantName("Merchant Name Inc")
              .merchantUrl("https://mysite.com")
              .deviceFingerprintingId("3bf74a2a-8668-4f14-b2bf-fd8e07ae2100")
              .card()
                 .paymentToken("SCba8jzccp9Ou72w")
                  .Done()
              .billingDetails()
                  .city("New York")
                  .country("US")
                  .state("AL")
                  .street("My street 1")
                  .street2("My street 2")
                  .zip("M5H 2N2")
                  .useAsShippingAddress(false)
                  .Done()
              .shippingDetails()
                  .city("New York")
                  .country("US")
                  .state("AL")
                  .street("My street 1")
                  .street2("My street 2")
                  .zip("CHY987")
                  .shipMethod("S")
                  .Done()
              .profile()
                  .cellPhone("+154657854697")
                  .email("example@example.com")
                  .phone("+154657854697")
                  .Done()
              .deviceFingerprintingId("dd45e08a-8eab-443a-a6f3-4361f92bc7d9")
              .deviceChannel("BROWSER")
              .requestorChallengePreference("NO_PREFERENCE")
              .messageCategory("PAYMENT")
              .transactionIntent("GOODS_OR_SERVICE_PURCHASE")
              .authenticationPurpose("PAYMENT_TRANSACTION")
              .maxAuthorizationsForInstalmentPayment(2)
              .initialPurchaseTime("2019-01-21T14:47:31.540Z")
              .billingCycle()
                  .endDate("2014-01-26")
                  .frequency(1)
                  .Done()
              .orderItemDetails()
                  .preOrderItemAvailabilityDate("2014-01-26")
                  .preOrderPurchaseIndicator("MERCHANDISE_AVAILABLE")
                  .reorderItemsIndicator("FIRST_TIME_ORDER")
                  .shippingIndicator("SHIP_TO_BILLING_ADDRESS")
                  .Done()
              .purchasedGiftCardDetails()
                  .amount(1234)
                  .count(2)
                  .currency("USD")
                  .Done()
              .userAccountDetails()
                  .addCardAttemptsForLastDay(1)
                  .changedDate("2010-01-26")
                  .changedRange("DURING_TRANSACTION")
                  .createdDate("2010-01-26")
                  .createdRange("NO_ACCOUNT")
                  .passwordChangedDate("2012-01-26")
                  .passwordChangedRange("NO_CHANGE")
                  .paymentAccountDetails()
                        .createdRange("NO_ACCOUNT")
                        .createdDate("2010-01-26")
                        .Done()
                  .priorThreeDSAuthentication()
                        .data("Some up to 2048 bytes undefined data")
                        .method("FRICTIONLESS_AUTHENTICATION")
                        .id("123e4567-e89b-12d3-a456-426655440000")
                        .time("2014-01-26T10:32:28Z")
                        .Done()
                  .shippingDetailsUsage()
                        .cardHolderNameMatch(true)
                        .initialUsageDate("2014-01-26")
                        .initialUsageRange("CURRENT_TRANSACTION")
                        .Done()
                  .suspiciousAccountActivity(true)
                  .totalPurchasesSixMonthCount(1)
                  .transactionCountForPreviousDay(1)
                  .transactionCountForPreviousYear(3)
                  .travelDetails()
                         .isAirTravel(true)
                         .airlineCarrier("Wizz air")
                         .departureDate("2014-01-26")
                         .destination("SOF")
                         .origin("BCN")
                         .passengerFirstName("John")
                         .passengerLastName("Smith")
                         .Done()
                  .userLogin()
                         .authenticationMethod("NO_LOGIN")
                         .data("Some up to 2048 bytes undefined data")
                         .time("2014-01-26T10:32:28Z")
                         .Done()
               .Done()
               .browserDetails()
                  .acceptHeader("*/*")
                  .colorDepthBits("24")
                  .customerIp("207.48.141.20")
                  .javascriptEnabled(true)
                  .javaEnabled(true)
                  .language("en-US")
                  .screenHeight(768)
                  .screenWidth(1024)
                  .timezoneOffset(240)
                  .userAgent("Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)")
                  .Done()
               .Build();
Authentications response = client.threeDSecureV2Service().authentications(auth);

To obtain a deviceFingerprintingId, please check the Javascript SDK documentation.

Did you find this page useful?