4. QR code payload data objects

@PayOn development group

As described in the EMV QRCPS, the content of the QR Code includes the following 5 groups of data objects: • QR Code Conventions (Table 4.1) • Merchant Account Information (Table 4.2) • Additional Merchant Information (Table 4.3) • Transaction Value (Table 4.4) • Additional Data Template (Table 4.5)

4.1 QR code conventions

The QR Code Conventions (Table 4.1) specify conventions used for the QR Code content, such as Payload Format indicator, which defines the version of the QR Code template and hence the conventions on the identifiers, lengths and values.

Table 4.1 QR code conventions

ID

Name

Length

Presence

Remarks

"00"

Payload format indicator

"02"

M

A fixed value of "01"

  • Value of PayOn is "PO"

"01"

Point of initiation method

"02"

O

"11" for static QR code

"12" for dynamic QR code

"63"

Cyclic redundancy check (CRC)

"04"

M

Checksum calculated over all the data objects included in the QR code

The Payload Format Indicator (ID “00”) shall contain a value of "01". All other values are RFU. The Point of Initiation Method (ID “01”) shall contain a value of "11" or "12". All other values are RFU. The value of "11" should be used when the same QR Code is shown for more than one transaction and the value of “12” should be used when a new QR Code is shown for each transaction. The CRC (ID “63”) shall be calculated according to [ISO/IEC 13239] using the polynomial '1021' (hex) and initial value 'FFFF' (hex). The data over which the checksum is calculated shall cover all data objects, including their ID, Length and Value, to be included in the QR Code, in their respective order, as well as the ID and Length of the CRC itself (but excluding its Value). Following the calculation of the checksum, the resulting 2-byte hexadecimal value shall be encoded as a 4-character Alphanumeric Special value by converting each nibble to an Alphanumeric Special character. For example, a CRC with a two-byte hexadecimal value of '007B' is included in the QR Code as "6304007B".

4.2 Merchant account information

The Merchant Account Information specifies the identity of a merchant. Each payment operator may define its own format of the Merchant Account Information IDs. Table 4.2A shows the allocation of Merchant Account Information IDs among various payment operators.

Table 4.2A : Merchant Account Information

ID

Name

Length

Presence

Remarks

"02"-"03"

Reserved for Visa

Var. up to "99"

M One or more data objects (ID "02" to "51") shall be included

"04"-"05"

Reserved for Mastercard

"06"-"08"

Reserved by EMVCo

"09"-"10"

Reserved for discover

"11"-"12"

Reserved for Amex

"13"-"14"

Reserved for JCB

"15"-"16"

Reserved for UnionPay

"17"-"25"

Reserved by EMVCo

ERROR

"26"

Reserved for local debit card scheme-Bakong for use in KH

"27"-"28"

Reserved by the WG for use in Cambodia

These IDs are reserved for future use

"29"-"30"

Reserved for national payment for use in cambodia

"29" reserved for remittance "30" reserved for bill payment

"31"

Reserved by the WG for payment innovation (API)

These IDs are reserved for future use

"32"-"38"

Reserved for additional payment network for use in Cambodia

These IDs are reserved for future use

"39"-"51"

Reserved for non-bank payment network for use in Cambodia

Dynamically used by non-bank payment operators for use in Cambodia

  • PayOn specific ID "39"

The IDs ”26” to “51” are Merchant Account Information templates, which may include primitive data objects and other templates that can be defined by individual payment operators.

The Merchant Account Information template shall contain a primitive Globally Unique Identifier data object with a data object ID "00" to identify the payment operator and the corresponding merchant account information specific to that payment operator (Table 4.2B).

Table 4.2B : Data object ID allocation in merchant account information template (IDs "26" to "51")

ID

Name

Format

Length

Presence

Remarks

"00"

Globally unique identifier

ans

Var. up to "32"

M

An identifier to identify the payment operator which uses this template to define the Merchant Account Information

The value is one of the following:

• an Application Identifier

(AID);

