ACH/eCheck Configuration


The following information is for ACH/eCheck-enabled and Stripe users.

ACH stands for Automated Clearing House. Some companies use the term “eCheck” in place of “ACH”. Enabling ACH Allows your customers to pay using their checking accounts (in addition to credit cards). ACH is currently only supported for Authorize.Net and Stripe, and is limited to US merchants and customers.

Here are the basics to start using ACH with Chargify:

  • You must be a US-based merchant, billing US-based customers (Access to bank accounts is somewhat tied to countries. We hope to have a similar service in other countries in the future.)

  • You must use Authorize.Net or Stripe as your payment gateway.

  • If you’re already using Chargify with Authorize.Net as your payment gateway, you need to get approved for ACH/eCheck processing through your Authorize.Net account.

  • You can apply for an Authorize.Net account or create a Stripe account if you do not have one. Alternately, you can apply for an eCheck-only account with Authorize.Net.

Authorization Agreement

ACH customers must agree to authorization terms when paying by bank account. You are required to obtain permission from the customer prior to debiting their account.

To help with this, Chargify will display ACH Authorization Agreement text on the self-service page where customers can enter their bank account information. If you are using another method to collect bank account information, you will need to take care of presenting the terms and obtaining the customer’s permission.

Chargify can also email your customer a copy of this agreement. You can configure the ACH Authorization Agreement Email on the email settings page.

If for any reason your ACH payment terms are updated, the amount or schedule on which you charge your customer is updated, etc., you will need to notify the customer of changes and obtain their permission to debit their account under the new terms.

Emails when Anything Changes

ACH guidelines require you to notify your customer if there is any change to the recurring amount to be taken, or to the date that it will be taken. In other words, any change at all since you last notified them of what to expect.

We also recommend that you turn on the Upcoming Renewal Email in your Site Settings. This is an email we can send (if turned on) to your customers, telling them how much they will be charged, a few days before they are charged.

The point is, bank regulations are all about making sure your customer knows what to expect before any money comes out of his or her account.

ACH/eCheck Settings

From this point forward, we’ll assume that your Authorize.Net or Stripe account is ready for ACH/eCheck processing.

  1. In your Chargify Settings, make sure your payment gateway is set to Authorize.Net or Stripe. Note that if you are using the Stripe (Legacy) gateway you will need to update your account to the newer integration before ACH will work.

  2. In your Chargify site settings, enable ACH as a payment option:

Enable ACH in your settings for your site

Allowing Customer ACH Payments

Once you have your Chargify site set up for ACH payments, your customers can start paying you from their bank accounts. But how you get their bank info varies with how you sign them up and how well you know them.

ACH guidelines place the responsibility on you, the merchant, to reduce fraudulent or incorrect use of bank account info. It’s your duty to know your customer at least somewhat, to know who they are, and to gain enough trust in them to let them enter bank account info.

Merchants use 1 of 2 basic paths to get their customers into Chargify:

  • Chargify Public Pages
  • API calls (where you make your own signup forms).

ACH is handled differently with each path:

  • Chargify Public Pages for Signup and Payment Updates If you are using the Chargify Public Signup Pages for things like signing up customers and allowing them to update their payment info, then the customer flow works like this:
  1. Customer signs up
  2. THEN gets approved by you for ACH
  3. THEN gives their bank account info.
  • Chargify API / Chargify Direct If you are using your own forms and connecting to our API to sign up customers and update their payment info, then you can sign up new customers with bank info from the start. This is easier for you and for your customers, but it assumes you have a closer relationship with your customers and you trust them to enter their bank account info.
Please note that the billing portal does not yet support ACH, regardless of how customers were signed up in Chargify. We will come back to this as we get overall feedback about ACH and how merchants and their customers are using it.

ACH Payment Flow with Chargify Public Pages

You’ll notice that we did not make any system using our hosted pages that allows bank account info to be entered by a brand new customer on a public-facing signup form.

We decided that allowing bank account info to be entered by a brand new customer on a public signup form is too risky. Make sure that your user/customer flow is such that you build up some knowledge of your customer and some trust before accepting bank account info from them.

If you’re using Chargify Public Signup Pages to get your customers signed up and to collect payment info from them, here’s what you’ll do to get them paying via ACH:

  • Your customer signs up for your product using the product’s Public Signup Page. They will NOT be able to enter bank account info on that form. So you will need to have them sign up with a credit card OR sign up for a free product OR a paid product that has a free trial period. The point is to get them signed up without any payment info OR with a credit card, which they will later change to ACH.

ACH Payment Flow with API/Chargify Direct

