Build the File Header record (type 1) with your ODFI routing number, destination bank routing, creation date and time, file ID modifier (A–Z, 0–9, incremented per file), and record size and blocking factor of 094 and 10
Build the Batch Header record (type 5) with the PPD standard entry class code, company name, company entry description (PAYROLL), effective entry date set to the target payday, and the ODFI routing number
For each payroll recipient, build a Detail record (type 6) with the transaction code (22 for checking credit, 32 for savings credit), receiving bank routing number, account number, amount in cents without a decimal, individual name, and a unique trace number composed of your ODFI routing prefix plus an 8-digit sequence number
Build the Batch Control record (type 8) with the entry count, entry hash (sum of all receiving routing numbers modulo 10 billion, discarding overflow digits), and total credit amount; these must balance against the detail records
Build the File Control record (type 9) with the batch count, block count (total records divided by 10, rounded up to the next integer), entry addenda count, entry hash, total credits, and total debits
Pad the file with type 9 records (nines) to reach a multiple of 10 records (the 10-record blocking factor), then validate the complete file by running it through a NACHA file validator before submitting to your ODFI
Known gotchas
The entry hash in the Batch Control and File Control records is the sum of all 8-digit ABA routing numbers (the transit routing number only, not the check digit) in the detail records, modulo 10 billion — including the check digit or using the 9-digit routing number produces an incorrect hash
The effective entry date must be a banking business day; submitting a file with an effective entry date on a weekend or federal holiday will result in either rejection or the ODFI adjusting the effective date, which may cause payroll to arrive a day late
NACHA files must use fixed-width fields of exactly 94 characters per record with no line endings other than the required newline format; files with Windows CRLF line endings or variable-width fields are rejected by most ODFIs
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp