ISO 8583 Data Element Reference
All 128 data elements with formats, lengths and the ones processors love to redefine.
Runs entirely in your browser. Nothing you paste is uploaded, logged or stored.
128 data elements
| DE | Name | Format |
|---|---|---|
| 1 | Secondary bitmapPresence is signalled by bit 1 of the primary bitmap, not by bit 1 itself being a data field. | b 64 |
| 2 | Primary account number (PAN)sensitivevariable | n ..19 |
| 3 | Processing codeThree 2-digit parts: transaction type, from-account, to-account. 00 = purchase, 01 = cash withdrawal, 09 = purchase with cashback, 20 = refund. | n 6 |
| 4 | Amount, transactionMinor units of the DE 49 currency, no decimal point. | n 12 |
| 5 | Amount, settlement | n 12 |
| 6 | Amount, cardholder billing | n 12 |
| 7 | Transmission date and timeMMDDhhmmss, UTC. | n 10 |
| 8 | Amount, cardholder billing fee | n 8 |
| 9 | Conversion rate, settlement | n 8 |
| 10 | Conversion rate, cardholder billing | n 8 |
| 11 | System trace audit number (STAN)Set by the acquirer, echoed unchanged. Only unique within a day, per acquirer, so not a global transaction id. | n 6 |
| 12 | Time, local transactionhhmmss, terminal local time. | n 6 |
| 13 | Date, local transactionMMDD. | n 4 |
| 14 | Date, expirationYYMM. Note the order, which is the opposite of what most UIs collect. | n 4 |
| 15 | Date, settlement | n 4 |
| 16 | Date, conversion | n 4 |
| 17 | Date, capture | n 4 |
| 18 | Merchant type (MCC)ISO 18245 merchant category code. | n 4 |
| 19 | Acquiring institution country code | n 3 |
| 20 | PAN extended country code | n 3 |
| 21 | Forwarding institution country code | n 3 |
| 22 | Point of service entry modeFirst 2 digits = PAN entry mode (05 chip, 07 contactless chip, 81 e-commerce, 90 full mag-stripe read). Third digit = PIN entry capability. | n 3 |
| 23 | Card sequence number | n 3 |
| 24 | Function code / network international identifierRedefined as Function Code in the 1993 edition. | n 3 |
| 25 | Point of service condition code00 = normal, 01 = cardholder not present, 08 = mail/telephone order, 59 = e-commerce (scheme-dependent). | n 2 |
| 26 | Point of service PIN capture code | n 2 |
| 27 | Authorising identification response length | n 1 |
| 28 | Amount, transaction fee | x+n 8 |
| 29 | Amount, settlement fee | x+n 8 |
| 30 | Amount, transaction processing fee | x+n 8 |
| 31 | Amount, settlement processing fee | x+n 8 |
| 32 | Acquiring institution identification codevariableThe acquirer BIN. Also the first component of the ARN. | n ..11 |
| 33 | Forwarding institution identification codevariable | n ..11 |
| 34 | PAN extendedsensitivevariable | ns ..28 |
| 35 | Track 2 datasensitivevariableFull track 2 read from the stripe or chip equivalent. Storing this post-authorisation breaches PCI DSS. | z ..37 |
| 36 | Track 3 datasensitivevariableLLLVAR, not LLVAR, because a 2-digit prefix could not express its 104-character maximum. Track 3 has its own layout and is not the same shape as track 2. | z ...104 |
| 37 | Retrieval reference number (RRN)Often YDDDhhmmssss or acquirer-proprietary. Used to match auth to clearing, but not globally unique. | an 12 |
| 38 | Authorisation identification responseThe auth code the issuer returns. Six characters, alphanumeric. | an 6 |
| 39 | Response code00 = approved. Everything else is scheme-specific; see the decline code translator. | an 2 |
| 40 | Service restriction code | an 3 |
| 41 | Card acceptor terminal identification | ans 8 |
| 42 | Card acceptor identification codeThe merchant id (MID). | ans 15 |
| 43 | Card acceptor name / locationPositional: name, city, state, country. This is what shows on the cardholder statement. | ans 40 |
| 44 | Additional response datavariableCommonly carries AVS and CVV result codes. | an ..25 |
| 45 | Track 1 datasensitivevariable | an ..76 |
| 46 | Additional data — ISOvariable | an ...999 |
| 47 | Additional data — nationalvariable | an ...999 |
| 48 | Additional data — privatevariableHeavily used and completely processor-specific. Usually a nested TLV or positional structure. | an ...999 |
| 49 | Currency code, transactionISO 4217. Numeric in most implementations. | a/n 3 |
| 50 | Currency code, settlement | a/n 3 |
| 51 | Currency code, cardholder billing | a/n 3 |
| 52 | PIN datasensitiveEncrypted PIN block. Never log this. | b 64 |
| 53 | Security related control information | n 16 |
| 54 | Additional amountsvariable20-character groups: account type, amount type, currency, sign, amount. Carries the account balance on ATM responses. | an ...120 |
| 55 | ICC data — EMV datavariableBER-TLV. Paste it into the TLV parser. | b ...999 |
| 56 | Reserved — ISOvariable | an ...999 |
| 57 | Reserved — nationalvariable | an ...999 |
| 58 | Reserved — nationalvariable | an ...999 |
| 59 | Reserved — nationalvariable | an ...999 |
| 60 | Reserved — privatevariableProcessor-specific. Often terminal or POS capability data. | an ...999 |
| 61 | Reserved — privatevariableProcessor-specific. Often point-of-service or authorisation data. | an ...999 |
| 62 | Reserved — privatevariableProcessor-specific. Visa uses it for transaction identifiers. | an ...999 |
| 63 | Reserved — privatevariableProcessor-specific. Frequently a nested TLV structure. | an ...999 |
| 64 | Message authentication code (MAC) | b 64 |
| 65 | Extended bitmap indicatorPresence signals a tertiary bitmap for fields 129-192. | b 64 |
| 66 | Settlement code | n 1 |
| 67 | Extended payment code | n 2 |
| 68 | Receiving institution country code | n 3 |
| 69 | Settlement institution country code | n 3 |
| 70 | Network management information code001 = sign-on, 002 = sign-off, 161 = key change, 301 = echo test. | n 3 |
| 71 | Message number | n 4 |
| 72 | Message number, last | n 4 |
| 73 | Date, action | n 6 |
| 74 | Credits, number | n 10 |
| 75 | Credits, reversal number | n 10 |
| 76 | Debits, number | n 10 |
| 77 | Debits, reversal number | n 10 |
| 78 | Transfer, number | n 10 |
| 79 | Transfer, reversal number | n 10 |
| 80 | Inquiries, number | n 10 |
| 81 | Authorisations, number | n 10 |
| 82 | Credits, processing fee amount | n 12 |
| 83 | Credits, transaction fee amount | n 12 |
| 84 | Debits, processing fee amount | n 12 |
| 85 | Debits, transaction fee amount | n 12 |
| 86 | Credits, amount | n 16 |
| 87 | Credits, reversal amount | n 16 |
| 88 | Debits, amount | n 16 |
| 89 | Debits, reversal amount | n 16 |
| 90 | Original data elementsIdentifies the message being reversed: original MTI, STAN, transmission date/time, acquirer id. | n 42 |
| 91 | File update code | an 1 |
| 92 | File security code | an 2 |
| 93 | Response indicator | an 5 |
| 94 | Service indicator | an 7 |
| 95 | Replacement amountsUsed on partial reversals to state the corrected amounts. | an 42 |
| 96 | Message security code | b 64 |
| 97 | Amount, net settlement | x+n 16 |
| 98 | Payee | ans 25 |
| 99 | Settlement institution identification codevariable | n ..11 |
| 100 | Receiving institution identification codevariable | n ..11 |
| 101 | File namevariable | ans ..17 |
| 102 | Account identification 1sensitivevariable | ans ..28 |
| 103 | Account identification 2sensitivevariable | ans ..28 |
| 104 | Transaction descriptionvariable | ans ...100 |
| 105 | Reserved for ISO usevariable | ans ...999 |
| 106 | Reserved for ISO usevariable | ans ...999 |
| 107 | Reserved for ISO usevariable | ans ...999 |
| 108 | Reserved for ISO usevariable | ans ...999 |
| 109 | Reserved for ISO usevariable | ans ...999 |
| 110 | Reserved for ISO usevariable | ans ...999 |
| 111 | Reserved for ISO usevariable | ans ...999 |
| 112 | Reserved for national usevariable | ans ...999 |
| 113 | Reserved for national usevariable | n ..11 |
| 114 | Reserved for national usevariable | ans ...999 |
| 115 | Reserved for national usevariable | ans ...999 |
| 116 | Reserved for national usevariable | ans ...999 |
| 117 | Reserved for national usevariable | ans ...999 |
| 118 | Reserved for national usevariable | ans ...999 |
| 119 | Reserved for national usevariable | ans ...999 |
| 120 | Reserved for private usevariable | ans ...999 |
| 121 | Reserved for private usevariable | ans ...999 |
| 122 | Reserved for private usevariable | ans ...999 |
| 123 | Reserved for private usevariableOften POS data code in Visa implementations. | ans ...999 |
| 124 | Reserved for private usevariable | ans ...999 |
| 125 | Reserved for private usevariable | ans ...999 |
| 126 | Reserved for private usevariable | ans ...999 |
| 127 | Reserved for private usevariable | ans ...999 |
| 128 | Message authentication code (MAC) | b 64 |
Reading the format notation
- n
- Numeric digits only
- a
- Alphabetic characters only
- s
- Special characters
- an / ans
- Combinations of the above
- b
- Binary data
- z
- Track data as defined by ISO 4909 / 7813
- n 6
- Fixed length: exactly 6 digits
- n ..19
- Variable, LLVAR: a 2-digit length prefix, up to 19
- an ...999
- Variable, LLLVAR: a 3-digit length prefix, up to 999
- x+n 8
- A C/D sign character followed by 8 digits
The fields you will actually touch
DE 3, processing code. Six digits in three pairs: transaction type, from-account
and to-account. 00 purchase, 01 cash withdrawal, 09
purchase with cashback, 20 refund. The account digits matter for ATMs and are
usually zeros elsewhere.
DE 4, amount. Twelve digits, minor units of the DE 49 currency, zero-padded, no decimal point. See the minor units reference for why this bites.
DE 22, POS entry mode. The first two digits say how the card data was captured:
05 chip, 07 contactless chip, 81 e-commerce,
90 full mag-stripe read. Interchange depends heavily on this, so an incorrect
value is expensive rather than merely wrong.
DE 39, response code. Two characters. 00 is the approval you will
see, though 08, 10, 11 and 16 are approvals
too. Everything else is scheme-specific, and the published meanings are often less useful than
the processor's own documentation.
DE 55, ICC data. BER-TLV chip data. Feed it to the TLV parser.
Length notation
A fixed field like n 6 is always exactly six digits. A variable field written
n ..19 is LLVAR: two length digits followed by up to nineteen data digits. Three
dots, as in an ...999, means LLLVAR with a three-digit length prefix. Whether those
length prefixes are ASCII digits or packed BCD is, once again, an endpoint decision.
The identifiers that get confused
DE 11 (STAN) is set by the acquirer and echoed back unchanged. It is only unique within a day, per acquirer, so it is a matching key rather than a transaction id. DE 37 (RRN) is a twelve-character retrieval reference used to tie an authorisation to its clearing record. DE 38 is the six-character authorisation code the issuer returns. None of these is globally unique, and building a system that assumes otherwise is a well-trodden path to duplicate-detection bugs.
A warning about private fields
DE 48, 60-63 and 120-127 are reserved for private use. Two processors will use the same field number for entirely unrelated data. Never assume; always read the specification for the specific endpoint you are integrating with.
More ISO 8583 tools
All ISO 8583 toolsMessage decoder beta
Paste a whole authorisation message and get every data element split out, interpreted and mapped to its bytes.
MTI decoder
Split a 4-digit message type indicator into version, class, function and origin.
Bitmap decoder
Turn a primary and secondary bitmap into the list of data elements present, and back again.
Decline codes
DE 39 response codes in plain English, with what to actually do about each one.
POS entry mode
What DE 22 and tag 9F39 mean, from chip to contactless to fallback to e-commerce, and why it changes your interchange.
AVS & CVV
Address and security-code check results in plain English, including which ones are fraud signals.
Which identifier?
Four identifiers, constantly confused. What each one is, who sets it, and when it is unique.