Wallet Cards
This chapter defines data fields for attributes object by each Wallet card types.
Boarding Pass
'Boarding pass' cards support one-off transit types such like airlines, trains, buses, ferries and etc.
Wallet Card Type | Wallet Card Sub Type |
---|---|
boardingpass | airlines, trains, buses, ferries, others |
Type | Value | Description | |||
---|---|---|---|---|---|
attributes.{fields} | 1 | title | String(32) | Mandatory | Main title. e.g., 'BOARDING PASS'. |
2 | transitType | String(16) | Optional | Transit type. * This will be deprecated |
|
3 | groupingId | String(32) | Optional | Identifier used to group related cards. | |
4 | orderId | String(32) | Optional | Unique identifier for an order. | |
5 | providerLogo | String(256) | Mandatory | URL of the logo image. The file size must not be greater than 256 kB. | |
6 | providerLogo.dark Url | String(256) | Mandatory | URL of the logo image. The file size must not be greater than 256 kB. |
|
7 | providerName | String(32) | Mandatory | Display name of the boarding pass provider. | |
8 | user | String(64) | Conditional | Passenger Name * Required if subType is airlines |
|
50 | userType | String(32) | Optional | Passenger type i.e., Classification of passengers like Child, Adult |
|
51 | transitOperator | String(64) | Optional | Operator name | |
9 | vehicleNumber | String(32) | Conditional | Transit or route number i.e., Flight number on airlines * Required if subType is airlines |
|
52 | transitClass | String(32) | Optional | Transit class i.e., Premium class for buses |
|
53 | transitFare | String(32 | Optional | General fare or purchase fare | |
10 | seatClass | String(32) | Conditional | Seat class. * Required if subType is airlines |
|
11 | seatNumber | String(16) | Mandatory | Individual number of the passenger seat. e.g., A-9, Free |
|
12 | reservationNumber | String(32) | Mandatory | Number of the flight reservation. | |
13 | boardingPriority | String(32) | Optional | Information on whether entitles the passenger to board before others. i.e., if the passengers are pregnant. |
|
14 | boardingSeqNo | String(32) | Optional | Boarding sequence number | |
15 | boardingGroup | String(8) | Optional | Value of boarding group or zone. e.g., B. |
|
16 | boardingTime | Long(13) | Optional | Boarding time. Epoch timestamp in milliseconds. |
|
17 | boardingTime.utcOffset | String(8) | Conditional | UTC offset of boarding time at the departure point. * Required if boardingTime exist |
|
18 | gateClosingTime | Long(13) | Optional | Boarding gate closing time. Epoch timestamp in milliseconds. |
|
19 | gateClosingTime.utcOffset | String(8) | Conditional | UTC offset of gate closing time at the departure point. * Required if gateClosingTime exist |
|
20 | baggageAllowance | String(16) | Optional | Baggage allowance. | |
21 | departName | String(32) | Conditional | Name of the departure point. * Required if subType is airlines |
|
22 | departCode | String(8) | Conditional | Code for the departure point. * Required if subType is airlines |
|
23 | departTerminal | String(8) | Conditional | Terminal name of the departure point. * Required if subType is airlines |
|
24 | departGate | String(8) | Optional | Gate name of the departure point. | |
25 | estimatedOrActualStartDate | Long(13) | Conditional | Departure time. Epoch timestamp in milliseconds. i.e., the estimated time the aircraft plans to pull from the gate, or the actual time the aircraft already pulled from the gate. * Required if subType is airlines |
|
26 | estimatedOrActualStartDate. utcOffset | String(8) | Conditional | UTC offset of depart time at the departure point. * Required if estimatedOrActualStartDate exist |
|
27 | arriveName | String(32) | Conditional | Name of the arrival point. * Required if subType is airlines |
|
28 | arriveCode | String(8) | Conditional | Code for the arrival point. * Required if subType is airlines |
|
29 | arriveTerminal | String(8) | Optional | Terminal name of the arrival point. | |
30 | arriveGate | String(8) | Optional | Gate name of the arrival point. | |
32 | estimatedOrActualEndDate | Long(13) | Conditional | Arrival time Epoch timestamp in milliseconds. i.e., the estimated time the aircraft plans to reach the destination gate (not the runway), or the actual time it reached the gate. * Required if subType is airlines |
|
33 | estimatedOrActualEndDate. utcOffset | String(8) | Conditional | UTC offset of arrive time at the arrival point. * Required if estimatedOrActualEndDate exist |
|
34 | locations | String(1024) | Optional | List of locations where the card can be used. * See Location format. |
|
35 | bgColor | String(8) | Mandatory | Color of the card art. e.g., #00FFFF. |
|
36 | fontColor | String(8) | Optional | Color of the font on the card art. Supported colors are white or black. (#000000 or #FFFFFF) |
|
37 | blinkColor | String(8) | Optional | Color of the blinking effect in the Indicator area. e.g., #00FFFF. |
|
38 | appLinkLogo | String(256) | Mandatory | App link image URL. The file size must not be greater than 256 kB. | |
39 | appLinkName | String(32) | Mandatory | App link name. | |
40 | appLinkData | String(256) | Mandatory | Information about the partner app link. | |
41 | extraInfo | String(512) | Optional | Additional information to be delivered to customers. * See Additional Information format. |
|
42 | noticeDesc | String(1024) | Optional | Text of the notice. * Long content is allowed. * See Additional Information format. |
|
43 | csInfo | String(512) | Optional | Set value to JSON Object (call or email or website) * See the below example |
|
44 | displayTSAPreChec kYn | String(1) | Optional | Flag whether to display the TSA PreCheck image. Either ‘Y’ or ‘N’. | |
45 | membershipStatus Level | String(256) | Optional | Image URL for the status level of the airline alliance or own membership. i.e., Airline: SkyTeam, Star Alliance. |
|
46 | barcode.value | String(4296) | Mandatory | Barcode data, serial number. * Required if serialType isn’t 'None'. |
|
47 | barcode.serialType | String(32) | Mandatory | Presentation Type (Barcode/QR/Serial/None). * See Barcode format. |
|
48 | barcode.ptFormat | String(32) | Conditional | Presentation Format. * See Barcode format. |
|
49 | barcode.ptSubFormat | String(32) | Conditional |
Example
Airline boarding pass
{
"card": {
"type": "boardingpass",
"subType": "airlines",
"data": [
{
"refId": "SE16138353212584800001",
"createdAt": 1612660039000,
"updatedAt": 1612660039000,
"language": "en",
"attributes": {
"title": "OO AIR BOARDING PASS",
"transitType": "Airline",
"groupingId": "SE867132687321",
"providerLogo": "https://../logoImage.png",
"providerLogo.darkUrl": "https://../logoImage.png",
"providerName": "OO AIR",
"user": "GIL DONG HONG",
"vehicleNumber": "SE123",
"seatClass": "Economy Plus",
"seatNumber": "A15",
"reservationNumber": "A238473-1",
"boardingSeqNo": "32",
"boardingTime": 1612660039000,
"boardingTime.utcOffset": "UTC+9",
"baggageAllowance": "15KG",
"departName": "SEOUL/INCHEON",
"departCode": "INC",
"departTerminal": "C",
"departGate": "1",
"estimatedOrActualStartDate": 1612660039000,
"estimatedOrActualStartDate.utcOffset": "UTC+9",
"arriveName": "SAN FRANCISCO",
"arriveCode": "SFO",
"arriveTerminal": "A",
"arriveGate": "11",
"estimatedOrActualEndDate": 1612660039000,
"estimatedOrActualEndDate.utcOffset": "UTC-8",
"bgColor": "#FF00FF",
"fontColor": "#000000",
"appLinkLogo": "https://../applinklogo.png",
"appLinkName": "OO Airline",
"appLinkData": "https://www.ooairline.com",
"csInfo": "{\"call\":\"555) 123-4567\", \"email\":\"cs@email.com\", \"website\":\"https://homepage.com/cs\"}",
"barcode.value": "CS16138353212584806754FG1802",
"barcode.serialType": "BARCODE",
"barcode.ptFormat": "QRCODESERIAL",
"barcode.ptSubFormat": "QR_CODE"
},
"localization": [
{
"language": "ko",
"attributes": {
"title": "OO 항공 탑승권",
"providerName": "OO 항공",
"user": "홍 길동"
}
}
]
}
]
}
}
Grouped Bus boarding passes
{
"card": {
"type": "boardingpass",
"subType": "buses",
"data": [
{
"refId": "ref-202211300001",
"createdAt": 1669782394000,
"updatedAt": 1669782394000,
"language": "en",
"attributes": {
"title": "Samsung Bus Boarding Pass",
"transitType": "Bus",
"groupingId": "grp-20221130001",
"providerLogo": "https://../logoImage.png",
"providerLogo.darkUrl": "https://../logoImageDark.png",
"providerName": "SAMSUNG BUS",
"user": "GALAXY KIM",
"userType": "Adult",
"transitOperator": "Samsung Transport Co.",
"seatNumber": "7-A",
"reservationNumber": "RSVNO-202211300001",
"transitClass": "Premium",
"transitFare": "12,500 WON",
"boardingTime": 1671926400000,
"boardingTime.utcOffset": "UTC+09:00",
"departName": "EAST-SEOUL Bus Terminal",
"departGate": "14",
"estimatedOrActualStartDate": 1671928200000,
"estimatedOrActualStartDate.utcOffset": "UTC+09:00",
"arriveName": "SUWON Bus Terminal",
"bgColor": "#F1C232",
"fontColor": "#000000",
"appLinkLogo": "https://../applinklogo.png",
"appLinkName": "Samsung Bus",
"appLinkData": "https://www.samsung-bus.com",
"csInfo": "{\"call\":\"555) 123-4567\", \"email\":\"cs@email.com\", \"website\":\"https://homepage.com/cs\"}",
"barcode.value": "161383532125848067541802",
"barcode.serialType": "BARCODE",
"barcode.ptFormat": "QRCODESERIAL",
"barcode.ptSubFormat": "QR_CODE"
},
"localization": [
{
"language": "ko",
"attributes": {
"title": "삼성버스 탑승권",
"providerName": "삼성버스",
"user": "김 은하",
"transitFare": "12,500 원"
}
}
]
},
{
"refId": "ref-202211300002",
"createdAt": 1669782394000,
"updatedAt": 1669782394000,
"language": "en",
"attributes": {
"title": "Samsung Bus Boarding Pass",
"transitType": "Bus",
"groupingId": "grp-20221130001",
"providerLogo": "https://../logoImage.png",
"providerLogo.darkUrl": "https://../logoImageDark.png",
"providerName": "SAMSUNG BUS",
"user": "SAMSUNG SAM",
"userType": "Child",
"transitOperator": "Samsung Transport Co.",
"seatNumber": "7-B",
"reservationNumber": "RSVNO-202211300002",
"transitClass": "Preminum",
"transitFare": "9,000 WON",
"boardingTime": 1671926400000,
"boardingTime.utcOffset": "UTC+09:00",
"departName": "EAST-SEOUL Bus Terminal",
"departGate": "14",
"estimatedOrActualStartDate": 1671928200000,
"estimatedOrActualStartDate.utcOffset": "UTC+09:00",
"arriveName": "SUWON Bus Terminal",
"bgColor": "#F1C232",
"fontColor": "#000000",
"appLinkLogo": "https://../applinklogo.png",
"appLinkName": "Samsung Bus",
"appLinkData": "https://www.samsung-bus.com",
"csInfo": "{\"call\":\"555) 123-4567\", \"email\":\"cs@email.com\", \"website\":\"https://homepage.com/cs\"}",
"barcode.value": "161383532125848067541802",
"barcode.serialType": "BARCODE",
"barcode.ptFormat": "QRCODESERIAL",
"barcode.ptSubFormat": "QR_CODE"
},
"localization": [
{
"language": "ko",
"attributes": {
"title": "삼성버스 탑승권",
"providerName": "삼성버스",
"user": "사만다 삼성",
"transitFare": "9,000 원"
}
}
]
}
]
}
}
Event Ticket
'Event Ticket' cards support event commodities for performances, sports, movies, entrances, and etc.
Wallet Card Type | Wallet Card Sub Type |
---|---|
ticket | performances, sports, movies, entrances, others |
Type | Value | Description | |||
---|---|---|---|---|---|
attributes.{fields} | 1 | title | String(32) | Mandatory | Main title. e.g., MLB Ticket. |
2 | category | String(16) | Optional | Ticket category * This will be deprecated |
|
3 | eventId | String(32) | Optional | If full cancelation of the event occurs, find and process all tickets with this ID. | |
4 | groupingId | String(32) | Optional | Identifier used to group related cards. | |
5 | orderId | String(32) | Optional | A unique identifier for an order. | |
6 | mainImg | String(256) | Mandatory | URL for main ticket image. The file size must not be greater than 512 kB. |
|
7 | subtitle1 | String(32) | Optional | Subtitle. | |
8 | logoImage | String(256) | Mandatory | Logo image URL to be displayed in the Card item. The file size must not be greater than 256 kB. |
|
9 | logoImage.darkUrl | String(256) | Mandatory | Logo image URL (dark version). The file size must not be greater than 256 kB. |
|
10 | providerName | String(32) | Mandatory | Ticket provider name. | |
11 | seatClass | String(32) | Optional | Seat class. | |
12 | entrance | String(64) | Optional | Entrance gate. | |
13 | seatNumber | String(256) | Optional | Seat location. | |
14 | seatLayoutImage | String(256) | Optional | URL of the seat layout image. The file size must not be greater than 512 kB. |
|
15 | issueDate | Long(13) | Mandatory | Issue date. Epoch timestamp in milliseconds. | |
16 | reservationNumber | String(32) | Mandatory | Reservation number. | |
17 | user | String(64) | Optional | Name of person who made the reservation. | |
18 | certification | String(16) | Optional | Ticket certification. For example, the Film rating. |
|
19 | reactivatableYn | String(1) | Optional | Flag whether the card is able to activate an expired ticket temporarily. Either ‘Y’ or ‘N’ * Default: N |
|
55 | preventCaptureYn | String(1) | Optional | Flag whether this wallet card view prevents screen capture. Either ‘Y’ or ‘N’ * Default: N |
|
20 | startDate | Long(13) | Mandatory | Start date (Display Start date). Epoch timestamp in milliseconds. |
|
21 | endDate | Long(13) | Optional | End date (Display End date). Epoch timestamp in milliseconds. * If null, the card will expired in 10 hours from startDate |
|
22 | person1 | String(512) | Optional | Number of persons by category. * See Classification format. |
|
23 | locations | String(1024) | Optional | List of locations where the card can be used. * See Location format. |
|
24 | noticeDesc | String(1024) | Mandatory | Text of the notice. * Long content is allowed. * See Additional Information format. |
|
25 | csInfo | String(512) | Mandatory | Set value to JSON Object. (call, email, website). * See the example below. |
|
26 | appLinkLogo | String(256) | Mandatory | App link image URL. The file size must not be greater than 256 kB. |
|
27 | appLinkName | String(32) | Mandatory | App link name. | |
28 | appLinkData | String(256) | Mandatory | Information about the partner app link. | |
29 | connectivityType | String(16) | Mandatory | Supported Connectivity Type e.g. BLE, NFC, UWB |
|
30 | bgColor | String(8) | Optional | Color of the card art. e.g., #00FFFF. |
|
31 | fontColor | String(8) | Optional | Color of the font on the card art. Supported colors are white or black. (#000000 or #FFFFFF) |
|
32 | blinkColor | String(8) | Mandatory | Color of the blinking effect in the Indicator area. For example, #00FFFF. |
|
33 | barcode.value | String(4296) | Conditional | Barcode data, serial number. * Required if serialType isn’t 'None'. |
|
34 | barcode.serialType | String(32) | Mandatory | Presentation Type (Barcode/QR/Serial/None). * See Barcode format. |
|
35 | barcode.ptFormat | String(32) | Conditional | Presentation Format. * See Barcode format. * Required if serialType isn’t 'None'. |
|
36 | barcode.ptSubFormat | String | Conditional | ||
If coupons are provided together. Samsung Wallet can show up to two coupons per ticket. | |||||
37 | relCoupon1.title | String(32) | Mandatory | 1st coupon title. | |
38 | relCoupon1.providerName | String(32) | Mandatory | 1st coupon provider name. | |
39 | relCoupon1.imageFileSrc | String(256) | Optional | 1st coupon image URL. The file size must not be greater than 256 kB. | |
40 | relCoupon1.noticeDescription | String(1024) | Optional | Text of the notice. * Long content is allowed. * See Additional Information format. |
|
41 | relCoupon1.notificationTime | Long(13) | Optional | Coupon exposure time. Epoch timestamp in milliseconds. | |
42 | relCoupon1.value | String(4296) | Conditional | Barcode data, serial number. * Required if serialType isn’t 'None'. |
|
43 | relCoupon1.serialType | String(32) | Mandatory | Presentation Type (Barcode/QR/Serial/None). * See Barcode format. |
|
44 | relCoupon1.ptFormat | String(32) | Conditional | Presentation Format. * See Barcode format. * Required if serialType isn’t 'None'. |
|
45 | relCoupon1.ptSubFormat | String(32) | Conditional | ||
46 | relCoupon2.title | String(32) | Mandatory | 2nd coupon title. | |
47 | relCoupon2.providerName | String(32) | Mandatory | 2nd coupon provider name. | |
48 | relCoupon2.imageFileSrc | String(256) | Optional | 2nd coupon image URL. The file size must not be greater than 256 kB. | |
49 | relCoupon2.noticeDescription | String(1024) | Optional | Text of the notice. * Long content is allowed. * See Additional Information format. |
|
50 | relCoupon2.notificationTime | Long(13) | Optional | Coupon exposure time. Epoch timestamp in milliseconds. |
|
51 | relCoupon2.value | String(4296) | Conditional | Barcode data, serial number. * Required if serialType isn’t 'None'. |
|
52 | relCoupon2.serialType | String(32) | Mandatory | Presentation Type (Barcode/QR/Serial/None). * See Barcode format. |
|
53 | relCoupon2.ptFormat | String(32) | Conditional | Presentation Format. * See Barcode format. * Required if serialType isn’t 'None'. |
|
54 | relCoupon2.ptSubFormat | String(32) | Conditional |
Example
{
"card": {
"type": "ticket",
"subType": "sports",
"data": [
{
"refId": "ND1613835321258480007",
"createdAt": 1612660039000,
"updatedAt ": 1612660039000,
"language": "en",
"attributes": {
"title": "MLB Ticket",
"category": "Sports",
"orderId": "EME0331",
"mainImg": "https://../logo.png",
"logoImage": "https://../main.png",
"providerName": "MLB",
"logoImage.darkUrl": "https://../logo.png",
"seatNumber": "Floor 1 Section 201 Row10 Seat 5",
"seatLayoutImage": "https://../layout_8.png",
"issueDate": 1637457125000,
"reservationNumber": "MLB000001",
"startDate": 1637457925000,
"person1": "{\"person\" : [{\"category\" : \"Adult\", \"count\": 1 },{\"category\" : \"Child\", \"count\": 2 },]}",
"locations": "[{\"lat\": 37.779337, \"lng\": -122.388755, \"address\": \"1 E 161 St. Bronx, NY\", \"name\": \"Yankee Stadium\"}]",
"noticeDesc": "{\"count\": 2,\"info\": [{\"title\": \"NOTICE 2\",\"content\": [\"DESCRIPTION 1\",\"DESCRIPTION 2\"]},{\"title\": \"NOTICE 2\",\"content\": [\"DESCRIPTION 1\"]}]}",
"csInfo": "{\"call\":\"555) 123-4567\", \"email\":\"cs@email.com\", \"website\":\"https://homepage.com/cs\"}",
"appLinkName": "OO Movies",
"appLinkLogo": "https://../applinklogo.png",
"appLinkData": "https://www.ooairline.com",
"blinkColor": "#00FFFF",
"barcode.value": "CS16138353212584806754",
"barcode.serialType": "BARCODE",
"barcode.ptFormat": "QRCODESERIAL",
"barcode.ptSubFormat": "QR_CODE"
}
}
]
}
}
Coupon
'Coupon' cards support digitalized redeemable voucher.
Wallet Card Type | Wallet Card Sub Type |
---|---|
coupon | others |
Type | Value | Description | |||
---|---|---|---|---|---|
attributes.{fields} | 1 | title | String(32) | Mandatory | Main title. For example, 'Free coupon". |
2 | orderId | String(32) | Optional | Unique identifier for an order. | |
3 | mainImg | String(256) | Mandatory | URL for the main coupon image. The file size must not be greater than 512 kB. | |
4 | brandName | String(32) | Optioanl | Brand name. | |
5 | expiry | Long(13) | Mandatory | Expiry date in timestamp format. Issued data is cleaned up after it expires. Epoch timestamp in milliseconds. |
|
6 | issueDate | Long(13) | Mandatory | Issue date. Epoch timestamp in milliseconds. | |
7 | redeemDate | Long(13) | Optional | Date when the coupon is used. Epoch timestamp in milliseconds. |
|
8 | noticeDesc | String(1024) | Optional | Text of notice. * HTML supported |
|
9 | editableYn | String(1) | Mandatory | Flag whether the coupon can be modified. Either ‘Y’ or ‘N’. | |
10 | deletableYn | String(1) | Mandatory | Flag whether the coupon can be deleted. Either ‘Y’ or ‘N’. | |
11 | displayRedeemButtonYn | String(1) | Mandatory | Flag whether the use completion button is displayed. Either ‘Y’ or ‘N’. |
|
13 | notificationYn | String(1) | Mandatory | Flag whether a notification related to the coupon is delivered. Either ‘Y’ or ‘N’. | |
14 | appLinkLogo | String(256) | Mandatory | App link image URL. The file size must not be greater than 256 kB. |
|
15 | appLinkName | String(32) | Mandatory | App link name. | |
16 | appLinkData | String(256) | Mandatory | Information about the partner app link. | |
17 | barcode.value | String(4296) | Conditional | Barcode data, serial number. * Required if serialType isn’t 'None'. |
|
21 | barcode.value2 | String(4296) | Conditional | The secondary barcode data. * Required if ptFormat is DUALBARCODE or DUALBARCODESERIAL |
|
18 | barcode.serialType | String(32) | Mandatory | Presentation Type (Barcode/QR/Serial/None). * See Barcode format. |
|
19 | barcode.ptFormat | String(32) | Conditional | Presentation Format. * See Barcode format. * Required if serialType isn’t 'None'. |
|
20 | barcode.ptSubFormat | String(32) | Conditional |
Example
{
"card": {
"type": "coupon",
"subType": "others",
"data": [{
"refId": "ref-20230304-0002",
"createdAt": 1612660039000,
"updatedAt": 1612660039000,
"language": "en",
"attributes": {
"title": "Free Coupon",
"mainImg": "https://../main.png",
"brandName": "Samsung Coupon",
"expiry": 1637802725000,
"issueDate": 1637457125000,
"editableYn": "N",
"deletableYn": "N",
"displayRedeemButtonYn": "Y",
"notificationYn": "Y",
"appLinkName": "OO Voucher",
"appLinkLogo": "https://../applinklogo.png",
"appLinkData": "https://www.oocoupon.com",
"barcode.value": "CS16138353212584806754FG1802 ",
"barcode.serialType": "BARCODE",
"barcode.ptFormat": "QRCODESERIAL",
"barcode.ptSubFormat": "QR_CODE"
}
}]
}
}