---
title: "ACH Transaction Codes: 22, 27, 32, 37 and Every Other"
description: "Every ACH transaction code in one table: what the two digits mean, live entries, prenotes, zero-dollar entries, returns and the codes a reversal swaps."
canonical: https://nacha-navigator.com/ach-transaction-codes
updated: 2026-10-30
---

# ACH transaction codes

Reference

The two digits in positions 2–3 of every Entry Detail record: which kind of account the entry posts to, whether it is a credit or a debit, and whether it moves money.

Last updated October 30, 2026

Every entry in a NACHA file carries a transaction code. The first digit names the account: checking, savings, general ledger or loan. The second says what the entry does: a live credit or debit, a prenote, a zero-dollar entry that carries remittance data, or a return or notification of change sent back by the receiving bank. So 22 puts money into a checking account and 27 takes money out of one; 32 and 37 do the same for a savings account.

## Reading the two digits

### First digit: the account

| Digit | Account | Codes |
| --- | --- | --- |
| 2 | Checking account (a demand deposit account) | 21–24, 26–29 |
| 3 | Savings account | 31–34, 36–39 |
| 4 | A general ledger account at the financial institution | 41–44, 46–49 |
| 5 | Loan account | 51–56 |
| 8 | Not an account: an ACH Operator’s accounting record, only in ADV files | 81–88 |

### Second digit: what the entry is

| Digit | What the entry is | Codes | Counts as |
| --- | --- | --- | --- |
| 1 | Return or notification of change (NOC) of a credit whose code ended in 2, 3 or 4 | 21, 31, 41, 51 | Credit |
| 2 | Live credit: puts money into the account | 22, 32, 42, 52 | Credit |
| 3 | Prenote of a credit: a $0.00 entry that checks the account first | 23, 33, 43, 53 | Credit |
| 4 | Zero-dollar credit that carries remittance data | 24, 34, 44, 54 | Credit |
| 5 | Loan debit, used only to reverse a loan credit | 55 | Debit |
| 6 | Return or NOC of a debit whose code ended in 7, 8 or 9 (5 for a loan) | 26, 36, 46, 56 | Debit |
| 7 | Live debit: takes money from the account | 27, 37, 47 | Debit |
| 8 | Prenote of a debit | 28, 38, 48 | Debit |
| 9 | Zero-dollar debit that carries remittance data | 29, 39, 49 | Debit |

The second digit also decides which control total an entry counts in: codes ending in 1 to 4 are credits and 5 to 9 are debits, in the batch and the file totals alike. The ADV codes 81–88 don’t follow the pattern: each has its own meaning, and the odd ones are credits, the even ones debits.

