Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
tutorials mobile
blogwallet cards from the sidebar and then navigate to create wallet card. follow the instructions in the general information section to complete the form. select "loyalty card" from the wallet card template menu. select your location from the main (headquarters) location menu. if you get a "country not supported" error during a later phase, contact samsung developer support. after completing the form, save the card. all created cards are listed in the manage wallet card view. you can view, edit, and delete the card information from this view. finally, launch the card. card specification once a card is created in the wallet partners portal, the card can be implemented in the partner application so that the user can purchase and use it. to do so, implement the "add to samsung wallet" button in your application. for this purpose, generate a card data token and create a final url. this url is integrated with the "add to samsung wallet" button to add the card to samsung wallet. for generating a card data token, you need to define the wallet card data. the loyalty card follows the specification below. name description title required. the main title of the loyalty card. in the sample card, this field has the value "card title". eventid optional. the event id. use this id to find and process an action to an event to all loyalty cards with the same id. groupingid optional. identifier to group related cards. subtitle1 optional. an auxiliary field for showing supporting information about your card. logoimage optional. logo image displayed in the card item. the image size must be a maximum of 256 kb. logoimage.darkurl optional. logo image displayed in the card item in dark mode. the image size must be a maximum of 256 kb. logoimage.lighturl optional. logo image displayed in the card item in light mode. the image size must be a maximum of 256 kb. providername required. provider name for the loyalty card. startdate optional. card validity start date. the date format is an epoch timestamp in milliseconds. enddate optional. card validity end date. the date format is an epoch timestamp in milliseconds. locations optional. list of locations where the card can be used. this information can be used to provide location-based service and samsung wallet can use this information to show maps, place names and addresses. you can find more about the location field and the json format in the documentation. noticedesc optional. the notices section can be used for any additional information for your card. you can use html tags without any css or script in this field. for the test card, this field contains the following list: <ul> <li>loyalty card notice. <a href="https://www.samsung.com/">learn more.</a></li> <li>loyalty card notice.</li></ul> csinfo optional. customer service information visible to the card user. this information is stored as key-value pairs with the following keys that correspond with the categories of information shown to the user: callemail website applinklogo required. application link logo url applinkname required. application link name applinkdata required. application link destination url bgimage optional. background image for the card bgcolor optional. background color for the card. if you use bgcolor together with bgimage, they are displayed in a predefined ratio. to only display a background image, omit the bgcolor value. the following image shows the difference between a scenario where both bgimage and bgcolor are used (left) to one where only bgimage is used (right). fontcolor optional. font color on the card art. barcode.value optional. barcode data and serial number. barcode.serialtype optional. barcode presentation type. for more details, see the presentation types (serialtype) table. barcode.ptformat optional. barcode presentation format. you can find all supported presentation formats in the presentation formats (ptformat) table. barcode.ptsubformat optional. barcode format. some commonly used barcode formats are listed in the barcode formats (ptsubformat) table. barcode.errorcorrectionlevel optional. qr code error correction level. four error correction levels are available: l/m/q/h. merchantid optional. merchant identifier. use this field if you have merchant id. merchantname optional. merchant name. amount optional. total amount of points or initial balance. it is recommended to use a one-letter currency symbol. use any of these formats: $1,000 or 1,000p. balance optional. available points or remaining balance. use the same format as the amount field. card json example the card data must be in the json format and needs to follow the specific structure. the example below shows a card data sample that we have used to implement the loyalty card used in this content. modify the card data as per your card information. find more about the card data format in the wallet cards documentation. { "card": { "type": "loyalty", "subtype": "others", "data": [ { "refid": "9400ae65-751b-4327-866c-37e8c228f1c4", "createdat": 1672574400000, "updatedat": 1672574400000, "language": "en", "attributes": { "title": "card title", "eventid": "event-001", "groupingid": "group-001", "orderid": "order-001", "subtitle1": "card subtitle", "logoimage": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "logoimage.lighturl": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "logoimage.darkurl": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "providername": "provider name", "startdate": 1715533051242, "enddate": 1715833051242, "noticedesc": "<ul><li>loyalty card notice. <a href=\"https://www.samsung.com/\">learn more.</a></li><li>loyalty card notice.</li></ul>", "csinfo": "{\"website\":\"https://homepage.com/cs\",\"email\":\"cs@email.com\",\"call\":\"555 333 111\"}", "applinklogo": "https://play-lh.googleusercontent.com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname": "loyalty card link", "applinkdata": "www.samsung.com", "bgimage": "https://djcpagh05u38x.cloudfront.net/wlt/us/stg/x1iwgocnroqa5dmwpykfkq/qupknpwntmqt7letkgufag.png", "bgcolor": "#ffffff", "fontcolor": "#ffffff", "locations": "[{\"lat\":48.861614505643196,\"lng\":2.380811870098114,\"address\":\"38 rue saint-maur, 75011 paris\",\"name\":\"atelier des lumieres\"}]", "amount": "$1,000", "balance": "$100", "barcode.value": "cs16138353212584806754fg1802", "barcode.serialtype": "qrcode", "barcode.ptsubformat": "qr_code", "barcode.ptformat": "qrcodeserial", "barcode.errorcorrectionlevel": "m", "merchantid": "123344433", "merchantname": "merchantname" } } ] } } test with the add to wallet test tool once the card data specification details and the json structure of the loyalty card are established, we can test the "add to samsung wallet" functionality. first, we use the add to wallet test tool as this tool provides minimal card data in json format by default. after that, you can modify the json data and test the cards as you want. follow the instructions below to use the add to wallet test tool. for more details, refer to the add to wallet test tool documentation. sign in to the add to wallet test tool. enter the private key in the enter partner private key field. select the loyalty card we have created and then enter the json in the data field. finally add the card to samsung wallet. create jwt token if testing with add to wallet test tool is successful, you can implement the "add to samsung wallet" functionality with your application or website and handle the card data token generation process on your server. finally, generate the url and integrate it with the "add to samsung wallet" button. for more details on the implementation, check out our implementing "add to wallet" in an android application article, which is a complete guide to implementing the "add to samsung wallet" button on an android application and handling the card data token generation process on the server side. conclusion once the implementation of both the application and server is completed, you can integrate the loyalty card with your production server and perform a full test on the loyalty card. after the test is done, an admin will check and set the card as active. while implementing your card, follow the steps shown in seamlessly integrate "add to wallet" for samsung wallet, as this article focuses on the common mistakes. if you have any questions or face difficulties implementing the card, you can contact samsung developer support. related resources integrate "add to samsung wallet" button into partner services implementing "add to wallet" in an android application seamlessly integrate "add to wallet" for samsung wallet
M. A. Hasan Molla
Develop Samsung Wallet
docwallet card identifier issued from partner portal when the partner manager signs up for partner services and registers the wallet card they want to service refid string 32 required unique content identifier defined by the content provider query parameter n/a payload data string 3000 required jwt data encrypted with the public key information and card type if decrypted this data is decoded, and it has the following format information { “data” “xxxxxxxxxxx”, “card” {"type" "relyingparty", "subtype" "others", "designtype" "us-01" }} example post {partner server url}/rp/v1 0/{cardid}/{refid}/key content-type application/json { “data” “eyjjdhkioijbvvriiiwidmvyijoimiisinbhcnruzxjjzci6inrlc3qilcj1dgmioje3mtyymdyznjaxmtasimfszyi6iljtmju2in0 zxlkbgjttwlpaupctvrjnfiwtk5jaxdpwvd4bklqb2lvbe5ctfu5qljwqxrnaluysw4wllz5afaxs0fnmvjhbzbdn2nix2pydgtfoddqbnhrrmpfwkppcnnsuus4mnn0owvxtjeyvzvmoejax1d5ngvzmze3vdnad0pncmpwzwdzoek3avlcwwrlogj5lxfimjblu3ruc3jsszlpslfnn1fam2xzauxscxltb0vlbervd0fpatrmry1jukzwdvlrbxrintg3utd1zwnuq1lwwgzwalvecg01yxbfbdv3szm1ugz3d0dkrem2tmowz1awbtz3nk1kdl9mddbvzwc2mwzjagdbyny0emxmzju2cvyzm0t6zjdjbwvpbkjrnnpmsgutymfwyxhvzk5ld2htzwvjuzftv3larm1nvlj6mefsmnbxa0dqlvjkt1iza3vzavo0vjfidy1aq2iyvwvwyvdzru9nuedrvw1mbtfuowjwt1zmz1nuv1f0se5pvtfjyvrhtg1dwlpvqs5pmzzrd1g4wmjnq21wd3o2ll9kzehfvxnnbm13b1drddrmcu4xmuncauntsnutbwpyv2zrckxos0zvenbss085ckdxbudpz0pqukf1ntfsotryc2vivwdfwu9ns2rgr1vomwjhmhb3y0tfngtjmet2dkfowhprodn0azbjqzrot2f6vzlmovntt0rhmu9imefoavfzqzddevfqnndnlwflvk8waejwsejkmeduruh1z3exc21vvmxrbjblsnjqwhm4x3fwcnplekwtadfpcfk1aes1zug5q3nisms0aehcngnmwulkrujfz09bcgzxcgfumgfsvgfmodhhdxlqsgzhdgrma0tlwdv0q0rtajixse5tt0fhwtjvwlzrr0hxu0wzngjabtu5aezmnvdha0ljce9bmhlwue9tqznwtflkv2jsmm85lkfoedbvytvgetzudkxkvxvketazshc e07yyl7ior3885vykss5_q1icpx750uu2ge5sujsedx3dr_u0x4tse9_0nxm46dywnfuxruagfjdnjhibc707li9vi3xtyihwnweifydgv1qb9oddkyyzuahxqmjhvuqncdt6df2caqzf5qgmvqfmgse_t7ipu8vqfxe34do-skzj8ftduss2ecdanbqokchih3m39noubpfhcx68plpcw50dixlupxwegniu2t3co24yliaklgac669accxdqr34utvuqhtjt_ftxkahalzoa34_hj_s82fivixh1itd74uojzse7ibwya_kvysozavnmztz2th9cbwycvx8wa” } [response] type value description http status code 200 ok payload data string 3000 required jwt data encrypted with the data field types requested to the client for authentication of the mdl [result] http status code description 200 ok success 400 bad request requests cannot or will not be processed due to something that is perceived to be a client error 401 unauthorized authorization token is invalid or expired 500 internal server error the server encountered an unexpected condition that prevented it from fulfilling the request 503 service unavailable the server is not ready to handle the request send authentication data the data is encrypted according to the requested data and then transmitted along with the data card information [request] type value description method post url {partner server url}/rp/v1 0/{cardid}/{refid}/auth headers authorization string 1024 required credential token the token can have the prefix "bearer" as an authorization type, e g , bearer <credentials> * refer to authorization token for more details pathparameters cardid string 32 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 refid string 32 required unique content identifier defined by the content provider queryparameter n/a payload data string 3000 required jwt data encrypted with the public key information and card type if decrypted this data is decoded, it has the following format information { “data” “xxxxxxxxxxx”, “card” {"type" "idcard","subtype" "drivers","designtype" "us-01" }} example post {partner server url}/rp/v1 0/{cardid}/{refid}/auth content-type application/json { “data” “eyjjdhkioijbvvriiiwidmvyijoimiisinbhcnruzxjjzci6inrlc3qilcj1dgmioje3mtyymdyznjaxmtasimfszyi6iljtmju2in0 zxlkbgjttwlpaupctvrjnfiwtk5jaxdpwvd4bklqb2lvbe5ctfu5qljwqxrnaluysw4wllz5afaxs0fnmvjhbzbdn2nix2pydgtfoddqbnhrrmpfwkppcnnsuus4mnn0owvxtjeyvzvmoejax1d5ngvzmze3vdnad0pncmpwzwdzoek3avlcwwrlogj5lxfimjblu3ruc3jsszlpslfnn1fam2xzauxscxltb0vlbervd0fpatrmry1jukzwdvlrbxrintg3utd1zwnuq1lwwgzwalvecg01yxbfbdv3szm1ugz3d0dkrem2tmowz1awbtz3nk1kdl9mddbvzwc2mwzjagdbyny0emxmzju2cvyzm0t6zjdjbwvpbkjrnnpmsgutymfwyxhvzk5ld2htzwvjuzftv3larm1nvlj6mefsmnbxa0dqlvjkt1iza3vzavo0vjfidy1aq2iyvwvwyvdzru9nuedrvw1mbtfuowjwt1zmz1nuv1f0se5pvtfjyvrhtg1dwlpvqs5pmzzrd1g4wmjnq21wd3o2ll9kzehfvxnnbm13b1drddrmcu4xmuncauntsnutbwpyv2zrckxos0zvenbss085ckdxbudpz0pqukf1ntfsotryc2vivwdfwu9ns2rgr1vomwjhmhb3y0tfngtjmet2dkfowhprodn0azbjqzrot2f6vzlmovntt0rhmu9imefoavfzqzddevfqnndnlwflvk8waejwsejkmeduruh1z3exc21vvmxrbjblsnjqwhm4x3fwcnplekwtadfpcfk1aes1zug5q3nisms0aehcngnmwulkrujfz09bcgzxcgfumgfsvgfmodhhdxlqsgzhdgrma0tlwdv0q0rtajixse5tt0fhwtjvwlzrr0hxu0wzngjabtu5aezmnvdha0ljce9bmhlwue9tqznwtflkv2jsmm85lkfoedbvytvgetzudkxkvxvketazshc e07yyl7ior3885vykss5_q1icpx750uu2ge5sujsedx3dr_u0x4tse9_0nxm46dywnfuxruagfjdnjhibc707li9vi3xtyihwnweifydgv1qb9oddkyyzuahxqmjhvuqncdt6df2caqzf5qgmvqfmgse_t7ipu8vqfxe34do-skzj8ftduss2ecdanbqokchih3m39noubpfhcx68plpcw50dixlupxwegniu2t3co24yliaklgac669accxdqr34utvuqhtjt_ftxkahalzoa34_hj_s82fivixh1itd74uojzse7ibwya_kvysozavnmztz2th9cbwycvx8wa” } [response] type value description http status code 200 ok400 bad request [result] http status code description 200 ok success 400 bad request requests cannot or will not be processed due to somethingthat is perceived to be a client error 401 unauthorized authorization token is invalid or expired 500 internal server error the server encountered an unexpected condition that prevented it from fulfilling the request 503 service unavailable the server is not ready to handle the request code explanation based on the sample code jwt jws + jwe decryption between the wallet backed server and partner server 1 verify by generateing a jws using the body data // generate jws by the body data private static signedjwt parsejwt final string data { try { return signedjwt parse data ; } catch parseexception e { log error "parserjwt error class {}, error message {}", e getclass , e getmessage ; throw new customexception httpstatus internal_server_error, "parserjwt error" ; } } // verify jws using samsung public key public requestbody getrequestbody final keyring keyring { final signedjwt signedjwt = jwtutils verify keyring gettargetpublickey , encrypteddata, 60 * 10000 ; // verify and generate jws try { final string strbody = jwtutils getdecryptedpayloadfrom keyring getsourceprivatekey , jweobject parse signedjwt getpayload tostring ; // decryption jwe by the jws return objectmapper readvalue strbody, requestbody class ; // convert to data format requested by client } catch parseexception | jsonprocessingexception e { log error "getrequestbody {}", e getmessage ; throw new customexception httpstatus internal_server_error, "data body parse error" ; } } 2 decrypt the jwe using the jws jweobject parse signedjwt getpayload tostring public static string getdecryptedpayloadfrom final key privatekey, final jweobject data { try { data decrypt new rsadecrypter privatekey privatekey ; // decryption jwe using partner private key return data getpayload tostring ; } catch joseexception e { log error "joseexception message {}", e getmessage ; throw new customexception httpstatus internal_server_error, "getdecryptedpayloadfrom error" ; } } 3 convert to the format send by the client public requestbody getrequestbody final keyring keyring { final signedjwt signedjwt = jwtutils verify keyring gettargetpublickey , encrypteddata, 60 * 10000 ; // verify and generate jws try { final string strbody = jwtutils getdecryptedpayloadfrom keyring getsourceprivatekey , jweobject parse signedjwt getpayload tostring ; // decryption jwe by the jws return objectmapper readvalue strbody, requestbody class ; // convert to data format requested by client } catch parseexception | jsonprocessingexception e { log error "getrequestbody {}", e getmessage ; throw new customexception httpstatus internal_server_error, "data body parse error" ; } } generate mdocestablishment 1 generate rsa key per refid public class transactioncontext { private final keypair keypair; // rsa key private final byte[] clientengagement; // body data received through key api, base64url decoded value @equalsandhashcode exclude private int encryptmessagecounter = 0; // count value when encrypted @equalsandhashcode exclude private int decryptmessagecounter = 0; // count value when decrypted } private cache<string, transactioncontext> contextcache; // rsa key management per refid with memory cache // generate and store rsa key per refid only once upon first request public transactioncontext settransactioncontext final string key, final string base64encodedclientengagement { log info "base64encodedclientpublickey {}", base64encodedclientengagement ; this contextcache put key, new transactioncontext keyutils generatekeypair , base64utils decode base64encodedclientengagement getbytes ; return this gettransactioncontextby key ; } // part of retrieving ras key based on refid public transactioncontext gettransactioncontextby final string key { return optional ofnullable this contextcache getifpresent key orelsethrow -> { log info "{} is empty", key ; return new customexception httpstatus bad_request, "no key matching the refid" ; } ; } 2 create request field values @override public mono<list<string>> createrequest final partnerinputdto inputdto { final string mockdata = "{ \"doctype\" \"org iso 18013 5 1 mdl\", \"namespaces\" { \"org iso 18013 5 1\" { \"sex\" false, \"portrait\" false, \"given_name\" false, \"issue_date\" false, \"expiry_date\" false, \"family_name\" false, \"document_number\" false, \"issuing_authority\" false }, \"org iso 18013 5 1 aamva\" { \"dhs_compliance\" false, \"edl_credential\" false } } }"; return mono just collections singletonlist mockdata ; } 3 generate establishment @allargsconstructor public class establishment { private final transactioncontext context; // info of client public key , partner private key, public key private final list<string> strreqs; // data field information required for authentication to the client private final keyring keyring; // rsa key information for jwt jws + jwe encryption and decryption between wallet backed server and partner server } protected cborobject generate { final cborobject sessionestablishment = cborobject newmap ; sessionestablishment set e_reader_key, cborobject fromobjectandtag keyutils getereaderkey context , tag_size ; // generate onekey by public key in transactioncontext sessionestablishment set data, cborobject fromobject cipherutils encrypt context, generaterequestformat getrequestcborobjectsfrom strreqs ; // add request data field information for authentication return sessionestablishment; } generate the response value jwt jws + jwe 1 generate establishment with jwe public static string encryptedstringjwe final key publickey, final string data { // please enter samsung public key and establishment data final jweobject jwe = new jweobject new jweheader builder jwealgorithm rsa_oaep_256, encryptionmethod a128gcm build , new payload data ; try { jwe encrypt new rsaencrypter rsapublickey publickey ; return jwe serialize ; } catch joseexception e { log error "encryptedstringjwe exception message {}", e getmessage ; throw new customexception httpstatus internal_server_error, "encryptedstringjwe error" ; } } 2 generate jws by jwe public static string generatesignedstringjws final key privatekey, final key publickey, final string payload { // enter your partner’s public key, private key, and jwe data try { final jwsobject jwsobj = new jwsobject getdefaultjwsheader , new payload payload ; jwssigner signer = new rsassasigner new rsakey builder rsapublickey publickey privatekey rsaprivatekey privatekey build ; jwsobj sign signer ; return jwsobj serialize ; } catch joseexception e { log error "encryptedstringjws exception message {}", e getmessage ; throw new customexception httpstatus internal_server_error, "generatesignedstringjws error" ; } } 3 generate jwt jws + jwe public partneroutputdto topartneroutputdto { final cborobject generate = this generate ; final string establishment = base64 geturlencoder encodetostring generate encodetobytes ; final string strjwe = jwtutils encryptedstringjwe keyring gettargetpublickey , establishment ; final jwsheader jwsheader = jwtutils getdefaultjwsheader keyring getversion , keyring getcertificateid , "partnerid" ; return new partneroutputdto jwtutils generatesignedstringjws jwsheader, keyring getsourceprivatekey , keyring getsourcepublickey ,strjwe ; } authentication processing for values in data fields requested for authentication 1 retrieve transactioncontext value stored in cache using refid value @override public mono<transactioncontext> getcontext final partnerinputdto inputdto { return mono just this transactioncontextmanager gettransactioncontextby inputdto getrefid ; } 2 processes the decryption process of the request body data like jwt jws + jwe decryption between wallet backed server and partner server 3 generate mdocresponse public class mdocresponse { private final transactioncontext context; // managed tranactioncontext by refid private final byte[] data; // base64url decoded data after decrypting jwt jws + jwe data public mdocresponse final transactioncontext context, final string inputdto { this context = context; this data = base64utils decode inputdto getbytes standardcharsets utf_8 ; } } 4 get the field values requested for authentication from the data in mdocresponse public string getdata { // sessiondata = { // ? "data" bstr ; encrypted mdoc response or mdoc request // ? "status" uint ; status code // } final cborobject response = cborobject decodefrombytes data ; checktype response, cbortype map ; final cborobject data = response get data ; checktype data, cbortype bytestring ; return cborobject decodefrombytes isencryptedmode ? cipherutils decrypt this context, data getbytestring data getbytestring tojsonstring ; } 5 create a session value using the transactioncontext value managed by refid and then decrypt it private static byte[] processcipher final ciphermode ciphermode, final transactioncontext context, final byte[] bytes { // ciphermode encrypt or decrypt, bytes data passed by the client try { cipher cipher = cipher getinstance "aes/gcm/nopadding" ; final int counter = ciphermode encrypt == ciphermode ? context getencryptmessagecounter context getdecryptmessagecounter ; gcmparameterspec parameterspec = new gcmparameterspec 128, getsessionkeyiv ciphermode identifier, counter ; cipher init ciphermode ciphermode , getsecretkeyspec context, ciphermode info , parameterspec ; return cipher dofinal bytes ; } catch invalidalgorithmparameterexception | nosuchpaddingexception | illegalblocksizeexception | nosuchalgorithmexception | badpaddingexception | invalidkeyexception e { log error "error type {}, message {}", e getclass , e getmessage ; throw new customexception httpstatus internal_server_error, "processcipher error" ; } } 6 examining data received from the client @override public mono<void> authentication final string response { log info "response info {}", response ; return mono empty ; } wallet cards refer to the wallet cards this chapter defines wallet card data fields for the attributes object of each wallet card type the structure for configuring wallet cards follows the defined specification configuring the card data in the specified formatted json structure is required see the details for each card type type value description card object card object required card information card type string 16 required wallet card type card subtype string 16 required allet card sub type card data[] array of object required wallet card data containerallows up to 6 objects at once data[] refid string 32 required a unique content identifier definedby the content provider data[] createdat long 13 required data creation timestamp epoch timestamp in milliseconds utc±00 00 data[] updatedat long 13 required data creation timestamp epoch timestamp in milliseconds utc±00 00 data[] language string 8 required default content language code e g , en, ko data[] attributes object required card data attributes * refer to the following chapters for each type data[] attributes {fields} attribute fields by card type data[] localization[] array of object optional information for multilingual support localization[] language string 8 required multilingual content language code e g , en, ko, etc localization[] attributes {fields} for displaying a given language,‘data[] attributes’ can be replaced bylocalized versions * refer to the following chapters for each type example example card object { "card" { "type" "ticket", "subtype" "movies", "data" [{ "refid" "ref-20230304-001", "createdat" 1612660039000, "language" "en", "attributes" { "title" "samsung wallet", "mainimg" "https // /main png" *refer to wallet cards for each type }, "localization" [{ "language" "ko", "attributes" { "title" "삼성 월렛" } }] }] } } to ensure secure card data transmission, it must be tokenized in jwt format for this purpose, partner will need the certificate obtained using the partner's email account when signing up for the partner portal for detailed information on secure data tokenization, partners can refer to the security chapter *image resources provided by urls can be cached therefore, for the image resource to be replaced immediately, the corresponding url path must be changed relying party ‘relyingparty’ cards are used for verifier authentication when partners create the verify with samsung wallet button, they will need to create cdata this is the data spec included when creating the cdata of relayingparty type wallet card type wallet card subtype relyingparty others type value description attributes{fields} 1 logoimage string 256 required url of the logo image the file size must not be greater than 256 kb 2 logoimage darkurl string 256 required url of the logo image the file size must not be greater than 256 kb 3 logoimage lighturl string 256 required url of the logo image the file size must not be greater than 256 kb 4 fontcolor string 8 optional display color of the font during user authentication 5 providername string 32 required display name during user authentication 6 clienttype string 32 required information on whether the client operates as an application or web 7 clientpackagename string 32 required if the client is operating as an app, enter the package name, if it works on the web, enter a service name example { "card" { "type" "relyingparty", "subtype" "others", "data" [ { "refid" "0613001", "createdat" 1686657600000, "updatedat " 1686657600000, "language" "en", "attributes" { "logoimage" "https //samsung com", "logoimage darkurl" "https //dark samsung com", "logoimage lighturl" "https //light samsung com", "fontcolor" "black", "providername" "company name", "clienttype" "app", "clientpackagename" "com companyname app" } } ] } }
Develop Samsung Wallet
docwallet card and it has several formats based on the card type refer to the cdata generation sample code for details important the card data token expires in 30 seconds after creation, so it needs to be created right after the user clicks the "verify with samsung wallet” button for "verify with samsung wallet" integration, you may also need some base data you can find that and other necessary information on partners portal implementing vww button on the web this section explains how to implement an "verify with samsung wallet" button using javascript in a web view web button reference with importing api javascript if partner implement the "verify with samsung wallet" button using this script, the button is shown only on the devices that support samsung wallet to automatically parse <samsung wallet> html tags when the page is loaded, partners should include the following standard javascript <script src="https //us-cdn-gpp mcsvc samsung com/lib/wallet-card js" type="text/javascript"></script> partners can use these tags or javascript functions for the web button if they are rendering html and have proper partner permissions partners can also use the script by referring to the various attributes samsung wallet html tag the ‘samsung wallet’ namespace tag defines the placement and various attributes of the "verify with samsung wallet" web button for samsung wallet <samsung wallet type="vww" cardid="card_id" cdata="cdata" partnercode="partner_code" buttonid="button_id" buttontype="btnvwsw" rdclickurl="rd_click_url" rdimpressionurl="rd_impression_url"></samsung wallet> button attributes 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 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 string 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 samsungwallet 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
docwallet cards & attributes this chapter defines wallet card data fields for the attributes object of each wallet card type the structure for configuring wallet cards follows the defined specification configuring the card data in the specified formatted json structure is required see the details for each card type type value description card object card object required card information card type string 16 required wallet card type card subtype string 16 required wallet card sub type card data[] array of object required wallet card data containerallows up to 6 objects at once data[] refid string 32 required a unique content identifier defined by the content provider data[] createdat long 13 required data creation timestamp epoch timestamp in milliseconds * utc±00 00 data[] updatedat long 13 required data creation timestamp epoch timestamp in milliseconds * utc±00 00 data[] language string 8 required default content language code e g , en, ko data[] attributes object required attributes of card data * refer to the following chapters for each type data[] attributes {fields} attribute fields by card type data[] localization[] array of object optional information for multilingual support localization[] language string 8 required multilingual content language code e g , en, ko localization[] attributes {fields} for displaying a given language, ‘data[] attributes’ can be replaced by localized versions * refer to the following chapters for each type example example card object { "card" { "type" "ticket", "subtype" "movies", "data" [{ "refid" "ref-20230304-001", "createdat" 1612660039000, "language" "en", "attributes" { "title" "samsung wallet", "mainimg" "https // /main png" *refer to the following chapters for each type }, "localization" [{ "language" "ko", "attributes" { "title" "삼성 월렛" } }] }] } } to ensure secure transmission of card data, it must be tokenized in jwt format for this purpose, you will require the certificate obtained using the partner's email account when signing up for the partner portal for detailed information on secure data tokenization, please refer to the security chapter *image resources provided by urls can be cached therefore, in order for the image resource to be replaced immediately, the corresponding url path must be changed boarding pass 'boarding pass' cards support one-off transit types such as airlines, trains, buses, ferries, and etc boarding passes in wallet can remind the user of boarding time and help during check-in depending on the integration level, it can provide status information updates related to flights, and journeys, such as boarding gate changes or cancellations wallet card type wallet card subtype boardingpass airlines, trains, buses, others -airlines -buses -trains type value description attributes {fields} 1 title string 32 required 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 required url of the logo image the file size should not exceed than 256 kb 6 providerlogo darkurl string 256 required url of the logo image in dark mode the file size should not exceed 256 kb 7 providerlogo lighturl string 256 required url of the logo image in light mode the file size should not exceed 256 kb 8 providername string 32 required display name of the boarding pass provider 9 user string 64 conditional passenger name * required if subtype is airlines 10 usertype string 32 optional passenger type i e , classification of passengers, like child, adult 11 transitoperator string 64 optional operator name 12 vehiclenumber string 32 conditional transit or route number i e , flight number on airlines * required if subtype is airlines 13 transitclass string 32 optional transit class i e , premium class for buses 14 transitfare string 32 optional general fare or purchase fare 15 coachnumber string 16 optional identifier assigned to each individual carriage e g , b4 16 seatclass string 32 conditional seat class * required if subtype is airlines 17 seatnumber string 16 required individual number of the passenger seat e g , a-9, free 18 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 19 reservationnumber string 32 required number of the transit reservation 20 boardingpriority string 32 optional information on whether entitles the passenger to board before others i e , if the passengers are pregnant 21 boardingseqno string 32 optional boarding sequence number 22 boardinggroup string 8 optional value of boarding group or zone e g , b 23 boardingtime long 13 optional boarding time epoch timestamp in milliseconds 24 boardingtime utcoffset string 8 conditional utc offset of boarding time at the departure point * required if boardingtime exist 25 gateclosingtime long 13 optional boarding gate closing time epoch timestamp in milliseconds 26 gateclosingtime utcoffset string 8 conditional utc offset of gate closing time at the departure point * required if gateclosingtime exist 27 baggageallowance string 16 optional baggage allowance 28 departname string 32 conditional name of the departure point * required if subtype is airlines 29 departcode string 8 conditional code for the departure point * required if subtype is airlines 30 departterminal string 8 conditional terminal name of the departure point * required if subtype is airlines 31 departgate string 8 optional gate name of the departure point 32 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 33 estimatedoractualstartdate utcoffset string 8 conditional utc offset of time at the departure point * required if estimatedoractualstartdate exists 34 arrivename string 32 conditional name of the arrival point * required if subtype is airlines 35 arrivecode string 8 conditional code for the arrival point * required if subtype is airlines 36 arriveterminal string 8 optional terminal name of the arrival point 37 arrivegate string 8 optional gate name of the arrival point 38 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 39 estimatedoractualenddate utcoffset string 8 conditional utc offset of time at the arrival point * required if estimatedoractualenddate exists 40 locations string 1024 optional list of locations where the card can be used * see location format 41 bgcolor string 8 required color of the card art e g , #00ffff 42 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 43 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 44 applinklogo string 256 required app link image url the file size should not exceed 256 kb 45 applinkname string 32 required app link name 46 applinkdata string 256 required information about the partner app link 47 extrainfo string 512 optional additional information to be delivered to customers * see additional information format 48 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 49 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string* allowed items call, email, or website* see below for an example 50 displaytsaprecheckyn string 1 optional flag whether to display the tsa precheck image either ‘y’ or ‘n’ image size 68x20 / 140x20 51 membershipstatuslevel string 256 optional image url for the status level of the airline alliance or own membership i e , airline skyteam, star alliance image size 68x20 / 140x20 52 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 53 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 54 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, *see barcode format 55 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 56 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 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+09 00", "baggageallowance" "15kg", "departname" "seoul/incheon", "departcode" "inc", "departterminal" "c", "departgate" "1", "estimatedoractualstartdate" 1612660039000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "san francisco", "arrivecode" "sfo", "arriveterminal" "a", "arrivegate" "11", "estimatedoractualenddate" 1612660039000, "estimatedoractualenddate utcoffset" "utc-08 00", "bgcolor" "#ff00ff", "fontcolor" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "oo airline", "applinkdata" "https //www ooairline com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@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 idstatus string 64 optional card holder's statusex full time student, graduate, exchange, post-graduate, under-graduate 9 address string 256 optional address of card holders 10 placeoflocation string 64 optional place of location associated with the cardholder 11 idphoto string 128k optional holder’s photo image data encoded base64the file size should not be greater than 128 kb 12 idphoto format string 32 optional image file formate g , jpeg, png* unsupported image formats may exist 13 idphoto status string 16 optional status of the dataallowed value unchanged 14 document string 1024k optional first document of identity 15 document format string 32 optional document format- allowed value pdf, jpeg, png 16 document status string 16 optional status of the dataallowed value unchanged 17 issuedate long 13 required issue date epoch timestamp in milliseconds 18 birthdate string 16 optional date of birth 19 gender string 16 optional gender of card holders 20 classification string 16 optional classified identity type 21 expiry long 13 optional expiry date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 22 contacts string 32 optional personal contact information such as phone number 23 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 24 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 25 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 26 logotext string 16 optional text as an alternative to logoimage 27 providername string 32 required content provider namei e , partnering institute 28 issuername string 32 optional place of issue or issuing authority name 29 extrainfo string 512 optional additional informationi e , bloodgroup, guardianname, govrefid* see additional information format 30 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 31 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 32 privacymodeyn string 1 optional whether or not to require user authentication when using the card either ‘y’ or ‘n’* default ‘n’ 33 applinklogo string 256 optional app link image url the file size should not exceed 256 kb 34 applinkname string 32 optional app link name 35 applinkdata string 256 optional information about the partner app link 36 locations string 1024 optional list of locations where the card can be used* see location format 37 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 38 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 39 bgcolor string 8 optional color of the card art support hex color code e g , #015aaa 40 fontcolor string 8 optional color of the font on the card art allowed value black, white 41 blinkcolor string 8 optional color of the blinking effect in the indicator area support hex color code e g , #015aaa 42 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n' * default 'n' 43 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 44 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 45 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, * see barcode format 46 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 47 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 48 barcode interval string 4 optional update interval if support for dynamic updates epoch timestamp in milliseconds 49 authentication string 64 optional authentication data which meets choose options * see authentication for details 50 provision data string 512 optional elements to complete provisioning* see provisioning for details 51 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" "수원역점" } } ] } ] } }
tutorials mobile
blogwallet cards and then create wallet card. for more details about creating a card, check the manage wallet cards documentation. select generic card from the available card templates. modify the card information. when you have finished editing card information, launch the card to complete card setup. for more information on how to launch the card, see launch wallet cards. template editor use the template editor to modify the card template. from the "cardart" view, you can modify the card color, set a background image or change the logo image properties. from the "enlarge" view, you can modify the {{text1}} and {{text2}} labels. however, only the label itself can be changed in the template editor. to set the label value, you need to update the json file. from the "detail" view, you can modify the "textgroup" and "applink" properties. modify the text label according to your needs. it is also possible to add new text fields, with a maximum of 12 text fields allowed. after every modification, click save. finally, apply all changes by clicking apply. if you want to preview your changes, just click preview. add to samsung wallet now that the card has been created in the site, it is ready to be distributed to fulfill your business needs. implement the "add to samsung wallet" functionality to the platform where you are planning to distribute the cards. when users click "add to samsung wallet," the card is added to the wallet application on the user’s galaxy device. this functionality can be added through the application/mobile web, mms, or email. additionally, you can use a qr code on a computer web browser and kiosk. samsung provides a codelab guide for developers so that they can easily understand the implementation. for additional information on the codelab guide, read utilize the add to samsung wallet service for digital cards. further details can also be found in the implementing atw button documentation. card specifications to complete the "add to samsung wallet" button implementation, you must generate the card data token and create a final url. for more information, see add to samsung wallet. let’s start by reviewing the generic card specifications to generate the card data token. the generic card follows the specifications below. for more information on them, see the generic card section. name description title the main title of the generic card. in the sample card, the title is "card title." in the image below, the title is "insurance identification card." subtitle the subtitle of the generic card. in the sample card, it is "card subtitle". providername use this field to set the card provider name. for more information, check the card json example below. however, the provider name depends on your card type and should be modified accordingly. eventid enter an id as an event identifier. in case your card is prepaid, for example a gift card, or if you have vouchers to events, such as concerts, it is possible to define an event id. for instance: "event-001". groupingid enter an identifier to group related cards. startdate enter the starting date and the epoch timestamp in milliseconds. startdate.relativenotitime enter the amount of time within which you want to provide a notification to the user. the notification time is the relative time from the startdate. the value can be up to 2880 milliseconds. enddate enter the end date and the epoch timestamp in milliseconds. enddate.relativenotitime enter the amount of time within which you want to provide a notification to the user. the notification time is the relative time from the enddate. the value can be up to 2880 milliseconds. logoimage set the logo image url. the file size must not exceed 256 kb. also this image can be set from the template editor. logoimage.darkurl set the logo image url for the dark mode. the file size must not exceed 256 kb. logoimage.lighturl set the logo image url for the light mode. the file size must not exceed 256 kb. bgimage set the background image url. the file size must not exceed 512 kb. text{i} set the label-text value that should be displayed for each field containing the details of your card. the label is defined in the template editor, shown in the image below. to set the value of the label, update the json file. image{i} enter the image url, such as: "https://www.samsung.com/images/image1.png". this url is just an example, you must update it according to your needs. this field only works in generic card type3. we have used a type1 card in the example. so this field in the example json has no effect on the card. you can find all three card type sample uis here. image{i}.lighturl enter the image url in light mode, such as: "https://www.samsung.com/images/light.png". this url is just an example, you must update it according to your needs. image{i}.darkurl enter the image url in dark mode, such as: "https://www.samsung.com/images/dark.png". this url is just an example, you must update it according to your needs. serial{i} set the serial for barcode or qr code. serial{i}.serialtype serial presentation type. for more information on the presentation types (serialtype), see references. serial{i}.ptformat set the presentation format. for more details on the presentation formats (ptformat), see references. serial{i}.ptsubformat set the presentation subformat here. for more details on the barcode formats (ptsubformat), see references. serial{i}.errorcorrectionlevel set the error correction levels in this field. the amount of redundancy or error correction data included in the code varies. qr codes offer four levels of error correction: l, m, q, and h. the qr field looks like the following in your card: privacymodeyn set the user authentication if required. set the value to "y" or "n" bgcolor set the card art color. fontcolor set the card art font color. nonetworksupportyn set the value to "y" to open the wallet card when under the "no network" status. otherwise, set the value to "n" noticedesc set the the notice description here. see the image below of how it is added to card. applinklogo add the application link logo url in this field. applinkname add the application link name in this field. applinkdata add the application link url in this field. locations list of locations where the card will be used. this information can be used to provide location-based services. samsung wallet can use this information to show maps, names of places, and addresses. for more information on the locations field and json format, check references. card json example in previous sections, you have learned about the card specifications. next, let’s implement the generic card fields according to your needs. in this section, as the aim is to create an insurance card, you must use the fields accordingly. samsung provides a specifically formatted json structure. you need to configure the card data objects within the structure’s data array. for more details, see the generic card section. { "card": { "type": "generic", "subtype": "others", "data": [ { "createdat": 1709712961000, "updatedat": 1709712961000, "language": "en ", "refid": "933533e1-9284-461c-905f-bc177526a8d1", "attributes": { "title": "insurance identification card", "subtitle": "insurance card", "providername": "samsung insurance co.", "eventid": "1", "groupingid":"1", "startdate": 1731299205000, "startdate.relativenotitime": 500, "enddate": 1731320805000, "enddate.relativenotitime": 400, "logoimage": "https://us-cdn-gpp.stg.mcsvc.samsung.com/mcp25/resource/2023/12/20/55ea769f-d14d-4c47-94cc-50cade36cdd9.png", "logoimage.darkurl": "https://us-cdn-gpp.stg.mcsvc.samsung.com/mcp25/resource/2023/12/20/55ea769f-d14d-4c47-94cc-50cade36cdd9.png", "logoimage.lighturl": "https://us-cdn-gpp.stg.mcsvc.samsung.com/mcp25/resource/2023/12/20/55ea769f-d14d-4c47-94cc-50cade36cdd9.png", "bgimage": "", "text1": "1234567", "text2": "samsung insurance co.", "text3": "jaqueline m", "text4": "samsung motors 2014 galaxy5", "text5": "11sam23sung3t", "text6": "(031)000-1235", "image1": "https://us-cdn-gpp.mcsvc.samsung.com/mcp25/resource/2024/3/5/b9445e3f-2ef5-4d81-9fca-b7a8a7cd599f.png", "image1.darkurl": "https://us-cdn-gpp.mcsvc.samsung.com/mcp25/resource/2024/3/5/b9445e3f-2ef5-4d81-9fca-b7a8a7cd599f.png", "image1.lighturl": "https://us-cdn-gpp.mcsvc.samsung.com/mcp25/resource/2024/3/5/b9445e3f-2ef5-4d81-9fca-b7a8a7cd599f.png", "serial1.value": ">1180mm2241b7c 0000000000000298060000000000 0 090870907 ", "serial1.serialtype": "qrcode", "serial1.ptformat": "qrcode", "serial1.ptsubformat": "qr_code", "serial1.errorcorrectionlevel": "m", "privacymodeyn": "y", "bgcolor": "#3396ff", "fontcolor": "#ffffff", "nonetworksupportyn": "n", "noticedesc": "{\"count\":2,\"info\":[{\"title\":\"notice1\",\"content\":[\"description1\",\"description2\"]},{\"title\":\"notice2\",\"content\":[\"description1\",\"description2\"]}]}", "applinklogo": "https://www.samsung.com/logo.png", "applinkdata": "https://www.samsung.com/", "applinkname": "samsung insurance co.", "locations": "[{\"lat\": 37.2573276, \"lng\": 127.0528215, \"address\": \"suwon\", \"name\": \"digital city\"}]" } } ] } } generic card testing with the "add to wallet" test tool now, you can test the generic card with the "add to wallet" test tool provided by samsung. just follow these steps: sign in to the add to wallet test tool. for more information, see the samsung wallet test tool. enter the private key in the "enter partner private key" field. in this tool, you find all cards that you have created from the samsung wallet partner site in the "select card" section. for more information, see the samsung wallet partner site. select the generic card that you have just created. now select json from the data field and modify the existing json data fields according to the card specification details. after modifying the json data fields, check if the json is valid. finally, if the private key is valid, the "add to samsung wallet" button becomes active at the bottom of the page. then, just click add to samsung wallet to finish adding the generic card. if you use the provided example json and add the card to the wallet, the card looks like the following: server integration in this step, server configuration is needed because the generated jwt token expires after 30 seconds. developers are advised to only generate this token after a user has clicked the "add to wallet" button. as you have already performed testing with the "add to wallet" test tool, you need to configure your server. for more information on the implementation of both the "add to samsung wallet" button and server-side logic, see implementing "add to wallet" in an android application. this article explains how you can distribute your card with your android application and how to generate the jwt token at runtime, after pressing the "add to samsung wallet" button. conclusion you have now learned the basics for how to set up a generic card and test it for your business needs. in case you have further questions, contact samsung developer support. related resources utilize the add to samsung wallet service for digital cards introduce loyalty cards to your application with samsung wallet implementing "add to wallet" in an android application seamlessly integrate "add to wallet" for samsung wallet
M. A. Hasan Molla
Develop Samsung Wallet
docwallet cards and monitor performance with the wallet partners portal
Develop Samsung Wallet
webwallet cards) to samsung wallet mobassir ahsan may 15, 2024 how can we help you? faq search frequently asked questions by keywords. join the forum visit the forum to ask questions and exchange ideas with other developers. get support submit a 1:1 support request and receive a response within 2 business days.
Develop Samsung Wallet
docwallet card as the 'relying party' type in wallet portal step2 select app2app or web2app select the integration model app2app or web2app follow steps listed in each subsection implement functions implement verify with samsung wallet follow steps listed in implementing vww button app2app implement partner app with rp sdk follow steps listed in the app2app sdk integration specs web2app implement server apis follow steps listed in the web2app api integration specs step3 test 'verify with samsung wallet' function and release the function to user test overall 'verify with samsung wallet' function remove test mode in wallet portal after test is done expose the 'verify with samsung wallet' function to the user in partner side
featured
blogwallet cards https://developer.samsung.com/wallet/manage.html step 3. integrate “add to samsung wallet” to your service https://developer.samsung.com/wallet/api/overview.html if you are in a country where the event ticket menu is not supported on galaxy devices, contact us through developer support and we will help you as quickly as possible.
Hye-In Min
Develop Samsung Wallet
docwallet cards result eyjrawqioijxtfquufvcs0vziiwizw5jijoiqteyoeddtsisimfszyi6iljtqtffnsj9 abo_ci81btj2d1a8tcgkfwbx9wpri4tkhhzwms8swct_2nnzhasi_nklmj3wnkm5gwaouny14zx_6eozhj6tdiicuq-rairs6woesu8xa2dt1sc5l17wu9wdsgok4anj0kiunii4pler3d-4fox1hx1fok9siwwqqfql4vnqg3he-i4j6cywoybphznybmkyynkiqfczl6lbttehc4tdaorpkwra3vmb0bbz5nyzf1axzfk-17tz0gfhs82a7gl9rej1k5b10_2qfgmhttffvcyytmkv3inmahq0b48l3sk1oppmfcuqigymvludbg_qwdnbl9eilinojjt8ar2nua zviyghusi5fb2rl2 gm5ivizrqqdr8npk1n2qreyai4md-fisfwtbbbgebhnhjmnu-c_o1yuyrvdhcm0ki_rvcdnzkdlcp_g7shskmroyin3bi92qgtkfh2v4y-kcug2dvgv9uiv3oxawvlikfcntmzizj3thv_fue7jrnrbwf2xmviwsqo5b0lmouskbhuhasqilre0rtc1fgn03qfe_e-b87vht5en2pnbydjv-6_8g3aessyodvhyzyayonlxw_kwqif-i5auwfiigk5lgvmuz9dsl6-qkgyiz5pl9nyydjjjpilibtualyvzb1ch-gskweuhiml62zr-chz2ado8vn0sroccjhcax6pbsp3x6fhyxhr65bjzan4lmdfsskn92bcfyclx8j_pgrlm4vui_-kx1lwparkwrtyxmebkmj-2w8numrnnpgt2erlo_hvtz8xh1kopvqjldjdg_qqfu_oewo3hvunkgqeu3qhi6eywvarb7ozsisz-f95o7k-kqtjhfbwz_yra2nxd2bcgc9ua966_9uq4ombwa-8fccawpxyyu4vzbz_ycv25j8grdqhhtw6n9tkzy4nu07jit4ccofvu5n_gsyn1qowd11-_lmk8amf-l5ddipvrun7dealjd8me4nsaakeslqfkz_sddsu0-05icfkm33quqp6fzn5ocy6dmn5kzbvqxzhghcg_a_k1xqqlx_kupl4jsaxcnciuyptdqbc0hxxwuiyrm3tcde6picymgcbpkc205niyld-6en43di4ykc029yqx8rsldoaa6rwvp-zehdkxynyilja-_8fw4ioqp6vk98ajz5t-ajqdk1h6n_opt-zcjkjzz-7r2x07bsa_5ng7iwambrsv1defxhiyv-esce1meif-na_411hgpja-gwczp_wsswlqra0rpdq208ly70xppu4h_3eh_6q8cy5yhhns93vfuo0nsqfniker25zwnid39zoiyj_de9gzjawxa3k0tprpn5mfdpxvtd0-ro4oqi34ab62-rubcdydsmtggihzy3shlgtyafrbzhmpmdkauoj9buirasqpnr4nahfq_s1m1uy5peeq3j0bozmcc4uasnqqnrrelqm8bkfqi41ggjrjm9uvkcr-pmfonsheoqjmce6zkua1qtoefxycdfoejbjqdbcycnoqgugodlqn2-3mkggrpvqvyaolomykc_sl8kpdvjxntkggzqb9vnlnlq9_fy3hmyor0zeexytajfua-4ilsfkg3crqkx3sccsp-w6rf7vfzx5vdhqbhfzbhbuxypfj1bdmis_w-xqdvr1kgblzmsw9grbwm2mk8rt9qpzinhcaqfv2dqagqth4vyuccq0mjcs5qgnbkwdiggvxfk7bhwhk2jrw3k4egjqna9lssnhcjhqz69m16ivbffktnz5ot0l-npkcqeifia-rjmwyy6beodzi8s7s4l4yvlmvjjidujxkb7zsqusvrvizpljmk1rsbvgww7rfojlci9ed-mhpsmxvepj2uxezxu95z_vx7i8xgszxmlwrmsi0eepa5tl7gqfxfimtv4v_o8rjiipqtdjmkenkflnvkn8wio7nosfyak1gplxkpr2scieltcirpweu_4y56yq3wxbvnwcax7yyjytubirk30znw84omyyljc67wntybeqi3ty1vz6wxraenn_dnwiku-ry_bvc9bjwzpgdnpzdtdqndhijleyk9zhzcwvjhvom7vms4cljs6ndqvm9yeilk55h-ejn22-1n1u6pmjeyfbvty0zfrf57sidtcitseejmhbm1uqdsk3rpfxv2hc0dyy9ok7uasdsifwhkczmue4qyurd3y4wvzhjjaprxqeqojfavz-vt-331jvajgkziifmpuyfck-kyrqbq193uya9sy6e-7ereid3cy7gylp9-tfsugobpulnydieamtqi1zaepwjkjqs9ljofdoojhxbqzy0-spitglnbmtuxpxqh6phh34vdb2fcgjttc8h1vp3_a0lvxxzumdu3jypc9ltqmxxg7xz4h4uqrvis2qm3xqwub1uto9syhfnpf16h0-u8bqdofg-yyba-qn_awn4ufs2ftfy-7yd1isp0g31lifmorplehz0pcgefo-mayacxsvgioptn67enmwe_grdwkzv27deocztmcn_fb7qvtdsle881rfz7lrhmitiuitdo4e0fkwuaz1cohrbpbhzmg30tljbxydb-lfq74rxfdc1eobj0vpcdaxomya9eoxcnt70tti16fr3lxjdysgqv_ihtfkdaummfyojjh_w9zagiwb2uxmhng0a3mpt8r80hzbppvh3hsb2uezww8aqtlmkalqf0g6nzqm181z46gnkz7w3h8a29-yci0ypz_m0pofihnwjrendjkew6azodehwyupsno7y93qdc8khhpzb84bkahbc2sye8wgvgmrhfiwsigfht_g3m8nlt3vfasqe98two0tzu3k72kmod8khdw6xq6oalxoba1m9wfi51wmjji8yr4ty-7pqdc51ombxsqurao0-6puja5dufuioq3yzm0iwr1yjciqaofp-xwn9crh287vjzhw2s4ges8s-wuda9yu61u3b1pwr0fyseouzquay_t3qkziaghvz0a2nefdy2wktmaonidqtsku8rhpknqalrc_ydnvyqooxnrdwjrxxilutvlaaqmygtl0zessrvpkh4inkiu0ikbdceqvnlcjqnuymc5u_dtic-pb7e9h4zwxm3talmlzoc-v1u0shzaqok3tvixa9uy9i3qvpz1realwg7w1yqquhpd-6pgolbddfqwxekb43jtry3wnxjizcgzoqwiuvpdhpzm0cyfzlx71cbcpyc3lkg_pduwkb2qjv2hjodusvstv8 bv9p-aoait1mfijswzevsg jws format jws header jws header requirement description alg required cryptographic algorithm used to generate signature e g , rs256 cty required payload content type set as "card" ver required token version set as 3 certificateid required certificate identifier based on a csr during onboarding 4 digits alphanumeric partnerid required partner identifier utc required creation time to prevent repeated use, the token expires after a certain period of time unix timestamp in milliseconds * time offset from utc of +00 00 jws payload jws payload requirement description jwe compact serialization required contains base64url jwe value jws signature jws signature requirement description jws signature required base64url signature of base64url utf8 jws header + ' ' + base64url jws payload jws example base64url utf8 jws header +' ' + base64url jws payload + ' ' + base64url jws signature jws header {"cty" "card","ver" 3,”certificateid” ”ymtt”,"partnerid" "1234567890","utc" 1631776245876,"alg" "rs256"} jws payload jwe result result eyjjdhkioijqqvntiiwidmvyijoxlcjwyxj0bmvyswqioiixmjm0nty3odkwiiwidxrjijoxnjm1odq1odu2mjq0lcjhbgcioijsuzi1niisimtpzci6ilbuti5qukllrvkifq zxlkcmfxuwlpaupyvezrdvvgvkntmfzaswl3avpxnwpjam9puvrfeu9fzeruu0lzsw1gc1p5stzjbepuuvrgzk5tsjkuqujpx0npodfcdeoyzdfhofrdz0tmv0j4ovdwukk0vgtosfp3bvm4c3djdf8ybk5asefzsv9us0xtajn3bktnnwd3yw9vbnkxnfpyxzzfb1posjzuzelpy1vrlxjhsvjznndvrvn1ofhbmmrumxndnwwxn3d1ovdkc2dpszrhbkows0lvtkljnfbmzvizzc00zm9ymuh4mwzvazlzsxdxcxfgcww0dm5xzznors1pneo2y3lxt1lccgh6tllctut5eu5rsxfgy3psnmxivfrfagm0verbt3jqs1dyytnwtuiwqkj6nu55ekyxyxh6rmstmtd0wjbhzmhtodjbn0dmovjfajflnuixmf8ycwzhbwhudgzgvmn5wvrns3yzsw5nyuhrmgi0oewzu0sxb1bqbuzddxfpz1lnvkxvrgjnx1fxzg5cbdllswxjbk9qanq4qxiytlvbllp2axlhsfvtatvgyjjsbdiuz201axzpenjruwrsoe5qszfomnfsrxlbstrnrc1gsvnmv1rcqkjnrwjotmhqtw51lwnfbzfzvvlsdmroq20ws2lfcnzjre5as0rmy1bfzzdzafnrtvjvwwlum2jjotjxz3rrrmgyvjrzlwtdducyrhzhvjlvsvyzb3hhv3zssutmy050bvppwmozvghwx0zvrtdkck5yyndmmlhnvkl3c1fvnwiwbg1vvxnlykh1sgfzculsukuwunrdmwznbjazcuzfx0utqjg3dmh0nuvumlbuqllesnytnl84zznhzxntew9kdkh5ellhww9uthhxx0txcwlglwk1qvv3rmljz0s1tgdwbvv6ourtbdytuutnwwl6nxbsow55ewrkampwswxpynr1yuxzdnpcmunilwdza3dfvwhptww2mlpslunoejjbzg84vm4wu1jvq2nksgnhwdzqqlnqm3g2rmh5wehynjvcslpbbjrsturmu3nltjkyymngewnmwdhkx3bnukxnnfzvsv8ts3gxbfdwqxjrd1j0wxhtrwjltuotmnc4tlvnuk5uced0mkvstg9fafz0wjhyadfrb3b2cwpmzgpkr19rcwzvx09fv08zshz1tkthuwv1m1fostzfevd2yxjin09ac0lzei1gotvpn0sts1f0smhmqld6x1lyqtjoeeqyqmnnyzl1qtk2nl85dve0b01cd0etoezjy0fxuhhzwvu0dlpcel95y1yynwo4r3jkcuhivhc2bjlus1p5ne51mddqsvq0y0nvrlz1nu5fr3n5bjfxb1demtetx2xnazhhtuyttdvkrglwdnj1bjderwfsskq4twu0tnnbqwtfu0xrzkt6x3nkzfn1mc0wnwljzkttmznxvvfqnmz6bjvpy1k2rg1unwtaqlzrwfpiz0hdr19bx0sxeffrbfhfa3vqtdrku0f4q05davvzufrecwjjmeh4whdvavlyttn0q0rlnnbpq3ltr0niuetdmja1tml5beqtnmvondnkstr5s0mwmjlzuxg4clnmre9bqtzsv3zwlvpfsgrlehloeulssketxzhgdzrpt3fwnnzlothbalo1vc1halfeszfonm5fb3b0lvpdsmtkwnotn3iyeda3qlnhxzvuzzdpd2ftqljtdjfkzuz4ael5vi1fc0nlmu1fawytbmffndexaedwsketr3ddenbfd3ntv2xxcmewulbectiwogxznzbyufb1nehfm0vixzzxogn5nvlosg5totnwzlvpme5tuwzoautluji1endosuqzoxpvaxlqx2rlowdaamfxwgezazbuuhjqbjvnzmrwwfzurdatcm80b3fjmzrhyjyylxjvqknkwwrzbvrhz0liwlkzc0hmr3r5qwzyqnpitvbnretbvu9koujvsvjhu3fwbni0tmfiznffuzftmvv5nxbfrvezajbit3pty2m0vufztlfrbnjyzuxxbthis0zrstqxr2dkukptovv2a0nslvbnrk9uu0hlt3fqbwnlnlpldwexcvrpruzywwnkrk9lakjqcurcy3ldtm9xr3vhb0rscw4yltnna0dhcnbwuvzzqw9st015s0nfu2w4a3bedmpytnrlz2d6uui5vm5sbmxrov9mwtnobxlvcjbaruv4evrhamz1ys00swxzrkthm2nyuwt4m3njq1nwlvc2cmy3dmz6wdv2rghxykhgwmjiynvywxbgajfirg1jc193lxhrrfzymutnymx6txnxowdsqndnmk1lohj0ovfqemlosgnhuwzwmmrryudrdgg0vnlvq2nxmg1kq1m1uwduqkt3zglhr1z4zms3qmh3sesyanjxm0s0zwdquu5houxtu05oq2pouvo2ou0xnmlwqmzma3ruejvvvdbmlw5qs2nrrulmauetcmptd1l5nkjfb2raathtn1m0bdrzdkxtdmpqaur1snhlqjdac1fvu1zyvml6ugxqtwsxunnidmd3vzdyzk9ktgnjowvklw1ichnnehzlcgoyvxhfwlhvotvax3zyn2k4eedtwnhtbfdybvnjmevfuee1vew3r1fmegzjtxrwnfzftzhsakljuff0repna0vos0zstlzrbjhxaw83bm9zzllbazfncgx4a1bsmlndsuvsvenjulb3zxvfnhk1nllxm3d4ylzud0nbwdd5ewp5vhvcsvjrmzb6tlc4ng9nwvlsskm2n3dudhlcrxfpm1rzmxz6nld4cmflbm5fze53swt1lvjzx2j2qzlcsldaugdetnbazfrkcw5eaglktev5szl6afpjd3zqsfzvbtdwtvm0q0xkczzozhfwbtl5zwlsazu1sc1fsm4ymi0xbjf1nnbnamv5rkj2dfkwekzyzju3c2lkvgnjdhnfrupnagjnmvvxzfnlm1jwrnh2mkhdmerzwtlpazd1qxnec0lgv2hlq1pndwu0uxlvcmqzwtrxdlpiampbufjycuvrb0pmyvzalvz0ltmzmwpwyupha3pjawznuhvzrmnrlwtzunfiute5m1vzytltwtzfltdfcmvjzdndetdhwwxqos1urlnvz29cufvmtnleauvbbxrrstf6ywvwd0planftouxkb0zkt09qafhicvp5mc1zcel0z0xuqk10dxhweffinnbosdm0dmrimmzdz2p0vem4adf2cdnfqtbmdnh4envnzfuzsllwyzlsdhfnwhhhn1hangg0vvfydkltmnftm1hrd1vcmxvutzltewhmtlbmmtzomc1voejrze9gry1zwwjblvfox0fxtjrvrlmyrlrgws03euqxaxnwmeczmuxjrm1punbmzuh6mhbjz0vmty1nyxlhy3hzvkdjt3b0bjy3rw5nd2vfr3jkd0t6vji3rgvvy3pubunux0zin1fwverzteu4odfsrno3thjotwlusvvjvgrvneuwrmtxvwfamunvshjccejowm1hmzb0tgpieflkqi1srne3nhjyzmrdmwvpqkowdlbjzef4b215qtlft1hdtnq3mhr0ste2rlizbhhqzfltr1f2x2lidgzrzgf1tu1gwu9kakhfvzlaywdjv2iydxhnae5hmeeztxbuofi4mehaqlbwdkgzsfnimnvleld3oefxvgxta0fscuywzzzuwnfnmtgxejq2z05lwjd3m2g4yti5lxldatb5uhpfbtbqt0zjag5xanjfbmrqs2v3nmfab0rfshd5vvbzbk83etkzuurjogtiafb6yjg0ymtbaejdmlnzzth3r3zntxjorkl3u2lnzmh0x0cztthobhqzdmzbc1floth0d28wvhp1m0s3mkttb0q4a2hkdzzyctzpywxyb2jbmu05d2zpntfxbwpqath5cjruws03chfeyzuxt21iefnrvxjbtzatnlb1ame1rfvgvulputn5wk0wavdsmvlky2lxqw9gcc1yv045q3jimjg3dkpaafcyczrhzxm4uy1xdwrhoxl1njf1m2ixchdsmgzzc0vpvxprdwfzx3qzcwtaawfhahzameeybkvgzfkyd2tubwfvbmlkcxrza3u4cmhqs25xyuxsq195zg52evfpt3huckr3sljyeelmdvrwbgfhuw1zz1rsmhplc1nsdnbrsdrjbmtjvtbpa0jeq2vrvm5mq0pxtnvztwm1dv9eveljlxbin0u5sdr6v3htm1rbbe1mem9dlxyxdtbzshphcw9rm3r2svhboxv5owkzcxzqejfyzufmv2c3dzf5cvfvafbkltzqr29symrkrnfxwevryjqzsnrsetn3bnhksvpdr1pvcxdpvxzqzehwem0wq3lmekx4nzfjqmnweumztgtnx3bevvdlqjjxslyysgpvzfvtdln0djguyny5cc1hb0fjddftzklkc1dazxztzw bwqnq5n8apkes9fbb4htdqbterdklaztmphx6r_h7k7og4lx3gmgds3fep6o4cs6jttutost6gdmudwzozztptwetj64p4of1wlzkf6tx8alrkaiqr2nptxh_ah87bkw69myzakb4d9obngp7qdk7izgkpq180olmbtpxiv-wkin92f6n2fpoi5bt1ws_hh8wxgla6nkm0s-roayl7gtvgbs6gohkhvgaxnhesqy7kzgqte9orcc_fliqyyrabhtpgybwb7wp0hpodzq0dpadumkkprs05vidfzjufxduyc7zbze-g_tixrjk3linf4rnzxyi0gohbw5grphu3wltg authorization token the restful api needs to include an authentication token jwt samsung and partners can use the token to authenticate api calls jwt details jws header jws header requirement description alg required cryptographic algorithm used to sign the payload e g , rs256 cty required payload content type, such as "auth" ver required token version set as 3 certificateid required certificate identifier based on a csr during onboarding 4 digits alphanumeric partnerid required partner id same as partnercode utc required creation time to prevent repeated use, the token expires after a certain period of time unix timestamp in milliseconds * time offset from utc of +00 00 jws payload jwe payload requirement description api required current api information api method required api method api path required api path refid optional a unique content identifier defined by the content provider authentication optional authentication value to be used in accordance with the pre-configured authentication method on wallet card * see the chapter authentication for more details updatedat optional data update timestamp epoch timestamp in milliseconds authentication token example jws header {"cty" "auth","ver" 3,”certificateid” ”ymtt”,"partnerid" "1234567890","utc" 1631775948348,"alg" "rs256"} jws payload *samsung server api > update notification { "api" { "method" "post", "path" "/wltex/cards/12584806754/notification" }, "refid" " ref-20230304-0003" } *partner server api > get card data { "api" { "method" "get", "path" "/cards/12584806754/ref-20230304-0003" }, "refid" "ref-20230304-0003" } jws result eyjjdhkioijbvvriiiwidmvyijoxlcjwyxj0bmvyswqioiixmjm0nty3odkwiiwidxrjijoxnjmxnzc1otq4mzq4lcjhbgcioijsuzi1niisimtpzci6ildmvc5qukllrvkifq ewogicagikfqssi6ihskicagicagicaibwv0ag9kijogikdfvcisciagicagicaginbhdggioiail2nhcmqvq1mxnjezodm1mzixmju4ndgwnjc1ncikicagih0sciagicaicmvmswqioiaiq1mxnjezodm1mzixmju4ndgwnjc1ncikfqo ascawii-ambjkoly_auzagxrwuumkfuhbznrlk0ykvbyog2dsljs-_xyq9tooh4cwsfpkej0vqkwbyrokabkhwmrdbkjrajeaq-87s-bqp1rcbelnzmfq66gcmbg9xpd6dmwwlnrazyszjrcyzkllu9si5qykrkyuoz34mcwzwdneos3z3gl1xft42m2-cduxkqwi0wfryanxiedwboiyu12sdnpsrbwlb7liw4omm6fg01dirtbk6ayumbf7zqjl_oygelv9jfdyoze0tqyklttshgdws7imyamha5nhagplhqivzaqoosa14gbcm1u0zdqw4jqa4-1vgjr_i5xea authorization token bearer eyjjdhkioijbvvriiiwidmvyijoxlcjwyxj0bmvyswqioiixmjm0nty3odkwiiwidxrjijoxnjmxnzc1otq4mzq4lcjhbgcioijsuzi1niisimtpzci6ildmvc5qukllrvkifq ewogicagikfqssi6ihskicagicagicaibwv0ag9kijogikdfvcisciagicagicaginbhdggioiail2nhcmqvq1mxnjezodm1mzixmju4ndgwnjc1ncikicagih0sciagicaicmvmswqioiaiq1mxnjezodm1mzixmju4ndgwnjc1ncikfqo ascawii-ambjkoly_auzagxrwuumkfuhbznrlk0ykvbyog2dsljs-_xyq9tooh4cwsfpkej0vqkwbyrokabkhwmrdbkjrajeaq-87s-bqp1rcbelnzmfq66gcmbg9xpd6dmwwlnrazyszjrcyzkllu9si5qykrkyuoz34mcwzwdneos3z3gl1xft42m2-cduxkqwi0wfryanxiedwboiyu12sdnpsrbwlb7liw4omm6fg01dirtbk6ayumbf7zqjl_oygelv9jfdyoze0tqyklttshgdws7imyamha5nhagplhqivzaqoosa14gbcm1u0zdqw4jqa4-1vgjr_i5xea secure add to samsung wallet authentication defines the data format to authenticate the user registering/updating the card if need a custom user verification process, please get in touch with us via tech support authentication data set case type value description connecting information ci user’s ci value identifier of identity verification agency samsung account sa user’s samsung account verifying that the signed-in samsung account on the user's galaxy device matches subscriber identity module sim sim card information on mobile telephone devices verify the sim information being used on the user's mobile phone one-time password otp dynamic password the temporary password provided by the partner to the user is verified by receiving user input during the add to samsung wallet process access token token token to verify data retrieval request token data included in card data is used as a key accessed when querying a partner server this tokenized key can be reissued when the partner delivers updated card data example type sample data ci {"ci" "hsd0iuf9bew8ugb7wqeu6i"} sa {"account" "samsungwallet@samsung com"} sim [{"uiccid" "abcderwyt","telno" "821012345678","isprimary" true},{"uiccid" "abcderwys","telno" "01012345679","isprimary" false}] otp {"otp" "947253"} token {"x-access-token" "7c8d38690d0e3b6aa077198abd2554a3a7940b52cf86bd690c1"}
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.