Appendix

Appendix A: Error Code#

TypeResponse codeMessage
Success000Success
AuthenticationA01Invalid API Key.
A02API Key expired, you will be redirected to login page.
ErrorE01Database error. UI: System is temporarily unavailable (E01)
E02Connection error. UI: System is temporarily unavailable (E02)
E03Invalid date/time format
E04Missing mandatory field
E05System error. UI: System is temporarily unavailable (E06)
E06Email service error. UI: System is temporarily unavailable (E07)
E07Data not found
E08Please input number only
E09Checksum Failed
E10Invalid Request
E11MAID configuration is invalid
E12Invalid QR code type
RegisterR01Mobile number not found.
R02User account is disabled.
R03User need to change passcode
R04Email address not found
R05Email is already registered
QR CodeQ01QR code is expired.
Q02QR code format is incorrect.
Q03QR code is already existed.
Q04QR code is not existed.
Q05Merchant ID is not existed.
Q06Terminal ID is not existed.
Q07Invalid amount.
Q08QRCodeType is not eligible to generate.
Q09Merchant is disabled.
Q10Terminal is disabled.
Q11Amount is required.
Q12Duplicate QR.
TransactionT01Invalid transaction ID.
T02Transaction is not eligible for full refund.
T03Transaction is not eligible for a partial refund.
T04Invalid refund amount.
T05Invalid refund transaction ID.
T06Transaction not found.
T07Refund must be made on the same day as transaction.
T10Invalid refund reference ID
T11Partial void is not supported
NotificationN99System error
N01Invalid transaction
N02Per transaction maximum amount limit reached
N03Merchant monthly transaction limit reached
N04No permission for the channel
N05QR code is inactive
N06QR code is expired
N07Duplicate QR
N08Duplicate invoice
N09Invalid amount
N10Invalid MAID
N11Merchant daily transaction limit reached

Appendix B: QR CODE MESSAGE FORMAT#

Merchant – Presented QR Code format and content used in the application here are in accordance with EMVCo QRCPS, see Ref. 1. Additional format, deviation format or specific contents of QR Code for other channels should be defined under this appendix chapter.

B.1: MASTERCARD#

This section describes the requirements, and specific contents of QR code for MASTER CARD QR code.

Requirements

  • CRC - The Receiving Institution must correctly generate an ISO/IEC 3309 compliant 4-character value derived from the all the Data Element values in the Data String i.e. the Cyclic Redundancy Checksum (CRC) denoted by id β€œ63”. Data object β€œ63” must be the last-placed data object in the QR Code.
  • Mastercard Merchant ID - Denoted by id β€œ04”. This data contains the ID(s) by which the Merchant may be identified and will bear the format of a standard 16-digit Mastercard PAN. In this case, only the first 15 digits will appear in the Data String and the OI must derive the final check digit based on the Modulus 10 / Luhn formula, and then populate the same into the Payment Transaction.
  • MasterCard Merchant Assigned Identifier (MAID) – Where a MAID is applicable for a merchant, the RI must populate this MAID value in the merchant’s QR code, anywhere in the dynamically allocable id β€œ26” – β€œ51”, with sub id β€œ01” immediately after the Mastercard AID of A0000000041010 with sub id β€œ00”. Please refer to Table 4.
  • Payment Facilitator Identifier (PF ID) – This is a unique identifier created and assigned to a payment facilitator (β€œPF”) acquiring merchants on behalf of a licensed Mastercard Receiving Institution. Where the merchant has been acquired by the PF, the merchant’s QR Code must be populated with the corresponding PF ID value anywhere in the dynamically allocable tags β€œ26” – β€œ51”, with sub id β€œ02” immediately after the MAID with sub id β€œ01” and Mastercard AID of A0000000041010 with sub id β€œ00”. Please refer to Table 4.
  • Merchant Name in a language other than English - Should a merchant have merchant information in an alternate language, RI can include this information on Merchant Information – Language Template with ID β€œ62”. The sub id β€œ00” is used for storing 2 alphabetical characters that represents Language Preference; the sub id β€œ01” is used for storing Merchant Name in an alternate language; and the sub id β€œ02” is used for storing Merchant City in an alternate language. Please refer to Table 5.

