3DS JavaScript API Integration for PSD2 SCA

This page describes the integration effort to support PSD2 SCA compliance and exemptions for a 3DS JavaScript API integration. Before you proceed to build your integration, it's recommended that you familiarize yourself with PSD2 SCA Compliance and Exemptions.

The 3DS JS integration guidelines for PSD2 SCA complement the Authentication API integration guidelines and as such must be used in conjunction with it.
Supported Exemptions

The gateway currently has support for the following exemptions:

  • Low Risk
  • Low Value
  • Whitelisting
  • Recurring Payments
  • Secure Corporate Payments
Support is provided for PSD2 SCA exemptions for Mastercard and Visa cards.
Prerequisites

To comply with PSD2 SCA requirements, you need to add 3-D Secure Authentication to your gateway integration.

To use the PSD2 SCA exemptions functionality via the gateway:

  • Your merchant profile on the gateway must be enabled and configured for the PSD2 exemptions you want to use by tyro.
  • You must not configure any 3-D Secure Transaction Filtering rules. 
  • You must have a 3DS JavaScript API integration to the gateway for 3DS2.
  • You should submit as much payer and transaction information as possible when initiating the authentication. This will raise the probability of an exemption being granted or applied by the issuer.
Requesting Payer Authentication

You can submit the authentication request without claiming an exemption. In this case, you do not need to make any changes to your integration with the gateway's 3DS JavaScript API.

If PSD2 SCA applies to the transaction, the issuer will either present the payer with the 3DS challenge or apply an issuer exemption where the payer will experience a frictionless checkout flow. In both cases, the required authentication details are contained in the response and you can proceed to the payment in the standard way.

Claiming an Exemption when Requesting Payer Authentication

If the Initiate Authentication response indicates that 3DS is available for the card, i.e., data.authenticationVersion with value 3DS2 or 3DS1, you can claim an exemption when invoking the authenticatePayer() method. Add authentication.psd2.exemption field with one of the following values to the optionalParams request field. For more information, see Step 4: Authenticate Payer.

  • LOW_RISK 
  • LOW_VALUE_PAYMENT 
  • SECURE_CORPORATE_PAYMENT 

If you are not enabled for the requested exemption, the request is processed as if you did not request an exemption. The issuer may:

  • grant the exemption you have requested,
  • apply an issuer exemption, or
  • deny the exemption you have requested and not apply an issuer exemption.
The request must contain the field authentication.challengePreference=NO_CHALLENGE

You can claim an exemption for all the cases listed below:

  • 3DS2 or 3DS1 are available for the card, i.e. the Initiate Authentication response returned data.authenticationVersion with value 3DS2 or 3DS1.
    • If 3DS2 is available, the gateway will request the exemption during the authentication. 
    • If 3DS1 is available, the gateway will bypass the authentication and advise you to proceed to the payment. The gateway will automatically request the exemption when submitting the payment for processing to the acquirer.
  • Your acquirer supports PSD2 exemptions. If the acquirer does not support exemptions, the gateway will automatically request the authentication without asking for an exemption. 
  • The issuer supports PSD2 exemptions for authentications. If the issuer does not support PSD2 exemptions, the gateway will bypass the authentication and advise you to proceed to the payment. The gateway will automatically request the exemption when submitting the payment for processing to the acquirer. 

If you are not enabled for the requested exemption, the request is processed as if you did not request an exemption. The issuer may:

  • grant the exemption you have requested,
  • apply an issuer exemption, or
  • deny the exemption you have requested and not apply an issuer exemption.

Special handling is applied if your acquirer or the scheme does not support exemptions. 

Scenario Description
Issuer Grants Acquirer Exemption If the issuer grants the exemption you have requested:
  • The payer will be presented with a frictionless checkout flow.
  • The response indicates that an acquirer exemption was granted (transaction.authenticationStatus=AUTHENTICATION_EXEMPT).
  • The response indicates that you may proceed with the payment (data.gatewayRecommendation=PROCEED).
  • The response contains the 3DS authentication details.
  • You can proceed with the payment.
Issuer Applies Issuer Exemption If the issuer applies an issuer exemption:
  • The payer will be presented with a frictionless checkout flow.
  • The response indicates that the authentication was successful (transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL).
  • The response indicates that you may proceed with the payment (data.gatewayRecommendation=PROCEED).
  • The response contains the 3DS authentication details.
  • You can proceed with the payment. 
Issuer Does not Grant or Apply an Exemption If the issuer did not grant the exemption you have requested and did not apply an issuer exemption:
  • The payer will be presented with the 3DS challenge flow.
  • The response indicates the outcome of the payer authentication in the transaction.authenticationStatus field
  • If the authentication was successful (transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL) the response contains the 3DS authentication details.
  • The response indicates in the data.gatewayRecommendation field if the gateway recommends that you proceed with the payment. 
