Getting Started

Building Blocks

Data Privacy & Security

Custom Fields

Subscription Features




Billing Features


Payment Methods

Direct Debit Payments

Configuring Gateways

Revenue Recovery

Fraud Management

Hosted Pages


Reports and Analytics


Open Source Resources

Other Features

API Integration

Third Party Integrations

ACH Payments via Stripe 

If you want to start accepting payments via ACH with Stripe, you've come to the right place! This document will help you configure your settings on the Chargebee web interface and the Stripe web interface so you can get your direct debit payments up and running ASAP.


To be able to accept ACH payments using Chargebee, you must:

  • Be a US based merchant selling to customers residing in the US.

  • Have a US/USD bank account linked with Stripe and configured with Chargebee.

  • ACH as a payment method option is supported on Chargebee's hosted pages. However, it will not show up on Chargebee's checkout page for new customers if you have not configured bank account verification via Plaid.

  • Stripe ACH is only supported on hosted pages when used with the Minimal, Elegant or Inspire themes. It does not work with Chargebee's Rhapsody theme. Refer this page   for more information on themes.

  • If Plaid is being used for bank account verification, the option of embedding into an iframe is not supported in hosted pages.

  • Dunning is unavailable for payments made through ACH with Stripe.

Accepting ACH Payments in Chargebee 

Step 1: Enable ACH payments

To enable ACH payments on Chargebee, navigate to your Stripe configuration page (Settings > Configure Chargebee > Payment Gateways > Stripe > Edit) and enable the Allow customer to pay via their bank accounts option.

Enabling this option is possible only if you have previously connected your Stripe account with Chargebee. Find out how to configure a Stripe account   on Chargebee here.

Step 2: Configure the authorization agreement

The National Automated Clearing House Association (NACHA) and federal legislation mandate that you should have an Authorization Agreement with your customer to charge their bank account. When you enable a customer to pay via ACH, Chargebee displays an authorization agreement for them to sign on the relevant page (depending on where your customer is entering their bank details). You can configure the information that appears on this agreement by entering the name, email address and phone number of your company on your Stripe configuration page.

Step 3: Update your Webhook URL in Stripe

Webhooks are indispensable to a smooth ACH 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. They can be configured by pasting Chargebee's notification URL in your Stripe account at Your account > Account settings > Webhooks > Add endpoint > Account. Find a more detailed tutorial on configuring webhooks on our Stripe   page.


Should 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.

Step 4: Allow the customer to pay via bank account

Step three is allowing your customer to pay via bank account. This additional step ensures that payments by ACH are an option only for customers you know and trust.

To allow a customer to pay via ACH, enable the allow this customer to pay to via his/her bank account option when creating a customer. In case the customer already exists and wants to start paying via bank account, you can enable this option by navigating to her Customer Details page and clicking the Change customer details option on the right (listed under Actions).

Step 4: Add and Verify the customer's bank account

Step four is adding bank details and verifying that the details provided actually belong to the customer. With this step behind you, you will be ready to start accepting ACH payments.

Stripe supports two modes of verification:

  • Via Plaid  , a third party application that authenticates bank information.

  • Via micro-deposits  , wherein the customer communicates the precise amounts (which are usually in cents, hence the name) transferred to the bank account to prove that she has access to her bank statements.

Using Plaid 

Plaid is a third party application that allows for quick authentication of bank information, enabling instant verification of bank details and payment collection. To allow your customer to verify their bank accounts using Plaid, follow these steps:

Step 1: Setup/Connect your Stripe and Plaid accounts

Connect your Stripe and Plaid accounts so that Plaid can facilitate the creation of bank account tokens on your behalf. Find out more about how to do this on Plaid's Plaid-Stripe   page.

Step 2: Connect your Chargebee and Plaid accounts

  • Navigate to Settings > Configure Chargebee > Payment Gateways > Stripe

  • Enable the Use Plaid for Instant Authentication option

  • Connect Plaid to Chargebee by entering your

    • Client ID and Public and Secret API Keys: This information helps Chargebee connect with your Plaid account. You can find this information in your Plaid site by navigating to Account > Keys.
  • Choose when you would like Plaid to show up for your customers to use as a verification method. You can set this option to:

    • All your customers - This options allows all your customers (including new customers) to pay via ACH irrespective of whether the Allow this customer to pay via his/her Bank Account option is enabled on the customer's details page.

    • Only customers with Direct Debit enabled or

  • Finally, click Update option at the bottom of the page to save your ACH settings.

