Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Filter
Develop Samsung Wallet
docevent 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 type wallet card subtype ticket performances, sports, movies, entrances, others performances movies sports entrances wallet card data fields attributes type value description attributes {fields} title string 32 required main title e g , mlb ticket category string 16 optional ticket category * this will be deprecated eventid string 32 optional if full cancelation of the event occurs, find and process all tickets with this id groupingidstring 32 optional identifier used to group related cards orderidstring 32 optional a unique identifier for an order mainimg string 256 required url for main ticket image the file size should not exceed 512 kb subtitle1 string 32 optional the auxiliary field which displays supporting information logoimagestring 256 required logo image url to be displayed in the card item the file size should not exceed 256 kb logoimage darkurlstring 256 required logo image url in dark mode the file size should not exceed 256 kb logoimage lighturlstring 256 required logo image url in light mode the file size should not exceed 256 kb wideimagestring 256 optional wide horizontal image url displayed on the card information screen the file size should not exceed 256 kb providername string 32 required ticket provider name classificationstring 16 optional classification of tickets use onetime, regular, or annual * default onetime holdernamestring 64 optional name of card holders idphotostring 20k optional holder’s photo image data encoded base64 idphoto format string 32 optional image file formate g , jpeg, png * unsupported image formats may exist idphoto status string 16 optional status of the dataallowed value unchanged gradestring 32 optional ticket grade seatclassstring 32 optional seat class entrancestring 64 optional entrance gate seatnumber string 256 optional seat location seatlayoutimagestring 256 optional url of the seat layout image the file size should not exceed 512 kb issuedatelong 13 required issue date epoch timestamp in milliseconds reservationnumberstring 32 required reservation number userstring 64 optional name of person who made the reservation certification string 16 optional ticket certification e g ,r, as a film rating reactivatableynstring 1 optional flag whether the card is able to activate an expired ticket temporarily either 'y' or 'n' * default 'n' preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n'* default 'n' nonetworksupportyn string 1 optional set whether to support to open the wallet card under 'no network' status either 'y' or 'n' * default 'n' displayredeembuttonyn string 1 optional sets whether to support to show redeem button either 'y' or 'n' * default 'n' startdate long 13 required start date displayed start date epoch timestamp in milliseconds startdate utcoffset string 8 optional utc offset of start date time at the event location enddate long 13 optional end date displayed end date epoch timestamp in milliseconds * if null, the card will expire in 10 hours from startdate enddate utcoffsetstring 8 optional utc offset of start date time at the event location person1 string 512 optional number of persons by category * see classification format locationsstring 1024 optional list of locations where the card can be used * see location format noticedesc string 5000 required text of the notice * long content is allowed * see additional information format extendedfieldsstring 1024 optional a flexible list of key-value pairs * see extended fields groupinfo1 string 64 optional the first common information with the same groupingid groupinfo2 string 64 optional the second common information with the same groupingid *it is recommended to set groupinfo1 first groupinfo3 string 64 optional the third common information with the same 'groupingid' *it is recommended to set groupinfo1, groupinfo2 first csinfostring 4096 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 privacymodeynstring 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ applinklogo string 256 required app link image url the file size should not exceed 256 kb applinknamestring 32 required app link name applinkdatastring 256 required information about the partner app link bgcolor string 8 optional color of the card art e g , #00ffff fontcolor string 8 optional color of the font on the card art acceptable values dark, light blinkcolorstring 8 optional color of the blinking effect in the indicator areae g , #00ffff barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h barcode intervalstring 4 optional update interval if support for dynamic updatesepoch timestamp in milliseconds provision data string 512 optional elements to complete provisioning* see provisioning for details provision interval string 16 optional update interval if support for dynamic updates epoch timestamp in milliseconds relcoupon{i} title string 32 conditional coupon title * required if this ticket has a related couponi 1~3 relcoupon{i} subtitle string 32 optional coupon subtitlei 1~3 relcoupon{i} providername string 32 conditional coupon provider name * required if this ticket has a related coupon i 1~3 relcoupon{i} imagefilesrc string 256 optional coupon image url the file size should not exceed 256 kb i 1~3 relcoupon{i} noticedescription string 1024 optional text of the notice * long content is allowed * see additional information format i 1~3 relcoupon{i} notificationtime long 13 optional coupon exposure time epoch timestamp in milliseconds i 1~3 relcoupon{i} value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned i 1~3 relcoupon{i} serialtype string 32 required presentation typee g , serialnumber, barcode, * see barcode format i 1~3 relcoupon{i} ptformatstring 32 conditional presentation formate g , barcode, qrcode, serial, * see barcode format i 1~3 relcoupon{i} ptsubformat string 32 conditional presentation sub-formate g , code_128, qr_code, * see barcode format i 1~3 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" } } ] } ] } }
Develop Samsung Wallet
doconboarding guide the onboarding process for a partner manager on the wallet partner portal involves several steps to ensure that businesses or partners can effectively integrate their services into samsung wallet and begin offering digital cards, passes, loyalty programs, and other services to their customers onboarding process the following sections contain a description of the samsung wallet onboarding process for new partners the partner manager should fill basic information of the company and card details on partner portal, choose the card type and template that fit their contents, which will then provide keys such as card id and partner id to ensure safe data communication, make sure to prepare security key factors samsung will sign the provided csr then deliver certificates used to create the secured data samsung account is necessary to manage own service for samsung wallet the account is used to sign-up/sign-in on partner portal the following section contains the steps to register a new samsung account at the wallet partners portal navigate to the wallet partners portal and click the sign in button enter the email address and password in the form and click sign in note-if you do not have a samsung account yet, click on create account at the bottom to create an account if creating a new account, enter the account details email address, password, name, date of birth, and zip code , and then click next sign up signing up for the samsung wallet service involves registering a partner to access and utilize the features offered by samsung wallet to utilize full functionality of the samsung wallet partners service, a partner needs to enter company information, set encryption information, and configure card information after verification, the partner will get the authority to use all services the new partner of wallet partners portal is the samsung account will be conducted by samsung developer the new partners register to create business account and agree to the terms and conditions the partners complete the company profile information to onboard, create and manage business in wallet partner here’s a step-by-step guide for a new partner to sign up for the samsung wallet partners portal create business account - to use the wallet partners portal, one must create business account to get started, one must have a samsung developer business account this account is required to manage company’s digital assets and integrate services with samsung wallet accept the terms and conditions - to use wallet partners portal, review and accept the terms and conditions of the samsung developer portal ensure to read through the guidelines carefully, as they outline the rules for integrating business with samsung wallet verify account profile – complete the company profile information then enter the company name, company website, username etc additional information for the business account is optional, but providing detailed information will help with the registration process after filling out the required details, click submit to send the registration form for review welcome onboard - once the business account is created and the information is submitted; the wallet partner onboarding process is complete after completing the onboarding process, a welcome email confirming that the business has been successfully registered with the samsung wallet partners portal set encryption information and request permission setting encryption information involves configuring security measures to protect sensitive data during transactions and interactions within the samsung wallet partners portal encryption is used to secure the data being exchanged, preventing unauthorized access or interception once the encryption information is configured, one will need to request permission to access specific services within the samsung wallet partners portal permissions are necessary for performing operations such as adding or managing digital assets e g , cards, tickets, loyalty programs and accessing sensitive business data few points to remember only one account allowed per company manage the cards with one account for partners, one can only manage cards registered with the account multiple users with one account at same time is not allowed if someone else is signed in with the same account, the account in use will be signed out steps to set encryption information we need to perform encryption authentication to use the wallet partners portal create a csr that will request a digital certificate to be issued by a trusted authority we support multiple csr registrations if you click the + button, the csr registration area will be added if you click the - button, the csr registration area will be deleted go to the wallet partners portal and input the csr registration details item description encryption type select end to end encryption csr or none upload later csr csr certificate signing request the samsung public key is the key used for data encryption this can be used to issue and delete wallets csr is a file used to request signature of a certificate after uploading csr to the portal, csr will be signed using the samsung certificate please be careful not to expose samsung public key and csr due to security issues upload a * csr file only none upload later you need to set the encryption information csr to utilize the full functionality of samsung wallet service even if the subscription is done, you must upload the csr file later samsung public key samsung public key is sent to the partner’s email account signed certificate the signed certificate is sent to the partner’s email account complete encryption authentication to verify the correctness of the setup click done to submit the encryption information and complete the process a welcome email is sent when a user completes the sign-up process in addition, information required for the completion of csr is sent along with it security factors security factors refer to the various protocols and measures taken to secure the data and ensure the privacy and safety of the partners the service flow describes the series of steps or actions taken to complete a specific task in the wallet partners portal, from initial account creation to the use of services the service flow also ensures that data is handled securely csr certificate signing request process overview the certificate signing request csr process is critical for requesting a digital certificate from a certificate authority ca openssl, an open-source command-line tool, is commonly used to create the necessary files for csr generation and private key creation, which are essential to establish secure communication private key private key helps to enable encryption and is the most important component of certificates the private key should remain secure, as it is used for signing the csr and encrypting communication openssl genpkey -out domain key -algorithm rsa -pkeyopt rsa_keygen_bits 2048 note-if you want to make the private key more secure, adding ‘-des3’ on the command encrypts it with a password creating a certificate signing request the csr contains the public key and additional information such as the organization’s details this is required when a digital certificate is to be signed by a trusted certificate authority ca steps to create a csr from an existing private key open a terminal and use openssl to generate a csr domain csr using the existing private key openssl req -out domain csr -key domain key -new -sha256 it will also prompt you to provide csr information, such as a country name c the two-letter country code e g , us for the united states b state or province name st your state or province c locality name l your city or locality d organization name o your organization’s legal name e organizational unit ou optional the department or business unit within the organization f common name cn the domain name e g , www yourdomain com g email address email your contact email address you are about to be asked to enter information that will be incorporated into your certificate request what you are about to enter is what is called a distinguished name or a dn there are quite a f ew fields but you can leave some blank for some fields there will be a default value, if you enter ' ', the field will be left blank ----- country name 2 letter code [xx] kr state or province name full name [] seoul locality name eg, city [default city] sample city organization name eg, company [default company ltd] sample company organizational unit name eg, section [] sample section common name eg, your name or your server's hostname [] domain email address [] email@email com please enter the following 'extra' attributes to be sent with your certificate request a challenge password [] an optional company name [] once completed, the csr file domain csr will be generated note-‘password’ is optional attribute an important field is ‘common name’, which should be the exact fully qualified domain name fqdn of our domain creating a key and csr together both the private key and csr can be created with a single command openssl req -newkey rsa 2048 -nodes -keyout domain key -out domain csr note-if you want your private key encrypted, you can remove the ‘-nodes’ option for additional information https //en wikipedia org/wiki/public_key_certificate https //www openssl org my account the my account section in samsung wallet allows to manage profile, payment methods, security settings, and other account details navigate to the samsung wallet page, in top-right corner, select the my account section to manage the profile and encryption settings in this section, manage ‘wallet partner management’ to modify company information and manage the encryption settings note-after a signed certificate is generated, the encryption setting management fields can no longer be edited
Develop Samsung IAP
docid card", "psms", "carrier billing" and others mode string iap operating mode in effect at the time of purchase "test" developer test mode which always returns success or fail result"production" production mode consumeyn string for consumable items only, whether or not the item has been reported as consumed and is available for purchase again "y" consumed"n" not consumed comsumedate string date and time when the consumable item was reported as consumed yyyy-mm-dd hh mm ss gmt consumedevicemodel string model name of the device that reported the item as consumed acknowledgeyn string whether or not acknowledge that the user has been granted entitlement for the purchased non-consumable item or subscription "y" acknowledged"n" not acknowledged acknowledgedate string date and time when the purchase of non-consumable item or subscription was acknowledged yyyy-mm-dd hh mm ss gmt acknowledgedevicemodel string model name of the device that acknowledged non-consumable item or subscription passthroughparam string deprecated since iap 6 4 0transaction id created by your app for securityreturned only if the pass-through parameter was set note the old iap/getpurchasereceipt passed the base64 encoded value, but the iap/v6/receipt passes the value as it is set in the game currencycode string currency code 3 characters of the purchaser's local currency for example, eur, gbp, usd currencyunit string symbol of the purchaser's local currency for example, €, £, or $ canceldate string for canceled transaction only, date and time the purchase transaction was canceled yyyy-mm-dd hh mm ss gmt note added since iap/v6/receipt obfuscatedaccountid string obfuscated account id which you sent when you called startpayment or changesubscriptionplan obfuscatedprofileid string obfuscated profile id which you sent when you called startpayment or changesubscriptionplan errorcode integer for failed request only, error code errormessage string for failed request only, detailed error message example success { "itemid" "57515", "paymentid" "20191129013006730832tran", "orderid" "s20191129kra1908197", "packagename" "com samsung android test", "itemname" "test pack", "itemdesc" "iap test item best value!", "purchasedate" "2019-11-29 01 32 41", "paymentamount" "100 000", "status" "success", "paymentmethod" "credit card", "mode" "production", "consumeyn" "y", "consumedate" "2019-11-29 01 33 28", "consumedevicemodel" "sm-n960n", "acknowledgeyn" "y", "acknowledgedate" "2025-03-20 06 58 06", "acknowledgedevicemodel" "sm-n960n", "passthroughparam" "test_pass_through", "currencycode" "krw", "currencyunit" "₩", "obfuscatedaccountid" "b2jmdxnjyxrlzefjy291bnrjza==", "obfuscatedprofileid" "b2jmdxnjyxrlzfbyb2zpbgvjza==" } fail errorcode errormessage 1 "fail" 1000 detailed message about an unexpected system error for example, "parsing error" 9135 "not exist order" 9153 "wrong param invalid purchaseid " { "status" "fail", "errorcode" 9135, "errormessage" "not exist order" } canceled purchase transaction { "itemid" "57515", "paymentid" "zpmtid20191128kra1908196", "orderid" "s20191128kra1908196", "itemname" "test pack", "itemdesc" "iap test item best value!", "purchasedate" "2019-11-28 10 18 09", "paymentamount" "0 000", "paymentmethod" "free", "mode" "production", "consumeyn" "y", "consumedate" "2019-11-28 10 18 11", "consumedevicemodel" "sm-g965f", "acknowledgeyn" "y", "acknowledgedate" "2025-03-20 06 58 06", "acknowledgedevicemodel" "sm-n960n", "passthroughparam" "test_pass_through", "currencycode" "krw", "currencyunit" "₩", "status" "cancel", "canceldate" "2019-11-29 00 01 52" } additional samsung iap server apis additional samsung iap server-to-server apis are provided as part of the galaxy store developer api and have different requirements purchase acknowledgment - consume or acknowledge a purchased product check status of subscription - get the subscription status, including subscription information and purchase information the following samsung iap server soap apis have been deprecated and are no longer supported create a service token soap check subscription status soap
Learn Code Lab
codelabintegrate samsung pay web checkout with merchant sites objective learn how to integrate the samsung pay payment system into your merchant sites using the samsung pay web checkout sdk partnership request to use the samsung pay web checkout sdk, you must become an official samsung pay partner once done, you can fully utilize this code lab you can learn more about the partnership process by visiting the samsung pay page here in samsung developers notein accordance with the applicable samsung pay partners agreements, this code lab covers the setup and use of the samsung pay web checkout sdk for purposes of integrating samsung pay with merchant sites the use cases and corresponding code samples included are representative examples only and should not be considered as either recommended or required overview the samsung pay web checkout service enables users to pay for purchases on your website with payment cards saved in the samsung wallet app on their mobile device it supports browser-based payments on both computers and mobile devices a mobile device with samsung wallet installed is required to make purchases through samsung pay web checkout when the user chooses to pay with samsung pay, they must provide their samsung account id email id or scan the qr code on the screen with their mobile device the user then authorizes the purchase within the samsung wallet application, which generates the payment credential on the device and transmits it to your website through the web checkout for more information, see samsung pay web checkout set up your environment you will need the following access to samsung pay developers site samsung wallet test app from samsung pay developers site samsung galaxy device that supports samsung wallet app internet browser, such as google chrome codesandbox account notein this code lab, you can use the samsung wallet test app to try the functionality of the samsung pay web checkout service in a staging environment you can use the official samsung wallet app from the galaxy store once your service is in the production environment start your project and register your service in your browser, open the link below to access the project file of the sample merchant site codesandbox io/s/virtual-store-sample-fnydk5 click the fork button to create an editable copy of the project next, follow the steps below to register your sample merchant site in the samsung pay developers site go to my projects > service management click create new service select web online payment as your service type enter your service name and select your service country select your payment gateway from the list of supported payment gateways pg if your pg uses the network token mode, upload the certificate signing request csr or privacy enhanced mail pem file you obtained from your pg contact your pg for details enter the payment domain name s for your website in the service domain field and click add for example, if your domain is mywebstore com, but the checkout page is hosted on the subdomain payments mywebstore com, you will need to enter payments mywebstore com as the service domain for each additional domain url, click add in this code lab, the generated preview url of the forked project is your service domain click the name of the newly created service to see its details, such as the generated service id that you can use for all the registered service domains include the samsung pay web checkout javascript sdk the samsung pay web checkout sdk uses javascript to integrate the samsung pay payment system to your website this sdk allows users to purchase items via web browser in the <head> section of the index html file of the project, include the samsung pay web checkout javascript sdk file <script src="https //img mpay samsung com/gsmpi/sdk/samsungpay_web_sdk js"></script> initialize the samsung pay client to initiate payments using the samsung pay api, create a new instance of the paymentclient class and pass an argument specifying that the environment as stage write the code below in the <script> tag of the <body> section const samsungpayclient = new samsungpay paymentclient { environment "stage" } ; when the service is still in debug or test mode, you can only use the staging environment to test payment functionality without processing live transactions noteby default, the service is initially set to debug or test mode during creation to switch the service status to release mode, a request must be made through the samsung pay developers site after successfully transitioning to release mode, change the environment to production next, define the service id, security protocol, and card brands that the merchant can support as payment methods the service id is the unique id assigned to your service upon creation in the samsung pay developers site let paymentmethods = { version "2", serviceid "", //input your service id here protocol "protocol_3ds", allowedbrands ["visa", "mastercard"] }; check whether the samsung pay client is ready to pay using the given payment method call the createandaddbutton function if the response indicates that the client is ready samsungpayclient isreadytopay paymentmethods then function response { if response result { createandaddbutton ; } } catch function err { console error err ; } ; create and implement the samsung pay button go to the <body> section and, inside the page-container div, create a container for the samsung pay button <div align="center" id="samsungpay-container"></div> next, go back to the <script> tag and write the createandaddbutton function inside this function, generate the samsung pay button by calling the createbutton method ensure that the button appears on the page by appending it to the container you created function createandaddbutton { const samsungpaybutton = samsungpayclient createbutton { onclick onsamsungpaybuttonclicked, buttonstyle "black"} ; document getelementbyid "samsungpay-container" appendchild samsungpaybutton ; } function onsamsungpaybuttonclicked { // create the transaction information //launch the payment sheet } from the createandaddbutton function, call the onsamsungpaybuttonclicked function when the user clicks the generated button create the transaction information in the onsamsungpaybuttonclicked function, create the transactiondetail object for the user’s purchase input your service domain in the url key let transactiondetail = { ordernumber "sample0n1y123", merchant { name "virtual shop", url "", //input your service domain countrycode "us" }, amount { option "format_total_estimated_amount", currency "usd", total 2019 99 } }; below are the descriptions of the keys included in the transactiondetail object key type description ordernumber string order number of the transaction allowed characters [a-z][a-z][0-9,-] merchant object data structure containing the merchant information merchant name string merchant name merchant url string merchant domain url e g , samsung com the maximum length is 100 characters merchant countrycode string merchant country code e g , us for united states iso-3166-1 alpha-2 amount object data structure containing the payment amount amount option string display format for the total amount on the payment sheet format_total_estimated_amount = displays "total estimated amount " with the total amountformat_total_price_only = displays the total amount only amount currency string currency code e g , usd for us dollar the maximum length is 3 character amount total string total payment amount in the currency specified by amount currencythe amount must be an integer e g , 300 or in a format valid for the currency, such as 2 decimal places after a separator e g , 300 50 notefor the complete list of specifications for the transactiondetail object, see samsung pay web checkout api reference launch the payment sheet after creating the transaction information, call the loadpaymentsheet method to display the web checkout ui the user can either input their email address or scan the generated qr code a timer screen in the web checkout ui is displayed after the user input, while a payment sheet is launched in the user's samsung wallet app the payment sheet contains the payment card option s and the transaction details when the user confirms their payment on their mobile device, you will receive the paymentcredential object generated by the device then, inform the samsung server of the payment result using the notify method the paymentresult object contains the payment result information during transaction processing and after the payment is processed with the pg network notefor real transactions, you need to extract the payment credential information from the 3ds data key within the paymentcredential object and process it through your payment provider however, in this code lab, you only need to print the paymentcredential to the console samsungpayclient loadpaymentsheet paymentmethods, transactiondetail then function paymentcredential { console log "paymentcredential ", paymentcredential ; const paymentresult = { status "charged", provider "test pg" }; samsungpayclient notify paymentresult ; } catch function error { console log "error ", error ; } ; other possible values of the status key are charged - payment was charged successfully canceled - payment was canceled by either the user, merchant, or the acquiring bank rejected - payment was rejected by the acquiring bank erred - an error occurred during the payment process test the samsung pay button after integrating the samsung pay web checkout service into your sample merchant site, follow the steps below to test the functionality of the integrated service open your sample merchant site in a new tab then, click the pay with samsung pay button in the web checkout ui, enter the email address of your samsung account to send a payment request to samsung pay tap the push notification sent to the samsung wallet app installed on your mobile device then, click accept when the payment sheet is loaded, tap on pin and enter your pin to proceed a verified message will display in both the samsung wallet app and web checkout ui to indicate that the payment was processed successfully you're done! congratulations! you have successfully achieved the goal of this code lab topic now, you can integrate the samsung pay web checkout service into your website by yourself if you're having trouble, you may check the complete code below codesandbox io/s/virtual-store-complete-dkhzfx to learn more about developing apps for samsung pay devices, visit developer samsung com/pay
FAQ game, smarttv
docsamsung checkout q&a this topic solves various issues you may face while creating applications that use samsung checkout service select the applicable section to see the most common questions about a specific subject, and click the section heading to access all the available questions for that subject faq search form search application development issues q1 my application is getting the following error “[payresult] cancel” how can i send a question to samsung checkout team? below you can find a sample email that you can send to us through the samsung apps tv seller office 1 1 q&a section tv#error#tv seller office q2 i got the following error in response to the api "/billing/service/v2/paymethods/md" as { "status" "0410424", "result" "оформление покупки не поддерживается [da-0219-a7af33]", "resultlongmesg" "unavailable service support country ", "resulttitle" "недоступно" } what's wrong? the "md" at the end is the country code for "md moldova, republic of", which is not a supported country for the samsung checkout service to see all the list of country where samsung checkout is supported, go to the "country and currency codes" section in implementing the purchase process tv#error#country code q3 if a user purchases a product which has only been made available in a single country, can that purchase be returned using the "invoice/list" endpoint even if it is using a different country code than the one the user purchased the product in? yes the response for "invoice/list" does not consider the country code of the api request parameter, it returns all of the purchases what the buyer has purchased regardless of country tv#purchase#refund#country code#endpoint q4 is there a checklist that i can follow in order to check if my application is integrating with samsung checkout api properly? yes, below is the minimum checklist for integration with samsung checkout, you can test each item in the checklist to make sure your application works properly when purchasing the product when the samsung checkout client is launched, it shows the loading by itself, no graphical overlapping should exist in user experiences during the transition for example, a 3rd party application should not show loading when launching the samsung checkout client check the purchase process based on the type of product consumable/dynamic item type the user should be able to use the appropriate payment method to buy the item, and the title and price on the purchase page should be same as intended subscription/free trial item type in addition to the above, the user should be able to see the next payment date or relevant information of the subscription item check the post-purchase process in the 3rd party application does the 3rd party application reflect the result of a purchase in the application properly after completing the purchase process? both the success case for a purchase and other cases should be handled is there any overlap when screen is switched from the samsung checkout client to the 3rd party application? check the purchase history based on the type of product go to the "tv menu > samsung account > payment info" to see the subscription or purchase history the user needs to be able to check the purchase history or subscriptions of the item the user needs to be able to check subscription details check the user purchase history from the user buyer portal to make sure the history is properly updated after making a purchase, go to the samsung checkout website and check whether your status is updated properly test for exceptions turn off the tv while the purchase is in progress and checks if any inappropriate status is observed for example, go to the "tv menu > samsung account > payment info" to see the subscriptions or purchase history after completing the purchase of the item, turn the tv off and on again and run the 3rd party application to see if the previous purchase is still in active status tv#checklist#api integration dpi portal usage guide from the dpi portal, partners can register and manage products for sale and access the transaction history logs and sales reports for the applications they own q5 how do price changes work? if you want to change the price of an existing item, go to the dpi site and select "app > product list on the left side > product id" from there, you can change the product price for countries where it is necessary to select a tax category, you need permission from the samsung administrator to change the price prices you set can be changed after three months and you must notify the consumers of the new price tv#price change#dpi portal q6 can we have a unique product for each country? when a buyer purchases a specific product which is sold in multiple countries, they have the right to access any of those versions therefore, if you want to give a right for the purchase only within a single country, you need to register products separately for each country the product id needs to be different tv#product id#register q7 are security keys tied to the appid value? for example, if we have 2 applications each with their own id, will each one have its own securitykey? this is correct, security keys are bound to the appid tv#security key#application id q8 when we login on the dpi site, our application is not listed on it how can we add it? when you enroll your application on the seller site, you need to check the appropriate options for using samsung checkout refer to the picture below tv#dpi portal#unlisted application operation of your service this section explains the issues related to the operation of your service q9 can i use samsung checkout service for hotel tv applications? no, samsung checkout service is available on only samsung smart tvs htv#hotel tv application#samsung checkout q10 can i use my tv to test samsung checkout? i bought samsung smart tv around 2016 yes, samsung checkout service is available since the 2016 samsung smart tv range however, the latest features are guaranteed to function only for the last three years, and there may be a difference in the functionality of each year tv#samsung checkout testing q11 does samsung send push notifications, e-mail, or any sort of messaging to users throughout the service lifecycle free trial, subscribe, cancel ? samsung sends an e-mail to users who buy items, subscribe, cancel, and refund in addition, samsung sends a notice e-mail to users whose subscription item payment has failed tv#notice emails q12 is there any additional information you can pass along on error response codes for the billing api, such as what the response is if the checkvalue is incorrect? yes, you can find additional information at the following page dpi > support > error code tv#billing api#error code q13 what happens to current users who are in the middle of their subscription, when cp changes the price? will the user get some notification when they renew next time? no the service provider must relay this information to the buyers before the changes are made, because samsung checkout does not send price change notifications to buyers who subscribe to subscription products tv#price change#notification q14 does the samsung checkout charge users based on local currency, or based on the credit card that is used? for example, can you pay with us credit card in columbia? will the card be charged in local currency, or in usd? you will be charged in local currency tv#local currency q15 what are "customid" and "ordercustomid"? "customid" and "ordercustomid" have the same value "customid" also uses the same value as "ordercustomid" when calling buyitem if you have a unique id, use it if not, use the samsung account uid tv#customeid#ordercustomid q16 how is the provider's user account data matched with samsung checkout's transaction list? this is done using "ordercustomid" if the provider has a user account, they can put the value in the "ordercustomid" parameter when calling the buyitem api this value is mapped to the transaction list's "order custom id" column tv#ordercustomid#transaction list product type this section includes information related to product types that can be purchased using the samsung checkout service limited period q17 in the response data of the "invoice/list" api, are `period`, `appliedtime`, `limitendtime`, and `remaintime` always present for `invoicedetails` objects that have an `itemtype` of limited period? yes tv#limited period#invoice details#item type q18 in the api spec document for the response data of "invoice/list" api, `limitendtime` is listed as "limited period product end time, in 14-digit utc time" does this mean that the field is not mandatory, that it should either exist and be a 14-digit string, or that it should not exist? no, limitendtime must exist when a limited period product is applied tv#limited period#limited end time q19 from the response data of "invoice/list" api, what is the expected value of the `limitendtime` field when a purchase hasn’t been applied yet? it appears that for limited period item purchases that have not been applied `itemtype` is "3" , the `limitendtime` field is set to "" correct limitendtime is calculated based on the date and time when the purchase is applied tv#limited period#limited end time#item type subscription q20 in the response data of the "invoice/list" api, is `subscriptioninfo` ever present for `invoicedetails` objects that do not have an `itemtype` of subscription? subscriptioninfo is shown only when itemtype is subscription tv#subscription info#invoice details#item type q21 does an invoiceid ever change, or is it static? if a new purchase is made, does it always generate a new invoiceid? the invoiceid is generated when the buyer subscribes to a product for regular payment however, subscriptionid is generated only when the buyer subscribes a product for the first time samsung checkout uses the first invoiceid as the subscriptionid and it is never updated tv#invoiceid#subscriptionid q22 does subscription end date `subsendtime` get updated as soon as a user has been successfully billed for the upcoming period of the subscription? no, the subscription end date subsendtime describes the expiry time of this subscription not nextpaymenttime tv#subscription end time q23 how is a month defined in subscriptions? calendar month or 30/31 days? calendar month the next month's payment is made on the same day of the month as the day the consumer first applied for the subscription for example, if the consumer applied for a subscription on november 14th, the next payment is made on december 14th for months that don't have a day corresponding to the settlement date such as the 31st , payment is made at the end of the month tv#calendar month#subscription q24 would the canceling of a subscription/closing of the account automatically trigger a refund at samsung checkout? no even if the consumer withdraws their samsung account or cancels a subscription to the regular payment, this does not refund any payments already charged on the next settlement date, the subscription status is changed from 'active' to 'expired', and regular payment is stopped tv#subscription#samsung account#cancel#refund
Develop Samsung Pay
doc2 2 steps for successful partner onboarding the onboarding involves becoming a registered partner, gaining access to development tools sdks and apis , and configuring payment-related services for in-app, web, or push provisioning functionalities below are the recommended and supported steps for successful onboarding become a member samsung developers account go to samsung developers sign up for a samsung account if you don’t have one accept the terms and conditions required to join the samsung developers program if you have a samsung account, click log in otherwise, click sign up use a company email for account creation—preferably one that’s stable over time e g , dev@company com accept the terms and privacy policy complete the signup form and verify your email via an activation link submit your business or organization information company name contact details type of service bank, merchant, fintech, etc this step allows samsung to validate and approve you as a potential partner after signing in, begin the membership registration process choose "i am the first samsung pay member of my company" — if you're the first registrant "my company is already registered" — if joining an existing partner enter partner id fill in company details name, type of business, location, size add user details contact person, phone number, job title submit and wait for samsung to review your profile once approved, you’ll receive full access to restricted tools and documents note your account must be approved before you can manage services or invite team members upon review of the information provided, your samsung pay relationship manager rm may request additional details once your membership registration is approved, you'll be granted access to currently restricted areas of the samsung pay portal and you can invite members of your team to collaborate on your samsung pay projects until then, take advantage of valuable resources like the samsung pay sdk and sdk programming guide from the following link android sdk [in-app payment and push provisioning] https //developer samsung com/pay/native/sdk-overview html web checkout sdk https //developer samsung com/pay/web/overview html w3c mobile payment https //developer samsung com/internet/android/web-payments-integration-guide html when you receive the email notifying you of membership approval, you're ready to get started in your browser, return to the samsung pay portal and sign in set up your partner project once approved, begin setting up your integration project navigate to the "my projects" section in the partner portal create a new project to associate with your app or service integration app your mobile app issuer or merchant app service integration instance linking the app, certificate, and sdk configuration e g , card enrollment or web payments choose your project type based on your intended service inapp online payment push provisioning web online payment w3c mobile web you can create different service for the same package for multiple purpose testing note only one application can be added under one service id for example app deployment scenario unique service-app combinations global issuer app using a different csr encryption key for services in different regions to interact with local servers service 1 = com issuer walletapp, csr1_us service 2 = com issuer walletapp, csr2_plcc_abcmart same issuer app for all customers but different csrs for managing different card services b2b vs plcc service 1 = com issuer walletapp, csr1_regular service 2 = com issuer walletapp, csr2_plcc_abcmart multiple merchant apps using the same pg service 1 = com merchant electronicsapp, csr_pg1 service 2 = com merchant groceryapp, csr_pg1 global merchant app using a different pg for each country service 1 = com merchant electronicsapp, csr_pg1 service 2 = com merchant electronicsapp, csr_pg2 multiple web sites using the same pg service 1 = electronicssite merchant com, csr_pg1 service 2 = grocerysite merchant com, crs_pg1 global merchant web site using a different pg for each country service 1 = electronicsapp merchant com, csr_pg1 service 2 = electronicsapp merchant com, csr_pg2 create new service samsung pay supports several types of services on the create new service tile, click go and create select one of the following service types in-app online payment service push provisioning web online payment w3c mobile web note samsung pay provides a variety of partner integration services via the samsung pay developers site, each addressing a set of features apropos to your specific app or mobile web site requirement select service type based on samsung pay functionality you want to make available
Develop Smart TV
api'tizen tv service billing billingplugin' class reference events billingclientclosedeventhandler buyitemeventhandler the billing transaction event handler, which can be added/removed more billingrequestapicallbackeventhandler requestapieventhandler the billing request api event handler, which can be added/removed more billingshowdeeplinkcallbackeventhandler showdeeplinkeventhandler the billing deep-link feature event handler, which can be added/removed more public functions string getversion gets the billing cs plugin version more bool buyitem string appid, billingrequestservertype servertype, string paydetail launches the billing client more bool isserviceavailable billingrequestservertype eservertype gets the payment service availability more bool getpurchaselist string strappid, string strcustomid, string strcountrycode, int ipagenumber, string strcheckvalue, billingrequestservertype eservertype 'get purchase list' server open api interface more bool showpurchasehistory string strhistoryapp, billingrequestpurchasehistorytype ehistorydetail a billing client deep-link feature launches the billing client's purchasehistory page more bool showregisterpromotionalcode a billing client deep-link feature launches the billing client's promotional codes page more bool showregistercreditcard a billing client deep-link feature launch the billing client's credit card registration page more bool cancelsubscription string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'cancel subscription' server open api interface more bool applyinvoice string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'applyinvoice' server open api interface more bool verifyinvoice string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'verifyinvoice' server open api interface more bool getproductslist string strappid, string strcountrycode, int ipagesize, int ipagenumber, string strcheckvalue, billingrequestservertype eservertype the 'request product list' server open api interface more events billingclientclosedeventhandler buyitemeventhandler the billing transaction event handler, which can be added/removed privilege http //developer samsung com/privilege/billing privilege level public product tv version 4 4 0 sdk support n billingrequestapicallbackeventhandler requestapieventhandler the billing request api event handler, which can be added/removed privilege http //developer samsung com/privilege/billing privilege level public product tv version 4 4 0 sdk support n billingshowdeeplinkcallbackeventhandler showdeeplinkeventhandler the billing deep-link feature event handler, which can be added/removed privilege http //developer samsung com/privilege/billing privilege level public product tv deprecated deprecated since 5 5 0 version 4 4 0 sdk support n public functions string getversion gets the billing cs plugin version returns billing cs plugin version string value privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool buyitem string appid, billingrequestservertype servertype, string paydetail launches the billing client parameters appid the application id servertype the payment server type paydetail the detailed payment information returns a boolean value returns true if the billing client is launched privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool isserviceavailable billingrequestservertype eservertype gets the payment service availability parameters eservertype the billing server type to check returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool getpurchaselist string strappid, string strcustomid, string strcountrycode, int ipagenumber, string strcheckvalue, billingrequestservertype eservertype 'get purchase list' server open api interface parameters strappid the application id strcustomid unique customer id which can be used to identify the user strcountrycode the country code, such as "us" ipagenumber the page number strcheckvalue the security hash code for more information, see the api guide documentation eservertype the request server type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool showpurchasehistory string strhistoryapp, billingrequestpurchasehistorytype ehistorydetail a billing client deep-link feature launches the billing client's purchasehistory page parameters strhistoryapp the application id to view the payment history for to view the payment history for all applications, use the string "all" ehistorydetail the requested payment history data type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv deprecated deprecated since 5 5 0 version 4 4 0 sdk support n bool showregisterpromotionalcode a billing client deep-link feature launches the billing client's promotional codes page returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv deprecated deprecated since 5 5 0 version 4 4 0 sdk support n bool showregistercreditcard a billing client deep-link feature launch the billing client's credit card registration page returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv deprecated deprecated since 5 5 0 version 4 4 0 sdk support n bool cancelsubscription string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'cancel subscription' server open api interface parameters strappid the application id strcustomid unique customer id which can be used to identify the user strinvoiceid the invoice id for which the subscription is to be cancelled strcountrycode the country code, such as "us" eservertype the request server type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool applyinvoice string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'applyinvoice' server open api interface parameters strappid the application id strcustomid unique customer id which can be used to identify the user strinvoiceid the invoice id to set the invoice status to "apply" strcountrycode the country code, such as "us" eservertype the request server type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool verifyinvoice string strappid, string strcustomid, string strinvoiceid, string strcountrycode, billingrequestservertype eservertype the 'verifyinvoice' server open api interface parameters strappid the application id strcustomid unique customer id which can be used to identify the user strinvoiceid the invoice id whose status is to be checked strcountrycode the country code, such as "us" eservertype the request server type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n bool getproductslist string strappid, string strcountrycode, int ipagesize, int ipagenumber, string strcheckvalue, billingrequestservertype eservertype the 'request product list' server open api interface parameters strappid the application id strcountrycode the country code, such as "us" ipagesize the number of products to show on each page ipagenumber the page number strcheckvalue the security hash code for more information, see the api guide documentation eservertype the request server type for more information, see the api guide documentation returns a boolean value returns true if this api is called successfully privilege http //developer samsung com/privilege/billing privilege level public legal review result this api is already posted at sd product tv version 4 4 0 sdk support n
Develop Samsung Wallet
docdata structure and format extended fields a list of customizable data fields used for rendering dynamic content in the card ui or printed representation each field consists of a label, value, and an optional order to define display sequence if the card type is generic, a type field is also included to map each field to a predefined layout position note the type values must align with the layout definitions provided by the service do not define or use custom fields without prior agreement to ensure consistent rendering and data integrity type description label required the display name of the field value required the actual content shown alongside the label type conditional a predefined identifier used to map the field to a specific position in the layout this field is used only for generic card type and must align with layout defined from partner portal order optional defines the display order of the fields lower numbers appear first [example] { "extendedfields" [ { "label" "name", "value" "bahadur bhai", "type" "text1", "order" 1 }, { "label" "role", "value" "graphic designer", "type" "text2", "order" 2 }, { "label" "contact", "value" "+0012349012", "type" "text3", "order" 3 }, { "label" "email", "value" "into@email space", "type" "text4", "order" 4 }, { "label" "address", "value" "123 dunny, lorem ipsum", "type" "text5", "order" 5 } ] } additional information additional information to be delivered to customers can be defined in the following format be careful of the content string length if an attribute does not allow long content, it is not displayed on the device json format type description info[]object arrays required container of information info[] titlestring required title * need either content or chart info[] content[]string arrays optional content text info[] more[]object arrays optional the addtional information that needs to be checked by pressing the ⓘ button in the contents of the info[] title info[] more[] titlestring optional title * need either content or chart info[] more[] content[]string arrays optional content text info[] chartobject optional chart data info[] chart headers[]string arrays optional header of chart info[] chart body[]array required body of chart info[] chart metadata[]string arrays optional metadata of chart* units or additional information of chart example * extra information for a boarding pass { "count" 3, "info" [ { "title" "baggage allowance", "content" [ "15 kg" ] }, { "title" "boarding priority", "content" [ "yes" ] }, { "title" "seat class", "content" [ "economy plus" ] } ] } * example case of long content being allowed movie ticket policy { "count" 2, "info" [ { "title" "refunds and exchanges", "content" [ "refunds and exchanges of movie ticket s are available in certain limited circumstances ", "movie tickets purchased through the services include a non-refundable convenience fee before purchasing your movie ticket s we urge you to confirm the title, time, location and quantity of tickets for the movie you wish to see " ] }, { "title" "changes to ticket policy", "content" [ "from time to time, we may revise this ticket policy you can determine when this ticket policy was last revised by referring to the top of this page any changes to this ticket policy will become effective upon posting of the revised ticket policy on the internet, accessible through the services " ] } ] } * example case of more information included reservation-rentalcars { "count" 2, "info" [ { "title" "included", "content" [ "car rental rates ldw-loss damage waiver tax & surcharge" ], "more" [ { "title" "what's included", "content" [ "options which is checked --- ", "please note that additional insurance ---" ] } ] }, { "title" "options", "content" [ "n/a" ] } ] } * example usage of charts { "count" 1, "info" [{ "title" "paygo price guide for usage", "chart" { "headers" ["grade", "round", "one-way"], "body" [ ["platinum", "$25", "$10"], ["gold", "$30", "$15"], ["silver", "$40", "$20"] ], "metadata" "unit /h" } }] } * example usage of html { "count" 2, "info" [ { "title" "<b>this is bold text</b> <font color='red'>this is red text</font> <a href='https //www example com'>this is a link</a>", "content" [ "1 wear a mask", "2 temperature check before entering the theater", "3 electronic entry registration for all customers using the performance", "please cooperate even if it takes some time before entering ", "we kindly ask for your cooperation " ] }, { "title" "[parking information]", "content" [ "<b>this is bold text</b> <font color='red'>this is red text</font> <a href='https //www example com'>this is a link</a>" ] } ] } paygo price guide for usage members grade round one-way platinum $25 $10 gold $30 $15 silver $40 $20 unit /h the above example may differ from what is actually displayed classification classification defines different kinds of people who can use the cards vlaue description person[]array of object required container of person list who can use the card person[] categorystring required category name person[] countstring required number of persons example example * 3 persons with a ticket { "person" [ { "category" "adult", "count" 2 }, { "category" "child", "count" 1 } ] } * 1 person with a ticket { "person" [ { "category" "adult", "count" 1 } ] } transactions transactions to be delivered to customers can be defined in the following format be careful of the content string length if an attribute does not allow long content, it will not be displayed on the device json format vlaue description [] datestring required transaction date [] amountstring optional amount value [] descriptionstring optional description example * an example for payasyougo-evcharge-transactions [ { "date" "2023-09-10 12 00 00", "amount" "50,000 won", "description" "suwon station branch" }, { "date" "2023-09-20 18 00 00", "amount" "70,000 won", "description" "gangnam central branch" } ] links links is a standard data structure that represents a list of actionable links provided by a content provider json format value description orderinteger 1~5 optional display order of the link smaller values are displayed first if omitted, the array order is used titlestring 32 required primary text shown to the user subtitlestring 32 optional secondary descriptive text shown below the title linkstring 2000 required url to access the provider’s additional information max 2000 characters de-facto limit example { "links" [ { "order" 1, "title" "medical consultation", "subtitle" "see more information", "link" "https //samsung external info link" } ] } locations locations refer to place information that denotes where a card can be used using this information, samsung wallet can show a map, place name, and address additionally, location information can be used to provide location-based services lbs location information can be represented by a json array and up to 10 locations can be specified note map services are only available in certain countries json format vlaue description [] latdouble optional latitude [] lngdouble optional longitude [] addressstring required string containing the full address [] namestring required branch name example * location information for the entrance to oracle park [ { "lat" 37 779337, "lng" -122 388755, "address" "24 willie mays plaza, san francisco, ca 94107", "name" "willie mays plaza" }, { "lat" 37 77814, "lng" -122 390836, "address" "king st, san francisco, ca 94107", "name" "king st" } ] itinerary information json format vlaue description itineraryinformation[] idstring 32 optional unique id assigned to each segment of the journey itineraryinformation[] orderstring 4 optional order of each segment within the overall itinerary itineraryinformation[] providernamestring 32 conditional provider name * required if subtype is etickets itineraryinformation[] providerlogostring 256 conditional url of the logo image * required if subtype is etickets itineraryinformation[] providerlogo darkurlstring 256 conditional url of the logo image in dark mode * required if subtype is etickets itineraryinformation[] providerlogo lighturlstring 256 conditional url of the logo image in light mode * required if subtype is etickets itineraryinformation[] departureobject conditional information about the place of departure itineraryinformation[] departure namestring 32 conditional name of the departure point * required if subtype is etickets itineraryinformation[] departure codestring 32 conditional iata code for the departure point * required if subtype is etickets itineraryinformation[] departure airportstring 100 conditional airport name of the departure point * required if subtype is etickets itineraryinformation[] departure terminalstring 100 conditional terminal name of the departure point * required if subtype is etickets itineraryinformation[] departure platformstring 100 optional platform name of the departure point itineraryinformation[] departure time xtimestamplong 13 conditional departure time epoch timestamp in milliseconds i e , the estimated time the aircraft plans to pull from the gate, or the actual time the aircraft already pulled from the gate * required if subtype is etickets itineraryinformation[] departure utcoffsetstring 8 conditional utc offset of time at the departure point * required if subtype is etickets itineraryinformation[] departure zoneidstring 64 optional unique identifier for a timezone as defined by the iana time zone database it represents a specific region's timezone, including rules for daylight saving time dst and historical changes ex "america/new_york", "europe/london" itineraryinformation[] departure literalvaluestring 32 optional the departure time that should be indicated on the screen is formatted valueformat yyyy-mm-ddthh mm ssex 2025-10-30t14 35 00 itineraryinformation[] departure latitudedouble optional the latitude of where the event is start* input when timestamp and zoneid information is not known itineraryinformation[] departure longitudedouble optional the longitude of where the event is start* input when timestamp and zoneid information is not known itineraryinformation[] departure addressstring 256 optional the address of where the event is start* input when timestamp and zoneid information is not known itineraryinformation[] arrivalobject conditional information about the place of arrival itineraryinformation[] arrival namestring 32 conditional name of the arrival point * required if subtype is etickets itineraryinformation[] arrival codestring 32 conditional iata code for the arrival point * required if subtype is etickets itineraryinformation[] arrival airportstring 100 conditional airport name of the arrival point * required if subtype is etickets itineraryinformation[] arrival terminalstring 100 conditional terminal name of the arrival point * required if subtype is etickets itineraryinformation[] arrival platformstring 100 optional platform name of the arrival point itineraryinformation[] arrival timelong 13 conditional arrival time epoch timestamp in milliseconds i e , the estimated time the aircraft plans to pull from the gate, or the actual time the aircraft already pulled from the gate * required if subtype is etickets itineraryinformation[] arrival utcoffsetstring 8 conditional utc offset of time at the arrival point * required if subtype is etickets itineraryinformation[] arrival zoneidstring 64 optional unique identifier for a timezone as defined by the iana time zone database it represents a specific region's timezone, including rules for daylight saving time dst and historical changes ex "america/new_york", "europe/london" itineraryinformation[] arrival literalvaluestring 32 optional the departure time that should be indicated on the screen is formatted value format yyyy-mm-ddthh mm ssex 2025-10-30t14 35 00 itineraryinformation[] arrival latitudedouble optional the latitude of where the event is start* input when timestamp and zoneid information is not known itineraryinformation[] arrival longitudedouble optional the longitude of where the event is start * input when timestamp and zoneid information is not known itineraryinformation[] arrival addressstring 256 optional the address of where the event is start * input when timestamp and zoneid information is not known itineraryinformation[] boardingtimelong 13 optional boarding time epoch timestamp in milliseconds itineraryinformation[] vehiclenumberstring 32 conditional transit or route numberi e , flight number on airlines * required if subtype is etickets itineraryinformation[] coachnumberstring 16 optional identifier assigned to each individual carriage e g , b4 itineraryinformation[] seatclassstring 32 conditional seat class * required if subtype is etickets itineraryinformation[] seatnumberstring 16 optional individual number of the passenger seat e g , a-9, free itineraryinformation[] seatfacingstring 16 optional direction in which the seat is oriented within a carriage it indicates whether the seat is positioned to face the direction of travel or face the opposite direction e g , forward, backward itineraryinformation[] baggageallowancestring 20 optional baggage allowance itineraryinformation[] flighttimestring 8 optional the time required for a flight itineraryinformation[] checkinlinkstring 256 optional link to check in itineraryinformation[] usertypestring 32 optional passenger typei e , classification of passengers like child, adult example { "itineraryinformation" [ { "id" "itineraryid", "order" 1, "departure" { "name" "departurename", "code" "departurecode", "platform" "departureplatform", "time" 1749624040000, "utcoffset" "utc+09 00" }, "arrival" { "name" "arrivalname", "code" "arrivalcode", "platform" "arrivalplatform", "time" 1749624040000, "utcoffset" "utc+09 00" }, "vehiclenumber" "vehiclenumber", "coachnumber" "coachnumber", "seatclass" "seatclass", "seatnumber" "seatnumber", "seatfacing" "seatfacing", "usertype" "usertype" } ] } card art guide loyalty description type bgimage + bgcolor bgimage only description display the bgimage and the bgcolor in a predefined ratio display bgimage fully description
FAQ game, smarttv
docsamsung checkout q&a this topic solves various issues you may face while creating applications that use samsung checkout service select the applicable section to see the most common questions about a specific subject, and click the section heading to access all the available questions for that subject faq search form search before submitting your application for samsung software quality assurance sqa q1 after developing the application with samsung checkout on the staging environment, i've found that it does not work properly on the operating environment what should i do? there are a few mistakes that are frequently made by the developer, check the list below to ensure that you followed the process correctly check that you have registered your product for the operating zone from the dpi portal your product needs to be registered in both staging and operating zones ensure that the application detects the service environment and sets the dpi api url and server type accordingly you can find more information under "prerequisites > 4 initialize the required variables > 4 4 set the dpi url and service environment depending on the server type" section in implementing the purchase process tv#samsung checkout#staging zone#operating zone#dpi portal#register application development issues q2 my application is getting the following error “[payresult] cancel” how can i send a question to samsung checkout team? below you can find a sample email that you can send to us through the samsung apps tv seller office 1 1 q&a section tv#error#tv seller office q3 i got the following error in response to the api "/billing/service/v2/paymethods/md" as { "status" "0410424", "result" "оформление покупки не поддерживается [da-0219-a7af33]", "resultlongmesg" "unavailable service support country ", "resulttitle" "недоступно" } what's wrong? the "md" at the end is the country code for "md moldova, republic of", which is not a supported country for the samsung checkout service to see all the list of country where samsung checkout is supported, go to the "country and currency codes" section in implementing the purchase process tv#error#country code q4 can i test how samsung checkout client works without registering the product on dpi? yes, you can use the information below in your test application to see how samsung checkout client works on the tv before using this information, set your tv's country setting to a supported country like the us in addition, make sure that the test information is only used at the development stage before setting up your own dpi, it must not be used in any real service parameter value appid 3201504002021 paymentserver dev paymentdetails orderitemid dp111000001962 ordertitle 0708_consumable ordertotal 1 5 ordercurrencyid usd table 1 buyitem method request parameters sample code var appid = "3201504002021"; var paymentserver = "dev"; var detailobj = new object ; detailobj orderitemid = "dp111000001962"; detailobj ordertitle = "0708_consumable"; detailobj ordertotal = "1 5"; detailobj ordercurrencyid = "usd"; detailobj ordercustomid = ""; var paymentdetails = json stringify detailobj ; var onsuccess = function data { }; var onerror = function error { }; webapis billing buyitem appid, paymentserver, paymentdetails, onsuccess, onerror ; tv#samsung checkout#register#dpi portal q5 if a user purchases a product which has only been made available in a single country, can that purchase be returned using the "invoice/list" endpoint even if it is using a different country code than the one the user purchased the product in? yes the response for "invoice/list" does not consider the country code of the api request parameter, it returns all of the purchases what the buyer has purchased regardless of country tv#purchase#refund#country code#endpoint q6 is there a checklist that i can follow in order to check if my application is integrating with samsung checkout api properly? yes, below is the minimum checklist for integration with samsung checkout, you can test each item in the checklist to make sure your application works properly when purchasing the product when the samsung checkout client is launched, it shows the loading by itself, no graphical overlapping should exist in user experiences during the transition for example, a 3rd party application should not show loading when launching the samsung checkout client check the purchase process based on the type of product consumable/dynamic item type the user should be able to use the appropriate payment method to buy the item, and the title and price on the purchase page should be same as intended subscription/free trial item type in addition to the above, the user should be able to see the next payment date or relevant information of the subscription item check the post-purchase process in the 3rd party application does the 3rd party application reflect the result of a purchase in the application properly after completing the purchase process? both the success case for a purchase and other cases should be handled is there any overlap when screen is switched from the samsung checkout client to the 3rd party application? check the purchase history based on the type of product go to the "tv menu > samsung account > payment info" to see the subscription or purchase history the user needs to be able to check the purchase history or subscriptions of the item the user needs to be able to check subscription details check the user purchase history from the user buyer portal to make sure the history is properly updated after making a purchase, go to the samsung checkout website and check whether your status is updated properly test for exceptions turn off the tv while the purchase is in progress and checks if any inappropriate status is observed for example, go to the "tv menu > samsung account > payment info" to see the subscriptions or purchase history after completing the purchase of the item, turn the tv off and on again and run the 3rd party application to see if the previous purchase is still in active status tv#checklist#api integration dpi portal usage guide from the dpi portal, partners can register and manage products for sale and access the transaction history logs and sales reports for the applications they own q7 how do price changes work? if you want to change the price of an existing item, go to the dpi site and select "app > product list on the left side > product id" from there, you can change the product price for countries where it is necessary to select a tax category, you need permission from the samsung administrator to change the price prices you set can be changed after three months and you must notify the consumers of the new price tv#price change#dpi portal q8 can we have a unique product for each country? when a buyer purchases a specific product which is sold in multiple countries, they have the right to access any of those versions therefore, if you want to give a right for the purchase only within a single country, you need to register products separately for each country the product id needs to be different tv#product id#register q9 are security keys tied to the appid value? for example, if we have 2 applications each with their own id, will each one have its own securitykey? this is correct, security keys are bound to the appid tv#security key#application id q10 when we login on the dpi site, our application is not listed on it how can we add it? when you enroll your application on the seller site, you need to check the appropriate options for using samsung checkout refer to the picture below tv#dpi portal#unlisted application q11 how long does it take to get approval to use the dpi site? for the staging zone development , approval takes a maximum of 2 days for the operating zone, contract terms and conditions need to be finalized between you and samsung before approval can be granted tv#approval#staging zone#operating zone operation of your service this section explains the issues related to the operation of your service q12 can i use samsung checkout service for hotel tv applications? no, samsung checkout service is available on only samsung smart tvs htv#hotel tv application#samsung checkout q13 can i use my tv to test samsung checkout? i bought samsung smart tv around 2016 yes, samsung checkout service is available since the 2016 samsung smart tv range however, the latest features are guaranteed to function only for the last three years, and there may be a difference in the functionality of each year tv#samsung checkout testing q14 does samsung send push notifications, e-mail, or any sort of messaging to users throughout the service lifecycle free trial, subscribe, cancel ? samsung sends an e-mail to users who buy items, subscribe, cancel, and refund in addition, samsung sends a notice e-mail to users whose subscription item payment has failed tv#notice emails q15 is there any additional information you can pass along on error response codes for the billing api, such as what the response is if the checkvalue is incorrect? yes, you can find additional information at the following page dpi > support > error code tv#billing api#error code q16 what happens to current users who are in the middle of their subscription, when cp changes the price? will the user get some notification when they renew next time? no the service provider must relay this information to the buyers before the changes are made, because samsung checkout does not send price change notifications to buyers who subscribe to subscription products tv#price change#notification q17 does the samsung checkout charge users based on local currency, or based on the credit card that is used? for example, can you pay with us credit card in columbia? will the card be charged in local currency, or in usd? you will be charged in local currency tv#local currency q18 what are "customid" and "ordercustomid"? "customid" and "ordercustomid" have the same value "customid" also uses the same value as "ordercustomid" when calling buyitem if you have a unique id, use it if not, use the samsung account uid tv#customid#ordercustomid q19 how is the provider's user account data matched with samsung checkout's transaction list? this is done using "ordercustomid" if the provider has a user account, they can put the value in the "ordercustomid" parameter when calling the buyitem api this value is mapped to the transaction list's "order custom id" column tv#ordercustomid#transaction list product type this section includes information related to product types that can be purchased using the samsung checkout service limited period q20 in the response data of the "invoice/list" api, are `period`, `appliedtime`, `limitendtime`, and `remaintime` always present for `invoicedetails` objects that have an `itemtype` of limited period? yes tv#limited period#invoice details#item type q21 in the api spec document for the response data of "invoice/list" api, `limitendtime` is listed as "limited period product end time, in 14-digit utc time" does this mean that the field is not mandatory, that it should either exist and be a 14-digit string, or that it should not exist? no, limitendtime must exist when a limited period product is applied tv#limited period#limited end time q22 from the response data of "invoice/list" api, what is the expected value of the `limitendtime` field when a purchase hasn’t been applied yet? it appears that for limited period item purchases that have not been applied `itemtype` is "3" , the `limitendtime` field is set to "" correct limitendtime is calculated based on the date and time when the purchase is applied tv#limited period#limited end time#item type subscription q23 in the response data of the "invoice/list" api, is `subscriptioninfo` ever present for `invoicedetails` objects that do not have an `itemtype` of subscription? subscriptioninfo is shown only when itemtype is subscription tv#subscription info#invoice details#item type q24 does an invoiceid ever change, or is it static? if a new purchase is made, does it always generate a new invoiceid? the invoiceid is generated when the buyer subscribes to a product for regular payment however, subscriptionid is generated only when the buyer subscribes a product for the first time samsung checkout uses the first invoiceid as the subscriptionid and it is never updated tv#invoiceid#subscriptionid q25 does subscription end date `subsendtime` get updated as soon as a user has been successfully billed for the upcoming period of the subscription? no, the subscription end date subsendtime describes the expiry time of this subscription not nextpaymenttime tv#subscription end time q26 how is a month defined in subscriptions? calendar month or 30/31 days? calendar month the next month's payment is made on the same day of the month as the day the consumer first applied for the subscription for example, if the consumer applied for a subscription on november 14th, the next payment is made on december 14th for months that don't have a day corresponding to the settlement date such as the 31st , payment is made at the end of the month tv#calendar month#subscription q27 would the canceling of a subscription/closing of the account automatically trigger a refund at samsung checkout? no even if the consumer withdraws their samsung account or cancels a subscription to the regular payment, this does not refund any payments already charged on the next settlement date, the subscription status is changed from 'active' to 'expired', and regular payment is stopped tv#subscription#samsung account#cancel#refund
Develop Samsung Pay
apioverview package class tree index help package com samsung android sdk samsungpay v2 class samsungpay java lang object samsungpaybase com samsung android sdk samsungpay v2 samsungpay public final class samsungpay extends samsungpaybase this class provides apis to get the samsung pay status on the device also, this class provides apis to activate samsung pay on the device partner apps must check the samsung pay status on the device before performing any card management or payment operation since api level 1 1 constructor summary constructors constructor description samsungpay android content context context, partnerinfo partnerinfo constructor to get the samsungpay instance the caller should set the valid serviceid in partnerinfo method summary all methodsinstance methodsconcrete methods modifier and type method description void activatesamsungpay api to bring the samsung pay app to a state in which cards can be added samsung pay might be either in stub only state or samsung account is not signed in state partner app checks the samsung pay status with getsamsungpaystatus statuslistener api if the status is #spay_not_ready and #extra_error_reason is #error_spay_setup_not_completed, partner app can call this api to launch samsung pay and user can sign in to the app void getsamsungpaystatus statuslistener listener api to get the samsung pay status on the device partner issuers, merchants, and so on applications must call this api to check the current state of samsung pay before doing any operation void getwalletinfo list<string> keys, statuslistener listener api to get the requested wallet information from samsung pay partner app can use this information to uniquely identify the user and samsung pay app on a particular device void gotoupdatepage api to go to samsung pay update page partner app checks the samsung pay status with getsamsungpaystatus statuslistener api if the status is #spay_not_ready and #extra_error_reason is #error_spay_app_need_to_update, partner app can call this api to go to update samsung pay app if samsung pay app version is same or bigger than 2 1 00, it goes to "about samsungpay" menu if samsung pay app version is lower than 2 1 00 or kr device, it launches samsung pay app main screen methods inherited from class java lang object equals, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait constructor details samsungpay public samsungpay android content context context, partnerinfo partnerinfo constructor to get the samsungpay instance the caller should set the valid serviceid in partnerinfo partnerinfo is passed to samsung pay for partner verification context ct = activity; // or context ct = service; // set the serviceid which is assigned by the samsung pay developer during on boarding string serviceid = "sampleserviceid"; bundle bundle = new bundle ; bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring ; partnerinfo pinfo = new partnerinfo serviceid, bundle ; samsungpay samsungpay = new samsungpay ct, pinfo ; parameters context - activity context or service context partnerinfo - partner information throws nullpointerexception - thrown if parameters are null since api level 1 1 method details getsamsungpaystatus public void getsamsungpaystatus statuslistener listener api to get the samsung pay status on the device partner issuers, merchants, and so on applications must call this api to check the current state of samsung pay before doing any operation // set the serviceid which is assigned by the samsung pay developer during on boarding string serviceid = "sampleserviceid"; bundle bundle = new bundle ; bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring ; partnerinfo pinfo = new partnerinfo serviceid, bundle ; samsungpay samsungpay = new samsungpay context, pinfo ; samsungpay getsamsungpaystatus new statuslistener { @override public void onsuccess int status, bundle data { // success case if status == spay_ready { log d tag, "samsung pay is ready on the device" ; // perform your operation } else if status == spay_not_ready { // samsung pay is supported but not fully ready // if extra_error_reason is error_spay_app_need_to_update, // call gotoupdatepage // if extra_error_reason is error_spay_setup_not_completed, // call activatesamsungpay } else if status == spay_not_allowed_temporally { log d tag, "samsung pay is not allowed temporally" ; // if extra_error_reason is error_spay_connected_with_external_display, // guide user to disconnect it } else { // samsung pay is not supported on this device log d tag, "device does not support samsung pay" ; } } @override public void onfail int errorcode, bundle errordata { log e tag, "onfail callback is called, errorcode " + errorcode ; // to get more reason of the failure, // check some extra error codes in the errordata bundle such as samsungpay extra_error_reason if provided } } ; parameters listener - callback through which the result is provided on success, samsung pay status code is provided via statuslistener onsuccess int status, bundle data if samsung pay is ready to be used, samsungpay#spay_ready will be returned otherwise, samsungpay#spay_not_ready or samsungpay#spay_not_supported or samsungpay#spay_not_allowed_temporally can be returned with samsungpay#extra_error_reason from bundle also, partner can get extra information from bundle data bundle keys if provided bundle values #extra_country_code device country code iso 3166-1 alpha-2 #extra_member_id string memberid for korean issuers only on any failure, the failure code is provided via statuslistener onfail int errorcode, bundle errordata note please refer spaysdk common_status_table in detail throws nullpointerexception - thrown if the callback passed is null since api level 1 1 gotoupdatepage public void gotoupdatepage api to go to samsung pay update page partner app checks the samsung pay status with getsamsungpaystatus statuslistener api if the status is #spay_not_ready and #extra_error_reason is #error_spay_app_need_to_update, partner app can call this api to go to update samsung pay app if samsung pay app version is same or bigger than 2 1 00, it goes to "about samsungpay" menu if samsung pay app version is lower than 2 1 00 or kr device, it launches samsung pay app main screen // set the serviceid which is assigned by the samsung pay developer during on boarding string serviceid = "sampleserviceid"; bundle bundle = new bundle ; bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring ; partnerinfo pinfo = new partnerinfo serviceid, bundle ; samsungpay samsungpay = new samsungpay context, pinfo ; samsungpay gotoupdatepage ; since api level 1 2 activatesamsungpay public void activatesamsungpay api to bring the samsung pay app to a state in which cards can be added samsung pay might be either in stub only state or samsung account is not signed in state partner app checks the samsung pay status with getsamsungpaystatus statuslistener api if the status is #spay_not_ready and #extra_error_reason is #error_spay_setup_not_completed, partner app can call this api to launch samsung pay and user can sign in to the app // set the serviceid which is assigned by the samsung pay developer during on boarding string serviceid = "sampleserviceid"; bundle bundle = new bundle ; bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring ; partnerinfo pinfo = new partnerinfo serviceid, bundle ; samsungpay samsungpay = new samsungpay context, pinfo ; samsungpay activatesamsungpay ; since api level 1 1 getwalletinfo public void getwalletinfo list<string> keys, statuslistener listener api to get the requested wallet information from samsung pay partner app can use this information to uniquely identify the user and samsung pay app on a particular device // set the serviceid which is assigned by the samsung pay developer during on boarding string serviceid = "sampleserviceid"; bundle bundle = new bundle ; bundle putstring samsungpay extra_issuer_name, "issuer name" ; bundle putstring samsungpay partner_service_type, samsungpay servicetype app2app tostring ; partnerinfo pinfo = new partnerinfo serviceid, bundle ; samsungpay samsungpay = new samsungpay context, pinfo ; // bundle keys added to get wallet information from samsung pay // this information can be delivered to the partner server for eligibility check arraylist<string> keys = new arraylist<> ; keys add samsungpay wallet_user_id ; keys add samsungpay device_id ; samsungpay getwalletinfo keys, new statuslistener { @override public void onsuccess int status, bundle walletdata { // log d tag, "dowalletinfo onsuccess callback is called" ; // for visa, deviceid can be set to "clientdeviceid" as defined by visa string deviceid = walletdata get samsungpay device_id ; // for visa, walletuserid can be set to "clientwalletaccountid" as defined by visa string walletuserid = walletdata get samsungpay wallet_user_id ; } @override public void onfail int errorcode, bundle errordata { log e tag, "onfail callback is called, errorcode " + errorcode ; // to get more reason of the failure, // check some extra error codes in the errordata bundle such as samsungpay extra_error_reason if provided } } parameters keys - key list to get wallet information if the list is empty, all possible key values are returned the possible keys are #wallet_dm_id #device_id #wallet_user_id listener - callback through which the result is provided on success, statuslistener onsuccess int status, bundle data is invoked with wallet information the success code can be one of the following codes with bundle data status bundle keys bundle values usage vts mdes #error_none samsungpay#wallet_dm_id string device management id n/a paymentappinstanceid = device_id + padding "00" + wallet_dm_id *if you need 'paymentappinstanceid', you can generate it as above samsungpay#device_id string device id clientdeviceid samsungpay#wallet_user_id string wallet user id clientwalletaccountid on any failure, the error code is provided via statuslistener onfail int errorcode, bundle errordata note please refer spaysdk common_status_table in detail throws nullpointerexception - thrown if parameters are null since api level 1 2 samsung electronics samsung pay sdk 2 22 00 - nov 19 2024
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.
You have successfully updated your cookie preferences.