References

Barcodes

Presentation Type and Formats

The barcode display type defines how a serial number, barcode, and/or QR code is shown.

Presentation Types (serialType)

Code name Description
SERIALNUMBER Serial Number
BARCODE Barcode
QRCODE QR code

Presentation Formats (ptFormat)

Code name Description
BARCODE Barcode only
BARCODESERIAL Barcode with serial number
SERIAL Serial number only
DUALSERIAL Dual serial number
DUALBARCODE Dual barcode
DUALBARCODESERIAL Dual barcode with serial numbers
BARCODEPIN Barcode with PIN
QRCODE QR code only
QRCODESERIAL QR code with serial number

Barcode Formats (ptSubFormat)

Below are commonly used barcode formats, supported by the ZXing barcode scanning library.

Code name Description
APIAZTEC Aztec 2D barcode format
CODABAR CODABAR 1D format
CODE_39 Code 39 1D format
CODE_93 Code 93 1D format
CODE_128 Code 128 1D format
DATA_MATRIX Data Matrix 2D barcode format
EAN_8 EAN-8 1D format
EAN_13 EAN-13 1D format
ITF ITF (Interleaved Two of Five) 1D format
MAXICODE MaxiCode 2D barcode format
PDF_417 PDF417 format
QR_CODE QR Code 2D barcode format
RSS_14 RSS 14
RSS_EXPANDED RSS EXPANDED
UPC_A UPC-A 1D format
UPC_E UPC-E 1D format
UPC_EAN_EXTENSION UPC/EAN extension format. Not a stand-alone format.

Locations

Locations refer to place information that denotes where a card can be used. Using this information, Samsung Wallet can show a map, place name, and address. Additionally, location information can be used to provide Location-Based Services (LBS).

Location information can be represented by a JSON array and up to 10 locations can be specified.

  • Notice: Map services are only available in certain countries.

Details

JSON Format

Key Type Requirement Description
[].lat Double Optional Latitude
[].lng Double Optional Longitude
[].address String Required String containing the full address
[].name String Required Branch name

Example

* Location information for the entrance to Oracle Park
[
    {
        "lat": 37.779337,
        "lng": -122.388755,
        "address": "24 Willie Mays Plaza, San Francisco, CA 94107",
        "name": "Willie Mays Plaza"
    },
    {
        "lat": 37.77814,
        "lng": -122.390836,
        "address": "King St, San Francisco, CA 94107",
        "name": "King St"
    }
]

Additional Information

Additional information to be delivered to customers can be defined in the following format.

Be careful of the content string length. If an attribute does not allow long content, it is not displayed on the device.

Figure 1: Sample: noticeDesc

Details

JSON Format

Key Type Requirement Description
count Integer Required Size of information
info[] Array of Objects Required Container of information
info[].title String Required Title
info[].content[] Array of Strings Required Content text

Example

* Extra information for a boarding pass.
{
    "count": 3,
    "info": [
        {
            "title": "Baggage Allowance",
            "content": [
                "15 KG"
            ]
        },
        {
            "title": "Boarding Priority",
            "content": [
                "YES"
            ]
        },
        {
            "title": "Seat Class",
            "content": [
                "Economy Plus"
            ]
        }
    ]
}

* An example case of long content being allowed: Movie ticket policy
{
    "count": 2,
    "info": [
        {
            "title": "REFUNDS AND EXCHANGES",
            "content": [
                "Refunds and exchanges of movie ticket(s) are available in certain limited circumstances.",
                "Movie tickets purchased through the Services include a non-refundable Convenience Fee. Before purchasing your movie ticket(s) we urge you to confirm the title, time, location and quantity of tickets for the movie you wish to see."
            ]
        },
        {
            "title": "CHANGES TO TICKET POLICY",
            "content": [
                "From time to time, we may revise this Ticket Policy. You can determine when this Ticket Policy was last revised by referring to the top of this page. Any changes to this Ticket Policy will become effective upon posting of the revised Ticket Policy on the Internet, accessible through the Services."
            ]
        }
    ]
}

* Using Dynamic QR Code

Linkable data which provides additional information in the following format.

Details

JSON Format

Key Type Requirement Description
count Integer Required Size of links
info[] Array of Object Required Container of links
info[].link String Required Link URL
info[].type String Required View type that will run the link
* Allowed values: web, app, browser

info[].text String Optional Text of the link

Example

{
	"count": 1,
	"info": [{
		"link": "https://samsung.external.info.link",
		"type": "web",
		"text": "See more information"
	}]
}

Classification

Classification defines different kinds of people who can use the cards.

Details

JSON Format

Key Type Requirement Description
person[] Array of Object Required Container of person list
person[].category String Required Category name
person[].count String Required Number of person

Example

* 3 persons with a ticket
{
 "person": [
  {
   "category": "Adult",
   "count": 2
  },
  {
   "category": "Child",
   "count": 1
  }
 ]
}

* 1 person with a ticket
{
    "person": [
        {
            "category": "Adult",
            "count": 1
        }
    ]
}

Check Service Available Devices

Check Samsung Pay/Wallet service availability for the devices and countries.

Request

Type Value
Method GET
URL https://api-us3.mpay.samsung.com/wallet/cmn/v2.0/device/available
Header partnerCode String Required Partner Code.
* Partner Code or ID from Samsung Pay Partner System.

Query parameters modelName String Required Device model name.
For example, "SM-G925K," "SM-R730T".

serviceType String Required Service type.
* WALLET: Samsung Wallet (including KR Samsung Pay).

Example

Response

Type Value Description
body resultCode String Required Result code
resultMessage String Required Result message
available boolean Required Service availability
supportKR boolean Required KR service support for the device

Example (Success)

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: xx
{
  "resultCode" : "0",
  "resultMessage" : "SUCCESS",
  "available": "true",
  "supportKR": "true"
}

Example (Error)

HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: xx
{
  "resultCode" : " CMN5N9001",
  "resultMessage" : " Internal Server Error"
}

Response

HTTP code Status code Description
200 0 Success
400 CMN1N1001 Missing requisite parameter from API request – {0}
400 CMN1N1002 Invalid parameter from API request – {0}
400 CMN1N1003 Invalid parameter length from API request – {0}
400 CMN2N2007 Invalid country code
500 CMN4N8003 DB connection failed

Security Factors

Service Flow

Figure 2: Data security flow

How to Generate Key Factors

OpenSSL is an open-source command-line tool that allows you to perform various SSL-related tasks. This section explains how to create key factors for security with OpenSSL.

Private Key

A private key enables encryption and is the most important component of certificates.

openssl genpkey -out domain.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048

If you want to make it more secure, adding "-des3" on the command will encrypt with password.

Certificate Signing Request (CSR)

Certificate Signing Request (CSR) is a necessary factor to get a signed certificate. The CSR includes the public key and some additional information, such as organization and country.
Let's create a CSR (domain.csr) from the existing private key.

openssl req -out domain.csr -key domain.key -new -sha256

Enter the CSR information to complete the process. The output will look like the following:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Sample City
Organization Name (eg, company) [Default Company Ltd]:Sample Company
Organizational Unit Name (eg, section) []:Sample section
Common Name (eg, your name or your server's hostname) []:domain
Email Address []:email@email.com

Please enter the following 'extra'attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
  • ‘password’ is an optional attribute.
  • The ‘Common Name’ field is important, as it needs to exactly match the Fully Qualified Domain Name (FQDN) of our domain.

For more information, refer to https://www.openssl.org.

Contact Points

[Dev Team]

Name Address
Wallet technical support https://developer.samsung.com/dashboard/support