3D Secure / EMV 3DS
The cardholder authentication protocol for card-not-present transactions. 3DS2 adds frictionless, decoupled, and challenge flows while enabling SCA compliance under PSD2 and reducing CNP fraud liability.
Authentication Flows
EMV 3DS defines three authentication flows. The issuer's ACS selects the appropriate flow based on risk analysis of the data in the AReq.
Animated flow — frictionless vs. challenge
EMV 3DS2 risk-based authentication where the issuer ACS approves on data alone — no cardholder interaction. The common path for low-risk transactions.
Checkout
Cardholder confirms payment on the merchant.
The merchant 3DS SDK / 3DS Server gathers device and browser data (3DS Method) to enrich the authentication request.
Frictionless Flow
Zero cardholder interaction required
- 3DSS collects browser/device data and sends AReq to DS
- DS routes AReq to the correct ACS based on card BIN
- ACS performs device fingerprinting and risk analysis on the 100+ data elements
- ACS determines low risk — sends ARes with transStatus=Y (or A for attempt)
- ARes contains the CAVV (authentication value) and ECI
- Merchant proceeds to authorization, including CAVV and ECI in the auth request
Challenge Flow
Cardholder interaction required (OTP, biometric)
- AReq sent to DS, routed to ACS
- ACS determines challenge required — sends ARes with transStatus=C and acsChallengeMandated=Y
- ARes includes ACS URL for the challenge window
- 3DSS opens an iframe (browser) or triggers SDK challenge (app) at the ACS URL
- Cardholder completes challenge: enters OTP from SMS, uses biometric, or answers knowledge question
- ACS sends CReq (Challenge Request) and receives CRes (Challenge Response) from cardholder
- ACS sends RReq (Results Request) to 3DSS with final transStatus (Y or N)
- 3DSS sends RRes acknowledgment, then proceeds to authorization
Decoupled Authentication Flow
Asynchronous out-of-band authentication
- AReq sent with deviceChannel=03 (decoupled) and decoupledReqIndicator=Y
- ACS determines decoupled flow — ARes with transStatus=D
- ACS sends a push notification to the cardholder's banking app on their registered device
- Cardholder opens their banking app and authenticates (PIN, biometric, pattern)
- Authentication is entirely out-of-band — occurs separately from the browser session
- ACS sends RReq asynchronously (up to 1 hour maximum) with final outcome
- Merchant may poll for result or use webhook — timeout results in U (unable to authenticate)