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.

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.

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.