Introducing the Chargebee CLI

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.