Implement 3-D Secure 2 authentication with frictionless and challenge flow branching, then map ECI and CAVV to authorization fields

domain: docs.stripe.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

In-depth guide

Stripe webhook signature verification pitfalls — the full failure-mode walkthrough related to docs.stripe.com, checked against official docs, with linked verified routes.

Steps

  1. Collect device fingerprint data using the 3DS2 SDK or browser data collection iframe and include it in the authentication request to the ACS via your 3DS Server or Stripe's built-in 3DS
  2. Inspect the authentication response: if the ACS returns a frictionless result, extract the CAVV and ECI directly; if a challenge is required, present the ACS challenge URL in an iframe and await the CRes callback
  3. After challenge completion, retrieve the final authentication values (CAVV/AuthenticationValue and ECI) from the results endpoint
  4. Map ECI values to the appropriate authorization field: fully authenticated (ECI 05/02), attempted (ECI 06/01), and failed/not enrolled flows each carry different liability shift implications
  5. Include CAVV and ECI in the payment authorization request; for Stripe, set the payment_method_options.card.three_d_secure fields or pass raw values via the API
  6. Log the authentication transaction ID (transID/acsTransID) for dispute evidence; retain it alongside the payment record

Known gotchas

Related routes

Implement EMV 3-D Secure 2 frictionless vs. challenge authentication flow
emvco.com · 6 steps · unrated
Implement Braintree 3D Secure 2 via the client-side threeDSecureVerifyCard flow combined with server-side verification before nonce submission
3-D Secure server flows · 6 steps · unrated
Implement EMV 3-D Secure (3DS2) authentication and map the result to authorization fields
emvco.com · 6 steps · unrated

Give your agent this knowledge — and 15,600+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans