EMV QR Hub
EMV QR Hub
Technical Guides

EMVCo MPM Spec Reference (Independent)

Use this page as a checklist while you click through the generator. The normative document is EMVCo’s QR Code Specification for Payment Systems. EMV QR Hub is not affiliated with EMVCo, LLC.

Normative source

Download the current QR specification set from emvco.com. Trademark: EMVCo is a registered trademark of EMVCo, LLC. We describe compatibility, not certification.

Practitioner tag map (quick)

00 payload format · 01 POI 11/12 · 26–51 MAI templates · 52 MCC · 53 currency · 54 amount · 58 country · 59 name · 60 city · 61 postal · 62 additional data · 63 CRC · 64 language template · 80–99 unreserved.

For normative enumerations use EMVCo QRCPS on emvco.com. This site is an independent toolkit and is not affiliated with or endorsed by EMVCo.

Mandatory root objects

00, 01, one of 26–51, 52, 53, 58, 59, 60, 63. Optional but common: 54, 61, 62. Unreserved templates exist for local use; do not put secret keys there.

POI and amount

11 without 54 for classic stickers. 12 with 54 for billed QR. See the Point of Initiation article.

CRC algorithm note

Implement the CRC as specified by EMVCo for QRCPS, then verify against the decoder on a payload you did not hand-edit. Golden vectors should come from your test harness, not from shipping sample merchants.

What we implement in software

TLV encode/decode, ISO 4217 numeric currency list, CRC check, and UI constraints on name/city lengths. We do not implement scheme host processing.

Mandatory set as a release gate

Do not ship a generator that can omit Tag 00, 01, 52, 53, 58, 59, 60, 63 or skip all MAI templates. Optional 54/61/62 should be explicit toggles, not silent.

Language template (Tag 64)

Some deployments add a language preference template. If you do not localize the payload, omit it. Empty language templates waste bytes and confuse parsers that expect sub-tags.

Unreserved 80–99

Local use. Document every unreserved tag you emit. Surprise unreserved fields are how two “compliant” implementations stop interoperating.

Versioning your implementation

Record which EMVCo QR document version your constraints came from. When EMVCo publishes a revision, diff Tag 53/01/63 first — those are where wallets are least forgiving.

This toolkit’s scope

We encode, decode, and explain. We do not issue IDs, we do not clear payments, we do not certify you. Operator: Pankaj Kalra. Specs: emvco.com.

Checklist you can run before a release

Generator must not be able to omit Tag 00, 01, 52, 53, 58, 59, 60, 63 or skip all MAI templates. Tag 01 is only 11 or 12. Tag 54 is present only when you intend billed QR. Tag 63 is four hex characters and last. Name and city are truncated by the UI to spec caps rather than silently overflowing length digits.

Optional 54, 61, and 62 should be explicit toggles, not fields that appear because a form defaulted. Empty Tag 62 templates are not “harmless”; some parsers expect inner tags. If you do not have additional data, omit 62.

MAI, GUID, and why samples are not credentials

The Merchant Account Information template is where the payment is aimed. Inner 00 (GUID) is assigned in the real world by a scheme or acquirer. Cookbook prefixes you see on this site exist so you can see nesting and CRC behaviour. Shipping them on a door is how you get a pretty QR that no production wallet will pay — or worse, that pays a test routing you did not intend.

Unreserved 80–99 are local use. Document every one you emit. Surprise unreserved fields are how two “compliant” implementations stop interoperating. Language template 64: omit if you are not localizing the payload.

Version the constraints you implemented

Record which EMVCo QR document version your length caps and mandatory set came from. When EMVCo publishes a revision, diff Tag 53, 01, and 63 first — wallets are least forgiving there. National overlays can tighten further; record those too. A 2017 mental model can fail a 2024 kit.

Download the current set from emvco.com. Trademark: EMVCo is a registered trademark of EMVCo, LLC. We describe compatibility, not certification. This page is a field checklist while you click through /emv/, not a PDF mirror.

What the software on this site actually does

TLV encode/decode, numeric ISO 4217 list, CRC check, and UI caps on name/city. We do not issue merchant IDs, we do not clear payments, we do not run labs. Processing is local in the browser. Operator: Pankaj Kalra.

If you need an official testing programme, that is EMVCo and your scheme, not this Academy. Use Decode as a second implementation when you write your own library, then freeze fixtures.

Release sign-off questions

Before you tag a build “MPM ready,” ask: can this build emit Tag 53 as letters? Can it emit 11 with 54? Can it omit CRC? Can it print without MAI? If yes to any, fix the generator. Then run ten random legal payloads through Decode and one flipped CRC. Record the EMVCo document version in the release notes. We are not a cert lab; those questions are what a careful team asks itself.

Field ownership in your team

Product owns Tag 01 and whether Tag 54 exists. Acquiring owns MAI GUID and MCC. Engineering owns TLV serialize and CRC. Support owns Decode screenshots and stored payload hashes. When those roles blur, you get 11+54 shipped as a “hotfix.” This checklist page is for engineering and QA sign-off before acquirer submission.

Academy versus lab

Reading this reference plus running Decode exercises is preparation, not certification. Schedule lab time only after your generator passes the release sign-off questions above and your wallet matrix is green. EMVCo’s programmes and document index live on emvco.com.

Keep the PDF bookmarked

When a wallet rejects a field this page lists as mandatory, open the current QRCPS PDF on emvco.com before you patch around the wallet. Our independent summary can lag a revision; the PDF is the contract.

What the standard is for

Merchant-presented and consumer-presented QR data objects, TLV layout, CRC, and related payment QR documents listed on emvco.com. Trademark: EMVCo, LLC.

What it is not

Not a bank licence. Not a list of which Indian or Thai apps must accept your GUID. Not a ranking of wallets. Not this website — we are independent.

