ISO 8583 Parser
Free ยท Full reference ยท ~14 min read ยท Updated 2026-08-09
emv ยท de55 ยท reference

EMV Tag Reference: All 66 DE55 Tags โ€” Length, Format, Meaning

Every tag this site's parser knows, in one printable table โ€” grouped by what the tag is for, not by hex order โ€” plus the three rules that let you read raw TLV by eye.

DE55 of an ISO 8583 message carries the EMV chip data as BER-TLV: tag, length, value, laid end to end. This page is the complete reference for the 66 tags you actually meet there โ€” the same tag set and the same names used by the parser on this site and the interactive tag lookup. Each entry gives the value length, the format and the question that tag answers. Bit-string tags (TVR, AIP, TSI, CID, CVM Results, IAD, ATC) get their own section, each linked to a decoder that expands it bit by bit.

How to read a TLV before you read the table

A tag table is only useful if you can find the tag boundaries in the first place. Three rules cover everything DE55 will throw at you:

Worked example โ€” a minimal GENERATE AC response fragment, 771082023D00950500000080009F3602004B:

BytesRead as
77 10Tag 77: low five bits 10111 โ€” not all ones, so one byte; bit 6 set, so constructed. Length 10 = 16 bytes of inner TLV follow.
82 02 3D00Tag 82 (AIP), 2 bytes: 3D00.
95 05 0000008000Tag 95 (TVR), 5 bytes: one bit set โ€” transaction exceeds floor limit.
9F36 02 004B9F ends in five ones โ†’ tag continues: 9F36 (ATC), 2 bytes: 004B = 75 transactions.

Paste that string into the EMV TLV parser and you get the same walk back: one top-level tag, four tags in total, with the AIP, TVR and ATC broken out. For a whole DE55 that is always the faster route โ€” this section exists so the output never looks like magic.

The 66 tags, grouped by purpose

Grouped the way you actually query them: by what stage of the transaction the tag belongs to. Formats: b = binary, n = numeric (BCD digits), cn = compressed numeric (BCD, padded with F), an / ans = alphanumeric (with specials), template = constructed, the value is more TLV. Byte counts are value lengths โ€” the tag and length bytes come on top.

Application selection & templates (14)

Everything the card and terminal exchange to agree which application runs. The AID โ€” the answer to "what is an AID in EMV" โ€” is a registered identifier of 5โ€“16 bytes: a 5-byte RID naming the scheme plus an optional PIX naming the product; A0000000031010, for instance, is Visa's main credit/debit application (the AID lookup has the common ones). Templates are wrappers: expand them and read the tags inside.

TagNameBytesFormatWhat it tells you
6FFile Control Information (FCI) TemplatevartemplateThe card's SELECT response: the DF name (84) plus the proprietary block (A5).
A5FCI Proprietary TemplatevartemplateProprietary part of the FCI; carries 50, 9F12, BF0C and friends.
BF0CFCI Issuer Discretionary Dataโ‰ค222templateContainer for the issuer's own extras inside the FCI.
61Application TemplatevartemplateWraps one application entry (AID plus label) in a payment directory listing.
4FApplication Identifier (AID) โ€“ card5โ€“16bThe card's answer to application selection: which chip application this transaction is running on.
9F06Application Identifier (AID) โ€“ terminal5โ€“16bThe terminal-side copy of the AID; in DE55 it tells the issuer which application the terminal selected.
50Application Label1โ€“16ansHuman-readable application name from the card, often printed on receipts.
9F12Application Preferred Name1โ€“16ansDisplay name the card prefers over tag 50 when the terminal can render it.
84Dedicated File (DF) Name5โ€“16bName of the selected dedicated file โ€” for payment applications, usually identical to the AID.
9F0AApplication Selection Registered Proprietary DatavarbEMVCo-registered data that fine-tunes application selection; interpreted per registered entry.
70READ RECORD Response Message Templateโ‰ค252templateEverything READ RECORD returns from the card's files is wrapped in this template.
77Response Message Template Format 2vartemplateGPO / GENERATE AC response as a proper TLV list โ€” expand it like any other template.
80Response Message Template Format 1varbThe same responses with values concatenated in a fixed order, no inner tags โ€” despite the template name, it is primitive.
E1Proprietary TemplatevartemplateProprietary template; the inner layout is whatever its definer says it is.

Card data (15)

Personalised onto the chip by the issuer; the same values come back transaction after transaction. This is also where the cardholder data lives โ€” 5A, 57 and 5F20 are PAN-equivalent and fall under PCI DSS: mask them before a DE55 dump goes into a log, a ticket or a screenshot.

TagNameBytesFormatWhat it tells you
5AApplication Primary Account Number (PAN)โ‰ค10cnThe PAN as the chip stores it. Cardholder data โ€” mask it in logs and tickets.
57Track 2 Equivalent Dataโ‰ค19bTrack-2 image: PAN, expiry and service code in one value. Cardholder data, same masking rules as 5A.
5F20Cardholder Name2โ€“26ansCardholder name as personalised onto the card.
5F24Application Expiration Date3n 6Application expiry, YYMMDD; what the terminal checks for an expired chip application.
5F25Application Effective Date3n 6Date the application becomes usable; transactions before it set a TVR bit.
5F28Issuer Country Code2n 3Issuer's country, ISO 3166 numeric.
5F34Application PAN Sequence Number1n 2Distinguishes several physical cards sharing one PAN (reissues, supplementary cards).
9F07Application Usage Control2bBit flags for where the card may be used: domestic vs international, goods, cash, ATM.
9F08Application Version Number (ICC)2bApplication version personalised on the card; a mismatch with the terminal's 9F09 sets a TVR bit.
9F0DIssuer Action Code โ€“ Default5bIssuer policy mask matched against the TVR when the terminal cannot go online.
9F0EIssuer Action Code โ€“ Denial5bTVR bits that decline the transaction offline outright, no online attempt.
9F0FIssuer Action Code โ€“ Online5bTVR bits that force the transaction online for the issuer to decide.
9F42Application Currency Code2n 3Currency in which the card keeps its internal offline amounts.
9F44Application Currency Exponent1n 1Decimal places for amounts in the application currency.
9F53Consecutive Transaction Limit (International)1โ€”Card risk-management parameter whose exact definition differs by scheme โ€” confirm against your scheme's spec before relying on it.

Terminal & transaction data (19)

Supplied by the terminal, per transaction. These are the fields the card's cryptogram is computed over โ€” which is why a DE55 repeats information (amount, currency, date) that also exists elsewhere in the ISO 8583 message: the copy in DE55 is the one the chip signed.

TagNameBytesFormatWhat it tells you
9F02Amount, Authorised (Numeric)6n 12The amount the application cryptogram is computed over; the money core of DE55.
9F03Amount, Other (Numeric)6n 12Cashback portion of the transaction; all zeros when there is none.
5F2ATransaction Currency Code2n 3Transaction currency, ISO 4217 numeric โ€” pairs with DE49.
9ATransaction Date3n 6Terminal's local transaction date, YYMMDD.
9F21Transaction Time3n 6Terminal's local transaction time, HHMMSS.
9CTransaction Type1n 2Transaction type โ€” the first two digits of the processing code (00 purchase, 01 cash, 20 refund).
9F39Point-of-Service (POS) Entry Mode1n 2How the PAN entered the terminal: 05 contact chip, 07 contactless, 90 magstripe.
9F15Merchant Category Code (MCC)2n 4Merchant category of the acceptor โ€” same code set as DE18.
9F16Merchant Identifier15ansMerchant identifier as configured in the terminal.
9F1ATerminal Country Code2n 3Country the terminal operates in; drives domestic-vs-cross-border checks.
9F1CTerminal Identification8anTerminal identifier โ€” matches DE41 in the surrounding ISO 8583 message.
9F1EInterface Device (IFD) Serial Number8anSerial number of the physical acceptance device.
9F4EMerchant Name and LocationvaransMerchant name and address as the terminal knows them.
9F33Terminal Capabilities3bThree bytes of bit flags: card input methods, CVMs and security features the terminal supports.
9F35Terminal Type1n 2Terminal class: attended or unattended, online-capable or offline-only, operated by whom.
9F40Additional Terminal Capabilities5bExtended capabilities: which transaction types and input/output methods the terminal handles.
9F09Application Version Number (terminal)2bApplication version implemented by the terminal kernel; compared against the card's 9F08.
9F37Unpredictable Number4bTerminal's random number โ€” the freshness that keeps each cryptogram unique.
9F41Transaction Sequence Counter2โ€“4n 4โ€“8The terminal's own transaction sequence counter.

Cryptograms & online authentication (8)

The reason DE55 exists at all. 9F26 is the ARQC in the request; 91 carries the issuer's ARPC back; the rest give both sides the context to verify each other. If a "what is ARQC" question brought you here: it is the 8-byte cryptogram in 9F26 when the card asks to go online โ€” see ARQC vs TC vs AAC for the full story.

TagNameBytesFormatWhat it tells you
9F26Application Cryptogram (ARQC / TC / AAC)8bThe card's MAC over the transaction data: ARQC when requesting online authorisation, TC when approving, AAC when declining.
9F27Cryptogram Information Data (CID)1bDeclares which of the three the cryptogram in 9F26 is, plus advice flags.
9F36Application Transaction Counter (ATC)2bIncrements on every transaction; issuers watch it for gaps and repeats as a cloning signal.
9F10Issuer Application Data (IAD)โ‰ค32bIssuer-proprietary block: cryptogram version (CVN), key index (DKI) and card verification results (CVR) travel here.
91Issuer Authentication Data8โ€“16bThe issuer's ARPC coming back in the response โ€” the card's proof the approval really came from its issuer.
8AAuthorisation Response Code2anThe response code as delivered to the card โ€” mirrors DE39 of the response message.
9F45Data Authentication Code2bStatic value covered by the issuer's signature under SDA.
9F4CICC Dynamic Number2โ€“8bRandom number the card generates per transaction for dynamic data authentication.

Verification results & status bit strings (4)

The tags that look like gibberish until decoded bit by bit โ€” and the ones that answer most troubleshooting questions. Each is expanded below.

TagNameBytesFormatWhat it tells you
82Application Interchange Profile (AIP)2bThe card's capability declaration, returned with the GPO response before anything is verified.
95Terminal Verification Results (TVR)5bThe terminal's running log of checks that failed or deserve noting โ€” first stop when investigating a decline.
9BTransaction Status Information (TSI)2bWhich EMV functions actually executed in this transaction.
9F34CVM Results3bWhich cardholder verification method ran, under what condition, and how it ended.

Issuer scripts (3)

The issuer's channel for managing a card it can no longer touch physically: script commands ride the authorization response, the terminal relays them to the chip, and 9F5B reports back in a later transaction.

TagNameBytesFormatWhat it tells you
71Issuer Script Template 1vartemplateIssuer script commands the terminal must send to the card before the second GENERATE AC.
72Issuer Script Template 2vartemplateScript commands sent after the second GENERATE AC โ€” PIN unblock, counter resets and similar card management.
9F5BIssuer Script ResultsvarbThe terminal's report of how each script command fared, so the issuer knows the script landed.

Scheme & proprietary (3)

Three tags the parser recognises by their most common use, but which are not defined by the public EMV books โ€” the authoritative layout lives in each scheme's own specification.

TagNameBytesFormatWhat it tells you
9F63Product Identification Informationvarโ€”Scheme-assigned tag whose meaning depends on the network โ€” defer to the counterpart's spec.
9F6EForm Factor Indicator / Third Party Datavarโ€”Used differently across schemes (form factor vs third-party data) โ€” defer to the spec you are integrating against.
9F7CMerchant Custom Datavarโ€”Proprietary payload whose meaning is agreed between the transaction parties.

The bit-string tags, one by one

Seven tags in DE55 pack their meaning into individual bits, and one more (the ATC) into a plain counter. For each: the question it answers, a real value, and the decoder that expands it. Every example below was run through the linked decoder โ€” the readings are the tool's output, not paraphrase.

TVR โ€” tag 95, 5 bytes

Answers: "what did the terminal see go wrong?" Starts as five bytes of zeros; the terminal sets a bit for every exceptional condition it meets โ€” offline authentication failures, CVM problems, floor-limit triggers, issuer-authentication failures. Observations, not decisions: whether a set bit declines the transaction is settled against the action codes (9F0D/0E/0F). Example: 0400048000 decodes to three set bits โ€” CDA failed (byte 1ยทb3), online PIN entered (byte 3ยทb3), transaction exceeds floor limit (byte 4ยทb8). One real problem, one neutral fact, one routine online trigger โ€” a typical mix. Decode yours in the TVR decoder; the full bit map is in TVR bits explained.

AIP โ€” tag 82, 2 bytes

Answers: "what does this card support?" Static personalisation, declared with the GPO response before any check has run: which offline authentication methods (SDA / DDA / CDA), whether cardholder verification and issuer authentication are supported, whether terminal risk management must run. Example: 3D00 announces DDA, cardholder verification, terminal risk management, issuer authentication and CDA โ€” but no SDA. Check any value in the AIP decoder; how AIP relates to TVR and TSI is the subject of AIP vs TVR vs TSI.

TSI โ€” tag 9B, 2 bytes

Answers: "which EMV functions actually ran?" Six meaningful bits, all in byte 1, each set once the corresponding function executed โ€” regardless of how it went. Example: F800 means offline data authentication, cardholder verification, card risk management, issuer authentication and terminal risk management were all performed, and no issuer script was. "Performed" is not "passed": the verdict lives in the TVR. Decode in the TSI decoder.

CID โ€” tag 9F27, 1 byte

Answers: "what kind of cryptogram is 9F26?" The top two bits classify it โ€” 00 AAC (decline), 01 TC (approve), 10 ARQC (go online) โ€” and the low bits carry advice flags. Example: 80 = ARQC, online authorisation requested. Decode in the CID decoder; the three cryptogram types are compared in ARQC vs TC vs AAC.

CVM Results โ€” tag 9F34, 3 bytes

Answers: "how was the cardholder actually verified?" Three bytes: the method performed, the condition under which it applied, and the result. Example: 410302 = plaintext PIN verified by the ICC (41, with permission to fall through to the next rule on failure), applied because the terminal supports the CVM (03), and it succeeded (02). Decode in the CVM Results decoder.

CVM List โ€” tag 8E

Answers: "in what order did the card want verification attempted?" Two 4-byte amounts (X and Y) followed by 2-byte rules, each a method plus a condition, tried top to bottom. Example: 000003E800000000420344031E031F02 = X 1000, Y 0, four rules โ€” enciphered PIN online, enciphered PIN by ICC, signature, then "no CVM required" when the conditions allow. One placement note: 8E is personalised in the card's records and consumed by the terminal during CVM selection โ€” it is not one of the 66 tags above because it does not normally travel in DE55; what travels is the outcome, 9F34. Decode one in the CVM List decoder; the rule-by-rule logic is in the CVM List article.

IAD โ€” tag 9F10, up to 32 bytes

Answers: "what is the issuer telling itself?" The one tag in this section without a public bit map: EMV reserves the container, the issuer (via its scheme's template) defines the content โ€” typically a derivation key index, the cryptogram version number (CVN), and the Card Verification Results, the card's own view of the transaction. Example: 06101203A40000 reads, under the common Visa-style layout, as length 6, DKI 10, CVN 12 (= version 18), CVR 03A40000 โ€” but any such split is a heuristic until confirmed against the CVN and the scheme spec, which is exactly how the IAD decoder labels it. Background: IAD tag 9F10 explained.

ATC โ€” tag 9F36, 2 bytes

Answers: "how many transactions has this chip done?" Not a bit string โ€” a big-endian counter that increments every time the application starts a transaction. Example: 003C = 60. Issuers compare it against the last ATC seen: gaps are normal (offline transactions not yet cleared), but a repeated or decreasing ATC is a strong cloning signal. Convert values in the ATC decoder; more in the ATC article.

Reading a DE55 in practice

Given a raw DE55, look at five tags before anything else. Paste the whole string into the TLV parser, then read: 9F27 (what the chip recommended), 9F26 (the cryptogram backing it), 95 (what the terminal saw go wrong), 9F34 (how the cardholder was verified), 9F36 (the counter, for cloning checks). Those five answer "what happened and does it look legitimate" for most tickets; everything else is supporting detail.

Know which direction a tag travels. Most tags ride the request. Three exist only in the response: 91 (issuer authentication data), 71 and 72 (issuer scripts). If you find them in a request dump, the dump is mislabelled. Conversely 9F5B (script results) shows up in a later request, reporting on scripts delivered earlier โ€” a one-transaction lag that regularly confuses log correlation.

Know which side wrote the value. When a value looks wrong, the tag tells you whom to call. Card-personalisation tags (82, 9F07, 9F08, 5F24, the IACs) can only be fixed by the issuer's card profile. Terminal-configuration tags (9F1A, 9F33, 9F35, 9F40, 9F1C) point at the acquirer or the device estate. A terminal country code of 0000 is a terminal-fleet bug, not a card problem.

Expand templates before counting tags. If a dump starts with 77 or 70, the payload is one level down โ€” a naive scan that treats the template as opaque will report "one tag" and miss everything. Same for 6F/A5/BF0C nesting in selection data. The parser expands these automatically; when walking by hand, apply Rule 3 above and recurse.

Watch for the encoding trap. DE55 is binary TLV inside a message that may otherwise be ASCII or EBCDIC. If tag bytes look shifted by a constant or every second character is 3, the DE55 was re-encoded as text somewhere upstream โ€” fix the extraction, not the parse. The hex viewer helps spot this quickly.

Private and scheme tags: where this table stops

This reference covers tags with public, EMV-book-level definitions (plus the three scheme-assigned ones explicitly flagged above). Beyond it lie the private classes, and the honest answer about them is shorter than any table:

A tag table that invents meanings for private tags is worse than none: it reads as authoritative exactly where it is guessing. When you hit an unknown DFxx, the productive move is to identify the producing system and ask for its tag dictionary.

In short: find tag boundaries with the three TLV rules; identify tags with the table (or the searchable lookup, same data); decode the bit strings with the linked tools; and treat anything DF/FF-prefixed as defined by the counterpart, not by any generic table โ€” this one included.

Read next