New in Chargebee: Explore Reveal and understand your payment performance end-to-end.Try Now
Docschargebee docs
HomeBillingCPQPaymentsRevRecGrowthReveal
Support

Product Updates


  • Release Notes

Payment Methods


  • Payment Methods Overview
  • Cards
  • Direct Debit
  • Bank Based Payments
  • Wallets
  • Vouchers
  • Articles and FAQ

Payment Gateways and Configuration


  • Payment Gateways Overview
  • Chargebee Test Gateway
  • Stripe
    • Stripe Prerequisites & Configuration
    • Stripe 3DS Implementation
    • ACH Credit Transfer via Stripe
    • ACH Payments via Stripe
    • Alipay via Stripe
    • Amazon Pay via Stripe
    • Apple Pay via Stripe
    • Automated Bank Transfer via Stripe
    • BACS via Stripe
    • Bancontact via Stripe
    • BECS via Stripe
    • BECS NZ via Stripe
    • Boleto Payments via Stripe
    • Cartes Bancaires
    • Cash App Pay via Stripe
    • Google Pay via Stripe
    • iDEAL via Stripe
    • Kakao Pay via Stripe
    • Klarna via Stripe
    • Naver Pay via Stripe
    • Revolut Pay via Stripe
    • SEPA Payments via Stripe
    • Sofort via Stripe
    • Stablecoin via Stripe
    • Stripe RBI e-Mandate Impacts
    • Wechat Pay via Stripe
  • PayPal Payment Services
  • Chargebee Pay
  • Adyen
  • Authorize.net
  • Bambora (formerly Beanstream)
  • Bank of America
  • BluePay
  • BlueSnap
  • Braintree
  • Checkout.com
  • CyberSource
  • dLocal
  • EBANX
  • Ecentric
  • Elavon
  • E-xact Direct Integration
  • eWay Rapid
  • Global Payments
  • GoCardless
  • J.P. Morgan Mobility Payment Solutions
  • Metrics Global
  • Mollie
  • Moneris
  • Network Merchants Incorporated (NMI)
  • Nuvei
  • Orbital (Chase Paymentech)
  • Pay.com
  • Paymill
  • Paystack
  • Pin Payments
  • QuickBooks Payments
  • Razorpay
  • Sage Pay
  • Solidgate
  • Tempus
  • Twikey
  • Windcave
  • Worldline Online Payments(formerly Ingenico)
  • Worldpay
  • Articles and FAQ

Level 2/3 Data Support


  • Level 2/3 Data Support

Payment Optimization Engine


  • Overview
  • Defaults
  • Advanced Setup
  • Payment Method Display Rules
  • Verification Rules
  • Routing Rules

Dunning


  • Dunning
  • Articles and FAQ

Payment Components


  • Overview
  • Use Cases
  • Troubleshooting

Card Components and Payment Method Helper


  • Card Components
  • 3DS Helper
  • Payment Method Helper

Offline Checkout


  • Offline Checkout
  • Articles and FAQ

Transaction Sync & Invoice Mapping


  • Transaction Sync and Invoice Mapping

Fraud Management


  • Fraud Management

Error Handling


  • Errors with Root Cause and Troubleshooting

Payment Lifecycle Logs


  • Payment Intents
  • Transactions
  • Gateway Activity Logs
  • Gateway Webhook Logs
  • Retries
  • Articles and FAQ

Others


  • Reach (Merchant of Record)
  • Bulk Deletion of Payment Methods
  • Custom Payment Methods
  • Payment Initiator Parameter
  • PSD2 and Strong Customer Authentication
  • RBI e-Mandate
  • RBI Tokenization Regulations
  • Chargeback Management
  • Transaction Descriptors
  • Payment Preferences
  • Visa Trial Rules
  • Mastercard Trial Rules
  • Co-badged Card Compliance
  • Articles and FAQ
  1. Payments
  2. Payment Gateways and Configuration
  3. Stripe
  4. Stripe 3DS Implementation
  1. Payments
  2. Payment Gateways and Configuration
  3. Stripe
  4. Stripe 3DS Implementation

Stripe 3DS Implementation

