Prompt
How do I accept ACH and card payments through one payment API?
Latest observation
Oct 15, 2026
OpenAI APIWeb search: off
To accept both ACH and card payments through one API, you typically use a payment processor / payment platform that supports multiple payment methods under a single integration.
Common approach
1) Choose a provider that supports both
Look for a platform that offers:
- Cards: Visa, Mastercard, Amex, etc.
- ACH / bank debits: via bank account linking or routing/account number entry
- A single API for creating customers, payment methods, and charges
Examples of providers that often support both:
- Stripe
- Adyen
- Checkout.com
- Dwolla (ACH-focused; cards usually via another provider)
- Braintree (cards, ACH in some setups)
2) Use a unified payment object
Most providers let you represent both card and ACH as a payment method attached to a customer.
Typical flow:
- Collect payment details in your UI
- Tokenize/payment-method-create with the provider
- Store a payment method ID, not raw bank/card data
- Charge or debit using that ID
3) Let the customer choose payment type
Your checkout can offer:
- Pay by card
- Pay by bank account (ACH)
The API call changes only by payment method type, not your overall integration.
4) Handle ACH differently from cards
ACH is usually not instant:
- Cards: authorization/settlement can be immediate
- ACH: often takes 2–5 business days to clear
- You may need:
- Webhooks for success/failure
- Pending states
- NACHA-compliant authorization language
- Return handling for failed ACH debits
5) Example API pattern
A common pattern is:
- Create customer
- Attach payment method:
cardus_bank_account/ach_debit
- Create payment intent / charge / debit with the chosen payment method
Conceptually:
POST /payment_methods
{
"type": "card"
}
or
POST /payment_methods
{
"type": "us_bank_account"
}
Then:
POST /payments
{
"customer_id": "cus_123",
"payment_method_id": "pm_456",
"amount": 10000,
"currency": "usd"
}
6) Important implementation details
- Use hosted fields / SDKs so you don’t handle raw sensitive data directly
- Make sure your provider supports:
- PCI compliance for cards
- ACH authorization and verification
- Webhooks for asynchronous settlement and failures
- If you need recurring payments, confirm the provider supports:
- Saved card mandates
- ACH recurring debit permissions
Best practical answer
If you want the simplest “one API for both,” Stripe is a common choice because it supports both card and ACH under one payments API.
If you want, I can show you:
- a Stripe example for card + ACH in the same integration, or
- a provider comparison for the best option for your use case.