Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
tutorials
blogintroduction smartphones have become an essential part of our everyday lives. users are continually searching for more convenient ways to perform their tasks on their smartphones, driving them toward services with greater usability. as smartphones advance, our lives become simpler. galaxy users have completely embraced the convenience of paying with samsung pay, and no longer carry physical payment cards. this led to the evolution of samsung pay into samsung wallet, incorporating biometric-authentication-based security solutions and adding various features to replace conventional wallets. since june 2022, samsung wallet has been expanding its service area based on the existing samsung pay launching countries. this article aims to introduce samsung wallet and guide you through the integration process of the "add to samsung wallet" feature, which allows you to digitize various content and offer them as wallet cards. notice this article introduces non-payment service cards. if you want to learn more about the payment service of samsung wallet, visit the samsung pay page. you can get information on online payment services such as in-app payments, web checkout, and w3c payments. add to samsung wallet service let's delve deeper into the "add to samsung wallet" feature. digitized content registered in samsung wallet comes in the form of cards called wallet cards. registering a wallet card is effortless: simply click the "add to samsung wallet" button, and the card is stored securely on users’ galaxy smartphones. "add to samsung wallet" button and wallet card notice the benefits of using wallet cards can be found in the commercial video forgetting can be awesome. wallet cards the "add to samsung wallet" service is an open platform that supports offering various types of content such as wallet cards. we are streamlining service integration with content providers across different regions and adding useful features. boarding pass event ticket loyalty gift card coupon id card generic card pay as you go (in progress) reservation (in progress) digital key (in progress) notice generic card supports unstructured forms of cards. be a samsung wallet partner partner onboarding to begin offering content through samsung wallet, you must first register as a partner on the samsung wallet partner portal. the integration process is detailed on the samsung developer portal. to join the samsung wallet partner portal, create a samsung account that is used as the service administrator. wallet card management once enrolled, you can create service cards on the wallet cards menu. each card is assigned a card id representing the service, and you can set the card type and linking information. you can manage cards according to their status – test or live. configuring wallet card notice after completing all required forms for the wallet card, click the launch button to request card activation. before providing the service to actual users, remember to turn off the 'test mode.' how to safely secure user data key generation and certificate request the registration process includes certificate exchange to securely transmit service data. refer to the diagram and developer guide, security key & certificate creation guide, to complete the certificate registration and partner enrollment smoothly. certificates exchange process ensuring data security to prevent forgery and leakage of user card data, secure tokenization processing is required. json web token (jwt), which includes encryption and signature, has a validity time basis for verification, thus providing enhanced security. in particular, when generating this token, the key and certificate previously obtained through the certificate exchange process are used. process of generating and verifying security tokens notice depending on how partners provide content services to users, you can choose how to deliver data to the samsung wallet service. two ways to transfer wallet card data add to samsung wallet interface provides two methods for partners to deliver users digital content as wallet cards. data transmit link the general way to transfer wallet card data is to organize tokenized data in the link attached to the button, and the card data is transmitted to the samsung wallet service when the user clicks the button. as long as samsung wallet support is confirmed, you can generate a link containing the user's card data and configure the "add to samsung wallet" button to run the link when pressed, either on an application or web page. data transmit process data fetch link another method to transfer wallet card data is to include only the refid, which represents the user's content, in the "add to samsung wallet" link and transmit it to the samsung wallet service. when a user clicks the "add to samsung wallet" button, samsung servers refer to the get card data api information set on the wallet card and retrieve user content using the received refid to complete registration. data fetch process this method is suitable for providing user's data through email or mms messages where static links cannot be avoided. there is an option to secure these static links. data fetch process for static links setting up data synchronization on the partner portal, you can set up the wallet card information and configure the server interaction api that the content provider needs to prepare. this api is an interface for managing card registrations, deletions, information, and state changes to sync with those registered on samsung wallet. register wallet cards when a user card is added to samsung wallet, samsung wallet servers use the send card state api to communicate card registration and deletion status to the content provider, allowing them to manage content that needs to be synchronized with samsung wallet. when a wallet card is registered, added event is sent to the partner's server update wallet cards changes to the synchronization target content can be notified to the samsung wallet service through the update notification api. here, the value that distinguishes each piece of content is the refid that the partner must provide when registering the users’ wallet card. through the get card data api, samsung wallet servers can check the latest content information any time. if updates occur on the partner's side, updated event notifications should be sent to the samsung server in case users withdraw content from the partner's side in case users delete cards from samsung wallet notice both servers should verify requests using the authorization header of the api request. this authorization token is in jwt format, familiar from card data security. effortless wallet card registration with just one click this feature is primarily composed of a link-connected button and can be provided through the content provider's application, web page, email, or mms message. various service channels javascript library for web developers we provide a javascript library and a user guide, implement the button, to help integrate your web pages. creating buttons and links in your app for configuring buttons in applications, utilize the button image resources. providing services via mms, email, or qr codes to provide services through fixed links, check out the details of the data fetch link. these static links can also be used by scanning qr codes. experience the service and practice you can experience service integration development using the codelab and use the testing tool to preregister the wallet cards created on the partner portal, which could be helpful. conclusion we've looked at how to provide digital content through the "add to samsung wallet" feature. we continuously update the guides on the developer portal, so please refer to them when preparing for integration. summary the "add to samsung wallet" service welcomes participation from content service partners and developers. for inquiries or technical support, please contact us through the form provided on the developer portal. i hope this post has been helpful, and now i'll conclude my writing here. thank you. this post was written based on the sdc23 korea session.
Choi, Jonghwa
Develop Samsung Wallet
docsamsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet 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" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "samsung bus", "applinkdata" "https //www samsung-bus com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet 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\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet 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 event tickets in wallet can provide additional information about the event and an alarm before the event time and expiration ticket cards support event commodities for performances, sports, movies, and entrance wallet card type wallet card subtype ticket performances, sports, movies, entrances, others -performances -movies -sports -entrances type value description attributes {fields} 1 title string 32 required 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 required url for main ticket image the file size should not exceed 512 kb 7 subtitle1 string 32 optional the auxiliary field which displays supporting information 8 logoimage string 256 required logo image url to be displayed in the card item the file size should not exceed 256 kb 9 logoimage darkurl string 256 required logo image url in dark mode the file size should not exceed 256 kb 10 logoimage lighturl string 256 required logo image url in light mode the file size should not exceed 256 kb 11 wideimage string 256 optional wide horizontal image url displayed on the card information screen the file size should not exceed 256 kb 12 providername string 32 required ticket provider name 13 providerviewlink string 512 optional link to additional information from the provider* see links format 14 classification string 16 optional classification of tickets use onetime, regular, or annual * default onetime 15 holdername string 64 optional name of card holders 16 idphoto string 20k optional holder’s photo image data encoded base64 17 idphoto format string 32 optional image file formate g , jpeg, png * unsupported image formats may exist 18 idphoto status string 16 optional status of the dataallowed value unchanged 19 grade string 32 optional ticket grade 20 seatclass string 32 optional seat class 21 entrance string 64 optional entrance gate 22 seatnumber string 256 optional seat location 23 seatlayoutimage string 256 optional url of the seat layout image the file size should not exceed 512 kb 24 issuedate long 13 required issue date epoch timestamp in milliseconds 25 reservationnumber string 32 required reservation number 26 user string 64 optional name of person who made the reservation 27 certification string 16 optional ticket certification e g ,r, as a film rating 28 reactivatableyn string 1 optional flag whether the card is able to activate an expired ticket temporarily either 'y' or 'n' * default 'n' 29 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n'* default 'n' 30 nonetworksupportyn string 1 optional set whether to support to open the wallet card under 'no network' status either 'y' or 'n' * default 'n' 31 startdate long 13 required start date displayed start date epoch timestamp in milliseconds 32 startdate utcoffset string 8 optional utc offset of start date time at the event location 33 enddate long 13 optional end date displayed end date epoch timestamp in milliseconds * if null, the card will expire in 10 hours from startdate 34 enddate utcoffset string 8 optional utc offset of start date time at the event location 35 person1 string 512 optional number of persons by category * see classification format 36 locations string 1024 optional list of locations where the card can be used * see location format 37 noticedesc string 5000 required text of the notice * long content is allowed * see additional information format 38 groupinfo1 string 64 optional the first common information with the same groupingid 39 groupinfo2 string 64 optional the second common information with the same groupingid *it is recommended to set groupinfo1 first 40 groupinfo3 string 64 optional the third common information with the same 'groupingid' *it is recommended to set groupinfo1, groupinfo2 first 41 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, website, facebook, youtube, or instagram* see the example below 42 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 43 applinklogo string 256 required app link image url the file size should not exceed 256 kb 44 applinkname string 32 required app link name 45 applinkdata string 256 required information about the partner app link 46 bgcolor string 8 optional color of the card art e g , #00ffff 47 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 48 blinkcolor string 8 optional color of the blinking effect in the indicator areae g , #00ffff 49 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 50 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 51 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 52 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 53 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 54 barcode interval string 4 optional update interval if support for dynamic updatesepoch timestamp in milliseconds 55 provision data string 512 optional elements to complete provisioning* see provisioning for details 56 provision interval string 16 optional update interval if support for dynamic updates epoch timestamp in milliseconds 57 relcoupon{i} title string 32 conditional coupon title * required if this ticket has a related couponi 1~3 58 relcoupon{i} subtitle string 32 optional coupon subtitlei 1~3 59 relcoupon{i} providername string 32 conditional coupon provider name * required if this ticket has a related coupon i 1~3 60 relcoupon{i} imagefilesrc string 256 optional coupon image url the file size should not exceed 256 kb i 1~3 61 relcoupon{i} noticedescription string 1024 optional text of the notice * long content is allowed * see additional information format i 1~3 62 relcoupon{i} notificationtime long 13 optional coupon exposure time epoch timestamp in milliseconds i 1~3 63 relcoupon{i} value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned i 1~3 64 relcoupon{i} serialtype string 32 required presentation typee g , serialnumber, barcode, * see barcode format i 1~3 65 relcoupon{i} ptformat string 32 conditional presentation formate g , barcode, qrcode, serial, * see barcode format i 1~3 66 relcoupon{i} ptsubformat string 32 conditional presentation sub-formate g , code_128, qr_code, * see barcode format i 1~3 67 relcoupon{i} 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 i 1~3 example { "card" { "type" "ticket", "subtype" "entrances", "data" [ { "refid" "ent-ticket-0613001", "createdat" 1686657600000, "updatedat" 1686657600000, "language" "en", "attributes" { "title" "galaxy land entrance ticket", "subtitle1" "standard", "classification" "annual", "groupingid" "group-0613001", "orderid" "ent-0613001", "mainimg" "https // /main png", "logoimage" "https // /logo png", "providername" "galaxy entertainment", "logoimage darkurl" "https // /logo-dark png", "issuedate" 1686657600000, "reservationnumber" "glx-0613-001", "startdate" 1686657600000, "enddate" 1718280000000, "holdername" "kim eunha", "idphoto data" "base64-encoded{image-file-data}", "idphoto format" "png", "grade" "family", "person1" "{\"person\" [{\"category\" \"adult\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"galaxy land central park\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice 1\",\"content\" [\"description 1-1\",\"description 1-2\"]},{\"title\" \"notice 2\",\"content\" [\"description 2-1\"]}]}", "groupinfo1" "adult 1", "groupinfo2" "standard", "groupinfo3" "family", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"facebook\" \"https //www facebook com/samsungwallet\" }", "applinkname" "galaxy ticket", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkdata com", "bgcolor" "#e86d1f", "fontcolor" "light", "blinkcolor" "#e86d1f", "barcode value" "serial-0613-001", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "갤럭시 랜드 입장권", "holdername" "김은하", "person1" "{\"person\" [{\"category\" \"어른\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"갤럭시 랜드 센트럴 파크\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"공지사항 1\",\"content\" [\"설명 1-1\",\"설명 1-2\"]},{\"title\" \"공지사항 2\",\"content\" [\"설명 2-1\"]}]}", "groupinfo1" "어른 1" } } ] } ] } } coupon 'coupon' cards support digitized redeemable voucher coupons in wallet for various channels can provide alarms before expiration and update usage status wallet card type wallet card subtype coupon others type value description attributes {fields} 1 title string 32 required main title e g , free coupon 2 orderid string 32 optional unique identifier for an order 3 mainimg string 256 required url for the main coupon image the file size should not exceed 512 kb 4 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 5 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 6 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 7 brandname string 32 optional brand name 8 expiry long 13 required expiration date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 9 issuedate long 13 required issue date epoch timestamp in milliseconds 10 redeemdate long 13 optional date when the coupon is used epoch timestamp in milliseconds 11 noticedesc string 5000 optional text of notice * html is supported 12 editableyn string 1 required flag whether the coupon can be modified either 'y' or 'n' 13 deletableyn string 1 required flag whether the coupon can be deleted either 'y' or 'n' 14 displayredeembuttonyn string 1 required flag whether the use completion button is displayed either 'y' or 'n' 15 notificationyn string 1 required flag whether a notification related to the coupon is delivered either 'y' or 'n' 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen captureeither 'y' or 'n'* default 'n' 20 barcode value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned 21 barcode value2 string 4096 conditional the secondary barcode data * required if ptformat is dualbarcode or dualbarcodeserial 22 barcode serialtype string 32 optional presentation type e g ,serialnumber, barcode * see barcode format 23 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 24 barcode ptsubformat string 32 optional presentation sub-format e g ,code_128, qr_code * see barcode format 25 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 26 balance string 50 optional 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 27 summaryurl string 256 optional webpage url that show details, such as balance 28 usermessage string 256 optional message to forward 29 sender string 64 optional name of sender 30 redeemurl string 256 optional link to redeem coupons example { "card" { "type" "coupon", "subtype" "others", "data" [ { "refid" "ref-230712-0001", "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" } } ] } } gift card 'gift card' cards support enrolling prepaid cards also known as gift certificate, gift voucher or gift token links urls to get balance and transactions history in real time is 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 partners portal wallet card type wallet card subtype giftcard others type value description attributes {fields} 1 title string 32 required main title e g , samsung gift card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all gift cards with this id 3 orderid string 36 optional a unique identifier for an order 4 subtitle1 string 32 optional the auxiliary field which displays supporting information 5 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 6 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 7 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 8 providername string 32 required gift card provider name 9 user string 64 optional name of person who holds the gift card 10 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n', the default value is 'n' 11 startdate long 13 optional start date display start date epoch timestamp in milliseconds 12 enddate long 13 optional end date display end date epoch timestamp in milliseconds 13 locations string 1024 optional list of locations where the gift card can be used * see location format 14 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 15 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, or website* see the example below 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 bgimage string 256 optional url for card art background image the recommended size for image resources is 888 x 555 px 20 mainimg string 256 optional url for gift card image the file size should not exceed 512 kb 21 bgcolor string 8 optional color of the card art e g ,#00ffff 22 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 23 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 24 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 25 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode *see barcode format 26 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial *see barcode format 27 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 28 barcode pin string 16 optional pin to show with a barcode 29 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 30 merchantid string 36 optional merchant identifier 31 merchantname string 32 optional merchant name to display 32 amount string 32 optional initial balance this is going to be shown as received e g , $1,000 33 balance string 32 optional remaining balance this is going to be shown as received e g , $1,000 34 summaryurl string 256 optional web url that show details, such as balance or transactions history example { "card" { "type" "giftcard", "subtype" "others", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "samsung gift 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 gift card provider", "user" "ms jane doe", "noticedesc" "<ul><li>gift card test</li></ul>", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "gift card link", "applinkdata" "https //www samsung com/", "bgcolor" "#0a1a4f", "fontcolor" "light", "blinkcolor" "#00ffff", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" } } ] } } 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 type value description attributes {fields} 1 title string 32 required main title e g ,samsung loyalty card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all loyalty cards with this id 3 groupingid string 36 optional identifier used to group related cards 4 orderid string 36 optional a unique identifier for an order 5 subtitle1 string 32 optional the auxiliary field which displays supporting information 6 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 7 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 8 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 9 providername string 32 required loyalty card provider name 10 startdate long 13 optional start date display start date epoch timestamp in milliseconds 11 enddate long 13 optional end date display end date epoch timestamp in milliseconds 12 locations string 1024 optional list of locations where the card can be used * see location format 13 noticedesc string 5000 optional text of notice *html supported 14 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 15 applinklogo string 256 required app link image url the file size should not exceed 256 kb 16 applinkname string 32 required app link name 17 applinkdata string 256 required information about the partner app link 18 bgimage string 256 optional background image for a card art the recommended size for image resources is 888 x 555 px 19 bgcolor string 8 optional color of the card art e g , #00ffff 20 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 21 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 22 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 23 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 24 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 25 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code *see barcode format 26 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 27 merchantid string 36 optional merchant identifier 28 merchantname string 32 optional merchant name to display 29 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 30 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 31 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" } } ] } } digital ids 'digital id' cards are used to present identification for employees, students, drivers, guests, etc wallet card type wallet card subtype idcard employees, nationals, students, drivers, guests, others -employees -nationals -students -drivers type value description attributes {fields} 1 title string 32 required main title of cardse g , commercial access, employee badge 2 holdername string 64 required name of card holders 3 secondholdername string 64 optional second name of card holders 4 organization string 64 optional organization of card holders belongingi e , name of department, division, affiliation, association or team, name of college or school 5 position string 64 optional position of card holderse g , engineer, 5th grade 6 identifier string 64 required unique id valuei e , unique card number assigned to the card holdere g , s 123 456 789 012 x 7 idnumber string 64 optional representative value for an idi e , id number, document number, card/roll number assigned by the institution or collegee g , b19mba115 8 address string 256 optional address of card holders 9 placeoflocation string 64 optional place of location associated with the cardholder 10 idphoto string 128k optional holder’s photo image data encoded base64the file size should not be greater than 128 kb 11 idphoto format string 32 optional image file formate g , jpeg, png* unsupported image formats may exist 12 idphoto status string 16 optional status of the dataallowed value unchanged 13 document string 1024k optional first document of identity 14 document format string 32 optional document format- allowed value pdf, jpeg, png 15 document status string 16 optional status of the dataallowed value unchanged 16 issuedate long 13 required issue date epoch timestamp in milliseconds 17 birthdate string 16 optional date of birth 18 gender string 16 optional gender of card holders 19 classification string 16 optional classified identity type 20 expiry long 13 optional expiry date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 21 contacts string 32 optional personal contact information such as phone number 22 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 23 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 24 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 25 logotext string 16 optional text as an alternative to logoimage 26 providername string 32 required content provider namei e , partnering institute 27 issuername string 32 optional place of issue or issuing authority name 28 extrainfo string 512 optional additional informationi e , bloodgroup, guardianname, govrefid* see additional information format 29 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 30 csinfo string 512 required providers’ customer service information using data in json format converted to escape string * allowed items call, email, or website* see the example below 31 privacymodeyn string 1 optional whether or not to require user authentication when using the card either ‘y’ or ‘n’* default ‘n’ 32 applinklogo string 256 optional app link image url the file size should not exceed 256 kb 33 applinkname string 32 optional app link name 34 applinkdata string 256 optional information about the partner app link 35 locations string 1024 optional list of locations where the card can be used* see location format 36 coverimage string 256 optional card cover image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 37 bgimage string 256 optional card background image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 38 bgcolor string 8 optional color of the card art support hex color code e g , #015aaa 39 fontcolor string 8 optional color of the font on the card art allowed value black, white 40 blinkcolor string 8 optional color of the blinking effect in the indicator area support hex color code e g , #015aaa 41 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n' * default 'n' 42 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 43 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 44 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, * see barcode format 45 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 46 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 * default l 47 barcode interval string 4 optional update interval if support for dynamic updates epoch timestamp in milliseconds 48 authentication string 64 optional authentication data which meets choose options * see authentication for details 49 provision data string 512 optional elements to complete provisioning* see provisioning for details 50 provision interval string 16 optional update interval if support for dynamic updatesepoch timestamp in milliseconds example { "card" { "type" "idcard", "subtype" "employees", "data" [ { "refid" "identitycard-bpo1r3e5-3313-0991-z404-sq12994414u8", "createdat" 1658385817000, "updatedat" 1658385817000, "language" "en", "attributes" { "title" "employee id card", "holdername" "kim samsung", "secondholdername" " samsung ", "organization" "digital wallet, mx", "position" "professional", "identifier" "2306070003", "idphoto" "{base64 encoded image data}", "idphoto format" "jpeg", "document" "{base64 encoded pdf data}", "document format" "pdf", "issuedate" "1658385817000", "expiry" "1765855665000", "logoimage" "https // /logo png", "providername" "samsung electronics", "extrainfo" "{\"count\" 1,\"info\" [{\"title\" \"shortcode\",\"content\" [\"404457\"]}]}", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"call\" \"555 123-4567\", \"email\" \"cs@email com\", \"website\" \"https //homepage com/cs\"}", "applinkname" "samsung electronics", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkorweblink com", "coverimage" "https // /card/cover png", "bgimage" "https // /card/background png", "fontcolor" "dark", "barcode value" "5728306720836720763017601", "barcode serialtype" "qrcode", "barcode ptformat" "qrcode", "barcode ptsubformat" "qr_code", "barcode interval" "300000", "authentication" "samsung@samsung com", "provision data" "{\"appkey\" \"abcdefaei;fadaf=\",\"telno\" \"01012345678\",\"provider\" \"sec\",\"id\" \"0000000000000000\",\"authkey\" \"a3b7fgj0ea\"}" }, "localization" [ { "language" "ko", "attributes" { "title" "사원증", "holdername" "김삼성", "secondholdername" "kim samsung", "providername" "삼성전자" } } ] } ] } } pay as you go 'pay as you go' card supports a system that pays just before using the cost for the service wallet card type wallet card subtype payasyougo evcharges, others type value description attributes {fields} 1 title string 32 required main title of cardse g , samsung charge card 2 subtitle1 string 32 optional the auxiliary field which displays supporting information 3 logoimage string 256 optional logo image url to be displayed in the card item the file size must not be greater than 256 kb 4 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 5 logoimage lighturl string 256 optional logo image url in light mode the file size must not be greater than 256 kb * if this value does not exist, logoimage will be substituted 6 providername string 32 optional content provider name 7 holdername string 64 optional name of card holders 8 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either ‘y’ or ‘n’, the default value is ‘n’ 9 startdate long 13 optional start date display start date epoch timestamp in milliseconds 10 enddate long 13 optional end date display end date epoch timestamp in milliseconds 11 locations string 1024 optional list of locations where the card can be used * see location format 12 noticedesc string 5000 required text of the benefits using data in json format converted to escape string* see additional information information format 13 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string * allowed items call, email, website, youtube, instagram, privacynotice, or termsandcondition* see the example below 14 applinklogo string 256 required app link image url the file size must not be greater than 256 kb 15 applinkname string 32 required app link name 16 applinkdata string 256 required information about the partner app link 17 bgimage string 256 optional url for card art background image 18 bgcolor string 8 optional color of the card art e g , #00ffff 19 fontcolor string 8 optional color of the font on the card art supported colors are white or black #000000 or #ffffff 20 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 21 barcode value string 4096 conditional barcode data, serial number * required if serialtype isn’t 'none' 22 barcode serialtype string 32 required presentation type barcode/qr/serial/none * see barcode format 23 barcode ptformat string 32 conditional presentation format * see barcode format* required if serialtype isn’t 'none' 24 barcode ptsubformat string 32 conditional 25 barcode pin string 16 optional pin to show with a barcode 26 identifier string 64 optional unique id value such as a membership number 27 grade string 32 optional grade value 28 authentication string 64 optional authentication data which meets choose options * see authentication for details 29 provision data string 512 optional elements to complete provisioning* see provisioning for details 30 transactions string 4096 optional transaction history * long content is allowed * see transactions format 31 summaryurl string 256 optional webpage url that show details, such as transactions example { "card" { "type" "payasyougo", "subtype" "evcharges", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "ev charge card", "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" "ev-samsung", "holdername" "ms jane doe", "preventcaptureyn" "y", "enddate" 1772574400000, "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"포인트 적립\",\"content\" [\"결제금액 1000원당 포인트가 적립됩니다 \"]},{\"title\" \"포인트 사용방법\",\"content\" [\"적립하신 포인트의 유효기간은 발생일로부터 5년입니다 \",\"유효기간이 지난 포인트는 소멸됩니다 \"]}]}", "csinfo" " {\"call\" \"0000-0000\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"privacynotice\" \"https //privacy samsungwallet com/\",\"termsandcondition\" \"https //www samsungwallet com/tnc\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "ev charge link", "applinkdata" "https //www samsungev com/", "bgcolor" "#0a1a4f", "fontcolor" "#ffffff", "blinkcolor" "#00ffff", "barcode value" "1234000067890000", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code", "barcode pin" "1234", "identifier" "ev-001", "grade" "prime", "authentication" "sdaiwegjhewoghewoihgewo", "provision data" "asd2hfih9gwejdahgi4uaewhgeo6whgo12ewhgoewahg1iawpriuq7hg5wel", "transactions" "{\"transactions\" [{\"date\" \"2023-09-10 12 00 00\",\"description\" \"ev-samsung suwon\"},{\"date\" \"2023-09-20 18 00 00\",\"description\" \"ev-samsung gangnam\"}]}" } } ] } } generic card 'generic card' is defined for registering various forms of cards that aren't defined as other types partners can customize the items on the generic card to display by connecting them with card data wallet card type wallet card subtype generic others type value description attributes {fields} 1 title string 32 required main title 2 subtitle string 32 optional the auxiliary field which displays supporting information 3 providername string 32 required provider name 4 eventid string 32 optional event identifier 5 groupingid string 32 optional identifier used to group related cards 6 startdate long 13 required start date display start date epoch timestamp in milliseconds 7 startdate relativenotitime string 4 optional the relative time from startdate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 8 enddate long 13 optional end date display end date epoch timestamp in milliseconds 9 enddate relativenotitime string 4 optional the relative time from enddate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 10 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 11 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 12 logoimage lighturl string 256 optional logo image url in light modethe file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 13 bgimage string 256 optional card background image urlthe file size should not exceed 512 kbthe recommended size for image resources is 888 x 555 px 14 text{i} string 64 optional text item i 1~12 15 image1 string 128k optional image itemuse only type 3 16 image1 lighturl string 256 optional image item in light mode 17 image1 darkurl string 256 optional image item in dark mode 18 image1 status string 16 optional image item status 19 serial{i} value string 4096 optional actual data that is delivered when the barcode/qr code is scanned i 1~2 20 serial{i} serialtype string 32 optional presentation typee g , serialnumber, barcode, * see barcode format 21 serial{i} ptformat string 32 optional presentation formate g , barcode, qrcode, serial, * see barcode format 22 serial{i} ptsubformat string 32 optional presentation sub-formate g , code_128, qr_code, * see barcode format 23 serial{i} 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 24 noticedesc string 1024 required notice description * long content is allowed * see additional information format 25 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string* allowed items calls, emails, or websites 26 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 27 bgcolor string 8 optional color of the card art e g , #00ffff 28 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 29 nonetworksupportyn string 1 optional sets whether to support to open the wallet card under 'no network' status either 'y' or 'n'* default 'n' 30 applinklogo string 256 required app link image url the file size should not exceed 256 kb 31 applinkname string 32 required app link name 32 applinkdata string 256 required information about the partner app link 33 locations string 1024 optional list of locations where the card can be used * see location format example { "card" { "type" "generic", "subtype" "others", "data" [ { "createdat" 1661745824345, "updatedat" 1661745824345, "language" "en", "refid" "refid-012345", "attributes" { "title" "samsung generic card", "subtitle" "personal members", "providername" "samsung", "startdate" 1661751274000, "startdate utcoffset" "utc+9", "enddate" 1761778000000, "enddate utcoffset" "utc+9", "enddate relativenotitime" "1440", "text1" "13047623", "text2" "silver", "text3" "suwon station branch", "text4" "031 000-1235", "image1" "https //www samsung com/images/image1 png", "image1 darkurl" "https //www samsung com/images/dark png", "image1 lighturl" "https //www samsung com/images/light png", "serial1 value" ">1180mm2241b7c 0000000000000298060000000000 0 090870907 ", "serial1 serialtype" "qrcode", "serial1 ptformat" "qrcode", "serial1 ptsubformat" "qr_code", "bgcolor" "#ff5000", "fontcolor" "dark", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"calls\" [{\"key\" \"emergency\",\"value\" \"82 123-4567\"},{\"key\" \"customer service\",\"value\" \"82 123-9876\"}],\"emails\" [{\"key\" \"cs team\",\"value\" \"cs@atwsample com\"}],\"websites\" [{\"key\" \"faq\",\"value\" \"https //atwhomepage com/faq\"},{\"key\" \"support\",\"value\" \"https //atwhomepage com/support\"}]}", "applinkdata" "https //www samsung com/", "applinklogo" "https //www samsung com/logo png", "applinkname" "samsung" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성 제네릭 카드", "subtitle" "개인 멤버스", "providername" "삼성", "text2" "실버 등급", "text3" "수원역점" } } ] } ] } }
Develop Samsung Wallet
docsamsungwallet addbutton function this function allows partners to explicitly render the samsung wallet api for the "verify with samsung wallet" web button samsungwallet addbutton { type "vww", cardid "card_id", cdata "cdata", partnercode "partner_code", targetid "target_id", buttonid "button_id", buttontype "btnvwsw", rdclickurl "rd_click_url", rdimpressionurl "rd_impression_url", } button attributes unlike the samsung wallet html tag, you must use camelcase in the button attributes in function case attribute type required description type string y service type default is "atw"• "atw" 'add to samsung wallet' • "vww" verify with samsung wallet' cardid string y wallet card identifier* value granted from the partners portal cdata string y encrypted card object json * this field needs to be encrypted * refer to security for more details partnercode string y partner code * value granted from the partners portal targetid string y dom document object model element id to place the "verify with samsung wallet" web button for samsung wallet buttonid string y dom element id for the "verify with samsung wallet" web button for samsung wallet buttontype string n "verify with samsung wallet" button type ["btnsw" / "btnvwsw", default btnsw] inline string n flag to display the "verify with samsung wallet" image button in one-line format default true one-line locale string n locale of the "verify with samsung wallet" image button rdclickurl string y url for logging a button click event * value granted from the partners portal rdimpressionurl string y url for logging a button impression event * value granted from the partners portal showforced string n flag to force the "verify with samsung wallet" button to be displayed default false mediatheme string n load the button’s resources from the media theme policy there are 4 themes default, inversion, lightonly, and darkonly default default *default load the button’s theme according to the prefers-color-scheme policy *inversion load the inverse of the default button’s theme *lightonly load the light theme of the default button *darkonly load the dark theme of the default button style object cssstyledeclaration n load the button with custom style onshowbutton function n callback handler function for the button’s on-show event onclickbutton function n callback handler function for the button’s on-click event if you register the handler function, you must return a callback or promise value usage of onclickbutton handler partners can choose whether to proceed with the next "verify with samsung wallet" step using a promise or a callback function, if they register a callback handler in onclickbutton we recommend that partner add the process of generating jwt cdata add cdata to options cdata to this handler, because of the cdata expiration time the function parameters are defined as follows attribute type required description options button attributes n attributes of the current button callback function n callback function to pass the flag to proceed default false promise resolve function n promise-resolved value to pass the flag to proceeddefault false callback to web button process from callback attributes for es5 by executing a callback function with a flag, you can proceed to the next 'verify with samsung wallet' process onclickbutton function options, callback { // todo partner's process callback flag } callback to web button process from returning promise for es6 by returning a promise with a resolving flag, you can proceed to the next ‘verify with samsung wallet’ process onclickbutton async options => { return new promise async resolve, reject => { // todo partner's process await resolve flag } } implementing vww button on the app this section explains how to implement an "verifying with samsung wallet" button in the partner’s app please download below sample code and refer it refer to android sample code data transmit link the most common and straightforward method is the data transmit link approach, which securely includes tokenized data in the atw link the atw link format for this method is as follows the name data transmit link has been changed from typical flow type value description url https //a swallet link/vww/v1/{cardid}#clip?cdata={cdata} path parameters cardid string required wallet card identifier issued from partner portal when the partner manager signs up for partner services and registers the wallet card they want to service hash path parameters #clip string required parameters for the hash link* the first letter is capitalized query parameters cdata string required actual payload data in basic json format to communicate between partners and samsung wallet this must be secured in jwt json web token format * refer to security for more details example https //a swallet link/vww/v1/1656147182764415319#clip?cdata=eyjjdhkioijkv1qilcjhbgcioijsinrpbwvzdgftcci6imnyzwf0zwqgdgltzsisinbhcnruzxjjrci6inbhcnruzxigsuqifq … … … … dn0_oz3xcr0juq3mlszliutxfotewnz0mqj7kinjysnm5xfwqt5vcn20peebelgux8vjxly4_9g4bhq-hd4o9poyutuawew yzdlmtfho -nycel3t0yznzad2kck_hrtwigeerhlgn6ydaq_fpfdslxsa3zjtnpg3wcuqew5cidpbpfswbqlropqepnawg5nlm3dkaa4a1dzazmbsr1bgzhrh_viknx3cy5mo0jnbexl_yiz5_wb379uyswumqipitzvg2ijyvfht17i4
Develop Samsung Wallet
docsamsungwallet@samsung com"} sim [{"uiccid" "abcderwyt","telno" "821012345678","isprimary" true},{"uiccid" "abcderwys","telno" "01012345679","isprimary" false}] otp {"otp" "947253"} token {"x-access-token" "7c8d38690d0e3b6aa077198abd2554a3a7940b52cf86bd690c1"}
Develop Samsung Wallet
docsamsungwallet addbutton function this function allows you to explicitly render the samsung wallet api for the "add to wallet" web button samsungwallet addbutton { cardid "card_id", cdata "cdata", partnercode "partner_code", targetid "target_id", buttonid "button_id", rdclickurl "rd_click_url", rdimpressionurl "rd_impression_url", } button attributes unlike the samsung wallet html tag, you must use camelcase in the button attributes in function case attributes type required description cardid string y wallet card identifier * value granted from the partners portal cdata string y encrypted card object json * this field needs to be encrypted * see security partnercode string y partner code * value granted from the partners portal targetid string y dom document object model element id to place the "add to wallet" web button for samsung wallet buttonid string y dom element id for the "add to wallet" web button for samsung wallet buttontype string n "add to wallet" button type "btnsw" and "btnatsw" default btnsw * see image resources inline string n flag to display the "add to wallet" image button in one-line format default true one-line locale string n locale of the "add to wallet" image button * see image resources rdclickurl string y url of logging a button click event * value granted from the partners portal rdimpressionurl string y url of logging a button impression event *value granted from the partners portal showforced string n flag to force the "add to wallet" button to be displayed default false mediatheme string n load the button’s resources from the media theme policy there are 4 themes default, inversion, lightonly, and darkonly default default *default load the button’s theme according to the prefers-color-scheme policy *inversion load the inverse of the default button’s theme *lightonly load the light theme of the default button *darkonly load the dark theme of the default button style object cssstyledeclaration n load the button with a custom style target string n option to choose button’s target name * default “wallet” onshowbutton function n callback handler function for the button’s on-show event onclickbutton function n callback handler function for the button’s on-click event if you register the handler function, you must return a callback or promise value * see usage of onclickbutton handler usage of onclickbutton handler you can choose whether to proceed with the next "add to wallet" step using a promise or a callback function, if you register a callback handler in onclickbutton we recommend that you add the process of generating jwt cdata add cdata to options cdata to this handler, because of the cdata expiration time the function parameters are defined as follows attributes type required description options button attributes n attributes of the current button callback function n callback function to pass the flag to proceed default false promise resolve function n promise-resolved value to pass the flag to proceed default false callback to web button process from callback attributes for es5 by executing a callback function with a flag, you can proceed to the next 'add to wallet' process onclickbutton function options, callback { // todo partner's process callback flag } callback to web button process from returning promise for es6 by returning a promise with a resolving flag, you can proceed to the next ‘add to wallet’ process onclickbutton async options => { return new promise async resolve, reject => { // todo partner's process await resolve flag } } importantthe card data token expires in 30 seconds after creation, so it needs to be created right after the user clicks the “add to wallet” button samsung wallet on the app the following outline explains how to implement the "add to wallet" button on a native application get button graphic resources from a repository depending on your service environment for more information, see image resources check availability by calling the "check service available devices" apo, then determine whether to show up the "add to wallet" button on the user device a if "available" on response has "true" -> support b if has "false" -> not support implement a jwt web link on the button triggered action app button reference app button on android sample code implementation public class walletcodesample { protected final static string tag = "samsungwalletsample"; protected static final string host = "https //api-us3 mpay samsung com"; protected static final string path = "wallet/cmn/v2 0/device/available"; /** * sample entry point of the usage */ public static void main { executors newsinglethreadexecutor submit -> { final string modelname = build model; final string countrycode = null; // optional country code iso_3166-2 final string servicetype = "wallet"; // required, fixed for samsung wallet final string partnercode = null; // required try { walletcodesample sample = new walletcodesample ; boolean iswalletsupported = sample checkwalletsupported modelname, countrycode, servicetype, partnercode ; string msg = string format "query for model %s , countrycode %s , servicetype %s , partnercode %s / wallet supported? %s ", modelname, countrycode, servicetype, partnercode, iswalletsupported ; log d tag, msg ; } catch exception e { // failed to check due to some reasons log e tag, e getmessage , e ; } } ; } /** * please see the wallet api spec document > '6 6 check service available devices' for more details * * @return true if wallet supported, otherwise false * @throws exception throws exception when it's not possible to get status due to any reasons */ public boolean checkwalletsupported @nonnull string modelname, @nullable string countrycode, @nonnull string servicetype, @nonnull string partnercode throws exception { if modelname == null || modelname isempty { log e tag, "model name is required parameter" ; throw new exception "something went wrong failed to get device model name " ; } if servicetype == null || servicetype isempty { log e tag, "servicetype is required parameter" ; throw new exception "something went wrong failed to get device servicetype " ; } if partnercode == null || partnercode isempty { log e tag, "partnercode is required parameter" ; throw new exception "something went wrong failed to get device partnercode " ; } string urlstring = makeurl modelname, countrycode, servicetype ; log i tag, "urlstring " + urlstring ; try { url url = new url urlstring ; httpurlconnection connection = httpurlconnection url openconnection ; connection setrequestproperty "partnercode", partnercode ; connection setrequestmethod "get" ; int responsecode = connection getresponsecode ; log i tag, "responsecode " + responsecode ; bufferedreader bufferedreader; if responsecode == 200 { bufferedreader = new bufferedreader new inputstreamreader connection getinputstream ; } else { bufferedreader = new bufferedreader new inputstreamreader connection geterrorstream ; } stringbuilder sb = new stringbuilder ; string inputline; while inputline = bufferedreader readline != null { log i tag, inputline ; sb append inputline ; } connection disconnect ; bufferedreader close ; // parse result jsonobject jsonobject = new jsonobject sb tostring ; string resultcode = jsonobject getstring "resultcode" ; string resultmessage = jsonobject getstring "resultmessage" ; if "0" equals resultcode && "success" equals resultmessage { return jsonobject getboolean "available" ; } else { throw new exception "something went wrong, resultcode " + resultcode + " , resultmessage " + resultmessage + " " ; } } catch ioexception e { log e tag, e getmessage , e ; throw new exception "something went wrong ioexception , " + e getmessage ; } catch jsonexception e { log e tag, e getmessage , e ; throw new exception "something went wrong, receive wrong formatted response, " + e getmessage ; } } protected string makeurl @nonnull string modelname, @nullable string countrycode, @nonnull string servicetype { stringbuilder sb = new stringbuilder ; sb append host append '/' ; sb append path ; sb append '?' append "servicetype" append '=' append servicetype ; sb append '&' append "modelname" append '=' append modelname ; if countrycode != null && !countrycode isempty { sb append '&' append "countrycode" append '=' append countrycode ; } return sb tostring ; } } importantthe card data token expires in 30 seconds after creation, so it needs to be created right after the user clicks the “add to wallet” button samsung wallet on an mms/email the following guides how to configure wallet code on email and mms messages implement the data fetch link process, including server apis you need to create a unique "reference id" for security reasons, make sure the "reference id" is complex enough that no important information can be inferred deliver a message including the web link through the chosen message platform for mms, the designed link shows up as a "smart suggestion" on samsung devices you can find a sample web link on the wallet cards guide on the partners portal for card data, samsung wallet asks the partner system to provide card details through the server api duplicate requests are prohibited on the same device link to “add to wallet” on an mms/email you can add an “add to wallet” web button even in environments where the javascript api cannot be loaded, such as sms or email these methods do not support controlling “add to wallet” button visibility mms link url link url attributes type required description url string y “add to wallet” link url * see [data transmit link][data transmit link] * see [data fetch link][data transmit link] email on web button link <a href="url"> <img src="image_url"> <img src="rd_impression_url" style="width 1px; height 1px;"> </a> attributes type required description url string y “add to wallet” link url * see [data transmit link][data transmit link] * see [data fetch link] [data transmit link] image_url string y button’s image resource url * see image resources rd_impression_url string y impressions logging url * value granted from the partners portal statistics service samsung wallet serves useful statistics data of the integrated service on the partners portal the data configured by making simple api calls for each event such as button impression and click these are necessary to provide better services as well notestatistics api sample code you can find actual code sample at wallet script guide section in ‘wallet cards’ menu on the partner portal event notification api https //us-rd mcsvc samsung com/statistics/{event}/addtowlt?{parameters}&utm_source=partner&utm_medium={channel} {event} for each event in the following situations - impression when the “add to wallet” button has been shown - click when the “add to wallet” button has been clicked {parameters} includes key factors to figure out the service {channel} - app "samsung wallet" button in a native application - web "samsung wallet" button on the web - email "samsung wallet" button in an email for details, please visit 'wallet cards' menu on the partner portal
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.