Loyalty

'Loyalty' cards support enrolling loyalty cards also known as membership.

Links (URLs) to get points in real time can be provided in the Partners Portal. If a partner needs to integrate communication between Samsung Wallet server and the partner’s server to support the feature, the partner has to set the links in the Partners Portal.

Wallet card type

Wallet card subtype

loyalty

others


Others

Figure 10: Sample UI: Loyalty

Wallet Card data fields

Attributes

Type

Value

Description

attributes.{fields}

title
String (32)

(Required)
Main title.
e.g.,Samsung Loyalty Card.

eventId
String (36)

(Optional)
If full cancelation of the event occurs, find and process all loyalty cards with this ID

groupingId
String (36)

(Optional)
Identifier used to group related cards

orderId
String (36)

(Optional)
A unique identifier for an order

subtitle1
String (32)

(Optional)
The auxiliary field which displays supporting information

logoImage
String (256)

(Optional)
Logo image URL to be displayed in the card item.
The file size should not exceed 256 KB.

logoImage.darkUrl
String (256)

(Optional)
Logo image URL in dark mode.
The file size should not exceed 256 KB.

logoImage.lightUrl
String (256)

(Optional)
Logo image URL in light mode.
The file size should not exceed 256 KB.

providerName
String (32)

(Required)
Loyalty card provider name

startDate
Long (13)

(Optional)
Start date (Display Start date).
Epoch timestamp in milliseconds.

endDate
Long (13)

(Optional)
End date (Display End date).
Epoch timestamp in milliseconds.

locations
String (1024)

(Optional)
List of locations where the card can be used.
* See Location format.

noticeDesc
String(5000)

(Optional)
Text of notice.
*HTML supported

csInfo
String (512)

(Optional)
Providers’ customer service Information
Using data in JSON format converted to escape string
* Allowed items: call, email, website, facebook, pinterest, x, or instagram
* See the example below.

appLinkLogo
String (256)

(Required)
App link image URL.
The file size should not exceed 256 KB.

appLinkName
String (32)

(Required)
App link name

appLinkData
String (256)

(Required)
Information about the partner app link

bgImage
String (256)

(Optional)
Background image for a card art.
The recommended size for image resources is 888 x 555 px

bgColor
String (8)

(Optional)
Color of the card art.
e.g., #00FFFF.

fontColor
String (8)

(Optional)
Color of the font on the card art.
Acceptable values: dark, light.

blinkColor
String (8)

(Optional)
Color of the blinking effect which indicates that a card cannot be captured in the Indicator area.
e.g., #00FFFF.

barcode.value
String (4096)

(Optional)
Actual data that is delivered when the barcode/QR code is scanned.

barcode.serialType
String (32)

(Optional)
Presentation type.
e.g., SERIALNUMBER, BARCODE....
* See Barcode format.

barcode.ptFormat
String (32)

(Optional)
Presentation format.
e.g., BARCODE, QRCODE, SERIAL....
* See Barcode format.

barcode.ptSubFormat
String (32)

(Optional)
Presentation sub-format.
e.g., CODE_128, QR_CODE....
*See Barcode format.

barcode.errorCorrectionLevel
String (4)

(Optional)
Amount of redundancy or error correction data included in the code.
There are four error correction levels available in QR codes.
* Code options: L/M/Q/H

merchantId
String (36)

(Optional)
Merchant identifier

merchantName
String (32)

(Optional)
Merchant name to display

amount
String(32)

(Optional)
Total amount of points or initial balance. This is going to be shown as received.
It is recommended to use a one letter currency symbol.
e.g., $ 1,000, 1,000P

balance
String(32)

(Optional)
Available points or remaining balance.
This is going to be shown as received.
It is recommended to use a one letter currency symbol.
e.g., $ 1,000, 1,000P

summaryUrl
String(256)

(Optional)
Webpage URL that shows details, such as balance or transactions history

Example

{
    "card": {
        "type": "loyalty",
        "subType": "others",
        "data": [
            {
                "refId": "b3fdc982-28c9-47a3-b02f-d484779698a8",
                "createdAt": 1672574400000,
                "updatedAt": 1672574400000,
                "language": "en",
                "attributes": {
                    "title": "Samsung Loyalty Card",
                    "eventId": "event-001",
                    "logoImage": "https://gpp.walletsvc.samsung.com/mcs/images/contents/wallet_intro_logo.png",
                    "logoImage.darkUrl": "https://gpp.walletsvc.samsung.com/mcs/images/contents/wallet_intro_logo.png",
                    "providerName": "Samsung Loyalty Card Provider",
                    "noticeDesc": "<ul><li>Loyalty Card Test</li></ul>",
                    "csInfo": " {\"call\":\"0000-0000\",\"email\":\"samsungwallet@samsungwallet.com\",\"website\":\"https://www.samsungwallet.com/cs/\",\"instagram\":\"https://www.instagram.com/samsungwallet\",\"pinterest\":\"https://www.pinterest.com/samsungwallet\",\"x\":\"https://www.twitter.com/samsungwallet\",\"facebook\":\"https://www.facebook.com/samsungwallet\" }",
                    "appLinkLogo": "https://play-lh.googleusercontent.com/ZnFa1roZ7hpv9j-jIAcBjmjuDl2x-FnuwTE0OYvbbcwvf5VPzOQQiKBXGK7d-APTvag=w240-h480-rw",
                    "appLinkName": "Loyalty Card Link",
                    "appLinkData": "https://www.samsung.com/",
                    "bgColor": "#0A1A4F",
                    "barcode.value": "CS16138353212584806754FG1802",
                    "barcode.serialType": "QRCODE",
                    "barcode.ptFormat": "QRCODESERIAL",
                    "barcode.ptSubFormat": "QR_CODE",
                    "amount": "1,000P",
                    "balance": "500P"
                }
            }
        ]
    }
}

Business Support for Special Purposes

Server APIs are provided for cases where it is necessary to manage a large number of cards. Cards created through API can also be checked and managed in the same way on the ‘Wallet Partners Portal'.

Changes to each card status can be processed at the ‘Wallet Partners Portal', and information on how to change them should be checked through the Partner Server Portal Guide. The attributes related to the server API are as follows.

Attributes

Type

Value

Description

Payload object

cardTemplate
Object

(Required)
Wallet card template object

cardTemplate.prtnrId
String(32)

(Required)
Partner ID

cardTemplate.templateRefId
String(19)

(Required)
Partner Template ID

cardTemplate.title
String(32)

(Required)
Wallet Card Name

cardTemplate.countryCode
String(2)

(Conditional)
The Main (Headquarters) Location.
* Required when creating a template

cardTemplate.cardType
String(100)

(Conditional)
This value is set to “loyalty”.
* Required when creating a template.

cardTemplate.subType
String(100)

(Conditional)
This value is set to “others”.
* Required when creating a template.

cardTemplate.prtnrAppPckgName
String(128)

(Optional)
The Application Package Name.

cardTemplate.appLogoImg
String(200)

(Optional)
The banner logo image URL.

cardTemplate.noNetworkSupportYn
String(1)

(Optional)
This must be set to either 'Y' or 'N'.
* Default: 'N'.

cardTemplate.shareButtonExposureYN
String(1)

(Optional)
This must be set to either 'Y' or 'N'.
* Default: 'Y'.

cardTemplate.privacyModeYn
String(1)

(Optional)
This must be set to either 'Y' or 'N'.
* Default: 'N'.

cardTemplate.preventCaptureYn
String(1)

(Optional)
This value is a screen capture prevention flag that defines whether the content view prevents screen capture.

cardTemplate.state
String(15)

(Optional)
Wallet card's state
* Default: 'DRAFT'

cardTemplate.testingModeOff
String(1)

(Optional)
TestMode Off
Either 'Y' or 'N'
* Default: ‘N’
Available only when updating templates

cardTemplate.desc
String(500)

(Optional)
Description

{
  "cardTemplate": {
    "prtnrId": "4082825513190138240",
    "templateRefId": "2138240408282551316",
    "title": "Wallet Card Title",
    "prtnrAppPckgName": "prtnrAppPckgName",
    "countryCode": "US",
    "desc": "desc",
    "cardType": "loyalty",
    "subType": "others",
    "appLogoImg": "http://www.yourdomain.com/banner_logo_image.png",
    "noNetworkSupportYn": "N",
    "shareButtonExposureYN": "N",
    "privacyModeYn": "N",
    "preventCaptureYn": "N"
  }
}