Techspecs NAPAS QR Code - EN
Techspecs NAPAS QR Code - EN
SWITCH SERVICES
Subjects of application of the “Switching Service Connection Technical Standards” are NAPAS
Organizations Member including but not limited to Banks Member (NHTV) of NAPAS and Intermediate
Payment Company (TGTT) participate in connecting and deploying QR switching service.
2 Scope
This document describes the message formats for switching service transactions QR that NAPAS deploys
with Organization Member.
The following table describes the terms and abbreviations used in the document:
No Term/Acronyms Translation
4. Change history
2018-10-11 1.1 Update details of MCC in section 5.2.4 Code No item IT equipment
(ID 52)
2019-01-30 1.4 - Add Service ID for ATM withdrawal with QR value is QRCASH
in tag 38
Transactions through the Switch QR system comply with the QR code Merchant Presented standard of
EMVco
The data contained in a QR code is structured as follows, each data object is created
into 3 individual data fields. The first field is a description of the identifier (ID) that the data object can be
referenced. The next field is the length field that specifies the number of characters that can be appear in
the third field. A data object is then represented as an include ID/Length/value as follows:
- The length is encoded as a two-digit numeric value, with values from "01"
to "99"
- The value field has a minimum length of one character and a maximum length of 99
characters
Data objects that are not encapsulated in a templates are set to be under the root QR code
The value of an ID is not unique and the data object it refers to is the content specific. If the ID is not under
the root, the context of an ID is defined by the template package
For example, the ID "01" under the root of the QR Code refers to the Initialization method, while the ID
"01" refers to the Invoice Number when it is in the Additional Data Field Template (in the ID "62")
The Payload Format (ID "00") is the first data object under the root and allows the mobile application to
determine the representative data of the remaining data contained in the QR Code and data analysis. CRC
(ID "63") is the last object under the root and allows
The mobile application checks the integrity of the scanned data without the need to analyze the data off all
objects data. Location of all other data objects below the origin or in the template is arbitrary and can appear
in random order.
- alphanumeric (N), numeric [N] format data objects containing only value is represented
by the digits "0" to "9". Each digit is encoded in. QR codes in binary are defined according to the
[Unicode] rule.
- special characters (ANS), Special characters contain only defined values in the generic
character set of [EMV Book 4]. Each character encoded in the QR code in binary defined according
to the [Unicode] rules
- string type (S). Contains only available values defined by [Unicode]. Each character
encoded in a QR code in binary is defined according to the Unicode definition
Note that the numeric type is a subset of the special character, and the special character is a subset of String.
Merchant Information -
“64” ANS Maximum “99” O
Language Template
Table 4.1, Table 2.2 and Table 2.3 list the name of the data object, the ID of the data object, data object
value field format, data object value field length data, and the presence data of the data object in the Addition
of Field Templates. The Data (ID "62") of the QR Code is Mandatory (M), Conditional (C) or Optional (O)
Table 4.1 - Data Structure for Additional Information (ID “62”) for QR PUSH service
Table 5.2 – Data Structure for Additional Information (ID “62”) for QR Cash service
Table 6.3 Data Structure for Additional Information (ID “62”) for QR IBFT service
Each data object with IDs "01" through "08" in Table 4 can be used in two ways: either the Merchant can
provide both the ID and its meaningful value, or the Merchant can include an ID with a special value that
the mobile app can notify to consumers about this information.
To remind consumers of one or more of these values, the Merchant will consist of the corresponding ID in
each of template with a length of "03" and a value equal "***".
When the consumer is notified by the mobile app to put a value for any data object, the length of the entered
value must not exceed the length as shown in Table 4.
A data object with ID "09" contains one or more values that indicate a mobile app provided as part of the
initiation transaction mandatory. This data has been applied for mobile phones know and users do not need
to remind data. One or more of the following characters may appear in Additional Consumer Data Request
Request (ID "09") to indicate that the corresponding data should be provided in the start transaction to
complete the transaction
If there is more than one character, it means that each data object corresponds to the character required to
complete the transaction. Note that each character can only appear onetime.
Table 7 lists the name of the data object, the ID of the data object, the format of the data object, the length
of the data object, and whether the presence of the data object in the Merchant information language (ID
"64") of the QR Code is Mandatory(M), Conditional (C) or Optional (O). These data objects can be used
by a mobile application to present information Merchant by Language Preference.
Data objects with IDs "01" and "02" are used as a Additinal for Merchant information under the root
directory. While the underlying data objects are equivalent to defined with a special Alphanumeric format,
and thus can only contain the usual character, these data objects, if any, are defined with a String format,
so it may contain another character set.
Format: N
Length: 2
Display: Mandatory
Purpose: The data version is the first data object in the QR code, used to identify QR code versions and
rules for IDs, lengths, values. The data version has a value of “01”.
Format: N
Length: 2
Display: Optional
Purpose: Initialization method defines the communication technology to distinguishes the data is dynamic
or static
- “12” = Dynamic QR – applies when the QR code only allows one transaction
Format: S
Length: up to 99
Display: Mandatory
Purpose: Merchant ID information is used to identify a specific Merchant. QR IBFT service identifies the
Beneficiary consumer and the Beneficiary bank (BNB)
IDs 26-51 are used for other Payment Intermediaries Company or Banks that not listed of the payment
organization at ID 02-25. ID 38 is used for QR service through the Napas system
Merchant
ID/
Maximum
01 S
19
Consumer
ID
In which:
Sub
Length Value
Tab
00 6 970403
01 16 2112995044604025
- ACQ ID / BNB ID: banks in Vietnam use BIN code issued by the State Bank of
Vietnam. Example: 970403.
Regulation of data of each type of service, in case QR does not have this service code referred to QRPUSH
service
VALUE PURPOSE
5.2.3.2.4 Example
00 06 970403 ACQ ID
00069704030108012345678
00 06 970403 ACQ ID
01 08 012345678 ATM ID
000697046801130011009950446
00 06 970468 ACQ ID
01 13 0011009950446 Consumer ID
Format: N
Length: 4
Display: Mandatory
Purpose: The Merchant ID code must follow the ISO 18245 standard and is assigned by the payment
organization. This MCC must indicate the Seller's Commodity Code.
MCC Purpose
5992 Florists
8062 Hospitals
5.2.5 Currency Code (ID 53)
Format: N
Length: 3
Display: Mandatory
Purpose: Base on ISO 4217 compliant currency code that specifies the currency of a transaction that
customers can recognize through the mobile application every time the transaction amount is displayed or
when the customer enters the amount in the application.
Format: S
Length: up to 13
Purpose: If displayed, the transaction amount will be shown to the customer through the mobile app. The
transaction amount must be non-zero value, only numbers from "0" to "9" and can contain a "." character. If
the amount includes decimals, the "." will be used to separate the part decimal from integers and the "." can
appear even without the decimal part feces.
The number of characters after the decimal must match the currency exponent associated with the currency
code base on ISO 4217.
Amount must not contain any other characters (e.g. do not use space character.) way to separate thousand
unit
If the transaction amount is not displayed on the mobile application, the customer will enter the amount of
number.
Format: N
Length: 2
Display: Optional
Purpose: If displayed, the Tip indicator and Transaction Fees will consist of 1 of value “01”, “02”, “03”.
Other values are register as backup
Value “02”: The Merchant collects the fixed fees specified at (ID “56”)
Value “03”: The Merchant collects the percentage fees specified at (ID “57”)
If the Transaction Amount does not appear in the QR code, the Tip Indicator and Transaction Fee may
appear.
Format: S
Length: up to 13
Purpose: If Tip Indicator and Transaction Fee appear in (ID "55") with value = 02 then fixed fee value (ID
“56”) will appear. Fixed fee amount will be displayed to the customer through mobile app. If displayed, the
transaction amount will be shown to the customer through the mobile app. The transaction amount must be
non-zero value, only numbers from "0" to "9" and can contain a "." character. If the amount includes
decimals, the "." will be used to separate the part decimal from integers and the "." can appear even without
the decimal part feces.
If (ID “55”) has a value other than 02, (ID “56”) will not appear.
Format: S
Length: up to 5
Purpose: If Tip Indicator and Transaction Fee (ID "55") have value = 03 then Percentage Charge Value
(ID “57”) will appear and have a value from “00.01” to “99.99”. The percentage fee value will only include
numeric characters from “0” to “9” and may include 1 character “.” To separate decimals feces, characters
"." can still appear even without decimals. The percentage charge value must not include any other
characters. For example, the character “%” is not allowed.
f ID “55” has a value other than 03, ID “57” will not appear
Format: S
Length: 2
Display: Mandatory
Purpose: Identifies the country in which the Merchant do the transaction. Regulated country code according
to [ISO 3166-1 alpha 2]. Country codes can be displayed to customers through mobile application during
transaction processing.
JP Japan
KR Korea
MY Myanmar
RC China
RI Indonesia
RP Philippines
SG Singapore
TH Thailand
VN Vietnam
Format: ANS
Length: maximum 25
Display: Mandatory
Purpose: he transaction name of the Merchant, which can be displayed to the customer through the
application mobile application during transaction processing.
Format: ANS
Length: maximum 15
Display: Mandatory
Purpose: The Merchant City specifies the physical location in which the Merchant operates.
Format: ANS
Length: up to 10
Display: Optional
Purpose: If present, ZIP code indicates the postal code of the place where the Merchant placed. Depending
on the country, the Postal Code can be a Zip code or a PIN code or
Length: up to 99 characters
Display: Optional
Purpose: The Supplementary Information field provides additional data to assist in the fields case is
different and includes at least 1 data object
Invoice/receipt number
Maximum
Bill Number "01" ANS O
"25" provided by Merchant or self-entered
by customer into the app.
Mobile number
Maximum
Mobile Number "02" ANS O
"25" provided by Merchant or self-entered
by customer into the app.
- If displayed, the Additional Information field (ID 62) will include at least one object data and total
length of all data objects in ID 62 not exceed than 99 characters.
- The content of the object value for IDs from “01” to “08” can be “***” or a value specified by the
Merchant. If the content is "***", the customer will enter the information into the mobile
application.
- Request additional customer information (ID “09”) including any combination any of the
characters: “A”, “M” and/or “E”, and will have only one value for each of each characters.
- If a Specific Payment System (ID 50-99) is present it will include a GUID basic (ID 00) with one
of the following values:
o An AID includes a RID code specified in ISO/IEC 7816-5, and may consist of a PIX code
according to ISO 7816-4.
For example: "A000000727".
o A UUID without a (-) separator.
For example: "581b314e257f41bfbbdc6384daa31d16".
o A reverse domain name
For example: "vn.com.napas.qrcodeservice”
Format: ANS
Length: maximum 4
Display: Mandatory
Purpose: CRC - Checksum is calculated according to ISO/IEC 13239 using polynomial '1021'(hex) and the
initial value 'FFFF' (hex). Checksum is calculated for all data objects, include the ID, Length and Value in
the QR code in the correct order of appearance, beside including the ID and Length of the CRC (but not the
CRC value). How to create a CRC see details in Section 6.
Format: ANS
Length: maximum 99
Display: Optional
Merchant in an alternate language and may use a different language set than the normal language.
Format: ANS
Length: 2
Display: Mandatory
Purpose: Alternative languages are specified by [ISO 639]. This value represents the language used to
encode the Merchant Name as an alternate language and the name of City as an alternative language.
Format: S
Length: maximum 25
Display: Mandatory
Purpose: The transaction name of the IIT in the native language of the IIT.
Format: S
Length: maximum 15
Display: Optional
Format: ANS
Length: maximum 99
Display: Optional
Purpose: Data objects that have been registered by EMVCo for use in future
Format: ANS
Length: maximum 99
Display: Optional
Purpose:
- The QR Code may not contain or Additional Information that is not yet available register.
- Unregistered additional information may be distributed and used by other parties, such as
(domestic) payment systems and service providers value-added services to use for their own
products. Then they can define the meaning, description and format for the QR code. Each system
vendor payment or value-added services stipulate their data into an ID separate of Unregistered
Additional Information. For example, the first dataset the first is specified in ID “80”, the second
tuple is specified in ID “81” …
• An AID includes a RID code specified in ISO/IEC 7816-5, and may include a PIX code
according to ISO 7816-4.
6 Description of QR code
00020101021138480010A0000007270130000697040301162112995044604025520458125303
7045802VN5910PHUONG CAC6005HANOI62110307NPS68696304922963045802
Name ID Length Value
Payload Format
00 02 01
Indicator
Point of Initiation
01 02 11
Method
Merchant Category
52 04 5812
Code
Transaction
53 03 704
Currency
Country Code 58 02 VN
Additional Data
62 11 0307NPS6869
Field Template
CRC (Cyclic
Redundancy 63 04 5802
Check)
Steps to create QR
00020101021138480010A0
00000727013000069704030
Create CRC
11621129950446040255204
http://www.lammertbies.nl/ 581253037045802VN5910P
HUONG 5802
comm/info/
CAC6005HANOI62110307
crccalculation.html NPS68696304
00020101021138480010A0
00000727013000069704030
11621129950446040255204
Create QR
581253037045802VN5910P
https://www.theqrcode- HUONG
generator.com/ CAC6005HANOI62110307
NPS686963045802
00020101021138580010A0000007270130000697040301162112995044604025 0206QRPUS
H 5204581253037045802VN5910PHUONG
0010A000000727
0130000697040301162112995044604025
Merchant Account Information 38 58
0206QRPUSH
Country Code 58 02 VN
Steps to create QR
00020101021138480010A0
Create CRC 3820
00000727013000069704030
11621129950446040255204
http://www.lammertbie 581253037045802VN5910P
s.nl/ HUONG
comm/info/crc CAC6005HANOI62110307
calculation.html NPS68696304
00020101021138580010A0
00000727013000069704030
Create QR 11621129950446040250206
QRPUSH520458125303704
https://www.the-
5802VN5910PHUONG
qrcodegenerator.com/
CAC6005HANOI62110307
NPS686963043820
00020101021238480010A0000007270130000697040301162112995044604025520458125303
Payload Format
00 02 01
Indicator
Point of Initiation
01 02 12
Method
010A000000727
Merchant Account
38 48 0130000697040301162112995044604025
Information
Merchant Category
52 04 5812
Code
Transaction
53 03 704
Currency
Country Code 58 02 VN
Additional Data
62 11 0307NPS6869
Field Template
CRC (Cyclic
Redundancy 63 04 79EE
Check)
Step to create QR
00020101021238480010A000
Create CRC
000727013000069704030116
http://www.lammertbie 2112995044604025520458125
30370454061800005802VN591 79EE
s.nl/
comm/info/crc 0PHUONG CAC6005HANOI
calculation.html 62110307NPS68696304
00020101021238480010A000
000727013000069704030116
Create QR
2112995044604025520458125
https://www.the- 30370454061800005802VN591
qrcodegenerator.com/ 0PHUONG CAC6005HANOI
62110307NPS6869630479EE
00020101021238580010A0000007270130000697040301162112995044604025520458125303
0010A000000727
0130000697040301162112995044604025
Merchant Account Information 38 58
0206QRPUSH
Country Code 58 02 VN
Merchant Name 59 10 PHUONG CAC
0307NPS6869
Additional Data Field Template 62 11
Step to create QR
00020101021238580010A000
Create CRC 000727013000069704030116
21129950446040250206QRP
http://www.lammertbie
USH520458125303704540618
7C1B
s.nl/
00005802VN5910PHUONG
comm/info/crc
CAC6005HANOI62110307N
calculation.html
PS68696304
00020101021238580010A000
000727013000069704030116
Create QR 21129950446040250206QRP
USH520458125303704540618
https://www.the-
00005802VN5910PHUONG
qrcodegenerator.com/
CAC6005HANOI62110307N
PS686963047C1B
6.2 QR Cash
00020101021238500010A000000727012200069704030108123456780206QRCASH52046011
53037045802VN5915NGUYEN HUY
HUAN6005HANOI623705212019010915571422838470708000011116304 1009
0010A000000727
01220006970403010812345678
Merchant Account Information 38 58
0206QRCASH
Country Code 58 02 VN
0521201901091557142283847
Additional Data Field Template 62 37 0708000011111
1009
CRC (Cyclic Redundancy Check) 63 04
Step to create QR
Name Input Data Result
00020101021238500010A000
000727012200069704030108
Create CRC
123456780206QRCASH5204
http://www.lammertbie 601153037045802VN5915N
s.nl/ GUYEN HUU 1009
comm/info/crc HUAN6005HANOI62370521
calculation.html 201901091557142283847070
8000011116304
00020101021238500010A000
000727012200069704030108
123456780206QRCASH5204
Create QR
601153037045802VN5915N
https://www.the- GUYEN HUU
qrcodegenerator.com/ HUAN6005HANOI62370521
201901091557142283847070
80000111163041009
6.3 QR IBFT
00020101021138570010A00000072701270006970403011200110123456780208QRIBFTTA53
037045802VN6304 F4E5
Transaction Currency
53 03 704
Country Code
58 02 VN
Step to create QR
00020101021138570010A000
Create QR
000727012700069704030112
https://www.the- 00110123456780208QRIBFT
qrcodegenerator.com/ TA53037045802VN6304F4E5
6.3.2 IBFT static QR to card.
00020101021138600010A00000072701300006970403011697040311012345670208QRI
BFTTA53037045802VN6304 BF11
0010A000000727
0130000697040301169704031101234567
Consumer Account Information 38 60 0208QRIBFTTC
Transaction Currency
53 03 704
Country Code
58 02 VN
Step to create QR
00020101021138600010A000
Create CRC BF11
000727013000069704030116
http://www.lammertbie 97040311012345670208QRI
s.nl/ BFTTA53037045802VN6304
comm/info/crc
calculation.html
00020101021138600010A000
Create QR 000727013000069704030116
97040311012345670208QRI
https://www.the-
BFTTA53037045802VN
qrcodegenerator.com/
6304BF11
00020101021238570010A00000072701270006970403011300110123456780208QRIBF
0010A000000727
0127000697040301130011012345678
Consumer Account Information 38 60
0208QRIBFTTA
Transaction Currency
53 03 704
Transaction Amount
54 06 180000
Country Code
58 02 VN
Step to create QR
00020101021238570010A000
Create CRC
000727012700069704030113
http://www.lammertbie 00110123456780208QRIBFT
TA530370454061800005802 2E2E
s.nl/
comm/info/crc VN62340107NPS68690819th
calculation.html anh toan don hang6304
00020101021238570010A000
000727012700069704030113
Create QR
00110123456780208QRIBFT
https://www.the- TA530370454061800005802
qrcodegenerator.com/ VN62340107NPS68690819th
anh toan don hang63042E2E
BFTTA53037045802VN6304 A203
0010A000000727
0130000697040301169704031101234567
Consumer Account Information 38 60 0208QRIBFTTC
Transaction Currency
53 03 704
Transaction Amount
54 06 180000
Country Code
58 02 VN
107NPS6869
Additional Data Field Template
62 34
0819thanh toan don hang
Step to create QR
Name Input Data Result
00020101021238600010A000
0007270130000697040301169
Create CRC
7040311012345670208QRIBF
http://www.lammertbie
A203
s.nl/ TTC530370454061800005802
comm/info/crc
calculation.html VN62340107NPS68690819tha
00020101021238600010A000
0007270130000697040301169
Create QR 7040311012345670208QRIBF
https://www.the- TTC530370454061800005802
qrcodegenerator.com/
VN62340107NPS68690819tha