How we use it

Our generator constrains tags to MPM-shaped fields. Our academy restates those fields in operator language with worked payloads. For certification, use the PDFs and your scheme’s test cases.

Documents people actually mean

Teams say “EMVCo QR spec” when they mean the QR Code Specification for Payment Systems (merchant-presented and related books). Always record the version year you certified against. A 2017 test kit can fail a 2024 generator.

Relationship to ISO QR

ISO/IEC 18004 is the symbol (modules, error correction). EMVCo QRCPS is the meaning of the bytes inside a payment QR. You can have a scannable ISO symbol that still contains a useless payment payload.

National overlays

Central banks add GUIDs, branding, and sometimes extra templates. Those overlays are mandatory in-market even though they are not “the EMVCo spec.” Treating overlays as optional is a launch defect.

How this site stays honest

We never call ourselves EMVCo Academy as an official program. We never paste specification PDFs. We implement fields and send you to emvco.com for the source.

EMVCo is a standards and testing organisation

EMVCo publishes specifications and runs testing and approval programmes across several payment technologies: contact chip, contactless, 3-D Secure, tokenisation, Secure Remote Commerce, and QR. QR is one of those families, not the whole organisation. The public site emvco.com is where you find the current document set, lab information, and approved-product lists. It is not a merchant QR generator and it is not this website.

When a vendor says they are “EMVCo certified for QR,” ask which document version, which product type, and which lab. “We scanned a sample on emvqrhub.com” is not that claim. We implement encode/decode compatibility with Merchant-Presented Mode as we understand it; we do not issue approvals.

Which QR documents people usually mean

In merchant projects, “the EMVCo QR spec” almost always means the QR Code Specification for Payment Systems (QRCPS) and related books for merchant-presented and consumer-presented modes. Always record the year and version you built against. A generator frozen to an older example can fail a newer scheme kit even if CRC still matches your unit tests.

Do not paste specification PDFs into an academy page or into source comments you plan to publish. The normative text lives with EMVCo. This site cites the public QR technology page and then shows original examples from our own generator and decoder.

ISO symbol versus EMVCo payload

ISO/IEC 18004 defines the QR symbol: modules, error correction, how a camera recovers bits. EMVCo QRCPS defines the meaning of the recovered characters for payment. You can print a perfectly scannable ISO symbol whose payload is garbage for every wallet, and you can have a legal MPM string encoded in a symbol that is too small to scan at the counter. Debug those layers separately.

Our Standard QR tool is the symbol/styling layer for non-payment and utility codes. Our EMV tool is the payment-payload layer. Mixing the two in a single screenshot is a common support failure: the picture looks sharp while Tag 53 is still the letters INR.

National overlays sit on top, not instead

Central banks and switches add GUIDs, extra templates, branding, and sometimes extra CRC or length rules. Those overlays are mandatory in-market. They do not replace QRCPS; they constrain it. Launching with “pure EMVCo” samples and a foreign GUID is a certification defect, not a display issue.

Read the scheme merchant-QR guide as law for that country, then use this academy for the shared TLV skeleton. We will not claim that one cookbook string is valid for PromptPay, SGQR, and Bharat QR at once. See the national schemes article for how those programmes differ without copying their private specs.

How this site stays on the honest side of the trademark

EMVCo is a registered trademark of EMVCo, LLC. EMV QR Hub is operated by Pankaj Kalra. We are not sponsored, endorsed, or affiliated. We do not run an official Academy. We do not sell certification. Learn pages exist to explain the grammar you can exercise in the browser and to point you at emvco.com for the source.

If a page on the live site still reads like a doorway of synonym articles, that is the old production copy. This branch rewrites English depth and drops duplicate URLs. The standard of quality we are aiming at is closer to a named explainer than to a keyword farm — without pretending to be EMVCo.

Reading order on emvco.com

Start at the QR technology overview, then download QRCPS for merchant-presented mode if that is your product. Skim testing/programme pages only if you are entering a lab. Do not treat marketing PDFs as field dictionaries. Come back here to exercise bytes in the browser.

Trademark and affiliation (again, on purpose)

Merchants sometimes ask “are you EMVCo certified?” This website is not. EMVCo certifies products and programmes listed on emvco.com. We are an independent toolkit by Pankaj Kalra. Point auditors to your acquirer and lab for cert questions; point engineers here and to EMVCo for grammar questions.

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.

Identity tags that humans actually read

Tag 59 (name, commonly max 25) is what the wallet shows the customer. TEST and EMVQRHUB on a live counter are how overlay fraud is missed. Use the fascia name. Tag 60 (city, commonly max 15) should match how the shop is known, not a marketing region. Tag 58 is ISO 3166-1 alpha-2 (IN, TH, SG), never INDIA. Tag 52 is a four-digit MCC from the merchant file — 0000 and 9999 look like placeholders and fail some certs.

Tag 53 is numeric ISO 4217 (356, not INR). Tag 54 is the amount, present for billed 12-codes, absent for classic 11 stickers. Tag 61 postal code is optional. Tag 62 additional data is optional on stickers and often required for billed recon. Tag 63 CRC is last.

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.

Tag 62 sub-tags in recon

Bill number, mobile, store label, loyalty id — whichever sub-tags your scheme uses, agree with finance which one appears on the settlement file. Tags explain bytes; finance explains which byte they reconcile. Omit unused 62 inner tags rather than stuffing placeholders.

Explore Related Guides

EMV QR Generator
Create merchant-presented EMV QR payment payloads.
QR Parser & Decoder
Decode QR payloads and inspect EMV tags.
Legal Disclaimer:EMV QR Hub is a technical utility. We do not process financial transactions or store sensitive payment data. Not affiliated with EMVCo, LLC.