Overview
Atlas supports ACH (Automated Clearing House) payments for US bank accounts. ACH is ideal for:- Recurring billing and subscriptions
- Large transactions where card fees are prohibitive
- B2B payments
- Payouts and disbursements
Payment Flow
- Collect bank details - Use the Bank Account Element or API
- Verify the account - Instant verification or microdeposits
- Create a mandate - Customer authorizes debits
- Process payments - Debit the account
Bank Account Element
API Reference
Create Bank Account
Verify with Microdeposits
For accounts that can’t be instantly verified:Create ACH Mandate
Authorize the customer to allow debits:Process ACH Payment
ACH Timeline
| Stage | Timing |
|---|---|
| Initiated | Immediate |
| Submitted to network | Same business day (before 4pm ET) |
| Pending | 1-2 business days |
| Succeeded/Failed | 3-5 business days |
Test Bank Accounts
| Routing | Account | Result |
|---|---|---|
110000000 | 000123456789 | Succeeds |
110000000 | 000111111116 | Fails verification |
110000000 | 000111111113 | Account closed |
Webhooks
Listen for ACH events:bank_transfer.initiatedbank_transfer.pendingbank_transfer.succeededbank_transfer.failedbank_transfer.returned
Return Codes
If an ACH transfer fails, check thereturn_code:
| Code | Description |
|---|---|
| R01 | Insufficient funds |
| R02 | Account closed |
| R03 | No account/unable to locate |
| R04 | Invalid account number |
| R07 | Authorization revoked |
| R08 | Payment stopped |
| R10 | Customer advises not authorized |
| R29 | Corporate customer advises not authorized |