When creating or confirming a PaymentIntent, pass the radar_options parameter with a rules_config or by setting radar_options.session referencing a Stripe.js Radar session token collected from the client
Stripe Radar rules can be configured in the Dashboard to trigger 3DS based on attributes such as charge amount, card country, email domain, or custom metadata fields you attach to the PaymentIntent
To request 3DS via a Radar rule, create a rule in the Radar Dashboard with the action 'Request 3D Secure'; the rule fires when the PaymentIntent attributes match the conditions you define
The PaymentIntent will enter requires_action state when the Radar rule fires 3DS; handle next_action the same way as any other 3DS challenge
Monitor your Radar rule hit rates and 3DS completion rates in the Stripe Dashboard to tune thresholds and avoid unnecessarily high challenge rates
Combine Radar rules with payment_method_options.card.request_three_d_secure to have both a programmatic override and Radar-driven automation; verify which takes precedence in current Stripe documentation
Known gotchas
radar_options.session must be a token collected by Stripe.js from the cardholder's browser; passing a fabricated or stale token degrades Radar's risk scoring accuracy
Radar rules run server-side after the PaymentIntent confirm call; you cannot inspect whether a Radar rule will fire before confirming — design your UX to handle requires_action at any time
Radar 3DS rules count toward your total 3DS authentication volume; verify any per-account authentication rate limits with Stripe before enabling aggressive rule sets
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp