EMVCo QR Tags Explained
This is a practitioner map of root tags in Merchant-Presented Mode. For complete enumerations and language templates, use EMVCo’s QR specification. We are independent of EMVCo.
00 and 01
00 Payload Format Indicator: length 02, value 01 for current MPM. 01 Point of Initiation: 11 static, 12 dynamic.
26–51 Merchant Account Information
At least one template is required. Inner 00 is GUID. Remaining sub-tags are scheme-specific. Empty templates pass CRC and fail routing.
52, 53, 54
52 MCC four digits. 53 numeric ISO 4217. 54 amount when the transaction is priced in the payload.
58, 59, 60, 61
58 ISO country alpha-2. 59 name max 25. 60 city max 15. 61 postal optional.
62 and 63
62 additional data (bill number, mobile, loyalty) as inner TLV. 63 CRC last. Nothing should follow 63.
How to inspect
The decoder lists these tags from a live scan. Compare against this list before you file a wallet bug.
Tag 52 MCC pitfalls
0000 and 9999 look like placeholders and get rejected in some certs. Use the MCC on the merchant file. Food delivery versus grocery is not a cosmetic choice; it can change scheme fees.
Tag 58 versus Tag 53
Country IN plus currency 764 is a red flag unless you have a documented multi-currency product. Most domestic QR is country and currency aligned (TH/764, SG/702, IN/356).
Tag 59 presentation
Wallets show Tag 59 to humans. “TEST” or “EMVQRHUB” on a live counter is how overlay fraud is missed. Use the fascia name, abbreviated to 25 characters.
Unreserved templates
Some markets use additional root templates for local data. If you do not understand a tag, do not drop it on round-trip encode — dropping can change CRC and break a scheme that required it.
See also
Payload structure for order, ISO 4217 for Tag 53, Point of Initiation for Tag 01, cookbook for full strings.
Tag 00 and Tag 01 as product bits
Tag 00 value 01 is the current payload format indicator for MPM as commonly implemented. If it is missing or not 01, many wallets will not start. Tag 01 is Point of Initiation: 11 reusable, 12 one-time. It is not a slogan and it is not inferred from whether a printer or a screen showed the code. Wrong 01 is a product bug that wallets handle inconsistently.
Read the dedicated Point of Initiation article before you ship billed QR. This page will not repeat that bit table in full; it will keep pointing at the coupling with Tag 54.
MAI templates 26–51 are where money is aimed
At least one Merchant Account Information template is mandatory. Inner 00 is the GUID the network documents. Other inner tags are account proxies. Inventing a GUID from another country because a sample used it is how you get CRC-valid stickers that no local app will pay. Production GUIDs come from the acquirer or scheme, never from this cookbook.
Do not put the same account id in two MAI templates “for luck.” Duplicate destinations are undefined. If you need dual presentment, print two symbols with two honest payloads, or follow the scheme’s dual-QR rules.
Unreserved and language templates
Some markets emit extra root templates. If you do not understand a tag, do not drop it on round-trip encode: dropping changes CRC and can break a scheme that required it. Tag 64 language templates should be omitted if you are not localizing the payload; empty ones waste bytes and confuse parsers that expect inner tags.
Inspect a live string in Decode rather than memorizing IDs. Then confirm against EMVCo QRCPS and your scheme guide. We implement the fields the studio exposes; we do not publish the specification.
A practical inspection order
When a payment fails, read in this order: CRC, Tag 00/01, Tag 53 type, Tag 54 versus 01, MAI GUID, Tag 59/60 lengths, then 62. That order matches how often the defect is fatal. Country/currency mismatch (IN with 764) is a red flag unless you have a documented multi-currency product.
See also: payload format for order, ISO 4217 for Tag 53, cookbook for full strings, common errors for the hall of fame. Tools: /emv/ and /decode/.
Field cheat sheet for support
CRC → integrity. 01 → typed vs locked amount. 53 → numeric currency. 59 → name on pay screen. MAI → destination. When a ticket arrives, read those five before touching MCC or city. Everything else is secondary for first-line support.
