You are on page 1of 32

Sudan Quick Response Code Specifications for

Payment Systems (SQCRPS)

Version 1.0

[06/11/2018]
Table of Contents
1 Revision History .................................................................................................................................... 4
1. Introduction .......................................................................................................................................... 5
1.1 Benefits to Consumers .................................................................................................................. 5
1.2 Benefits to Merchants................................................................................................................... 6
1.3 How it works? ............................................................................................................................... 6
1.4 Purpose ......................................................................................................................................... 6
1.5 Scope ............................................................................................................................................. 6
1.6 Reference ...................................................................................................................................... 7
1.7 Abbreviations ................................................................................................................................ 7
2 Common use cases................................................................................................................................ 8
2.1 Static QR Code............................................................................................................................... 8
2.2 Dynamic QR Code ......................................................................................................................... 9
3 QR Code Data Objects ......................................................................................................................... 10
3.1 Data Organization ....................................................................................................................... 10
3.2 QR Code Conventions ................................................................................................................. 12
4 SQRCPS Data Objects .......................................................................................................................... 13
4.1 Presence of Data Objects ............................................................................................................ 13
4.2 Data Object ID ............................................................................................................................. 13
4.3 Data Object Length ..................................................................................................................... 13
4.4 Data Object Values...................................................................................................................... 13
4.4.1 Numeric Values ................................................................................................................... 13
4.4.2 Alphanumeric Special Values .............................................................................................. 13
4.4.3 String Values ....................................................................................................................... 13
4.5 Root Data Objects Description .................................................................................................... 17
4.5.1 Record Format Indicator ..................................................................................................... 17
4.5.2 Cyclic Redundancy Check (CRC) .......................................................................................... 17
4.5.3 Merchant Account Information .......................................................................................... 17
4.5.4 Merchant Category Code (MCC) ......................................................................................... 19
4.5.5 Country Code ...................................................................................................................... 20
4.5.6 Merchant Name .................................................................................................................. 20
4.5.7 Merchant City...................................................................................................................... 20
4.5.8 Merchant Information – Language Template ..................................................................... 20
4.5.9 Transaction Value................................................................................................................ 21
4.5.10 Additional Data Field Template .......................................................................................... 21
4.5.11 Merchant Information—Language Template ..................................................................... 24
4.5.12 Unreserved Templates (IDs “91” – “99”) ............................................................................ 24
5 Requirements ...................................................................................................................................... 26
5.1 Record ......................................................................................................................................... 26
6 Example ............................................................................................................................................... 27
6.1 Dynamic Code ............................................................................................................................. 27
6.1.1 QR Code Conventions ......................................................................................................... 27
6.1.2 Merchant Account Information .......................................................................................... 27
6.1.3 Generated QR Code ............................................................................................................ 27
6.2 Merchant-Presented Mode (Static) ............................................................................................ 27
7 Annex A ............................................................................................................................................... 29
7.1 Data Objects Dictionary .............................................................................................................. 29
1 Revision History
Author Reviewed By Comments Date Version
Omer Omarabi Draft [3/11/2018] 1.0
1. Introduction
The standardization of QR code specification for electronic payments will help promote wider use of
mobile retail payments in Sudan and provide consistent user experience for merchants and consumers. It
can enable interoperability in the payment industry. By prescribing a QR code standard, it will enable the
use of a single common QR code that can encompass QR code payment solutions from multiple payment
service providers. A common QR code would facilitate payments among different payment tools, cards,
mobile wallets and bank accounts and would encourage small merchants to adopt QR code as a payment
method.

Having studied various options, we found that developing a common QR code specification by using the
EMV® Merchant-Presented QR Code Specification for Payment Systems (EMV QRCPS) published by
EMVCo as a basis, as it offers an effective solution to ensure interoperability. This specification should be
read in conjunction with the EMV QRCPS. The notational conventions used in this specification are the
same as those used in EMV QRCPS.

Sudan QR Code for Payment Systems (SQRCPS) is a single QR code that combines multiple e-payment
solutions into one. It is intended to simplify QR e-payments in Sudan for both consumers and merchants.
SQRCPS is not a separate payment scheme or payment app.

If we don’t implement a unified QR Code specifications, consumers may see multiple QR codes at
merchant stores promoting various e-payment solutions. This can be confusing for consumers who have
to manually find if their preferred e-payment option is accepted. Merchants are also impacted by the
aesthetic and logistics constraints of supporting multiple QR codes on their limited display and retail
space.

With SQRCPS, consumers will see a single SQRCPS label that shows all QR payment options that the
merchant accepts. For merchants, SQRCPS will be an infrastructure-light and cheaper way to accept
multiple types of e-payments.

The SQRCPS specifications are based on the “QR Code Specification for Payment System – Merchant-
Presented Mode” issued by EMVCo in July 2017. EBS adopts these standards and has customized it for the
Sudan market. These include elements and protocols which Sudan deems important for mandatory
inclusion such as the default positions for Sudan-relevant fields, guidance on EMV-specific fields, and the
ordering of and code efficiency in merchant account information from payment schemes.

1.1 Benefits to Consumers

Consumers will be able to quickly see if their preferred QR payment option is accepted at a merchant.
They need only look for the SQRCPS label and check if their preferred payment apps are accepted.