Table 4: Data Object for Merchant Account Information Template (Tag No "26" to"51") defined by Mastercard

Sub Tag NoField NameFormatLengthMandatory
00Globally Unique Identifieransup to "32"M
01Mastercard Assigned Merchant Identifier (MAID)ansup to β€œ6”O
02Payment Facilitator IDansup to β€œ11”O

Remarks: Where applicable, MAID value will be stored in Tag No 51.

Table 5: Merchant Information Language Template with Tag No "64"

Sub Tag NoField NameFormatLength
00Language Preferenceans"02"
01Merchant Name – Alternate LanguageSup to "26"
02Merchant City – Alternate LanguageSup to "15"
03-99RFU for EMVCoSup to "99"

B.2: PROMPTPAY#

This section describes the additional format, deviation format and specific contents of QR code for PromptPay. The PromptPay QR code will be implemented in accordance with Thai QR Code - Guide Line V.1.9 and Thai QR Code specification v1.31.

Table: PromptPay message specification deviation from the EMVCo standard

Sub Tag NoField NameFormatLengthMandatory
01Point of Initiation MethodNβ€œ02”M for PromptPay
52Merchant Category CodeNβ€œ04”O for PromptPay
55Tip or convenience indicatorN"02"N/A for PromptPay
56Value of convenience fee fixedans, limited to numeric and the "." symbolUp to β€œ13”N/A for PromptPay
57Value of convenience fee pecentageans, limited to numeric and the "." symbolUp to β€œ05”N/A for PromptPay
59Merchant NameansUp to β€œ25”M for card scheme, C for PromptPay
60Merchant CityansUp to β€œ15”M for card scheme,O for PromptPay
62Additional Data Field TemplateSUp to β€œ99”O
62 (sub-tag 07)Terminal LabelansUp to β€œ25”O for card scheme,C for PromptPay

Table: Merchant Identifier for PromptPay credit transfer template with Tag No "29"

Sub Tag NoField NameFormatLengthMandatory
00AIDans"16"M
01Mobile NumberN"13"One of them is mandatory
02National ID or Tax IDN"13"One of them is mandatory
03E-Wallet IDN"15"One of them is mandatory
04Bank AccountNUp to "43"One of them is mandatory
05OTAN"10"C

Table: Merchant Identifier for PromptPay Bill Payment template with Tag No "30"

Sub Tag NoField NameFormatLengthMandatory
00IDansβ€œ16”M
01Biller IDNβ€œ15”M
02Reference 1ansUp to β€œ20”M
03Reference 2ansUp to β€œ20”O

Table: Merchant Identifier for Payment Innovation (API) template with Tag No "31"

Sub Tag NoField NameFormatLengthMandatory
00AIDansβ€œ16”M
01Acquirer IDNβ€œ03”M
02-99Acquirer specificansO

Table: Merchant Identifier for Payment Innovation (Standard API) template with Tag No "31"

Sub Tag NoField NameFormatLengthMandatory
00AIDansβ€œ16”M
01API IDNβ€œ03”M
02Sending Bank IDNβ€œ03”M
03Transaction Refansβ€œ25”M

Table: Merchant Account Information (By Master Card) template with Tag No "51"

Sub Tag NoField NameFormatLengthMandatory
00Globally Unique Identifieransup to "32"M
01Master Assigned Merchant identifier (MAID)ansup to β€œ6”O
02Payment Facilitator IDansup to β€œ11”O

Table: TQRC VAT value template with Tag No "80"

Sub Tag NoField NameFormatLengthMandatory
00Seller Tax Branch IDans"04"M
01Vat Rateans, limited to numeric and the "." symbolup to "05"O
02Vat Amountans, limited to numeric and the "." symbolup to "13"M

