Positive pay file rejected? Check these seven causes
Banks validate issue files hard, and the error messages are rarely helpful. These seven problems cause almost every rejection.
- Leading zeros stripped from the account number. Excel converts account numbers to plain numbers and drops leading zeros. The bank then cannot match the account. Fix: format the column as text, or generate the file with a tool that pads the account correctly.
- Wrong date format. One bank wants MMDDYY, the next wants YYYYMMDD, and a portal set to one will reject the other. Check the spec sheet in your portal for the exact pattern, including whether separators are allowed.
- Wrong amount format. Some banks want a decimal point (150.50); others want implied-decimal cents, zero-filled (0000015050). Sending one where the other is expected shifts every field in a fixed-width file.
- A header or trailer row the bank does not expect. Some banks require a total record; others, like Huntington, reject any file that has one. Column-title rows count too. Match the spec exactly.
- Payee name mismatch. With payee verification, the name in the file must match the printed check exactly, including "and" versus "&". Partial names and truncation cause per-check exceptions rather than file rejections, which is worse because they arrive one at a time.
- Fixed-width columns off by one. A single missing pad character shifts every field after it. If your bank rejects a fixed-width file, count the record length first; most specs state it (80, 85, or 147 characters are common).
- Voids encoded wrong. Void codes vary widely: I/C at Chase, V at Bank of America, transaction code 430 with a zero amount at Wells Fargo, CN at Huntington. Sending the wrong code either rejects the row or, worse, registers a live check.
General rule: after any change to your process, do a test upload before relying on the file for a real check run.
Skip the manual formatting
The free generator handles all seven automatically: it pads and formats per your bank's documented spec, flags duplicate check numbers and unreadable dates before you download, and blocks the download entirely if a value would not fit its field. It runs in your browser, so check data never leaves your computer.