QR Data Object
Overview
A Merchant-Presented QR Code payment transaction enables consumers to make payment for purchases using a merchant generated and displayed QR Code based on the merchant’s details. For example, it can be used to enable the transfer funds to a merchant account designated by the Merchant Account Information over a payment network in exchange for goods and services provided by the merchant.
Consumer may download an Issuer mobile application on their mobile phones that has the capability to scan a Merchant-Presented QR Code and execute a payment transaction. This mobile application may be an existing mobile banking application from an Issuer. The request to process the payment transaction will be directed to the Issuer managing the account from which the funds will be debited.
DuitNow QR Data Object
Name | ID | Format | Length (Decimal) | Presence | Description |
---|---|---|---|---|---|
Payload Format Indicator | “00” | N | 02 | M | Version “02” |
Point of initiation method | “01” | N | 02 | M | 11 – Static QR Code 12 – Dynamic QR Code |
Merchant Account Information | “26” – “27” | ANS | Variable up to 99 | M | Please see Merchant Account Information (IDs “26” – “27”) for details. ID “27” is Reserved for Future Use (RFU). |
Merchant Category Code | “52” | N | 04 | M | As defined in ISO18245.
|
Transaction Currency Code | “53” | N | 03 | M | As defined in ISO4217. Use 458 for Malaysian Ringgit. |
Transaction Amount | “54” | ANS, limited to numeric and the "." symbol | Var. up to 13 | C | Please see Transaction Amount (ID “54”) & Value of Convenience Fee Fixed (ID “56”) for details. |
Tip or Convenience Indicator | “55” | N | 02 | O |
|
Value of Convenience Fee Fixed | “56” | ANS, limited to numeric and the “.” symbol | Var. up to 13 | C | The Value of Convenience Fee Fixed must be present if the data object ID “55” is present with a value of 02. Otherwise, this data object must be absent. Please see Transaction Amount (ID “54”) & Value of Convenience Fee Fixed (ID “56”) for details. |
Value of Convenience Fee Percentage | “57” | ANS, limited to numeric and the “.” symbol | Var. up to 05 | C | The Value of Convenience Fee Percentage must be present if the data object ID “55” is present with a value of 03. Otherwise, this data object must be absent. Example;“0.06” indicates that the convenience fee percentage is 0.06% and must be calculate as transaction amount * 0.06% Note: Valid value “0.01”-“99.99”. |
Country Code | “58” | ANS | 02 | M | As defined by ISO3166. Use “MY” for Malaysia. |
Merchant Name | “59” | ANS | Var. up to 25 | M | Name of the Merchant. e.g. “Interesting Wares Sdn Bhd” |
Merchant City | “60” | ANS | Var. up to 15 | M | Use “MY” if this field is not applicable. |
Postal Code | “61” | ANS | 05 | O | Must be 5 numeric values. |
Additional Data Field Template | “62” | S | Variable Up to 99 | C | Additional information beyond that mentioned above may be required in certain cases. This information may be either presented by the merchant or Acquirer. The acquirer / merchant should provide only minimum information in order to avoid making the size of data onerous. The length of each tag is variable up to 30 characters and overall it is not to exceed the maximum of 99 characters for the total size of the Additional Data Field. Required for JomPAY QR. Please see Additional Data Field Template (ID “62”) for Data Object. |
Merchant Information – Language Template | “64” | S | Var. up to 9 | O | As defined by ISO 639. The Merchant Information—Language Template includes merchant information in an alternate language and may use a character set different from the Common Character Set. If the ID “64” is present, the Language Preference (ID “00”) and Merchant Name (ID “01”) must be present. |
“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 | |
Cyclic Redundancy Check (CRC) | “63” | ANS | 04 | M | Checksum calculated over all the data objects included in the QR Code. Please see CRC (ID “63”) for details. |
Data Integrity Check | “82” | ANS | 99 | O | To carry hash value or any other authentication value to ensure data integrity. Please see Data Integrity Check (ID “82”) for details. |
Transaction Amount (ID “54”) & Value of Convenience Fee Fixed (ID “56”)
- If present, the amount 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 number of digits after the decimal mark should align with the currency exponent associated to the currency code defined in [ISO 4217].
The above describes the only acceptable format for the amount. It cannot contain any other characters (for instance, no space character, or comma can be used to separate thousands).
The following are examples of valid amounts: "98.73", "98" and "98.", “0.1” and “0.01”. The following are NOT valid Transaction Amounts: "98,73", "3 705" and “3,705”. - The amount shall not be included if the mobile application should prompt the consumer to enter the value to be paid to the Merchant.
Additional Data Field Template (ID “62”)
If present, the Additional Data Field Template shall contain at least 1 data object.
If present, the content of the data object value for IDs "01" to "08" shall be either "" or a value defined by the merchant. The presence of "" indicates that the mobile application is responsible for obtaining the necessary information.
Example: A Customer Label input characters “0603***” means consumer is prompted for Customer Label.
If present, the Additional Consumer Data Request (ID “09”) shall contain any combination of the characters “A”, “M” and/or “E”, and there shall only be a single instance of each character.
If present, each of the three positions in the Merchant Channel (ID “11”) identifies a characteristic of the channel used for a QR transaction. The values and definitions are listed in Tables 3, 4 and 5 below.
Value | Definition |
---|---|
"0" | Print – Merchant sticker |
"1" | Print – Bill/Invoice |
“2” | Print – Magazine/Poster |
“3” | Print – Others |
“4” | Screen/Electronic – Merchant POS/POI |
“5” | Screen/Electronic – Website |
“6” | Screen/Electronic – App |
“7” | Screen/Electronic – Others |
Value | Definition |
---|---|
“0” | At Merchant premises/registered address |
“1” | Not at Merchant premises/registered address |
“2” | Remote commerce |
“3” | Others |
Value | Definition |
---|---|
“0” | Attended POS/POI |
“1” | Unattended |
“2” | Semi-attended (self-checkout) |
“3” | Others |
Name | ID | Format | Length | Presence | Description |
---|---|---|---|---|---|
Bill Number | 01 | ANS | Variable up to 25 | O | Invoice number or bill number. |
Mobile Number | 02 | ANS | Variable up to 25 | O | To be used for mobile number. |
Store Label | 03 | ANS | Variable up to 25 | O | A distinctive number associated to a store. |
Loyalty Number | 04 | ANS | Variable up to 25 | O | Loyalty card number as provided. |
Reference Label | 05 | ANS | Variable up to 25 | O | Any value as defined by merchant or Acquirer in order to identify the transaction. |
Customer Label | 06 | ANS | Variable up to 25 | O | To be used to identify a specific consumer. |
Terminal Label | 07 | ANS | Variable up to 25 | O | To be used to identify a specific terminal. |
Purpose of Transaction | 08 | ANS | Variable up to 25 | O | Consumer to input a value describing the purpose of the transaction. |
Additional Consumer Data Request | 09 | A | Variable up to 03 | O | Mobile application to provide the requested information in order to complete the transaction. |
Merchant Tax ID | 10 | ANS | Variable up to 15 | O | Merchant Tax Identification Number (TIN). |
Merchant Channel | “11” | ANS | Variable up to 3 | O | To identify the channel for how the QR is displayed. |
RRN | “90” | ANS | Variable up to 20 | C | Recipient Reference Number (Ref-1). Required for JomPAY QR. |
RRN2 | "91" | ANS | Variable up to 30 | O | Recipient Reference Number (Ref-2). Optional for JomPAY QR. |
Geo Coordinates | “92” | ANS | Variable up to 35 | O | Latitude and Longitude of the Merchant. |
Payment System Specific | “50” – “89” “92” – “99” | S | Var . | O | Reserve for Future Use (RFU) for Payment Network. |
Merchant Account Information (IDs “26” – “27”)
- The Merchant Account Information template shall be used when the payment system corresponding to the Merchant Account Information is explicitly identified in the template
Name | ID | Format | Length | Presence | Description |
---|---|---|---|---|---|
Application Identifier (AID) | “00” | ANS | 14 | M | Malaysia AID: A0000006150001 |
Acquirer ID | “01” | ANS | Var. up to 06 | M | Acquirer ID. Please see Section Acquirer ID (ID “01”) for details. |
QR ID | “02” | AN | Var. up to 28 | M | Merchant/Recipient Identification Number assigned by Acquirer. For Dynamic QR – Merchant/Recipient ID should be maintained across different QR generated by the same Merchant/Recipient. For JomPAY QR – Use Biller Code. |
Merchant Descriptor | “03” | ANS | Var. up to 20 | O | Merchant Description assigned by Acquirer. |
Mobile Number | “04” | ANS | Var. up to 15 | O | Merchant mobile number. |
CRC (ID “63”)
- The checksum 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.
Example: a CRC with a two-byte hexadecimal value of '007B' is included in the QR Code as "6304007B".
Data Integrity Check (ID “82”)
- Data integrity is the maintenance of, and the assurance of the accuracy and consistency of, data over its entire life-cycle and is a critical aspect to the design, implementation and usage of any system which stores, processes, or retrieves data with the usage of Hash Function.
- Hash Function Algorithm is standardized in ISO/IEC 10118-3. SHA-256 takes as input messages of arbitrary length and produces a hash value.
Acquirer ID (ID “01”)
The Acquirer ID value defined must be used using the ID and Code as below:
No. | Name of Participant | Acquirer ID | BIC Code |
---|---|---|---|
1 | Affin Bank Berhad | 501664 | PHBMMYKL |
2 | Alliance Bank Malaysia Berhad | 504374 | MFBBMYKL |
3 | Al Rajhi Banking & Investment Corporation (Malaysia) Berhad | 432134 | RJHIMYKL |
4 | AmBank Malaysia Berhad | 564169 | ARBKMYKL |
5 | Bank Islam Malaysia Berhad | 603346 | BIMBMYKL |
6 | Bank Kerjasama Rakyat Malaysia Berhad | 589267 | BKRMMYKL |
7 | Bank Muamalat Malaysia Berhad | 564167 | BMMBMYKL |
8 | Bank of America (M) Berhad | 629188 | BOFAMY2X |
9 | Bank of China (M) Berhad | 629152 | BKCHMYKL |
10 | Bank Pertanian Malaysia Berhad (Agrobank) | 589373 | AGOBMYKL |
11 | Bank Simpanan Nasional | 420709 | BSNAMYK1 |
12 | MUFG Bank (Malaysia) Berhad | 629196 | BOTKMYKX |
13 | BNP Paribas Malaysia Berhad | 629204 | BNPAMYKL |
14 | China Construction Bank (Malaysia) Berhad | 629261 | PCBCMYKL |
15 | CIMB Bank Berhad | 501854 | CIBBMYKL |
16 | Citibank Berhad | 589170 | CITIMYKL |
17 | Deutsche Bank (M) Berhad | 629246 | DEUTMYKL |
18 | Hong Leong Bank Berhad | 588830 | HLBBMYKL |
19 | HSBC Bank Berhad | 589836 | HBMBMYKL |
20 | Industrial and Commercial Bank of China (M) Berhad | 629253 | ICBKMYKL |
21 | JP Morgan Chase Bank Berhad | 629212 | CHASMYKX |
22 | Kuwait Finance House (Malaysia) Berhad | 639406 | KFHOMYKL |
23 | Malayan Banking Berhad | 588734 | MBBEMYKL |
24 | MBSB Bank Berhad | 432310 | AFBQMYKL |
25 | Mizuho Bank (Malaysia) Berhad | 629220 | MHCBMYKA |
26 | OCBC Bank Berhad | 504324 | OCBCMYKL |
27 | Public Bank Berhad | 564162 | PBBEMYKL |
28 | RHB Bank Berhad | 564160 | RHBBMYKL |
29 | Standard Chartered Bank Malaysia Berhad | 539981 | SCBLMYKX |
30 | Sumitomo Mitsui Banking Corporation (M) Berhad | 629238 | SMBCMYKL |
31 | United Overseas Bank (Malaysia) Berhad | 519469 | UOVBMYKL |
32 | AEON Bank (M) Berhad | 629295 | ACDBMYK2 |
33 | Boost Bank Berhad | 629303 | BOBEMYK2 |
34 | GX Bank Berhad | 629279 | GXSPMYKL |
35 | KAF Investment Bank Berhad | 629311 | KAFBMYK2 |
36 | YTL Digital Bank Berhad | 629287 | SCCHMYKL |
37 | Koperasi Co-opbank Pertama Malaysia Berhad | 890228 | KCPMMYK1 |
38 | Axiata Digital eCode Sdn Bhd | 890061 | BOSTMYNB |
39 | Beez Fintech Sdn Bhd | 890236 | BEEZMYNB |
40 | BigPay Malaysia Sdn Bhd | 890012 | BGPYMYNB |
41 | Boost Connect Sdn Bhd | 890244 | BCNTMYNB |
42 | Curlec Sdn Bhd | 890160 | CRLCMYNB |
43 | Fass Payment Solutions Sdn Bhd | 890145 | FSPYMYNB |
44 | Fave Asia Technologies Sdn Bhd | 890020 | FAVEMYNB |
45 | Finexus Cards Sdn Bhd | 890038 | FNXSMYNB |
46 | GHL Cardpay Sdn Bhd | 890103 | GHLCMYNB |
47 | Global Payments Asia-Pacific Limited | 890186 | GLPYMYNB |
48 | GPay Network (M) Sdn Bhd | 890046 | GRABMYNB |
49 | Instapay Technologies Sdn Bhd | 890178 | INSTMYNB |
50 | iPay88 (M) Sdn Bhd | 890079 | IPAYMYNB |
51 | Kiplepay Sdn Bhd | 890152 | KPLPMYNB |
52 | Merchantrade Asia Sdn Bhd | 890111 | MASBMYNB |
53 | MobilityOne Sdn Bhd | 890210 | MBLOMYNB |
54 | Payex PLT | 890194 | PAYXMYNB |
55 | Razer Merchant Services Sdn Bhd | 890087 | RZMSMYNB |
56 | Revenue Solution Sdn Bhd | 890095 | RSSBMYNB |
57 | Setel Ventures Sdn Bhd | 890129 | SVSBMYNB |
58 | ShopeePay Malaysia Sdn Bhd | 890004 | ARPYMYNB |
59 | SiliconNet Technologies Sdn Bhd | 890202 | SPAYMYNB |
60 | Stripe Payments Singapore Pte Ltd | 890137 | STRPMYNB |
61 | TNG Digital Sdn Bhd | 890053 | TNGDMYNB |
62 | UniPin (M) Sdn Bhd | 890251 | UNPNMYNB |
63 | JomPAY | 898989 | N/A |