Stripe ACH

Allowing Customer ACH Payments

Once you have your Chargify site set up for ACH payments, your customers can start entering ACH information to serve as the prime method of payment for their subscriptions. If you are a Stripe ACH user, all of your customers are pre-approved to use ACH. Keep in mind, this doesn’t negate the fact that bank accounts must be verified.

ACH Settings

From this point forward, we’ll assume that your Stripe account is ready for ACH processing. 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. You may have seen ACH/eCheck in our previous ACH documentation. It’s worth noting that eCheck is associated with Authorize.Net usage and not Stripe ACH usage.

Enable ACH in your settings for your site

Please be aware that enabling ACH will also enable two emails in your Chargify site:

  • ACH Authorization Agreement email
  • Bank Account Verification email

Both emails are triggered when bank account information is entered via a Self-Service Page.

ACH Usage in Chargify

Please note that the Billing Portal does not yet support ACH, regardless of how customers were signed up in Chargify.

You may have noticed that it’s not possible to add ACH information via a Public Signup Page. This lack of functionality is on purpose to protect you as the merchant. Each subscriber must be verified, using Stripe’s microdeposit system, before they can begin using their bank account to pay for subscriptions.

So how do you get ACH information into your Chargify account?

After a subscriber signs up, they can enter their ACH information into Chargify. This will begin the process to verify their bank account to draft funds for subscription costs.

Public Signup Pages

  1. A subscriber signs up via a Public Signup Page using a credit card to cover any costs if needed.
  2. They update their payment method to ACH via a Self-Service Page
  3. They will receive two microdeposits that must be verified
  4. Once the verification step is complete, the ACH method will be active in Chargify

Chargify API / Chargify Direct

Method 1 1. A subscriber signs up via API using a credit card if needed 2. They update their payment method via a card update action (API) or Self-Service Page 3. Soon they will receive two microdeposits that must be verified 4. Once the verification step is complete, the ACH method will be active in Chargify

Method 2 1. A subscriber signs up via API using ACH information in the request 2. A billing date in the future must be provided via next_billing_at 3. Soon they will receive two microdeposits that must be verified 4. Once the verification step is complete, the ACH method will be active in Chargify

The following JSON is a representation of what will constitute a valid ACH-based signup that is set to start in the future.

{
    "subscription": {
        "product_handle": "bronze-product",
        "next_billing_at": "2019-02-02",
        "customer_attributes": {
            "first_name": "John",
            "last_name": "Doe",
            "email": "john.doe@example.com",
            "reference": "123",
            "organization": "Acme Widgets"
        },
        "bank_account_attributes": {
            "bank_name": "Wells Fargo",
            "bank_routing_number": "110000000",
            "bank_account_number": "000123456789",
            "bank_account_type": "checking",
            "bank_account_holder_type": "business",
            "payment_type": "bank_account"
        }
    }
}

If ACH information sent via API for a signup without a future billing date, the following error will be received:

{
  "errors": [
    "Bank Account must be verified before a Subscription with an initial charge can be created."
  ]
}

Entering ACH Information

If you have your subscriber’s bank information, you may add it manually by selecting “Add New Bank Account”. Please keep in mind, this information must be verified – which we’ll get into shortly.

Add a new bank account to a customer entry

You’ll then enter all of the data required for the customer’s future ACH payments. The following fields are required:

  • First name
  • Last name
  • Bank name
  • Routing number
  • Account number
Enter complete bank account information for payment

Collecting ACH Information via Self-Service Page

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

Please keep in mind, this information must be verified – which we’ll get into shortly.

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.