Skip to main content
ACH Direct Debit lets customers in the United States pay directly from their bank account instead of using a card. It runs on the Automated Clearing House network and is offered on USD checkouts for one-time payments.

Why Offer ACH Direct Debit?

Lower Processing Cost

Bank debits typically cost less to process than card payments, especially on high-value orders.

No Card Required

Reach US customers who prefer paying from a bank account or who don’t want to use a card for large purchases.

Higher Value Orders

The cost advantage over cards grows with order value, making ACH well suited to large one-time purchases.

Overview

ACH Direct Debit is not instant. A payment takes 4 business days to confirm, so do not treat authorization as settlement — fulfill only once the payment reaches a succeeded state.

How It Works

Customer Experience

  1. Customer selects ACH Direct Debit at checkout
  2. Customer authorizes the debit against their US bank account
  3. The payment is submitted to the ACH network and enters a processing state
  4. Clearing completes over the following business days
  5. The payment moves to a succeeded state, or fails if the bank returns it
Because clearing is asynchronous, rely on webhooks to learn the final outcome rather than the checkout redirect. A successful redirect only means the customer authorized the debit.The payment emits payment.processing once the debit is submitted, then payment.succeeded or payment.failed when clearing completes. Only payment.succeeded is safe to fulfill on.

Availability

ACH Direct Debit appears at checkout when all of the following are true:
  • Billing currency is USD
  • Billing country is US
  • The transaction is a one-time payment
ACH Direct Debit is not available for subscriptions. Its multi-day clearing window makes it unsuitable for recurring billing cycles. For recurring payments, use cards or another method that supports subscriptions — see the Payment Methods overview.

Configuration

ACH Direct Debit requires a USD billing currency and a US billing address. If you quote your prices in another currency, enable Adaptive Currency so US customers are billed in USD and ACH becomes available.

API Method Type

Refunds and Disputes

Refunds and disputes for ACH payments use the same APIs and dashboard flows as every other payment method — there is no ACH-specific handling to implement.
Because ACH payments can be returned by the customer’s bank after they appear to have gone through, avoid issuing refunds until the original payment has reached a succeeded state.

Testing

1

Enable test mode

Use your Dodo Payments test API keys.
2

Set currency and billing address

Set the billing currency to USD and the billing address country to US.
3

Include `ach` in allowed methods

Pass ach in allowed_payment_method_types, or omit the field entirely to show every eligible method.
4

Enter the test bank details

Enter one of the test routing and account number pairs below, then confirm your webhook handler receives the final payment status.

Test Bank Accounts

Customers enter their account and routing number directly at checkout. In test mode, use the routing number 110000000 with any of the account numbers below to force a specific outcome.
Most test payments reach a final status far faster than the live clearing window, so you don’t need to wait days to verify your integration. The exception is 000000000009, which is designed to stay in processing.

Best Practices

ACH authorization is not payment. Wait for the payment to reach a succeeded state before granting access or shipping — a debit can still be returned by the customer’s bank.
Tell customers that bank payments don’t clear instantly. This reduces support tickets asking why an order is still pending.
Always include credit and debit alongside ach so customers who need instant access to your product can choose a faster method.
The cost advantage of ACH grows with order value, so it is most useful on large one-time purchases rather than small ones.

Troubleshooting

Check:
  1. Billing currency set to USD?
  2. Customer billing country is US?
  3. ach included in allowed_payment_method_types?
  4. Is this a one-time payment? ACH is not offered on subscriptions.
Solution: Remove allowed_payment_method_types temporarily to see all eligible methods, then verify the billing currency and address country in your API request.
Cause: ACH Direct Debit is only offered for one-time payments.Solution: Use cards or another subscription-capable method for recurring billing.
Cause: This is expected. ACH payments remain in a processing state for the full clearing window, far longer than card payments.Solution: Wait for the final webhook. Do not retry the payment — retrying can debit the customer twice.
Cause: The customer’s bank returned the debit — most commonly for insufficient funds or a closed account.Solution: Treat the payment as failed and ask the customer to retry with another payment method. Always gate fulfillment on the succeeded state to avoid this.

Payment Methods Overview

See all supported payment methods.

Adaptive Currency

Currency support and automatic conversion.

Checkout Guide

Complete checkout implementation guide.

Webhooks

Handle delayed payment confirmations asynchronously.
Last modified on August 13, 2026