How to Read a NACHA File (ACH File Format Explained)
Jul 20, 2026
Convert your bank statement to Excel now
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
Last updated July 2026.
A NACHA file is a fixed-width ASCII text file where every line is exactly 94 characters, and you read it by the first digit of each line, which is the record type code. A 1 starts the file, a 5 opens a batch, each 6 is one payment, a 7 carries extra detail, an 8 closes the batch with totals, and a 9 closes the file. Once you know that structure, the wall of numbers turns into a readable ledger of ACH payments.
The file is built for bank software, not people, so it has no column headers and no spaces between fields. Every piece of data sits at a fixed character position on its line. That is exactly why it looks like gibberish in a text editor and why importing it correctly means slicing each line by position rather than by comma.
What is a NACHA file?
A NACHA file, also called an ACH file, is the standard format US banks use to move batches of ACH payments such as payroll, vendor payments, and direct debits. Nacha is the organization that governs the ACH network and publishes the format, so the two names refer to the same thing. The file groups individual payments into batches, and each batch and the file as a whole carry control totals the bank uses to confirm nothing was added, dropped, or altered in transit.
How is a NACHA file structured?
A NACHA file is a strict hierarchy. One File Header opens it, then one or more batches, and one File Control closes it. Inside each batch, a Batch Header opens the group, one Entry Detail record represents each payment (optionally followed by an Addenda record), and a Batch Control closes the group with its totals. Read from the top, the record type codes always run 1, then 5, 6, 6, 6, then 8, and repeat 5 through 8 for the next batch, ending with a single 9. Some files pad the end with 9-filled lines so the total line count is a multiple of ten, which you can ignore.
| First digit | Record type | What it holds |
|---|---|---|
| 1 | File Header | Sending and receiving bank routing numbers, file creation date and time, file ID. One per file. |
| 5 | Batch Header | Originating company name and ID, the SEC code (PPD, CCD, WEB), an entry description like PAYROLL, and the effective date. One per batch. |
| 6 | Entry Detail | One actual payment: transaction code, receiver routing and account, amount, receiver name, and a trace number. |
| 7 | Addenda | Optional extra information tied to the entry above it, such as a remittance memo or CCD payment detail. |
| 8 | Batch Control | Entry count, total debit and credit amounts, and a routing-number hash total for the batch. |
| 9 | File Control | Batch count, total entry count, and grand total debit and credit amounts for the whole file. |
How do I read an Entry Detail (6) record?
The Entry Detail record is where the money lives, and every field sits at a fixed position on the 94-character line. Read it left to right by character count rather than looking for delimiters. Two fields trip people up: the amount is stored in cents with no decimal point, so 0000012500 means $125.00, and the routing and account numbers are text, so leading zeros matter and must never be dropped by a spreadsheet.
| Positions | Field | Notes |
|---|---|---|
| 1 | Record type | Always 6. |
| 2 to 3 | Transaction code | Whether it is a checking or savings credit or debit (see below). |
| 4 to 11 | Receiving routing number | First 8 digits of the receiver's bank routing number. |
| 12 | Check digit | Ninth digit of the routing number. |
| 13 to 29 | Account number | Receiver's account, left-justified. Keep as text. |
| 30 to 39 | Amount | 10 digits in cents, no decimal. 0000012500 is $125.00. |
| 40 to 54 | Individual ID | Employee or customer ID assigned by the originator. |
| 55 to 76 | Individual name | Receiver name, 22 characters. |
| 79 | Addenda indicator | 1 if a 7 record follows, otherwise 0. |
| 80 to 94 | Trace number | Unique 15-digit ID used to track and return the entry. |
What do the transaction codes mean?
The two-digit transaction code in positions 2 to 3 tells you the account type and the direction of money. A credit pushes money into the receiver's account (payroll, a vendor payment), and a debit pulls money out (a membership draft, a loan payment). The four you see most often are 22 for a checking credit, 27 for a checking debit, 32 for a savings credit, and 37 for a savings debit. Codes ending in 3 or 8, such as 23 or 28, are prenotes and zero-dollar tests rather than live money.
How do I open a NACHA file in Excel?
You cannot simply open a NACHA file as a spreadsheet, because it has no delimiters. The reliable path is to split each line by character position into columns, one column set per record type, then keep only the entry detail fields you need. You can do that by hand with Excel's fixed-width import or Power Query, but it is fiddly and easy to break on the amount and routing fields. The faster route is the NACHA file to Excel converter, which parses the record types for you and returns one clean row per payment with the amount already in dollars and the account numbers preserved as text. If you are going the other direction and need to build a file to send, see how to create a NACHA file from Excel. The step-by-step manual method is covered in how to open a NACHA file in Excel or convert it to CSV.
Two related lookups round out reading a file: the SEC code in the batch header is decoded in the ACH SEC codes list, and if you are handling returns, the reason is in the ACH return codes list. If you originate the payments in the first place, most teams generate these files out of accounts payable automation rather than keying them by hand, and it is worth validating a NACHA file before sending it to the bank.
Frequently asked questions
What are the record types in a NACHA file?
There are six: File Header (1), Batch Header (5), Entry Detail (6), Addenda (7), Batch Control (8), and File Control (9). The first digit of every 94-character line is its record type, so you can read the whole structure by scanning that column: 1 opens the file, 5 and 8 wrap each batch, 6 and 7 carry the payments, and 9 closes the file. The type 7 line is where remittance travels, explained in what a NACHA addenda record is.
Can I open a NACHA file in Excel?
Not directly, because a NACHA file has no delimiters. You have to split each 94-character line by fixed character positions into columns, which you can do with Excel's fixed-width import or Power Query, or with a converter that parses the record types and returns one row per payment. A converter also keeps amounts in dollars and preserves leading zeros on routing and account numbers.
What is the difference between a NACHA file and an ACH file?
There is no difference. NACHA file and ACH file are two names for the same thing: the fixed-width text file US banks use to move batches of ACH payments. It is called a NACHA file because Nacha, the body that governs the ACH network, publishes the format the file follows.
How long is each line in a NACHA file?
Exactly 94 characters, with no exceptions. Every record, from the file header to the padding lines at the end, is 94 characters wide, and fields sit at fixed positions within that width. That fixed length is what lets software read each field by character position rather than by looking for commas or tabs.
Ready to convert your bank statement?
Upload a PDF and get clean Excel or CSV in seconds. Works with statements from any bank.
Convert to Excel nowFree to try, no credit card required