Docs

Stripe 

Click here if you are looking for information associated with RBI's e-mandate.

If you are using Stripe.js as your checkout solution, and need to be SCA-compliant under the European PSD2 regulation, take a look at 3DS implementation for Stripe.js in Chargebee .

Supported Payment Methods 

Stripe supports a wide range of payment methods to help you accept payments around the world. Each payment method varies in the authentication process. As a merchant, you can seamlessly integrate Stripe with Chargebee to process your payments.
Click on the links below learn more about configuring the desired payment method:

Configuring Payments via Stripe 

The following steps will help you configure Stripe with Chargebee.

  1. Click Settings > Configure Chargebee > Payment Gateway > Add payment gateway > Stripe.
    You can configure Stripe either from your Test or Live account.
  2. Log in to an existing account or create a new one.
  3. The Configure Stripe page will open as shown below.
Note

For a seamless customer experience, disable Stripe's direct debit notifications and enable them in Chargebee if you prefer Chargebee to manage them. Enabling notifications in both systems will now result in duplicate emails being sent to customers.

Due to recent world events, you may experience failures for payments originating from Russian financial institutions or instruments. We recommend reviewing guidelines issued by respective payment gateways for additional information.

Cards 

Click the Manage link next to cards to configure them.

  • Prepaid cards: Enable this option to allow your customers' to pay via prepaid cards.
  • Always retain card information in Stripe: This is useful in case you have configured multiple gateways. Enabling this option will update the details in Stripe.

Configuring Webhooks 

Webhooks are indispensable to a smooth SEPA workflow; they notify Chargebee of any changes made to the transaction on Stripe so Chargebee can keep you updated on what's going on with your payment.

Follow these steps to configure webhooks for this integration:

  1. In your Stripe account, go to Developers > Webhooks > Add an endpoint.
  2. Paste the Notification URL from Chargebee into the Endpoint URL field.
  3. Click Select events and select the All events option to allow the endpoint to listen to all the events.
  4. Click Add endpoint.
Webhook Events
customer.card.updated
customer.source.updated
charge.succeeded
charge.failed
charge.expired
charge.refunded
charge.refund.updated
review.closed
source.transaction.created
payment_method.updated
charge.dispute.funds_withdrawn
charge.dispute.closed
payment_method.automatically_updated
payment_method.card_automatically_updated
source.chargeable
payment_intent.succeeded
payment_intent.payment_failed
mandate.updated
setup_intent.succeeded
setup_intent.setup_failed
customer_cash_balance_transaction.created
See also

Configuring Webhooks in Chargebee.

Note

In case you remove your Stripe account from Chargebee, this URL will no longer be valid. Adding Stripe to Chargebee again will generate a new URL that you will (once again) have to paste in your Stripe account.

Currencies Supported 

Stripe and Chargebee support 100+ different currencies for charging customers across different geographical locations. If you intend to use Stripe+Chargebee for your business, ensure that your transactional currencies are supported by both. Find the complete list of currencies supported by:

Stripe India Integration 

Chargebee allows you to integrate with Stripe India to process card payments. Stripe India categorises accounts based on the currency (INR and Non INR).

If you are selling to customers in INR, then you do have to configure 3DS. This is to ensure that you are compliant to Multi factor authentication. Learn more.

If you are selling in a different currency other than INR, then it is mandatory to collect certain information such as plan name, billing address, shipping address. This is to comply with the local regulation.

Non INR accounts in Stripe are classified into Goods and Services. Based on your account type, you will have to configure the following settings in Chargebee.

  • Billing and Card address should be made mandatory during checkout if you are selling services. Configure the Billing and Payment (Card) address fields in the Checkout & Self-Serve Portal configurations to make sure these mandatory details are collected during the checkout process. This information is passed on to Stripe as soon as it is updated in Chargebee.
  • Billing, Shipping and Card address should be made mandatory during checkout if you are selling physical goods. Configure the Billing, Shipping and Payment (Card) address fields in the Checkout & Self-Serve Portal configurations to make sure these mandatory details are collected during the checkout process Here, the billing address is passed on to Stripe whenever it is updated. The shipping address is sent individually for every transaction.
  • The Plan Name will be shared with Stripe for every transaction. Stripe will use this information for auditing.

Enabling the In checkout, prefill address information from setting in Payment section under the fields tab on Checkout and Self-Serve Portal settings will enhance the checkout experience for your customers by pre-filling the address information from earlier sections and help them complete checkout faster.

Limitations (Goods Account) 

  • Charges (one-time charges) against the customers without subscriptions will not go through because they do not have a shipping address linked to it.
  • Consolidated Invoicing with different shipping addresses is not supported.
  • Pay now option with different shipping address is not supported.

Test Card Numbers 

The card numbers provided here can be used for testing card transactions in Chargebee's Test site in the test mode of your Stripe account.

While testing, use any number for CVV and a valid future date for the expiry date.

Card Number

Card Type

Response Description

4242 4242 4242 4242

Visa

Successful Transaction.

4000 0000 0000 0002

Visa

Attempts to charge will be declined with a Card Declined error.

4000 0000 0000 0341

Visa

Card can be added but attempts to charge will fail.

4000 0000 0000 0069

Visa

Charge will be declined with an "Expired Card" error.

Auth and Capture 