Acquirer Does Not have Support for PSD2 Exemptions If the acquirer (that will subsequently be used to process the payment) does not have support for PSD2 exemptions, the gateway will process the authentication as if no exemption was requested.
  • The payer will be presented with the 3DS challenge flow.
  • The response indicates the outcome of the payer authentication in the transaction.authenticationStatus field.
  • If the authentication was successful (transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL) the response contains the 3DS authentication details.
  • The response indicates in the data.gatewayRecommendation field if the gateway recommends that you proceed with the payment. 
PSD2 Exemptions Not Supported for this Scheme Requesting exemptions when performing the authentication is currently only supported for Mastercard and Visa. If the gateway does not have support to request PSD2 exemptions for a scheme, the gateway will proceed without performing 3DS.
  • The response indicates that an acquirer exemption is being requested (transaction.authenticationStatus=AUTHENTICATION_EXEMPT)
  • The response indicates that you may proceed with the payment (data.gatewayRecommendation=PROCEED)
  • You can proceed with the payment. 
The response will not contain any 3DS details (indicating that 3DS was not performed). When you proceed with the payment, the gateway will automatically request the exemption when submitting the payment for processing with the acquirer.

Proceeding with a Payment

If the response does not contain data.gatewayRecommendation=PROCEED we do not recommend that you proceed with the payment. Ask the payer for another set of payment details. 

If the Authenticate Payer response indicates that you can proceed with the payment (response.gatewayRecommendation=PROCEED), proceed with the payment by submitting an Authorize or Pay request. For details, see Implementing a 3DS Integration using the 3DS JavaScript API (Step 5).

Fallback to 3DS1

If the card does not support 3DS2, the gateway may fall back to 3DS1. In this case, where you have requested an exemption, the gateway behavior depends on the acquirer support for PSD2 exemption. See table below for details.

Scenario Description
Acquirer has Support for PSD2 Exemptions The gateway will proceed without performing 3DS.
  • The response indicates that an acquirer exemption is being requested (transaction.authenticationStatus=AUTHENTICATION_EXEMPT)
  • The response indicates that you may proceed with the payment (data.gatewayRecommendation=PROCEED)
  • You can proceed with the payment. 

The response will not contain any 3DS details (indicating that 3DS was not performed). When you proceed with the payment, the gateway will automatically request the exemption when submitting the payment for processing with the acquirer.
Acquirer Does Not have Support for PSD2 Exemptions If the acquirer (that will subsequently be used to process the payment) does not have support for PSD2 exemptions, the gateway will process the authentication as if no exemption was requested.
  • The payer will be presented with the 3DS challenge flow.
  • The response indicates the outcome of the payer authentication in the transaction.authenticationStatus field.
  • If the authentication was successful (transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL) the response contains the 3DS authentication details. 
  • The response indicates in the data.gatewayRecommendation field if the gateway recommends that you proceed with the payment. 
Proceeding with a Payment after a Successful Authentication

If you have successfully performed an authentication, i.e., the Authenticate Payer response contains data.gatewayRecommendation=PROCEED, proceed with the payment by submitting an Authorize or Pay request.

For details, see Implementing a 3DS Integration using the 3DS JavaScript API (Step 5). The gateway will automatically add the 3DS authentication details to the transaction request submitted to the issuer.

FAQs

I already have an integration with the gateway for 3DS1. Am I PSD2 SCA compliant?

If you have an existing integration with the gateway using the gateway's legacy API for 3DS1, you need to upgrade to EMV 3-D Secure Authentication and then follow the integration steps described on this page. 

3DS 1 is only considered compliant with the PSD2 SCA mandate if the issuer sends a one-time password to the payer's phone when authenticating the payer, not where the issuer assigns a static password to the payer. 

As not all issuers use one-time passwords, it is not recommended to rely on 3DS1 if you are required to comply with the PSD2 SCA mandate. 

I have existing payment agreements for recurring payments or other merchant-initiated payments. Do I need to perform payer authentication for all my agreements again?

You do not need to authenticate the payer for such an agreement again. The schemes have rules for the transition period.

How do I proceed if I am using a session and the session contains an exemption, but the payment was rejected by the issuer because it is not PSD2 SCA compliant?

The gateway will ignore the exemption contained in the session when the order has a payment that has been rejected by the issuer because it is not PSD2 SCA compliant. Hence, it's not required that you remove the exemption from the session before performing the 3DS authentication for the order and re-submit the payment.

How can I search and view PSD2 exemption details for orders and transactions in Merchant Administration?

When searching for an order or transaction in Merchant Administration via the Order and Transaction Search, you can use the search term:

  • "Payer Authentication Status":"Authentication Successful" to find all successfully authenticated orders
  • "Payer Authentication Status":"Authentication Exempt" to find all orders where an exemption was requested or applied

The authentication status of the order is displayed on the Order and Transaction Details page in Merchant Administration in the field "Payer Authentication Status" in the "Payer Authentication Details" section. The field will have the value "Authentication Exempt", if an exemption has been requested or applied to the order. 

The authentication status of the transaction is displayed on the Order and Transaction Details page in Merchant Administration in the section "Transactions". Select "View" for the transaction you want to view. Field 'Payer Authentication - Authentication Status' will have the value 'Authentication Exempt', if an exemption has been requested or applied to the transaction.