Daily bank statement imports fail or import partially. ACH and wire files are rejected by the bank or fail in Sage X3.
Why it happens
- Bank changed file format without notifying the ERP team
- Character encoding differences (CRLF vs. LF, ANSI vs. UTF-8)
- Missing or new transaction codes in the bank file
- ACH file with invalid routing/account combination or trace numbers
- Multi-currency entries the import didn't expect
Diagnostic steps
- 1. Capture the exact file the bank sent
Don't rely on the version in Sage X3 staging — get the raw file from the bank portal or SFTP.
- 2. Compare against the import template
Most bank import failures are one-field changes the import wasn't configured to expect.
- 3. Check character encoding
BAI2 and MT940 files are sensitive to line endings and encoding. A change at the bank can break imports silently.
- 4. Validate ACH detail records
If the bank rejected an ACH file, look at the rejected record's trace number, routing, and amount.
Fixes
Update the import map
Add the new transaction codes or fields. Document what changed and when.
Add file validation
Build a pre-import validation that flags unexpected codes before they break the import.
Standardize bank communication
Establish a single point of contact at each bank for format changes and outage notifications.
Implement file archiving
Archive every inbound and outbound bank file with timestamps for audit.
Prevention
- Quarterly bank-format review with each bank
- Pre-import validation on every bank file
- Monitoring and alerting on failed imports
PRH Consulting can resolve this for you
Our bank automation practice handles issues like this regularly. Most engagements start with a short scoping call.