ACH file validator
Check a NACHA file before you upload it to your bank. Every error is explained in plain English with the line it is on. Pick your bank to also get its known upload rules.
Your file never leaves your computer. Validation runs entirely in your browser. Nothing is uploaded to us, logged, or stored. This tool checks file format only; it moves no money. Funds move solely through your own bank.
| Line | Severity | Problem |
|---|
What this validator checks
The structural rules banks and ACH operators enforce: every record exactly 94 characters, valid record types and ordering, ABA routing check digits on every entry, service class consistency (no debits in a 220 batch), transaction code validity, zero amounts on prenotes, addenda linkage back to the entry trace number, batch and file entry counts, entry hash with rightmost-10 truncation, debit and credit control totals, block count, and 9-fill padding. Layouts follow the official Nacha ACH Guide for Developers, cross-checked against published bank specifications.
Why was my NACHA file rejected?
The most common causes, in rough order: a record that is not exactly 94 characters (often a stripped trailing space or an added blank line), batch or file totals that do not match the entries, a routing number that fails the check digit test, the wrong Company ID (banks assign this; it is often not just your EIN), a stale or weekend effective date, and offset entries sent to a bank that requires unbalanced files. Some banks also reject prenotes or mixed batches outright. The validator finds all of these, and the bank picker adds rules specific to your bank where the bank publishes them.
Balanced vs unbalanced files: which does my bank want?
An unbalanced file carries only your payment entries; the bank creates the settlement entry to your account itself. A balanced file includes that offset entry explicitly, so total debits equal total credits. Most large banks want unbalanced files. Chase and M&T forbid offsets entirely, while Associated Bank accepts them only when a profile setting is enabled. If your bank rejects a file that validates cleanly here, balanced versus unbalanced is the first thing to check. Your bank agreement decides; when in doubt, ask your treasury contact.
My bank is asking for a test file
Banks commonly require a test NACHA file before enabling uploads, and many accounting systems cannot produce one. A test file is a normal file with prenote transaction codes (23 or 28 for checking) and zero amounts, or dummy entries your bank will discard. The free NACHA file generator has a one-click test file button and works the same way this validator does: nothing leaves your browser.
Need your bank's exact requirements?
Bank-by-bank ACH upload documentation, transcribed from each bank's own published guides with sources cited: Chase, Truist, and Regions to start. If your bank rejects your file and the reason will not yield, the format setup service works it out with you.