• a [UUID] without the hyphen (-) separators; or • a reverse domain name.

"01"-"99"

Payment network specific

S

O

Additional data objects to define the Merchant Account Information specific to the payment operator

  • PayOn specific ID "01".

The value of the Globally Unique Identifier field shall contain one of the following: • An Application Identifier (AID) consisting of a RID registered with ISO and, optionally, a PIX, as defined by [ISO 7816-4]. For example, "D840000000". • A [UUID] without the hyphen (-) separators. For example, “581b314e257f41bfbbdc6384daa31d16”. • A reverse domain name. For example, “com.merchant.name”. The value of the Globally Unique Identifier field sets the context for the remainder of the template and the meaning of the other data objects in the template are context specific and outside of the scope of this specification.

4.3 Additional merchant information The Additional Merchant Information (Table 4.3A) specifies the information about a merchant such as merchant name and business location.

Table 4.3A : Additional Merchant Information

ID

Name

Format

Length

Presence

Remarks

"52"

Merchant Category

Code

N

"04"

M

Put a dummy code of “0000” in this field if the payment operator does not use this information

"58"

Country Code

ans

"02"

M

For Cambodia is “KH”

"59"

Merchant Name

ans

var. up to "25"

M

"60"

Merchant City

ans

var. up to "15"

M

"61"

Postal Code

ans

var. up to "10"

O

"64"

Merchant Information - Language Template

S

var. up to "99"

O

A template with other primitive data objects (See EMV QRCPS for details)

The Merchant Category Code (MCC) (ID “52”) shall contain an MCC as defined by [ISO

18245]. The MCC should indicate the Merchant Category Code of the merchant. Put a dummy code of “0000” in the MCC field if the payment operator does not use this information.

The Country Code (ID “58”) shall contain a value as defined by [ISO 3166-1 alpha 2]. The Country Code should indicate the country in which the merchant transacts. Put “KH” in the Country Code field if the merchant transacts in Cambodia.

The Merchant Name (ID “59”) shall be present. The Merchant Name should indicate the “doing business as” name for the merchant. If the QR code information supports only payment operators who supply merchant information via the payment operator’s centralized database, this field may be populated with a dummy code of “NA” in the Merchant Name field. In all other instances, the Merchant Name field must indicate the “doing business as” name for the merchant.

The Merchant City shall be present (ID “60”). The Merchant City should indicate the city of the merchant's physical location. Put “KH” in the Merchant City Code field if the merchant is located in Cambodia.

The Merchant Information – Language Template (ID “64”) is a template, which contains other data fields, which may be used by a mobile application to present the merchant information in an alternate language (Table 4.3B).

Table 4.3B: Data fields for merchant information - language template (ID "64")

ID

Name

Format

Length

Presence

Remarks

"00"

Language Preference

ans

"02"

M

"01"

Merchant Name—Alternate Language

S

Var. up to “25

M

"02"

Merchant City—Alternate Language

S

var. up to "15"

O

"03"- “99”

RFU for EMVCo

S

var. up to "99"

Data objects reserved for

EMVCo

If the Merchant Information – Language Template (ID “64”) is present, the template shall contain the Language Preference field (ID "00") and Merchant Name — Alternate Language field (ID "01"). It may contain the Merchant City — Alternate Language field (ID "02"). All other IDs within the Merchant Information—Language Template are RFU for EMVCo.

The data fields with IDs "01" and "02" are used as an addition to the merchant information under the root. While the equivalent data objects under the root are defined with a format of Alphanumeric Special, and as such can only contain the Common Character Set, the data fields with IDs “01” and “02”, if present, are defined with a format of String, so therefore may contain a different character set.

The Language Preference field (ID “00”) shall contain 2 alphabetical characters coded to a value defined by [ISO 639]. The value should represent the single language used to encode the Merchant Name—Alternate Language field (ID “01”) and the optional Merchant City—Alternate Language field (ID “02”).

4.4 Transaction Value

The Transaction Value data objects (Table 4.4) specify the currency and amount of a transaction. They also include tip or convenience indicators, which allow merchants or customers to specify the convenience fee in fixed value or percentage.

Table 4.4 : Transaction value

ID

Name

Format

Length

Presence

Remarks

“53”

Transaction Currency

N

“03”

M

A numeric code based on [ISO

4217], e.g. put “116” for KHR.

“54”

Transaction Amount

ans

Var. up to “13”

C

“55”

Tip or Convenience

Indicator

N

“02”

O

“56”

Value of Convenience

Fee Fixed

ans

Var. up to “13”

C

“57”

Value of Convenience

Fee Percentage

ans

Var. up to “05”

C

The Transaction Currency (ID “53”) shall conform to [ISO 4217] and shall contain the

3-digit numeric representation of the currency. For example, KHR is represented by the value "116". The value should indicate the transaction currency in which the merchant transacts.

The Transaction Amount (ID “54”), if present, shall be different from zero, shall only include (numeric) digits "0" to "9" and may contain a single "." character as the decimal mark. When the amount includes decimals, the "." character shall be used to separate the decimals from the integer value and the "." character may be present even if there are no decimals. The Transaction Amount shall not be included if the mobile application should prompt the consumer to enter the amount to be paid to the Merchant.

The payment system operators should follow the rules and format in accordance with the EMV QRCPS to process the Transaction Value IDs of the QR Code.

4.5 Additional data template and PayOn fields

The ID “62” is a template which includes common additional data objects such as Bill Number and Reference Label. It also allows payment operators to define their own additional data objects.

Table 4.5 : Additional Data and PayOn fields

ID

Sub- ID

Name

Format

Length

Pre- sence

Remarks

“62”

“01”

Bill Number

ans

var. up to “25”

O

“02”

Mobile Number

ans

var. up to “25”

O

“03”

Store Label

ans

var. up to “25”

O

“04”

Loyalty Number

ans

var. up to “25”

O

“05”

Reference Label

ans

var. up to “25”

O

“06”

Customer Label

ans

var. up to “25”

O

Merchant Name for PayOn spec

“07”

Terminal Label

ans

var. up to “25”

O

“08”

Purpose of

Transaction

ans

var. up to “25”

O

“09”

Additional Consumer Data Request

ans

var. up to “25”

O

“10” – “49”

Reserved for

EMVCo

S

O

“50”

Reserved for

FPS

S

O

“51” – “55”

Reserved for the

WG

S

O

“81”

Transaction ID

S

Var. up to "16"

O

PayOn spec

"82"

Terminal ID

S

10

O

PayOn spec

"83"

QR TRT - Transaction Type (10: Payment, 30: Top Up, 50: Refund)

S

2

O

PayOn spec

"84"

API_MODE (1: Web Payment, 2: Merchant App, 3: POS - Telpo, 5: POS - Z90)

S

1

O

PayOn spec

"85"

REQ_DATE

S

14

O

PayOn spec

"86"

Merchant ID (payon)

S

8

O

PayOn spec

"87"

Product ID - GiftOn

S

8

O

PayOn spec

"88"

Pruchase Datetime - GiftOn

S

14

O

PayOn spec

"90"

Product Name - GiftOn

S

Var. up to 50

O

PayOn spec

"91"

Product Image - GiftOn

S

Var. up to 50

O

PayOn spec

"92"

Merchant ID - GiftOn

S

Var. up to 50

O

PayOn spec

"93"

Quantity - GiftOn

S

O

PayOn spec

The payment operators should follow the rules and format in accordance with the EMV QRCPS to process the Data Objects for Additional Data Field Template of the QR Code. As the maximum data size of this Additional Data Field Template (ID “62”) is only 99 characters, it is highly recommended that the operators make use of the pre-defined additional data objects (Sub-IDs “01” – “09”) and avoid defining their own additional data objects in this template so as to prevent data overflow when QR codes of several payment system operators are combined into one common QR Code.

Last updated