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
Authentications request = new Authentications ();
request.setId(Id.create("5d4db3bc-34c9-417f-a051-0d992ad9284e", Authentications.class));
Authentications response = Apiclient.ThreeDSecureService().get(Authentications.builder().id(request.getId()).build();
Process a complex authentication
Authentications authresponse=client.threeDSecureV2Service()
.submit(Authentications.builder()
.amount(99999999999L)
.currency("EUR")
.mcc("0742")
.merchantName("Merchant Name Inc")
.merchantRefNum(java.util.UUID.randomUUID().toString())
.merchantUrl("https://mysite.com")
.card()
.holderName("John Smith")
.cardNum("4111111111111111")
.cardExpiry()
.month(12)
.year(2019)
.done()
.done()
.billingDetails()
.city("New York")
.country(Country.US)
.state("AL")
.street("My street 1")
.street2("My street 2")
.zip("CHY987")
.done()
.shippingDetails()
.city("New York")
.country(Country.US)
.state("AL")
.street("My street 1")
.street2("My street 2")
.zip("CHY987")
.shipMethod(ShipMethod.Same_Day)
.done()
.profile()
.cellphone("+154657854697")
.email("example@example.com")
.phone("+154657854697")
.done()
.deviceFingerprintingId ("d47ec5bc-b5b2-
47fd-98e2-c6f099609e14")
.deviceChannel (DeviceChannel.BROWSER)
.requestorChallengePreference (
RequestorChallengePreference.NO_PREFERENCE)
.messageCategory(MessageCategory.PAYMENT)
.transactionIntent(
TransactionIntent.GOODS_OR_SERVICE_PURCHASE)
.authenticationPurpose(
AuthenticationPurpose.PAYMENT_TRANSACTION)
.maxAuthorizationsForInstalmentPayment(2)
.initialPurchaseTime("2019-0121T14:47:31.540Z")
.billingCycle()
.endDate("2014-01-26")
.frequency(1)
.done()
.orderItemDetails()
.preOrderItemAvailabilityDate(
"2014-01-26")
.preOrderPurchaseIndicator(
PreOrderPurchaseIndicator
.MERCHANDISE_AVAILABLE)
.reorderItemsIndicator(
ReorderItemsIndicator.FIRST_TIME_ORDER)
.shippingIndicator(
ShippingIndicator.SHIP_TO_BILLING_ADDRESS)
.done()
.purchasedGiftCardDetails()
.amount(99999999999L)
.count(2)
.currency("USD")
.done()
.userAccountDetails()
.addCardAttemptsForLastDay(1)
.changedDate("2014-01-26")
.changedRange(ChangedRange
.DURING_TRANSACTION)
.createdDate("2014-01-26")
.createdRange(CreatedRange.NO_ACCOUNT)
.passwordChangedDate("2014-01-26")
.passwordChangedRange(PasswordChangedRange.NO_CHANGE)
.paymentAccountDetails()
.createdRange(CreatedRange.NO_ACCOUNT)
.createdDate("2014-01-26")
.done()
.priorThreeDSAuthentication()
.data("Some up to 2048 bytes undefined data")
.method(Method.FRICTIONLESS_AUTHENTICATION)
id("123e4567-e89b-12d3-a456-426655440000")
.time("2014-01-26T10:32:28Z")
.done()
.shippingDetailsUsage()
.cardHolderNameMatch(true)
.initialUsageDate("2014-01-26")
.initialUsageRange(
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(AuthenticationMethod.NO_LOGIN)
.data("Some up to 2048 bytes undefined data")
.time("2014-01-26T10:32:28Z")
.done()
.done()
.browserDetails()
.acceptHeader("*/*")
.colorDepthBits(ColorDepthBits.TWENTY_FOUR)
.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());
Process an authentication with payment token
Authentications authresponse=client.threeDSecureV2Service()
.submit(Authentications.builder()
.amount(99999999999L)
.currency("EUR")
.merchantRefNum(java.util.UUID.randomUUID().toString())
.merchantUrl("https://mysite.com")
.card()
.paymentToken("SCjGS1IOXkCCczcK")
.done()
.billingDetails()
.city("New York")
.country(Country.US)
.state("AL")
.street("My street 1")
.street2("My street 2")
.zip("CHY987")
.done()
.shippingDetails()
.city("New York")
.country(Country.US)
.state("AL")
.street("My street 1")
.street2("My street 2")
.zip("CHY987")
.shipMethod(ShipMethod.Same_Day)
.done()
.profile()
.cellphone("+154657854697")
.email("example@example.com")
.phone("+154657854697")
.done()
.deviceFingerprintingId("208bdbea-2404-
418d-8b50-bf8e7806afcd")
.deviceChannel(DeviceChannel.BROWSER)
.requestorChallengePreference(
RequestorChallengePreference
.NO_PREFERENCE)
.messageCategory(MessageCategory.PAYMENT)
.transactionIntent(TransactionIntent
.GOODS_OR_SERVICE_PURCHASE)
.authenticationPurpose(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(
PreOrderPurchaseIndicator
.MERCHANDISE_AVAILABLE)
.reorderItemsIndicator(
ReorderItemsIndicator
.FIRST_TIME_ORDER)
.shippingIndicator(ShippingIndicator
.SHIP_TO_BILLING_ADDRESS)
.done()
.purchasedGiftCardDetails()
.amount(99999999999L)
.count(2)
.currency("USD")
.done()
.userAccountDetails()
.addCardAttemptsForLastDay(1)
.changedDate("2014-01-26")
.changedRange(ChangedRange
.DURING_TRANSACTION)
.createdDate("2014-01-26")
.createdRange(CreatedRange.NO_ACCOUNT)
.passwordChangedDate("2014-01-26")
.passwordChangedRange
(PasswordChangedRange.NO_CHANGE)
.paymentAccountDetails()
.createdRange(CreatedRange.NO_ACCOUNT)
.createdDate("2014-01-26")
.done()
.priorThreeDSAuthentication()
.data("Some up to 2048 bytes undefined data")
.method(Method
.FRICTIONLESS_AUTHENTICATION)
.id("123e4567-e89b-12d3-a456-426655440000")
.time("2014-01-26T10:32:28Z")
.done()
.shippingDetailsUsage()
.cardHolderNameMatch(true)
.initialUsageDate("2014-01-26")
.initialUsageRange(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(AuthenticationMethod
.NO_LOGIN)
.data("Some up to 2048 bytes undefined data")
.time("2014-01-26T10:32:28Z")
.done()
.done()
.browserDetails()
.acceptHeader("*/*")
.colorDepthBits(ColorDepthBits.TWENTY_FOUR)
.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());

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

Did you find this page useful?