Simplicity and speed of e-payments were identified as one of the critical challenges impeding adoption of
e-payment options in Sudan. As QR payments could be an e-wallet or funded by a [credit] or debit cards,
consumers retain the flexibility in choosing how to fund their QR payments.
1.2 Benefits to Merchants

With the consolidation of QR codes, merchant will only need to display a single SQRCPS label showing the
e-payments it accepts, which means less clutter for them and quicker payments by consumers. Addition
of new QR payments options, both domestic and international, are also streamlined into the single
SQRCPS label. SQRCPS is an infrastructure-light technology, making it a cheaper way to accept various e-
payment options.

1.3 How it works?

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 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 a mobile application on their mobile phones that has the capability to scan a
merchant presented QR Code and initiate a payment transaction. This mobile application may be an
existing mobile banking or payment application from an Issuer or Consumer Service Provider Mobile
Application. In both cases, the request to process the payment transaction will be directed to EBS or a
Customer Services Aggregator after that the request will be settled with the Issuer managing the account
from which the funds will be debited.

The QR code specification for retail payments will help promote wider use of mobile retail payments in
Sudan and provide consistent user experience for merchants and consumers. It can enable
interoperability in the payment industry. By prescribing a QR code specifications, it will enable the use of
a single common QR code that can encompass QR code payment solutions from multiple payment service
providers. A common QR code would facilitate payments among different payment schemes, e-wallets
and banks and would encourage small merchants to adopt QR code as a payment method.

1.4 Purpose

This document provides:

✓ Brief description of the merchant presented QR Code payment flow.


✓ Requirements for the QR Code displayed by the merchant, including format and content.

The processing of the QR Code by a mobile application and the network messages as a result of this
processing are out of scope of this document.

1.5 Scope

This document includes:

✓ The format of the merchant presented QR Code

This document excludes:


✓ The consumer presented QR Code;
✓ QR Code transactions, message & settlement requirements; and
✓ QR application & terminal requirements

The requirements for the QR Code displayed by the Merchant, including its format and content, are
described in the EMV® QR Code Specification for Payment Systems (EMV QRCPS) Merchant-Presented
Mode.

1.6 Reference

The SQRCPS Standard is referenced to the following publications:

✓ EMV® QR Code Specification for Payment Systems (EMV QRCPS) Merchant-Presented Mode
✓ EMV Book 4 Version 4.3 - EMV Integrated Circuit Card Specifications for Payment Systems - Book
4 Cardholder, Attendant, and Acquirer Interface Requirements
✓ ISO3166 – Codes for the representation of names of countries and their subdivisions—Part 1:
Country codes, using two-letter country codes
✓ ISO4217 - Codes for the representation of currencies and funds
✓ ISO18245 - Retail financial services - Merchant category codes

Any later versions of these publications will be applied in this document unless specified.

1.7 Abbreviations

Abbreviations Description
ANS Alphanumeric with Special Character. Values can be represented by the Common Character
Set as defined in EMV Book 4. The Alphanumeric Special alphabet includes ninety-six (96)
characters in total and includes the numeric alphabet and punctuation.
C Conditional; shall be present under certain conditions
CRC Cyclic Redundancy Check
NFC Near Field Communication
M Mandatory; shall always be present
ID Identifier of the Data Object
Issuer Entity that opens a saving account, current account or e-money account for a consumer
N Numeric. Values can be represented by all digits, from "0" to "9". The numeric includes ten
(10) characters in total.
O Optional; may be present
QR Quick Response
S String; Values represented by any precomposed character(s) defined in [Unicode]
ISO International Standards Organization
M Mandatory
N Numeric
O Optional
QR Code Quick Response Code
RFU Reserved for Future Use
var. Variable

Table 1: Abbreviations
2 Common use cases
Merchant-Presented QR code enables a merchant presenting a request for payment to a payer, who can
then verify the associated information and make a payment to the payee, or reject the request for
payment. It supports various payment types, including bill payments, online payments and point-of-sale
(POS) payments. QR codes are classified into static and dynamic QR codes. The information encoded in a
static QR codes are fixed and used for multiple transactions while a dynamic QR code contain additional
transaction details such as payment amount and is used for specific transaction.

2.1 Static QR Code

A typical use case of static QR code is payment to small merchants. A shop may display a static QR code
with merchant account information. Consumers may then scan the QR code with a mobile application to
initiate the payment. The merchant’s information, such as shop name, is displayed on the mobile device
for verification. The consumer will be prompted to enter a payment amount. Figure 2.1 shows a typical
transaction flow of using static QR code to make merchant payment.

Figure 2.1: Static QR code merchant payment

1. Merchant displays QR Code with merchant details.


2. Consumer scans QR Code using a mobile application and inputs the amount to initiate the
transaction.
3. Mobile application sends the transaction initiation request to the payment service operator.
4. The payment service operator processes the transaction and informs the merchant and the
consumer of the transaction outcome.
2.2 Dynamic QR Code

Dynamic QR codes are commonly used in online payments, delivery payments, bill payments as well as
payments at self-service kiosks. A typical use case of dynamic QR code is payment for online shopping.
When a consumer checks out at an online shop, the merchant generates and presents the dynamic QR
code, embedded with the essential transaction details, for the consumer to scan with a mobile application
to initiate the payment. The merchant’s information (such as Merchant Name) and variable invoice
information (such as payment amount) are displayed on the mobile device for verification. Figure 2.2
shows a typical transaction flow of using dynamic QR code to make payment for an online shopping.

