Skip to content

Reference

ACH transaction codes

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

On this page

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

DigitAccountCodes
2Checking account (a demand deposit account)21–24, 26–29
3Savings account31–34, 36–39
4A general ledger account at the financial institution41–44, 46–49
5Loan account51–56
8Not an account: an ACH Operator’s accounting record, only in ADV files81–88

Second digit: what the entry is

DigitWhat the entry isCodesCounts as
1Return or notification of change (NOC) of a credit whose code ended in 2, 3 or 421, 31, 41, 51Credit
2Live credit: puts money into the account22, 32, 42, 52Credit
3Prenote of a credit: a $0.00 entry that checks the account first23, 33, 43, 53Credit
4Zero-dollar credit that carries remittance data24, 34, 44, 54Credit
5Loan debit, used only to reverse a loan credit55Debit
6Return or NOC of a debit whose code ended in 7, 8 or 9 (5 for a loan)26, 36, 46, 56Debit
7Live debit: takes money from the account27, 37, 47Debit
8Prenote of a debit28, 38, 48Debit
9Zero-dollar debit that carries remittance data29, 39, 49Debit

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.

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 goes to 21.

CodeAccountDirectionKindMeaning
21CheckingCreditReturn or NOCReturn or NOC of a checking credit (original code 22, 23 or 24)
22CheckingCreditLiveChecking credit (deposit)
23CheckingCreditPrenotePrenote: checking credit (also DNE and ENR non-dollar entries)
24CheckingCreditZero-dollarZero-dollar checking credit with remittance data (CCD, CTX, IAT); ACK and ATX acknowledgments
26CheckingDebitReturn or NOCReturn or NOC of a checking debit (original code 27, 28 or 29)
27CheckingDebitLiveChecking debit (payment)
28CheckingDebitPrenotePrenote: checking debit
29CheckingDebitZero-dollarZero-dollar checking debit with remittance data (CCD, CTX, IAT)
31SavingsCreditReturn or NOCReturn or NOC of a savings credit (original code 32, 33 or 34)
32SavingsCreditLiveSavings credit (deposit)
33SavingsCreditPrenotePrenote: savings credit (also DNE and ENR non-dollar entries)
34SavingsCreditZero-dollarZero-dollar savings credit with remittance data (CCD, CTX, IAT); ACK and ATX acknowledgments
36SavingsDebitReturn or NOCReturn or NOC of a savings debit (original code 37, 38 or 39)
37SavingsDebitLiveSavings debit (payment)
38SavingsDebitPrenotePrenote: savings debit
39SavingsDebitZero-dollarZero-dollar savings debit with remittance data (CCD, CTX, IAT)
41General ledgerCreditReturn or NOCReturn or NOC of a general ledger credit (original code 42, 43 or 44)
42General ledgerCreditLiveGeneral ledger credit (deposit)
43General ledgerCreditPrenotePrenote: general ledger credit
44General ledgerCreditZero-dollarZero-dollar general ledger credit with remittance data (CCD, CTX)
46General ledgerDebitReturn or NOCReturn or NOC of a general ledger debit (original code 47, 48 or 49)
47General ledgerDebitLiveGeneral ledger debit (payment)
48General ledgerDebitPrenotePrenote: general ledger debit
49General ledgerDebitZero-dollarZero-dollar general ledger debit with remittance data (CCD, CTX)
51LoanCreditReturn or NOCReturn or NOC of a loan credit (original code 52, 53 or 54)
52LoanCreditLiveLoan account credit (deposit to a loan)
53LoanCreditPrenotePrenote: loan credit
54LoanCreditZero-dollarZero-dollar loan credit with remittance data (CCD, CTX)
55LoanDebitLiveLoan account debit (reversals only)
56LoanDebitReturn or NOCReturn or NOC of a loan debit (original code 55)
81Accounting (ADV)CreditAccounting adviceADV: credit for ACH debits originated
82Accounting (ADV)DebitAccounting adviceADV: debit for ACH credits originated
83Accounting (ADV)CreditAccounting adviceADV: credit for ACH credits received
84Accounting (ADV)DebitAccounting adviceADV: debit for ACH debits received
85Accounting (ADV)CreditAccounting adviceADV: credit for ACH credits in rejected batches
86Accounting (ADV)DebitAccounting adviceADV: debit for ACH debits in rejected batches
87Accounting (ADV)CreditAccounting adviceADV: summary credit for respondent ACH activity
88Accounting (ADV)DebitAccounting adviceADV: 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, 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

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
KindCodesAmount
Live22, 27, 32, 37, 42, 47, 52, 55Moves money
Prenote23, 28, 33, 38, 43, 48, 53Always $0.00
Zero-dollar24, 29, 34, 39, 44, 49, 54Always $0.00; remittance data goes in addenda records
Return or NOC21, 26, 31, 36, 41, 46, 51, 56The amount being returned; $0.00 on a notification of change
Accounting advice81–88Reports 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 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).

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 with a return reason code for a return, type 98 with a change code for a NOC.

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

  • C05 Incorrect Transaction Code: correct Transaction Code in the first 2 positions.
  • 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 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
AccountLive creditLive debit
Checking2227
Savings3237
General ledger4247
Loan5255

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 (R61, R62, R67–R70). 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: prenotes to checking (23) and savings (33), and a live checking credit (22).
  • CCD vendor payments: 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: return codes 21, 26 and 36, and a C05 that corrects a transaction code.
  • Validation demo: among its deliberate problems, a prenote with an amount and a debit in a credits-only batch.

To make a file, the 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 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 (opens in a new tab) are the authority, and they change every year.