3D Secure

3D Secure is an online payment security protocol designed to reduce fraud and provide an additional layer of authentication for online transactions. When a customer makes an online purchase, 3D Secure requires them to complete an additional verification step with the card issuer, typically through a password, biometric authentication, or a one-time passcode sent over SMS.

Payments Add-on

3D Secure is available as part of the Payments Add-on. You can use Sandbox apps to try it for free and test the full 3D-Secure Authentication process without using live data. Once you're ready to transition to processing real authentications, please contact our support team at support@evervault.com.

How 3D Secure works


3D Secure consists of several steps involving both merchants and card issuers to allow customers to be authenticated during online purchases:

  1. Payment Initiation

    When a customer initiates an online purchase and enters their card details on the merchant's website, the merchant recognizes that the card is enrolled in 3D Secure and triggers the authentication process.

  2. Issuer Challenge

    The customer is redirected to a web page hosted by their card issuer where the customer is asked to authenticate themselves. This can be done through various methods, such as entering a static password, a one-time password (OTP) sent over SMS, or using biometric authentication (e.g., fingerprint or facial recognition).

  3. Process Payment

    If the authentication is successful, the merchant processes the authenticated transaction and the customer is redirected back to the merchant’s website with a confirmation of their purchase. If the authentication fails or is not completed, the transaction is typically declined, and the customer is informed of the failure.

The Benefits of 3D Secure


Implementing 3D Secure for online payments provides several benefits for both merchants and customers, enhancing overall transaction security and achieving regulatory compliance:

  • Reduced Fraud

    By requiring an additional authentication step, 3D Secure significantly decreases the risk of unauthorized transactions. This added security measure helps to ensure that the person using the card online is the legitimate cardholder.

  • Liability Shift

    One of the key advantages for merchants using 3D Secure is the liability shift. If a transaction is authenticated using 3D Secure and later turns out to be fraudulent, the liability for the chargeback shifts from the merchant to the card issuer. This can result in substantial cost savings and reduced chargeback rates for merchants.

  • Regulatory Compliance

    With the increasing emphasis on online transaction security and regulations such as PSD2/SCA in Europe, implementing 3D Secure helps merchants comply with these regulations and avoid potential fines and penalties.

Getting started with 3D Secure


Evervault provides a set of easy-to-use APIs designed to let you perform 3D Secure Authentications in minutes without having to integrate directly with the card networks. Completing a 3D Secure authentication involves three steps:

  • Creating a 3DS Session
  • Authenticating the Session on the client
  • Forwarding the authentication credentials to your payment gateway

Before getting started, you will need to create Sandbox app. Sandbox apps allow you to test 3D Secure without affecting live data. Once you're ready to transition to Live Mode for processing real authentications, please contact our support team to enable 3D Secure on your production app.

Sandbox vs Production

Acquirer details are not required when testing in Sandbox mode. However, you must configure acquirer details before moving to production. See our guide on Configuring Acquirer Details to learn how to set up your acquirer configuration for live transactions.

Initiate a 3D Secure Session


The first step in the authentication process is to create a 3D Secure (3DS) session using the create session API endpoint by providing the card, merchant, and payment details. This should be done from your backend service and you should pass the session ID to your client code.

Frequently Asked Questions

Display the 3D Secure authentication challenge


Once you have a 3D Secure session, the next step is to present the 3D Secure challenge to the customer. This can be done either by using our client-side SDK or as a full page redirect. We highly recommend using our SDK where possible, to ensure compatibility with future changes.

Using the Client-Side SDK


Once you have created a 3DS session, you should use our client-side SDK to perform 3D Secure authentication for that session.

Install the SDK

Our JavaScript SDK is distributed from our CDN, and can be installed by placing this script tag in the head of your HTML file. The SDK must be loaded directly from our CDN and cannot be bundled with your application or self hosted.

Once the SDK is installed, initialize it using your Team ID and App ID. You can find these in the Evervault Dashboard.

You can also install Evervault via the @evervault/js package on npm. This package is a light wrapper which handles loading the SDK from our CDN and also provides TypeScript definitions.

Frequently Asked Questions

Render the 3D Secure challenge

The ThreeDSecure component can be initiated using the evervault.ui.threeDSecure method by passing the session ID obtained in the previous step. Once you have intialized the ThreeDSecure Component, you can call the .mount() method to open the 3DS modal in the customer's browser, allowing the 3D Secure authentication to occur. The success event will be fired once the 3D Secure authentication process has been completed successfully. The failure event will be fired if the authentication process fails (e.g. the customer failed to authenticate).

Learn more about the JavaScript SDK.

Frequently Asked Questions

Using a page redirect


The 3D Secure challenge can also be loaded directly—either through a full page redirect or served within an <iframe> or mobile web view. In this scenario, fingerprinting and challenge windows are presented directly in the user's browser. Once the 3D-Secure Authentication has been finalized (with either a success, a failure, or an error) the page is redirected back to a callback URL of your choice.

