A line reads ACH DEB CO ACME PAYROLL SER and you are left to
work out the rest. There is no master list to look it up in — nothing obliges two banks
to spell the same thing the same way — but every line is assembled the same way, and
once you can see the parts, most of these codes stop needing a dictionary.
For an electronic payment in the United States, three pieces of text are required to reach you: a company name of up to 16 characters, a company entry description of up to 10, and a receiving individual name of up to 22. That much is fixed by Regulation E and the Nacha operating rules. What your bank does with them on the page is fixed by nobody.
The result is what you see. Barclays writes STO for a standing order and
DDR for a direct debit. NatWest and RBS, for the same two things, write
S/O and D/D. Desjardins writes WD for a
withdrawal at the counter and WWB for a bill payment, which neither of the
other two would recognise. Three banks, three vocabularies, and each one publishes its
own list because it has to.
So a table claiming to decode every code on every statement is guessing at most of them. Two things actually work: read the line by its structure, which is the same everywhere, and look the leftovers up in the list your own bank publishes.
Channel, direction, counterparty, reference — in that order, with pieces missing when the bank had nothing to put there. Here is the payroll line from the top of this page with the parts named:
ACH DEB CO ACME PAYROLL SER 031026 ACH channel — the US batch clearing system DEB direction — money out CO the company's own fields start here ACME PAYROLL SER the sender's name, cut to 16 characters 031026 the sender's reference, here a date: 3 October 2026
CO is the piece that trips people up, because it looks like a code for a
kind of payment and is not one. It labels the block of fields the sending company
filled in. Bank of America spells the same labels out — DES: for the
company entry description, INDN: for the individual name,
CO ID: for the company's identification number. Wells Fargo prints no
labels at all, just five fields in a fixed order: company name, entry description,
descriptive date, individual id, individual name. One payment, three layouts, and the
data underneath identical in all three.
A card purchase is built the same way and shorter:
POS PUR 4417 STAPLES, INC #0233 POS channel — a card used in person, at a point of sale PUR purchase 4417 the last four digits of the card used STAPLES, INC #0233 what the merchant registered with its card processor
The fourth part is the one worth knowing about: nobody at your bank typed it. It is the merchant's own trading name as registered, which is why a coffee you bought in a café appears under a holding company you have never heard of. Your bank cannot tell you what it means either — it is passing on a string.
The first part of the line. Spellings differ by bank; these are the ones their own lists give.
| Code | Means | Worth knowing |
|---|---|---|
| ACH | Automated Clearing House | The US batch system: payroll, direct debits, most bill payments. Settles in a day or two, not instantly. |
| POS | Point of sale | A card used in person. RBS adds the honest note that if you do not recognise the retailer name, it may be able to help. |
| ATM · C/L · CDM | Cash machine | RBS: C/L is Cashline, CDM a cash and deposit machine. Money in or out, same channel. |
| CHAPS · CHP | Clearing House Automated Payment System | The UK same-day wire, used for house purchases. Barclays spells it out; RBS writes CHP. |
| BGC | Bank giro credit | Cash or cheques paid in over a counter. Both Barclays and RBS use it, and it is one of the few they agree on. |
| D/D · DDR | Direct debit | The payee pulls the money with a mandate you signed once. The amount can change without you doing anything. |
| S/O · STO | Standing order | You push a fixed amount on a schedule. Changing it is yours to do, which is the practical difference from a direct debit. |
| CHQ · CHECK | Cheque | Watch the date: a cheque is dated when written and lands when cleared. |
| TFR · IBP · BSP | Transfer | RBS: IBP is an inter-branch payment, BSP a branch single payment. TFR usually means between your own accounts, but not always. |
| BBP · WWB | Bill payment | Barclays writes BBP, Desjardins WWB. The same act, two unrelated abbreviations. |
| DPC · TSU · TLR · POC | Where you did it | RBS, in order: digital banking, telephone banking, a teller, a Post Office counter. Channel, not payment type. |
| REM | Remittance | Barclays: a cheque credited to your account that was paid in somewhere other than your own branch. |
The second part — and the one place where reading the word instead of the number will mislead you.
| Code | Means | Worth knowing |
|---|---|---|
| DR | Debit — or overdrawn | The trap. Barclays defines DR as a debit balance, that is, overdrawn; RBS as "account overdrawn or debit item". Beside a balance it describes the account, not the transaction. |
| CR · CRE | Credit | Money in. Barclays uses CRE for a credit payment and C/R, at RBS, is a credit remittance — close spellings, different things. |
| DEB · DBT · WD · WTH | Money out | Four spellings for one direction. In a converted file the sign on the amount is what counts; the word is decoration. |
| PUR · PWL | Purchase | Desjardins: PWL is a purchase with cash taken out at the till, which is two things on one line. |
| REV | Reversal | Barclays: a standing order or direct debit has been recalled. Expect a matching entry the other way. |
| UNP · CUI | Unpaid | Barclays: unpaid. RBS: CUI is an unpaid cheque paid in. Money that looked like it had arrived and has gone again. |
| RFD | Refund | RBS writes ATM RFD for a cash machine refund. A refund is a separate line, never a deletion of the original. |
| INT · DIV | Interest · dividend | Both can be credits or, for interest on an overdraft, a charge. |
| CHG · ADM | Charge | RBS has replaced CHG with the word "Charge"; Desjardins writes ADM for service charges. |
| N-S TRN FEE · VRATE | Foreign currency | RBS: a non-sterling transaction fee, and the Visa scheme exchange rate the conversion used. |
| NSF | Non-sufficient funds | US statements. The payment was refused for lack of money, and the fee for refusing it is usually its own line. |
Every US electronic payment carries a three-letter class code defined by Nacha. These mean the same thing at every bank, and they answer a question the rest of the line does not: who authorised this, and how.
Prearranged payment and deposit — a consumer account, with authorisation on paper or its equivalent. Payroll going in and a utility coming out are both PPD.
Corporate credit or debit: business to business. If you are a company and money moved between you and another company, this is the one you will see.
Authorised over the internet or a mobile app. The commonest code on a consumer statement, and the one to look at first if a payment is unexpected.
Authorised by telephone, spoken. A single payment, not a standing arrangement — seeing it repeat monthly is itself worth a question.
A paper cheque turned into an electronic payment: posted in (ARC), converted in the back office (BOC), or at the till (POP). Your cheque will never clear as a cheque, which is why it is not in the cheque column.
A re-presented cheque: one that bounced and is being tried again electronically. Expect the original, its reversal and this, all three.
Sixteen characters. ACME PAYROLL SERVICES arrives as
ACME PAYROLL SER and the rest was never sent — your bank is not hiding it
and cannot retrieve it. The sender chose what to put in sixteen characters, and some
choose badly.
This becomes practical the moment the statement goes into accounting software, because
the rules that file transactions automatically match on exactly this text. A payroll
line that reads ACME PAYROLL SER in March and
ACME PAYROLL 0410 in April is one rule that works and one that does not,
and the cause is a field the sender filled in differently, not anything you did.
One warning specific to converting. When we build a .qbo or .qfx file, each transaction's duplicate guard — its FITID — is derived from that row's own date, amount and description. Tidy a description before the file is built and that row becomes, as far as QuickBooks is concerned, a transaction it has never seen. Import first, tidy afterwards; then a re-import of the same month corrects rather than doubles.
What none of this affects is the arithmetic. Our reader checks every row against the running balance printed on your own statement, and a code it cannot name has no bearing on whether the column adds up — see bank statement to Excel for what that check looks like.
This is the part no page can do for you, and the part most pages leave out. Because the spellings are each bank's own, the authoritative list is each bank's own — published, free, and more reliable than any table:
Many US statements print their own key as well, usually on the back of the first page or at the end, under a heading like "explanation of codes". It is the shortest route to an answer and almost nobody turns the page.
Something else? Write to support@ocrsnip.com.
Money out of your account through the US clearing system, followed by the sending company's own fields. ACH is the channel, DEB the direction, and CO is a label saying "the company's details start here" — not a code of its own. The name after it arrives cut to 16 characters, and the digits after that are usually the sender's reference or date.
A purchase made with your card in person: POS is point of sale, PUR is purchase. The four digits that often follow are the last four of the card used. The name at the end is what the merchant registered with its card processor, which is why it can be a holding company rather than the shop you walked into.
A standing order (S/O at RBS and NatWest, STO at Barclays) is yours: a fixed amount you send on a schedule, and only you can change it. A direct debit (D/D or DDR) belongs to the payee: they collect under a mandate you signed, and the amount can change with notice. If a payment you want to stop is a direct debit, cancelling it with your bank is not the same as cancelling the contract behind it.
Because the field is 16 characters and the rest never left the sender. Nothing at your bank truncated it, and no amount of asking will recover the missing letters — the sender chose what to fit. The company identification number beside it, where your bank prints one, is the more reliable way to tell two similar senders apart.
You can, and for a spreadsheet it is harmless. For a .qbo, .qfx or .ofx file it is not: the duplicate guard in each transaction is derived from the description, so an edited row looks like a new transaction and a later re-import of that month will double it instead of correcting it. Import the file as built, then rename in your accounting software, where the change is remembered.