3DS adds card authentication for PSD2 SCA. Stripe can request 3DS authentication through supported Payment Intent flows when required by SCA, issuer rules, or Radar. Enable 3D Secure in Chargebee, and complete the SCA checklist before accepting 3DS payments.

For gateway overview and connection steps, see Stripe and Stripe Prerequisites & Configuration.

Before you start

  1. Confirm 3D Secure is enabled in Chargebee so the integration can handle authentication requests from Stripe.
  2. Complete the SCA checklist in Chargebee so you can recover failed payments without compromising revenue.
  3. For INR sales via Stripe India, 3DS is mandatory. See Stripe India.

1) New cards with immediate payment

These flows cover 3DS payments that involve a new card and an immediate charge.

a) Stripe.js + Chargebee APIs

  • Complete the 3DS flow for the card using Stripe's Payment Intents API.
  • Pass the PaymentIntent id to Chargebee APIs in the payment_intent gateway-token field, then perform the necessary operation.

See Stripe.js 3DS setup and the tutorial for completing a 3DS payment for a new card using Stripe.js.

b) Chargebee hosted pages + Stripe gateway

Chargebee's hosted pages (in-app checkout, portal) tokenize card details and perform 3DS verification when needed.

See Chargebee Hosted Pages and complete 3DS configuration in your Chargebee site.

c) Chargebee APIs + Stripe gateway

Sending raw card details to Chargebee is not recommended for 3DS. Gateway JS or Chargebee.js sends customer background data and can attempt a frictionless 3DS flow, which is typically not possible when you send raw card details directly to Chargebee.

Prefer gateway JS + Chargebee API for better approval rates. See API-based integration. For more information, contact Support.

d) Chargebee.js + Stripe gateway

Chargebee.js tokenizes card details and performs 3DS verification when necessary. See Gateway JS and Chargebee APIs and integrate Chargebee.js in your checkout.

2) New cards without immediate payment

These flows cover 3DS authorization for a new card without an immediate charge.

a) Stripe.js + Chargebee APIs

Stripe's Setup Intent API does not accept amount as a parameter and is used for 3DS verification when the card is not charged immediately. The stored card can be charged later.

  • Complete the 3DS flow using SetupIntent.
  • Pass the SetupIntent id to Chargebee APIs in the payment_intent gateway-token field, then perform the necessary operation.

See minimum-amount 3DS authorization (FAQ).

b) Chargebee hosted pages + Stripe gateway

  • Hosted pages (in-app checkout, portal) tokenize the card and perform 3DS authorization for a minimum amount.
  • The authorized amount is automatically released when the 3DS flow completes.

Complete configuring 3DS in your Chargebee site. See also minimum-amount 3DS authorization (FAQ).

c) Chargebee.js + Stripe gateway

  • Chargebee.js tokenizes the card and performs 3DS authorization for a minimum amount.
  • The authorized amount is automatically released when the 3DS flow completes.

Integrate Chargebee.js in your checkout. See also minimum-amount 3DS authorization (FAQ).

3) Stored cards

These flows cover 3DS payments using a stored card.

a) Stripe.js + Chargebee APIs

  • Follow Stripe's steps to fetch the card and charge it via a 3DS flow.
  • Pass the PaymentIntent id to Chargebee APIs in the payment_intent gateway-token field.

b) Chargebee hosted pages + Stripe gateway

Chargebee uses the card's Reference ID to retrieve the payment method and charge the customer.

c) Chargebee.js + Stripe gateway

  • Retrieve the card's Reference ID and pass it to Chargebee's Payment Intent API.
  • Use the Chargebee.js card-payment handler as a callback.

See Chargebee.js documentation on charging a stored card via 3DS.

For how stored and vaulted cards are treated under SCA, see the PSD2/SCA FAQs.

Handling 3DS fallback

Fallback applies when 3DS verification fails for stored cards because the customer is offline. The invoice enters dunning, and the customer is followed up based on your reminder email configuration. Enable 3DS and dunning email configuration in Chargebee to handle fallback.

Related content

  • PSD2 and Strong Customer Authentication
  • What is the general 3DS checkout flow with Stripe and Chargebee?
  • Stripe overview
  • Stripe Prerequisites & Configuration

Was this article helpful?