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. Pick your file and every entry comes back as a row: effective date, receiver, direction, amount with the decimal restored, routing, account and trace number, with the batch details carried down. It parses in this browser tab, so a file carrying live account numbers never leaves your computer.
Last updated August 2026
NACHA / ACH file to CSV converter
Pick your ACH file and get one row per payment. Nothing is uploaded: it converts in this browser tab.
| Date | Name | Direction | Amount | Routing | Account |
|---|
Routing, account and trace numbers are digits that can start with a zero. Import the CSV with those columns set to Text so Excel keeps them intact.
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.
Pick 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 clean CSV you can load into QuickBooks, NetSuite, Sage, or a treasury system, or copy the whole table straight into a spreadsheet.
ACH files carry live routing and account numbers for real people. This converter runs in your browser tab with no upload and no account, so the file never touches a server.
Nothing to install and no credit card to start.
ACH files arrive as plain text with extensions like .ach, .nacha, .txt, .dat, or no extension at all. Any of them work, and files with no line breaks at all work too.
Tip: The content is what matters, not the extension.
Choose the file in the box above. The converter reads the 1, 5, 6, 7, 8, and 9 records, skips the 9-filler padding lines, and checks the control totals as it goes.
Tip: Multi-batch files are fine.
Download the CSV or copy the table into a sheet, 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.
If you need every field rather than the summary, the NACHA file format reference documents all six record types position by position, including the addenda, batch control and file control layouts and the transaction and SEC code tables.
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.
CTX matters for a second reason. Its addenda records are where X12 remittance data rides along with the money, so the payment detail explaining which invoices a vendor payment covers is often an EDI 820 wrapped inside the ACH file. If your bank hands you that remittance as a separate file rather than as addenda, the EDI 820 to Excel converter turns it into one row per invoice.
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.
You cannot save a spreadsheet as a NACHA file directly. A NACHA file is a fixed width text file of 94 character records, and Excel has no export that produces that shape, so building one means assembling the record structure yourself: a file header, then for each batch a batch header, one entry detail record per payment, any addenda, a batch control record, and finally a file control record, with filler lines added so the total record count is a multiple of ten. The formatting rules are unforgiving. Amounts are written in cents with no decimal point, every field pads to an exact width, and the entry hash and totals in the control records have to agree with the entries above them or your bank rejects the file.
In practice most US businesses should not hand build the file. Originate through your bank portal or ACH software, which validates before transmission, and use Excel to stage the payment list. If you do build one, keep the source data in a sheet and generate the fixed width output from it rather than typing records, and read how to create a NACHA file in Excel and how to validate a NACHA file before sending it first, then run the result through the NACHA file validator so the control totals are checked before your bank sees it. The check equivalent of this exercise, the issued check list you upload for fraud matching, follows a different set of bank specific rules covered in the positive pay file format reference.
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. The converter on this page is faster: it reads every record type in your browser, restores the decimals, and gives you one row per payment.
Pick the file in the converter on this page, whatever its extension, 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.
Generally not, because the file holds live routing numbers, account numbers and names for everyone paid in it. The converter on this page avoids the problem entirely by never uploading: it reads the file with the browser FileReader and runs in the page, which you can confirm in your browser network tab.
Check the file balances before you send it.
Convert bank BAI2 balance reporting files.
Convert SWIFT MT940 and MT942 statements.
Cancel anytime from your account settings · refund policy
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 |