3-D Secure 2.0 – External Authentication

Using External Authorization Services With Snap*

3-D Secure 2.0 is a protocol that was developed in compliance with the PSD2 mandate to make online payments more secure through advanced cardholder verification. The External Authentication workflow is offered for integrators who wish to perform the Authentication protocol through a 3rd party. The integrator will then Authorize the transaction through one of the Snap* front-ends. These updates will be supported for the eService and TRON front-ends.

The External Authentication supports both the Browser and Application flows at this time.

Documentation on implementing this feature can be found here: 3-D Secure 2.0 External Authentication Integration Guide (Last updated: 19 September 2022).

Note: Integrating to 3-D Secure requires integration to CWS, as well. Click here for the CWS Overview.

API Reference

**Last updated: 28 August 2020

Request

Required Parameter Description Data Type Browser/App Path
Conditional – Required on a 3DS 2.0 External Authentication Request if it is a Card On File transaction initiated by the Merchant. i.e. BankcardTransactionData/CardOnFileInfo/InitiatedBy is Merchant. ACSTransactionId Identifier assigned by the Access Control Server to identify a single transaction. String, 36 Char Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
ACSTransactionId
Conditional – Required on a 3DS 2.0 External Authentication Request if TransactionStatus is SuccessfullyAuthenticated or UnableToAuthenticate. AuthenticationValue Payment System-specific value provided by the ACS or DS using an algorithm defined by Payment System. It is used to provide proof of authentication. String, 28 Char Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
AuthenticationValue
Conditional – Required on a 3DS 2.0 External Authentication Request. DSTransactionId Identifier assigned by the Directory Server to identify a single transaction. String, 36 Char Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
DSTransactionId
Conditional – Required on a 3DS 2.0 External Authentication Request if TransactionStatus is SuccessfullyAuthenticated or UnableToAuthenticate. AuthenticationECI Payment System-specific value provided by the Access Control Server or Directory Server to indicate the results of the attempt to authenticate the Cardholder. String, 2 Char Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
AuthenticationECI
Conditional – Required on a 3DS 2.0 External Authentication Flow. TransactionStatus This value defines the authentication status for validation purposes. Enum –

  • NotSet
  • SuccessfullyAuthenticated
  • NotAuthenticated
  • UnableToAuthenticate
  • AttemptsProcessingPerformed
  • ChallengeRequired
  • DecoupledAuthenticationRequired
  • AuthenticationRejected
  • InformationalOnly
Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
TransactionStatus
Conditional – Required on a 3DS 2.0 External Authentication Request if TransactionStatus is SuccessfullyAuthenticated or UnableToAuthenticate. AuthenticationTimestamp Date and time in UTC of the prior cardholder authentication. Datetime –
Format accepted:
YYYYMMDDHHMM
Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
AuthenticationTimestamp
Conditional – Required on a 3DS 2.0 External Authentication Request if TransactionStatus is SuccessfullyAuthenticated or UnableToAuthenticate. AuthenticationMethod Mechanism used by the Cardholder to previously authenticate. Enum –

  • NotSet
  • Frictionless
  • CardholderChallenge
  • AVSVerified
  • Other
Both BankcardTransaction/
BankcardTenderData/
EcommerceSecurityData/
AuthenticationMethod
Required on a 3DS Request ProtocolVersion This will be the Protocol Version Number the transaction should be processed as. Enum –

  • NotSet
  • v1_0
  • v2_1_0
  • v2_2_0
Both BankcardTransactionData/
ThreeDSData/
ProtocolVersion

Response

Required Parameter Description Data Type Browser/App Path
Expected on a 3DS 2.0 Response. ProcessedAs3D Identifies how the requested 3DS transaction was processed. Bool Both BankcardTransactionResponse/
ProcessedAs3D
Expected on a 3DS 2.0 Response. TokenResult Visa’s ECI Response and MasterCard’s UCAF Response Data for clarification on how the transaction was processed. String Both BankcardTransactionResponse/
TokenResult