Once the 3D-Secure Session has been finalized, the page will redirect back to the URL provided in the redirect parameter with status and session appended to the URL parameters. More details about the 3D-Secure Session can be retrieved from our API.

URL Parameters
  • team

    The Team ID found in the Evervault Dashboard.

  • app

    The App ID found in the Evervault Dashboard.

  • session

    The 3D Secure session ID.

  • redirect

    The URL to redirect to once the 3D-Secure Session has been completed. Additional URL parameters will be appended to this URL. Deep links are also supported for mobile implementations.

    For example, if you provided 'https://3ds-redirect.testmerchant.com' as the redirect, the user's browser would redirect to 'https://3ds-redirect.testmerchant.com/?status=success&session=tds_abc123'. Status can be success, failure, or error

Retrieve the authentication credentials


After completing the 3D Secure session using the Client-Side SDK, you can retrieve the Electronic Commerce Indicator (ECI) and 3DS cryptogram from the Evervault API via the Retrieve 3DS Session endpoint.

Once obtained, these values (ECI and cryptogram) should be forwarded to your payment gateway to successfully process the charge.

Frictionless 3D Secure


3D Secure supports frictionless authentication which requires no interaction from the user. The frictionless flow automatically occurs when the issuer determines that a transaction is low-risk, eliminating the need for additional verification steps.

In some cases, you may want to avoid adding additional friction into your payment process by only using the frictionless flow. You can do this by setting the failOnChallenge option to true. This will prevent the challenge from being shown to the user and will automatically mark the 3D Secure Session as failed when a challenge is requested.

EU Transactions

The challenge flow is required for EU transactions and as a result frictionless-only 3D Secure is not supported by banks in the EU.

Configuring Acquirer Details


Acquirer configuration is required for 3D-Secure authentications in production. While acquirer details are not needed when testing in Sandbox mode, you must configure them before processing live transactions.

When you process 3D-Secure authentications in production, the card networks require information about your payment acquirer (the bank or payment processor that handles your card transactions). This acquirer information is necessary for the authentication process to work correctly.

Default Acquirer details


Evervault recommends configuring your acquirer details using the Acquirers API. This allows you to store your acquirer configurations securely, and reuse them across all your 3D-Secure sessions without needing to pass acquirer details with every API request.

  • Simplified integration: You don't need to include acquirer details every time you create a 3DS session
  • Better security: Acquirer details are stored securely and aren't exposed in your application code
  • Easier management: Update acquirer details in one place when your payment processor changes
  • Multi-network support: Configure different acquirer details for each card network (Visa, Mastercard, etc.)

Setting up default acquirer details


You can configure a default acquirer for each card network (Visa, Mastercard, American Express). When creating a 3DS session, Evervault uses the appropriate acquirer configuration based on the card network.

You can use the Acquirers API to configure your acquirer details for production. Configurations are specific to each app, so you need to configure these for your staging and production apps separately.

Provide acquirer details per request


Alternatively, you can provide acquirer details when creating each 3DS session by including the acquirer object in your API request. This approach is useful if you work with multiple acquirers or need to specify different acquirer details for different transactions. However, supplying acquirer details per request adds complexity to your integration. You'll likely need to perform a BIN lookup to identify the card network, so that you can then decide which acquirer BIN or MID values to provide for each transaction.

How Evervault resolves acquirer details


When you create a 3DS session, Evervault follows this process to determine which acquirer configuration to use:

  1. Explicit acquirer details: If your request includes an acquirer object, those details are used.
  2. Configured acquirer reference: If your request includes an ID of an acquirer configuration in the acquirer field, that configuration is used.
  3. Default acquirer: If no acquirer details are provided in the request, Evervault uses the default acquirer configuration for the card's network, if available.
  4. No configuration found: If no acquirer details can be resolved, session creation fails.

Testing your implementation


Provided you are using a Sandbox app, you can use specific Test Cards to simulate various real-life scenarios. These cards can be used in conjunction with any valid expiry date or CVC.

NumberBrand

3D Secure challenge flow

The following test cards will result in a 3D Secure challenge being show.

4242 4242 4242 4242

Visa

5555 5555 5555 4444

Mastercard

3782 8224 6310 005

American Express

Successful frictionless flow

The following test cards will result in a 3D Secure challenge being shown.

4111 1101 1663 8870

Visa

5555 5501 3065 9057

Mastercard

3782 8224 6310 005

American Express

Failed frictionless flow

The payment will fail frictionless authentication and a challenge will not be shown.

4111 1101 1663 8870

Visa

5555 5501 3065 9057

Mastercard

3782 8224 6310 005

American Express

Attempted authentication

In some rare occasions a 3DS transaction cannot be authenticated by the ACS. In these scenarios, the Card Network stands in and accepts the liability shift. This will result in a challenge being shown.

4111 1101 1663 8870

Visa

5555 5501 3065 9057

Mastercard

3782 8224 6310 005

American Express