BACS File Structure and Format Errors
An STD18 file is fixed-width: every record is exactly 114 characters, and the bank reads each field by its position rather than by a delimiter. The record labels sit in the first four characters, and the trailer repeats the totals the bank reconciles against. Software that writes these files by hand — a spreadsheet export, an older payroll, a custom report — tends to break one of those rules: a trimmed trailing space, a soft line break, a label that never got written, or a total that no longer matches the payment records.
The records in an STD18 file
| Label | Record |
|---|---|
| VOL1 | Volume header — opens the file. |
| HDR2 | User header — originator sort code, account number, name and processing date. |
| 6 | Payment record — sort code at positions 6-13, account number at 14-21, amount in pence at 30-40. |
| UTL1 | User trailer — total value, hash total and the type-6 record count the bank reconciles. |
| EOF9 | End of file. |
Payment file
Drop a .txt or .bacs file in the box below, or paste its contents. The file is checked as soon as it arrives: if it cannot be read as a BACS payment file you are told why and charged nothing. The corrected file — the fix itself — is what you pay for.
Drag and drop your file here
Your file
No file yet. Drop or paste one and it is checked straight away — a file we cannot read as a BACS file is refused here, free of charge.
Frequently asked questions
- Why is every record exactly 114 characters?
- STD18 is fixed-width. The bank reads each field by its position in the record, not by a delimiter, so a record that is 113 or 115 characters long shifts every field after the missing or extra character and the record cannot be parsed.
- What breaks the structure most often?
- A trailing space or field trimmed by a spreadsheet export, a soft line break introduced by an editor, a missing or mislabelled trailer, and totals that were not recomputed after the payment records changed.
- Are the line endings really checked?
- Yes. STD18 records must be separated by CRLF (\r\n). Files that arrive with LF or CR endings, or a mix of all three, are rejected on structure, so the repair normalises them to CRLF.
- Does anything else in the file get rewritten?
- No. The repair covers record width, line endings, the trailer label, sort code and account number formatting, and the UTL1 totals. Payment amounts, references and payee details are left untouched.