# How to Accept ACH Payments From Customers: Complete 2026 Guide

> How to accept ACH payments from customers - setup process, fees, processing time, security, and when ACH is the right choice vs cards for B2B and high-ticket sales.
- **Author**: Ayush Agarwal
- **Published**: 2026-06-03
- **Category**: Payment Processing, ACH
- **URL**: https://dodopayments.com/blogs/accept-ach-payments-from-customers

---

ACH (Automated Clearing House) payments are direct bank-to-bank transfers used widely for payroll, recurring bills, B2B invoices, and any high-ticket transaction where the percentage-based fees on credit cards would be expensive. For SaaS businesses, marketplaces, and B2B sellers, accepting ACH alongside credit cards typically reduces processing costs by 80-95% on the transactions that move to ACH.

This guide covers exactly how to start accepting ACH payments from your customers - the setup steps, the fees, the processing time, the verification options, and the cases where ACH is the right tool vs when it is not.

## What ACH Is and Why It Matters

ACH is a US-specific payment network operated by Nacha that moves funds between bank accounts. Direct deposit, recurring auto-debit, online bill pay, and most government payments run on ACH. For businesses, ACH is most relevant as an alternative to credit cards for taking payments.

For a deeper background, see our guide on [what ACH payment is](/blogs/what-is-ach-payment-saas-guide). For comparison with wire transfers and EFT, see [EFT vs ACH vs wire transfer](/blogs/eft-vs-ach-vs-wire-transfer).

The key reasons businesses add ACH:

- **Lower fees**: ACH transactions typically cost $0.25-$3.00 flat, vs 2.9% + 30c for cards. On a $5,000 invoice, that is $1 (ACH) vs $145 (card).
- **B2B preference**: Many businesses prefer paying invoices via ACH rather than card.
- **Lower chargeback risk**: ACH does not have credit-card-style chargebacks. Returns (NSF, account closed, unauthorized) do happen but the dispute window is shorter and rules are different.
- **Better for recurring high-ticket subscriptions**: Enterprise SaaS, B2B services, professional services.

The tradeoffs:

- **Slower settlement**: 1-5 business days vs near-instant authorization on cards.
- **US-only**: ACH does not work for international payments. For non-US transfers you need wire, SWIFT, SEPA (EU), Bacs (UK), etc.
- **Verification friction**: Customers must connect a bank account, which is more friction than typing a card number.
- **Returns can happen up to 60 days later** for unauthorized debits.

## Three Ways to Accept ACH Payments

### Option 1: Through a Payment Processor (Stripe, Square)

The simplest path. Most modern payment processors offer ACH as an additional payment method in the same checkout flow as cards.

**How it works**: When the customer reaches checkout, they choose ACH (sometimes labeled "Bank account" or "US bank account") and connect their bank via Plaid (instant verification) or by entering routing and account numbers manually (slower, micro-deposit verification).

**Fees**:
- **Stripe ACH**: 0.8% capped at $5.00 per transaction
- **Square ACH (where available)**: 1% per transaction

Note that not every modern payment platform offers ACH. Merchant of Record platforms like [Dodo Payments](https://dodopayments.com) currently focus on cards, digital wallets (Apple Pay, Google Pay), BNPL (Klarna, Afterpay), and 30+ local methods (UPI, Pix, iDEAL, Bancontact) across 220+ countries, but do not support ACH debit at this time. If ACH is a hard requirement, choose a US-focused processor like Stripe or GoCardless rather than an MoR.

**Pros**:
- Same checkout flow as cards
- Same dashboard for reconciliation
- Built-in verification (Plaid integration)
- Handles ACH returns automatically

**Cons**:
- Per-transaction fees higher than direct ACH origination
- You are still on the processor's ACH limits

**Best for**: Most online businesses that want to offer ACH as a payment option without operational complexity.

### Option 2: Through an ACH Originator (GoCardless, Modern Treasury, ACH.com)

Specialist ACH platforms that focus exclusively on bank-to-bank payments.

**How it works**: You integrate with the platform, customers authorize ACH debits via a mandate (a digital agreement allowing you to debit their account), and the platform handles the ACH origination through their banking partner.

**Fees**:
- **GoCardless**: 1% capped at $5 + 30c per transaction (in the US)
- **Modern Treasury**: Custom pricing, typically wholesale ACH rates passed through
- **ACH.com / Dwolla**: $0.25-$1.00 per transaction depending on volume

**Pros**:
- Lower per-transaction fees at high volumes
- Better suited for recurring ACH (mandate management built-in)
- More features specific to ACH (Nacha file generation, return handling, etc.)

**Cons**:
- Separate dashboard from your card processor
- More integration work
- Mandate management is a workflow you need to design

**Best for**: B2B businesses with predictable recurring ACH (membership billing, recurring services, payroll-style debits).

### Option 3: Direct ACH Origination Through a Bank

The lowest-fee option, but requires significant operational work.

**How it works**: Your business establishes an ACH origination relationship with a bank that supports it (typically requires a business banking relationship with good standing). You submit ACH files (NACHA format) directly to the bank, which processes them through the Federal Reserve.

**Fees**: $0.05-$0.25 per transaction, plus monthly origination fees ($50-$500/month depending on volume).

**Pros**:
- Lowest cost at scale
- Full control over timing and batching

**Cons**:
- Banks require significant volume and operational sophistication
- You handle NACHA file generation, returns, exceptions, reconciliation
- Compliance burden (Nacha rules, OFAC screening, etc.)
- 4-12 weeks setup

**Best for**: Established businesses with high ACH volume (>$10M/year) and engineering resources to manage the operational complexity. Not appropriate for most startups.

## Setup Walkthrough: ACH via Stripe (Most Common Path)

For most US-focused online businesses, adding ACH via Stripe is the fastest path. Here is the typical flow:

1. **Enable US Bank Account (ACH Direct Debit)** in your Stripe Dashboard under Settings > Payment methods.
2. **Update your Payment Element or Checkout integration** to include `us_bank_account` as an accepted payment method type:

```javascript
// Stripe Payment Element example
const elements = stripe.elements({
  clientSecret,
  appearance: { /* ... */ },
});

const paymentElement = elements.create("payment", {
  paymentMethodTypes: ["card", "us_bank_account"],
});
paymentElement.mount("#payment-element");
```

3. **Configure verification method**: Stripe offers two options:
   - **Instant Verification (Plaid)**: Customer logs into their bank via Plaid; you can charge immediately. Higher conversion but Plaid integration required.
   - **Micro-deposit Verification**: Stripe deposits two small amounts (under $1 each) into the customer's account over 1-2 business days. Customer confirms the amounts. Lower conversion but no Plaid required.

4. **Handle the PaymentIntent on the server**: Confirm the payment intent when the customer completes the verification flow.

5. **Set up webhooks** for `payment_intent.succeeded`, `payment_intent.payment_failed`, and `charge.refund.updated` events (see Stripe's PaymentIntent API documentation). ACH payments can fail asynchronously days after submission (returns), so webhook handling is critical.

6. **Add ACH return handling**: When an ACH payment is returned (NSF, account closed, etc.), the webhook will fire with a failure reason. Your dunning system should react appropriately.

Total setup time: 1-2 days for an experienced developer, including testing.

## ACH Processing Timeline

Understanding when funds actually settle is critical for cash flow planning.

| Step | Standard ACH | Same-Day ACH |
|---|---|---|
| Customer authorizes | Day 0 | Day 0 |
| ACH originated | Day 0 (cut-off times apply) | Day 0 (earlier cut-off) |
| Funds debited from customer | Day 1-2 | Day 0 |
| Funds available in your account | Day 2-3 (Stripe payouts 4-5) | Day 1 (Stripe payouts 2-3) |
| Return window closes | Day 60 (for unauthorized debits) | Day 60 |

Same-Day ACH has earlier cut-off times (typically 10:30 AM, 2:45 PM, and 4:45 PM ET) and slightly higher per-transaction fees from most processors. Most businesses use standard ACH for non-urgent payments and accept the 2-3 day delay.

```mermaid
sequenceDiagram
    participant Customer
    participant YourSite
    participant Stripe
    participant CustomerBank
    participant YourBank
    Customer->>YourSite: Selects ACH at checkout
    YourSite->>Stripe: Create PaymentIntent (us_bank_account)
    Stripe->>Customer: Plaid auth or micro-deposit flow
    Customer->>Stripe: Verifies bank account
    YourSite->>Stripe: Confirm PaymentIntent
    Stripe->>CustomerBank: ACH debit request (next batch)
    Note over CustomerBank: 1-2 business days
    CustomerBank->>Stripe: Funds settled
    Stripe->>YourBank: Payout (1-2 more days)
    Note over Customer,YourBank: Total: 3-5 business days end-to-end
```

## ACH Returns and How to Handle Them

ACH returns are the equivalent of failed payments for ACH. They happen for reasons like:

- **R01 - Insufficient Funds (NSF)**: The customer's account did not have enough money.
- **R02 - Account Closed**: The customer's account is closed.
- **R03 - No Account/Unable to Locate**: Wrong account number.
- **R07 - Authorization Revoked**: Customer revoked your authorization to debit.
- **R10 - Customer Advises Originator Not Authorized**: Customer claims they did not authorize the transaction (this is the closest equivalent to a chargeback).

Most returns happen within 2-3 business days. R10 returns (unauthorized) can come up to 60 days after the original transaction.

When a return happens:

1. The webhook fires (`payment_intent.payment_failed` or equivalent).
2. Your processor reverses the credit from your balance.
3. You may be charged a return fee ($2-$15 depending on processor).
4. Your dunning system should retry (for NSF) or contact the customer (for other reasons).
5. For R10 (unauthorized), you may need to provide evidence of authorization (signed mandate, click-through agreement, etc.).

For recurring ACH payments, building a robust [dunning management](/blogs/dunning-management) system is critical because failure rates are higher than cards and the resolution path is different.

## When to Use ACH vs Cards

| Use Case | Better Choice |
|---|---|
| B2B invoice payments ($500+) | ACH |
| Consumer subscription (under $100/month) | Card |
| High-ticket SaaS (Enterprise tier) | ACH |
| One-time consumer purchase | Card |
| Recurring service for businesses | ACH |
| International customers | Cards (ACH is US-only) |
| Same-day payment needed | Card |
| Customer prefers to pay from bank | ACH |

A common pattern: offer both. Cards as the default, ACH as a secondary option labeled "Pay by bank (lower fees)". Customers who care about the fees (B2B buyers, high-volume buyers) will choose ACH. Customers who do not care will use cards.

## ACH Security and Compliance

ACH has specific compliance requirements you need to follow:

- **Authorization**: You must have documented authorization (digital mandate, signed agreement, or recorded telephone authorization) before debiting a customer's account.
- **Notification**: For recurring debits, you must notify the customer of upcoming charges if the amount or schedule changes.
- **Nacha rules**: Govern how authorizations must be obtained, retained, and revoked.
- **OFAC screening**: You should screen customer bank accounts against the OFAC sanctions list (your processor typically handles this).

For most businesses using Stripe or GoCardless, these compliance pieces are handled by the processor. If you originate ACH directly through a bank, you are responsible for compliance.

## Cost Comparison: ACH vs Card

For a B2B SaaS charging $2,000/month per customer:

- **Card processing (Stripe)**: 2.9% + 30c = $58.30 per transaction
- **ACH (Stripe)**: 0.8% capped at $5 = $5.00 per transaction
- **Annual savings per customer**: ($58.30 - $5.00) x 12 = $639.60

For 100 customers, that is $63,960/year in saved processing fees by offering ACH.

The math gets better at higher price points. For an enterprise SaaS charging $20,000/month, ACH saves ~$575 per transaction vs cards, or $6,900/year per customer.

## Frequently Asked Questions

### How long does ACH take to clear?
Standard ACH takes 1-3 business days for the debit to settle from the customer's account. Funds appear in your processor's balance during that window, and then payout to your business bank account adds another 1-2 days. Same-Day ACH compresses this to same-day settlement for an additional fee.

### Is ACH safer than credit cards?
For the merchant, yes in some ways - ACH does not have credit-card-style chargebacks. But ACH does have returns (NSF, unauthorized) that can happen up to 60 days after the transaction. The risk profile is different but not strictly lower.

### How much does ACH processing cost?
Through a processor like Stripe, ACH costs 0.8% capped at $5 per transaction. Through a specialist platform like GoCardless, similar pricing. Through direct bank origination, $0.05-$0.25 per transaction plus monthly fees. For most online businesses, processor-based ACH is the right starting point.

### Can I accept ACH from international customers?
No. ACH is a US-only payment network. For international bank transfers you need SEPA (EU), Bacs (UK), wire transfers (global), or local bank transfer methods like iDEAL (Netherlands), Sofort (Germany), etc. Stripe and other modern processors support many of these.

### What is the difference between ACH and direct deposit?
Direct deposit is a specific use of ACH - employers using ACH to send payroll to employees' bank accounts. Direct deposit is a subset of ACH transactions, not a separate system.

### Can ACH payments be reversed?
Yes, in specific circumstances. For unauthorized debits, the customer can file a return up to 60 days after the transaction. For incorrect amounts, returns can happen within 5 business days. For NSF or account-closed reasons, returns happen automatically within 2-3 business days.

### Do I need to be a US business to accept ACH?
You need a US business bank account to receive ACH payouts. Some processors will work with non-US businesses that have a US entity, but the customer paying via ACH must have a US bank account regardless of where your business is incorporated.

## Conclusion

Adding ACH as a payment option is one of the highest-ROI changes a B2B or high-ticket business can make. The setup is straightforward with modern processors, the fee savings are significant on transactions above $200, and customer preference for ACH is strong in B2B contexts.

For most US-focused online businesses, enabling ACH via Stripe takes 1-2 days of engineering work and immediately reduces processing fees on a meaningful fraction of revenue. For US-based B2B SaaS in particular, not offering ACH is leaving money on the table.

For businesses selling digital products globally, ACH is less relevant because most customers are outside the US. A Merchant of Record like [Dodo Payments](https://dodopayments.com/pricing) covers the international payment-method mix (cards, wallets, BNPL, UPI, Pix, iDEAL, and more) and bundles in global tax compliance, even though ACH itself is not part of the supported method set.
---
- [More Payment Processing articles](https://dodopayments.com/blogs/category/payment-processing)
- [All articles](https://dodopayments.com/blogs)