Remarks:

  • The following optional fields - Reference 2 in Tag "30" and Terminal ID for bill payment in Tag "62" - if present must be sent to receiving bank.
  • Referring to Tag No range from 02 – 51, one of these tag presence is mandatory, anything more than one is optional.
  • See Thai QR Code - Guide Line V.1.9 and Thai QR Code specification v1.31 for further PromptPay QR implementation guideline.

B.3: GIP#

This section describes the additional format, deviation format and specific contents of QR code for GIP wallet channel. GIP wallet will reserve following tag number of QR Code message which describe in the table below to store its additional and specific contents.

Table: Merchant Identifier for GIP with Tag No "26"

Tag NoField NameFormatLengthMandatory
26Merchant Identifier - GIPansβ€œ16”M

B.4: UNIONPAY#

This section describes the additional format, deviation format and specific contents of QR code for UnionPay channel. UnionPay will reserve following tag number of QR Code message which describe in the table below to store its additional and specific contents.

Table: Merchant Identifier for UIP with Tag No "15" and β€œ16”

Tag NoField NameFormatLengthMandatory
15Merchant Identifier - UPIansup to β€œ99”M
Acquirer IINans8
Forwarding IINans8
Merchant IDans15
16Merchant Identifier - UPIansup to β€œ99”O

Table: UnionPay message specification and specific remarks on original fields

Tag NoField NameFormatLengthMandatory
52Merchant Category CodeNβ€œ04”M
62Additional Data Field TemplateSUp to β€œ99”O
62 (sub-tag 05)Reference LabelansUp to β€œ25”C

B.5: PAYNOW#

This section describes the additional format, deviation format and specific contents of QR code for Singapore PayNow. The PayNow QR code will be implemented in accordance with PayNow-QR-Specifications-ver1.6 and SGQR Specifications v1.7.

Table: Merchant Account Information (PayNow) with floating ID "26" (SGQR adopts a floating ID methodology)

Tag NoField NameFormatLengthMandatory
00Globally Unique IdentifierNβ€œ09”M
01Proxy typeNβ€œ01”M
02Proxy ValueansUp to β€œ16”M
03Editable Transaction amount indicatorNβ€œ03”O
04QR Expiry DateNβ€œ08”O
05Merchant Reference Number (For static QR generation)ansUp to β€œ25”O

B.6: JCB#

This section describes the additional format, deviation format and specific contents of QR code for JCB channel. JCB will reserve following tag number of QR Code message which describe in the table below to store its additional and specific contents.

Table: Merchant Identifier for JCB with Tag No "13" and β€œ14”

Tag NoField NameFormatLengthMandatory
13Merchant Account Informationansup to β€œ99”M
14RFU for JCBIansup to β€œ99”-

Merchant PAN: Acquirers must generate a Merchant PAN for each merchant by concatenating its AIN with a unique 7-digit number, followed by a Check Digit. Example:

Merchant PAN: 3158 0000 0000 012x

Acquirer Identification Number: 31580000 (1st -8th digit)

Unique number for each Merchant: 0000012 (9th-15th digit)

Check Digit: x (16th digit)

Appendix C: REFERENCE DATA#

C.1: CHANNELS#

This section describes a list of channel and QR type which support by the system.

Channel NameChannel CodeQR Type
MasterCardMTCEM
VISAVSAEM
UnionPayUPIEM
UnionPay OnlineUPOEM
JCBJCBEM
PromptPayTQRPP
EMVCo+PromptPay-PE
AMEXAMX-
DinersDIN-
WeChatWCT-
AliPayALI-
LINELNE-
Global Issuing ProjectGIPGI
PayNowPANPN
AirPayAIRAP
GrabPayGRBGR
CB PayCBPCB
KBZ PayKBZKZ
ShopeePaySHPSP
GCashGCHGC
Mandalay Smart PayMSPMP

C.2: TRANSACTION STATUS#

Status CodeDescription
SSettled
CCanceled
FFailed
SPSettle Pending
RCRefund Canceled
RSRefund Settled
RFRefund Failed

C.3: REFUND REQUEST STATUS#

Status CodeDescription
RCRefund Canceled
RSRefund Settled
RFRefund Failed