Our payroll outbound integration to our banking partner started failing this week after running successfully for six months. The integration sends ACH payment files for direct deposit processing. We’re getting validation errors from the bank stating that routing numbers are in an invalid format.
Here’s the error message we’re receiving:
Error Code: ROUTE_FORMAT_INVALID
Message: Routing number must be 9 digits, found: 021000021-001
Field: BankRoutingNumber
Record: Employee ID 847392
When I check the employee’s banking information in Workday, the routing number displays correctly as “021000021” without any suffix. However, the outbound XML file appears to be appending “-001” to some routing numbers. This is affecting about 15% of our employee population (approximately 450 employees out of 3,000). I’ve verified the bank routing number validation rules in our payment file format, but I can’t figure out where this suffix is coming from or why it’s only affecting certain employees. Has anyone dealt with routing number formatting issues in payroll outbound integrations?
Good catch on checking for patterns. I analyzed the affected employees and they all have accounts at three specific regional banks. When I looked at the Bank object configuration for these banks in Workday, I noticed they have multiple branch locations configured. Could the branch identifier be getting pulled into the routing number field somehow?
I’ve seen this before with custom calculated fields in integration mappings. If you have any custom XSLT transformations or calculated fields in your outbound integration that manipulate the routing number field, that could be the source. Also check if you’re pulling routing number from multiple sources - sometimes there’s a primary routing number field and a secondary one that includes branch codes. The integration might be inadvertently combining them.
Here’s the complete solution to fix your payroll outbound integration routing number issue.
Bank Routing Number Validation:
The problem is caused by your integration mapping pulling branch identifier data along with the routing number. Here’s how to fix it:
First, identify the exact field mapping in your integration:
Open Integration Studio and locate your payroll outbound integration
Navigate to the Assembly section where you map employee banking data
Find the BankRoutingNumber field mapping in your XML structure
Check the XPath expression - it’s likely referencing something like:
The “-001” suffix you’re seeing is likely coming from a branch or sub-account identifier that’s somehow being concatenated with the routing number. Check if those 450 affected employees have anything in common - same bank, same hire date batch, or same payroll company. This could help narrow down where the extra data is coming from.
I want to emphasize the importance of testing this fix thoroughly before deploying to production, especially since you’re dealing with actual payroll payments. Set up a test integration with a subset of affected employees and validate the output file format matches your bank’s specifications exactly.