ISO 8583 Parser
Free Β· Reference Β· ~6 min read Β· Updated 2026-08-07

ISO 8583 Processing Codes: The Full DE3 List

DE3 is six digits in three pairs: what kind of transaction this is, which account the money leaves, and which account it lands in. Read it as TT FF TT β€” transaction type, from-account, to-account. Get the pairing wrong and a cash withdrawal reads as a purchase.
On this page: What are the DE3 transaction type codes? Β· What do the from-account and to-account digits mean? Β· How do you read a value like 011000? Β· What breaks when you get the DE3 processing code wrong?

What are the DE3 transaction type codes?

The first two digits say what the cardholder is doing. This is the pair that decides how the transaction is priced, which limits apply, and whether it counts as cash for lending purposes.

CodeTransaction typeWhat to watch for
00Goods and services (purchase)The default for retail. Seeing 00 on an ATM or a cash-out means something upstream mapped it wrong.
01Cash withdrawalPriced as cash: higher interchange, cash-advance interest usually from day one, and often a separate lower limit than purchases.
02AdjustmentA correction to something already cleared, not a new sale. The acquirer sends it, so a cardholder never starts one.
09Purchase with cashbackTwo amounts in one message β€” DE4 is the total, the cash portion rides in DE54. Price the cash part as cash, not as retail.
17Quasi-cash / fast cashCash-like spending: gambling chips, money orders, traveller's cheques. Not 01, but priced closer to it than to 00.
18Service chargeA fee applied by the acquirer or issuer, not something the cardholder bought. Fee-bearing balance inquiries often arrive this way.
20Returns / refundReverses a purchase that already cleared and should reference the original. Not the same as a reversal, which cancels an authorisation that never cleared.
21DepositFunds paid in at a branch or ATM. Rare outside domestic debit schemes.
28Payment transaction β€” funds pushed to the card account (Mastercard-defined)Money arriving at the card: payouts, disbursements, P2P. Opposite direction to 20, and there is no original purchase to point at.
30Balance inquiryNo money moves, so a decline here is about account status rather than funds. It can still count against velocity and attempt limits.
31Statement / mini-statementThe cardholder asked to see recent transactions, usually at an ATM. Like 30 it moves no money; where the issuer charges for it, the fee arrives separately as 18.
40TransferThe one code where both account pairs are the whole point β€” from-account and to-account carry the actual instruction.
50PaymentPaying a bill or paying down the card. Easy to confuse with 28: 50 is the cardholder pushing money out, 28 is money arriving at the card.
72Pre-authorizationReserves an amount before the final figure is known β€” hotels, fuel, car hire. The completion comes later and legitimately differs from the reserved amount.
91PIN changeAdministrative, no money. Carries both the current and the new PIN block; which fields hold them is scheme-specific.
92PIN unblockClears a PIN-try counter that locked after too many wrong attempts. The PIN itself is unchanged.

Not every row above is universal. The core codes (00/01/09/20/30) read the same almost everywhere, but beyond that core the values are assigned by each scheme or host. 28 is a documented example: Mastercard's public Transaction Processing Rules define it as a Payment Transaction (a transfer of funds to an account) in both authorization and clearing messages β€” other hosts assign the same slot differently. Outside the core, check the spec for the channel you are actually parsing.

What do the from-account and to-account digits mean?

Digits 3–4 are the from account and digits 5–6 are the to account. Both use the same code set. On a plain purchase both are usually 00, because there is only one account involved and the scheme infers it.

CodeAccount typeWhat to watch for
00Default / unspecifiedWhat most card transactions carry. The issuer applies whichever account it treats as default.
10Savings accountPicked at the terminal on debit rails. When the terminal offers a choice of account, the cardholder's pick lands here.
20Checking (current) accountChosen at the terminal like 10. Common on domestic debit, absent from most credit transactions.
30Credit accountThe line of credit itself. The spec separates it from 38, but plenty of issuers treat the two as one.
38Credit card accountA specific card account rather than the underlying line. Check what your processor actually populates before relying on the distinction.
40Universal accountOne account covering several purposes. Rare, and issuer-defined in practice.
50Investment accountRare on card rails.
60Electronic purseA stored-value balance held on the card or by the scheme, not a bank account.

How do you read a value like 011000?

Split it into three pairs and read left to right:

DE3Reads as
000000Purchase, both accounts unspecified β€” the ordinary retail sale
011000Cash withdrawal from a savings account
012000Cash withdrawal from a checking account
200000Refund, accounts unspecified
301000Balance inquiry on a savings account
401020Transfer from savings to checking

What breaks when you get the DE3 processing code wrong?

In short: DE3 is 2 + 2 + 2 β€” type, from, to. On a card-present purchase you will see 000000 nearly every time; anything else is telling you the transaction is not a plain sale, and that usually means different pricing.

Read next