NACHA/ACH Parser
Parse NACHA/ACH payment files
ACH (Automated Clearing House) is the US electronic payment network processing direct deposits, bill payments, and business transfers — over 30 billion transactions per year.
What is ACH?
The Automated Clearing House (ACH) is the electronic funds transfer network that handles the majority of US domestic payments. Governed by NACHA (National Automated Clearing House Association), ACH processes direct deposits, bill payments, business-to-business transfers, government benefits, tax refunds, and peer-to-peer payments in standardized batch files.
Unlike card networks that process individual transactions in real time, ACH operates as a batch processing system. Originating banks collect transactions throughout the day and submit them as ACH files to one of two ACH operators — the Federal Reserve (FedACH) or The Clearing House (EPN) — which then distribute them to receiving banks for posting to individual accounts.
ACH processes over 30 billion transactions per year, making it the backbone of the American payment system. From your paycheck direct deposit to your mortgage auto-pay, ACH touches nearly every aspect of American financial life.
File Structure
An ACH file follows a strict hierarchical structure with six record types, each identified by a single-digit record type code in position 1.
Each ACH file is exactly 94 characters per line (no delimiters). The record types nest as follows: a File Header (1) wraps one or more Batches, each Batch starts with a Batch Header (5) and ends with a Batch Control (8), and each Batch contains one or more Entry Detail records (6) with optional Addenda records (7). The file ends with a File Control record (9).
SEC Codes
The Standard Entry Class (SEC) code in the Batch Header determines the type of ACH transaction and its authorization requirements:
| SEC Code | Name | Description | Common Use |
|---|---|---|---|
| PPD | Prearranged Payment and Deposit | Consumer transactions with written authorization | Payroll direct deposit, recurring bill pay |
| CCD | Corporate Credit or Debit | Business-to-business transactions | Vendor payments, cash concentration |
| WEB | Internet-Initiated Entry | Transactions authorized via the internet | Online bill pay, e-commerce |
| TEL | Telephone-Initiated Entry | Transactions authorized by phone | Phone orders, collections calls |
| RCK | Re-presented Check Entry | Electronic re-presentment of returned checks | Bounced check recovery |
ACH vs Wire vs Check
Understanding when to use ACH versus alternatives is important for cost and timing decisions:
| Feature | ACH | Fedwire | Paper Check |
|---|---|---|---|
| Speed | Same-day or next-day | Real-time (minutes) | 2-5 business days |
| Cost | $0.20 - $1.50 | $15 - $30 | $1 - $5 (printing/mailing) |
| Maximum amount | $1M (same-day), unlimited (standard) | Unlimited | Unlimited |
| Revocability | Revocable within limits | Irrevocable | Stoppable before clearing |
| Best for | Recurring, high volume, lower value | Urgent, high value, time-critical | When electronic is not an option |
Common Use Cases
- Payroll direct deposit: PPD credits are the standard for salary payments in the US — used by 93% of workers
- Bill payments: Utilities, insurance, and subscription services use PPD debits for recurring auto-pay
- Business-to-business payments: CCD entries handle vendor payments, intercompany transfers, and cash concentration
- Government disbursements: Social Security, tax refunds, and stimulus payments use ACH for mass distribution
- E-commerce refunds: WEB credits return funds to customers’ bank accounts after online purchase returns
- Account-to-account transfers: Apps like Venmo and Zelle use ACH for the underlying fund movement between banks
Try These Examples
A complete ACH file with File Header (record type 1), Batch Header (type 5, SEC code PPD for payroll direct deposit), Entry Detail (type 6, transaction code 22 for checking credit, routing number 091000019, account 1122334455, amount $500.00), Batch Control (type 8 with hash total), and File Control (type 9). Company ACME CORP is depositing payroll to John Doe.
101 09100001901234567802403151200A094101ORIGINATOR BANK RECEIVER BANK
5200ACME CORP 0123456780PPDPAYROLL 240315240315 1091000010000001
62209100001911223344556 0000050000123456789 JOHN DOE 0091000010000001
820000000100091000010000000000000000000500000123456780 091000010000001
9000001000001000000010009100001000000000000000000050000 The routing number 091000018 has an invalid check digit. The 9th digit of an ABA routing number is a weighted checksum: (3*0+7*9+1*1+3*0+7*0+1*0+3*0+7*1) mod 10 should equal 9, not 8. ACH operators reject entries with invalid routing numbers.
6222091000018112233445560000050000123456789 JOHN DOE 0091000010000001