If you’re using our API or Chargify Direct to get your customers signed up and to collect payment info from them, here’s what you’ll do to get them paying via ACH:

  1. Your customer signs up for your product and enters bank info right then, OR they sign up and then later give you bank info on a separate payment update form (if you do that). Either way, you can submit bank account info to Chargify when you create or update the customer record or payment profile record.

From that point forward, your customer will pay you via ACH. Remember that if there is ever a change to the amount or payment schedule, you will need to communicate with your customer to obtain their agreement to the new terms.

As mentioned earlier, this is clearly a faster and easier process for you and for your customer, but it comes with the caveat that it’s your responsibility as the merchant to know your customer and to trust them with bank account info.

Collecting Bank Account information

  • Send the Update Payment Profile form to your customer.
Email your customer directly with a link to a self-service page to update the payment method
  • Your customer receives the email/form, clicks “Change Payment Method” to switch the form to a bank account, and enters their bank account info here:
Self-service page: customers may enter bank account information

From that point forward, your customer will pay you via ACH. Remember that if there is any change to the amount or the payment schedule, you will need to communicate with your customer to obtain their agreement to the new terms. This is an ACH requirement.

Manually Adding Bank Information

If you have your subscriber’s bank information, you may add it manually by selecting “Add New Bank Account”

Add a new bank account to a customer entry

You’ll then have the option of entering all of the data required for the customer’s future ACH payments. First name, last name, bank name, routing number, and account number are required.

Enter complete bank account information for payment

Multiple Payment Profiles

Your customer can have credit cards AND bank account info on file. You or they will simply choose which profile is the active payment method being used for a specific subscription.

Example of multiple payment profiles in a subscription

Verifying Bank Accounts with Authorize.Net

  • Find your customer in Chargify. You can search by customer or by subscription.

  • Enable ACH for your customer. Here you can see two screenshots: one from the find-by-customer method, and one from the find-by-subscription method. They both work just fine; it’s really just your preference:

Enable an individual subscription to use ACH as a payment method
Enable the customer entry to allow ACH usage

Verifying Bank Accounts with Stripe

Since bank accounts in Stripe must be verified, bank accounts stored with Stripe cannot be edited. It will be necessary to create a new bank account for the customer in order to change any of the details.

Stripe has many rules surrounding ACH deposits and timing. In lieu of wanting to keep our merchants up to date, we do encourage that you familiarize yourself with Stripe’s current ACH documentation. Their documentation covers the timing of microdeposits in detail. We’ve linked to this document as a courtesy to our merchants. We strongly encourage you to read their ACH page in detail to become aware of limitations.

When you enable ACH in a site that is using Stripe, the bank account verification email will be automatically enabled. You can visit email settings to modify the email content (or turn it off.) The email will provide a link to a Chargify-hosted public page that the customer can visit to enter the amounts of the two small deposits they see appear in their checking account.

Modify the bank account verification email in Chargify

If you need to re-send the bank account verification email, this can be done by viewing the payment profiles, clicking the gear icon and choosing “Send Bank Account Verification Email”.

Send bank account verification email from the payment profile for a subscriber

Once a bank account has been created in Chargify and stored in Stripe’s vault, Stripe will initiate two small (less than $1.00) deposits into the the account. Before the bank account can be charged, the customer will need to enter the amounts to confirm that they do, in fact, own the bank account. This can be done on the public bank account verification page, or within the application by clicking the gear icon and then choosing “Verify Bank Account.”

Enter the two test amounts from your bank
Verify test amounts within Chargify
Enter test deposit amounts in Chargify

Until the bank account is verified, any charges that are attempted will fail. For this reason, you may want to add a new bank account directly to a customer, and then later make it the active payment profile for a subscription.

ACH Validation Failures in Stripe

As indicated above, Chargify recommends that merchants who use ACH with Stripe become familiar with Stripe’s rules surrounding ACH deposits and timing. We’ve chosen to outline a particular situation regarding a failed verification of an ACH account, and how to solve this issue for a subscription.

If microdeposits are entered incorrectly more than 10 times, you will not be able to verify the bank account. The ACH payment profile must be deleted. If you’ve reached this limit, the following error will be received:

Failed ACH verification for Stripe
If you encounter this error, please delete the payment method from the subscription and begin the verification process for the subscription.

Retries When ACH Payments Fail

ACH guidelines dictate tighter rules for retrying failed ACH payments (versus credit cards). So we created a separate dunning/retry system for ACH payments. You will set up a different retry schedule and emails for customers paying via ACH.

Note that the guidelines do not allow you to try more than 3 times, and after 3 failed attempts, we must forever stop trying to collect on that arrangement. Basically, if your customer cannot pay after 3 tries, you will no longer be able to try – you will need to go back to them and start over on that particular payment plan.

Dunning settings for ACH payment method subscribers