How to Reconcile an ACH File Against Your Bank Statement

Jul 20, 2026

Convert your bank statement to Excel now

PDF, JPG, PNG, BMP, HEIC, TIFF, MT940

Upload your bank statement

Last updated July 2026.

To reconcile an ACH file against your bank statement, convert both to spreadsheets, then match each Entry Detail Record from the NACHA file to a line on the statement by amount, date, and trace number, and account for the two things that break a clean match: timing differences between the effective date and the settlement date, and returns that reverse an entry days later. Do that and every dollar you originated or received through ACH ties back to what actually moved through the account.

ACH activity is exchanged between banks as flat files called NACHA files. Each file holds one or more batches, and each batch holds Entry Detail Records that specify an amount, a receiving account, a transaction code, and a trace number. Your bank statement, by contrast, usually shows ACH activity as summarized credits and debits with short descriptors. Reconciling the two means lining up the detail in the file with the totals on the statement, and the fastest way to do that is to get both into rows.

Why does an ACH file not match the bank statement?

An ACH file rarely matches the statement line for line because of three predictable gaps: timing, batching, and returns. The effective entry date in the file is the date the originator wants the money to move, but the settlement date, when funds actually change hands between institutions, can fall on a different banking day. Banks also post ACH activity in batch totals, so one statement line can represent dozens of entries in the file. And returns, entries that come back for insufficient funds or a closed account, reverse an original entry days after the fact under a return reason code.

Knowing these three causes upfront turns a confusing mismatch into a short checklist. Most unreconciled ACH differences are one of the three, not a real error.

How do I match ACH entries to the bank statement?

Match ACH entries to the statement using the fields that make each entry unique. There is no single universal payment ID across the ACH network, so NACHA rules treat an entry as identifiable by a combination of amount, individual or company name, batch number, and trace number. The trace number is assigned by the originating bank and ascends within each batch, which makes it the most reliable key when your bank reports it on the statement or in a detail file.

A practical matching order works like this:

  1. Convert the NACHA file so every Entry Detail Record is a row with its amount, name, transaction code, and trace number. A NACHA file to Excel converter turns the fixed-width records into clean columns.
  2. Convert the bank statement the same way, so its ACH credits and debits are rows with dates and amounts. Use the bank statement converter for any US bank.
  3. Match on trace number first where it is available, then fall back to amount plus name plus date for the rest.
  4. Group the file entries into their batch totals and tie each batch to the summarized ACH line on the statement.
  5. Flag anything left over as a timing gap or a return, and check it against the next statement period.

With both sides in a spreadsheet you can sort by amount or trace number and clear the bulk of the matches in minutes, then investigate only the residual lines.

How do I handle ACH returns during reconciliation?

Handle ACH returns by matching each return to its original entry and netting the two so the account balance is explained. A return is a separate ACH entry that comes back from the receiving bank with a return reason code, for example R01 for insufficient funds or R02 for a closed account, and it carries mandatory addenda identifying the item it reverses. On the statement this shows up as a debit that undoes an earlier credit, often in a later period, which is exactly why a batch that looked reconciled can drift.

Keep a running list of returns by reason code so you can see patterns, resubmit where allowed, and write off what cannot be collected. For the full set of codes and what each one means, see the ACH return codes list from R01 to R85. Coding returns consistently is what keeps the reconciliation honest across months.

What dates should I reconcile ACH on?

Reconcile ACH on settlement date, not effective date, because settlement is when the money actually posts to the bank account the statement reflects. The effective entry date tells you the originator's intent, and it is useful for forecasting, but the statement moves on settlement. When an entry sits in the file on one day and posts on the next banking day, that one-day shift is a timing difference, not a discrepancy, and it usually clears on the following statement.

Same-day ACH narrows the gap, but windows and cutoff times still push some entries to the next day, so always reconcile against the date the funds settled.

Turning ACH reconciliation into a repeatable process

The reason ACH reconciliation feels painful is that the two documents arrive in different shapes: a technical fixed-width file on one side and a human-readable statement on the other. Once both are spreadsheets with the same columns, the work becomes ordinary matching that you can repeat every period. Convert the file, convert the statement, match on trace number and amount, and resolve the residuals as timing or returns.

Once the ACH side ties out, the same clean rows feed the rest of your close. You can categorize transactions from a bank statement to code the activity, and reconcile the bank statement as a whole against the ledger. Teams that process large volumes of vendor payments often move this upstream and automate the accounts payable side so the ACH files, approvals, and remittance detail are captured before reconciliation even starts.

Frequently asked questions

What is a NACHA file?

A NACHA file is the flat, fixed-width text file banks use to exchange ACH payments. It is organized into batches of Entry Detail Records, each holding an amount, a receiving account and routing number, a transaction code, and a trace number, wrapped by header and control records that carry batch and file totals.

How do I open an ACH file to reconcile it?

Convert the ACH file to a spreadsheet so each Entry Detail Record becomes a row you can sort and match. A NACHA file to Excel converter parses the 94-character records into columns for amount, name, trace number, and transaction code, which is far easier to reconcile than the raw text.

Why does the ACH total on my statement differ from my file?

Usually because of timing, batching, or returns. The statement posts on settlement date while the file carries the effective date, banks show ACH as batch totals rather than individual entries, and returns reverse items in a later period. Match by trace number and amount, then classify the leftovers as one of those three.

What is an ACH trace number?

An ACH trace number is a unique identifier the originating bank assigns to each entry. Trace numbers ascend within a batch and are the most reliable field for matching a file entry to the corresponding line on the bank statement when the bank reports them.

If your goal is to load these payments into your ledger rather than just tick them off, see how to import a NACHA ACH file into QuickBooks.

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 now

Free to try, no credit card required

From the same family of tools