Why Offer ACH Direct Debit?
Lower Processing Cost
ACH costs a flat 1.5% per payment, capped at $15, instead of the card fee. See pricing.
No Card Required
Reach US customers who prefer to pay from a bank account, or who don’t want to use a card for a large purchase.
Higher Value Orders
Because the fee is capped at $15, the saving over a card fee grows with order value. ACH suits large one-time purchases.
Overview
How It Works
Customer Experience
- The customer selects ACH Direct Debit at checkout.
- The customer enters the account holder name, routing number, account number, account type (checking or savings), and email address. Checkout checks that the routing number is valid.
- The customer submits the form, which authorizes the debit from their US bank account under a mandate.
- The payment is submitted to the ACH network and enters the processing state. Checkout completes without waiting for clearing.
- Clearing completes over the following business days.
- The payment moves to the succeeded state, or fails if the bank returns it.
Because clearing is asynchronous, use webhooks to learn the final outcome instead of the checkout redirect. A redirect after checkout 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. Fulfill only on payment.succeeded.Availability
ACH Direct Debit appears at checkout when all of the following are true:- The billing currency is
USD. - The billing country is
US. - The transaction is a one-time payment.
ACH Direct Debit is not available for subscriptions. 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 price 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. You don’t need ACH-specific handling.Testing
1
Enable test mode
Turn off the Live Mode switch in the dashboard sidebar, and use API keys created in test mode.
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 to show every eligible method.4
Enter the test bank details
Enter one of the test routing and account number pairs below. Then confirm that your webhook handler receives the final payment status.
Test Bank Accounts
The customer types the account and routing numbers into the checkout form. In test mode, use the routing number110000000 with one of these account numbers to force an outcome:
Test payments reach a final status much faster than live payments, so you don’t need to wait days to verify your integration. The exception is
000000000009, which stays in processing.Best Practices
Set customer expectations at checkout
Set customer expectations at checkout
Tell customers that bank payments don’t clear immediately. This reduces support tickets that ask why an order is still pending.
Provide card fallbacks
Provide card fallbacks
Include
credit and debit alongside ach, so customers who need immediate access to your product can choose a faster method.Use ACH for high-value one-time purchases
Use ACH for high-value one-time purchases
The ACH fee is capped at $15, so the saving is largest on large one-time purchases.
Troubleshooting
ACH not appearing at checkout
ACH not appearing at checkout
Check:
- Is the billing currency
USD? - Is the customer’s billing country
US? - Is
achincluded inallowed_payment_method_types? - Is this a one-time payment? ACH is not offered on subscriptions.
- Is the amount at least $0.50?
allowed_payment_method_types temporarily to see all eligible methods, then check the billing currency and address country in your API request.ACH not appearing on a subscription checkout
ACH not appearing on a subscription checkout
Cause: ACH Direct Debit is offered for one-time payments only.Solution: Use cards or another subscription-capable method for recurring billing.
Payment stuck in processing
Payment stuck in processing
Cause: This is expected. An ACH payment stays in the processing state for the whole clearing window, which is much longer than for a card payment.Solution: Wait for the final webhook. Don’t retry the payment, because a retry can debit the customer twice.
Payment failed after initially succeeding at checkout
Payment failed after initially succeeding at checkout
Cause: Checkout completed, but the customer’s bank returned the debit during clearing, most often for insufficient funds or a closed account. The payment emits
payment.failed.Solution: Treat the payment as failed, and ask the customer to pay with another method. Fulfill only on the succeeded state to avoid this.Related Pages
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.