ACH payments explained

What is an ACH payment?

ACH payments are a method of transferring money from one bank account to another directly. This means that the transaction is being done without the use of credit cards, cash, checks, or wire transfers. They can be used for one-time payments but they are more commonly used for recurring transactions. For instance, if you have automatic payments, deducted from your bank account periodically for mortgage or gym membership, then they are ACH payments.

If you have recurring payments for your mortgage or gym membership deducted from your bank account periodically, then you are using ACH payments as a consumer. On the other hand, if you have automated payment set up for your employees weekly or monthly, then you are using ACH payments as a business owner.

What is ACH debit?

ACH Debit is a transfer type where funds are pulled from a bank account. In practice, this happens when a customer (payer) gives permission to a merchant (payee) to take payment from their account in order to meet a recurring payment agreement, such as paying for monthly utility bills.

What is ACH credit?

ACH Credit is another transfer type where funds are pushed into a bank account. This occurs when a customer (payer) sends a given amount of money to a merchant (payee) to purchase some goods. Another example would be paying monthly bills manually.

The way ACH payments work

ACH customer payments have a 4-step process.

  1. Customer authorization: A customer authorizes recurring payments from their bank account on a website.
  2. Transaction initiated: The business forwards payment details to its bank or ACH provider, known as the Originating Depository Financial Institution (ODFI).
  3. Payment requested: The ODFI’s request for payment is routed to the consumer’s bank, known as the Receiving Depository Financial Institution (RDFI).
  4. Payment processed: Before the RDFI processes the payment, it checks if the given account has sufficient funds then processes it.

Stripe ACH payments

Stripe supports ACH payments, however, only for businesses based in the United States. In Stripe, accepting ACH payments works almost the same way as accepting credit card payments, by providing a verified bank account as the source for a charge request.

However, accepting bank accounts requires a slightly different way than accepting credit cards:

  • Bank accounts have to be verified
  • Bank accounts must be authorized for your use by the customer

If both steps are completed, your customer can choose ACH from the list of payment methods on your website, and can use it for recurring charges, or even for Connect applications. The two most important differences between using bank accounts and credit cards are:

  • ACH payments take up to 5 business days to receive acknowledgment of their success or failure. For this reason, ACH payments take up to 7 business days to show up in your available Stripe balance.
  • You can only accept money in USD and only from US bank accounts. Moreover, your account must have a US/USD bank account to accept ACH payments.

Collect and verify bank accounts

Before you can create an ACH charge, you must first obtain and verify your customer’s bank account and routing number. To properly identify the bank account, you also need to collect the information on the account holder whether it is owned by a company or an individual, and you will need the business name or the name of the person that owns the account.

Stripe provides two methods for this purpose: instant collection and verification using Plaid or collection via Stripe.js with delayed-verification using microdeposits. Depending on the size of your business, you may incur additional costs when using Plaid. As charging a bank account requires verification of the account and customer authorization as well, you might want to consider storing the bank account on a “Customer” object in Stripe.

ACH refunds

ACH charges can be refunded via the refund endpoint of the Stripe API, however, the timing and risks associated with ACH refunds differ from card refunds. If a refund for an ACH charge fails, you will receive a “charge.refund.updated” notification which means that Stripe could not process the refund. In such a case, you will need to return the funds to your customer outside of Stripe, although this is very rare. It usually only occurs when an account is frozen between the original charge and the refund request.

Stripe ACH fees

For ACH Direct Debit payment, Stripe charges 0.8% capped at $5.00. They also charge $4.00 for failed ACH Direct Debit payments and $15.00 for disputed ACH Direct Debit payments.

Join our VIP list

Stay on top of the latest news about WP Full Stripe

Your email address added to our mailing list. Thank you.
We couldn’t add you to our mailing list. Please try again.
Enter a valid e-mail address.

Ready to add payment to your site?