Auth and capture is a process where funds in your customers' card are authorized and earmarked for a duration of 7 days for a transaction. The merchant can claim the authorized amount within this tenure. This is extremely useful for merchants who have a delayed fulfillment process.

Note
  • Currently supported only for one time charges.
  • Auth and Capture is available via API  only

Authorize  - When a merchant authorizes a transaction, Chargebee will check the customer's credit card to check the availability of authorized amount. Then, a hold will be placed on the card for that amount for a particular tenure.

  • You can hold the funds only for a maximum for 7 days.
  • Authorizations expire automatically after 7 days.

Capture  - During this tenure, the merchant can issue a capture request to collect the authorized funds. The merchant must collect the funds within the authorized tenure. If not, he cannot collect them later. A new auth and capture request must be called. Uncollected funds will be released back to the card.

  • You cannot capture more than the authorized amount.
  • Partial and Multiple captures are not supported.

Void  - In case you do not want to capture the authorized amount, you can choose to void it.

Checkout the Auth and Capture API .

3DS Implementation for Card Payments 

Check with your gateway whether 3DS is enabled for your account. If not, enable it at your gateway and then in Chargebee. Also, make sure you complete the SCA checklist in Chargebee before accepting 3DS payments. This is to ensure that you can recover failed payments easily, without compromising on your revenue.

1) For new cards with immediate payment 

The implementation for respective integrations given here are for 3DS payments which involve a new card and immediate charge.

a)Stripe.js + Chargebee APIs:

  • Complete 3DS flow for the card using Stripe's [https://stripe.com/docs/api/payment_intents]Payment Intent API[].
  • Pass the PaymentIntent id to payment_intent[gw_token] parameter of Chargebee APIs and perform the necessary operation.

You can take a look at our tutorial for the detailed set of steps on completing a 3DS payment for a new card using Stripe.js  in your checkout.

b)Chargebee Hosted pages + Stripe gateway:

Chargebee's Hosted pages(In-app checkout, Single Page checkout, Portal) take care of tokenizing the card details and performing 3DS verification if needed.

All you need to do is complete configuration 3DS in your Chargebee site.

c)Chargebee APIs + Stripe gateway:

Sending raw card details to Chargebee is not a recommended way to carry out 3DS transactions. The reason being: Gateway JS or Chargebee.js sends your customer's background data and tries for a 3DS frictionless flow, which is typically not possible when you send raw card details directly to Chargebee.

We recommend you to go with gateway JS + Chargebee API option, as your payment approval rate would be better with this approach. For more information, reach out to support .

d)Chargebee.js + Stripe gateway:

Chargebee.js takes full responsibility of tokenizing the card details and performing 3DS verification when necessary. All you need to do is integrate Chargebee.js  in your checkout.

2) For new cards without immediate payment 

The implementation for respective integrations given here are for 3DS authorization which involves 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 can only be used for performing 3DS verification for a card which is not associated with an immediate payment. The stored card can then be tapped for payment in the future.

  • Complete 3DS flow for the card using SetupIntent.
  • Pass the SetupIntent id to payment_intent[gw_token] parameter of Chargebee APIs and perform the necessary operation.

b)Chargebee Hosted pages + Stripe gateway:

  • Chargebee's Hosted pages(In-app checkout, Single page checkout, Portal) take care of tokenizing the card details and performing 3DS authorization for a minimum amount.
  • The amount authorized is automatically released to the customer on 3DS flow completion.

All you need to do is complete configuring 3DS in your Chargebee site.

c)Chargebee.js + Stripe gateway:

  • Chargebee.js takes full responsibility of tokenizing the card details and performing 3DS authorization for a minimum amount.
  • The amount authorized is automatically released to the customer on 3DS flow completion.

All you need to do is integrate Chargebee.js  in your checkout.

3) For stored cards 

The implementation for respective integrations given here are for 3DS payments made using a stored card.

a)Stripe.js + Chargebee APIs:

  • Follow the steps  to fetch the card details and charge it via 3DS flow.
  • Pass the PaymentIntent id to payment_intent[gw_token] parameter of Chargebee's APIs to perform the necessary operation.

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 PaymentIntent API .
  • Use Chargebee.js' handleCardPayment function as a callback function.

Refer to our Chargebee.js documentation to know more on charging a stored card via 3DS flow .

Handling 3DS Fallback 

Fallback flow comes into play when 3DS verification attempt fails for stored cards, due to the customer being offline. The invoice would then get into dunning and the customer would be followed up for payment, based on your remainder email configuration. Enable 3DS and dunning email configuration in Chargebee to take care of Fallback flow.

Automated Account Updater 

This integration supports automated account update for cards.

Payment failures and recovery are the most difficult aspects of recurring billing businesses due to the sheer complexities involved. In most cases, payment failures occur as a result of an expired or updated card. Chargebee supports an automated account update for Stripe. Each time there is an update to the customer's card number, expiry, or Customer Verification Value (CVV), the details are updated in Chargebee (in real-time) with the help of card networks and the Stripe gateway. This helps avoid any manual efforts for your customers and more importantly avoid payments failing due to outdated card information.

FAQ 

1) How do I configure Chargebee's webhook in Stripe?

See this section  in our support documentation for more information on how to configure a webhook in Stripe.

Was this article helpful?
Loading…