---
title: "NACHA File Rejected? 94 ACH File Checks Explained"
description: "Why banks reject NACHA files: all 94 checks the NACHA Viewer runs, what each one means and how to fix it, with worked examples."
canonical: https://nacha-navigator.com/nacha-file-errors
updated: 2026-10-30
---

# Why NACHA files get rejected

Reference

The 94 checks the NACHA Viewer runs on an ACH file, grouped by record: what each one looks for and how to fix what it finds, with worked examples for five common problems.

Last updated October 30, 2026

[Check a file in the NACHA Viewer](https://nacha-navigator.com/) [NACHA file format](https://nacha-navigator.com/nacha-file-format)

The viewer reads the file in your browser. It is never uploaded.

## Errors, warnings and notes

The viewer sorts what it finds by severity. Only errors make a file invalid: a file with warnings or notes but no errors passes. Every finding names its rule, such as `BC_ENTRY_HASH`, and most also give the line and positions where it was found.

| Severity | What it means | Checks |
| --- | --- | --- |
| Error | The file breaks a rule of the NACHA format. The ACH Operator or your bank can reject the file, a batch or an entry for it, so fix every error before you send the file. | 70 |
| Warning | Not always fatal, but worth fixing: some banks refuse it, the Receiver’s bank may return the entry, or it points to a likely mistake. Review each one. | 19 |
| Note (info) | Worth knowing and usually fine, such as an Immediate Origin that is a company identifier rather than a routing number. Change it only if it isn’t what you meant. | 5 |

Worked examples

## Five common rejections, worked through

These are the problems behind many rejected files: totals and counts that don’t add up, records of the wrong length, and a File Header that doesn’t name the bank the way the format expects.

### Entry hash mismatch

Every Company/Batch Control carries an Entry Hash in positions 11–20, and the File Control carries one for the whole file in positions 22–31. It is not a cryptographic hash, just a sum: the receiving system recomputes it to make sure no entry was lost or changed on the way.

To compute it, take the Receiving DFI Identification of each Entry Detail record: positions 4–11, the first 8 digits of the routing number, without the check digit in position 12. Add them up and keep the rightmost 10 digits of the total, padded with zeros. Every entry counts, prenotes and zero-dollar entries included; addenda records don’t.

Here is batch 1 of the sample file [sample-ppd.ach](https://nacha-navigator.com/samples/nacha/sample-ppd.ach):

| Line | Transaction code | RDFI identification (4–11) | Check digit (12) |
| --- | --- | --- | --- |
| 3 | 22 | 06550334 | 8 |
| 4 | 33 | 26557758 | 5 |
| 5 | 23 | 06550334 | 8 |
| 6 | 23 | 06550368 | 1 |
| Sum |  | 46,208,794 |  |

The sum has fewer than 10 digits, so the Entry Hash is `0046208794`, which is what the Batch Control on line 7 says in positions 11–20:

```
820000000400462087940000000000000000000000109123456789                         065503680000001
```

The File Control adds up every entry in the file, which is the same as adding the batch hashes: 0046208794 + 0090954322 = `0137163116`. When a sum runs past 10 digits, the digits on the left are dropped: a sum of 12,345,678,901 gives an Entry Hash of `2345678901`.

Common mistakes

- Adding whole 9-digit routing numbers, check digits included.
- Leaving entries out: credits, debits, prenotes and zero-dollar entries all count.
- Copying the File Control’s hash into a Batch Control, or adding up batch hashes that are themselves wrong.
- Keeping the leftmost 10 digits, or rounding, when the sum is longer than 10 digits.

The NACHA Viewer shows the hash it expects next to the one in the file.

Reported as [BC_ENTRY_HASH](https://nacha-navigator.com/nacha-file-errors#bc-entry-hash) [FC_ENTRY_HASH](https://nacha-navigator.com/nacha-file-errors#fc-entry-hash)

### Record count and block fill

NACHA files are written in blocks of 10 records, and the File Header’s Blocking Factor (positions 38–39) is always 10. When the records from the File Header through the File Control don’t fill the last block, the file ends with block-fill records, each one 94 nines, to complete it. The File Control’s Block Count (positions 8–13) is the number of blocks, block fill included.

| Records, File Header to File Control | Block-fill records | Lines in the file | Block Count |
| --- | --- | --- | --- |
| 8 | 2 | 10 | 000001 |
| 14 | 6 | 20 | 000002 |
| 30 | 0 | 30 | 000003 |
| 41 | 9 | 50 | 000005 |

The sample file [sample-ppd.ach](https://nacha-navigator.com/samples/nacha/sample-ppd.ach) is the second row: 14 records (a File Header, two batches of four entries with their header and control, and a File Control), then six lines of nines.

Don’t confuse the Block Count with the Entry/Addenda Count in positions 14–21, which counts only Entry Detail and Addenda records.

```
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
```

Common mistakes

- Padding with blank lines or spaces instead of lines of nines.
- Putting block fill before the File Control instead of after it.
- Adding a whole block of nines to a file whose record count is already a multiple of 10.
- A Block Count that leaves out the block fill, or counts lines instead of blocks of 10.

The viewer reports missing or extra block fill as a warning, and a wrong Block Count as an error.

Reported as [FC_BLOCK_COUNT](https://nacha-navigator.com/nacha-file-errors#fc-block-count) [BLOCK_FILL_MISSING](https://nacha-navigator.com/nacha-file-errors#block-fill-missing) [BLOCK_FILL_EXCESS](https://nacha-navigator.com/nacha-file-errors#block-fill-excess) [FILLER_BEFORE_FILE_CONTROL](https://nacha-navigator.com/nacha-file-errors#filler-before-file-control) [FH_BLOCKING_FACTOR](https://nacha-navigator.com/nacha-file-errors#fh-blocking-factor)

### Records that aren’t 94 characters

Every record is exactly 94 characters long, not counting the line break, and the File Header says so in its Record Size field (094, positions 35–37). Fields are found by their position, so in a record of any other length every field after the difference is read wrong.

The usual cause is software that trims spaces. Many records end in blank fields (the File Control’s last 39 positions are reserved and always blank), and an editor, spreadsheet or email program that drops trailing spaces leaves those records short. Line 12 of the sample file [sample-with-errors.ach](https://nacha-navigator.com/samples/nacha/sample-with-errors.ach) is a File Control cut to 55 characters:

```
9000001000002000000060104054990000000007500000000484000
```

Positions 56–94 are missing, and all of them are blank in a File Control, so padding the line with 39 spaces restores it. When the missing positions are all blank fields, the viewer says that trailing spaces were probably stripped.

Common causes

- Opening and saving the file in a spreadsheet, which drops trailing spaces (and leading zeros).
- Copying records through email or chat, which can trim or wrap long lines.
- A value longer than its field, such as a 23-character name in the 22-character Individual Name field, which pushes the record to 95 characters.
- Spaces after position 94, which the viewer reports separately, as a warning.

Reported as [RECORD_LENGTH](https://nacha-navigator.com/nacha-file-errors#record-length) [TRAILING_WHITESPACE](https://nacha-navigator.com/nacha-file-errors#trailing-whitespace) [FH_RECORD_SIZE](https://nacha-navigator.com/nacha-file-errors#fh-record-size)

### Immediate Destination and Immediate Origin

Positions 4–13 and 14–23 of the File Header say where the file goes and where it comes from. Each field is 10 characters. A routing number is written as a blank followed by its 9 digits, a layout often shown as `bTTTTAAAAC`: b for the blank, TTTT for the Federal Reserve routing symbol, AAAA for the institution and C for the check digit.

The Immediate Destination is the routing number of the bank or ACH Operator that receives the file, usually your bank; its file specifications give the exact value. The Immediate Origin identifies the sender: a routing number written the same way, or a 10-character identifier your bank assigned.

| Immediate Destination | What the viewer reports |
| --- | --- |
| `·065503681` | Valid: a blank, then a routing number that passes the check-digit test. |
| `0065503681` | [FH_ROUTING_LAYOUT](https://nacha-navigator.com/nacha-file-errors#fh-routing-layout) A zero where the blank goes. The routing number is fine, so this is a warning. |
| `065503681·` | [FH_ROUTING_LAYOUT](https://nacha-navigator.com/nacha-file-errors#fh-routing-layout) Left-justified, with the blank at the end. Also a warning. |
| `·065503682` | [FH_IMMEDIATE_DESTINATION](https://nacha-navigator.com/nacha-file-errors#fh-immediate-destination) The first eight digits imply check digit 1, not 2, so one of the nine digits is wrong. An error. |

A dot (·) stands for the blank.

The ninth digit is a check digit. Multiply the nine digits by 3, 7 and 1 in turn and add the results: the total must be a multiple of 10. For 065503681 that is 0×3 + 6×7 + 5×1 + 5×3 + 0×7 + 3×1 + 6×3 + 8×7 + 1×1 = 140.

When a routing number fails, don’t change its last digit to make it pass: any of the nine digits may be the one that was mistyped. Get the number again from the bank, or look it up with [PayOps Kit’s routing number tool (opens in a new tab)](https://payopskit.com/routing-number).

Reported as [FH_IMMEDIATE_DESTINATION](https://nacha-navigator.com/nacha-file-errors#fh-immediate-destination) [FH_ROUTING_LAYOUT](https://nacha-navigator.com/nacha-file-errors#fh-routing-layout) [FH_IMMEDIATE_ORIGIN](https://nacha-navigator.com/nacha-file-errors#fh-immediate-origin) [FH_IMMEDIATE_ORIGIN_ID](https://nacha-navigator.com/nacha-file-errors#fh-immediate-origin-id) [ROUTING_CHECK_DIGIT](https://nacha-navigator.com/nacha-file-errors#routing-check-digit)

### Control totals that don’t balance

Each Company/Batch Control restates its batch: how many Entry Detail and Addenda records it holds (positions 5–10), the total of its debits (21–32) and the total of its credits (33–44), in cents with no decimal point. The File Control does the same for the whole file and adds the number of batches. When entries are added, removed or edited by hand and the controls aren’t recomputed, they stop matching.

Whether an entry is a debit or a credit comes from the second digit of its Transaction Code: 1 to 4 is a credit, 5 to 9 a debit. Prenotes and zero-dollar entries count as entries but add nothing to the totals.

| Line | Transaction code | Amount (30–39) | Debit | Credit |
| --- | --- | --- | --- | --- |
| 3 | 22 Checking credit | 0000125000 |  | $1,250.00 |
| 4 | 32 Savings credit | 0000050000 |  | $500.00 |
| 5 | 23 Checking credit prenote | 0000000000 |  | $0.00 |
| 6 | 27 Checking debit | 0000175000 | $1,750.00 |  |

The Company/Batch Control for these four entries carries:

| Field | Positions | Value |
| --- | --- | --- |
| Entry/Addenda Count | 5–10 | 000004 |
| Total Debit Entry Dollar Amount | 21–32 | 000000175000 |
| Total Credit Entry Dollar Amount | 33–44 | 000000175000 |

An addenda record after the entry on line 3 would make the count 000005 and leave both totals as they are.

Common causes

- Changing an amount in the file without updating its Batch Control and the File Control.
- Deleting an entry without recounting the batch.
- Leaving addenda records out of the count, or counting headers and controls in it.
- Writing dollars with a decimal point (1250.00) instead of cents (0000125000).

The viewer recomputes every count and total and shows the value it expects. Fix the Batch Controls first: the File Control’s figures are their sums.

Reported as [BC_ENTRY_ADDENDA_COUNT](https://nacha-navigator.com/nacha-file-errors#bc-entry-addenda-count) [BC_TOTAL_DEBIT](https://nacha-navigator.com/nacha-file-errors#bc-total-debit) [BC_TOTAL_CREDIT](https://nacha-navigator.com/nacha-file-errors#bc-total-credit) [FC_BATCH_COUNT](https://nacha-navigator.com/nacha-file-errors#fc-batch-count) [FC_ENTRY_ADDENDA_COUNT](https://nacha-navigator.com/nacha-file-errors#fc-entry-addenda-count) [FC_TOTAL_DEBIT](https://nacha-navigator.com/nacha-file-errors#fc-total-debit) [FC_TOTAL_CREDIT](https://nacha-navigator.com/nacha-file-errors#fc-total-credit)

The checks

## All 94 checks, by record

Each check below has the severity the viewer reports it with, what it looks for, how to fix what it finds and where the requirement comes from. Where it is about one field or record, a link goes to that layout in the [NACHA file format](https://nacha-navigator.com/nacha-file-format) reference. The list ends with one note about the issue list itself, [ISSUES_TRUNCATED](https://nacha-navigator.com/nacha-file-errors#issues-truncated).

| Group | Checks | Errors | Warnings | Notes |
| --- | --- | --- | --- | --- |
| [Input and structure](https://nacha-navigator.com/nacha-file-errors#structure-checks) | 23 | 15 | 6 | 2 |
| [Field content](https://nacha-navigator.com/nacha-file-errors#field-checks) | 9 | 7 | 2 | 0 |
| [File Header](https://nacha-navigator.com/nacha-file-errors#file-header-checks) | 9 | 7 | 1 | 1 |
| [Company/Batch Header](https://nacha-navigator.com/nacha-file-errors#batch-header-checks) | 7 | 4 | 2 | 1 |
| [Entry Detail](https://nacha-navigator.com/nacha-file-errors#entry-detail-checks) | 16 | 11 | 4 | 1 |
| [Addenda](https://nacha-navigator.com/nacha-file-errors#addenda-checks) | 14 | 12 | 2 | 0 |
| [Controls and totals](https://nacha-navigator.com/nacha-file-errors#control-checks) | 16 | 14 | 2 | 0 |
| All checks | 94 | 70 | 19 | 5 |

### Input and structure

Whether the file can be read as a NACHA file at all, and whether its records come in the right order. The viewer reports these as it reads the file.

#### File has no records

Error `FILE_EMPTY`

**What it checks.** The file contains no NACHA records at all.

**How to fix it.** Export the file again from the system that creates it, and check that you picked the ACH file itself rather than a report or an empty export. A NACHA file is plain text: lines of 94 characters that start with 1, 5, 6, 7, 8 or 9.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [How a NACHA file is organized](https://nacha-navigator.com/nacha-file-format#overview).

#### Byte-order mark

Warning `BOM_PRESENT`

**What it checks.** The file starts with a Unicode byte-order mark. NACHA files are plain ASCII; some banks reject the mark.

**How to fix it.** Save the file without the byte-order mark: choose ASCII, or UTF-8 without BOM, as the encoding in the editor or export settings, so the file starts with the File Header’s record type code, 1.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### Blank line between records

Warning `BLANK_LINE`

**What it checks.** Blank or whitespace-only lines are not records and are not allowed between records.

**How to fix it.** Delete the empty lines between records so that every line is a record. They usually come from joining files or batches with an extra line break.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### Blank lines at the end

Note `TRAILING_BLANK_LINES`

**What it checks.** Extra blank lines after the last record; most systems ignore them.

**How to fix it.** Usually nothing: most systems ignore them. If your bank’s intake is strict, delete the empty lines after the last record; a single line break at the end of the file is fine.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### End-of-file marker after the last record

Warning `END_OF_FILE_MARKER`

**What it checks.** The file ends with a DOS end-of-file character (Ctrl-Z, 0x1A) or NUL padding. It is not a record and is set aside; some banks reject a file that carries it.

**How to fix it.** Remove the Ctrl-Z (0x1A) or NUL characters after the last record. Older DOS and Windows tools and some transfer setups add them, so turn that option off or strip them before sending the file.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### Mixed line endings

Warning `MIXED_LINE_ENDINGS`

**What it checks.** Records are separated by a mixture of CRLF, LF and CR line endings.

**How to fix it.** Convert the file to one line-ending style, CRLF or LF, whichever your bank expects. Mixed endings usually mean the file was edited or put together on different systems.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### Records without line breaks

Note `UNBLOCKED_RECORDS`

**What it checks.** Records were concatenated with no line breaks; they were split every 94 characters.

**How to fix it.** Most banks expect each record on its own line: insert a line break after every 94 characters. Keep the file unbroken only if your bank’s specifications ask for it.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [How a NACHA file is organized](https://nacha-navigator.com/nacha-file-format#overview).

#### Record is not 94 characters

Error `RECORD_LENGTH`

**What it checks.** Every record must be exactly 94 characters long (Record Size 094).

**How to fix it.** Make the record exactly 94 characters. A short record has usually lost its trailing spaces to an editor or a spreadsheet: pad it with spaces to position 94. A long one has extra characters: find the field that grew and shorten it, or every field after it is read from the wrong positions.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [How a NACHA file is organized](https://nacha-navigator.com/nacha-file-format#overview).

#### Trailing whitespace

Warning `TRAILING_WHITESPACE`

**What it checks.** The record has blanks after position 94. Records must be exactly 94 characters.

**How to fix it.** Remove the spaces after position 94 so that the record ends at 94 characters, and check the export or editor setting that pads lines to a longer width.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [How a NACHA file is organized](https://nacha-navigator.com/nacha-file-format#overview).

#### Invalid character

Error `INVALID_CHARACTER`

**What it checks.** Records may contain only printable ASCII characters (space through tilde); control and non-ASCII characters are not allowed.

**How to fix it.** Replace the character with plain ASCII: accented letters with unaccented ones (É becomes E), curly quotes with straight ones, long dashes with hyphens and tabs with spaces. Clean the source data, such as names and addenda text, so the next export is clean too.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications).

#### Unknown record type

Error `UNKNOWN_RECORD_TYPE`

**What it checks.** Position 1 must be a Record Type Code: 1, 5, 6, 7, 8 or 9.

**How to fix it.** Make position 1 one of 1, 5, 6, 7, 8 or 9. Delete a line that isn’t a NACHA record (a title row, a comment, a line from another file); if the record starts with a space or a tab, it has shifted right, so remove that character.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [The order of the records](https://nacha-navigator.com/nacha-file-format#record-order).

#### No File Header

Error `FILE_HEADER_MISSING`

**What it checks.** A file must begin with exactly one File Header Record (type 1).

**How to fix it.** Add a File Header Record (type 1) as the first line, with the Immediate Destination and Immediate Origin from your bank’s file specifications. A missing header often means the file was cut short or pieced together: export it again in full.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [File Header record](https://nacha-navigator.com/nacha-file-format#file-header).

#### File Header is not first

Error `FILE_HEADER_NOT_FIRST`

**What it checks.** The File Header Record must be the first record in the file.

**How to fix it.** Move the File Header to the first line and delete whatever comes before it, such as a title row, a blank record or a record from another file.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [File Header record](https://nacha-navigator.com/nacha-file-format#file-header).

#### Second File Header

Error `FILE_HEADER_DUPLICATE`

**What it checks.** A file has exactly one File Header Record.

**How to fix it.** Two files were probably joined. Send them as separate files, or combine their batches under one File Header and one File Control with recomputed counts and totals.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [File Header record](https://nacha-navigator.com/nacha-file-format#file-header).

#### No File Control

Error `FILE_CONTROL_MISSING`

**What it checks.** A file must end with a File Control Record (type 9), followed only by block-fill records.

**How to fix it.** Add a File Control Record (type 9) after the last Batch Control, with the file’s batch count, block count, entry/addenda count, entry hash and debit and credit totals, then the block fill. A missing control usually means the file was truncated: export or download it again.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [File Control record](https://nacha-navigator.com/nacha-file-format#file-control).

#### Second File Control

Error `FILE_CONTROL_DUPLICATE`

**What it checks.** A file has exactly one File Control Record.

**How to fix it.** Keep one File Control, at the end of the file. A second one usually means two files were concatenated: split them, or merge their batches and recompute a single File Control.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [File Control record](https://nacha-navigator.com/nacha-file-format#file-control).

#### Record after File Control

Error `RECORD_AFTER_FILE_CONTROL`

**What it checks.** Only block-fill records (all 9s) may follow the File Control Record.

**How to fix it.** Move the record into the batch it belongs to, before the File Control, or delete it. If a whole file was appended after this one, send it separately.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Block-fill records](https://nacha-navigator.com/nacha-file-format#block-fill).

#### Block fill before File Control

Error `FILLER_BEFORE_FILE_CONTROL`

**What it checks.** Block-fill records (all 9s) belong after the File Control Record.

**How to fix it.** Move the block-fill records (all 9s) to the end of the file, after the File Control, or delete them and pad the file again.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Block-fill records](https://nacha-navigator.com/nacha-file-format#block-fill).

#### Record outside a batch

Error `BATCH_HEADER_MISSING`

**What it checks.** Entry Detail, Addenda and Batch Control records must follow a Company/Batch Header Record.

**How to fix it.** Put a Company/Batch Header Record (type 5) before the entries, or move the stray Entry Detail, Addenda or Batch Control record into the batch it belongs to.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Company/Batch Header record](https://nacha-navigator.com/nacha-file-format#batch-header).

#### Batch not closed

Error `BATCH_CONTROL_MISSING`

**What it checks.** Every batch must end with a Company/Batch Control Record (type 8).

**How to fix it.** Close the batch with a Company/Batch Control Record (type 8) before the next batch header or the File Control. It carries the batch’s counts, entry hash and totals, and repeats the header’s Service Class Code, Company Identification, ODFI and batch number.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Company/Batch Control record](https://nacha-navigator.com/nacha-file-format#batch-control).

#### Addenda without an entry

Error `ADDENDA_WITHOUT_ENTRY`

**What it checks.** An Addenda Record must follow an Entry Detail Record or another Addenda Record.

**How to fix it.** Move the addenda directly after the Entry Detail it belongs to and set that entry’s Addenda Record Indicator to 1, or delete it if it was left behind when an entry was removed.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Addenda type 05 record](https://nacha-navigator.com/nacha-file-format#addenda-05).

#### File has no batches

Warning `FILE_NO_BATCHES`

**What it checks.** The file has a header and control but no batches.

**How to fix it.** If the file should carry payments, the batches were lost along the way: export it again. If there is nothing to pay or collect this time, don’t send a file.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [The order of the records](https://nacha-navigator.com/nacha-file-format#record-order).

#### Batch has no entries

Error `BATCH_NO_ENTRIES`

**What it checks.** A batch must contain at least one Entry Detail Record.

**How to fix it.** Add the batch’s Entry Detail records, or delete the empty batch (its header and control) and lower the File Control’s Batch Count by one.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Entry Detail record](https://nacha-navigator.com/nacha-file-format#entry-ppd).

### Field content

Checks that apply to every field of every record: digits where digits belong, data where data is required, real dates, known codes and valid routing numbers.

#### Non-numeric value in a numeric field

Error `FIELD_NOT_NUMERIC`

**What it checks.** Numeric fields contain digits only: right-justified and zero-filled, unsigned, no blanks.

**How to fix it.** Write the field as digits only, right-justified and zero-filled: $12.50 in the 10-digit amount field is 0000001250. Remove spaces, decimal points, commas, signs and letters.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Field rules](https://nacha-navigator.com/nacha-file-format#field-rules).

#### Mandatory field is blank

Error `MANDATORY_FIELD_BLANK`

**What it checks.** A field marked M (mandatory) must be filled in; ACH Operators reject the entry or batch otherwise.

**How to fix it.** Fill in the field from your source data. Mandatory fields must hold valid data, and the ACH Operator can reject the batch or the whole file when they don’t.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Field rules](https://nacha-navigator.com/nacha-file-format#field-rules).

#### Required field is blank

Warning `REQUIRED_FIELD_BLANK`

**What it checks.** A field marked R (required) is blank; the RDFI may return the entry.

**How to fix it.** Fill in the field if you have the data. A blank Required field doesn’t stop the file, but the Receiver’s bank may return the entry.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Field rules](https://nacha-navigator.com/nacha-file-format#field-rules).

#### Reserved field is not blank

Warning `RESERVED_NOT_BLANK`

**What it checks.** Reserved positions must be space-filled, and so must the blanks inside a layout, such as positions 18–20 of C06 Corrected Data.

**How to fix it.** Replace the characters with spaces. Data in reserved positions usually means the field before them ran long or the record follows another layout; in a C06 NOC, the account number ends at position 17 of the Corrected Data and the Transaction Code goes in 21–22.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Field rules](https://nacha-navigator.com/nacha-file-format#field-rules).

#### Invalid date or time

Error `INVALID_DATE`

**What it checks.** Date, time and Julian-day fields must hold real calendar values (YYMMDD, HHMM, MMDD, MMYY, DDD).

**How to fix it.** Write a real calendar value in the field’s format: YYMMDD for dates (261030 is October 30, 2026) and HHMM for times (1405), or MMDD or MMYY where the layout says so. Look for a swapped month and day, or a 31st in a 30-day month.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Field rules](https://nacha-navigator.com/nacha-file-format#field-rules).

#### Unknown code

Error `INVALID_CODE`

**What it checks.** The field must contain one of the codes defined for it.

**How to fix it.** Use one of the values defined for the field, such as 0 or 1 for the Addenda Record Indicator, or FF, FV or VF for an IAT Foreign Exchange Indicator. If the value looks right, check the field before it: one that is a character too long or short shifts every field after it.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Code tables](https://nacha-navigator.com/nacha-file-format#code-tables).

#### Code is not uppercase

Error `CODE_NOT_UPPERCASE`

**What it checks.** Codes such as the SEC code and the change and return reason codes must be uppercase.

**How to fix it.** Write the code in capital letters: PPD rather than ppd, R01 rather than r01.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Code tables](https://nacha-navigator.com/nacha-file-format#code-tables).

#### Invalid routing symbol

Error `ROUTING_SYMBOL`

**What it checks.** The first two digits of a routing number must be 00–12, 21–32, 61–72 or 80 (Federal Reserve routing symbol).

**How to fix it.** Check the routing number against its source. Valid routing numbers start with 00–12, 21–32, 61–72 or 80, so other first two digits point to a typo, a value in the wrong field (such as an account number) or fields shifted by a character.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications).

#### Routing number check digit

Error `ROUTING_CHECK_DIGIT`

**What it checks.** A 9-digit routing number must pass the ABA 3-7-1 check-digit test.

**How to fix it.** Get the routing number again from its source (the Receiver, their bank or yours) and retype it. Don’t change the ninth digit to make the test pass: any of the nine digits may be the wrong one.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Totals and check digits](https://nacha-navigator.com/nacha-file-format#totals-and-hashes).

### File Header

The first record (type 1): who the file is for and who sent it, and the fixed values that describe the format.

#### Priority Code is not 01

Error `FH_PRIORITY_CODE`

**What it checks.** The Priority Code must be "01".

**How to fix it.** Set positions 2–3 of the File Header to 01.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Priority Code, File Header positions 2–3](https://nacha-navigator.com/nacha-file-format#file-header-priority-code).

#### Invalid Immediate Destination

Error `FH_IMMEDIATE_DESTINATION`

**What it checks.** The Immediate Destination must be a blank followed by a 9-digit routing number that passes the check-digit test (bTTTTAAAAC).

**How to fix it.** Use the routing number your bank gives for receiving files, written as a blank followed by the 9 digits in positions 4–13. If the check digit fails, the number was mistyped: copy it again from your bank’s file specifications.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Immediate Destination, File Header positions 4–13](https://nacha-navigator.com/nacha-file-format#file-header-immediate-destination).

#### Routing number not in bTTTTAAAAC layout

Warning `FH_ROUTING_LAYOUT`

**What it checks.** The Immediate Destination or Origin holds a valid routing number, but not as a blank followed by the 9 digits (bTTTTAAAAC).

**How to fix it.** Write the field as a blank followed by the 9-digit routing number: " 065503681", not "0065503681" or "065503681 ". Keep another layout only if your bank’s specifications ask for it.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [File Header record](https://nacha-navigator.com/nacha-file-format#file-header).

#### Invalid Immediate Origin

Error `FH_IMMEDIATE_ORIGIN`

**What it checks.** When the Immediate Origin is a routing number (bTTTTAAAAC) it must pass the check-digit test.

**How to fix it.** Copy the Immediate Origin again from your bank’s file specifications: it fails the check-digit test, so one of its digits is wrong. Write it as a blank followed by the 9 digits in positions 14–23.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Immediate Origin, File Header positions 14–23](https://nacha-navigator.com/nacha-file-format#file-header-immediate-origin).

#### Immediate Origin is not a routing number

Note `FH_IMMEDIATE_ORIGIN_ID`

**What it checks.** The Immediate Origin is a 10-character identifier rather than a routing number; this is allowed when agreed with the receiving point.

**How to fix it.** Nothing to change if your bank assigned this identifier (often based on the company’s tax ID). If the field should hold a routing number, write it as a blank followed by the 9 digits.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Immediate Origin, File Header positions 14–23](https://nacha-navigator.com/nacha-file-format#file-header-immediate-origin).

#### Invalid File ID Modifier

Error `FH_FILE_ID_MODIFIER`

**What it checks.** The File ID Modifier must be an uppercase letter A–Z or a digit 0–9.

**How to fix it.** Put an uppercase letter or a digit in position 34: A for the first file created on a day, then B, C and so on for each further file that day, so that files from the same day can be told apart.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [File ID Modifier, File Header position 34](https://nacha-navigator.com/nacha-file-format#file-header-file-id-modifier).

#### Record Size is not 094

Error `FH_RECORD_SIZE`

**What it checks.** The Record Size must be "094".

**How to fix it.** Set positions 35–37 of the File Header to 094.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Record Size, File Header positions 35–37](https://nacha-navigator.com/nacha-file-format#file-header-record-size).

#### Blocking Factor is not 10

Error `FH_BLOCKING_FACTOR`

**What it checks.** The Blocking Factor must be "10".

**How to fix it.** Set positions 38–39 of the File Header to 10, and pad the file with block-fill records to a multiple of 10 lines.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Blocking Factor, File Header positions 38–39](https://nacha-navigator.com/nacha-file-format#file-header-blocking-factor).

#### Format Code is not 1

Error `FH_FORMAT_CODE`

**What it checks.** The Format Code must be "1".

**How to fix it.** Set position 40 of the File Header to 1.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Format Code, File Header position 40](https://nacha-navigator.com/nacha-file-format#file-header-format-code).

### Company/Batch Header

The header of each batch (type 5): its Service Class Code, SEC code, Effective Entry Date and numbering.

#### Invalid Service Class Code

Error `BH_SERVICE_CLASS`

**What it checks.** The Service Class Code must be 200, 220, 225 or 280.

**How to fix it.** Use 220 for a batch of credits only, 225 for debits only or 200 for both, in positions 2–4 of the Batch Header, and the same code in its Batch Control. (280 is for ADV files that ACH Operators prepare.)

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Service Class Code, Company/Batch Header positions 2–4](https://nacha-navigator.com/nacha-file-format#batch-header-service-class-code).

#### Invalid SEC code

Error `BH_SEC_CODE`

**What it checks.** The Standard Entry Class Code must be one of the codes defined by the Rules, in uppercase.

**How to fix it.** Write the Standard Entry Class code that matches how the payments were authorized and who receives them, such as PPD for consumer accounts or CCD for business accounts, in uppercase in positions 51–53.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Standard Entry Class Code, Company/Batch Header positions 51–53](https://nacha-navigator.com/nacha-file-format#batch-header-standard-entry-class-code).

#### Effective date is not a banking day

Warning `BH_EFFECTIVE_DATE_NOT_BANKING_DAY`

**What it checks.** The Effective Entry Date falls on a weekend or a Federal Reserve holiday, so the entries settle on a later banking day.

**How to fix it.** Set the Effective Entry Date (positions 70–75) to a banking day, a weekday that isn’t a Federal Reserve holiday. As it stands the entries settle on the next banking day, which may be later than you intended.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Effective Entry Date, Company/Batch Header positions 70–75](https://nacha-navigator.com/nacha-file-format#batch-header-effective-entry-date).

#### Effective date is in the past

Note `BH_EFFECTIVE_DATE_PAST`

**What it checks.** The Effective Entry Date is before the reference date given to the validator; if sent now the entries settle at the next opportunity.

**How to fix it.** Set the Effective Entry Date to the day the entries should settle, today or later. Entries with a past date settle at the next opportunity, which can be the same day when the file reaches the ACH Operator before a Same Day ACH deadline.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Effective Entry Date, Company/Batch Header positions 70–75](https://nacha-navigator.com/nacha-file-format#batch-header-effective-entry-date).

#### Originator Status Code

Error `BH_ORIGINATOR_STATUS`

**What it checks.** The Originator Status Code must be 1 or 2 (0 only in ADV files).

**How to fix it.** Put 1 in position 79 of the Batch Header, or 2 if the Originator is a Federal Government entity. 0 is only for ADV files that an ACH Operator prepares.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Originator Status Code, Company/Batch Header position 79](https://nacha-navigator.com/nacha-file-format#batch-header-originator-status-code).

#### Batch numbers not ascending

Warning `BH_BATCH_NUMBER_ORDER`

**What it checks.** Batch numbers should be assigned in ascending sequence within the file.

**How to fix it.** Number the batches in ascending order through the file (0000001, 0000002 and so on) and repeat each batch’s number in its Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Batch Number, Company/Batch Header positions 88–94](https://nacha-navigator.com/nacha-file-format#batch-header-batch-number).

#### Invalid ISO code

Error `IAT_ISO_CODE`

**What it checks.** IAT country codes are two uppercase letters (ISO 3166) and currency codes three (ISO 4217).

**How to fix it.** Write countries as two uppercase letters from ISO 3166 (US, CA, MX) and currencies as three uppercase letters from ISO 4217 (USD, CAD, MXN).

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [IAT Company/Batch Header record](https://nacha-navigator.com/nacha-file-format#batch-header-iat).

### Entry Detail

Each payment (type 6): its Transaction Code, routing and account numbers, amount, addenda fields and trace number.

#### Invalid Transaction Code

Error `ED_TRANSACTION_CODE`

**What it checks.** The Transaction Code must be one defined by the Rules (21–24, 26–29, 31–34, 36–39, 41–44, 46–49, 51–56; 81–88 in ADV files).

**How to fix it.** Use a code defined for the account type and direction, such as 22 (checking credit), 27 (checking debit), 32 (savings credit) or 37 (savings debit); prenotes use 23, 28, 33 or 38. Codes 81–88 belong only in ADV files.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Transaction codes](https://nacha-navigator.com/nacha-file-format#transaction-codes).

#### Transaction Code not allowed for the SEC code

Error `ED_TRANSACTION_CODE_SEC`

**What it checks.** Some SEC codes allow only debits (ARC, BOC, POP, RCK, TEL, TRC, TRX, XCK), only credits (CIE), only zero-dollar acknowledgments (ACK, ATX), only the codes 23 and 33 (ENR), only return/NOC codes (COR) or only ADV codes (ADV). Reversing Entries (Company Entry Description REVERSAL) may move money the other way under ARC, BOC, POP, RCK, TEL, XCK and CIE (return reasons R35 and R36, Appendix Four).

**How to fix it.** Use a Transaction Code that the batch’s SEC code allows, or move the entry to a batch whose SEC code fits it: a debit code under TEL or RCK, a credit code under CIE, 23 or 33 under ENR, 24 or 34 under ACK and ATX, and a return or NOC code under COR.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [SEC codes](https://nacha-navigator.com/nacha-file-format#sec-codes).

#### Entry direction does not match the Service Class Code

Error `ED_SERVICE_CLASS_MISMATCH`

**What it checks.** A batch with Service Class Code 220 may hold only credits, and 225 only debits.

**How to fix it.** Change the batch’s Service Class Code to 200 (credits and debits) in both its header and its control, or move the entry to a batch whose Service Class Code matches its direction.

Source: Nacha Operating Rules, Appendix Two (Specifications for Data Acceptance by ACH Operators). Format reference: [Service class codes](https://nacha-navigator.com/nacha-file-format#service-class-codes).

#### RDFI routing number fails the check digit

Error `ED_RDFI_CHECK_DIGIT`

**What it checks.** Positions 4–12 (Receiving DFI Identification and Check Digit) must form a routing number that passes the ABA check-digit test.

**How to fix it.** Ask the Receiver for their bank’s routing number again (a check or the bank’s website shows it) and correct positions 4–12. Don’t just change the check digit: any of the nine digits may be the wrong one.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Check Digit, Entry Detail position 12](https://nacha-navigator.com/nacha-file-format#entry-ppd-check-digit).

#### DFI Account Number is blank

Error `ED_ACCOUNT_BLANK`

**What it checks.** Every entry needs the Receiver’s account number. ENR enrollments are the exception: they leave it blank and carry the enrollee’s account in the addenda.

**How to fix it.** Put the Receiver’s account number in positions 13–29, left-justified. If you don’t have it, hold the entry until you do: the Receiver’s bank can’t post it without one.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [DFI Account Number, Entry Detail positions 13–29](https://nacha-navigator.com/nacha-file-format#entry-ppd-dfi-account-number).

#### Prenote with an amount

Error `ED_PRENOTE_AMOUNT`

**What it checks.** Prenotification entries (Transaction Codes 23, 28, 33, 38, 43, 48, 53) must have a zero amount.

**How to fix it.** Set the amount (positions 30–39) to zeros. If the entry should move money, use the live code instead: 22 rather than 23, 27 rather than 28, 32 rather than 33, 37 rather than 38.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Amount, Entry Detail positions 30–39](https://nacha-navigator.com/nacha-file-format#entry-ppd-amount).

#### Zero-dollar entry with an amount

Error `ED_ZERO_DOLLAR_AMOUNT`

**What it checks.** Zero-dollar Transaction Codes (24, 29, 34, 39, 44, 49, 54) and ACK, ATX, COR, DNE and ENR entries must have a zero amount.

**How to fix it.** Set the amount to zeros, or use a live Transaction Code if money should move. ACK, ATX, COR, DNE and ENR entries never carry an amount.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Amount, Entry Detail positions 30–39](https://nacha-navigator.com/nacha-file-format#entry-ppd-amount).

#### Zero-dollar entry without remittance

Warning `ED_ZERO_DOLLAR_ADDENDA`

**What it checks.** A zero-dollar entry exists to carry remittance data, so it should have an addenda record.

**How to fix it.** Add the addenda record with the remittance information the entry is meant to carry and set its Addenda Record Indicator to 1, or drop the entry if there is nothing to send.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Addenda type 05 record](https://nacha-navigator.com/nacha-file-format#addenda-05).

#### Live entry for $0.00

Warning `ED_LIVE_ZERO_AMOUNT`

**What it checks.** A live-dollar Transaction Code carries a zero amount; use a prenote or zero-dollar code for non-monetary entries.

**How to fix it.** Enter the payment amount. To check an account without moving money, use a prenote code (23, 28, 33, 38); to send remittance data on its own, use a zero-dollar code (24, 29, 34, 39).

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Amount, Entry Detail positions 30–39](https://nacha-navigator.com/nacha-file-format#entry-ppd-amount).

#### Addenda Record Indicator mismatch

Error `ED_ADDENDA_INDICATOR`

**What it checks.** The Addenda Record Indicator must be 1 when addenda follow the entry and 0 when none do.

**How to fix it.** Set position 79 of the entry to 1 when addenda records follow it and to 0 when none do.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Addenda Record Indicator, Entry Detail position 79](https://nacha-navigator.com/nacha-file-format#entry-ppd-addenda-record-indicator).

#### Number of Addenda Records mismatch

Error `ED_ADDENDA_COUNT_FIELD`

**What it checks.** CTX, ENR, ATX and TRX (positions 55–58) and IAT (positions 13–16) entries state how many addenda follow; it must match.

**How to fix it.** Change the Number of Addenda Records (positions 55–58 for CTX, ENR, ATX and TRX; 13–16 for IAT) to the number of addenda that follow the entry, padded with leading zeros.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Number of Addenda Records, CTX Entry Detail positions 55–58](https://nacha-navigator.com/nacha-file-format#entry-ctx-number-of-addenda-records).

#### Unusual Payment Type Code

Note `ED_PAYMENT_TYPE`

**What it checks.** WEB and TEL debits may carry a Payment Type Code in positions 77–78. It has been optional since September 17, 2021: the Originator and ODFI decide whether to use it and what it holds, and RDFIs cannot rely on it. "R " (recurring) and "S " (single entry) are the usual values; anything else is noted, not an error.

**How to fix it.** Nothing has to change: the field is optional. If you use it, the usual values are "R " (recurring) and "S " (single entry), in uppercase; otherwise leave it blank.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Payment Type Code, WEB Entry Detail positions 77–78](https://nacha-navigator.com/nacha-file-format#entry-web-payment-type-code).

#### Trace numbers not ascending

Error `ED_TRACE_ORDER`

**What it checks.** Trace numbers must be in ascending order within a batch.

**How to fix it.** Renumber the batch so that trace numbers increase from entry to entry: the ODFI’s 8-digit routing number followed by a 7-digit sequence (0000001, 0000002 and so on). Update the addenda that repeat the trace number or its last 7 digits.

Source: Nacha Operating Rules, Appendix Two (Specifications for Data Acceptance by ACH Operators). Format reference: [Trace Number, Entry Detail positions 80–94](https://nacha-navigator.com/nacha-file-format#entry-ppd-trace-number).

#### Duplicate trace number

Error `ED_TRACE_DUPLICATE`

**What it checks.** A trace number identifies its entry within the batch, so it must be unique within the batch.

**How to fix it.** Give each entry in the batch its own trace number, usually by renumbering the 7-digit sequence, and update its addenda to match.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Trace Number, Entry Detail positions 80–94](https://nacha-navigator.com/nacha-file-format#entry-ppd-trace-number).

#### Trace number reused in another batch

Warning `ED_TRACE_DUPLICATE_FILE`

**What it checks.** Trace numbers must be unique within a batch; across the file, the Batch Number, File Creation Date and File ID Modifier tell entries apart. Many ODFIs still require trace numbers unique in the file, and a repeat makes returns and NOCs harder to match.

**How to fix it.** If your ODFI wants trace numbers to be unique in the file, continue the sequence from one batch to the next instead of starting again in each batch.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Trace Number, Entry Detail positions 80–94](https://nacha-navigator.com/nacha-file-format#entry-ppd-trace-number).

#### Trace number does not start with the ODFI

Warning `ED_TRACE_ODFI`

**What it checks.** The first 8 digits of a trace number are normally the batch’s Originating DFI Identification.

**How to fix it.** Start each trace number with the batch’s Originating DFI Identification (positions 80–87 of the Batch Header), unless your ODFI has told you to use something else.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Trace Number, Entry Detail positions 80–94](https://nacha-navigator.com/nacha-file-format#entry-ppd-trace-number).

### Addenda

Addenda records (type 7): which types an entry may carry and how many, and how each one points back to its entry.

#### Unknown Addenda Type Code

Error `AD_TYPE_CODE`

**What it checks.** The Addenda Type Code must be 02, 05, 10–18, 98 or 99.

**How to fix it.** Set positions 2–3 to the addenda type that fits the entry: 05 for payment related information, 02 for POS, SHR and MTE terminal data, 98 for a notification of change, 99 for a return, 10 to 18 for IAT.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Addenda type codes](https://nacha-navigator.com/nacha-file-format#addenda-type-codes).

#### Addenda type not allowed

Error `AD_TYPE_NOT_ALLOWED`

**What it checks.** This addenda type is not used with this SEC code or entry (e.g. 02 only with POS, SHR and MTE; 98 only in COR batches; 99 only on returns).

**How to fix it.** Use the addenda type the SEC code allows (05 under PPD or CCD, for example), remove the addenda, or move the entry to a batch with the right SEC code. ARC, BOC, POP, RCK, TEL, TRC and XCK entries carry no addenda; type 98 goes only in COR batches and type 99 only on returns.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [SEC codes](https://nacha-navigator.com/nacha-file-format#sec-codes).

#### Too many addenda

Error `AD_TOO_MANY`

**What it checks.** The SEC code limits how many addenda an entry may carry (ACK, CCD, CIE, DNE, PPD, WEB: 1; ATX, CTX, ENR, TRX: 9,999; IAT: 7 mandatory + 2 type 17 + 5 type 18).

**How to fix it.** Keep within the SEC code’s limit: one addenda on ACK, CCD, CIE, DNE, MTE, POS, PPD, SHR and WEB entries, up to 9,999 on ATX, CTX, ENR and TRX, one 98 or 99 on a NOC or return, and at most 2 type 17 and 5 type 18 on IAT. Fit the remittance into fewer records, or use CTX for a corporate payment that needs more.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [SEC codes](https://nacha-navigator.com/nacha-file-format#sec-codes).

#### Required addenda missing

Error `AD_MISSING`

**What it checks.** POS, SHR and MTE entries need a type 02 addenda; DNE and ENR a type 05; COR entries a type 98; returns a type 99; IAT entries types 10–16.

**How to fix it.** Add the addenda the entry needs and set its Addenda Record Indicator to 1: 02 for POS, SHR and MTE; 05 for DNE and ENR; 98 for a NOC in a COR batch; 99 for a return; 10 to 16 for IAT.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [SEC codes](https://nacha-navigator.com/nacha-file-format#sec-codes).

#### Addenda Sequence Number out of order

Error `AD_SEQUENCE`

**What it checks.** Addenda Sequence Numbers start at 0001 and increase by one for each addenda of the entry.

**How to fix it.** Number each entry’s addenda 0001, 0002, 0003 and so on, in order. On IAT entries, type 17 and type 18 addenda are numbered separately, each from 0001.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Addenda Sequence Number, Addenda type 05 positions 84–87](https://nacha-navigator.com/nacha-file-format#addenda-05-addenda-sequence-number).

#### Entry Detail Sequence Number mismatch

Error `AD_ENTRY_SEQUENCE`

**What it checks.** The Entry Detail Sequence Number must equal the last 7 digits of the entry’s trace number.

**How to fix it.** Set the addenda’s Entry Detail Sequence Number (positions 88–94) to the last 7 digits of its entry’s trace number.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Entry Detail Sequence Number, Addenda type 05 positions 88–94](https://nacha-navigator.com/nacha-file-format#addenda-05-entry-detail-sequence-number).

#### Addenda trace number mismatch

Error `AD_TRACE_MISMATCH`

**What it checks.** Type 02, 98 and 99 addenda repeat the trace number of their entry in positions 80–94.

**How to fix it.** Copy the entry’s 15-digit trace number into positions 80–94 of its type 02, 98 or 99 addenda.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Trace Number, Addenda type 99 positions 80–94](https://nacha-navigator.com/nacha-file-format#addenda-99-trace-number).

#### Unknown return reason code

Error `AD_RETURN_REASON`

**What it checks.** A type 99 addenda must carry a return reason code defined by the Rules (R01–R85, and R90 from March 17, 2028).

**How to fix it.** Put a return reason code that the Rules assign, in uppercase, in positions 4–6 of the type 99 addenda: the assigned codes lie between R01 and R85, plus R90 from March 17, 2028.

Source: Nacha Operating Rules, Appendix Four (Return Entries). Format reference: [Return reason codes](https://nacha-navigator.com/nacha-file-format#return-reason-codes).

#### Return reason code not yet in effect

Warning `AD_RETURN_REASON_NOT_EFFECTIVE`

**What it checks.** R90 (Entry Returned Due to RDFI’s Sanctions Compliance Obligations) may be used from March 17, 2028. A file dated earlier should not use it; until then, a return made on an OFAC instruction uses R16.

**How to fix it.** Use a code that is in effect on the file’s date. Until March 17, 2028, a return made on an OFAC instruction uses R16; use R90 only in files dated on or after that day.

Source: Nacha Operating Rules, Appendix Four (Return Entries). Format reference: [Return reason codes](https://nacha-navigator.com/nacha-file-format#return-reason-codes).

#### Return addenda on a non-return entry

Error `AD_RETURN_ENTRY_CODE`

**What it checks.** Type 98 and 99 addenda belong to entries with a return/NOC Transaction Code (21, 26, 31, 36, 41, 46, 51, 56).

**How to fix it.** Give the entry the return/NOC Transaction Code for its account type (21, 26, 31, 36, 41, 46, 51 or 56), or remove the type 98 or 99 addenda if the entry isn’t a return or a NOC.

Source: Nacha Operating Rules, Appendix Four (Return Entries). Format reference: [Transaction codes](https://nacha-navigator.com/nacha-file-format#transaction-codes).

#### Date of death missing

Warning `AD_DATE_OF_DEATH`

**What it checks.** Returns for reason R14 or R15 should carry the date of death.

**How to fix it.** Add the date of death, as YYMMDD, in positions 22–27 of the type 99 addenda of the R14 or R15 return.

Source: Nacha Operating Rules, Appendix Four (Return Entries). Format reference: [Date of Death, Addenda type 99 positions 22–27](https://nacha-navigator.com/nacha-file-format#addenda-99-date-of-death).

#### Unknown change code

Error `AD_CHANGE_CODE`

**What it checks.** A type 98 addenda must carry a current change code (C01–C03, C05–C09, C13 or C14), or C61–C69 for a refused NOC. C04 and C10–C12 are retired.

**How to fix it.** Use a current change code in positions 4–6: C01–C03, C05–C09, C13 or C14, or C61–C69 to refuse a NOC. C04 and C10–C12 are retired and can’t be used.

Source: Nacha Operating Rules, Appendix Five (Notification of Change). Format reference: [Change codes (NOC)](https://nacha-navigator.com/nacha-file-format#change-codes).

#### Corrected Data invalid

Error `AD_CORRECTED_DATA`

**What it checks.** The Corrected Data of a NOC must be filled in and laid out as its change code requires.

**How to fix it.** Put the corrected information in positions 36–64 in the layout its change code requires: the account number for C01, the 9-digit routing number for C02, or for C06 the account number in positions 1–17, blanks in 18–20 and the Transaction Code in 21–22.

Source: Nacha Operating Rules, Appendix Five (Notification of Change). Format reference: [Change codes (NOC)](https://nacha-navigator.com/nacha-file-format#change-codes).

#### IAT addenda out of order

Error `AD_IAT_ORDER`

**What it checks.** IAT entries carry addenda types 10, 11, 12, 13, 14, 15 and 16 in that order, then optional 17s and 18s.

**How to fix it.** Place the IAT entry’s addenda directly after it, in order: types 10 to 16, then any type 17 (up to 2) and type 18 (up to 5) addenda.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Addenda type 10 record](https://nacha-navigator.com/nacha-file-format#addenda-10).

### Controls and totals

The Company/Batch Control (type 8) and File Control (type 9) records, which count and total everything before them, and the block fill that pads the file.

#### Service Class Code mismatch

Error `BC_SERVICE_CLASS`

**What it checks.** The Batch Control Service Class Code must match the Batch Header.

**How to fix it.** Copy the Batch Header’s Service Class Code into positions 2–4 of the Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Service Class Code, Company/Batch Control positions 2–4](https://nacha-navigator.com/nacha-file-format#batch-control-service-class-code).

#### Entry/Addenda Count mismatch

Error `BC_ENTRY_ADDENDA_COUNT`

**What it checks.** The Entry/Addenda Count must equal the number of Entry Detail and Addenda records in the batch.

**How to fix it.** Count the batch’s Entry Detail and Addenda records and write the number in positions 5–10 of the Batch Control, zero-filled.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Entry/Addenda Count, Company/Batch Control positions 5–10](https://nacha-navigator.com/nacha-file-format#batch-control-entry-addenda-count).

#### Entry Hash mismatch

Error `BC_ENTRY_HASH`

**What it checks.** The Entry Hash must equal the sum of the 8-digit RDFI identifications in the batch, keeping the rightmost 10 digits.

**How to fix it.** Add up the 8-digit RDFI identification (positions 4–11) of every entry in the batch and write the rightmost 10 digits of the sum in positions 11–20 of the Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Entry Hash, Company/Batch Control positions 11–20](https://nacha-navigator.com/nacha-file-format#batch-control-entry-hash).

#### Total debit mismatch

Error `BC_TOTAL_DEBIT`

**What it checks.** The Total Debit Entry Dollar Amount must equal the sum of the batch’s debit entries.

**How to fix it.** Add up the amounts of the batch’s debit entries, in cents, and write the total in positions 21–32 of the Batch Control, zero-filled. A debit is a Transaction Code whose second digit is 5 to 9.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Total Debit Entry Dollar Amount, Company/Batch Control positions 21–32](https://nacha-navigator.com/nacha-file-format#batch-control-total-debit-entry-dollar-amount).

#### Total credit mismatch

Error `BC_TOTAL_CREDIT`

**What it checks.** The Total Credit Entry Dollar Amount must equal the sum of the batch’s credit entries.

**How to fix it.** Add up the amounts of the batch’s credit entries, in cents, and write the total in positions 33–44 of the Batch Control, zero-filled. A credit is a Transaction Code whose second digit is 1 to 4.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Total Credit Entry Dollar Amount, Company/Batch Control positions 33–44](https://nacha-navigator.com/nacha-file-format#batch-control-total-credit-entry-dollar-amount).

#### Company Identification mismatch

Error `BC_COMPANY_ID`

**What it checks.** The Batch Control Company Identification must match the Batch Header.

**How to fix it.** Copy the Company Identification from positions 41–50 of the Batch Header into positions 45–54 of the Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Company Identification, Company/Batch Control positions 45–54](https://nacha-navigator.com/nacha-file-format#batch-control-company-identification).

#### ODFI mismatch

Error `BC_ODFI`

**What it checks.** The Batch Control Originating DFI Identification must match the Batch Header.

**How to fix it.** Copy the Originating DFI Identification from positions 80–87 of the Batch Header into the same positions of the Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Originating DFI Identification, Company/Batch Control positions 80–87](https://nacha-navigator.com/nacha-file-format#batch-control-originating-dfi-identification).

#### Batch Number mismatch

Error `BC_BATCH_NUMBER`

**What it checks.** The Batch Control Batch Number must match the Batch Header.

**How to fix it.** Copy the Batch Number from positions 88–94 of the Batch Header into the same positions of the Batch Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Batch Number, Company/Batch Control positions 88–94](https://nacha-navigator.com/nacha-file-format#batch-control-batch-number).

#### Batch Count mismatch

Error `FC_BATCH_COUNT`

**What it checks.** The Batch Count must equal the number of batches in the file.

**How to fix it.** Count the batches (Company/Batch Header records) in the file and write the number in positions 2–7 of the File Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Batch Count, File Control positions 2–7](https://nacha-navigator.com/nacha-file-format#file-control-batch-count).

#### Block Count mismatch

Error `FC_BLOCK_COUNT`

**What it checks.** The Block Count must equal the number of records (File Header through File Control, plus block fill) divided by 10, rounded up.

**How to fix it.** Count the records from the File Header through the File Control, divide by 10 and round up, and write the result in positions 8–13. With block fill, that is the number of 10-record blocks: a 20-line file is 000002.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Block Count, File Control positions 8–13](https://nacha-navigator.com/nacha-file-format#file-control-block-count).

#### Entry/Addenda Count mismatch

Error `FC_ENTRY_ADDENDA_COUNT`

**What it checks.** The file Entry/Addenda Count must equal the number of Entry Detail and Addenda records in the file.

**How to fix it.** Write the number of Entry Detail and Addenda records in the whole file, the sum of the batch counts, in positions 14–21 of the File Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Entry/Addenda Count, File Control positions 14–21](https://nacha-navigator.com/nacha-file-format#file-control-entry-addenda-count).

#### Entry Hash mismatch

Error `FC_ENTRY_HASH`

**What it checks.** The file Entry Hash must equal the sum of all RDFI identifications (the sum of the batch hashes), rightmost 10 digits.

**How to fix it.** Add up every entry’s RDFI identification (or the batches’ Entry Hash values, once they are right) and write the rightmost 10 digits of the sum in positions 22–31 of the File Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Entry Hash, File Control positions 22–31](https://nacha-navigator.com/nacha-file-format#file-control-entry-hash).

#### Total debit mismatch

Error `FC_TOTAL_DEBIT`

**What it checks.** The file Total Debit Entry Dollar Amount must equal the sum of all debit entries.

**How to fix it.** Write the total of all debit entries in the file, in cents (the sum of the batches’ debit totals), in positions 32–43 of the File Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Total Debit Entry Dollar Amount in File, File Control positions 32–43](https://nacha-navigator.com/nacha-file-format#file-control-total-debit-entry-dollar-amount).

#### Total credit mismatch

Error `FC_TOTAL_CREDIT`

**What it checks.** The file Total Credit Entry Dollar Amount must equal the sum of all credit entries.

**How to fix it.** Write the total of all credit entries in the file, in cents (the sum of the batches’ credit totals), in positions 44–55 of the File Control.

Source: Nacha Operating Rules, Appendix Three (ACH Record Format Specifications). Format reference: [Total Credit Entry Dollar Amount in File, File Control positions 44–55](https://nacha-navigator.com/nacha-file-format#file-control-total-credit-entry-dollar-amount).

#### File is not padded to a multiple of 10 records

Warning `BLOCK_FILL_MISSING`

**What it checks.** With a blocking factor of 10, the file is padded with block-fill records (94 nines) to a multiple of 10 records.

**How to fix it.** Add block-fill records, 94 nines each, after the File Control until the number of lines is a multiple of 10, and count them in the Block Count.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Block-fill records](https://nacha-navigator.com/nacha-file-format#block-fill).

#### Too many block-fill records

Warning `BLOCK_FILL_EXCESS`

**What it checks.** Only enough block-fill records to complete the last block of 10 are needed.

**How to fix it.** Delete block-fill records until only enough remain to complete the last block of 10, and update the Block Count to match.

Source: Nacha Operating Rules, Appendix One (ACH File Exchange Specifications). Format reference: [Block-fill records](https://nacha-navigator.com/nacha-file-format#block-fill).

### Notes about the list

Not a check of the file: a note the viewer adds to its list of issues.

#### More issues not listed

Note `ISSUES_TRUNCATED`

**What it checks.** A rule fired more times than the listing limit; the remaining occurrences are counted, not listed.

**How to fix it.** Fix the occurrences that are listed first: one cause, such as a shifted field or an export setting, usually explains the rest. Then open the corrected file again to see what remains.

Source: NACHA Navigator (the validator’s own listing limit, not a Nacha rule).

## Sources

The checks follow the record formats and file rules in the Nacha Operating Rules: Appendix One (file exchange), Appendix Two (data acceptance by ACH Operators), Appendix Three (record formats), Appendix Four (returns) and Appendix Five (notifications of change). The explanations and fixes on this page are our own. Banks can add requirements of their own, so check your bank’s file specifications too.

NACHA Navigator is independent and not affiliated with or endorsed by Nacha. This page is for information only; it is not legal or compliance advice.

[Nacha Operating Rules (opens nacha.org in a new tab)](https://www.nacha.org/rules) [Open the NACHA Viewer](https://nacha-navigator.com/)
