Payment File Rejected? Let's Fix That.
It's 4:47pm. Payday is tomorrow. The bank just rejected your file.
Here's what went wrong—and how to fix it fast.
First: take a breath
Payment rejections happen. They're frustrating, but they're almost always fixable. The key is understanding why the bank rejected your file.
Banks reject files for specific, fixable reasons. Let's go through the most common ones.
Most common rejection reasons
1. Invalid transit or institution number
Error message: "Invalid routing number," "Institution not found," "Invalid financial institution"
What happened: The 8-digit routing number (institution + transit) doesn't match a real bank branch.
Common causes:
- Transposed digits (wrote 00345 instead of 00354)
- Wrong institution code (003 is RBC, 004 is TD—easy to mix up)
- Branch has closed or merged
- Copied from a check that had OCR errors
Fix: Verify against a void cheque or the payee's bank statement. Institution must be 3 digits, transit must be 5 digits.
2. Invalid account number
Error message: "Invalid account number," "Account not found"
What happened: The account number format doesn't match what the bank expects.
Common causes:
- Included dashes or spaces (should be digits only)
- Too many or too few digits
- Copied from wrong field (cheque number vs account number)
- Account has been closed
Fix: Account numbers should be 7-12 digits depending on bank. No punctuation. Verify with payee if unsure.
3. Amount formatting error
Error message: "Invalid amount," "Amount format error"
What happened: CPA-005 amounts must be in cents, no decimal point.
Common causes:
- Included a decimal point ($125.50 should be 12550)
- Used dollar amount instead of cents
- Negative amount (not allowed in credit files)
Fix: Convert all amounts to cents. $1,234.56 becomes 123456 (no comma, no decimal, no dollar sign).
4. Control total mismatch
Error message: "Trailer total does not match," "Control total error," "Hash mismatch"
What happened: The sum of payments in the file doesn't match the total in the trailer record.
Common causes:
- Rounding errors during calculation
- File was edited manually and totals weren't updated
- Some records were added/removed without recalculating
Fix: Regenerate the file from scratch. Don't manually edit CPA-005 files—the totals must be recalculated.
5. Invalid record length
Error message: "Invalid record length," "Record size error"
What happened: CPA-005 records must be exactly 1464 characters. Yours aren't.
Common causes:
- File was opened in Excel and columns shifted
- Manual editing removed or added characters
- Line endings changed (Unix vs Windows)
- File encoding issues
Fix: Don't edit CPA-005 files in Excel or word processors. Regenerate from source.
6. Duplicate file number
Error message: "Duplicate file creation number," "File already submitted"
What happened: The file creation number in the header was already used.
Common causes:
- Resubmitting same file after making changes
- File numbering sequence wasn't incremented
- Test file used same number as production
Fix: Change the file creation number to a new, unused value. Track what numbers you've used.
7. Invalid payment date
Error message: "Invalid date," "Date in past," "Date format error"
What happened: The payment date is wrong or in an unexpected format.
Common causes:
- Date is in the past (can't pay yesterday)
- Date format wrong (CPA-005 uses Julian date format)
- Date is a weekend/holiday and bank doesn't accept
Fix: Use a future business day. Ensure Julian date format (OJJJJJ where O=year digit, JJJJJ=day of year).
8. Invalid characters in name field
Error message: "Invalid character," "Character encoding error"
What happened: The payee name contains characters the bank doesn't accept.
Common causes:
- Accented characters (é, ñ, ü)
- Special characters (&, @, #, %)
- Curly quotes instead of straight quotes
- Non-printable characters from copy/paste
Fix: Stick to A-Z, 0-9, spaces, and basic punctuation. Replace special characters with ASCII equivalents.
When it's not the file
Sometimes the file is fine but the upload fails for other reasons:
- Bank portal timeout: Try uploading again. Large files sometimes time out.
- Browser issues: Try a different browser or clear cache.
- Account permissions: You may not have file upload permissions. Contact your bank.
- Cutoff time passed: Some banks reject after daily cutoff. Submit tomorrow.
- Maintenance window: Bank systems have scheduled downtime. Try later.
The real fix: validate before uploading
Most rejection reasons are preventable. The problem is that you don't find out about errors until the bank tells you—and by then, you're under deadline pressure.
What if your tool caught errors first?
EFT Flow validates your payment data before generating the bank file:
- Invalid transit/institution numbers flagged before export
- Account number format checked
- Amount formatting handled automatically
- Control totals calculated correctly every time
- Record length always exactly 1464 characters
- File creation numbers tracked
Errors are caught on your screen, not in a bank rejection email.
Manual entry makes this worse
If you're entering payments one-by-one into your bank portal, every field is a chance for error:
- Typo in transit number → payment fails
- Wrong account number → money goes to wrong person (or nowhere)
- Decimal in wrong place → $1,500 becomes $15,000
- Skip a payee → someone doesn't get paid
And you won't find out until the payment fails or someone calls asking where their money is.
File-based processing is safer because the data is validated, the format is consistent, and you can preview everything before submitting.
Stop fighting with payment rejections
EFT Flow validates your data before generating the bank file. Catch errors before the bank does.