Figure 2.2: Dynamic QR code online shopping

1. Merchant generates and displays a QR Code with merchant and transaction information.
2. Consumer scans QR Code using a mobile application to initiate the transaction.
3. Mobile application sends the transaction initiation request to the payment service operator.
4. The payment service operator processes the transaction and informs the Merchant and the
Consumer of the transaction outcome.
3 QR Code Data Objects
According to the design of the Sudan QR Code Specification for Payment Systems (SQRCPS), the data
within a QR code are organized in a tree-like structure of data objects similar to EMV QRCPS. A data object
may be a primitive data object or a template. A template may include other primitive data objects and
templates.

Each data object is made up of three individual fields. The first field is an identifier (ID) by which the data
object can be referenced. The second field is a length field that explicitly indicates the number of
characters included in the third field, i.e. the value field.

The format of a value field in a data object is either Numeric (N), Alphanumeric Special (ANS), or String
(S). Note that Numeric is a subset of Alphanumeric Special and that Alphanumeric Special is a subset of
String.

3.1 Data Organization

The data contained within a QR Code is organized as follows. Each data object is made up of three
individual fields. The first field is an identifier (ID) by which the data object can be referenced. The next
field is a length field that explicitly indicates the number of characters included in the third field: the value
field. A data object is then represented as an ID / Length / Value combination, where:

✓ The ID is coded as a two-digit numeric value, with a value ranging from "00" to "99",
✓ The length is coded as a two-digit numeric value, with a value ranging from "01" to "99",
✓ The value field has a minimum length of one character and maximum length of 99 characters.

In the QR Code, the data objects are organized in a tree-like structure, under the root (see Figure 3.1). A
data object may be a primitive data object or a template. A template may include other templates and
primitive data objects.

Figure 3.1: Data Object Organization in the QR Code

A data object that is not encapsulated within a template is said to be under the root of the QR Code. The
value of an ID is not unique and the data object to which it refers is context specific. If the ID is not under
the root, the context of an ID is defined by the encapsulating template.
As an example: ID "01" that is under the root of the QR Code refers to the Point of Initiation Method,
while ID "01" refers to the Bill Number when it is under the Additional Data Field Template (that is, within
ID "62").

The Record Format Indicator (ID "00") is the first data object under the root and allows the mobile
application to determine the data representation of the remaining data included in the QR Code and how
to parse the data. The CRC (ID "63") is the last object under the root and allows the mobile application to
check the integrity of the data scanned without having to parse all of the data objects. The position of all
other data objects under the root or within templates is arbitrary and may appear in any order.

As an example: ID "01" that is under the root of the QR Code refers to the Point of Initiation Method,
while ID "01" refers to the Bill Number when it is under the Additional Data Field Template (that is,
within ID "62")

• Root
o Payload Format Indicator (ID "00")
o Point of Initiation Method (ID "01")
o Merchant Account Information (ID "26")
▪ Global Unique Identifier (ID "00")
o Merchant Category Code (ID "52")
o Transaction Currency (ID "53")
o Transaction Amount (ID "54")
o Country Code (ID "58")
o Merchant Name (ID "59")
o Merchant City (ID "60")
o Additional Data Field Template (ID "62")
▪ Bill Number (ID "01")
▪ Bill Details Template (ID "50")
▪ Global Unique Identifier (ID "00")
▪ Biller Slug (ID "01")
o General Info Template (ID "80")
▪ Global Unique Identifier (ID "00")
▪ Biller Code (ID "01")
▪ Service Code (ID "02")
o CRC (ID "63")

The Payload Format Indicator (ID "00") is the first data object under the root and allows the mobile
application to determine the data representation of the remaining data included in the QR Code and
how to parse the data. The CRC ID (ID "63") is the last object under the root and allows the mobile
application to check the integrity of the data scanned without having to parse all of the data objects.
The position of all other data objects under the root or within templates is arbitrary and may appear in
any order.
3.2 QR Code Conventions

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

ID Name Length Presence Remarks


“00” Record Format Indicator “02” M A fixed value of “01”
“01” Point of Initiation Method “02” O “11” for static QR Codes; “12” for
dynamic QR Codes
“63” Cyclic Redundancy Check (CRC) “04” M Checksum calculated over all the data
objects included in the QR code

Table 3.2: QR Code Conventions

The Record 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 SQRCPS Data Objects
4.1 Presence of Data Objects

✓ Data objects that are labelled [M] in Table 4.0 shall be present under the root of the QR Code.
✓ Data objects that are labelled [C] in Table 4.0, shall be present under the root if the respective
conditions are met.
✓ The data objects labelled [O] in Table 4.0 may be present under the root.
✓ If the Merchant Information—Language Template (ID "64") is present, then the data objects that are
labelled [M] in Table 4.5.11 shall be present in the template.
✓ Other data objects that are labelled [O] in Table 4.5.11 may be present in this template.
✓ If the Additional Data Field Template (ID "62") is present, then the data objects that are labelled [O]
in Table 4.5.10 may be present in this template.

4.2 Data Object ID

1. An ID shall be coded as a two-digit numeric value and shall have a value "00" to "99".
2. There shall be only one occurrence of a data object with a specific ID under the root and there shall
be only one occurrence of a specific ID within a template.

4.3 Data Object Length

Length shall be equal to the number of characters in the value field.

4.4 Data Object Values


4.4.1 Numeric Values

Data objects with a format of numeric [N] shall only contain values represented by digits "0" to "9". Each
digit is encoded in the QR Code by its binary representation as defined by [Unicode].

4.4.2 Alphanumeric Special Values

Data objects with a format of Alphanumeric Special [ANS] shall only contain values defined in the Common
Character Set of [EMV Book 4]. Each character is encoded in the QR Code by its binary representation as
defined by [Unicode].

4.4.3 String Values

Data objects with a format of String [S] shall only contain precomposed values defined in [Unicode]. Each
precomposed character is encoded in the QR Code by its binary representation as defined by [Unicode].

Table 4.0 lists the name of the data object, the ID of the data object, the format of the value field of the
data object, the length of the value field of the data object, and whether the presence of the data object
at the root level of the QR Code is Mandatory (M), Conditional (C), or Optional (O).
Name ID Format Length Presence Description
(Decimal)
Record “00” N 02 M Defines the version of the QR Code template and
Format hence the conventions on the identifiers, lengths
Indicator and values.

Use a fixed value of “01”, All other values are


RFU.
Point of “01” N 02 M Contains a value of "11" or "12". All other values
initiation are RFU.
method
The value of "11" should be used for static QR
Code i.e. when the same QR Code is shown for
more than one transaction and the value of “12”
should be used for dynamic QR Code i.e. when a
new QR Code is shown for each transaction.
Reserved for “02” Var. up to M At least one Merchant Account Information data
Future use - “99” One or object shall be present.
“50” more Identifies the merchant. The format and value
data are unique and specific to a payment system and
Sudanese “51” ANS Variable up objects several values may be included in the QR Code.
Merchant 99 (IDs “02”
Account to “51”)
Information shall be
included
Merchant “52” N 04 M As defined by [ISO 18245] and assigned by the
Category Code Acquirer. Put a dummy code of “0000” in this
field if the payment provider does not use this
information.

e.g. 9999 - Government Agency


Transaction “53” N 03 M Indicates the currency code of the transaction.
Currency Code
A 3-digit numeric value, as defined by [ISO 4217].
This value will be used by the mobile application
to display a recognizable currency to the
consumer whenever an amount is being
displayed or whenever the consumer is
prompted to enter an amount.

Use 938 for Sudanese Pound [SDG]


Transaction “54” ANS, Var. up to C The transaction amount, if known. For instance,
Amount limited 13 "99.34". If present, this value is displayed to the
to consumer by the mobile application when
numeric processing the transaction. If this data object is
and the not present, the consumer is prompted to input
“.” the transaction amount to be paid to the
symbol merchant.
This amount is expressed as how the value
appears:
Amount “100.00” is defined as “100.00”, “95.50”
is defined as “95.50” or “88.856” is defined as
“88.856”
Tip or “55” N 02 O
If present, the Tip or Convenience Indicator shall
Convenience
contain a value of "01", "02" or "03". All other
Indicator
values are RFU.
01: Indicates that Consumer should be prompted
to enter Tip
02: Indicates that the merchant would
mandatorily charge a flat convenience fee
03: Indicates that merchant would charge a
percentage convenience fee
Value of “56” ANS, Var. up to C Presence of these data objects depends on the
Convenience limited 13 presence and value of the Tip or Convenience
Fee Fixed to Indicator.
numeric
and the The Value of Convenience Fee Fixed must be
“.” present if the data object ID “55” is present with
symbol a value of 02. Otherwise this data object must be
absent.

Example;

Amount “100.00” is defined as “100.00” or


amount “99.85” is defined as “99.85”

Note: 0 is not a valid value


Value of “57” ANS, Var. up to C Presence of these data objects depends on the
Convenience limited 05 presence and value of the Tip or Convenience
Fee to Indicator.
Percentage numeric The Value of Convenience Fee Percentage must
and the be present if the data object ID “55” is present
“.” with a value of 03. Otherwise this data object
symbol 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 Indicates the country of the merchant
acceptance device.
A 2-character alpha value, as defined by [ISO
3166-1 alpha 2] and assigned by the Acquirer.
The country may be displayed to the consumer
by the mobile application when processing the
transaction.
Use “SD” for Sudan
Merchant “59” ANS Var. up to M The “doing business as” name for the merchant,
Name 25 recognizable to the consumer. This name may be
displayed to the consumer by the mobile
application when processing the transaction. E.g.
“Alhawi”
Merchant City “60” ANS Var. up to M The Merchant City should indicate the city of the
15 merchant's physical location.
Postal Code “61” ANS 05 O If present, the Postal Code should indicate the
postal code of the merchant’s physical location.
Depending on the country, the Postal code is the
Zip code or PIN code or Postal code of the
merchant.

If present, this value may also be displayed to the


consumer by the mobile application when
processing the transaction.
Additional “62” S Variable Up O Additional information beyond that mentioned
Data Field to 99 above may be required in certain cases. This
Template information may be either presented by the
merchant or Acquirer or the consumer may be
prompted for entry on the app. For consumer
prompt, the value field of Tag would be 3
asterisks i.e. ***. 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 26 characters
and overall it is not to exceed the maximum of
99 characters for the total size of the Additional
Data Field.

The Additional Data Field Template includes


information that may be provided by the
Merchant or may be populated by the mobile
application to enable or facilitate certain use
cases.

For the list of data objects that can be included in


this template, please refer to Table 4.5.10
Cyclic “63” ANS 04 M Checksum calculated over all the data objects
Redundancy included in the QR code.
Check (CRC)
Merchant “64” S Var. up to O The Merchant Information—Language Template
Information – 99 includes merchant information in an alternate
Language language and may use a character set different
Template from the Common Character Set. It provides an
alternative to the merchant information under
the root.
For the list of data objects that can be included in
this template, please refer to Table 4.5.11.
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
Merchant Name and potentially other merchant
related information in an alternate language,
typically the local language.
RFU for "65"- S var. up to O Data objects reserved for EMVCo
EMVCo "79" "99"
General Info “80” May be utilized to carry hash value or any other
Template authentication value to ensure data integrity
Please see Table 4.5.12 for Data Object
EBS Reserved “80” S Var. up to O Reserved for Future use
Template – 99
“90”
Unreserved “91” S Var. up to O Unreserved Templates
Template – 99
“99”

Table 4.0: Data Objects Under the Root of a QR Code

4.5 Root Data Objects Description


4.5.1 Record Format Indicator

The Record 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.

4.5.2 Cyclic Redundancy Check (CRC)

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.5.3 Merchant Account Information

The Merchant Account Information specifies the identity of a merchant. 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
the payment operator. Table 4.5.3 shows the allocation of Merchant Account Information IDs among
various payment processors.
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 processors. The ID “51” is reserved
for the Payment System for use in Sudan while the IDs “26” – “50” are reserved for future use.

The Merchant Account Information template [ID “51”] 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 “00” ANS 14 M Globally Unique Identifier
Identifier An identifier to identify the payment operator
(AID) 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.
Acquirer ID “01” ANS Var. up M Acquirer ID.
to 06
Merchant ID “02” ANS Var. up M Merchant Identification assigned by Acquirer
to 28 Note: Acquirer must maintain Database link for
Merchant ID with Merchant Account Number
Mobile “03” ANS Var. up O The mobile number could be provided by the
Number to 15 merchant or could be an indication for the
mobile application to prompt the consumer to
input a Mobile Number.
For example, the Mobile Number to be used for
multiple use cases, such as mobile top-up and
bill payment.
Hash Value “04” ANS Var. up O Hash value to be validated by the Acquirer
to 64
"05"-"99" Context S O Association of data objects to IDs and type of
Specific data object is specific to the Globally Unique
Data Identifier of the Merchant.

Table 4.5.3.A: Merchant Account Information (IDs “51”)

At least one Merchant Account Information data object in the range "02" to "51" shall be present.

A Primitive Payment System Merchant Account Information (IDs "02" to "25") ID shall be used when the
payment system that assigned the Merchant Account Information is implicitly identified by the ID.
Allocation of these IDs is described in Table 4.5.3.B below.

A Merchant Account Information Template (IDs "26" to "51”) shall be used when the payment system
corresponding to the Merchant Account Information is explicitly identified in the template.

If present, a Merchant Account Information template shall contain a primitive Globally Unique Identifier
data object with a data object ID "00", as defined in Table 4.5.3.B. The value of this data object shall
contain one of the following:
✓ An Application Identifier (AID) consisting of an International Registered Application Provider Identifier
(RID) registered with ISO and, optionally, a Proprietary Application Identifier Extension (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 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.

ID Name Length Presence Remarks


“02” - “03” Reserved for Visa Var. up M
“04” - “05” Reserved for to “99” One or more
Mastercard data objects
“06” - “08” Reserved by EMVCo
“09” - “10” Reserved for Discover (IDs “02” to
“11” - “12” Reserved for Amex “51”) shall be
“13” - “14” Reserved for JCB included
“15” - “16” Reserved for UnionPay
“17” - “25” Reserved by EMVCo
“26” - “50” Reserved by EBS These IDs are reserved for future
use
“51” Reserved for the This is the ID that supposed to be
Payment System for used for QR Code payments in
use in Sudan Sudan

Table 4.5.3.B: Allocation of Merchant Account Information (IDs"02" to "51")

4.5.3.1 Acquirer ID (IDs “01”)

The Acquirer ID value defined must be used using the ID and Code as below:

Acquirer ID Name
432134 e.g. Nile Bank
999999 EBS

Table 4.5.3.1: Acquirer ID (IDs “01”)

4.5.4 Merchant Category Code (MCC)

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. E.g. "52044111" for Transportation (such as
railroads and ferries)
4.5.5 Country Code

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 “SD” in the Country Code field if the
merchant transacts in Sudan.

4.5.6 Merchant Name

The Merchant Name (ID “59”) shall be present. The Merchant Name should indicate the “doing business
as” name for the merchant. If the Merchant Name is not, 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.

4.5.7 Merchant City

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

4.5.8 Merchant Information – Language Template

If the Merchant Information – Language Template (ID “64”) is present, the template shall contain other
data fields, which may be used by a mobile application to present the merchant information in an
alternate language which 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.

Name ID Format Length Presence


Language "00" ANS "02" M
Preference
Merchant Name— "01" S var. up to "25" M
Alternate Language
Merchant City— "02" S var. up to "15" O
Alternate Language
RFU for EMVCo "03"–"99" S var. up to "99" Data objects
reserved for EMVCo

Table 4.5.11: Data Objects for Merchant Information—Language Template (ID "64")
4.5.8.1 Language Preference

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.5.9 Transaction Value

The Transaction Value data objects (53” – “57”) 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.

4.5.9.1 Transaction Currency

The Transaction Currency (ID “53”) shall conform to [ISO 4217] and shall contain the 3-digit numeric
representation of the currency. For example, SDG is represented by the value "938". The value should
indicate the transaction currency in which the merchant transacts.

4.5.9.2 Transaction Amount

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.

4.5.10 Additional Data Field Template

The Additional Data Field Template with 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. 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. See Table 4.5.10 for more details

ID Sub- ID Name Format Length Presence Remarks


“62” “01” Bill Number ANS var. up to “25” O The invoice number or bill
number. This number could
be provided by the
merchant or could be an
indication for the mobile
application to prompt the
consumer to input a Bill
Number.

For example, the Bill


Number may be present
when the QR Code is used
for bill payment.
“02” Mobile Number ANS var. up to “25” O The mobile number could
be provided by the
merchant or could be an
indication for the mobile
application to prompt the
consumer to input a Mobile
Number.

For example, the Mobile


Number to be used for
multiple use cases, such as
mobile top-up and bill
payment.
“03” Store Label ANS var. up to “25” O A distinctive number
associated to a store
“04” Loyalty Number ANS var. up to “25” O Loyalty card number as
provided
“05” Reference Label ANS var. up to “25” O Any value as defined by
merchant or Acquirer in
order to identify the
transaction
“06” Customer Label ANS var. up to “25” O To be used to identify a
specific consumer
For example, the Customer
Label may be a subscriber
ID for subscription services,
a student enrolment
number, etc.

“07” Terminal Label ANS var. up to “25” O To be used to identify a


specific terminal
“08” Purpose of ANS var. up to “25” O Consumer to input a value
Transaction describing the purpose of
the transaction.
For example, the Purpose of
Transaction may have the
value "International Data
Package" for display on the
mobile application.
“09” Additional ANS var. up to “25” O Contains indications that
Consumer Data the mobile application is to
Request provide the requested
information in order to
complete the transaction.
The information requested
should be provided by the
mobile application in the
authorization without
unnecessarily prompting
the consumer.
For example, the Additional
Consumer Data Request
may indicate that the
consumer mobile number is
required to complete the
transaction, in which case
the mobile application
should be able to provide
this number (that the
mobile application has
previously stored) without
unnecessarily prompting
the consumer.
“10” – Reserved for EMVCo S O
“49”
“50”- Payment System RFU for Payment Network
“99” Specific

Table 4.5.10: Data Objects for Additional Data Field Template (ID "62")

The payment service providers 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
service providers 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 service providers are combined into one common QR Code.

Each of the data objects with IDs "01" to "08" in Table 4.5.10 can be used in two ways: either the merchant
can provide both the ID and its meaningful value or the merchant can include the ID with a special value
to have the mobile application prompt the consumer to input this information.
To prompt the consumer for one or more of these values, the merchant includes the respective IDs in this
template each with a length of "03" and with a value equal to "***".
When the consumer is prompted by the mobile application to enter a value for any of these data objects,
the length of the value to be entered should not exceed the length as indicated in Table 4.5.10.

The data object with the ID "09" contains one or more values that indicate to the mobile application the
data to provide as part of the transaction initiation request. This data should already be known by the
mobile application, and the consumer should not be unnecessarily prompted for the data.

One or more of the following characters may appear in the Additional Consumer Data Request (ID "09"),
to indicate that the corresponding data should be provided in the transaction initiation to complete the
transaction:

✓ "A" = Address of the consumer


✓ "M" = Mobile number of the consumer
✓ "E" = Email address of the consumer

If more than one character is included, it means that each data object corresponding to the character is
required to complete the transaction. Note that each unique character should appear only once.
4.5.11 Merchant Information—Language Template

Table 4.5.11 lists the name of the data object, the ID of the data object, the format of the value field of
the data object, the length of the value field of the data object, and whether the presence of the data
object within the Merchant Information—Language Template (ID "64") of the QR Code is Mandatory (M),
Conditional (C), or Optional (O).

These data objects may be used by a mobile application to present the merchant information in an
alternate language.

Name ID Format Length Presence


Language "00" ANS "02" M
Preference
Merchant Name— "01" S var. up to "25" M
Alternate Language
Merchant City— "02" S var. up to "15" O
Alternate Language
RFU for EMVCo "03"–"99" S var. up to "99" Data objects
reserved for EMVCo

Table 4.5.11: Data Objects for Merchant Information—Language Template (ID "64")

The data objects 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, these data objects, if present, are defined with
a format of String, so therefore may contain a different character set.

4.5.12 Unreserved Templates (IDs “91” – “99”)

If present, an Unreserved Template shall contain a primitive Globally Unique Identifier with the data
object ID “00” as defined in Table 4.5.12.

For Unreserved Templates with IDs "91" to "99", the primitive data object 'Globally Unique Identifier' with
ID "00" shall be included in the template. Its value sets the context for the remainder of the template and
the meaning of the other IDs and data objects in the template are context specific.
Zero or more Unreserved Templates may be present.

Unreserved Templates can be allocated and used by other parties, such as Customer Service Providers or
Bill Payments Aggregators or Payments Operator payment systems and value-added service providers, for
their own products. They can then define the meaning, representation and format. Each payment system
provider or value-added service provider puts their data in a separate Unreserved Template ID. For
example, the first set of data is placed in ID “91”, the second set of data is placed in ID “92”, and so on.

These parties are encouraged though to use the EMVCo allocated data objects whenever the meaning of
a data object corresponds to what is needed for their own solution, even if the representation or format
is different from their existing or desired solution. The conversion from the representation and format as
defined for the QR Code to the desired representation and format for the mobile application, user display,
and subsequent transaction processing can be done by the mobile application. Avoiding duplication of
information due to differences in representation and format reduces the record data and therefore the
size of the QR Code and improves the consumer experience when reading and processing the QR Code.

An example is given below:

The QR Code presents the Transaction Amount (ID “54”) as a series of digits, where the “.” character is
used as a decimal mark to separate the decimals from the integer value. It also includes the Transaction
Currency (ID “53”) using 3-digit numeric representation.

The mobile application can easily represent the amount and the currency as defined for Amount,
authorized (Numeric) and Transaction Currency Code in [EMV Book 4].

For example, if the values of the Transaction Amount and Transaction Currency in the QR Code are "98.73"
and "840", respectively, then the mobile application can convert these values to '000000009873' and
'0840' to put them in the representation and format as used for the Amount, Authorized (Numeric) and
Transaction Currency Code.

Name ID Format Length Presence Description


Globally “00” ANS Var. up M An identifier that sets the context of the data
Unique to 32 that follows.
Identifier The value is one of the following:
1. An Application Identifier (AID);
2. Aa [UUID] without the hyphen (-)
separators;
3. A reverse domain name.

E.g. Customer Service Provider CSP AID:


CSP0000006150001
Hash Value “01” ANS Var. up O Hash value to be validated by the Acquirer
to 64
"02"-"99" Context S O Association of data objects to IDs and type of
Specific data object is specific to the Globally Unique
Data Identifier.

Table 4.5.12: Data Object ID Allocation in Unreserved Template (IDs “80”)


5 Requirements
Below are the requirements that shall be followed when generating a record for a QR Code.

5.1 Record

The length of the record should not exceed 512 alphanumeric characters, and the number of characters
should be reduced proportionally when multi-byte [Unicode] characters are used.

Note that, as data object values with a format of S may contain characters coded as UTF-8 and depending
on the alphabet being used there may not be a one-to-one mapping of characters to bytes, special
consideration would be needed to determine the number of bytes in the record.
6 Example
6.1 Dynamic Code
6.1.1 QR Code Conventions

ID Input Character Meaning


Record Format Indicator “000201” Version 01
Point of Initiation Method “010212” Dynamic QR Code
Cyclic Redundancy Check “6304BFCA” Checksum

6.1.2 Merchant Account Information

ID Input Character Meaning


Merchant Account “2641”
Information
AID “0014A0000006150001” Application Identifier – “A0000006150001”
Acquirer ID “0106501664” Acquirer – EBS
Merchant ID “0209123456789” Merchant ID – “123456789”

Note: Acquirer will link to the Merchant ID and Merchant


Account Number
Merchant Category “52049999” 9999 - Government Agency
Code
Transaction Currency “5303938” 938 – Sudanese Pound [SDG]
Code
Transaction Amount “540510.00” Amount – 10.00
Country Code “5802SD” “SD” – Sudan
Merchant Name “5909QRCSDNBHD” QRC Sdn Bhd
Merchant City “6005BAHRI” City – Bahri
Postal Code “610543650” Postcode – 43650

6.1.3 Generated QR Code

6.2 Merchant-Presented Mode (Static)

Add Example here


7 Annex A
7.1 Data Objects Dictionary

Table 7.1 defines the data objects that may be included in the QR Code data. The Name column lists the
name of the data object and also includes the following:

✓ Format (F) of the data object. The supported formats are as follows:
✓ N (Numeric)
✓ ANS (Alphanumeric Special)
✓ S (String)
✓ Identifier (ID) of the data object.
✓ Length (L) of the data object.

The Template column lists whether the data object belongs under the root or under a specific template.
The table also includes a short description and (where to find) the value(s) of the data objects.

Name (Format; ID; Length) Template Description Values


Additional Consumer Data "62" Contains indications that the mobile Please refer to 4.5.10
Request application should include the requested
F: ANS information in order to complete the
ID: "09" transaction. The information requested
L: var. up to "03" should be provided by the mobile
application in the authorization without
unnecessarily prompting the consumer.
Additional Data Field Root This template includes information that Please refer to 4.5.10
Template may be provided by the merchant or may
F: S be requested from the consumer to enable
ID: "62" or facilitate certain use cases.
L: var. up to "99"
Bill Number "62" The invoice number or bill number. Please refer to 4.5.10
F: ANS
ID: "01"
L: var. up to "25"
Country Code Root Indicates the country of the merchant Please refer to 4.0
F: ANS acceptance device.
ID: "58"
L: "02"
CRC Root Checksum calculated over all the data Please refer to 4.0
F: ANS objects included in the QR Code.
ID: "63"
L: "04"
Customer Label "62" This value could be provided by the Please refer to 4.5.10
F: ANS merchant, if known, or could be an
ID: "06" indication to the mobile application to
L: var. up to "25" provide a prompt that will allow the
consumer to input their Customer Label.
RFU for EMVCo Root Templates reserved for EMVCo. Please refer to 4.0.
F: S
ID: "65" - "79"
L: var. up to "99"
Globally Unique Identifier "26"– An identifier that sets the context of Please refer to
F: ANS "51" the data that follows. 4.5.3.A, 4.5.3.B, 4.5.12
ID: "00" or The value is one of the following:
L: var. up to "32" "62" ✓ an Application Identifier (AID);
["52"–
✓ a [UUID] without the hyphen (-)
"99"]
or
separators;
✓ a reverse domain name.
"80"–
"99"
Language Preference "64" Identifies the alternate language used in Please refer to 4.5.11
F: ANS the Merchant Information—Language
ID: "00" Template.
L: "02"
Loyalty Number "62" Typically, a loyalty card number. Please refer to 4.5.10
F: ANS
ID: "04"
L: var. up to "25"
Merchant Category Code Root The MCC of the merchant. Please refer to 4.0
F: N
ID: "52"
L: "04"
Merchant City Root City of operations for the merchant. This Please refer to 4.0
F: ANS name may be displayed to the consumer by
ID: "60" the mobile application when processing
L: var. up to "15" the transaction.
Merchant City—Alternate "64" Indicates the merchant city in the alternate Please refer to 4.5.11
Language language.
F: S
ID: "02"
L: var. up to "15"
Merchant Account Root Identifies the merchant. The value is unique
Information and specific to a
F: ANS payment system and
ID: "02" - "51" several values may be
L: var. up to "99" included in the QR
Code.
Please refer to 4.0
Merchant Information— Root This template includes the language Please refer to 4.5.11
Language Template preference, one merchant name and city in
F: S the Merchant's local language. This
ID: "64" information is used for representation.
L: var. up to "99"
Merchant Name Root The “doing business as” name for the Please refer to 4.0
F: ANS merchant, recognizable to the consumer.
ID: "59" This name may be displayed to the
L: var. up to "25" consumer by the mobile application when
processing the transaction.
Merchant Name—Alternate "64" Indicates the merchant name in the Please refer to 4.5.11
Language alternate language.
F: S
ID: "01"
L: var. up to "25"
Mobile Number "62" Mobile phone number to be used for Please refer to 4.5.10
F: ANS multiple use cases, such as mobile top-up
ID: "02" and bill payment.
L: var. up to "25"
Record Format Indicator Root Defines the version of the QR Code and the "01", please refer to
F: N conventions on the IDs, lengths and values. 3.2
ID: "00"
L: "02"
Point of Initiation Method Root Identifies the communication technology "11" or "12", please
F: N (here QR Code) and whether the data is refer to 4.0
ID: "01" static or dynamic.
L: "02"
Postal Code Root Zip code or Pin code or Postal code of Please refer to 4.0
F: ANS merchant. If present, this value may also be
ID: "61" displayed to the consumer by the mobile
L: var. up to "10" application when processing the
transaction.
Purpose of Transaction "62" Any value as defined by the merchant or Please refer to 4.5.10
F: ANS acquirer in order to define the purpose of
ID: "08" the transaction.
L: var. up to "25"
Reference Label "62" Any value as defined by the merchant or Please refer to 4.5.10
F: ANS acquirer in order to identify the
ID: "05" transaction.
L: var. up to "25"
Store Label "62" A distinctive number associated to a store. Please refer to 4.5.10
F: ANS
ID: "03"
L: var. up to "25"
Terminal Label "62" A distinctive number associated to a Please refer to 4.5.10
F: ANS terminal in the store.
ID: "07"
L: var. up to "25"
Tip or Convenience Root Indicates whether the consumer will be Please refer to 4.0
Indicator prompted to enter a tip or whether the
F: N merchant has determined that a flat, or
ID: "55" percentage, convenience fee is charged.
L: "02"
Transaction Amount Root The transaction amount. Please refer to 4.0
F: ANS
ID: "54"
L: var. up to "13"
Transaction Currency Root Indicates the currency code of the Please refer to 4.0
F: N transaction.
ID: "53"
L: "03"
Unreserved Templates Root Unreserved templates can be allocated and Please refer to 4.0
F: S used by other parties, such as (domestic)
ID: "80" - "99" payment systems and value-added service
L: var. up to "99" providers, for their own products. They can
then define the meaning, representation
and format.
Value of Convenience Fee Root The fixed amount convenience fee when Please refer to 4.0
Fixed 'Tip or Convenience Indicator' indicates a
F: ANS flat convenience fee.
ID: "56"
L: var. up to "13"
Value of Convenience Fee Root The percentage convenience fee when 'Tip Please refer to 4.0
Percentage or Convenience Indicator' indicates a
F: ANS percentage convenience fee.
ID: "57"
L: var. up to "05"

Table 7.1: QR Code Data Objects

You might also like