1. Your ACH file
Usually a .ach, .txt or .dat file exported from payroll, accounting or your bank's payment portal: 94-character lines starting with 1, 5, 6, 7, 8 or 9.
Choose a file or paste the text, then click Validate.
Result
Batches
| Line | Company | Class | Type | Description | Effective | Entries | Debits | Credits |
|---|
Rebuild the control totals
The model, and what it leaves out
- Records are 94 characters. The order must be file header (1), then for each batch a batch header (5), entries (6) with optional addenda (7) and a batch control (8), then a file control (9) padded with rows of 9s to a multiple of 10 records.
- Entry hash is the sum of the 8-digit receiving routing numbers, right-most 10 digits, per batch and again across the file. Totals are summed from the entries by transaction code: 22/32 and similar are credits, 27/37 and similar are debits.
- Routing check digit is the standard 3-7-1 weighting. A failing number is reported with the digit that would make it pass, but nothing is ever changed for you.
- Effective dates on a Saturday, Sunday or Federal Reserve holiday are flagged with the likely settlement day. A holiday on a Saturday is not moved to Friday.
- Rebuild rewrites batch control, file control and blocking records only. It never edits an entry, a routing number or an amount.
- Not checked: your bank's own rules and limits, company ID approval, cut-off times and same-day eligibility, the special rules of each standard entry class beyond the ones listed, International ACH field layouts, return and correction records, and anything that needs the receiving bank's records.
Common questions
How do I check an ACH file before I upload it to my bank?
Paste the file or drop it onto this page. It checks every 94-character record against the NACHA layout: record order, field formats, routing-number check digits, the entry hash, debit and credit totals, the batch and file control records and the block padding, then lists each problem with its line number and the likely cause.
What does a NACHA entry hash mean and how is it calculated?
The entry hash is the sum of the 8-digit receiving routing numbers (without check digits) on every entry in a batch, keeping the right-most 10 digits. The file control record carries the same sum across all batches. It is a cheap checksum that lets a bank spot a routing number that changed after the file was built.
Why did my bank reject the file even though it opened in Excel?
The usual causes are a record that is not exactly 94 characters (trimmed trailing spaces), control totals that no longer match after a hand edit, a missing block of 9s to make the record count a multiple of 10, lowercase or accented characters, or a routing number that fails its check digit. This tool tests all of them.
Can this tool fix my ACH file?
It can rebuild the batch control records, the file control record and the blocking records from the entries, which is what is wrong after a hand edit. It never edits an entry: a wrong routing number, account number or amount is a payment decision, so it is reported and left to you.
Is it safe to put a file with bank account numbers into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Account numbers are masked to their last four digits in the report and the downloaded findings list. Your own policies still decide whether you may open a payment file in a browser.
What does this not check?
Whether your bank has approved your company ID, your origination limits and cut-off times, same-day eligibility, the rules of every standard entry class, International ACH layouts (only totals and trace numbers are checked), return and correction records, and anything your bank adds on top of the NACHA rules. A clean result is not a promise of acceptance.