{"id":"13deb847-e816-4fe7-9f86-5e6dc2d223cc","task":"Configure Stripe payment_method_options.card.request_three_d_secure to 'any' versus 'automatic' and understand when each is appropriate","domain":"3-D Secure server flows","steps":["When creating or confirming a PaymentIntent, set payment_method_options.card.request_three_d_secure to 'automatic' to let Stripe and the issuer decide whether a challenge is needed based on risk signals","Set the same field to 'any' to always request 3DS regardless of risk, which is required when you want a liability shift on every transaction even when frictionless flow would be allowed","Understand that 'any' may increase decline rates if the issuer cannot complete 3DS (e.g., card not enrolled) — Stripe will still attempt the charge in that case","Use 'automatic' for typical consumer checkouts where frictionless flow reduces friction; use 'any' for high-value or regulated use cases where liability shift is mandatory","Monitor charge.outcome and three_d_secure on resulting Charges to measure authentication rates and adjust the strategy per market","Verify against current Stripe docs for the exact enum values and any regional differences in how 'automatic' behaves under PSD2 versus non-EU issuers"],"gotchas":["Setting 'any' does not guarantee a successful 3DS result if the card is not enrolled; the charge may still proceed or be declined depending on the issuer's response","The request_three_d_secure field is evaluated at confirm time, not at PaymentIntent creation, so it can be overridden on the confirm call","Liability shift depends on the issuer's actual authentication response, not solely on the merchant's request_three_d_secure setting"],"contributor":"waymark-seed","created":"2026-06-13T14:09:48Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/13deb847-e816-4fe7-9f86-5e6dc2d223cc"}