Not every pair of digits is a code. There is no prenote or zero-dollar loan debit, and the only loan debit, 55, exists to reverse a loan credit. A two-digit value that isn’t in the table below is not a transaction code, and the NACHA Viewer reports it as an [invalid Transaction Code](https://nacha-navigator.com/nacha-file-errors#ed-transaction-code).

## Every ACH transaction code

All 38 codes, grouped by account, from the same table the NACHA Viewer and its validator use. Each row can be linked to directly: [#code-21](https://nacha-navigator.com/ach-transaction-codes#code-21) goes to 21.

| Code | Account | Direction | Kind | Meaning |
| --- | --- | --- | --- | --- |
| 21 | Checking | Credit | Return or NOC | Return or NOC of a checking credit (original code 22, 23 or 24) |
| 22 | Checking | Credit | Live | Checking credit (deposit) |
| 23 | Checking | Credit | Prenote | Prenote: checking credit (also DNE and ENR non-dollar entries) |
| 24 | Checking | Credit | Zero-dollar | Zero-dollar checking credit with remittance data (CCD, CTX, IAT); ACK and ATX acknowledgments |
| 26 | Checking | Debit | Return or NOC | Return or NOC of a checking debit (original code 27, 28 or 29) |
| 27 | Checking | Debit | Live | Checking debit (payment) |
| 28 | Checking | Debit | Prenote | Prenote: checking debit |
| 29 | Checking | Debit | Zero-dollar | Zero-dollar checking debit with remittance data (CCD, CTX, IAT) |
| 31 | Savings | Credit | Return or NOC | Return or NOC of a savings credit (original code 32, 33 or 34) |
| 32 | Savings | Credit | Live | Savings credit (deposit) |
| 33 | Savings | Credit | Prenote | Prenote: savings credit (also DNE and ENR non-dollar entries) |
| 34 | Savings | Credit | Zero-dollar | Zero-dollar savings credit with remittance data (CCD, CTX, IAT); ACK and ATX acknowledgments |
| 36 | Savings | Debit | Return or NOC | Return or NOC of a savings debit (original code 37, 38 or 39) |
| 37 | Savings | Debit | Live | Savings debit (payment) |
| 38 | Savings | Debit | Prenote | Prenote: savings debit |
| 39 | Savings | Debit | Zero-dollar | Zero-dollar savings debit with remittance data (CCD, CTX, IAT) |
| 41 | General ledger | Credit | Return or NOC | Return or NOC of a general ledger credit (original code 42, 43 or 44) |
| 42 | General ledger | Credit | Live | General ledger credit (deposit) |
| 43 | General ledger | Credit | Prenote | Prenote: general ledger credit |
| 44 | General ledger | Credit | Zero-dollar | Zero-dollar general ledger credit with remittance data (CCD, CTX) |
| 46 | General ledger | Debit | Return or NOC | Return or NOC of a general ledger debit (original code 47, 48 or 49) |
| 47 | General ledger | Debit | Live | General ledger debit (payment) |
| 48 | General ledger | Debit | Prenote | Prenote: general ledger debit |
| 49 | General ledger | Debit | Zero-dollar | Zero-dollar general ledger debit with remittance data (CCD, CTX) |
| 51 | Loan | Credit | Return or NOC | Return or NOC of a loan credit (original code 52, 53 or 54) |
| 52 | Loan | Credit | Live | Loan account credit (deposit to a loan) |
| 53 | Loan | Credit | Prenote | Prenote: loan credit |
| 54 | Loan | Credit | Zero-dollar | Zero-dollar loan credit with remittance data (CCD, CTX) |
| 55 | Loan | Debit | Live | Loan account debit (reversals only) |
| 56 | Loan | Debit | Return or NOC | Return or NOC of a loan debit (original code 55) |
| 81 | Accounting (ADV) | Credit | Accounting advice | ADV: credit for ACH debits originated |
| 82 | Accounting (ADV) | Debit | Accounting advice | ADV: debit for ACH credits originated |
| 83 | Accounting (ADV) | Credit | Accounting advice | ADV: credit for ACH credits received |
| 84 | Accounting (ADV) | Debit | Accounting advice | ADV: debit for ACH debits received |
| 85 | Accounting (ADV) | Credit | Accounting advice | ADV: credit for ACH credits in rejected batches |
| 86 | Accounting (ADV) | Debit | Accounting advice | ADV: debit for ACH debits in rejected batches |
| 87 | Accounting (ADV) | Credit | Accounting advice | ADV: summary credit for respondent ACH activity |
| 88 | Accounting (ADV) | Debit | Accounting advice | ADV: summary debit for respondent ACH activity |

## Where the code goes in a file

The transaction code is [positions 2–3 of the Entry Detail record](https://nacha-navigator.com/nacha-file-format#entry-ppd-transaction-code), right after the record type 6. It is mandatory, and it sits in the same place whatever the batch’s SEC code. Here it is in line 3 of the PPD sample file:

```
6220655033481111111          0000000010000001309      JOHN M SMITH            0065503680000001
```

Record type 6, then transaction code 22: a live credit to a checking account, here for $0.10.

### What the code has to agree with

- **The batch’s Service Class Code** (positions 2–4 of the [Company/Batch Header](https://nacha-navigator.com/nacha-file-format#batch-header)): a [220](https://nacha-navigator.com/nacha-file-format#service-class-220) batch holds only credits, a [225](https://nacha-navigator.com/nacha-file-format#service-class-225) batch only debits, and a 200 batch both. A code on the wrong side is an error: [entry direction does not match the Service Class Code](https://nacha-navigator.com/nacha-file-errors#ed-service-class-mismatch).
- **The batch’s SEC code:** ARC, BOC, POP, RCK, TEL, TRC, TRX and XCK entries are debits, CIE entries are credits, ACK and ATX acknowledgments use 24 or 34, ENR enrollments use 23 or 33, COR entries use the return and NOC codes, and ADV batches use 81–88. A reversing entry may go the other way under ARC, BOC, POP, RCK, TEL, XCK and CIE. See [Transaction Code not allowed for the SEC code](https://nacha-navigator.com/nacha-file-errors#ed-transaction-code-sec).
- **The amount:** prenotes and zero-dollar entries must be $0.00 ([prenote with an amount](https://nacha-navigator.com/nacha-file-errors#ed-prenote-amount), [zero-dollar entry with an amount](https://nacha-navigator.com/nacha-file-errors#ed-zero-dollar-amount)), and a live code with $0.00 gets a warning ([live entry for $0.00](https://nacha-navigator.com/nacha-file-errors#ed-live-zero-amount)).
- **Its addenda:** a type 98 (notification of change) or type 99 (return) addenda may follow only an entry with a return or NOC code ([return addenda on a non-return entry](https://nacha-navigator.com/nacha-file-errors#ad-return-entry-code)).

## Prenotes and zero-dollar entries

Live codes move money, and a return moves the original entry’s amount back. Every code is one of these kinds:

**Kinds of transaction code and what each does with the amount**

| Kind | Codes | Amount |
| --- | --- | --- |
| Live | 22, 27, 32, 37, 42, 47, 52, 55 | Moves money |
| Prenote | 23, 28, 33, 38, 43, 48, 53 | Always $0.00 |
| Zero-dollar | 24, 29, 34, 39, 44, 49, 54 | Always $0.00; remittance data goes in addenda records |
| Return or NOC | 21, 26, 31, 36, 41, 46, 51, 56 | The amount being returned; $0.00 on a notification of change |
| Accounting advice | 81–88 | Reports an amount but moves no money |

### Prenotes

A prenote (prenotification) is a $0.00 entry with a code ending in 3 or 8: 23, 28, 33, 38, 43, 48, 53. An Originator can send one to test a routing and account number before the first live entry. Live entries may then start from the third banking day after the prenote’s settlement date if no return came back for it; if a notification of change came back, its correction comes first. ENR enrollments and DNE death notifications use 23 and 33 as well, without being prenotes.

### Zero-dollar entries

A code ending in 4 or 9 (24, 29, 34, 39, 44, 49, 54) marks a zero-dollar entry: it carries remittance data in its addenda records instead of money. The [table of every code](https://nacha-navigator.com/ach-transaction-codes#all-codes) names the SEC codes that may use each one. ACK and ATX acknowledgments, which an RDFI sends back for a CCD or CTX credit, use 24 and 34. The NACHA Viewer warns about a zero-dollar entry with no addenda ([zero-dollar entry without remittance](https://nacha-navigator.com/nacha-file-errors#ed-zero-dollar-addenda)).

## Returns and notifications of change

When an RDFI returns an entry or sends a notification of change (NOC), the entry it sends back carries the return or NOC code of the same account: 21 for a checking credit (22, 23 or 24), 26 for a checking debit (27, 28 or 29), and so on up to 56, for a loan debit (55). The reason travels in an addenda record: [type 99](https://nacha-navigator.com/nacha-file-format#addenda-99) with a [return reason code](https://nacha-navigator.com/nacha-file-format#return-reason-codes) for a return, [type 98](https://nacha-navigator.com/nacha-file-format#addenda-98) with a [change code](https://nacha-navigator.com/nacha-file-format#change-codes) for a NOC.

Three change codes correct the transaction code itself, in the Corrected Data of the NOC:

- [C05](https://nacha-navigator.com/nacha-file-format#noc-c05) Incorrect Transaction Code: correct Transaction Code in the first 2 positions.
- [C06](https://nacha-navigator.com/nacha-file-format#noc-c06) Incorrect DFI Account Number and Incorrect Transaction Code: correct DFI Account Number in positions 1–17, three blanks (18–20), then the correct Transaction Code in 21–22.
- [C07](https://nacha-navigator.com/nacha-file-format#noc-c07) Incorrect Routing Number, Incorrect DFI Account Number, and Incorrect Transaction Code: correct routing number (9), DFI Account Number (17) and Transaction Code (2).

## Reversals

A reversing entry moves the same amount back the other way, on the same kind of account. So it uses the other live code of its account: a credit is reversed with that account’s debit code, and a debit with its credit code.

**Transaction codes that reverse each other**

| Account | Live credit | Live debit |
| --- | --- | --- |
| Checking | 22 | 27 |
| Savings | 32 | 37 |
| General ledger | 42 | 47 |
| Loan | 52 | 55 |

Prenotes, zero-dollar entries, NOCs and ADV records move no money, so there is nothing to reverse. A return is the Receiver’s bank sending an entry back, not an entry the Originator can reverse; an ODFI answers a faulty return by [dishonoring it](https://nacha-navigator.com/nacha-file-format#addenda-99-dishonored) (R61, R62, R67–R70). [ACH Reversal](https://nacha-navigator.com/ach-reversal) builds the reversing file from your original file, with the codes swapped and REVERSAL as the entry description.

## See them in a file

The sample files open in the NACHA Viewer, which names each entry’s code and checks it:

- [PPD payroll](https://nacha-navigator.com/?sample=ppd): prenotes to checking (23) and savings (33), and a live checking credit (22).
- [CCD vendor payments](https://nacha-navigator.com/?sample=ccd-addenda): a credits-only and a debits-only batch (Service Class Codes 220 and 225), and a zero-dollar remittance entry (24).
- [Returns and notifications of change](https://nacha-navigator.com/?sample=returns-noc): return codes 21, 26 and 36, and a C05 that corrects a transaction code.
- [Validation demo](https://nacha-navigator.com/?sample=with-errors): among its deliberate problems, a prenote with an amount and a debit in a credits-only batch.

To make a file, the [NACHA Generator](https://nacha-navigator.com/nacha-generator) picks the code from the account type, credit or debit, and whether the entry is a prenote: 22, 23, 27, 28, 32, 33, 37 and 38. The [sample files](https://nacha-navigator.com/sample-files) page lists every sample, ready to download.

NACHA Navigator is independent and not affiliated with or endorsed by Nacha. This page describes the record format for general information; it is not legal or compliance advice. The [Nacha Operating Rules](https://www.nacha.org/rules) are the authority, and they change every year.
