A NACHA ACH file is 94 characters per line with no delimiters, amounts that hide their decimal point, and six record layouts stacked in one file. Upload it and BankXLSX writes one row per entry with the amount fixed, the batch details carried down, and routing and trace numbers kept as text. Start free, no credit card.
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
A NACHA file was built for bank software to read, not people. Excel will open it, but almost everything that makes the file useful is lost or quietly corrupted on the way in. These are the six problems that bite treasury and AP teams most often.
Every line is exactly 94 characters of fixed-width text with no commas or tabs, so Excel drops the whole line into one cell unless you define every column break by hand.
Amounts are stored as ten zero-filled digits with two implied decimals, so $123.45 sits in the file as 0000012345 and Excel imports it as 12345, off by a factor of 100.
File header, batch header, entry detail, addenda, batch control, and file control records all share the same 94 columns but mean completely different things, so one import scheme cannot be right for all of them.
Routing, account, and trace numbers are zero-padded numeric fields. Excel strips the leading zeros and flips long account numbers into scientific notation, which corrupts them permanently.
The company name, SEC code, entry description, and effective entry date live on the batch header, not on the entries, so a flat import leaves every transaction with no company or date attached.
ACH files use a blocking factor of 10 and are padded with lines of 9s to reach a multiple of ten, so you get meaningless rows mixed in with real payment data.
Upload the ACH file and the converter reads each record type on its own terms, then flattens the whole thing into one table you can sort, filter, and reconcile immediately.
Each type 6 entry detail record becomes a single row with transaction code, routing number, account, amount, individual name, and trace number in their own columns.
The implied two decimals are restored so 0000012345 reads as 123.45 and your totals tie to the batch and file control records instead of being 100 times too big.
Routing, account, and trace numbers are written as text so leading zeros survive and nothing turns into scientific notation.
Company name, company ID, SEC code, entry description, and effective entry date are joined from the batch header onto every entry underneath it.
Download a real .xlsx workbook for analysis or a clean CSV you can load into QuickBooks, NetSuite, Sage, or a treasury system.
ACH files carry live bank account numbers. Uploads use 256-bit encryption and you can delete your files whenever you want.
Nothing to install and no credit card to start.
ACH files arrive as plain text with extensions like .ach, .txt, or no extension at all. If yours is not .txt, rename the copy so the uploader accepts it.
Tip: Renaming does not change the data.
Drag the file into the box above. The converter reads the 1, 5, 6, 7, 8, and 9 records and skips the 9-filler padding lines.
Tip: Multi-batch files are fine.
Save as XLSX or CSV, then check your total debits and credits against the batch control and file control records.
Tip: Matching totals prove nothing was dropped.
ACH files move payroll, vendor payments, and collections, so the people opening them are usually verifying money before it leaves or researching an entry after it did. Nacha reported 35.2 billion ACH Network payments worth $93 trillion in 2025, which is a lot of files that eventually need checking.
Prove an originated file matches what the bank received, and research exceptions without squinting at fixed-width text.
Confirm a CCD vendor payment file went out with the right amounts and accounts, and keep an audit-ready payment register.
Review a PPD payroll file before it is released, or trace a single direct deposit that did not land.
Validate the ACH output your client's ERP generates against the bank spec during a go-live, line by line.
Sample-test a payment population, trace individual entries, and evidence completeness against the control totals.
Troubleshoot a rejected corporate file and show the customer exactly which field failed.
A NACHA file is the fixed-width text file US banks and businesses use to move ACH payments: payroll direct deposits, vendor payments, insurance premiums, and collections. Nacha's own developer guide puts it plainly, an ACH file is a fixed-width ASCII file with each line exactly 94 characters long. Payroll systems and ERPs generate one, the originating bank passes it to an ACH Operator, and the receiving bank posts the entries. People call it an ACH file and a NACHA file interchangeably. They mean the same thing, since NACHA is the rule-making body whose format the file follows.
Every ACH file is a nest of records, each starting with a one digit code that tells software what the line is. A file holds one or more batches, each batch holds its entries, and every header record has a matching control record that closes it. Here is what each code marks.
| Record code | Record name | What it carries |
|---|---|---|
| 1 | File Header | Immediate destination and origin, file creation date and time, record size, blocking factor. |
| 5 | Batch Header | Service class, company name and ID, SEC code, entry description, effective entry date. |
| 6 | Entry Detail | One payment: transaction code, routing, account, amount, name, trace number. |
| 7 | Addenda | Up to 80 characters of payment related remittance information for the entry above. |
| 8 | Batch Control | Entry count, entry hash, total debits and credits for that batch. |
| 9 | File Control | Batch count, block count, entry count, and the file level debit and credit totals. |
Two structural rules explain most of the confusion. Alphanumeric fields are left justified and space padded, while numeric fields are unsigned, right justified, and zero filled. And ACH files use a blocking factor of 10, so the file is padded with lines of 9s until the line count is a multiple of ten.
The type 6 record is the one you actually want in a spreadsheet, because it is the payment. Per published bank ACH specifications, the standard CCD and PPD entry detail layout divides those 94 characters like this.
| Positions | Field | Notes |
|---|---|---|
| 01 | Record Type Code | Always 6 on an entry detail record. |
| 02-03 | Transaction Code | Says checking or savings, credit or debit. |
| 04-11 | Receiving DFI Identification | First eight digits of the receiving bank routing number. |
| 12 | Check Digit | Ninth routing digit, so 04 to 12 is the full routing number. |
| 13-29 | DFI Account Number | 17 characters, left justified and space padded. |
| 30-39 | Amount | Ten digits, zero filled, with two implied decimals. |
| 40-54 | Individual Identification Number | Employee or customer reference set by the originator. |
| 55-76 | Individual Name | 22 characters. CTX files use this space differently. |
| 77-78 | Discretionary Data | Optional, defined by the originator. |
| 79 | Addenda Record Indicator | 1 means a type 7 addenda follows this entry. |
| 80-94 | Trace Number | Unique and ascending within the batch. |
One warning worth repeating. A CTX entry uses positions 55 to 76 for the addenda count and the receiving company name rather than an individual name, so a converter that assumes every file is PPD will mislabel a corporate trade exchange file.
The two digit transaction code at positions 02 and 03 is what tells you whether money moved in or out and from which kind of account. These are the ones that show up in most corporate files.
| Code | Meaning | Typical use |
|---|---|---|
| 22 | Checking credit | Payroll direct deposit, vendor payment out. |
| 23 | Prenote of checking credit | Zero dollar account validation. |
| 27 | Checking debit | Collections, autopay pulls. |
| 28 | Prenote of checking debit | Zero dollar account validation. |
| 32 | Savings credit | Deposit to a savings account. |
| 37 | Savings debit | Draw from a savings account. |
| 21 | Return or notification of change | Applies to codes 22, 23, and 24. |
| 26 | Return or notification of change | Applies to codes 27, 28, and 29. |
The three letter Standard Entry Class code at positions 51 to 53 of the batch header says what kind of authorization sits behind the entries. It matters when you convert, because it changes how the entry rows should be read.
| SEC code | What it means |
|---|---|
| PPD | Prearranged payment or deposit to a consumer account, such as payroll direct deposit or a recurring bill payment. |
| CCD | Corporate credit or debit between businesses: vendor payments, cash concentration, funding a payroll account. |
| CTX | Corporate trade exchange, which supports up to 9,999 addenda records carrying full ANSI ASC X12 remittance data. |
| WEB | Internet or mobile initiated. Debits authorized online, and credits used for person to person transfers. |
| TEL | Consumer debit authorized orally over the telephone. |
| IAT | International ACH transaction, where a party to the payment sits outside US jurisdiction. |
Two rule changes are worth knowing before you review a current file. As of March 20, 2026, two company entry descriptions became mandatory in the batch header at positions 54 to 63: PAYROLL on PPD credits that pay wages or salaries, and PURCHASE on WEB debits for e-commerce purchases. If you are converting files to check compliance, that field is now a real test rather than free text.
Nacha also phased in fraud monitoring requirements during 2026. Phase 1 took effect March 20, 2026 for all ODFIs and for larger non-consumer originators, third-party senders, and receiving institutions. Phase 2 extended the requirement in June 2026 to all non-consumer originators, third-party senders and service providers, and all receiving institutions regardless of volume. Separately, the Same Day ACH limit is still $1 million per payment; Nacha has approved an increase to $10 million, but that does not take effect until September 17, 2027.
Once the entries are rows, the rest is ordinary spreadsheet work. For the manual routes as well, including the fixed-width import and a Power Query approach, see our full walkthrough on how to open a NACHA ACH file in Excel or convert it to CSV. Going the other direction, building a file rather than reading one, is covered in how to create a NACHA file in Excel. If your bank also sends balance reporting, the BAI to Excel converter handles those files, and the MT940 to Excel converter covers SWIFT statements. Loading the result elsewhere? Map it through the bank statement OFX converter, the QuickBooks QBO format, or, for enterprise teams, the NetSuite bank statement converter and the SAP bank statement converter. If you only have the PDF statement rather than the ACH file, the general bank statement converter produces the same structured rows, and bank statement reconciliation covers the tie-out.
Most teams do not stop at Excel. If the next step is QuickBooks Online, you can turn the exported file into an importable QBO with a CSV to QBO converter. Finance teams that need to chase the invoices behind those vendor payments can automate the follow-up with accounts receivable automation, and teams processing other finance documents at volume can extract them with enterprise document OCR.
A NACHA file is the fixed-width text file used to send ACH payments such as payroll direct deposits and vendor payments. Each line is exactly 94 characters, and the file is organized into batches of entries wrapped by header and control records. It is built for banking software, so it does not open cleanly in Excel until you convert it.
You can open it as fixed-width text and define column breaks by hand, but you have to do that separately for each record type and then repair the amounts and leading zeros. Uploading the file to BankXLSX is faster: it reads every record type, restores the decimals, and gives you one row per payment.
Rename the file to .txt if it has an .ach extension or none, upload it to BankXLSX, and download the result as CSV. Each entry detail record becomes a row with transaction code, routing number, account, amount, name, and trace number, plus the company and effective date pulled down from its batch header.
There is no practical difference. ACH describes the payment network, and NACHA is the association whose operating rules define the file format that network uses. People say ACH file, NACHA file, and NACHA formatted file to mean the same 94 character fixed-width payment file.
ACH amounts are stored as ten zero-filled digits with two implied decimal places, so $123.45 is written as 0000012345. There is no decimal character in the file at all. Excel reads that as twelve thousand three hundred forty five unless the value is divided by 100 during conversion.
There are six: 1 file header, 5 batch header, 6 entry detail, 7 addenda, 8 batch control, and 9 file control. Records 1 and 9 wrap the whole file, records 5 and 8 wrap each batch, and the 6 and 7 records in between carry the actual payments and their remittance information.
Find the type 6 entry detail lines, then read positions 04 to 12 for the routing number, 13 to 29 for the account, and 30 to 39 for the amount with two implied decimals. Confirm the batch adds up by comparing your totals to the total debit and credit fields in the type 8 batch control record.
ACH files contain live bank account and routing numbers, so treat them carefully. BankXLSX encrypts uploads with 256-bit encryption, never resells or shares your financial data, and lets you delete uploaded files whenever you want. Check your own internal policy before uploading production payment files.
Convert bank BAI2 balance reporting files.
Convert SWIFT MT940 and MT942 statements.
From the same family of tools
Get started converting bank statements to spreadsheets.
USD
per month
billed as
$288 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
billed as
$888 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
billed as
$ yearly
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |