Helpful Resources

Data Structure and Format

Extended Fields

A list of customizable data fields used for rendering dynamic content in the card UI or printed representation. Each field consists of a label, value, and an optional order to define display sequence. If the card type is generic, a type field is also included to map each field to a predefined layout position.


Type

Description

label

(Required)
The display name of the field.

value

(Required)
The actual content shown alongside the label.

type

(Conditional)
A predefined identifier used to map the field to a specific position in the layout. This field is used only for Generic Card type and must align with layout defined from Partner portal.

order

(Optional)
Defines the display order of the fields. Lower numbers appear first.

[Example]

{
    "extendedFields": [
        {
            "label": "Name",
            "value": "Bahadur Bhai",
            "type": "text1",
            "order": 1
        },
        {
            "label": "Role",
            "value": "Graphic Designer",
            "type": "text2",
            "order": 2
        },
        {
            "label": "Contact",
            "value": "+0012349012",
            "type": "text3",
            "order": 3
        },
        {
            "label": "Email",
            "value": "into@email space",
            "type": "text4",
            "order": 4
        },
        {
            "label": "Address",
            "value": "123 Dunny, Lorem ipsum",
            "type": "text5",
            "order": 5
        }
    ]
}

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

JSON Format

Type

Description

info[]
Object arrays

(Required)
Container of information

info[].title
String

(Required)
Title.
* Need either content or chart.

info[].content[]
String arrays

(Optional)
Content text

info[].more[]
Object arrays

(Optional)
The addtional information that needs to be checked by pressing the ⓘ button in the contents of the info[].title

info[].more[].title
String

(Optional)
Title.
* Need either content or chart.

info[].more[].content[]
String arrays

(Optional)
Content text

info[].chart
Object

(Optional)
Chart data

info[].chart.headers[]
String arrays

(Optional)
Header of chart

info[].chart.body[]
Array

(Required)
Body of chart

info[].chart.metadata[]
String arrays

(Optional)
Metadata of chart
* Units or additional information of chart

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."
            ]
        }
    ]
}
* Example usage of charts
{
        "count": 1,
        "info": [{
        "title": "PAYGO Price guide for usage",
                  "chart": {
                                "headers": ["Grade", "ROUND", "ONE-WAY"],
                                "body": [
                                        ["Platinum", "$25", "$10"],
                                        ["Gold", "$30", "$15"],
                                        ["Silver", "$40", "$20"]
                                        ],
        "metadata": "Unit : /h"
        }
    }]
}

* Example usage of html
{
    "count": 2,
    "info": [
        {
            "title": "<b>This is bold text</b>. <font color='red'>This is red text</font>. <a href='https://www.example.com'>This is a link</a>",
            "content": [
                "1. Wear a mask",
                "2. Temperature check before entering the theater",
                "3. Electronic entry registration for all customers using the performance",
                "Please cooperate even if it takes some time before entering.",
                "We kindly ask for your cooperation."
            ]
        },
        {
            "title": "[Parking Information]",
            "content": [
                "<b>This is bold text</b>. <font color='red'>This is red text</font>. <a href='https://www.example.com'>This is a link</a>"
            ]
        }
    ]
}

PAYGO Price guide for usage

Members Grade

Round

One-way

Platinum

$25

$10

Gold

$30

$15

Silver

$40

$20

Unit : /h

The above example may differ from what is actually displayed.

Classification

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

Vlaue

Description

person[]
Array of Object

(Required)
Container of person list who can use the card.

person[].category
String

(Required)
Category name.

person[].count
String

(Required)
Number of persons.

Example

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
        }
    ]
}

Transactions

Transactions 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 will not be displayed on the device.

Vlaue

Description

[].date
String

(Required)
Transaction Date.

[].amount
String

(Optional)
Amount value.

[].description
String

(Optional)
Description.

Example

* An example for payasyougo-evcharge-transactions
[
    {
        "date": "2023-09-10 12:00:00",
            "amount": "50,000 WON",
                "description": "Suwon Station Branch"
                  },
       {
        "date": "2023-09-20 18:00:00",
            "amount": "70,000 WON",
                "description": "Gangnam Central Branch"
    }
]

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.

Vlaue

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"
    }
]

Itinerary Information

Vlaue

Description

itineraryInformation[].id
String(32)

(Optional)
Unique id assigned to each segment of the journey.

itineraryInformation[].order
String(4)

(Optional)
Order of each segment within the overall itinerary.

itineraryInformation[].providerName
String(32)

(Conditional)
Provider name.
* Required if subType is etickets.

itineraryInformation[].providerLogo
String(256)

(Conditional)
URL of the logo image.
* Required if subType is etickets.

itineraryInformation[].providerLogo.darkUrl
String(256)

(Conditional)
URL of the logo image in dark mode.
* Required if subType is etickets.

itineraryInformation[].providerLogo.lightUrl
String(256)

(Conditional)
URL of the logo image in light mode.
* Required if subType is etickets.

itineraryInformation[].departure
Object

(Conditional)
Information about the place of departure.

itineraryInformation[].departure.name
String(32)

(Conditional)
Name of the departure point.
* Required if subType is etickets

itineraryInformation[].departure.code
String(32)

(Conditional)
IATA Code for the departure point.
* Required if subType is etickets

itineraryInformation[].departure.airport
String(100)

(Conditional)
Airport name of the departure point.
* Required if subType is etickets

itineraryInformation[].departure.terminal
String(100)

(Conditional)
Terminal name of the departure point.
* Required if subType is etickets

itineraryInformation[].departure.platform
String(100)

(Optional)
Platform name of the departure point.

itineraryInformation[].departure.time.xTimestamp
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 etickets.

itineraryInformation[].departure.utcOffset
String(8)

(Conditional)
UTC offset of time at the departure point.
* Required if subType is etickets.

itineraryInformation[].departure.zoneId
String(64)

(Optional)
Unique identifier for a timezone as defined by the IANA Time Zone Database. It represents a specific region's timezone, including rules for Daylight Saving Time (DST) and historical changes.
ex) "America/New_York", "Europe/London"

itineraryInformation[].departure.literalValue
String(32)

(Optional)
The departure time that should be indicated on the screen is formatted value
format: YYYY-MM-DDThh:mm:ss
ex) 2025-10-30T14:35:00

itineraryInformation[].departure.latitude
Double

(Optional)
The latitude of where the event is start
* Input when timestamp and zoneId information is not known

itineraryInformation[].departure.longitude
Double

(Optional)
The longitude of where the event is start
* Input when timestamp and zoneId information is not known

itineraryInformation[].departure.address
String(256)

(Optional)
The address of where the event is start
* Input when timestamp and zoneId information is not known

itineraryInformation[].arrival
Object

(Conditional)
Information about the place of arrival.

itineraryInformation[].arrival.name
String(32)

(Conditional)
Name of the arrival point.
* Required if subType is etickets

itineraryInformation[].arrival.code
String(32)

(Conditional)
IATA Code for the arrival point.
* Required if subType is etickets

itineraryInformation[].arrival.airport
String(100)

(Conditional)
Airport name of the arrival point.
* Required if subType is etickets

itineraryInformation[].arrival.terminal
String(100)

(Conditional)
Terminal name of the arrival point.
* Required if subType is etickets

itineraryInformation[].arrival.platform
String(100)

(Optional)
Platform name of the arrival point.

itineraryInformation[].arrival.time
Long(13)

(Conditional)
Arrival 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 etickets

itineraryInformation[].arrival.utcOffset
String(8)

(Conditional)
UTC offset of time at the arrival point.
* Required if subType is etickets

itineraryInformation[].arrival.zoneId
String(64)

(Optional)
Unique identifier for a timezone as defined by the IANA Time Zone Database. It represents a specific region's timezone, including rules for Daylight Saving Time (DST) and historical changes.
ex) "America/New_York", "Europe/London"

itineraryInformation[].arrival.literalValue
String(32)

(Optional)
The departure time that should be indicated on the screen is formatted value.
format: YYYY-MM-DDThh:mm:ss
ex) 2025-10-30T14:35:00

itineraryInformation[].arrival.latitude
Double

(Optional)
The latitude of where the event is start
* Input when timestamp and zoneId information is not known.

itineraryInformation[].arrival.longitude
Double

(Optional)
The longitude of where the event is start.
* Input when timestamp and zoneId information is not known.

itineraryInformation[].arrival.address
String(256)

(Optional)
The address of where the event is start.
* Input when timestamp and zoneId information is not known.

itineraryInformation[].boardingTime
Long(13)

(Optional)
Boarding time.
Epoch timestamp in milliseconds.

itineraryInformation[].vehicleNumber
String(32)

(Conditional)
Transit or route number
i.e., Flight number on airlines
* Required if subType is etickets

itineraryInformation[].coachNumber
String(16)

(Optional)
Identifier assigned to each individual carriage.
e.g., B4

itineraryInformation[].seatClass
String(32)

(Conditional)
Seat class.
* Required if subType is etickets

itineraryInformation[].seatNumber
String(16)

(Optional)
Individual number of the passenger seat.
e.g., A-9, Free

itineraryInformation[].seatFacing
String(16)

(Optional)
Direction in which the seat is oriented within a carriage.
It indicates whether the seat is positioned to face the direction of travel or face the opposite direction.
e.g., Forward, Backward

itineraryInformation[].baggageAllowance
String(20)

(Optional)
Baggage allowance.

itineraryInformation[].flightTime
String(8)

(Optional)
The time required for a flight.

itineraryInformation[].checkInLink
String(256)

(Optional)
Link to check in.

itineraryInformation[].userType
String(32)

(Optional)
Passenger type
i.e., Classification of passengers like Child, Adult

Example

{
    "itineraryInformation": [
        {
            "id": "itineraryId",
            "order": 1,
            "departure": {
                "name": "departureName",
                "code": "departureCode",
                "platform": "departurePlatform",
                "time": 1749624040000,
                "utcOffset": "UTC+09:00"
            },
            "arrival": {
                "name": "arrivalName",
                "code": "arrivalCode",
                "platform": "arrivalPlatform",
                "time": 1749624040000,
                "utcOffset": "UTC+09:00"
            },
            "vehicleNumber": "vehicleNumber",
            "coachNumber": "coachNumber",
            "seatClass": "seatClass",
            "seatNumber": "seatNumber",
            "seatFacing": "seatFacing",
            "userType": "userType"
        }
    ]
}

Links

Linkable data which provides additional information in the following format.

JSON Format

Key

Type

Requirement

Description

count

Integer

Required

Size of links

info[]

Array of Objects

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"
	}]
}

Card Art Guide

Loyalty

Description

Type

bgImage + bgColor

bgImage only

Description

Display the bgImage and the bgColor in a predefined ratio.

Display bgImage fully

Description