Here is a screenshot of the Stripe page for reference:

Once you have completed these two steps, your customers will be able to verify their bank accounts using Plaid when they choose ACH as their payment method.

When your customers are setting up ACH payments, they will be redirected to Plaid. Plaid verifies bank details using the customer's (bank account related) login credentials. Once verified, customers are redirected back to Chargebee's hosted pages where they can enter their personal details, shipping and billing addresses and so on, and complete their payment.

Using Micro Deposits 

There are three ways to add and verify a customer's bank account using micro deposits:

  • On the Chargebee site
  • On the Customer Portal v2.
  • On the Stripe interface (for verification alone)

On the Chargebee Site

To add a customer's bank account on the Chargebee interface, navigate to the Payment Method Details section on the customer's details page and click Add bank account link.


This option will not be available if you have not enabled the Allow customer to pay via his/her bank account option when creating this customer (see step one). To enable this option for an existing customer, click Change Customer Details option on the right hand side of the page (listed under Actions).

To add a bank account, you will need the following information:

  • Customer's name as per bank account
  • Name of the bank
  • Account holder type
  • Bank account number
  • Bank's nine digit routing number

After you click Add bank account you will be directed back to the customer's page, where the newly recorded details should appear along with a verify this account option. Clicking this option will cause a verification window to pop up with fields to enter the exact amounts that have been transferred to the customer's account. The customer will need to provide you with this information after checking their bank statements.

If incorrect information is entered into the verification pop up more than 10 times, the customer's bank account will be removed from Chargebee in the interest of safety. The whole process will have to be repeated with fresh account details in the event of this happening.

On the Customer Portal

The process of adding and verifying an account is very dependent on the customer. So we've made it possible for you to allow the customer to handle the entire process on her end via the customer portal.


This feature is currently unavailable in Chargebee's Checkout and Portal v3.

On the customer portal, your customer would have to navigate to and click Update Payment Details option to add her bank details. After she clicks Add bank account she will be directed back to the portal, where the newly recorded bank details should appear along with a verify this account option. Clicking this option will cause a verification window to pop up with fields to enter the exact amounts that have been transferred to her account.

As on the web interface, if incorrect information is entered into the verification pop up more than 10 times, the customer's account will be marked as INVALID in Chargebee; resulting in the cancelation of subscription on renewal. The whole process will have to be repeated with fresh account details in the event of this happening. If it occurs on the customer portal, you will be notified by email.


The Request Payment Method option is a great way to initiate this process for a new customer. Find it under the Actions tab on the customer's page.

On Stripe

If you want to verify the customer's bank account on the Stripe interface, click the verify option that appears next to the customer's bank details. The subsequent pop-up has fields to enter the exact amounts that have been transferred to the customer's account in cents.

Chargebee will be notified of the verification via webhook.


If you want to add or update a verified bank account on Chargebee from Stripe via API, check out this solution article  .

The ACH workflow on Chargebee 

After the customer has accepted the Authorization agreement and her bank account has been added and verified, she is ready to make ACH payments, and you are ready to receive them.

Here's what the workflow looks like:

  • When an ACH payment is made (for both one time payments and recurring payments), a payment due invoice with a payment initiated tag is created on Chargebee.

  • ACH payments may take up to 5 working days. When the funds are received, Stripe marks the payment as successful, if they are not, it marks the payment as failed.

  • Chargebee is notified of the change in the status of the payment (again via webhook) and consequently marks the invoice as either paid (for a successful payment) or not paid (for a failed payment). For more, check out our invoices   page.

The invoice generated looks like this:

For more on what the workflow looks like on Stripe, check out their ACH guide  .

Card Payments vs ACH Payments: The waiting period 

Unlike card payments, where the authorization and transfer of funds happens immediately, the authorization and transfer process has a waiting period for payments via ACH. This waiting period is typically up to five business days. Settlement takes about eight working days in total.

Email notifications 

Two types of email notifications are available for ACH payments:

  • Payment Initiated: To inform customers that a payment has been initiated via Direct Debit from their bank accounts.

  • Refund Initiated: To inform customers that a refund has been initiated towards their bank account.


Additionally, we would strongly recommend enabling the Subscription Renewal Reminder notification, as customers have to be given notice before they are charged via Direct Debit.

Check out the email notification page for more info.

Was this article helpful?